Title: Iterptiniu programines irangos sistemu, kuriu elgsena priklauso nuo laiko apribojimu, projektavimas
1 Realaus laiko sistemu programines irangos
projektavimas
- Iterptiniu programines irangos sistemu, kuriu
elgsena priklauso nuo laiko apribojimu,
projektavimas
2Tikslai
- Paaiškinti realaus laiko sistemos savoka ir kodel
šios sistemos paprastai yra realizuojamos kaip
lygiagretus procesai - Aprašyti realaus laiko sistemu projektavimo
procesa - Paaiškinti realaus laiko vykdikliu vaidmeni
- Supažindinti su bendromis stebejimo ir valdymo
architekturomis bei duomenu surinkimo sistemomis
3Ižanga
- Realaus laiko sistemu programines irangos
projektavimas Ižanga (Tikslai, temos,
apibudinimas, apibrežimai, poveikio/reakcijos
sistemos, architekturiniai sprendimai, sistemos
elementai)
4Nagrinejamos temos
- Sistemu projektavimas
- Realaus laiko vykdikliai
- Stebejimo ir valdymo sistemos
- Duomenu surinkimo sistemos
5Realaus laiko sistemos apibudinimas
- Sistemos, kurios stebi ir valdo savo aplinka
- Sistemos, kurios neišvengiamai susijusios su
aparaturine iranga - Jutikliai (sensors) surenka duomenis iš
sistemos aplinkos - Judikliai (actuators) pakeicia (tam tikru
budu) sistemos aplinka - Laikas tokioms sistemoms yra esminis kriterijus.
Realaus laiko sistemos PRIVALO reaguoti
(response) per tam tikra laika
6Apibrežimai
- Realaus laiko sistemos teisingas funkcionavimas
priklauso nuo gaunamu rezultatu ir laiko, per
kuri šie rezultatai gaunami - Realaus laiko lanksti sistema (soft real-time
system) yra sistema, kurios veikimo efektyvumas
laipsniškai mažeja, jei rezultatai nera gaunami
pagal apibrežto laiko reikalavimus - Realaus laiko kieta sistema (hard real-time
system) yra sistema, kurios veikimas yra
neteisingas, jei rezultatai nera gaunami per
nustatyta specifikacijoje laika
7Poveikio/reakcijos sistemos
- Gavus poveiki sistema turi reaguoti per tiksliai
apibrežta laika - Periodiniai poveikiai poveikiai, kurie ivyksta
nustatytais laiko intervalais - Pavyzdžiui, temperaturos jutiklis skaiciuoja 10
kartu per sekunde - Ne periodiniai poveikiai - poveikiai, kurie
ivyksta nenumatytais laiko momentais - Pavyzdžiui, sistemos energijos sutrikimas gali
sukelti sistemos pertraukima
8Architekturiniai sprendimai
- Del skirtingu poveikio/reakcijos laiko apribojimu
sistemos architekturoje turi buti greitas
poveikiu apdorojimo programu perjungimas
(switching) - Skirtingiems poveikiams yra skirtingi laiko
apribojimai, todel paprastai nebepakanka paprasto
nuoseklaus ciklo - Realaus laiko sistemos paprastai yra
realizuojamos kaip tarpusavyje saveikaujantys
procesai, kuriuos valdo realaus laiko vykdiklis
9Realaus laiko sistemos modelis
10Sistemos elementai
- Jutikliu valdymo procesai
- Surenka informacija iš jutikliu. Esant tam
tikriems jutikliu poveikiams, informacija gali
buti buferizuojama - Duomenu procesorius
- Vykdo surinktos informacijos apdorojima ir
apskaiciuoja sistemos reakcijos rezultatus - Judikliu valdymas
- Generuoja valdymo signalus judikliui
11Jutiklio/judiklio procesas
12Nagrinejamos temos
- Sistemu projektavimas (reikalavimu padalinimas,
projektavimo procesas, laikiniai apribojimai,
automato modeliavimas, programavimas, java) - Realaus laiko vykdikliai
- Stebejimo ir valdymo sistemos
- Duomenu surinkimo sistemos
13Sistemos projektavimas
- Suprojektuoti aparaturine ir programine irangas,
susijusias su sistema. Priskirti aparaturinei ir
programinei irangai funkcijas - Projektuojama atsižvelgiant i nefunkcinius
sistemos reikalavimus - Aparaturine iranga veikia geriau, bet jos kurimas
užtrunka ilgiau ir yra mažiau galimybiu ja
pakeisti
14Aparaturos ir programines irangos projektavimas
15Realaus laiko sistemu projektavimo procesas
- Nustatyti apdorojamus poveikius ir kokios turi
buti reakcijos i juos - Kiekvienam poveikiui ir reakcijai nustatyti laiko
apribojimus - Apjungti poveikio ir reakcijos apdorojima i
lygiagrecius procesus, susijusius su kiekviena
poveikio ir reakcijos klase
16Realaus laiko sistemu projektavimo procesas
- Suprojektuoti algoritmus kiekvienos poveikio ir
reakcijos klases apdorojimui su nustatytais laiko
apribojimais - Suprojektuoti planavimo sistema, kuri užtikrintu,
kad procesu vykdymo pradžios data butu parinkta
taip, jog juos butu speta užbaigti iki nustatyto
termino (deadline) - Apjungti, naudojant realaus laiko vykdiklius ar
operacine sistema
17Laikiniai apribojimai
- Gali reikalauti plataus modeliavimo ir
eksperimentavimo, kad užtikrinti, jog sistema
atitinka laiko apribojimus - Gali reikšti, kad tam tikros projektavimo
strategijos, tokios kaip objektiškai orientuotas
projektavimas, negali buti naudojamos del
papildomu išlaidu - Gali reikšti, kad vykdymas gali buti realizuotas
žemo lygio programavimo kalba
18Automato modeliavimas
- Realaus laiko sistemoje poveikis gali sukelti
perejima iš vienos busenos i kita - Baigtiniai automatai gali buti naudojami realaus
laiko sistemu modeliavimui - Taciau baigtiniu automatu modeliai stokoja
strukturiniu elementu. Netgi paprastos sistemos
gali tureti sudetinga modeli - Automato modeliai nusakomi naudojant UML
19Bangines krosneles buvio automatas
Pilnaspajegumas
Taktugeneratorius
Numeris
Pilnaspajegumas
Pusepajegumo
Pusepajegumo
Durysuždarytos
Taktugeneratorius
Atšaukti
Pradeti
Durysatidarytos
Sistemosklaida
Durysuždarytos
20Realaus laiko programavimas
- Realaus laiko aparaturines irangos sistemos gali
buti suprogramuotos Asemblerio kalba, kad butu
užtikrinti laiko apribojimai - Kalbos, tokios kaip C, leidžia sukurti efektyvias
programas, taciau neturi konstrukciju
(constructs), skirtu palaikyti lygiagretumui arba
bendru resursu valdymui - Ada, kaip kalba, yra suprojektuota realaus laiko
sistemu palaikymui, todel apima bendros
paskirties lygiagretumo mechanizma
21 Java kaip realaus laiko kalba
- Java palaiko lengvasvori lygiagretuma (gijas
(threads) bei sinchronizuotus metodus) ir gali
buti naudojama kai kuriu realaus laiko
programines irangos sistemu (soft real-time
systems) projektavimui - Java 2.0 netinka realaus laiko aparaturines
irangos sistemu (hard real-time systems)
programavimui ir programavimui, kur reikia
tikslios sinchronizacijos (timing) valdymo
kontroles - Neimanoma tiksliai nusakyti giju vykdymo laiko
- Nevaldomas šiukšliu rinkimas
- Neimanoma nustatyti bendru resursu panaudojimo
eiles dydžio - Kintamas virtualios mašinos idiegimas
- Neimanoma vykdyti erdves ar laiko analizes
22Nagrinejamos temos
- Sistemu projektavimas
- Realaus laiko vykdikliai (paskirtis,
komponentai, non-stop sistemos, prioritetai,
pertraukimu apdorojimas, procesu valdymas,
perjungimas) - Stebejimo ir valdymo sistemos
- Duomenu surinkimo sistemos
23Realaus laiko vykdikliai
- Realaus laiko vykdikliai yra specializuotos
operacines sistemos, kurios valdo realaus laiko
sistemu procesus - Atsakingi už procesu valdyma ir resursu
(procesoriaus ir atminties) paskirstyma - Gali buti sudaryti pagal standartini realaus
laiko vykdikliu branduoli, kuris naudojamas
nepakeistas arba modifikuotas pagal konkrecia
taikomaja programa - Nepalaiko failu valdymo
14
24Vykdikliu komponentai
- Realaus laiko laikrodis (clock)
- Teikia informacija proceso planavimui
- Pertraukciu apdorojimo programa (interrupt
handler) - Valdo neperiodines užklausas
- Planuotojas (scheduler)
- Parenka sekanti vykdymo procesa
- Ištekliu paskirstymo programa (resource manager)
- Paskirsto atminties ir procesoriaus resursus
- Dispeceris arba valdymo programa
- Pradeda proceso vykdyma
25Be sustojimo veikianciu (Non-stop) sistemu
komponentai
- Programa konfiguratorius (configuration manager)
- Atsakingas už dinamiška sistemos programines ir
aparaturines irangu konfiguracijos pakeitima.
Aparaturines irangos moduliai gali buti pakeisti,
o programine iranga atnaujinta nestabdant
sistemos darbo - Klaidu valdymo programa (fault manager)
- Atsakingas už klaidu aptikima programineje ir
aparaturineje irangose bei tinkama veiksmu
vykdyma (pvz., persijungima i atsarginius
diskus), kad butu užtikrinta, jog sistema darba
tes
26 Realaus laiko vykdikliu komponentai
27Proceso prioritetai
- Kartais kai kuriu veiksmu apdorojimas turi tureti
prioriteta - Pertraukimo lygio prioritetai. Aukšciausias
prioritetas, kuris suteikiamas procesams,
reikalaujantiems labai greitos reakcijos - Laikrodžio lygio prioritetai. Suteikiami
periodiniams procesams - Gali buti ir kitu lygiu prioritetu
28Pertraukimu apdorojimas
- Valdymas automatiškai yra perduodamas i iš anksto
apibrežta atminties vieta - Šioje vietoje esanciu komandu pagalba valdymas
yra nukreipiamas i pertraukimo apdorojimo vieta - Tuo metu kiti pertraukimai yra negalimi, kai
pertraukimas apdorojamas ir valdymas gražinamas i
pertraukta procesa - Pertraukimo apdorojimo veiksmai PRIVALO buti
trumpi, paprasti ir greiti
29Periodiniu procesu apdorojimas
- Daugumoje realaus laiko sistemu yra keletas
periodiniu procesu klasiu, turinciu skirtingus
periodus (laikus tarp vykdymu), vykdymo laikus ir
terminus (laikas, iki kurio apdorojimas privalo
buti baigtas) - Realaus laiko laikrodis tiksi periodiškai, ir
kiekvienas taktas sukelia pertraukima, kuris
periodinius procesus valdanciai programai leidžia
palaikyti procesu tvarkarašti - Proceso valdytojas parenka pasiruošusi vykdymui
procesa
30Proceso valdymas
- Susijes su lygiagreciu procesu aibes valdymu
- Periodiniai procesai yra vykdomi iš anksto
apibrežtais laiko intervalais - Vykdytojas naudoja realaus laiko laikrodi, kad
žinotu, kada vykdyti procesa - Proceso periodas laikas tarp proceso vykdymu
- Periodo terminas laikas, iki kurio turi buti
baigtas apdorojimas
31Vykdikliu valdymas
Resursu valdytojas
Resursu valdytojas
32Procesu perjungimas
- Planuotojas parenka sekanti procesoriaus procesa.
Tai priklauso nuo planavimo strategijos kaip
esminis kriterijus gali buti paimtas proceso
prioritetas - Resursu valdytojas vykdomam procesui paskirsto
atminti ir procesoriu - Dispeceris paima iš pasiruošusiu vykdymui procesu
sarašo viena procesa, užkrauna ji i procesoriu ir
pradeda ji vykdyti
33Nagrinejamos temos
- Sistemu projektavimas
- Realaus laiko vykdikliai
- Stebejimo ir valdymo sistemos (apibudinimas,
apsaugos ir šildymo sistemu pavyzdžiai) - Duomenu surinkimo sistemos
34Stebejimo ir valdymo sistemos
- Tai svarbi realaus laiko sistemu klase
- Nuolat tikrina jutiklius ir priklausomai nuo
jutiklio reikšmiu vykdo veiksmus - Stebejimo sistemos tikrina jutiklius ir praneša
savo rezultatus - Valdymo sistemos priima jutikliu reikšmes ir
valdo aparaturines irangos judiklius (actuators)
35Apsaugos sistema
- Sistema privalo stebeti duru ir langu jutiklius,
kad pastate aptiktu isilauželius - Kai jutiklis aptinka isilaužima, sistema ijungia
šviesas aplinkineje teritorijoje ir automatiškai
iškviecia policija - Sistema turi užtikrinti procesu vykdyma be
pagrindinio energijos šaltinio
366
0
H
z
4
0
0
H
z
1
0
0
H
z
Judesio detektoriaus procesas
Langu jutiklioprocesas
Duru jutiklioprocesas
Jutikliobusena
Jutikliobusena
Detektoriaus busena
5
6
0
H
z
Aliarmine sistema
Bendravimoprocesas
Pastato stebejimoprocesas
Energijos šaltiniogedimo pertvarkymas
Kambario numeris
Pastato stebejimas
Energijos perjungimoprocesas
Aliarmo sistemosprocesas
Aliarmo pranešimas
Kambario numeris
Aliarmo sistema
Aliarmo sistema
Aliarmo sistema
Kambario numeris
Garso sinte- zatoriaus procesas
Apšvietimo valdymoprocesas
Girdimas aliarmoprocesas
Proceso architektura
37Valdymo sistemos
- Visu pirma apsaugos sistema yra stebejimo
sistema. Ji surenka duomenis iš jutikliu, taciau
neatlieka realaus laiko sistemu judikliu valdymo - Valdymo sistemos yra panašios, bet reaguodama i
jutikliu reikšmes, sistema siuncia valdymo
signalus i judiklius - Stebejimo ir valdymo sistemos pavyzdys yra
sistema, kuri stebi temperatura ir ijungia ar
išjungia šildiklius (heaters)
38Temperaturos valdymo sistema
5
0
0
H
z
0
0
H
z
Perjungimo komanda
5
0
0
H
z
39Nagrinejamos temos
- Sistemu projektavimas
- Realaus laiko vykdikliai
- Stebejimo ir valdymo sistemos
- Duomenu surinkimo sistemos (apibudinimas,
pavyzdžiai, reaktoriaus srautas, žiedinis
buferis, abipusis išskyrimas)
40Duomenu surinkimo sistemos
- Surenka duomenis iš jutikliu tolimesniam
apdorojimui ir analizei - Duomenu surinkimo ir apdorojimo procesai gali
tureti skirtingus periodus ir terminus
(deadlines) - Duomenu surinkimas gali buti greitesnis negu ju
apdorojimas, pvz., informacijos surinkimas apie
sprogima - Ciklinis arba žiedinis buferis yra mechanizmas,
suvienodinantis greicio skirtumus
41Reaktoriaus duomenu surinkimas
- Sistema surenka duomenis iš jutikliu, stebinciu
neutronu tekejima iš branduolinio reaktoriaus,
aibes - Tekejimo duomenys yra patalpinami i žiedini
buferi tolesniam apdorojimui - Žiedinis buferis yra realizuotas kaip lygiagretus
procesas taip, kad surinkimo ir apdorojimo
procesai galetu buti sinchronizuojami
42Reaktoriaus srauto stebejimas
Jutikliai (kiekvienas duomenu srautas yra
jutiklio reikšme )
Jutiklio identifikatorius ir reikšme
Apdoroto srauto lygis
Jutiklio procesas
Apdorojimo duomenys
Jutiklio duomenu buferis
Išvesti (display)
43Žiedinis buferis
Registravimo procesas
Apdorojimo procesas
44Abipusiškas išskyrimas
- Registravimo procesai surenka duomenis ir ideda
juos i buferi. Apdorojimo procesai paima duomenis
iš buferio ir padaro elementus prieinamais - Registravimo ir apdorojimo procesai turi buti
abipusiai išskirti, t.y. netureti priejimo prie
to paties elemento - Buferis turi neleisti registravimo procesams
ideti informacijos i pilna buferi, o apdorojimo
procesams bandyti paimti informacija iš tušcio
buferio
45Esminiai aspektai
- Realaus laiko sistemos korektiškumas priklauso ne
tik nuo to, ka sistema daro, bet ir nuo to, kaip
greitai ji reaguoja - Bendras realaus laiko sistemos modelis apima
procesu asocijavima su jutikliais ir judikliais
(actuators) - Realaus laiko sistemu architekturos paprastai yra
projektuojamos kaip lygiagreciu procesu rinkinys
46Esminiai aspektai
- Realaus laiko vykdikliai yra atsakingi už proceso
ir resursu valdyma - Stebejimo ir valdymo sistemos surenka informacija
iš jutikliu ir siuncia valdymo signalus
judikliams - Duomenu surinkimo sistemos paprastai yra
aprašomos pagal registravimo/apdorojimo modeli - Java gali palaikyti lygiagretuma, bet netinkama
kritiniu laiko atžvilgiu sistemu kurimui
47Esminiai aspektai
- Realaus laiko sistemu programines irangos
projektavimas Esminiai aspektai (korektiškumas,
modelis, architektura, vykdikliai, stebejimo,
duomenu surinkimo, Java)