Tri fundamentalne strukturees.elfak.ni.ac.rs/rts/Materijal/RTS.pdf · 2013-12-06 · Test...

Preview:

Citation preview

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.

Recommended