Osnovna struktura programaOsnovna struktura programa
Tri fundamentalne strukture
• Linearne sekvence instrukcija
• Iterativne petlje
• Grananja na osnovu iskaza selekcije
Strukture u višezadačnim programima• Paralelne ili konkurentne instrukcije
• Kritične grupe isključivih instrukcija
KaKaššnjenje odgovora njenje odgovora –– Responce latencyResponce latency
• Ključni faktor karakterizacije RTS
• Transformacija nepredvidivih asinhronih zahteva u raspoređeno sinhrono procesiranje
Relativna brzinaRelativna brzina
Prebrzo osmatranje ulaza
Presporo očitavanje ulaza
Primer izlaza sa svetlosnog senzora
Programsko generisanje vremenskih intervala• Neophodnost poznavanja strukture programa koji kompajler generiše
Velika brzina / malo vreme Ako procesor nema potrebnu brzinu – lasersko merenje rastojanja
20 km (40 km u oba smera) - t = 130 us
50 m (100 m u oba smera) - t = 325 ns
Procesor koji radi na 500 MHz (2 ns po instrukciji)problemi sa kešom, preklapanje zadataka, prekidi ...hardversko merenje
Tajming izlaznih uređajaPeriodično ili ciklično generisanje izlaznih podatakaKontrola motora
Step motoriAC motoriDC motoriVentili
Oživljavanje RTS - DebuggingMalo koristi od izvršavanja programa korak po korak – single step
Ubacivanje naredbi za štampanje printf() kvari tajming
Test generatori, Emulatori (ICE), memorijski osciloskopi, logički analizatori
Umetanje izlaznih instrukcija koje generišu kratke impulse
Pristup hardveruUloga operativnog sistema u odvajanju hardvera od softvera
Ulazi i izlazi računaraSpecijalizovane instrukcije
INTEL: Specijalne instrukcije, IN, OUTMOTOROLA: Adresni prostor, MOVE
Tri osnovne tehnike prenosa podatak ka i iz računara
Namensko ili periodično očitavanje – pullingPrekidni ulaz/izlaz - Interrupt drivenDirektni pristup memoriji – (DMA)
Hardware Interface LayerSoftverski nivo virtuelne mašine
Programirani U/I
Samo u DOS-u ili Windows 98
V godinaV godina
smer: Esmer: E
ččasovi: 2 + 2 + 3asovi: 2 + 2 + 3
O predmetuO predmetu
Profesor : Prof. dr Branislav PetroviProfesor : Prof. dr Branislav Petrovićć
Asistent: dipl. ing. Goran NikolicAsistent: dipl. ing. Goran Nikolic
Sistemi za rad u realnom vremenuSistemi za rad u realnom vremenu
Uvod u sisteme za rad u realnom vremenu
Cilj: Opisati okruženje računarskog sistema koji radi u realnom vremenu.
Sadržaj:• Definicija RTS
• Računarski sistem i realno vreme
• Funkcionalni, vremenski i metafunkcionalni zahtevi
• Klasifikacija RT sistema
• Tržište RT sistema
• Primeri RT sistema
Definicija sistema za rad u realnom vremenuDefinicija sistema za rad u realnom vremenu
Sistem za rad u realnom vremenu predstavlja kompleksan sistem kod koga su važna ograničenja postavljena u vremenskom domenu i čine vodeći preduslov za procenu kvaliteta isporučenog servisa.
Vreme kada se rezultat generiše je od iste važnosti kao i logička ispravnost.
Razmatranje stvari koje su sakrivene od “high level” programera. “Low level” programiranje. Izbor hardvera, operativnog sistema, HL jezika.
PRIMENE:
vojne primene, automatizacija industrijskog postrojenja, nadgledanje nuklearnih postrojenja, vođenje naučnog eksperimenta, embedded sistemi, roboti, multimedijalni audio i video sistemi, bankovni transakcioni sistemi
Prema oksfordskom rečniku definicija sistema za rad u realnom vremenu je:
Definicija sistema za rad u realnom vremenuDefinicija sistema za rad u realnom vremenu
Svaki sistem kod koga je trenutak u kome se generiše izlazni signal od velikog značaja. Ovo je najčešće zbog toga što na ulaz deluju neke promene iz fizičkog sveta, a izlaz treba da se odnosi na te promene. Razlika u vremenu od trenutka delovanja promene na ulazu do generisanja izlazne veličine mora biti dovoljno mala i u okviru prihvatljivih granica.
Pojam prihvatljive granice (timeliness) treba razmatrati u kontekstu celog sistema. Na primer:
u sistemu za navodjenje projektila, izlazni signal se zahteva za najviše nekoliko milisekundi,
u nekim primenama za kontrolu rada automobila odziv se može zahtevati u jednoj sekundi
Young (1982) RT sistem definiše kao:
Randell (1995) RT sistem definiše kao :
Definicija sistema za rad u realnom vremenuDefinicija sistema za rad u realnom vremenu
Bilo koja aktivnost obrade informacija (ili sistem) koji na spolja generisane ulaze treba da da odgovor u konačnom, unapred specificiranom periodu.
RT sistem je sistem koji zahteva reakciju na pobudu iz okruženja (uzimajući u obzir i tok fizičkog vremena) u vremenskim intervalima odredjenim od strane okruženja.
Operativni sistem i realno vreme; Windows, UNIX ?
Kategorizacija sistema: RTS ili neRTS• Kakav treba da je odziv sistema koji ne radi u realnom vremenu (Data Proc.)?
Sme li program za obradu plate da završi izračunavanje sa zakašnjenjemPrevremeno štampanje novina
• Raspoređivanje vođeno događajima (enent-driven scheduling)Prekidni signali – interruptTaktni signal? Kod DP sistema GUI interfejs kao event-driven
• Programiranje na niskom nivouPisanje drajvera (device drivers) za nove uređaje.ASM, C
• Specijalizovani hardverElektronski i mehanički uređajiKritične komponente u sistemima sa povratnom petljom – regulatorPoznavanje elektronike, mehanike, akustike, fiziologije, optike ...
• ”Izvetrivost” U/I podataka u vremenu – Volatile data I/OSistem gde se podaci ne dobijaju iz disk fajla ili sa tastatureStruktura programa obezbeđuje proveru određenom brzinom
• Multitasking – Višezadačni sistemiRasčlanjivanje na veći broj zadatakaStatičko sakupljanje instrukcija u funkcije <$> Dinamičko sekvenciranjeDa li je uvek neophodno?Multitasking: 1) implementaciona strategija 2) sredstvo za projektovanje
• Raspoređivanje u toku izvršenjaU DP primenama raspoređivanje od strane programeraU RTS samo deo posla. Zadatak operativnog sistema
• Nepredvidivost promena u okruženjuEvent-driven RTSVelika simulaciona testiranja - nalaženje svih mogućih kombinacija ulaza
• Kritične programske sekvence – Life critical codeGde rezultat neizvršenja funkcija RTS-a kritičan po život korisnikaSve veći broj ovakvih primena: avion, automobilFly by wire tehnologijaIzrada programa: dodatne provere, dokumentacija, probna eksploatacijaPovećaneje cene programa za faktor 30
RaRaččunarski sistem i realno vremeunarski sistem i realno vreme
Računarski sistem za rad u realnom vremenu je računarski sistem koji koriguje svoje ponašanje u zavisnosti ne samo od logičkog rezultata izračunavanja, već i u zavisnosti od trenutka kada su rezultati dobijeni.
Računarski sistem za rad u realnom vremenu je uvek deo većeg sistema koji nosi naziv
Sistem za rad u realnom vremenu (RTS Sistem za rad u realnom vremenu (RTS -- Real Time SystemReal Time System))
Osnovna karakteristika RTS-a je da menja svoje stanje u funkciji fizičkog vremena, čak i u slučaju kada se kontrolni računar isključi sa napajanja.
Zbog toga je korisno izvršiti dekompoziciju RTS-a na tri podsistema koje ćemo nazivati klasterima (cluster):
RaRaččunarski sistem i realno vremeunarski sistem i realno vreme
kontrolisani objekat (KO),
računarski sistem za rad u realnom vremenu(RTC sistem - Real-Time Computer System) i
opreater
Grupu koju čine kontrolisani objekat i operater nazivaćemo okruženjem (environment) računarskog sistema za rad u realnom vremenu.
RaRaččunarski sistem i realno vremeunarski sistem i realno vreme
Reakcija RT računara na pobudu od KO-a (ili operatera) mora da usledi u vremenskom intervalu koji je definisan okruženjem.
Vremenski trenutak u kome se mora generisati odziv naziva se krajnji rok ili deadline.
U slučaju da rezultat može biti od koristi i ukoliko se propusti deadline,tada se on klasifikuje kao soft deadline.
Ukoliko nema koristi od rezultata nakon isteka krajnjeg roka, uvodi se klasifikacija firm deadline.
Ukoliko pri propuštanju deadline-a može doći do katastrofalnih posledica, tada se on klasifikuje kao hard deadline.
Krajnji rok Krajnji rok -- deadlinedeadline
Pružni prelaz sa svetlosnom signalizacijom.
Neki RTC sistem možemo označiti kao hard RTC sistem ili safety-critical RTC sistem ukoliko mora da ispuni najmanje jedan hard deadline.
Ukoliko nema zahteva za hard deadline - soft RTC.
Razlika u ponašanju pod svim specificiranim opterećenjima sistema.
Zahtevi koje RTS mora da ispuni:FunkcionalniVremenskiMetafunkcionalni
Klasifikacija Klasifikacija RTCRTC--aa
PrimerPrimer
Funkcionalni zahteviFunkcionalni zahtevi
Funkcionalni zahtevi RTC sistema se odnose na funkcije koje RTC sistem mora da ostvari.
Grupisani su u:
zahteve prikupljanja podatakaOsmatranjeKondicioniranje Nadgledanje alarmnih stanja
zahteve direktne digitalne kontrole i
zahteve vezane za interakciju između čoveka i mašine.
Kontrolisani objekt menja svoje stanje u funkciji vremena.
Tekuće stanje kontrolisanog objekta možemo opisati beležeći stanja i vrednosti promenljivih u objektu u tom trenutku.
Neku od promenljivih koja je od značaja nazvaćemo RT entitet (entity). RT entitet je lociran ili u okruženju ili u računarskom sistemu .
Primeri RT entiteta:
protok tečnosti u cevi,
zadatak u kontrolnoj petlji koji zadaje operater,
ciljno stanje kontrolnog ventila.
Prikupljanje podatakaPrikupljanje podataka
Satički atributi koji se ne menjaju za vreme trajanja RT entitetaIme, tip, domen vrednosti, i maksimalni stepen promene.
Dinamički atributi koji se menjaju. Vrednost u određenom trenutku je najvažniji dinamički atribut. Brzina promene vrednosti entiteta u određenom trenutku.
Oblast kontrole (SOC – Sphere Of Control) nad entitetom.
Prikupljanje podataka Prikupljanje podataka –– atributi entitetaatributi entiteta
RT entitet može da ima ili diskretni ili kontinualni skup vrednosti.
Skup vrednosti diskretnog RT entiteta je definisan i ostaje konstantan u dva određena stanja. U intervalu između ova dva stanja skup vrednosti diskretnog RT entiteta je nedefinisan.
U slučaju kontinualnog RT entiteta, skup vrednosti je uvek definisan.
Prikupljanje podataka Prikupljanje podataka –– skup vrednosti skup vrednosti entitetaentiteta
diskretni entitet - automatska vrata na kabini lifta.
PrimerPrimer
Osmatranje Osmatranje
Prvi funkcionalni zahtev – atomična struktura podatakaOsmatranje = (ime, tobs, vrednost)
Osmatranje stanja Neko osmatranje je osmatranje stanja ako rezultat osmatranja sadrži stanje RT entiteta.
Osmatranje događaja Događaj (event) je pojava koja se manifestuje kao promena stanja i dešava se u određenom trenutku. Osmatranje kao događaj.Nemogućnost direktnog osmatranja događaja u kontrolisanom objektu.
Kondicioniranje signalaKondicioniranje signala
Kondicioniranje signalaFizički senzori i tzv. sirovi podatak (raw data).Usrednjavanje – redukcija greške merenja.Kalibracija i transformacija u standardne merne jedinice.
Dobijanje merenih podataka (measured data).Provera verodostojnosti u cilju detekcije mogućeg otkaza senzora.
Usaglašeni podatak (agreed data element).
Nadgledanje alarmnih stanjaNadgledanje alarmnih stanja
Kontinualni nadzor entiteta i detekcija abnormalnog ponašanja sistema.Korelisane set alarma – alarmni pljusak (alarm shower).Detekcija, prikaz i logiranje alarma. Alarmni log. Primarni događaj.
Direktna digitalna kontrolaDirektna digitalna kontrolaDirektno određivanje vrednosti aktuatora – postavne vrednosti
Interakcija Interakcija ččovek ovek -- mamaššinainaIzuzetno važan i kritičan deo sistema
Vremenski zahtevi Vremenski zahtevi
Kontrolni računarski sistem
post. vred. senzor
protoka senzor temp. protok pare
temperatura
realno vreme
temp
10%
90%
dobject drise
ventil
kašnjenje objekta dobject (process lag) vreme uspona drise
period odmeravanja dsample, frekvencija odmeravanja fsample.
Primer proste kontrolne petljePrimer proste kontrolne petlje
dsample < 0.1 drise
osmatranje objekta
jitter kašnjenjaΔdcomp
izlaz ka aktuatoru
realno vreme kašnjenje računara dcomp realno vreme
temperaturadodatne greške merenja
jitter
ddt
tdTT Δ=Δ)(
Kašnjenje i jitter kašnjenja
mrtvo vreme (dead time) otvorene kontrolne petlje: dobject + dcomp
dcomp+ dobjectračunar i objekatdead timeddeadtime
Δdcomp<< dcompračunarjitter kašnjenjaΔdcomp
dcomput< dsampleračunarKašnjenje računaradcomp
dsample<< driseračunarperiod odmeravanjadsample
fizički procesobjekat kontrolevreme usponadrise
fizički procesobjekat kontroleKašnjenje objektadobject
RelacijeSOCParametarSimbol
Parametri kontrolne petlje
Privremena Privremena tataččnostnostOdnos između RT entiteta i s njemu pridružene RT slike
Bliža istorija RHi u trenutku ti je uređen skup tačaka u vremenu (ti, ti-1, ti-2,..., ti-k)RT sliku je privremeno tačna ako važi:
interval privremene tačnosti dacc=z(ti)-z(ti-k)
) () (: jiij tatRTentityValuetatRTimageValueRHt =∈∃
))()(()()( obsuse tztzdt
tdvterror −=
))(()()( accobsuseobs dtztztz +≤≤
Najgora greška uzrokovana vremenskim kašnjenjem treba da jeistog reda kao i najgora greška merenja u domenu vrednosti.
Ako RT entitet brzomenja svoju vrednost
accobsuse dtztz ≤− ))()(((
Interval vremenske tacnosti
Realno vreme
RT entitet
RT slika
Vrednost
Važnost da svaka greška u sistemu kontrole (otkaz senzora, gubitak ili poremećaj poruka ili otkaz čvora) bude detektovana u što kraćem roku i sa što većom verovatnoćom.
Latencija detekcije greške mora biti istog reda kao i period odmeravanja najbrže kontrolne petlje
Cilj: dovođenje sistema u sigurno stanje.
Minimalno vreme detekcije greMinimalno vreme detekcije grešškeke
Zahtevi kvaliteta rada (Zahtevi kvaliteta rada (DependabilityDependability))
1. Pouzdanost (Reliability)
2. Sigurnost
3. Mogućnost održavanja (Maintainability)
4. Raspoloživost sistema (Availability)
5. Tajnost (Security)
Grupa najvažnijih metafunkcionalnih atributa računarskog sistema koji se odnosena kvalitet servisa koji sistem pruža korisniku u dužem vremenskom intervalu.
Pouzdanost Pouzdanost Pouzdanost R(t) sistema je verovatnoća da sistem obezbedi
specificirane servise do vremena t pod pretpostavkom da je u početnom trenutku t=t0 bio u ispravnom stanju.
Pod pretpostavkom da sistem ima konstantni broj otkaza po času (failure rate) λ tada je pouzdanost sistema u trenutku t definisana sa:
gde je (t-t0) dato u časovima.
Recipročna vrednost broju otkaza, 1/λ = MTTF, predstavlja srednje vreme do otkaza (Mean-Time-To-Failure)
Visoko pouzdani sistemi imaju vrednost broja otkaza po času reda 10-9
ili manje.
R(t)=exp(-λ(t-t0))
Pouzdanost sistema u odnosu na stanje kritičnog otkaza.
Dva osnovna tipa stanja kritičnog otkaza - maligni i benigni.
U stanju malignog otkaza cena otkaza je veća od dobitaka kod normalnih radnih uslova.
SigurnostSigurnost
Primeri malignih otkaza: su rušenje aviona, automobilska nesreća.
Certifikacija: RT sistem koji mora biti siguran i u kritičnim uslovima radamora biti overen od strane nezavisne agencije.
Da su svi kritični subsistemi zaštićeni stabilnim interfejsimakoji onemogućavaju propagaciju greške u ostatak sistema.
Da se svi scenariji koji se odnose na date hipoteze opterećenja i otkazane baziraju na specifikacijama koje uzimaju u obzir argumente verovatnoće.
Da se može konstruisati kompletan i tačan model pouzdanosti sistema.Svi parametri modela koji se ne mogu dobiti analitički moraju biti merljiviu razumnom vremenu testiranja.
Vreme potrebno da se izvrši reparacija sistema nakon pojave benignog otkaza.
Izražava se kao verovatnoća M(d) da se sistem osposobi za rad za vreme (d) nakon otkaza.
U cilju kvantitativnog određivanja mogućnosti održavanja uvode se konstante broj reparacija μ (repairs per hour) i srednje vreme do reparacijeMTTR (Mean Time To Repair).
MoguMoguććnost odrnost održžavanja avanja (Maintainability)(Maintainability)
Fundamentalni konflikt između pouzdanosti i mere održavanja.Podela sistema na SRU jedinice (SRU-smallest replaceable units)
RaspoloRaspoložživost sistema (Availability)ivost sistema (Availability)
Raspoloživost sistema je mera ostvarenog ispravnog rada sistema u odnosu na ukupan ispravan i neispravan rad.
MTBF = MTTF + MTTR (Mean Time Between Failures)
Visoko raspoloživi sistemi: sa velikim MTTF ili kratkim MTTR što omogućava projektantima ovakvih sistema određene slobode u konstrukciji.
A = MTTF / (MTTF+MTTR)
Tajnost se odnosi na sposobnost sistema da se zaštiti od neautorizovanog pristupa informacijama ili servisima.
Prava pristupa velikim bazama podataka.
Tajnost u sistemima za rad u realnom vremenu: alarmni sistem automobila.
Tajnost (Security)Tajnost (Security)
Klasifikacija sistema za rad u realnom Klasifikacija sistema za rad u realnom vremenuvremenu
Na bazi karakteristika aplikacije odnosno od faktora van računarskog sistema:
Klasifikacija kao posledica faktora unutar računarskog sistema:
Garantovani odziv i Najbolji mogući odziv
Resurs adekvatni i Resurs neadekvatni
Event Trigered (ET) i Time Trigered (TT)
Hard i Soft RT sistemi
Fail-Safe i Fail-Operational
Hard i Soft RT sistemiVreme odziva (Response Time): reda milisekunde/sekunde,
mogućnost interakcije čoveka u kritičnim uslovima, prekoračenje deadline.
Vršno operećenje (Peak-Load Performance): specifikacijavršnog opterećenja, očuvanje specificiranih DL.
Sinhronizacija (Control of Pace): sinhronizacija sa stanjemu okruženju
Sigurnost: pouzdanost sistema, autonomnost u detekcijigrešaka.
Veličina polja podataka: baza podataka u realnom vremenu,mala privremena tačnost.
Tip redundanse: postupak nakon detekcije grešaka vraćanjemna kontrolnu tačku. Teškoće kod hard sistema: DL,neponovljivost aktivnosti, tačnost i protok vremena.
Fail-Safe i Fail-Operational sistemiPonašanje sistema u slučaju otkaza.Verovatnoća detektovanja greške – high error detection coverage.Watchdog.Fail-Operational sistemi moraju obezbediti minimalni nivo servisa.
Garantovani odziv i Najbolji mogući odzivSistem koji funkcioniše u specificiranim uslovima otkaza i opterećenjima.Sistemi sa najboljim mogućim odzivom (best effort) ne zahtevaju rigoroznu specifikaciju velikih opterećenja.
Resurs adekvatni i Resurs neadekvatni
Event Trigered (ET) i Time Trigered (TT)Neka pojava u određenom trenutku naziva se događaj (event).Interval , start event i terminating event. Trajanje intrervala (duration).Event Trigered (ET) Pristup kod koga se sve aktivnosti procesiranja iniciraju kad dođe do značajne promene nekog stanja, t.j. događaja koji ne potiče od taktnog signala.Time Trigered (TT) Pristup kod koga se iniciranje aktivnosti vrši u predefinisanim trenutcima vremena.
TrTržžiiššte RT sistemate RT sistemaOdnos cena/performanse i uspeh nekog proizvoda.
Cena koštanja u toku životnog ciklusa proizvoda (life-cycle cost):cena razvoja, cena proizvodnje i cena održavanja.
Cena hardvera – cena sofvera, nekad i sad
Kvalitet softvera – Software Quality Assurance SQAHardver se degradira uprkos održavanju, sofver degradirazbog hardvera
BudućnostPojava 8-bitnih mikroprocesoraFPGA i VHDL - paralelizam
1. embedded sistemi
Deo većeg sistema, inteligentni proizvod.
Mehanički deo, kontrolni embedded računar i interfejs.Masovna produkcija.Statička struktura.Interfejs čovek-mašina.Minimizacija mehaničkog podsistema.Strategija održavanja: bez održavanja/dijagnostički interfejs.Sposobnost za komunikaciju.
Faze u razvoju metoda projektovanjaAd-hoc primena računara, izrada softvera od strane inženjera.Novi zahtevi - dodavanje novih funkcija.Uvođenje operativnog sistema – novi troškovi bez vidljivih poboljšanja.Komunikacioni interfejsi i standardi.
2. Automatsko upravljanje industrijskim postrojenjem
Prvo polje primene.
Industrijska instrumentacija uz korišćenje daljinski upravljanih kontrolera.
Uvođenje centralnog procesnog računara kao pomoć operateru (open loop control) .
Razvoj modela procesa i porast pouzdanosti računara - funkcije kontrole prepuštane računaru (closed-loop control).
Jedinstvenost svakog sistema za automatizaciju. fizički raspored, opreativna strategija, pravila regulacije i sistem izveštavanja konkretnog postrojenja.
Cena razvoja, cena proizvodnje (hardvera) i cena održavanja.
VentilPretvarač
temperature Mešač
Hemikalije i
materijaliFinalni
proizvod
Računar za kontrolu
proizvodnje
Konzolaoperatera
Primeri sistema za rad u realnom Primeri sistema za rad u realnom vremenu vremenu
Sistem za kontrolu procesa
Mašinski alat Manipulatori Transportne trake
Delovi Finalniproizvod
Računar za kontrolu
proizvodnje
Konzolaoperatera
Primeri sistema za rad u realnom Primeri sistema za rad u realnom vremenu vremenu
Sistem za kontrolu proizvodnje
Hardverska arhitektura raHardverska arhitektura raččunaraunaraPojednostavljena struktura računaraTri sistemske magistral: power, address and data – sistemska magistrala.
Lečovanje: pamćenje stanja signala u cilju kasnijeg procesiranjaTrigerovanje na ivicu ili nivo – Edge or Level triggered.Logika sa tri stanja – mogućnost razmene podataka sa više kolaWait stanjaSistemski interfejsi i magistrale:
1. MIL-STD-1553B - avionske aplikacije2. Small Computer Systems Interface3. IEEE 1394 Firewire
1. MIL-STD-1553B - avionske aplikacije
Master-slave protokol. Lista aktivnosti uređaja na magistrali.Poruke sadrže ID brojeve, komande i podatke.Primer: Master želi da uređaj 5 pošalje 10 paketa podataka uređaju 6.Pouzdanost.
2. Small Computer Systems Interface (“scuzzy”)
Brza spoljašnja magistrala.400 Mbps u verziji 1394a i 800 Mbps u verziji 1394b.Osvtvarivanje veze sa 63 uređaja.Priključivanje u toku rada (hot pluggable).Asinhroni prenos i izohroni (isochronous)
3. IEEE 1394 Firewire
PC-bazirani interfejs, paralelni.3 generacije.Daisy-chained konfiguracija.ID-0 boot uređaj, prioritet na osnovu ID
CPU – Centralna procesorska jedinica
Program kao sekvenca makroinstrukcija ili makrokoda - fetch–execute cycleIdling – no operation
Mikrokontroleri – programiranje mikroinstrukcijama – velika brzina. Širina instrukcija!
Format instrukcija definiše jezik koji opisuje funkcionalnost računaraArhitektura računara – Organizacija računaraVažnost razlikvanja operanada koji se referenciraju u instrukciji.
sabiranje: 1.sabirak+2.sabirak (additions: addend+augends)oduzimanje: umanjenik-umanjilac (subtraction: subtract-subtrahend)množenje: množenik*množilac (multiplication: multiplicand*multiplier)deljenje: deljenik/delelac (division: dividend/divisor).
Mikroračunari !
1-Address and 0-Address Forms – akumulator, stek (kalkulatori)2-Address Form
op-cod operandam, operandumoperandum = op-code(operandam, operandum)
Intel-Motorolai=i+1; i++;ADD 0x01, &i ; 2-addressADD 0x01, &i, &i ; 3-address
3-Address Formop-code operandam, operandum, resultantresultant = op-code(operandam, operandum)
Osnovne instrukcije• Horizontal-bit operation AND, IOR, XOR, NOT• Vertical-bit operation rotate-left, rotate-right,• Control• Data movement• Mathematical/special processing (int. Float.pt.,• Other (processor specific) 8086 LOCK, 68000 ILLEGAL
Načini adresiranjaImmediate data NeposrednoDirect memory location DirektnoIndirect memory location Indirektno
CISC1. Complex instructions take many different cycles.2. Any instruction can reference memory.3. No instructions are pipelined.4. A microprogram is executed for each native instruction.5. Instructions are of variable format.6. There are multiple instructions and addressing modes.7. There is a single set of registers.8. Complexity is in the microprogram and hardware.
RISC1. Simple instructions taking one clock cycle.2. LOAD/STORE architecture to reference memory.3. Highly pipelined design.4. Instructions executed directly by hardware.5. Fixed-format instructions.6. Few instructions and addressing modes.7. Large multiple-register sets.8. Complexity handled by the compiler and software.
MEMORIJEZnačaj k-ka za projektovanje sistema za rad u realnom vremenuAccess time: vremenski interval od trenutka kada se zahteva neki podatak izmemorije to trenutka kad je podatak dostupan CPU.
Organizacija memorijeZnačaj tipa i organizacije memorije kod pisanje programa za RT sisteme!Primer embedded 32-bitnog sistema
Ulaz/Izlaz (Input/Output)Senzori, pretvarači, aktuatori, prekidači, displeji,...Tri osnovne metode:
1. Programirani Ulaz/Izlaz (Programmed Input/Output)Specijalne instrukcije za prenos podataka (OUT, IN).
2. Direct Memory AccessPristup memoriji (od strane U/I uređaja) bez intervencije CPU.
Memorijsko mapirani U/I (Memory-Mapped I/O)Memorijske lokacije se pojavljuju kao virtualni U/I portovi.
U/I Bit Mapa – Opisuje raspored kontrolnih signale za kola u sistemu. Ovi signali su ogranizovani kao reči odgovarajuće dužine u memoriji.
Prekidi (Interrupts)Hardverski signal koji inicira neki događaj. Izvori prekida (U/I uređaji, trapovi).Instrukcije za podršku prekida (enable, disable). Atomične instrukcije.Procedura prihvatanja prekida (interrupt handling). Status i maska prekida.
Višestruki prekidi, procesori sa više prekidnih ulaza
Programibilni kontroler prekida PIC (programmable interrupt controller), 82093Prihvatanje prekida, zabranadaljih prekida, detekcija lažnihprekida.
Načini povezivanje kola korišćenjem prekidnog sistema.
Reagovanje sistema na jednovremenupojavu većeg broja prekidnih signala.Prioriteti.
Mogućnost prekida nekih instrukcija(prenos bloka podataka)
Watchdog tajmer
Metode za poboljšanje performansiLokalizam referenci: relativna udaljenost promenljive u memoriji.Keš: mala i brza memorija za smeštanje najčešće korišćenih podataka.Protočnost: paralelizam u izvršavanju instrukcija
Koprocesori:Izvršavanje specijalnihinstrukcija koje nisu deostandardnog seta.
Primena specijalizovanih kola
Klasa logičkih kola (programibilnih) koja se koriste da realizaciju određenih logičkih f-ja.PLD (programmable logic devices):
PAL - Programmable array logicsPLA - Programmable logic arraysASIC - Applications-specific integrated circuitsFPGA - Field-programmable gate arrays
FPGA
Paralelni sistemi
Nedostatak von Nojmanove arhitekture: U jednom trenutku se samo jednaInstrukcija ili jedan podatak mogu preuzeti sa magistrale.Izvršavanje samo jedne instrukcije.
Posebne arhitekture
Flynn-ova Taxonomija paralelizma:1. Single instruction, single data (SISD)2. Single instruction, multiple data (SIMD)3. Multiple instruction, single data (MISD)4. Multiple instruction, multiple data MIMD)
Mehanizmi razmene podataka:Poruke, Deljiva memorija.
Klasifikacija računarskih arhitektura
------------------------------------------------------------------------------------------------------------------------------Single Data Stream Multiple Data Stream
------------------------------------------------------------------------------------------------------------------------------Single instruction stream von Neumann processors Systolic processors
RISC Wavefront Processors------------------------------------------------------------------------------------------------------------------------------Multiple-instruction stream Pipelined architectures Data flow processors
VLIW processors TransputersGrid computersHypercube processors
------------------------------------------------------------------------------------------------------------------------------
RealiRealizacijazacija jednostavnjednostavnihih RTRT sistemasistema
Metoda realizacije jednostavnog embedded RT sistmaKooperativno raspoređivanjeIzbegavanje overhead-a u preklapanju zadataka (istiskivanje)Prekidne servisne rutine
Deljenje resursa
Kritični podaci
Višezadačnost – Multi - tasking
Proces - Zadatak (Process - Task):
Apstrakcija programa koji izvršava jednu (ili više) logičkihcelina.
Jedan CPU – više zadataka
Primer Windows OS – task menakžer
Konkurentno procesiranje – kako ostvariti multitasking
Višeprocesorski sistemi
Beskonačna petlja sa funkcijama koje izvode sve potrebne aktivnosti.Jednostavni prelaz sa zadatka na zadatak kodiran u samoj petljiU sistemima gde se očekuje brzi odziv na zahteve jednog uređaja.
Osnovna struktura:Ispitivanje svih promena na ulazuPostavljanje svih potrebnih izlaznih stanjaBeskorisno testiranja markera (flag) u beskonačnoj petlji.
Nedostatak:Ostvarenje zavisnog tajminga kod periosično raspoređenih aktivnosti
Neposredno rešenje:Prikidom vođeni vremensko kritični zadaci (device driven interrupt)Nedostaci:NefleksibilnostBroj prekida i prioriteta prekida
Petlje sa zadacima
Jednostavna petlja zadataka sa prekidnim programom
Problemi sa tajmingom kodnih sekvenci
Nedovoljno tačan tajming, jitter.
Obrada prekida, if/else.
Minimalno vreme odziva na I/O aktivnost, polovina periode petje.
Povećanje frekvencije petlje, podela zadataka na faze.Manje korisnog vremena.
Rizik oid blokiranja zadataka.
Preklapanje zadataka – Task swappingPlan izvršavanja zadataka (raspored) – programer.
Kooperativno raspoređivanje
Kako?Složenije od poziva podprogramaPisanje programa na niskom nivou
Kada?Podaci ili vreme određuju prioritet izvršavanja.Očitavanje ulaznih podataka, baferi.
Koji?Podela resursa.Prekidanje zadatka koji trenutno upisuje u deljivi resurs.Međusobna isključivost, semafori.Primer ispisivanja vremena.
Tehnike zaštite:Zabrana preklapanja zadataka u kritičnim sekcijama.Serijalizacija svih pristupa kritičnim oblastima.Semafori i redovi.
// Program_1 (C)
#define konst_1, konst_2
int prom_1, prom_2
main {init_sys while (1){task_1task_2task_3task_4
}}
// Program_1 (ASM)
Konst_1 equ 123Konst_2 equ 456
dseg ; (bseg)Prom_1: ds 2Prom_2: ds 2
csegcall init_sys
labela:call task_1call task_2call task_3call task_4
jmp labela
end
Razvojni sistem na bazi MCS51
Ciklično izvršavanje za goli hardver
Mali sistemi – uslovne petlje, prekidni programi i programi za čekanje.
Kružni planer – predefinisane sekvence, kooperativni raspored.Zadatak odlučuje o svom završetku i prelaku na novi zadatak.Nema promene u izvršavanju u toku izvršavanja. Specijalni idle ili burn zadatak .
Sistemski takt
Jedan od najvažnijih zadataka u projektovanju r-t programaAžuriranje kalendarskog vremenaOmogućava preraspodelu zadataka i periodično osvežavanjeHeartbeat planera
Hardverska realizacija PC CTC-(Counter Timer Chip), API funkcijeMali sistemi (embedded), frekvencija osvežavanja
Nivoi prioritetaPrekidni-interruptTaktniOsnovni
Mode 05-bits(8192 us)
Init_tmr2:mov th2,#-high(ttakt)mov tl2,#-low(ttakt)mov rcap2h,#-high(ttakt)mov rcap2l,#-low(ttakt)mov t2con,#00000100bret
// Program_1 (C)
#define konst_1, konst_2
int prom_1, prom_2
main {init_sys while (1){task_1task_2task_3task_4while not takt {}
}}
// Program_1 (ASM)
Konst_1 equ 123Konst_2 equ 456ttakt equ 10000 ;(10 ms)
takt bit TF2 ;(TF0,TF1)
dsegProm_1: ds 2Prom_2: ds 2
csegcall init_sys ;(tmr2, …)
labela:call task_1call task_2call task_3call task_4jnb takt,$;azuriranje tajmera !
jmp labelaend
Prekidi
IE: EA X ET2 ES ET1 EX1 ET0 EX0IP: X X PT2 PS PT1 PX1 PT0 PX0
Produženi zadaci
Zadaci čije je vreme izvršavanja duže od vremenskog slota
Podela zadatka na delove – faze
Glavni problem u multi-tasking-u (code re-entry)
Primena kružnog izvršavanja
Svi zadaci vide istu globalnu strukturu podataka – globalne promenljive
Tri nivoa prioritetaPrekidni zadaciTaktni zadaciOsnovni nivo
Hibridna struktura – delom kooperativna, delom zahtev za istiskivanje
Frejm i slotovi, prioritet taktnih zadataka – izvršavanje u više slotova
Struktura tipa FIFO - red čekanja (bit polje semafora – markera)Zadaci mogu da imaju funkcije poziva za preraspoređevanje (sleep())
Task_1
Task_1
Task_2
Task_2
Smesti u red čekanja
Izvrši zadatkeIz reda čekanja
20ms
Uvod u RT programiranjeUvod u RT programiranjeRazmatranje skrivenih zahteva:Izbor hardvera, operativnog sistema i programskog jezika.Dobro poznavanje hardvera i operativnog sistema.Izbor mikrokontrolera (68HC11, Intel 8051, PIC 16F84, ...) ili PC-a.Prekidi - veza sa periferijama, istiskivanje (preemption).Veličina RAM memorije
Strukture podatakaTask Control Bolck – čuvanje stanja zadatka.Semafor – koordinacija procesa i deljivih resursa (binarni, brojački).Macro – labela koja zamenjuje blok instrukcija.
Kontrolne strukturePetlja čekanja (pulling loop).Event driven sistemi: foreground/background, multitasking, multiprocessor.Preklapanje konteksta (context switching).Monitor program.
Operativni sistemiKompleksni programi za vezu hardvera i korisničkih programa.Sheduler, dispatcher, context switch, memory manager, interprocess communication module, real-time clock manager, file system manager.Prioriteti (statički, dinamički), starvation, deadlock.
Jezgro operativnog sistema - KERNEL
Proces - Zadatak (Process - Task):Apstrakcija programa koji izvršava jednu (ili više) logičkih celina.Predstavljen strukturom podataka: stanje, identitet, atributi i resursi.
Funkcije jezgra OS-s: Raspoređivanje (scheduling), Izvršavanje (dispatching) i međusobna komunikacija i sinhronizacija (itecommunication and synchronization)
Pseudostrukture kernelaIzvršavanje većeg broja zadataka ne koristeći prekide i operativni sistem.Jednostavnija analiza ovakvih sistema.Petlja čekanja – Polled LoopU sistemima gde se očekuje brzi odziv na zahteve jednog uređaja.Osnovna struktura: testiranja markera (flag) u beskonačnoj petlji.
for(;;) { /* do forever */if (packet_here) /* check flag */
{process_data(); /* process data */packet_here=0; /* reset flag */}
}
Implementacija i u složenijim strukturama(background task in interrupt driven systems)
Sinhronizovane petlje čekanja
Primena sistemskog taktnog signala za realizaciju pauze između trenutka pojaveDogađaja (event) i obrade, odnosno resetovanja događaja.Primer: treperenje kontakta prekidača (switch bounce), nivostata, tastera.
for(;;) { /* do forever */if(flag) /* check flag */{
pause(20); /* wait 20 ms */process_event(); /* process event */flag=0; /* reset flag */}
}
Ciklično izvršavanje
Sistemi bez prekida (noniterrupt-driven).Iluzija simultanog izvršavanja većeg broja procesa. Brzi procesor, kratki procesi.
for(;;) { /* do forever */Process_1();Process_2();...Process_N();}
}
Ciklično izvršavanje sa unapred definisanim brojem izvršavanja (cycle rate).round-robin metoda.
for(;;) { /* do forever */Process_1();Process_3();Process_2();Process_3();}
}
Izvršavanje na osnovu stanja (State-Driven)
Koristi ugnjezdene if-then, case iskaze ili automate sa konačnim brojem stanja (finite state automat) za razbijanje na segmente.Privremeno prekidanje izvršenja pre završetka zadatka bez gubitka kritičnih podataka.Algoritmi za optimizaciju FSM.Podela procesa na stanja. Da li se svi procesi mogu podeliti? Glomaznost tabela.
Korutine (Corutines)
Kooperativni multitasking. Strogo pridržavanje zahtevima i odgovarajuće aplikacije.Koristi FSM šemu za dva ili više procesa i poziv centralnog dispatcher-a.Centralni dispečer čuva listu svih procesa koji se izvršvaju (round-robin).Komunikacija između procesa preko globalnih promenljivih.
void process_a(void){for(;;)
{switch(state_a)
{case 1: phase_a1();
break;case 2: phase_a2();
break;case 3: phase_a3();
break;case 4: phase_a4();
break;case 5: phase_a5();
break;}
}}
void process_b(void){for(;;)
{switch(state_b)
{case 1: phase_b1();
break;case 2: phase_b2();
break;case 3: phase_b3();
break;case 4: phase_b4();
break;case 5: phase_b5();
break;}
}}
state_a, state_b: brojači stanja – globalne variable.Singronizacija i komunikacija preko globalnih variabli.
Sistemi koji koriste prekide (Interrupt-Driven Systems)
Sistemi kod kojih je glavni program oblika:JMP $
Raspoređivanje zadataka preko hardverskih i softverskih prekida.
Prekidne rutine (Interrupt service routines)Hardverski i softverski prekidiPristup resursima – dozvolom i zabranom prekida.Kritične sekcije programa.Reentrant procedure – koje se mogu izvršavati simultano u dva ili više konteksta.Kontekst – stanje mašine u trenutku pekida koje se mora obnoviti.
Context SwitchingProces čuvanje i obnavljanja neophodnih informacija za RT zadatak tako da onMože nastaviti sa izvršavanjem nakon prekida.Lokacije za smeštaj konteksta – stek.Uticaj na vreme odziva. Sačuvati najmanji mogući kontekst.Zabrana drugih prekida u toku preklapanja konteksta.
void main(void){init(); /*initialize system, load interrupt handlers */while(TRUE); /* infinite wait loop */}
void intl (void) /* interrupt handler 1 */{save(context); /* save context on stack */task1(); /* execute task 1 */restore(context); /* restore context from stack */}
void int2(void) /* interrupt handler 2 */{save(context); /* save context on stack */task2(); /* execute task 2 */restore(context); /* restore context from stack */}
void int3(void) /* interrupt handler 3 */{save(context); /* save context on stack */task3(); /* execute task 3 */restore(context); /* restore context from stack */}
Sistemi sa prioritetima i istiskivanjem (Preemptive-Priority Systems)Zadatak za većim prioritetom može istisnuti (preempt) zadatak čiji je prioritet manji.Fiksni i dinamički prioriteti (fleksibilnost, složenost).Zarobljivanje resursa i pojava koja se naziva starvation.Sistemi sa fiksnim prioritetima (rate-monotonic) – frekvencija izvršavanja.
primer: akcelerometar
Hibridni sistemiKombinacija prekida koji se dešavaju sa fiksnom frekvencijom i sporadično.Round-robin i preemptive.Nedostatak prekidnih sistema: Nekorisno vreme (jmp $).
Foreground/Background sistemiPoboljšanje u odnosu na prekidne sisteme. Korisno procesiranje u toku čekanja.Najčešće korišćena u embedded sistemima.Background zadatak se uvek može istisnuti.Foreground zadaci se izvršavaju sa prioritetime i istiskivanjem u round robin obliku
Procesiranje u pozadini (background)Sve ono što nije vremenski kritično – sa najmanjim prioritetom.Detekcija izvršavanja procesa (software watchdog).Samotesteranje sistema.Prikaz na displeju, prikupljanje potataka za štampnje i drugo.
TCB model (Task-Control Block)
Napopularnija metoda implementacije operativnih sistema.Komercijalni, puni operativni sistemi sa promenljivim brojem zadataka.Arhitekture sa interaktivnim on-line sistemima.Primena u round robin, preemptive priority, kombinovanim sistemima.
Nedostatak: kod velikog broja zadataka overhead postaje značajan.
Svakom zadatku pridružena je TCB struktura podataka.Strukture povezane kao ulančane liste.
Stanja zadatka1. Executing - kada se izvršava2. Ready - spreman za izvršavanje ali se ne izvršava3. Suspended (or blocked) - čekanje ne resurs4. Dormant (or sleeping) - izbačen iz liste
Upravljanje resursimaProvera statusa svih resursa u listi suspendovanih zadataka.
Manipulacija zadacimaOperativni sistem (OS) kao zadatak sa najvišim prioritetom.Svaki prekid i poziv sistemske funkcije aktivira OS.Ažurira liste zadataka (TCB), tabele resursa i zahteva za resursima
Razlika modela TCB i ISR – rad sa resursima
Statusna reč kao osnovni elemenat za manipulaciju zadacima
Manipulacija resursimaProvera statusa svih resursa u listi blokiranih zadataka.Mogućnost da beći broj zadataka čeka na oslobađanje istog resursa.
Dijagram promena stanja zadatka
Proces raspoređivanja zadataka
Osnovna funkcija operativnog sistema – kreiranje izvodljivog rasporedapre-run-time
smanjuje overhead zbog preklapanja kontekstaveća mogućnost nalaženja izvodljivog rasporeda
run-timekompleksni mehanizmi za sinhronizaciju i komunikaciju zadatakaproizvoljno prihvatanje događaja i zahteva za resursima
Karakterizacija zadataka
Ograničenja u prednjačenju (Precedence Constraints)Specifikacija da li neke zadatak treba da se izvrši pre drugih zadataka.
Vreme aktiviranja (puštanje, dolazak) zadatka ri,j (Release or Arrival Time)Vreme aktiviranja instance j zadatka τi .
Faza φiTvreme prvog aktiviranja zadatka τi .
Vreme odziva (Response Time)Vremenski interval od aktiviranja zadatka do njegovog završetka.
Apsolutni krajnji rok di (Absolute Deadline)Trenutak kad zadatak mora biti kompletiran.
Relativni krajnji rok Di (Relative Deadline)Maksimalno dozvoljeno vreme odziva zadatka.
Laksiti (Laxity)Pojam koji definiše slobodu izvršavanja.
Perioda piMinimalni vremenski interval između dva uzastopna aktiviranjazadatka.
Vreme izvršenja ei (Execution Time)Iznos vremena (maksimalni) koje je potrebno da se zadatak izvrši ako seizvršava bez prekida i ako ima omogućen pristup svim resursima.
Matematičke relacijeφ i = ri,1ri,k = φ i + (k − 1) ∗ pidi,j = φ i + (j − 1) ∗ pi + Di apsolutni krajnji rok instance j zadatka τidi,k = ri,k + pi = φ i + k ∗ pi relativni krajnji rok periodičnog zadatka
Tipični model zadatka
• Svi zadaci su strogo poriodični.
• Relativni krajnji rok zadatk jednak je njegovoj periodi.
• Svi zadaci su nezavisni, nema ogrničenja u prednjačenju.
• Nama zadatka sa sekcijama koje ne mogu biti istisnute, a cenaistiskivanja zadatka je zanemarljiva.
• Od važnosti su samo zahtevi procesiranja; memorija i U/I ne.
RoundRound--Robin Robin raspoređivanje raspoređivanje (scheduling)(scheduling)
Sekvencijalno izvršavanje većeg broja procesa
Time slice - svakom zadatku se dodeljuje fiksni vremenski interval za izvršavanje.
Taktni signal za iniciranje prekida u trenucima koji odgovaraju timeslice.
Izvršavanje zadatka do kompletiranja ili do isteka vremena izvršenja.
Round robin obezbedjuje korektnu dodelu CPU-a zadacima istog prioriteta po principu vremenskog multipleksa.
RoundRound--Robin Robin planiranje (scheduling) u kombinaciji planiranje (scheduling) u kombinaciji sa sistemom istiskivanja po prioritetusa sistemom istiskivanja po prioritetu
CiliCiliččna izvrna izvrššenja (enja (CE CE –– Cyclic ExecutivesCyclic Executives))
CE se odnosi na planer koji deterministički napušta i sekvencira izvršenje periodičnih zadataka.
CE kao tabela poziva procedura
– svaki zadatak procedura u okviru jedne DO petlje.
Odluka o raspoređivanju periodično na svaki frejm (minor ciklus)
dužina frejma f
Glavni (major) ciklus – vreme potrebno da se izvrše svi zadaci
Glavni ciklus ili hiperperiod je jednak NZS-u (najmanji zajednički sadržalac) svih perioda, tj., lcm (p1, ... , pn)
Ako se planiranje odluka učini jedino na početku svakog frejma, ne postoji istiskivanje u okviru frejma
Faza svakog periodičnog zadatka je ne negativan celobrojni umnožak veličine frejma
Frejmovi moraju da budu dovoljno dugi tako da svaki zadatak može da počne i završi se u okviru jednog frejma.
Veličina frejma, f, duža od vremena izvršenja, ei, za svaki od zadataka, τi , tj.
Dužine ciklusa što kraća - veličina frejma treba da bude odabrana tako da hiperperiod ima celobrojni broj frejmova:
Kompletiranje svakog zadatak u okviru svog krajnjeg roka (deadline) -frejmovi moraju biti dovoljno mali tako da izmedju vremena puštanja i karajnjeg roka svakog zadatka, postoji najmanje jedan frejm.
Najgori slučaj - zadatak je pušten neposredno nakon početka frejama
gde je: gcd – NZD najveći zajednički delilac, a Di relativni krajnji rok (deadline) zadatka i.
Primer proraPrimer proraččuna veliuna veliččine frejmaine frejma
Hiperperiod je 660, pošto je NZS (15, 20 i 22 ) 660
Prethodno pomenuta tri uslova se izračunavaju kao
Zaključak moguće vrednosti za f su 3, 4 ili 5
22322τ3
26220τ2
14115τ1
Dieipiτi
Planiranje (scheduling) zasnovano na Planiranje (scheduling) zasnovano na fiksnom prioritetu fiksnom prioritetu –– Rate Monotonic Pristup Rate Monotonic Pristup
Važi u sistemima sa periodičnim zadacima gde je prioritet svakog zadatka konstantan u odnosu na druge zadatke.
To je optimalni statički algoritam za dati model zadataka.
Teorema, poznata kao rate-monotonic teorema je najvažniji (i najkorisniji) rezultat teorije sistema za rad u realnom vremenu.
Teorema
Za zadati skup periodičnih zadataka i raspoređivanje na bazi prioriteta i istiskivanja, optimalni algoritam raspoređivanja se ostvaruje ako je dodela prioriteta izvršena tako da zadaci sa kraćim vremenom izvršenja imaju viši prioritet (rate-monotonic).
Ilustracija rate-monotonic rasporeda:
Svi zadaci su pušteni u trenutku 0.
Zadatak τ1 ima najkraću periodu - najveći prioritet - prvi se izvršava.
U trenutku 4 pušten je drugi zahtev zadatka τ1 - istiskuje zadatak τ3
Zauzetost (utilization) ui predstavlja deo ukupnog vremena koje zadatak zauzima za svoje izvršavanje.
Zauzetost procesora:
∑=
=n
i i
i
peU
1
Osnovni rezultati strategije RateOsnovni rezultati strategije Rate--Monotonic Monotonic Algoritma Algoritma
Uslovi za izvodljivo raspoređivanje zadataka sa statičkim prioritetima i relativnim krajnjim rokom koji je jednak periodi zadatka.
Teorema
Bilo koji skup od n zadataka je moguće rasporediti RM algoritmom ako iskorišćenje procesora, U, nije veće od n(21/n-1)
Ukoliko je U na ili ispod date granice iskorišćenja, raspoređivanje može biti definisano RM algoritmom.
RMA za različit broj zadataka n.
RMA kao dovoljan ali ne i potreban uslov. Moguće je primeniti RMA algoritam i na skup zadataka kod kojih je vreme iskorišćenja procesora veće od RMAgranice.
Primer: Ukupno vreme iskorišćenja u prethodnom primeru je 0.9 ali je RMAalgoritam i dalje primenljiv.
DinamiDinamiččko rko rasporeaspoređivanje đivanje (scheduling) zasnovano na (scheduling) zasnovano na najkranajkraććem roku izvrem roku izvrššenja enja –– EarliestEarliest--DeadlineDeadline--FirstFirst
Sistemi kod kojih se prioritet zadataka menja u donosu na druge zadatke u zavisnosti od toga kako se zadaci izvršavaju i kompletiraju.
Earliest-Deadline-First (EDF): Spreman zadatak (ready) sa najranijim rokom ima najveći prioritet u bilo kom vremenskom trenutku.
Sledeća teorema daje uslove pod kojima može da se ostvari planiranje primenom EDF šeme pririteta
Skup od n periodičnih zadataka, čiji je relativni deadline svakog od zadataka jednak njegovom periodu izvršenja, može da se rasporedi EDF-om ako i samo ako je:
Teorema
Ilustracija raspoređivanja zasnovana na EDF-u
τ1 i τ2 pušteni istovremeno, τ1 se izvršava prvi (deadline raniji).U t = 2, izvršava se τ2.τ1 se aktivira u t = 5, njegov deadline nije raniji od τ2 pa ne kreće sa izvršenjem.U t = 15 τ2 je istisnut, njegov deadline je u t = 21, u odnosu na τ1 (DL = 20);τ2 nastavlja sa izvršenjem kada se τ1 kompletira.
Osnovni rezultati strategije EDF EDF je optimalan za primenu kod jednosprocesorskih arhitektura, kod kojih je dozvoljeno istiskivanje zadataka.
Ako postoji izvodivi raspored tada će i EDF uspešno rasporediti zadatke.
Zadatak – rasporediti po RM i EDF algoritmu.
Razlika u propuštanju krajnjih rokova!
Poredjenje RMA i EDF strategije EDF je mnogo fleksibilniji i obezbedjuje bolje iskorišćenje procesora.
RMA obezbeđuje predvidljivije ponašanje u vremenskom domenu.
U slučaju preopterećenja:
RM stabilniji. Uvek isti zadatak sa niskim prioritetom propušta DL.
Kod EDF-a teško je predvideti koji će zadaci propustiti svoj deadline u toku
preopterećenja.
Primena RM metode izaziva veći broj istiskivanja.
Kod EDF-a do istiskivanja dolazi samo ako zadatak ima raniji DL.
Komunikacija i sinhronizacija izmedju Komunikacija i sinhronizacija izmedju zadataka zadataka
U prethodnim analizama usvojen model zadataka bez međusobne zavisnosti.
Svi zadaci mogu da se istisnu u bilo kojem trenutku njegovog izvršenja.
U praksi u svim aplikacijama neophodna je interakcija među zadacima.
Glavni cilj:
Kako minimizirati blokiranje zadataka koje može da se pojavi u sistemima sa jednim procesorom kada konkurentni zadaci koriste deljive resurse.
Mehanizmi koji se koriste neophodno je da obezbede zadacima da:
medjusobno komunicirajudele resursesinhronišu aktivnosti
Baferovanje podataka
Metode razmene podataka:
Globalne promenljive – u brzim sistemimaKorupcija podataka.
Sprečavanje korupcije – primena bafera.
Izbor veličine bafera.
Dvostruko baferovanje
Razmena podataka između vremenski korelisanih zadatakaPristup podacima različitim brzinama.
Telemetrijski sistemeDisk kontroleriGrafički interfejsiNavigaciona opremaKontrole robota
Primer
Očitavanje impulsa sa akcelerometra (x,y,z) vrši se svakih 10 ms.Procesiranje se vrši na 40 ms.
Koristi baferovane promenljive xb, yb, zb
introf(); /* disable interrupts */xb=x; /* buffer data */yb=y;zb=z;intron(); /* enable interrupts */process(xb,yb,zb); /* use buffered data */
Pravilo: Prva procedura u ciklusu treba da bude rutina koja baferuje sve podatkeiz zadatka sa višim prioritetom u tekući zadatak (buffer-in).Zadnja procedure – baferovanje svih podataka zadacima nižeg nivoa
Kružni baferiSpecijalna struktura podataka. Lakše manipulisanje.
typedef struct ring_buffer{
int contents[N];int head;int tail;
}
void read (int data, ring_buffer *s){
if (s->head==s->tail)data = NULL; /* underflow */
else{data=s->contents +head; /* retrieve data from buffer */s->head=(s->head+1) % N; /* decrement head index */}
}void write (int data, ring_buffer *s){
if ((s->tail+1) %N==head)error(); /* overflow, invoke error handler */
else{s->contents+tail=data;tail=(tail+1) % N; /*take care of wrap-around */}
}
Overflow i Underflow
MailboxMemorijska lokacija koju jedan ili više zadataka koriste za prenos podataka ili sinhronizuju
void pend (int data, s); /*čitanje*/void post (int data, s); /*upis*/
Razlika između pend i jednostavnog pulinga.Podatak koji se prenosi – marker, podatak ili pointer na strukturu.
Implementacija – sistemi sa TCBLista zadataka sa potrebnim resursimaLista resursa sa njihovim stanjima (accept)
Tabela 1 Tabela 2Task Resource Status Resource Status Owner100 Printer Has it Printer Busy 100102 Mailbox 1 Has it Mailbox 1 Busy 102104 Mailbox 1 Pending Mailbox 2 Empty None
Redovi čekanja – QueuesTip mailbox-a koji omogućava uređivanje većeg broja zahteva.Qpost, qpend i qaccept operacije. Kao polje mailbox-ova i implementira se najlakše kroz prethodno pomenute tabele resursa.
Kritični regioniDeljivi resursi. Korišćenje od strane jednog zadatka u istom trenutku, i korišćenje resursa ne može da se prekine.
Ako dva zadatka udju u isti kritični region istovremeno može da se dogodi katastrofalna greška.
I am I am Task_A Task_B
SemaforiSemafor S je memorijska lokacija koja deluje kao blokator u cilju zaštite kritičnih regiona.
Wait P(S) i signal V(S) operacije.
void P(int S){
while (S == TRUE);S=TRUE;
}
void V(int S){
S=FALSE;}
Realizacija semafora pomoću Mailbox-ova (ako nisu obezbedjeni od OS-a)
Koristi pend koji suspenduje zadatak i eliminiše čekanje.
Dummy podatak kao parametar u pend i post.
Primer
Mailbox sa binarnim semaforom (Inic. mutex = 1 i proc_sem = 0)bool mutex, proc_sem, full_slots, empty_slots;void post(int mailbox, int message){
wait(mutex);If (empty_slots)
{insert(mailbox,message);update();signal(mutex);signal(proc_sem);
}else
{...signal(mutex);wait(proc_sem);wait(mutex);insert(mailbox,message);update();signal(mutex);signal(proc_sem);
}};
void pend(int *mailbox,int *message){
wait(mutex);if((full_slots))
{extract(mailbox,message);update();signal(mutex);
}else
{...signal(mutex);wait(proc_sem);wait(mutex);extract(mailbox,message);update();signal(mutex);
}};
Brojački semaforZaštita grupe resursa, evidencija o broju slobodnih resursa.Inicijalizuju se na broj slobodnih resursa.
Wait:void MP(int S){
S=S-1;while (S < 0);
}
Signalvoid MV(int S){
S=S+1}
Realizacija brojačkih semafora pomoću binarnihNeka su S (štiti R) i T (štiti resurse) binarni semaforiP(S) i V(S) wait i signal operacije respektivnoR globalni intedžer.
void MP (int R) /* multiple wait */{
P(S); /* lock counter */R=R-1; /* request a resource */if(R < 0) /* none available? */{
V(S); /* release counter */P(T); /* wait for free resource */
};V(S); /* release counter */
}
void MV(int R) /* multiple signal */{
P(S); /* lock counter */R=R+1; /* free resource */if (R <= 0) /* give that task the go ahead */
V(T);else
V(S); /* release counter}}
Jedan problem sa semaforima
Atomičnost sekvence testiranja i postavljanja semafora.
void P (int S){
while (S == TRUE);S = TRUE;
}
Na asembleru@1 LOAD R1,&S
TEST R1,1JEQ @1 ; S = TRUE? !!prekid!!STORE &S,1 ; S := TRUE
Test i set instrukcije
Deadlock – Smrtni zagrljaj
Kada se zadaci bore za dva ili više resursa.Ne može se uved detektovatu u toku testiranja.
Uslovi za pojavu smrtnog zagrljaja:
Međusobna isključivost – mutual exclusionrealizovati deljivost resursa (spooler).
Kružno čekanje – circular waitdodeljivanje svih potencijalnih resura.
Hold and waitne dozvoliti procesima da zaključaju više od jednog resursa.
Odsustvo istiskivanja – no preemptiondozvoliti istiskivanje zadataka sa nižim prioritetom.
Inverzija prioriteta - Priority inversionBlokiranja od strane zadatka koji ima niži prioritet.
Primer:Tri zadatka sa opadajućim prioritetima.Prvi i treći dele isti resurs. Resurs se štiti semaforom S.
Protokol nasleđivanja prioritetaThe Priority Inheritance Protokol
Prioritet zadatka se dinamički menja tako što svaki zadatak ulaskom ukritični region dobija prioritet koji je jednak najvišem prioritetu odzadataka koji čekaju u istom kritičnom regionu.
Protokol Priority Ceiling
Ne dozvoljava se zadacima da uđu kritičnu sekciju ako moguda blokiraju ostale zadatke.
Dodeljivanje prioriteta resursima – jednak najvišem prioritetu od svihzadatka koji mogu koristiti taj resurs.
Koncepcija distribuiranih sistemaKoncepcija distribuiranih sistemaCentralizovana i Distribuirana arhitekturaKoncept poruka Interfejs između hosta i komunikacione mrežeComposability, Scalability i Dependability
Arhitektura sistema
Funkcionalna forma – funkcija sistema definiše formu
Objedinjavanje logičke funkcije i računarskog hardverau jednu jedinicu nazvanu čvor
Apstrakcija koja obuhvata sve esencijalne funkcijei vremenske karakteristike, a
Sve irelevantne detalje sakriva iza stabilnog spoljašnjeginterfejsa
Slučaj otkaza:Jednoznačno preslikavanje funkcije i čvora.Laka dijagnostika.Predviđanje ponašanja u slučaju otkaza.
Čvor A Čvor B Čvor C
Čvor D Čvor E Čvor F
RT komunikacioni sistem
Hardverska struktura:
Komunikacioni mrežni interfejs
Uloga komunikacionog sistema:Transport poruka od CNI predajnika ka CNI prijemnikau okviru predviđenog vremenskog intervala i to sa malimjitterom latencije i sa velikom pouzdanošću.
Semanitika podataka:Informacije o događaju.Smeštanje u red čekanja prijemnika.Redosled pojava događaja a ne prijema poruka.
Informaciju o stanju.Prepisivanje informacija preko stare vrednosti.Informacije se ne uklanjaju nakon očitavanja.
Strategija upravljanja: Odluka o tome kada neka porukamože biti poslata u oblasti kontrole:Host računara (eksterna kontrola)Komunikacionog kontrolera (autonomna kontrola).
Poruke tipa događaj (Event Message):Kombinuju event semanitku i eksternu kontrolu.(komunikacionim sistemima koji ne rade u realnom vremenu)
Poruke stanja (State Message):Kombinacija semantike stanja i autonomne kontrole.
Komunikacioni sistemJednokanalni sistem kao što je bus ili ring,Višekanalni sistemi - razne mešovite mreža.
Pouzdanost:Retransmisija poruka u slučaju otkaza.Stalno dupliranje poruka.Repliciranje komunikacionih kanala.
GatewaysSpecijalni čvor koji služi za razmenu informacija(samo relevantnih) između dva interaktivna klastera.
Mogućnost efikasnog razrešavanja problema prilagođavanjarazličitih tehnologija i enkapsuliranja internih osobinasistema.
Sastavljivost - composabilityIntegracija većeg broja dobro specificiranih i unapredistestiranih podsistema.
Osobina da karakteristike koje su utvrđene na nivoupodsistema budu održane i nakon integracije sistema.(vremenska ograničenja (timelines) ili testabilnost (testability)).
Centralna uloga komunikacionog sistema.
ET komunikacioni sistem
Veći broj čvorova šalje poruku jednom prijemniku.
Protokoli za rešavanje konflikata:
•Tehnike proizvoljnog pristupa(Random access techniques - Ethernet).
•Predefinisani prioritet pristupa (Token protocol).
•Prioritet poruka (Control Area Network - CAN).
Sa stanovišta vremenskog ponašanjaET sistem ne ispunjava uslov sastavljivosti.
TT komunikacioni sistemVremenska kontrola ostaje u okviru komunikacionog sistemai ne zavisi od aplikacionog softvera u čvorovima.
Mala mogućnosti širenja grešaka (control-error propagation)od hosta ka komunikacionom sistemu i obratno.
TT arhitektura ima osobinu sastavljivostiu odnosu na vremenska ograničenja.
Skalabilnost
Otvorenost arhitekture za modifikacije i dodavanjenovih funkcija u toku životnog veka sistema.
Proširivost- Dodavanjem čvorova.- Transformacijom čvora u gateway.
KompleksnostSa rastom sistema njegova kompleksnost ostaje podKontrolom.- Podela sistema na podsisteme.- Enkapsulacija podsistema,- Očuvanje apstrakcija u slučaju otkaza i- Kontrola nad načinom interakcije između podsistema.
Cena hardvera u sistemu
Distribuirana arhitektura zahteva više hardvera zarealizaciju nekih blokova (komunikacioni sistem, dupliciranjekomponenata u svakom čvoru, operativni sistem).
distribuirani sistem
centralizovani sistem
veličina sistema
cena sistema
Slika . Cena centralizovanog i distribuiranog sistema
Visoka pouzdanostVisoka pouzdanostSistemi koji moraju ostati sigurni i u kritičnim sitacijama (safety-critical)
Otkazi, kvarovi i greške
OtkaziDogađaj koji označava razliku između trenutnog servisai specificiranog ili propisanog servisa.
GreškeNepravilno unutrašnje stanje računara,npr. pogrešni podatak u memoriji ili registru.
Tranzijentna greška. Permanentna greška.Region zadržavanja greške.
KvaroviUzrok greške, i indirektni uzrok otkaza zove se kvar
Sistemska visoka pouzdanost
Na nivou arhitekture, transparentna za aplikacioni kod.Arhitektura mora da obezbedi determinizam replika,Vremensko ili prostorno ponavljanje izračunavanja.
Aplikaciono-specifična visoka pouzdanost
Na nivou aplikacije, unutar aplikacionog koda.Funkcije za detekciju grešaka i FT funkcije na nivou aplikacije.
Detekcija greškeGreška je neslaganje između propisanog ispravnog stanjai tekućeg stanja sistema.Dostupnost propisanog stanju sistema.
Zasnovana na prethodnom (a priori) znanju- Osnovni konflikt između zahteva za fleksibilnošću izahteva da se obezbedi dobro pokriće detekcije greške.
- Poznavanje sintakse kodnog prostora .- Testovi potvrde i prihvatljivosti.- Poznavanje šablona po kome se aktiviraju izračunavanja.- WCET zadatka.
Zasnovana na redundantnim izračunavanjima
Nezavisne softverske greške i greške u hardveru
Dve verzije softvera na dva različita hardvera
Softversko hardverska
Softverski kvarovi i tranzijentni fizički kvarovi hardvera sa trajanjem manjim od vremenskog slota
Različiti softver se izvršava na istom hardveru u toku dva različita vremenska intervala
Softverska
Harverski kvaroviIsti softver se izvršava na dva različita hardverska kanala
Hardverska
Tranzijentni fizički kvarovi koji traju kraće od jednog vremenskog slota
Isti softver se izvršava na istom hardveru u toku dva različita vremenska intervala
Vremenska
Tip detektovane greškeImplementacijaTip redundanse
Čvor kao jedinica otkazaNa arhitekturnom nivouili je u operativnom stanju ili ne.
Funkcije FTServis učlanjivanja (membership service).Upravljanje redundansom.
Na nivou samog čvoraMinimalni nivo servisa (interfejs sa dva displeja).
Detekcija grešaka u čvoruSa kratkom latencijom, i mapiratnje u jedinstveni otkazfail-silent tipa.
Jedinice visoke pouzdanosti (Fault-Tolerant-Units – FTU)
Implementacija fail-silent apstrakcije - dupliranje čvorova.
Rezervni čvor - shadow node
Trostruko modularna redundansaAko čvor prikazuje greške u domenu vrednosti, tada FTUmora da se realizuje sa tri čvora i glasačima (voter).
Egzaktno glasanje Neegzaktno glasanje
FTU sa Vizantinskim usaglašavanjem (Byzantine Resilient) Ako se ne može uvesti nikakva pretpostavka o otkazimačvorova, tada je za formiranje FTU potrebno četiri čvora.
Protokolarni dogovor - Byzantine-resilient agreement.
FTU može da detektuje i toleriše k otkaza čvorova ako:- FTU sadrži najmanje 3k+1 čvorova.- Svaki čvor mora biti povezan sa ostalim čvorovima FTU
preko k+1 nezavisnih veza.- Za detekciju neispravnog čvora potrebno je k+1
komunikacionih rundi među čvorovima.- Čvorovi moraju biti sinhronizovani sa poznatom
preciznošću.
Globalno vremeGlobalno vreme
1. Vreme i redosled
2. Merenje vremena
3. Interna sinhronizacija
4. Eksterna sinhronizacija
Vreme i redosled
Pojam vremena kao nezavisne promenljive.
Definisanje osnovnih fizičnih konstanti.
Garancija konzistentnog ponašanja distrubuiranog sistema.
Vrste redosleda
Vremenski redosled
Redosled trenutaka na vremenskoj osi
Vremenska osa: Beskonačan skup trenutaka{T}sa sledećim pravilima:
{T} je uređeni skup za koji važi da ako su p i q bilo kojadva trenutka, tada je p ili istovremen sa q, ili p prethodi q,ili q prethodi p, uz to da su ovi slučajevi potpuno isključivi.
{T} je zbijeni skup. To znači da postoji makar jedno qizmeđu p i r ako p nije istovetan sa r, gde su p, q i r trenutci.
Deo vremenske ose - trajanje (duration).
Događaj se može odigrati samo u određenom trenutkui nema svoje trajanje.
Simultani događaji - koji se odigraju u istom trenutku.
Trenutci potpuno uređeni - događaji delimično uređeni.
Potpuno uređeni događaji – uvođenjem dodatnih kriterijuma(broj čvora u kome se odigrao događaj).
Uzročni redosled
Značaj u RT primenama.
Alarmni pljusak – primarni događaj.
Vremenski redosled neophodan ali ne i dovoljan za određivanje uzročnog redosleda.
Redosled isporuke
Zastupljen u distribuiranim komunikacionim sistemima.
Sat realnog vremenaFizčki sat: Sat je instrument za merenje vremena.
Brojač i oscilator koji periodično generiše događaje koji inkrementiraju brojač.
Mikrotakt – događaj koji inkrementira brojač.
Granularnost - trajanje između dva uzastopna mikrotakta
Greška digitalizacije pri merenju vremena.
Mikrotakt i sata k je označen kao mikrotaktik.
Referentni sat: jedinstveni sat z frekvencije fz koja ja usaglašena sa međunarodnim standardima vremena.
z(e) - apsolutni vremenski marker događaja e
Drift sata - odnos frekvencija sata k i referntnog sata, u trenutku mikrotakta i.
Odnos trajanja granule sata k i granule referentnog sata
.)()( 1
k
ki
kik
i nmikrotaktzmikrotaktz
drift−
= +
.1)()( 1 −
−= +
k
ki
kik
nmikrotaktzmikrotaktz
ρ
Uzroci: temperatura, napon napajanja, starenje.
Ofset između satova j i k na granuli i
vremereferintnogsata
vreme lokalnog sata
perfektnisat
greška ustanju brojača
driftdobar sat
Modeli otkaza sata
)()( ki
ji
jki mikrotaktzmikrotaktzofset −=
Tačnost
Maksimalni ofset između bilo koja dva sataiz skupa od n satova.
{ }jkinkji ofset
≤≤=Π
,1max
Preciznost
Ofset sata k u odnosu na referentni sat z na mikrotaktu i
Periodična sinhronizacija.
Sandardi vremenaTAI - Temps Atomique Internationale
Sekunda: trajanje od 9 192 631 770 periodaatomskih prelazaka radioaktivnog atoma Cezijuma 133.
UTC - Universal Time Cordinated
Zasnivan na astronomskim merenjima.Vremenske zone na osnovu političkih dogovora.Standard uveden 1972. (Greenwich Mean Time - GMT) .Trajanje sekunde na osnovu TAI – prestupna sekunda.Diskontinuiteti.01.01.1958. u ponoć UTC i TAI imali istu vrednost.
Merenje vremena
Mogućnost sinhronizacije čvorova – lokalni oscilator.Univerzalna vremenska referenca – globalno vreme.
Skup čvorova gde svaki ima lokalni fizički sat ckgranularnosti gk.
Svi satovi interno sinhronizivani sa preciznošću Π.
Podskup mikrotaktova svakog od lokaklnih satova zagenerisnje lokalne implementacije pojma globalnog vremena
Uslov opravdanostiGlobalno vreme t se naziva opravdanim, ukoliko lokalneimplementacije globalnog vremena zadovoljavaju uslov
g > ΠSinhronizaciona gerška manja od jedne makrogranule.
Merenje intervala
),2()2( gddgd obstrueobs +<<−
Unutrašnja sinhronizacija sata
Byzantine greška
Distribuirani sinhronizacioni algoritmi
Jedinstveni čvor, master, periodično šaljeu sinhronizacionim porukama vrednost svog brojačavremena svim ostalim slave čvorovima.
Funkcija konvergencije Φ određena na osnovu razlikenajbrže i najsporije transmisije poruka.
Central-Master sinhronizacija
1. Čvor dobija podatak o stanju brojača globalnog vremenaiz svih ostali čvorova - razmena poruka između čvorova.
2. Analiza prikupljenih informacije, detekcija grešake iizračunavanje korekcione vrednosti za lokalni brojačglobalnog vremena.
3. Podešavanje lokalnog brojača vremena.
Manje od 10usHardver komunikacionog kontrolera
10us do 100usJezgro operativnog sistema
500us do 5msAplikacioni softver
Aproksimativni opseg džiteraAsembliranje i interpretacija
Korekcija stanja nasuprot korekciji frekvencije
Eksterna sinhronizacija sata
Formati vremena
Network Tme Protocol (NTP) – Internet
Cele skunde UTC-4 bajta Binarni delovi sekunde-4 bajta
Opseg vremena sve do 2036, t.j, 136 godina ciklus kruženja
Vremenski ulaz (Time gateway)
•Inicajalizacija klastera na trenutno eksterno vreme.
•Periodično podešavanje globalnog vremena u klasteru.
•Periodično slanje vremenskih poruka.