270 likes | 581 Views
Procesni sistemi vodenja. Operacijski sistemi za delo v realnem času. Vsebina poglavja. Operacijski sistem in RTOS Prednosti RTOS pred GPOS Definicija in naloge RTOS Programi OS kot procesi Jedro Opravila Razvrščanje Komercialno in prosto dobavljivi RTOS Tipi RTOS.
E N D
Procesni sistemi vodenja Operacijski sistemi za delo v realnem času Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Vsebina poglavja • Operacijski sistem in RTOS • Prednosti RTOS pred GPOS • Definicija in naloge RTOS • Programi OS kot procesi • Jedro • Opravila • Razvrščanje • Komercialno in prosto dobavljivi RTOS • Tipi RTOS Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Operacijski sistem in RTOS • Definicija: • Operacijski sistem je program, ki skupaj s funkcionalnostjo računalnika zagotavlja osnovne načine delovanja ter krmili in nadzoruje potek programov. • Glavne zahteve za RTOS: • časovno nadzorovano izvajanje asinhronih opravil za zagotavljanje napovedljivosti in varnosti. • Manj pomembno: • optimalno izkoriščanje razpoložljivih sredstev. Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Prednosti RTOS pred GPOS • Večja zanesljivost, • hitrejše izvajanje, • manjša potreba po pomnilniku, • večja prilagodljivost, • razvrščevalnik prilagojen vgrajenim sistemom realnega časa, • boljša prenosljivost na različne strojne platforme. Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Definicija in naloge RTOS • Definicija: • Operacijski sistem v realnem času (RTOS) mora izvajati integrirano dodeljevanje procesorjev in računalniških virov naborom sodelujočih poslov, tako da bo zadoščeno njihovim časovnim omejitvam. • Osnovne naloge RTOS: • obdelava prekinitev, • krmiljenje izvajanja procesov, • krmiljenje perifernih naprav. • RTOS mora omogočati tudi razvoj, testiranje in izvajanje uporabniških programov. Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Razširjeni nabor nalog RTOS • Obdelava prekinitev, • obdelava napak, • obdelava izjem, • upravljanje procesov, • medprocesna komunikacija, • medprocesna sinhronizacija, • upravljanje realnega časa, • izvedba vhodno/izhodnih operacij, • komunikacija z uporabnikom, • upravljanje s pomnilnikom, • upravljanje zbirk in podatkovnih baz. Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Popoln operacijski sistem v realnem času • Low end: Samo lista opravil • High end: Omejena verzija Linux-aali WinXP • Pomembne zahteve: • predvidljivost (Predictability), • zanesljivost (Reliability), • učinkovitost (Efficiency). Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Programi OS kot procesi • Glede na način kontrole njihovega izvajanja jih delimo na: • Procese prvega reda: • Aktivira jih lahko prekinitev (sistemski ukaz ali klic nadzornika). • Tvorijo jedro operacijskega sistema. • Morajo biti stalno naloženi v delovnem pomnilniku. • Lahko začasno, ne pa trajno oddajo procesor. • Procese drugega reda: • Krmili jih upravljavec procesov, ki je del operacijskega sistema. • Tvorijo lupino operacijskega sistema. Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Model RTOS A – procesi prvega reda B – aplikacijsko neodvisni procesi OS C – aplikacijsko specifični procesi OS D – uporabniški programi Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Izvedba procesov prvega reda Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Prehodi stanj procesov drugega reda Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Jedro Jedro OS realnega časa sestavljajo: • Razvrščevalnik (scheduler): • razporeja opravila in določa, katero opravilo se bo izvedlo ob določenem času. • Objekti (objects): • osnovni gradniki jedra operacijskega sistema in omogočajo izgradnjo aplikacij realnega časa. Tipični objekti so: opravila (tasks), semaforji (semaphores), sporočilne vrste (message queues), itd. • Servisi (services): • operacije, ki jih jedro operacijskega sistema izvaja nad objekti. Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Opravila • Komplekse aplikacije je smiselno razdeliti v manjše programske enote imenovane opravila. • Opravilo je programska koda, ki se sekvenčno izvaja znotraj neskončne zanke. • Ob kreiranju opravila je potrebno navesti sledeče podatke: • ime opravila, • prioriteto opravila (v primeru razvrščanja po prioriteti), • velikost sklada opravila (Task Stack Size), • kodo opravila. Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Komponente posameznega opravila Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Funkcija jedra operacijskega sistema • Vsakemu opravilu določi identifikacijsko številko (ID). • Kreira kontrolni blok opravila (Task Control Block - TCB) in sklad opravila (Task Stack). • V TCB OS shrani informacijo o naslovu kode opravila, o prioriteti opravila itd., medtem ko je sklad opravila namenjen shranjevanju vrednosti lokalnih spremenljivk in vrednosti registrov procesorja ob kontekstnem preklopu. • Ob zagonu razvrščevalnika se avtomatsko kreira še dodatno opravilo t.i. opravilo v ozadju (idle task). To opravilo ima najnižjo prioriteto in se izvaja tedaj, ko se ne izvaja nobeno drugo opravilo ali, ko nobeno drugo opravilo ne obstaja. Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Tipična stanja opravil Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Prekinitev Prekinitev Algoritem v ozadju C1 C2 C3 Stanje izvajanja algoritma TS Opravilo3 (P3) T3 T3 T3 T2 Opravilo2 (P2) T1 Opravilo1 (P1) Enoopravilni in večopravilni sistemi Izvajanje z enoopravilom sistemom – prekinitvena rutina • C1 , C2 , C3- maksimalni časi izvajanja posameznega opravila • Pogoj pravilnega delovanja: C1+C2+C3<TS • Vsa opravila se izvajajo s periodo TS Izvajanja z večopravilnim sistemom • Opravila se izvajajo z različnimi periodami T1 , T2 , T3 , pri čemer velja T1 > T2 >T3 • P1 , P2 ,P3 - prioritete posameznih opravil, pri čemer velja P1 < P2 < P3 • Opravila morajo biti izvedljiva Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Razvrščanje • Razvrščevalnik je srce jedra operacijskega sistema. • Razvrščevalnik na podlagi izbranega kriterija določa, kdaj se bo izvedlo posamezno opravilo. • Splošno obstajata dva tipa razvrščanja: • razvrščanje brez prekinjanja (non-preemptive scheduling) • razvrščevalnik se sproži samo tedaj, ko proces zaključi svoje delo ali, ko sistemski klic opravila ne more biti takoj končan in se za ta čas aktivira drugo opravilo. • razvrščanje s prekinjanjem (preemptive scheduling) • se poleg tega zanaša še na periodičen urin takt, ob katerem se sproži razvrščevalnik, ki izbere opravilo, ki se bo izvajalo v naslednjem urinem taktu. Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Razvrščanje s prekinjanjem - principi • Razvrščanje po prioriteti (priority-based scheduling): • Razvrščevalnik izbere vedno opravilo z najvišjo prioriteto. Problem pri tem načinu je ta, da lahko pride do izstradanja (starvation) nižje prioritetnih opravil – opravilo z nizko prioriteto nikoli ne preide v stanje izvajana. Ta problem je možno rešiti z vpeljavo staranja (opravilu se z časom povečuje prioriteta). • Round Robin razvrščanje: • pri tem razvrščanju dobijo vsa opravila enak interval procesorskega časa. Ko opravilo »porabi« svoj interval se vrne na konec čakalne vrste. Podatkovna struktura, ki jo rabi Round Robin razvrščanje je vrsta, dodaten pogoj pa je, da ima računalniški sistem realizirane urine prekinitve, ki omogočajo da se opravilu odredi samo določen interval (preemptive scheduling). • FCFS razvrščanje (First Come First Served): • najprej se izvede tisto opravilo, ki je prvo prišlo v čakalno vrsto. • SJF razvrščanje (Shortest Job First): • je razvrščanje, ki da prednost procesom s krajšim časom preostanka izvajanja. Problem tega načina razvrščanja je, da ne vemo kako dolgo se bo proces še izvajal. Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Razvrščanje poprioriteti s prekinjanjem Se v večini uporablja v RTOS Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Opravilo3 (P3) T3 T3 T3 Opravilo3 (P3) T3 T3 T3 T2 Opravilo2 (P2) T2 Opravilo2 (P2) T1 Opravilo1 (P1) T1 Opravilo1 (P1) Razvrščanje poprioriteti s prekinjanjem Ctick Ttick Opravilo3 (P3) T3 T3 T3 T2 Opravilo2 (P2) T1 Opravilo1 (P1) Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Prosto dostopni: eCos FreeRTOS Phoenix-RTOS RTAI RTEMS RT-Linux TRON Project itd. Komercialno dobavljivi: QNX MicroC/OS-II VxWorks Windows CE LynxOS OSEK/VDX Symbian OS Phar Lap ETS REX OS-9 Nucleus itd. Komercialno in prosto dobavljivi RTOS Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Tipi RTOS • Majhna, namenska jedra • Majhni vgrajeni sistemi, kjer se zahteva zelo hitro in predvidljivo delovanje. • Nadgradnja klasičnih operacijskih sistemov • Večje aplikacije, ki tečejo v mehkem realnem času. • Raziskovalni operacijski sistemi • Uvajajo nove koncepte. Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Tipi RTOS - Majhna, namenska jedra • Izvedbe: • “domače” izvedbe • komercialni izdelki: QNX, pSOS, VxWORKS • Lastnosti: • hiter preklop konteksta, • majhna poraba pomnilnika, • minimalna funkcionalnost, • hitri odzivni časi na zunanje signale, • brez navideznega pomnilnika, • omogočajo zaklepanje posameznih segmentov pomnilnika, • omejeni izvajalni časi večine osnovnih funkcij, • vzdrževanje ure realnega časa, • omogočanje alarmov in “time-out” mehanizmov. Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Tipi RTOS - Nadgradnja klasičnih OS • Izvedbe: • RT-UNIX, RT-MACH, CHORUS, Windows CE • Lastnosti: • So manj predvidljivi od majhnih namenskih RTOS. • Imajo večjo funkcionalnost. • Vsebujejo razvojna orodja. • Aplikacijski vmesniki so standardni (POSIX P.1003.4). Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Domača naloga Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času
Možna vprašanja na izpitu • Naloge operacijskega sistema. • Razlike RTOS – GPOS. • Kaj sestavlja jedro OS? • Razvrščevalnik, opis in naloge. • Tipi RTOS. Procesni sistemi vodenja - Operacijski sistemi za delo v realnem času