Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
1
RACUNARSKI SISTEMi REALNOG VREMENA
LITERATURA :1. William Stallings:Operating Systems
Forth Edition , Prentice Halls
2. Giorgio C. Buttazzo: Hard Real-Time Computing Systems- Predictable Scheduling Algorithms and Applications“, Kluwer
Academic Publishers
3. Hermann Kopetz: “Real-Time Systems: Design Principles forDistributed Applications“, Kluwer Academic Publishers
4. Jane W. S. Liu: „Real-Time Systems “, Prentice Hall
2
RACUNARSKI SISTEMi REALNOG VREMENA
LITERATURA :5. Wind River Systems, Inc. ( 2008 )
An introduction to multicore technology and VxWorks SMP.
6. Jacek Blazewicz, Klaus H. Ecker, Erwin Pesch, Günter Schmidt , Jan WeglarzHandbook on scheduling ( fFrom theory to application)Springer, 2007
7. Rob McCammon, Wind River, 2009Wind River Solutions for Multiprocessing and Multicore
8. Qing Li, Caroline Yao ( 2003 )Real-Time Concepts for Embedded Systems, CMP Books
3
DESIGN OF RTOS SYSTEMS
Definicije i ciljevi:Definicija :Operativni sistem je program koji :
* kontrolira izvršenje aplikacionih programa* djeluje kao interfejs izmedju aplikacija i računarskoghardvera.
Ciljevi :* Pogodnost: lakše korištenje kompjutera* efikasnost: efikasnije korištenje računarskih resursa* mogućnost proširenja: dozvoljava laganu integraciju novihservisa
4
DESIGN OF RTOS SYSTEMS OS kao korisnički interfejs
Hijerarhijski pogled na računarski sistem:
5
DESIGN OF RTOS SYSTEMS Servisi koje obezbjedjuje operativni sistem
* Razvoj programa : Alati kao editori, debageri. Ovi alatiobićno nisu dio jezgre operativnog sistema ( core ).* Izvršenje programa: Niz zadataka koji je potreban da seizvrši program ( punjenje podataka i instrukcija umemoriju, inicijalizacija I/O uredjaja i fajlova , ..itd).* Pristup I/O uredjajima: Svaki I/O uredjaj zahtjevaposebne kontrolne signale. OS obezbjedjuje taj interfejsda bi ga sakrio od korisnika.* Pristup fajlovima: Locira fajlove na I/O uredjajima,iskorištava njihovu strukturu. Štiti pristupe fajlovima uslučaju kada ima više korisnika.
* Pristup sistemu: OS upravlja pristup korisnika sistemui razriješava potencijalne konflikte.
6
DESIGN OF RTOS SYSTEMS * Otkrivanje grešaka i odgovor na njih: Bilo koja vrsta grešaka
hardverske ili softverske se detektuju i sa njima rukuje na odgovarajući način.* Evidencija: Prikuplja informacije o statistici korisnika, podešava sistem na bazi ovih podataka. Na višekorisničkim mašinama kao i na virtualnim masinama u cloudu ove informacije mogu biti korištene i za naplatu usluga.
OS kao menadjer resursa* Računar je skup resursa koji pomjera, pohranjuje i procesira podatke i u isto vrijeme kontrolira ove operacije.* Operativni sistem kontrolira ove operacije, ali:* OS funkcionira kao obićni računarski program, tj. on je skup
programa koje procesor izvršava.
* OS često oslobadja kontrolu nad procesorom i prenosi je na aplikacioni program, i zavisi od procesora da dobije ponovo kontrolu nad njim .
7
DESIGN OF RTOS SYSTEMS * Jedina razlika izmedju OS i drugih programa je u namjeni
programa. OS upravlja procesorom da bi izvršavao aplikacione programe. Kada se ovi aplikacioni programi izvršavaju, OS prenosi kontrolu nad procesorom aplikacionom programu. Jedini način da je ponovo povrati je hadverski interupt.
Resursi kojima upravlja OS
8
DESIGN OF RTOS SYSTEMS Glavni principi Operativnih sistema
Danas su Operativni sistemi najkompleksniji diosoftvera koji je ikada razvijen. Tako naprimjer OS zakontrolu telefonskih centrala su medju rekorderima.Principi koji se primjenjuju su:
* Procesi* menadjment memorije* zaštita informacija* rasporedjivanje i menadjment resursa* struktura sistema
Pogledajmo u nastavku detaljnije ove principe.
9
DESIGN OF RTOS SYSTEMS
ProcesiProces se sastoji iz tri komponente
* programa koji se izvršava* podatci koji su potrebni za izvršenje programa* kontekst u kojem se program izvršava
Ovaj posljednji element je najbitniji.* Izvršni kontekst ( takodjer se naziva i stanjemprocesa – process state) , uključuje sve informacijekoje OS treba, da bi korektno upravljao procesom.* to uključuje sadržaje različitih registara ( uključujućii programski brojač – PC program counter ).
10
DESIGN OF RTOS SYSTEMS *to takodjer uključuje i informacije za OS kao što su:
- prioritet procesa- da li proces ćeka na kompletiranje I/O.
Tipične implementacije procesa
11
DESIGN OF RTOS SYSTEMS
Procesi: preključenje konteksta* Pokazano na prethodnom slajdu je izvršenje procesa.Proces k je pohranjen u glavnoj memoriji, pošto se vjerovatnoizvršavao, ali je iz nekog razloga zamjenjen sa procesom i.Ova procedura se naziva preemption ( ispražnjenje ). Usituaciji koja je prikazana na slici, k je u stanju ćekanja (waiting state) , dok je proces i u stanju izvršenja ( runningstate).*Procedura zamjene jednog procesa sa drugim se nazivapreključenje sadržaja ( context switch).
*U obadva slućaja sva relevantna informacija o procesu jesmještena u kontekstu. Specifična vrijednost PC ( programskibrojač) u procesu k u trenutku preključenja konteksta jepohranjena u kontekstu.
12
DESIGN OF RTOS SYSTEMS
Na taj način, puneči procesorske registre sa vrijednostima kojesu pohranjene u kontekstu, proces k će nastaviti da seizvršava kod potpuno iste lokacije gdje je bio ispražnjen( preempted). Ovo se naziva preuzimanje procesa (resuming ).
Menadjment memorije
•Korisnici žele podršku za modularno programiranje kao ifleksibilno korištenje podataka.
*Menadjeri sistema žele da imaju efikasnu i blagovremenukontrolu nad alokacijom memorije.
* Ovo je obadvoje obezbjedjeno putem upravljanja memorijom.Njeni primarni zadatci su:
13
DESIGN OF RTOS SYSTEMS
- Izolacija procesa: Spriječiti procese da pristupajumemorijskom prostoru drugih procesa.- Automatska alokacija i menadjment: Memorijskiprostor za programe treba biti automatski alociran krozčitavu hijerarhiju memorije. Ovo treba biti transparentnoza korisnika ( tj. da on ovo i ne uočava ).- Podrška za modularno programiranje. Programeritrebaju biti u stanju da kreiraju i unište objektepodataka.- Zaštita i kontrola pristupa. Ako je potrebna dijeljenamemorija, ovo treba biti organizirano na siguran način,izbjegavajući medjusobno uništavanje memorijskogprostora drugog procesa.- Dugovremeno pohranjivanje: Mnoge aplikacijezahtjevaju da se informacije pohranjuju i nakon što sese računar isključi.
14
DESIGN OF RTOS SYSTEMS
Virtuelna memorija
Svi gore pobrojani zahtjevi su podržani od strane :Virtuelne memorije i sistema fajlova:
* Virtuelna memorija omogućava programima da adresiraju salogičke tačke gledišta, bez obzira na kolićinu memorijekoja je fizički na raspolaganju.
* Logičkoj memoriji se pristupa putem blokova fiksne velićine,koji se zovu stranice ( pages). Program adresira riječpomoću virtuelne adrese, koja se sastoji od brojastranice i ofseta unutar stranice.
* Svaki proces nezavisno adresira svoje stranice.* Svaka stranica procesa može biti locirana bilo gdje u glavnoj
memoriji ili negdje na disku.
15
DESIGN OF RTOS SYSTEMS * Sistem stranica obezbjedjuje dinamičko mapiranje izmedjuvirtuelnih adresa koje koristi program i realnih adresa u glavnojmemoriji.* Informacija o tome gdje je fizička stranica u odnosu na
virtuelnu se održava u tabeli strana ( Page table). Svaki procesima svoju tabelu strana ( page table). Kada je zahtjevanafizička strana sa diska, ona se pohranjuje negdje u glavnumemoriju i ažurira se tabela stranica.
Primjer virtuelne memorije
16
DESIGN OF RTOS SYSTEMS Virtuelna memorija : Transformacija adresa
17
DESIGN OF RTOS SYSTEMS
Virtuelno adresiranje : Hardverska podrška
Zaštita informacija i sigurnostPostoje tri glavne kategorije podrške koje nude operativnisistemi:* Kontrola pristupa: Regulira pristup korisnika totalnom
sistemu ili podsistemima ( čak i individualnim data objektima ).Reguliranje pristupa procesa raznim resursima i objektimaunutar sistema.
18
DESIGN OF RTOS SYSTEMS * Kontrola toka informacija: Regulira tok podataka unutarsistema i njihovo isporućivanje korisnicima.* Certificiranje: Potvrdjuje da pristup i tok mehanizma kontrole
toka podataka se izvršavaju prema njihovim specifikacijama.
Kontrola pristupa kao dio prevodjenja adresa
19
DESIGN OF RTOS SYSTEMS
Rasporedjivanje i menadjment resursaGlavni zadatak operativnog sistema: upravljati različitimresursima ( glavnim memorijskim prostorom, I/O uredjajima,procesorima ), i rasporedjivati njhovo korištenje od straneaktivnih procesa.Tri faktora trebaju biti razmatrana:
* Korektnost ( fairness): Svi procesi koji se nadmeću zakorištenje nekog specifićnog resursa, trebaju imatipribližno isti i fer pristup ovom resursu.* Diferencirana odzivnost: Operativni sistem možda ćemorati da pravi razliku izmedju različitih klasa poslova (jobs), sa različitim zahtjevima za uslugama. Napr.proces koji je rezervirao neki I/O uredjaj, možedobiti veći prioritet da bi mogao da oslobodi resurs što jeprije moguće.
20
DESIGN OF RTOS SYSTEMS
* Efikasnost: Operativni sistem treba pokušati da maksimizirapropusnost i minimizira vrijeme odziva.
Pošto su ovi zahtjevi djelomićno kontradiktorni, trebaće naćineki balans izmedju njih.
Rasporedjivanje unutar Operativnog sistema
21
DESIGN OF RTOS SYSTEMS
Rasporedjivanje*Operativni sistem održava više redova, svaki je lista procesa,koji ćekaju na neki resurs.* Kratkoročni red: procesi koji su u glavnoj memoriji i spremnina izvršenje.* Kratkoročni rasporedjivač ( takodjer se naziva i Dispečer):izabire jedan proces i prenosi kontrolu na ovaj proces.* Zajednička strategija: daje svakom procesu u redunaizmenično neko vrijeme. Ovo se zove Round-Robin tehnika.* Dugoročni red: novi poslovi koji ćekaju da koriste procesor.
Rasporedjivač prebacuje takve poslove u kratkoročni red idoznačuje im izvjesni memorijski prostor. Ovo se radi na bazineke strategije.
22
DESIGN OF RTOS SYSTEMS * Postoji po jedan I/O red po uredjaju. To znači da više odjednog procesa može zahtjevati korištenje ovog uredjaja.Rasporedjivač odlučuje koji od procesa koji ćeka za korištenjeuredjaja biće prvi uslužen.* Operativni sistem dobija kontrolu samo od jednog hendlera
interapta kada se pojavi interapt ( napr. tajmerski interapt ).
Struktura sistemaOperativni sistemi su vrlo veliki i kompleksni softverski sistemi iimaju tendenciju daljeg rasta. Primjeri:
1964: IBM OS/360 1 M liniju koda1975 : MIT Multics 20 M linija koda2000: MS Windows 2K 32 M linija koda2002: MS WinXP 40M linija koda
2007: MS Vista 50M linija koda( prosjek je 1 greska/1000 linija koda, tj. 500.000 u Visti)
23
DESIGN OF RTOS SYSTEMS
Metode da se vlada ovom kompleksnošću :- Modularni softver sa dobro definiranim interfejsom- Hijerarhijski slojevi- informacione abstrakcije
Slojna softverska struktura
Razdjeljivanje funkcija u skladu sa njihovom kompleksnošću,njihovom vremenskom skalom i njihovim nivom abstrakcije.* Svaki nivo izvršava izvjesni skup funkcija ( takodjer nazvanservisima). Obićno to zavisi od servisa koje obezbjedjujeslijedeći niži nivo i obezbjedjuje servise slijedećem višemnivou.
24
DESIGN OF RTOS SYSTEMS
*Niži nivoi imaju mnogo kraća vremena izvršenja. Neki dijelovioperativnog sistema interaktiraju direktno sa hadverom. ( tj. unanosekundnom ili mikrosekundnom vremenskom intervalu).
* Viši nivoi rade na mnogo sporijim vremenskim intervalima.
Idealni slojevi Operativnog sistema ( E. Dijkstra )
25
DESIGN OF RTOS SYSTEMS
26
DESIGN OF RTOS SYSTEMS Hardverski nivoi
Nivo 1: Elektronska kola kao što su registri, itd.. Tipičneoperacije su prenosi podataka izmedju registara i aritmetičkeoperacije.
Nivo 2: Instrukcioni set procesora. Obezbjedjuje cjelokupan setrapoloživih mašinskih instrukcija.
Nivo 3: Dodaje koncept procedure ili subrutine uključujući icall-return operacije.Nivo 4: Uvodi interapte ( prekide), koji prouzrokuju da procesorpohranjuje tekući sadržaj i poziva servisnu rutinu prekida(ISR ).
Ovi nivoi su dio hardvera, a ne operativnog sistema. Medjutimsam sistem interapta je u vrlo tijesnoj sprezi sa Operativnimsistemom.
27
DESIGN OF RTOS SYSTEMS
Jednoprocesorski nivoi* Nivo 5: Uvodi se koncept procesa kao programa u izvršenju.Zahtjevi na operativni sistem: podrška za višestruke procese:tj. obezbjedjuje servise da suspenduje i ponovo aktivira (resume) procese . Ovo će dovesti do metoda da se pohranekonteksti. Ako procesi kooperiraju potreban je i neki metodnjihove sinhronizacije.* Nivo 6: Radi sa sekundarnom memorijom računara. Funkcijeza pozicioniranje (read/write) glava za čitanje i pisanje seobezbjedjuju za ovo i uvodi se transfer blokova podataka.Putem nivoa 5, procesi koji traže ove usluge se obavještavajuo izvršenju ovih operacija.* Nivo 7: Kreira logičku adresu prostora za procese. Organiziravirtuelni adresni prostor u blokovima koji se mogu pomjeratiizmedju glavne memorije i sekundarne memorije.
28
DESIGN OF RTOS SYSTEMS
Nivoi djelovanja na vanjske uredjaje
* Nivo 8: Komunikacija informacija i poruka izmedju procesa.Nivo 5 obezbjedjuje primitivnu sinhronizaciju, nivo 8 je bogatijiu dijeljenju informacija. Pajp ( pipe) je izlaz iz jednog procesa iulaz u drugi proces.
* Nivo 9: Dugovremena memorija imenovanih fajlova. Podatciu sekundarnoj memoriji se sada posmatraju kao abstraktnientiteti varijabilne dužine.
* Nivo 10: Obezbjedjuje pristup vanjskim uredjajima koristećistandardne interfejse.
29
DESIGN OF RTOS SYSTEMS
* Nivo 11: Je odgovoran za održavanje asocijacije izmedjuvanjskih i unutarnjih identifikatora. Vanjski identifikatori suimena koja daju korisnici. Unutarnji identifikatori su adrese.
* Nivo 12: Obezbjedjuje potpune usluge za podrškuprocesima. Na ovome nivou sve informacije koje su potrebneza menadjment procesa su obezbjedjene.
* Nivo 13: Obezbjedjuje interfejs korisnika sa operativnimsistemom. Naziva se školjkom ( shell) pošto odvaja korisnikaod detalja OS. Predstavlja OS kao jednostavnu kolekcijuservisa.
30
DESIGN OF RTOS SYSTEMS
Bazična arhitektura Windows 2000 OS
31
DESIGN OF RTOS SYSTEMS
32
DESIGN OF RTOS SYSTEMS
Niži abstraktni nivoi Win 2K* Hardverski abstraktni nivo ( HAL – hardware abstractionlayer): Izolira OS od razlika u hadveru platformi na kojima jeinstaliran. Na taj način se postiže da hadverske karakteristikerazličitih arhitektura izgledaju slićne jedne drugima.
* Mikrokernel : se sastoji od najčešće korištenih i najosnovnijihkomponenti OS, tj. :
- rasporedjivanja konaca ( thread scheduling)- prekljućenja procesa ( process switching )- multiprocesorska sinhronizacija
Mikrokernelski kod se ne izvršava u koncima , tj. on je jedinidio operativnog sistema koji nije priemtive ( ne stavlja se nastek radi učitavanja drugog programa) niti je rasporediv postranicama virtuelne memorije ( pageable).
33
DESIGN OF RTOS SYSTEMS * Drajveri za uredjaje ( device drivers): Uključuju i fajl sistem idrajvere za hadverski uredjaj. Ovaj drajver za uredjaj prevodikorisničke I/O funkcionalne pozive ( I/O function calls) uspecifične I/O zahtjeve prema hadverskom uredjaju.
Win2k executiveI/O menadjer : Obezbjedjuje okvir kroz koji aplikacije mogupristupiti I/O uredjajima. On je odgovoran za rasporedjivanjena odgovarajuće drajvere uredjaja. Nameće zahtjevesigurnosti i imenovanja za uredjaje i fajl sisteme ( koristećiobjektni menadjer ).Objektni menadjer: Kreira, upravlja, i briše W2K izvršneobjekte i abstraktne tipove podataka koji su se koristili da bi sepredstavili resursi kao što su: procesi, konci ( threads), isinhronizacija objekata. Takodjer kreira objektne hendlove, kojise sastoje od informacije o kontroli pristupa objektu kao ipointera na taj objekat.
34
DESIGN OF RTOS SYSTEMS
Monitor reference sigurnosti: kreira i briše objekte i pratiprocese i ukončava objekte.* Servis poziva lokalne procedure ( LPC – local procedurecall): Nameće klijent/server relaciju izmedju aplikacija i izvršnihpodsistema unutar jedinstvenog sistema.
Menadjer virtuelne memorije : Mapira virtuelne adreseadresnog prostora procesa na fizičke strane u memorijiračunara.Menadjer keša ( cache manager ): Poboljšava performanse fajlbaziranih I/O na taj način što obezbjedjuje da zadnjereferencirani podatci sa diska ostaju u glavnoj memoriji nekokraće vrijeme prije nego što ih pošalje ponovo na disk.Moduli prozorske grafike : kreira prozorski orijentirani ekranskiinterfejs i upravlja grafičkim uredjajima ( GDI- graphic displayinterface)
35
DESIGN OF RTOS SYSTEMS
Win2K korisnički procesiOvi procesi se povezuju koristeći dinamički povezive biblioteke( dynamically linked libraries- DLL )
* Specijalni procesi sistemske podrške : uključuju servise kojinisu obezbjedjeni kao dio Win2K OS, kao što je proceslogiranja i menadjer sesije.
* Serverski procesi: Drugi W2K servisi kao što je naprimjerzapisivač dogadjaja ( data logger)
* Podsistemi okruženja ( environment subsystems): Izlažuizvorne W2K servise korisnikovim aplikacijama i na taj načinobezbjedjuju OS okruženje, ili personalizaciju.
36
DESIGN OF RTOS SYSTEMS Podržani podsistemi su:
- Win32- Posix ( "Portable Operating System Interface )
- OS-2
U svakom od ovih slučajeva izvorni pozivi ( native calls) seprevode u W2K pozive.
* Korisničke aplikacije
37
DESIGN OF RTOS SYSTEMS Bazična arhitektura UNIX-a
38
DESIGN OF RTOS SYSTEMS
39
DESIGN OF RTOS SYSTEMS
Unix je multitasking, multiuser OS koji je dizajniran od početkada bude mali i efikasan kada je u pitanju real-time procesiranjeinformacija. OS dizajn u suštini uključuje efikasnu kontrolu OSnad resursima ( HD, traka, ekran, fajl sistem, itd), tako damnogo aplikacija mogu da se izvršavaju konkurentno.Arhitektura Unixa je relativno jednostavna. Unix realizujevećinu svojih funkcionalnosti putem Kernela, koji je ustvari blokkoda koji podržava sve interakcije sa korisničkim aplikacijama,šelovima, itd. Pored kernela su i device drajveri , kojiomogućavaju aplikacijama da putem kernela interaktiraju sauredjajima koji su raspoloživi na sistemu.Kernel je dizajniran da bude fleksibilan- Unix tradicionalno sedistribuira kao paket fajlova izvornog koda u C programskomjeziku. Ciljni sistem ima dakle ili Unix implementaciju sa Ckompajlerom, koji može da rekompilira najnovije zakrpe idopune kernela i da na taj način kreira novi operativni sistem
40
DESIGN OF RTOS SYSTEMS kao izvršni kod koji će se izvršavati nakon što se provedeshutdown i ponovno butiranje sistema.U posljednje vrijeme , zbog standardizacije koja je uvedena naPC platformama, može se dobiti i prikompajlirana distribucijaUnixa, sa većinom onih funkcionalnosti koje zahtjeva korisnikza multikorisnički rad.U svakom od ovih scenarija, sam kernel radi malo aktivnostisam. Proces butiranja za Unix ( lociran na but sektoru HD, ili uROM-u , kod radnih stanica ), će početi proces punjenja kodaza kernel u RAM. Sam kernel se može posmatrati kaokolekcija standardnih funkcionalnosti ( napr. fopen(), fclose(),itd), dobijenih putem sistemskih poziva ka kernelu iz sameaplikacije. Podsjetimo se da su kod DOS okruženja, funkcijekao fopen() ustvari samo omotači ( wrappers) oko osnovnihnisko nivovskih DOS servisa kao što su otvaranje handla zafajl, zatvaranje hendla za fajl, itd.
41
DESIGN OF RTOS SYSTEMS Kod DOS-a, visoko nivovski wrapper kod, kojeg obezbjedjujeproizvodjač računara, će napraviti interapt poziv ka DOSkernelu, koji će zatim obraditi zahtjev i snadbjeti aplikaciju sazahtjevanim informacijama.Kod Unixa, funkcionalnost visokog nivoa se ugradjuje direktnou kernel. Aplikacije će dinamički se povezivati na kernel kadashell ili druga aplikacija instruira kernel da izvrši dati program.Dinamičko povezivanje se ostvaruje izbjegavajući dupliciranjevelikog volumena zajedničkog koda od aplikacije do aplikacije (slično kao i kod DLL koncepta kod Windowsa, koji je Microsoftprikazao kao svoj revolucionarni novi koncept u gradnji OS ).Kernel takodjer sadrži veliki broj funkcionalnosti zamenadjment resursa, kao menadjere memorije, menadjere fajlsistema , menadjere mreže, menadjere medjuprocesorskekomunikacije, itd. Upravo je ova fukcionalnost menadjmenta
42
DESIGN OF RTOS SYSTEMS
je ono što čini Unix izvanrednim OS da može da podrži stotineistovremenih korisnika od kojih svaki interaktira sa sistemom.Funkcionalnost kernela u menadjmentu procesa je takodjerveliki kvalitet Unixa. Vrlo malo vremena se provede upreključenju jedne aplikacije na drugu, tako da je sistemmnogo efikasniji za multitasking nego Windows OS.Ono što kernel ne obezbjedjuje aplikacijama je pristuphardveru. Interakcija sa hardverom se organizuje putem devicedrajvera koji se mogu kastomizirati za svaki tip radne stanice.DOS je umnogome vezan za PC platformu, većina podrške naniskom nivou za fajl sistem je bazirana na BIOS konfiguraciji ihardverskoj konfiguraciji standardnog PC sistema, što činiportabilnost DOS-a nemogućom.Pošto Unix aplikacije prave kernel funkcionalne pozive, Unixaplikacije su općenito u potpunosti portabilne na neki drugiUnix sistem, bez obzira ko je proizvodjač tog sistema.
43
DESIGN OF RTOS SYSTEMS Na taj način razvojni inženjeri softvera mogu maksimiziratiekikasnost nekog softverskog modula pišući ga ustandardnom C jeziku, i koristeči univerzalno prihvaćeniPOSIX set funkcija, koje podržavaju svi moderni Unix sistemi (Widows NT je ranije imao podršku za posix podsistem poziva,ali je u zadnjoj verziji Win NT 6 ( Vista ) i Windows 7 izostaviotu podršku, ali je prisutna u Windows CE)Struktura procesaUnix izvršava aplikacije u tkz ‘’user’’ modu, dok se sam kod
kernela izvršava u ‘’kernel’’ ili ‘’privilegovanom’’ modu. Razlikesu vrlo važne, kernel kod je kastomizirani, putem devicedrajvera za datu hardversku platformu, tj, kernel može koristitiprednosti putem device drajvera, od specijaliziranihfunkcionalnosti procesora, koje čine multitasking aplikacijamnogo lakšim u izvršavanju.U ‘’user’’ modu u kojem se izvršavaju aplikacije, one suograničene u njihovim mogućnostima da pristupe nekim instru-
44
DESIGN OF RTOS SYSTEMS kcijama procesora, i nadalje, sistem je u mogućnosti da vodikontrolu nad tim šta aplikacija kod izvršavanja radi saresursima kao što je memorija, fajlovi, itd. Nezavisno od bilokoje druge aplikacije. Takvi koncepti kao što su menadjmentmemorije virtuelna memorija, itd, nisu samo korišteni uDOS/Windows OS, nego su mnogo prije toga bili uvedeni i uUnixu.Aplikacije koje se izvršavaju u ‘’user’ modu su na taj načinzaštićene jedna od druge kroz ogranićenja koja su postavljenana kod koji se može izvršavati u ovom modu. Pošto se nemogu koristiti privilegovane instrukcije, i pošto se pristupmemoriji kontrolira preko sistema, kod koji se izvršava u ‘’user’’modu u opštem slučaju neće koruptirati kernel ako se u njemunalazi i neki neodgovarajući dio koda.Kod izvršavanja Unix aplikacija, ako one pokušaju da izvršeneke privilegovane operacije, bit će ugašene (shut)od strane
45
DESIGN OF RTOS SYSTEMS
OS sa porukom greške ‘’priviledge fault’’ ili ‘’page fault’’ ako jepokušala da pristupi memorijskoj lokaciji van svog opsega, ilineki drugi uslov.Input/output i pajpingUnix aplikacije rade na slićan način kao i Windows konzolneaplikacije, podržavaju ulaze sa tastature i izlaze u tekst modu.Unix podržava sve standardne ulazno/izlazne mehanizme,uključujući C funkcije kao printf(), gets(), itd. Kao i kodWindows konzola, ovi se standarni izvori mogu preusmjeriti.Na taj način, izlaz iz date komande se može preusmjeriti da ideu fajl ili na uredjaj koristeći ‘>’ simbol , da se usmjeri izlaz sanormalnog ‘’stdout’’ cilja. Takodjer ulaz za datu komandu semože očitati sa fajla ili uredjaja koristeći simbol ‘< ‘ , da sepovuće ulaz iz fajla a ne sa standardnog ulaza odredjenog sa‘’stdin’’. Unix podržava mogućnost selekcije na koji ulazni iliizlazni resurs želimo da preusmjerimo.
46
DESIGN OF RTOS SYSTEMS Tako možemo koristiti broj ispred simbola za preusmjerenje,da ovo postignemo, 0 indicira stdin, 1 indicira stdout, i 2indicira stderr ( tj grešku u destinaciji , tj da preusmjerenje nijeuspjelo ).Tako ako napr. želimo da dobijemo izlaz greške kod izdavanjakomande, pisaćemo:
Command 2> filenameOvo će prisiliti da stderr izlaz ( izvor fajla 2 ) bude poslat u fajlčije je ime ‘’filename’’.Možemo koristiti i standardni pajp simbol ‘|’ tj. vertikalnu liniju,da omogućimo da izlaz iz jedne komande ide u ulaz drugekomande. Unix će ovo multitaskirati, tako da će za vrijemeizvršenja prvog programa generisati izlaz u FIFO objekat kojiće automatski biti kreiran od strane shella, i za vrijemeizvršenja drugog programa će pročitati podatke iz FIFO bafera.
47
DESIGN OF RTOS SYSTEMS
Bazična arhitektura modernih UNIX sistemaModerni UNIX sistemi ( System V release 4 ( SVR4), Solaris,BSD) , su organizirani na mnogo modularniji način kao naslijedećem blok dijagramu:
48
DESIGN OF RTOS SYSTEMS
Bazna arhitektura LINUX-a
LINUX je izvorno bio napisan od strane Torvaldsa kao UNIXvarijanta za IBM PC računare. Za razliku od većine UNIXsistema, koji su monolitni kerneli, LINUX slijedi modularnustrukturu, koristeći punive module ( loadable modules).Ovi moduli imaju dvije vrlo važne karakteristike:* Dinamičko povezivanje: Kernelski modul se može napuniti ipovezati sa kernelom i kada je kernel već u memoriji i izvršavase. Modul se takodjer može razvezati ( unlink ) i otkloniti izmemorije u bilo kojem trenutku vremena.Nadsloživi moduli ( stackable modules): Moduli su aranžirani uhijerarhiji. Individualni moduli služe kao biblioteke kada sereferenciraju od klijentskih modula koji su visoko iznad uhijerarhiji, a kao klijenti kada referenciraju module koji su ispodnjih u hijerarhiji.
49
DESIGN OF RTOS SYSTEMS
Lista primjera LINUX kernelskih modula( Prikazana je situacija nakon punjenja samo dva kernelskamodula : FAT i VFAT )
50
DESIGN OF RTOS SYSTEMS
PROCESI* Da bi se program izvršio kreira se Proces ili Task.* Možemo karakterizirati ponašanje individualnog procesaizlistavajući sekvencu instrukcija koje se izvršavaju za ovajproces. Ovo se zove praćenje traga ( trace ) procesa.* Procesor ne vidi individualne tragove procesa nego samopreklopljenu ( interleaved) totalnu sekvencu koja je rezultatizvršavanja ovih procesa na preklapajući način, zajedno saumetnutim instrukcijama čije je porijeklo sam operativni sistem.* U narednom primjeru mi ćemo predpostaviti tri procesa idispečer OS-a koji se pune u glavnu memoriju, i da nemavirtuelne memorije. Predpostavićemo da svaki proces imatajm-out nakon 6 instrukcija, i dispečer treba narednih 6instrukcija da izvrši preključenje konteksta ( context switch). Urealnosti potrebno je mnogo više instrukcija za ovo a i time-outise dešavaju nakon mnogo većeg broja instrukcija.
51
DESIGN OF RTOS SYSTEMS
* Zahtjev za I/O operacijom će takodjer dovesti do toga daproces mora da ćeka , tj. i u ovom slućaju se izvršavapreključenje konteksta ( context switch).Primjer : Mapa memorije ( snapshot snimak )
52
DESIGN OF RTOS SYSTEMS
Primjer : Tragovi procesa
53
DESIGN OF RTOS SYSTEMS
Primjer: Pogled na procesor
54
DESIGN OF RTOS SYSTEMS
Model procesa sa dva stanja
U slućaju najednostavnijeg modela, proces može biti ili uizvršenju ili ne. Ovo vodi do najednostavnijeg modelaprocesa kao na slici:
55
DESIGN OF RTOS SYSTEMS
Dispečer predstavljen kao operacija stavljanja u redćekanja
Novo kreirani procesi kao i oni koji se zaustavljeni seunose u red ćekanja. Dispećer, kada se aktivira, uzima prvielement u redu i prenosi kontrolu nad procesorom ovomprocesu:
56
DESIGN OF RTOS SYSTEMS
Dodatna stanja* Kreiranje procesa: Kada novi proces treba da budekreiran, operativni sistem gradi potrebne strukturepodataka i alocira memorijski prostor procesu.* Završavanje procesa: Kada je proces završen, bilo zbognormalnog završetka ili zbog grešaka, memorijski prostorse vraća na raspolaganje operativnom sistemu i uklanjajuse strukture podataka procesa.
* Procesi koji se ne izvršavaju trebaju se medjusobnorazlikovati kao oni koji samo ćekaju na procesor ( tj. onimogu da se izvršavaju odmah) , i one koji ćekaju na nekidrugi uredjaj ( napr. I/O uredjaj).
* Ovo vodi do modela izvršenja procesa sa pet stanja kaona slijedećoj slici :
57
DESIGN OF RTOS SYSTEMS
Model izvršenja procesa sa pet stanja
Stanja ćekanja su prouzrokovana ogranićenjima resursa* Running: Proces koji se trenutno izvršava* Ready: Proces koji je spreman za izvršenje kada mu
se da prilika* Blocked: Proces koji se ne može izvršavati sve dok seneki dogadjaj ne pojavi, kao što je naprimjer neka I/Ooperacija.
58
DESIGN OF RTOS SYSTEMS
* New: Proces koji je upravo bio kreiran ali još nije bio primljenu bazen onih procesa koji se izvršavaju od strane operativnogsitema. Tipično, novi proces nije još bio napunjen u glavnumemoriju.
* Exit: Proces koji je oslobodjen iz bazena izvršavanih procesaod strane OS, bilo zbog toga što je zadržan ili je odbačen iznekog razloga ( aborted).
Model sa pet stanja : Tranzicije medju stanjima
* Null-> New: Novi proces je kreiran da bi se izvršio program.* New-> Ready: OS će pomjeriti proces iz New stanja u Readystanje kada je on spreman da preuzme još jedan dodatniproces. Većina OS ima neku granicu broja procesa koji semogu izvršavati.
59
DESIGN OF RTOS SYSTEMS
* Ready-> Running: Kada je vrijeme za novi proces da seizvršava, OS bira jedan od procesa iz ready stanja. Selekcijamože biti sofisticiranija nego što je to Round-Robin pristup.
* Running-> Exit: proces koji se trenutno izvršava se okončavaod strane OS ako proces indicira da se kompletiralo njegovoizvršenje ili ako je odbačen ( aborted).
* Running-> Ready : Najčešći razlog za ovu tranziciju je da jeproces koji se izvršava dostigao svoj maksimalni neprekinutiinterval vremena za izvršenje. Drugi razlog ( samo u slučaju daOS podržava različite nivoe prioriteta), može biti, da je procesvećeg nivoa prioriteta prispjeo i mora odmah biti izvršavan.Ova procedura se naziva '' preemepcija'' . Proces možetakodjer i dobrovoljno osloboditi kontrolu nad procesorom
60
DESIGN OF RTOS SYSTEMS * Running-> Blocked: Proces se stavlja u Blocked stanje akozahtjeva nešto na što mora ćekati. Zahtjev ka OS je obićno uobliku poziva ka sistemskom servisu ( takodjer se naziva isistemska primitiva) , napr. poziv od programa koji se izvršavaka proceduri koja je dio OS. Kada procesi komuniciraju, procesmože biti blokiran dok ćeka na poruku od drugog procesa kojajoš nije bila poslata.* Blocked-> Ready: proces u blocked stanju je pomjeren uReady ( spreman) stanje, kada se dogadjaj na koji je čekao,desi.* Ready-> Exit: radi jasnoće , ova tranzicija nije pokazana udijagramu stanja. U nekim OS sistemima ( napr. UNIX) , roditeljmože okončati dijete proces u bilo kojem trenutku vremena.Takodjer, ako se roditelj okonča, sva djeca procesi koji supridruženi sa roditeljem mogu biti takodjer okončani. Proces senaziva roditeljem drugog procesa ako je inicirao kreiranje togprocesa.
61
DESIGN OF RTOS SYSTEMS
* Blocked->Exit: Komentari koji su bili navedeni kod prethodnetranzicije vrijede i ovdje. Tipični primjer za ovo je odbacivanjeprocesa štampača koji visi u nekom stanju.
Model sa pet stanja: Jednostavni sistem reda ćekanja
62
DESIGN OF RTOS SYSTEMS
Različiti redovi ćekanja za različite dogadjaje
63
DESIGN OF RTOS SYSTEMS Suspendovano stanje
*I/O su ekstremno spori u odnosu na brzinu izvršenjaprocesora.
*Čak i u našem multiprogramskom modelu sa visokomvjerovatnoćom, svi procesi će čekati na I/O, i procesor će bitinezaposlen ( idle).* Riješenje: Prebaciti jedan ili više procesa na ćekanju na diska ubaciti spremne procese sa diska ili prihvatiti novo prispjeleprocese.* Iz ovog razloga dva ili više stanja se uvode: Ready/ Suspendi Blocked/ Suspend stanje* Prebacivanje sa zamjenom ( swapping) je I/O operacija kojamože takodjer da uspori sistem. Zato je potrebna pažljivaparametrizacija.
64
DESIGN OF RTOS SYSTEMS
Model sa sedam stanja za izvršenje procesa
Opis stanja kod modela sa sedam stanja* Ready: Proces je u glavnoj memoriji i raspoloživ za
izvršenje* Blocked: Proces je u glavnoj memoriji i ćeka na dogadjaj* Blocked/Suspended: Proces je u sekundarnoj memoriji i
ćeka na dogadjaj.
65
DESIGN OF RTOS SYSTEMS
* Blocked-> Blocked/Suspend: Ako nema ready ( spremnih)procesa, tada barem jedan blokirani proces se izbacuje izmemorije ( swapped out) da se napravi prostor za nekidrugi proces koji nije blokiran. Ovo se može ćakdesiti i kada postoji ready ( spreman) proces koji jeraspoloživ u slučaju kada OS detektuje da će zahtjevatiisuviše glavne memorije za efikasno izvršenje.
* Blocked/Suspend-> Ready/Suspend: Ova tranzicija stanja sepojavljuje ako se dogadjaj na koji se ćekalo se pojavi.Primjetimo da informacija stanja suspendovanog procesamora biti raspoloživa OS-u.
66
DESIGN OF RTOS SYSTEMS
* Ready/Suspend->Ready: Kada nema spremnih procesa uglavnoj memoriji, OS će trebati da unese jedan i danastavi operaciju. Druga mogućnost je da proces uReady/Suspend redu ćekanja ima veći prioritet od drugihprocesa u Ready redu ćekanja.
* New-> Ready/Suspend and New -> Ready: Kada se kreiranovi proces, može se dodati u bilo koji od dva reda. Uobadva slućaja OS mora da kreira neke strukturepodataka. Može biti razumno da ovo uradi što je prije dabi imao veliki broj raspoloživih spremnih procesa, čak ikada svi oni ne mogu da se napune u glavnu memoriju.Zbog toga se i unose novi procesi u Ready/Suspend redćekanja. Ako se procesi naknadno kreiraju, onda imasmisla da se direktno unesu u Ready red ćekanja.
67
DESIGN OF RTOS SYSTEMS
•Blocked/Suspend-> Blocked: Ovo izgleda malo neobićno naprvi pogled.Ali ako proces u Blocked/Suspend redu ćekanja ima većiprioritet nego svi procesi u Ready redu ćekanja, i ako OSima dobre razloge da oćekuje da blokirani resurs postaneuskoro raspoloživ, ima smisla da se napuni proces unekoj vrsti prethodnog zahvata ( prefetching).
* Running-> Ready/Suspend: Normalno, proces u izvršenju seprebacuje u Ready stanje kada istekne vrijeme koje muje dodjeljeno za izvršenje. U rijetkim slučajevima, kadaOS priemptira proces zbog procesa sa višim nivomprioriteta u redu ćekanja Blocked/Suspend koji je upravopostao deblokiran, OS može prebaciti priemptirani procesdirektno u Ready/Suspend red ćekanja da bi oslobodionešto glavne memorije.
68
DESIGN OF RTOS SYSTEMS * Various -> Exit: Tipično, proces se završava dok je u izvršenju.
Ali kod nekih OS, proces može biti okončan od straneprocesa koji ga je kreirao ( napr. od procesa roditelja –parent process), ili pak zbog okončanja samog procesaroditelja. Time proces iz bilo kojeg stanja može bitiprebaćen u stanje izlaza ( Exit ).
Kontrolne strukture Operativnog sistema
Operativni sistem treba da upravlja procesima i resursima tezbog toga mora da ima informacije o tekučem statusu svihprocesa i resursa. Ovo je pohranjeno u slijedeće strukturepodataka:Memorijske tabele: Da bi u njima držao evidenciju o glavnojmemoriji kao i sekundarnoj memoriji. Memorijske tabele morajuda sadržavaju slijedeće informacije:
69
DESIGN OF RTOS SYSTEMS
- Dodjeljivanje glavne memorije procesima- Dodjeljivanje sekundarne memorije procesima- Bilo koje zaštitne atribute blokova glavne memorije- Sve informacije koje su potrebne za upravljanje
virtualnom memorijom.* I/O tabele: Koriste se od strane OS da bi upravljao I/Ouredjajima i kanalima računarskog sistema. U svakom datomtrenutku vremena, I/O uredjaj može biti raspoloživ ili doznačennekom odredjenom procesu. Ako je neka I/O operacija uprogresu, OS treba da zna njen status.* File tabele ( opciono) : Informacije o postojanju fajlova, njihovojlokaciji u sekundarnoj memoriji, njihovom tekučem statusu, kaoi drugim atributima.Ako se ovim informacijama upravlja od strane sistema za
menadjment fajlova ( file mamagement system), tada OSuglavnom nisu potrebne ove informacije.
70
DESIGN OF RTOS SYSTEMS
* Procesne tabele: Koje koristi OS da upravlja procesima. Ovestrukture podataka bit će u nastavku detaljnije analizirane.
Kontrolne tabele Operativnog sistema
71
DESIGN OF RTOS SYSTEMS
Kontrolne strukture procesa
Cjelokupni memorijski prostor kojeg zauzima proces se nazivaprocesna slika ( Process image). Ona sadrži :
* program ili skup programa koji se trebaju izvršiti* set lokacija podataka za lokalne i globalne varijable i
konstante.* Stek ( stack ) na kojem će se voditi evidencija opozivima procedura i prenosu parametara ka njima .
* niz atributa koji se koriste od strane OS za kontroluprocesa. Ovaj set atributa se naziva Kontrolni blokprocesa ( Process control Block – PCB ).
72
DESIGN OF RTOS SYSTEMS
Kontrolni blok procesa ( PCB )
Postoje tri osnovne grupe informacija u PCB-u:* Identifikacija procesa ( process identification)* Informacija o stanju procesora* Informacija o kontroli procesa
Identifikacija procesa: Svakom je procesu dodjeljen jedinstvennumerički identifikator, t.j. jednostavno jedan indeks u primarnojtabeli procesa. Kadgod se treba taj proces adresirati ( ili odstrane OS ili nekog drugog procesa), koristi se ovaj identifikator.Ako je procesu dozvoljeno da kreira druge procese, ovajidentifikator označava i proces roditelj kao i sve nasljednike togprocesa.
73
DESIGN OF RTOS SYSTEMS
Informacija o stanju procesora: Ovdje se pohranjuje sadržajprocesorskih registara u trenutku kada je proces izgubio stanjeizvršenja ( running) . Ovaj set registara se sastoji ne samo odregistara koji su vidljivi za korisnika, nego i od dodatnih statusnihregistara. Naročito je tkzv. riječ programskog statusa ( PSW –program status word), dio ove informacije.Informacija o kontroli procesa: Ovo je dopunska informacija kojaje potrebna Operativnom sistemu da bi kontrolirao i koordiniraorazne aktivne procese. Ona sadrži:* Informaciju o rasporedu i stanjima ( scheduling and state)
- Stanju procesa- prioritetu- informacije koje se odnose na rasporedjivanje- dogadjaji
74
DESIGN OF RTOS SYSTEMS
* Struktuiranje podataka* medjuprocesna komunikacija* procesne privilegije* menadjment memorije* vlasništvo nad resursima i njihovo korištenje
Modovi izvršenjaManje ili više svi procesori podržavaju dva moda rada:
* Manje privilegirani mod, koji se najčešće naziva UserMode, u kojem su dozvoljene samo normalne instrukcije* Privilegirani mod, nazvan i System mode, Control Modeili Kernel Mode, u kojem se dodatno dozvoljava i pristupkontrolnim registrima, i I/O operacijama.
75
DESIGN OF RTOS SYSTEMS
•Tekuči mod rada je pohranjen u PSW procesora.
* Preključenje moda se izvršava od strane specifičneoperacije. Može se izvršiti u sistemskom modu. U Usermodu, ova instrukcija postaje poziv ka OS , koji tada možeda odluči da li da dozvoli procesu da se izvršava usistemskom modu ili ne.* Manje privilegirani mod, koji se najčešće naziva UserMode, u kojem su dozvoljene samo normalne instrukcije* Privilegirani mod, nazvan i System mode, Control Modeili Kernel Mode, u kojem se dodatno dozvoljava i pristupkontrolnim registrima, i I/O operacijama.
76
DESIGN OF RTOS SYSTEMS
Kreiranje procesa
OS kreira proces koristeći slijedeće korake:
* Doznačava jedinstveni identifikator procesa novomprocesu* Doznačuje memorijski prostor za proces. Ovo uključujesve elemente procesne slike.
* Inicijalizira kontrolni blok procesa. Informacija kontroleprocesa se inicijalizira na bazi standardnih defaultvrijednosti plus specifične vrijednosti koje su obezbjedjeneza ovaj proces.
77
DESIGN OF RTOS SYSTEMS
* Setuje odgovarajuće linkove. Napr. ako OS održava svakired rasporedjivanja kao uvezanu listu, tada novi proces semora staviti u Ready ili Ready/Suspend listu.
* Kreira ili ekspandira i druge strukture podataka. Napr. OSmože održavati jedan obračunski fajl za svaki od procesa.
Preključenje procesaPreključenje procesa se može izvršiti svaki put kada OS imakontrolu nad procesorom. Ono takodjer se dešava i automatski,inicijalizirano od hadvera procesora kada se pojavi interapt. Ovoje ujedno i jedini način na koji OS može dobiti kontrolu nadprocesorom.Najkomplikovanije preključenje procesa je tranzicija stanja izstanja izvršenja ( Running) u neko drugo stanje.
78
DESIGN OF RTOS SYSTEMS
Tada, se moraju izvršiti slijedeći koraci:
1. Pohraniti sadržaj ( kontekst) procesora2. Ažuirirati PCB procesa koji je trenutno u stanju izvršenja.3. Prebaciti kontrolni blok procesa ( PCB ) u odgovarajućired ćekanja.4. Izabrati drugi proces za izvršenje.5. Ažurirati PCB izabranog procesa.6. Ažurirati memorijski menadjment struktura podataka.7. Restaurirati kontekst procesora na onaj koji je postojaokada je izabrani proces za izvršenje, posljednji putpreključen van izvršenja u neko drugo stanje.
79
DESIGN OF RTOS SYSTEMS
Izvršenje Operativnog sistema
80
DESIGN OF RTOS SYSTEMS Konci ( threads)
Koncept procesa uključuje dvije karakteristike:*Vlasništvo nad resursom ( resource ownership): Proces uključujevirtualni adresni prostor u kojem će držati pocesnu sliku, i savremena na vrijeme on takodjer doznačuje vlasništvo nadresursima kao što su glavna memorija, I/O kanali, I/O uredjaji.
* Rasporedjivanje/izvršenje ( scheduling/execution): Izvršenjeprocesa slijedi stazu izvršenja kroz jedan ili više programa.Proces ima stanje izvršenja ( Running, Ready, itd), i predstavljaentitet koji je rasporedjivan i dispečiran od strane OS.
Moderni OS se razlikuju medjusobno po ovim dvjemakarakteristikama. Proces ih posjeduje obadvije. Može se sastojatiod više od jednog konca ( thread). Konac ima samo karakteristikuda predstavlja objekat rasporedjivanja ( scheduling).
81
DESIGN OF RTOS SYSTEMS
On dijeli sve resurse sa drugim koncima istog procesa.
Konci i procesi
82
DESIGN OF RTOS SYSTEMS
Višekončani model procesa
83
DESIGN OF RTOS SYSTEMS
Stanja konaca
Pošto konci nemaju karakteristiku posjedovanja resursa, zanjih su relevantna samo tri stanja:
* running* ready
* blockedTipično, postoje četiri osnovne operacije koje mjenjaju stanjakonaca:
* Spawn: Kada novi proces je spawniran, inicijalnikonac za njega je takodjer spawniran. Ovaj možetakodjer da spawnira i druge.* Block: Kada konac treba da ćeka na neki dogadjajkoji će ga blokirati, pohranjujući svoje korisničkeregistre, programski brojač i pokazivače na stekove.
84
DESIGN OF RTOS SYSTEMS
* Unblock: Kada se dogadjaj zbog kojeg je konacblokiran pojavi, konac se prebacuje u red čekanjaspremnih ( ready).* Finish: Kada se konac kompletira, njegovi sadržajiregistara i stekovi se dealociraju ( tj. oslobadjaju).
KONTROLA KONKURENTNOSTI ( ISTOVREMENOSTI )Jednostavan primjer:
Razmotrimo slijedeću proceduru:void echo ()
{chin= getchar();chout=chin;putchar(chout);}
85
DESIGN OF RTOS SYSTEMS
Ovaj program dakle čita jedan karakter sa tastature, prebacujega kroz kanal ( trenutna varijabla) i prikazuje ga na ekranu.Posmatrajmo sada dva procesa od kojih oba koriste ovaj echo
modul.1. Proces P1 poziva echo i prekinut je nakon izvršenja prvogiskaza. Karakter kojeg je pročitao ( napr. x) je pohranjen uchin.2. Proces P2 se aktivira i poziva echo. On se izvršava do kraja,i pokazuje napr. y na ekranu.
3. Proces P1 se ponovo nastavlja. Vrijednost x koju je unjeokorisnik je prepisana sa vrijednošću y i izgubljena je. Sada ćevarijabla chin sadržavati y koja se prebacuje na chout ipokazuje na ekranu. Dakle korisnik je unjeo x a na ekranu ćese pokazati y.
86
DESIGN OF RTOS SYSTEMS
Prvo riješenje za opisani problem
Iz gornjeg opisa problema slijedi da mi treba da imamokontrolu pristupa dijeljenim objektima. Čineči to, možemo doćido slijedećeg riješenja:
1. Proces P1 poziva echo i prekinut je neposredno nakonizvršenja prvog iskaza. Karakter koji je unesen, napr. x , sepohranjuje u chin.
2. Proces P2 se aktivira i poziva echo modul. Medjutim, poštoje P1 još uvjek unutar echo modula, mada trenutnosuspendovan, P2 je blokiran da udje u echo proceduru. Zbogtoga će P2 biti suspendovan, ćekajuči na raspoloživost echoprocedure.
87
DESIGN OF RTOS SYSTEMS
3. Nakon nekog vremena, proces P1 je ponovo aktiviran (resumed), i kompletira izvršenje echo procedure. Korektankarakter koji je unesen, tj. x će biti prikazan na ekranu.
4. Kada P1 izadje iz echo procedure, ovo će otkloniti blokaduna P2. Kada se P2 nastavi izvršavati, moći će uspješno pozvatiecho proceduru.
Zadatci Operativnog sistema za implementaciju opisanog riješenja
1. OS mora biti u stanju da vodi evidenciju raznih aktivnihprocesa. Za ovo se koristi PCB struktura.
88
DESIGN OF RTOS SYSTEMS
2. OS mora doznačavati ( allocate) i povlačiti ( deallocate)različite resurse za svaki aktivni proces. Ovi resursi uključuju:
- procesorsko vrijeme- memoriju- fajlove- I/O uredjaje
3. OS mora zaštititi podatke i fizičke resurse svakog procesaod neplanirane interferencije od strane drugih procesa.
4. Rezultat procesa mora biti nezavistan od brzine sa kojom seizvršio, relativno u odnosu na ostale konkurentne (istovremene ) procese.
89
DESIGN OF RTOS SYSTEMS
Tri kontrolna problema: 1. Medjusobno isključenje
* Predpostavimo da dva ili više procesa zahtjevaju pristup kajednom nedijeljenom resursu ( napr. štampaču).
* Za vrijeme izvršenja svaki proces će slati komande ili podatkei primaće statusne informacije ili podatke.
* Takav resurs se naziva kritičnim resursom, a dio programakoji ga koristi se naziva Kritična Sekcija ( Critical section).
* Bitno je da je samo jedan program u datom trenutku vremenau kritičnoj sekciji.
90
DESIGN OF RTOS SYSTEMS
Tri kontrolna problema: 2. Medjublokada ( deadlock)
* Posmatrajmo dva procesa, P1 i P2 i dva resursa, A i B.Predpostavimo da obadva procesa trebaju pristup ka obadva
resursa.* OS može doznačiti B na P1 a A na P2.* Sada su obadva resursa blokirana, čekajući na drugi procesda oslobodi njemu dodijeljen resurs. Drugi proces ga medjutimne može osloboditi, jer je i on blokiran.
91
DESIGN OF RTOS SYSTEMS
Tri kontrolna problema: 3. Izgladnjavanje ( starvation)
* Predpostavimo da sva tri procesa P1, P2 i P3 zahtjevajuperiodičan pristup resursu R.* Predpostavimo da je P1 u posjedu R a P2 i P3 ćekaju nanjega.* Predpostavimo da OS omogući pristup R kada P1 izadje izkritične sekcije.* Ako P1 zahtjeva R ponovno prije nego što se okončaizvršenje P2 i ako OS doznači R ka P1 nakon što je P2završio, P3 neće nikada moći pristupiti R.
92
DESIGN OF RTOS SYSTEMS
Šema riješenja za medjusobno isključenje
93
DESIGN OF RTOS SYSTEMS Kooperacija putem dijeljenjaPredpostavimo dva programa koji dijele varijable a i b. Obadvaprograma rade neku obradu podataka u kojoj je bitno davrijednosti a i b moraju ostati iste.
P1: P2:a = a + 1 ; b = 2 * b ;b = b + 1 ; a = 2 * a ;
Promatrajmo slijedeće konkurentno izvršenje:a = a + 1 ;b = 2 * b ;b = b + 1 ;a = 2 * a ;
Ako mi počnemo naprimjer sa a= b=1, tada ćemo završiti sanekonzistentnim stanjem:
a= 4 i b= 3Slijedi da, kritične sekcije se takodjer trebaju koristiti kadakoristimo dijeljene varijable.
94
DESIGN OF RTOS SYSTEMS Zahtjevi za medjusobno isključenje
1. Medjusobno isključenje mora biti nametnuto; samo jednomprocesu u datom trenutku vremena je dozvoljeno da budeunutar njegove kritične sekcije, od svih procesa koji imajukritične sekcije za isti resurs.
2. Proces koji se zaustavlja unutar svoje nekritične sekcije,mora to činiti bez interferencije sa ostalim procesima.
3. Ne smije biti moguće za proces koji zahtjeva pristup kakritičnoj sekciji, da bude beskonačno zadržavan, ne smije sepojaviti medjublokada, niti izgladnjavanje.
4. Kada nema niti jednog procesa u kritičnoj sekciji, bilo kojiproces koji zahtjeva ulaz u svoju kritičnu sekciju, mora bitiomogućen da udje bez zadržavanja.
95
DESIGN OF RTOS SYSTEMS
Hardverska podrška za medjusobno isključenjeOnemogućavanje interapta
*Predpostavimo jednoprocesorski sistem. Izvršenje programamože biti zaustavljeno izvana samo sa interaptima.
*Slijedi da onemogućavanje interapta ( disable interrrupt),garantira medjusobno isključenje
* Posmatrajmo slijedeći programski segment:while ( true )
{/* disable interrupts */
/* critical section *//* enable interrupts */
/* remainder */}
96
DESIGN OF RTOS SYSTEMS
Ovo radi samo na jednoprocesorskim mašinama. Degradiradramatično performansu procesora pošto je preklapanje (interleaving ) onemogućeno.
Može se desiti da se izgube i neki kritični interapti.
Druga mogućnost je :
Test i set instrukcija
Atomic ( nedjeljiva ) test and set instrukcija je definirana kao:
97
DESIGN OF RTOS SYSTEMS
boolean testset (int i){
if ( i == 0 ){
i = 1 ;return true ;
}else{
return false ;}}
98
DESIGN OF RTOS SYSTEMS Hardverska podrška za medjusobno isključenje
Medjusobno isključenje putem Test i Set instrukcije const int n = /* number of processes */
int bolt ;
void P(int i)
{
while (true)
{
while ( ! testset ( bolt ) ) /* do nothing */
/* critical section */ ;
bolt = 0 ;
/* remainder */ ;
}
}
void main ()
{
parbegin ( P(R1), P(R2),…P(Rn) ) ;
}
99
DESIGN OF RTOS SYSTEMS
Exchange instrukcija
Nedjeljiva (Atomic) exchange instrukcija je definirana kao :
void exchange ( int register, int memory)
{
int temp ;
temp = memory ;
memory = register ;
register = temp ;
}
100
DESIGN OF RTOS SYSTEMS Medjusobno isključenje putem Exchange instrukcije
const int n = /* number of processes */
int bolt ;
void P(int i)
{
int keyi ;
while (true)
{
keyi = 1 ;
while (keyi != 0 ) exchange (keyi, bolt) ;
/* critical section */ ;
exchange (keyi, bolt) ;
/* remainder */ ;
}
}
void main ()
{
parbegin ( P(R1), P(R2),…P(Rn) ) ;
}
101
DESIGN OF RTOS SYSTEMS
Osobine pristupa preko mašinskih instrukcija
* Može se primjeniti na bilo koji broj procesa ili najednoprocesorskoj ili višeprocesorskoj mašini sa dijeljenjemglavne memorije.
* Jednostavan je i zbog toga se može lagano verifikovati.
* Može se koristiti da podržava višestruke kritičke sekcije,svaka kritična sekcija može biti definirana sa svojom vlastitomvarijablom.
102
DESIGN OF RTOS SYSTEMS
Nedostaci pristupa preko mašinskih instrukcija.* Koristi se ćekanje zbog zauzetosti ( busy waiting), tj. proceskoji čeka na kritičnu sekciju nastavlja da konzumiraprocesorsko vrijeme.* Moguće je izgladnjavanje ( starvation), Kada proces napuštakritičnu sekciju a ćeka više od jednog procesa, selekcijaprocesa koji ćeka je arbitrarna. Posljedica ovoga je da nekiprocesi mogu ćekati beskonačno dugo.* Moguća je pojava medjublokade ( deadlocka). Napr. procesP1 izvršava specijalnu instrukciju ( testset ili exchange) i ulaziu kritičnu sekciju. P1 se nakon toga prekida da bi procesor biodat P2 koji ima veći prioritet. Ako P2 sada pokuša da koristi istiresurs kao i P1, bit će mu zabranjen pristup. Zbog toga će onući u konturu ćekanja zbog zauzeća resursa. Medjutim, P1neće nikada biti lansiran u izvršenje zbog toga što ima manjiprioritet nego drugi spreman proces tj. P2.
103
DESIGN OF RTOS SYSTEMS
Semafori
Semafori su abstraktni tipovi podataka.Vrijednost semafora je Integer tip podatka.Definirane su dvije vrijednosti:
* Wait: Ova operacija dekrementira vrijednost semafora. Akovrijednost postane negativna, onda proces koji izvršava wait seblokira.* Signal: Ova operacija inkrementira vrijednost semafora. Akovrijednost nije pozitivna, onda proces koji je bio blokiran sawait operacijom se deblokira.
Kao specijalna vrsta semafora može se definirati binarnisemafor. Njegove semaforske vrijednosti mogu biti samo 0 i 1.
104
DESIGN OF RTOS SYSTEMS Definicja semaforskih operacija
Primjetimo da se slijedeći pseudo kod ne može implementirati u Cprogramskom jeziku, pošto operacije wait i signal moraju biti nedjeljive (atomic).struct semaphore {int count ;queueType queue}void wait ( semaphore s) void signal ( semaphore s){ {s.count -- ; s.count ++ ;if ( s.count < 0 ) if ( s.count <= 0 ){ {
place this process remove a process Pin s.queue ; from s.queue ;block this process place process P on ready list ;
} }} }
105
DESIGN OF RTOS SYSTEMS
Definiranje operacija binarnog semafora
struct bin_semaphore {enum ( zero, one) value ;
queueType queue}
void waitB (bin_semaphore s) void signalB( bin_semaphore s){ {
if( s.value==1) s.value==0 ; if (s.queue.is_empty()) s.value=1; else else
{ {place this process remove a process P
in s.queue ; from s.queue ; block this process place process P on ready list ;
} }} }
106
DESIGN OF RTOS SYSTEMS
Primjeri korištenja semafora
107
DESIGN OF RTOS SYSTEMS Medjusobno isključenje koristeći semafore
/* program medjusobno isključenje */const int n = /* number of processes */
semaphore s=1;void P(int i)
{while (true)
{wait (s) ;
/* critical section */ ;signal (s) ;
/* remainder */ ;}}
void main (){
parbegin ( P(R1), P(R2),…P(Rn) ) ;}
108
DESIGN OF RTOS SYSTEMS
Ponašanje riješenja medjusobnog iskljućenja
109
DESIGN OF RTOS SYSTEMS
Problem proizvodjača/potrošača ( producer/consumer)
Neformalna specifikacija:
* Postoji bafer konačne velićine sizeofbuffer.* Postoji n proizvodjača koji stavljaju elemente u bafer* Postoji samo jedan potrošač koji otklanja elemente iz bafera.•Samo jedan subjekat može imati pristup baferu u svakom
trenutku vremena.* Ništa se ne odklanja iz praznog bafera.* Ništa se ne postavlja u pun bafer.
110
DESIGN OF RTOS SYSTEMS
111
DESIGN OF RTOS SYSTEMS Riješenje problema Proizvodjač/Potrošač
/* program boundedbuffer*/
112
DESIGN OF RTOS SYSTEMS
Medjublokade ( deadlocks)
113
DESIGN OF RTOS SYSTEMS
Uslovi za medjublokade
1. Medjusobno isključenje: Samo jedan proces može koristitiresurs u svakom trenutku vremena
2. Drži i ćekaj (Hold and wait): Proces može držati dodijeljeniresurs dok ćeka doznačavanje ostalih.
3. Nema priempcije: Nikakav resurs ne može biti na silu oduzetod procesa dok ga on drži.
4. Kružno ćekanje: Postoji zatvoreni lanac procesa, tako dasvaki proces drži najmanje jedan resurs koji je potrebanslijedećem procesu u lancu.
114
DESIGN OF RTOS SYSTEMS
Primjer kružnog ćekanja
Prevencija medjublokada ( deadlocka)* Medjusobno iskljućenje: Ovo ne može biti iskljućeno kaoriješenje, pošto u mnogim slućajevima ovo je upravo ono štoželimo da postignemo.* Drži i ćekaj ( hold and wait): Može se spriječiti ako nedozvolimo da proces zahtjeva sve svoje potrebne resurseistovremeno i blokiranjem procesa dok mu nisu dati svi resursi.Ovo naravno će sa svoje strane uvesti neefikasnost u izvršenjuprograma.
115
DESIGN OF RTOS SYSTEMS
* Nema priempcije: Jedno riješenje može biti da se prisiliproces da oslobodi resurs koji već drži ako je on blokiran zbogtoga što još jedan resurs koji mu je potreban nije raspoloživ.
* Kružno ćekanje: Ovo može biti sprijećeno definirajućilinearno uredjenje tipova resursa. Ako proces ima alociraneresurse tipa R, tada može da zahtjeva samo one tipoveresursa koji slijede nakon R u redoslijedu.
* Dokaz: Prepostavimo da je P1 zaključao Ri i želi da zaključaRk. Ovo je dozvoljeno ukoliko je i < k. Ali nakon toga nijedozvoljeno da P2 drži Rk i želi da zakljuća Ri pošto bi ovoimpliciralo da je k < i.
116
DESIGN OF RTOS SYSTEMS
Menadjment memorijeZahtjevi na menadjment memorijeObićno se postavljaju slijedeći zahtjevi na sistem upravljanjamemorijom:
* Relociranje* Zaštita* Dijeljenje* Logička organizacija* Fizička organizacija
Relokacija* Memorija se dijeli izmedju različitih korisnika.•Korisnik ne može unaprijed znati gdje će njegov program bitinapunjen u glavnu memoriju.* Pošto se programi ubacuju i izbacuju ( swapped) iz glavnememorije, vrlo je malo vjerovatno da će program biti swapovanu memoriju na istoj lokaciji na kojoj je ranije bio.
117
DESIGN OF RTOS SYSTEMS
* Umjesto toga, mi treba da relociramo proces u različitedijelove memorije.
* Operativni sistem treba da zna:- PCB- ulaznu tačku za program- tekuči vrh steka
* Operacije granjanja unutar programa i referenciranjepodataka traži još sofisticiraniju podršku.
118
DESIGN OF RTOS SYSTEMS
Adresiranje zahtjeva za proces
119
DESIGN OF RTOS SYSTEMS Zaštita
* Svaki proces treba biti zaštićen od neželjene interferencije oddrugih procesa.
* Zadovoljenje zahtjeva relokacije, čini ovu situaciju mnogokomplikovanijom, pošto lokacija programa u glavnoj memorijipostaje nepredvidiva.* Dinamičko adresiranje za vrijeme izvršenja programa (runtime) takodjer komplikuje ovu situaciju.
* Srećom tehnike relokacije takodjer podržavaju zaštitu:- Korisnički program ne može pristupiti bili kojoj adresi uadresnom prostoru OS.- Program ne može pristupiti adresama u adresnomprostoru drugog procesa.
120
DESIGN OF RTOS SYSTEMS
* Ovo je nametnuto putem adresiranja preko baznog registra iprovjeravanja da li su adrese van nekih granica.
•Primjetimo da ovi mehanizmi moraju biti obezbjedjeni odstrane hardvera , OS to ne može raditi bez podrške hardvera.
Dijeljenje (sharing)* Svaki mehanizam zaštite mora imati fleksibilnost da dozvolida nekoliko procesa pristupa istom dijelu glavne memorijePrimjer za ovo je dijeljeni kod.* Procesi koji komuniciraju trebaju najmanje minimalni dioprostora djeljene memorije da bi ovo mogli uraditi.
* Naravno, dijeljenje podataka je opasno sa stanovišta zaštitepodataka. Zbog toga sistem za menadjment memorijom trebada dozvoli dijeljenje samo pod striktno definiranim pravilima.
121
DESIGN OF RTOS SYSTEMS
Logička organizacija* Memorija u računarima je organizirana kao linearni, tj. jednodimenzionalni, adresni prostor.* Sastoji se od sekvence bajta i riječi.* Sekundarna memorija je slićno organizirana.* Programi su organizirani na sofisticiraniji način, sastoje se odmodula, od kojih se neki mogu modificirati a neki ne mogu.
* Ako OS ovim može efikasno upravljati, niz prednosti se možepostiči, kao:-Moduli se mogu pisati i kompilirati nezavisno jedan od drugog,sa svim referencama iz jednog modula u drugi razriješenim odstrane OS u modu izvršenja ( runtime).- Različiti stepeni zaštite se mogu doznačiti modulima.
122
DESIGN OF RTOS SYSTEMS - Djeljenje modula izmedju procesa se može podržati. Ovoodražava tačku gledišta korisnika.•Bazna tehnika podrške za ovo je segmentacija.
Fizička organizacija* Računarska memorija je organizirana u glavnu i sekundarnumemoriju.Glavna memorija je :
- brza- skupa i- volatilna ( tj. njen sadržaj se gubi kada se isključi sa
napajanja)Sekundarna memorija je :
- spora- jeftina i- stalna
123
DESIGN OF RTOS SYSTEMS
* Tok izmedju ova dva nivoa memorijske hijerarhije je glavnabriga za OS.( Keš memorija je transparentna za OS , ona se u potpunostikontroliše od strane hardvera).Tehnike menadjmenta memorijeFiksno razdjeljivanje ( partitioning)
Glavna memorija je podjeljena u više statičkih particija u tokuvremena generacije OS. Program se može napuniti u particijujednake ili veće velićine od programa.Ovaj metod je jednostavan za implementaciju i predstavljamalo dopunskog opterećenja ( overhead) za OS.
Nedostatak je neefikasno korištenje memorije zbog internefragmentacije. Maksimalni broj aktivnih procesa je fiksan.
124
DESIGN OF RTOS SYSTEMS Dinamičko razdjeljivanjeParticije se dinamički kreiraju, tako da svaki proces se loadujeu particiju tačno iste velićine kao i proces.Prednost je da nema interne fragmentacije, i efikasnijekorištenje memorije.Nedostatak je neefikasno korištenje procesora zbog potrebekompaktacije da bi se spriječila vanjska fragmentacija.Jednaostavno straničenje ( paging)Glavna memorija je razdjeljena u niz okvira iste velićine. Svakiproces je razdjeljen u stranice iste velićine koje su istovjetnevelićine kao okviri. Proces se puni putem punjenja svihnjegovih stranica u raspoložive okvire koji ne moraju bitikontinualno rasporedjeni jedan iza drugog ( kontingentne -contiguous).Prednost je da nema vanjske fregmentacijeMana je da ipak postoji manji obim interne fragmentacije.
125
DESIGN OF RTOS SYSTEMS
Jednostavna segmentacija
Svaki proces je podjeljen u niz segmenata. Proces se puniputem punjenja svih njegovih segmenata u dinamičke particije,koje ne moraju biti kontigentne.
Prednost je da nema interne fragmentacije, poboljšanokorištenje memorije u poredjenju sa dinamičkom particijom.
Mane su:- Vanjska fragmentacija- potrebna je eksplicitna provjera velićina segmenata
126
DESIGN OF RTOS SYSTEMS
Virtualno straničenje memorije ( virtual memory paging).
Realizuje se kao i kod jednostavnog straničenja (pejdjiranja),izuzev što nije potrebno napuniti sve strane procesa.Nerezidentne strane se unose u glavnu memoriju u kasnijojfazi automatski.
Prednosti:Nema vanjske fragmentacije, veći stepen multiprogramiranja,veći virtualni adresni prostor.
Nedostatci:Interna fragmentacijaDodatak ( overhead) zbog kompleksnog menadjmentamemorije.
127
DESIGN OF RTOS SYSTEMS
Virtualna segmentacija memorije
Realizuje sa kao i kod jednostavne segmentacije, izuzev danije potrebno napuniti sve segmente procesa. Nerezidentnisegmenti se unose kasnije automatski.
Prednosti:Nema interne fragmentacije, veći stepen multiprogramiranja,veći virtualni adresni prostor, podrška za zaštitu i dijeljenje.Nedostaci:Vanjska fragmentacijaDodatak zbog kompleksnog menadjmenta memorije
128
DESIGN OF RTOS SYSTEMS
Fiksno particioniranje
Danas se rijetko koristi, samo u slučajevima gdje OS overheadmora da bude minimalan.Particije mogu biti iste ili različite velićine.Jednake velićine mogu voditi ka mnogo interne fragmentacije.U svakom slučaju, broj procesa je fiksan.
129
DESIGN OF RTOS SYSTEMS
Primjer dinamičkog particioniranja:1. Glavna memorija je prazna izuzev operativnog sistema2. Proces 1 je napunjen u slobodni memorijski prostor3. Proces 2 je napunjen u slobodni prostor4. Proces 3 je napunjen u slobodni prostor. Ovo ostavlja samo
4 MB , sto nije dovoljno da se napuni još jedan proces.
130
DESIGN OF RTOS SYSTEMS
5. Predpostavimo da niti jedan od procesa u glavnoj memorijinije spreman. OS će izbaciti ( swaps out) proces 2. Ovo ćestvoriti prostora da se napuni drugi proces, proces 4. Pošto jeproces 4 manji od procesa 2, još jedna mala rupa bićekreirana.
131
DESIGN OF RTOS SYSTEMS
6. Predpostavimo ponovno, da niti jedan od procesa u glavnojmemoriji nije spreman. Ali proces 2 u ready/suspend redućekanja je raspoloživ. Pošto nema dovoljno prostora u memorijiza proces 2, OS zamjenjuje ( swaps out) proces 1 i ubacuje (swaps in) proces 2 ponovno.Hadverska podrška za relokaciju je prikazana na narednoj slici:
132
DESIGN OF RTOS SYSTEMS
Straničenje ( paging)
* Particioniranje je neefikasan način korištenja memorije.
* Bolje riješenje je : Razdjeliti glavnu memoriju u manjedijelove fiksne velićine. Ovo blokovi ( chunks) se onda zovuokviri strana (Page Frames ), ili jednostavno okviri ( Frames).* Blokovi procesa iste velićine, koji se nazivaju stranama (Pages), se sada mogu napuniti u ove okvire strana.* Nema potrebe da se strane procesa pune u naizmjenicnoporedane ( konsekutivne ) okvire.* Dodatna struktura podataka je potrebna. Za svaki proces,mora se pohraniti gdje se njegove strane pune u okvire. Ovastruktura podataka se naziva tabela strana ( Page table).
133
DESIGN OF RTOS SYSTEMS Primjer pejdjiranja
1. Izvaditi broj strane iz n bita sa lijeve strane ( ako je brojstrana = ) iz logičke adrese.
2. Koristiti broj strane kao indeks u page tabeli procesa da senadje broj okvira k.
134
DESIGN OF RTOS SYSTEMS
3. Startna fizička adresa okvira je k* ( ako je velićina stranebajta), i fizička adresa referenciranog bajta je taj broj
uvećan za ofset. Fizička adresa se ne mora izračunavati, onase lako rekonstruiše stavljajući broj okvira ispred ofseta.
135
DESIGN OF RTOS SYSTEMS
Segmentacija* Alternativno riješenje: je segmentacija. Sa njom razdjeljujemoprocese u blokove različite velićine. Ove blokove nazivamosegmentima.
* Ne postoji potreba da segmenti procesa pune u redoslijednedijelove glavne memorije.
* Dodatna struktura podataka je potrebna: Za svaki proces semora pohraniti gdje se njegovi segmenti pune u glavnumemoriju. Ova struktura podataka se naziva tabela segmenata( Segment table ).
* U suprotnosti od straničenja ( paging), gdje je velićina stranefiksna i unaprijed poznata, za segmentaciju dužina segmentase takodjer mora pohraniti u segmentnu tabelu.
136
DESIGN OF RTOS SYSTEMS
Transformacija adresa kod segmentacije.
1. Izvaditi broj segmenta kao n bita sa lijeve strane ( ako je brojsegmenata = ) iz logičke adrese.
2. Koristiti broj segmenta kao indeks u tabeli segmenataprocesa, da se nadje startna fizička adresa segmenta.
3. Porediti ofset, izražen sa m desnih bita ( maksimalnavelićina segmenta je bajta), sa dužinom segmenta. Ako jeofset veći od dužine, adresa nije validna.
4. Željena fizička adresa je suma startne fizičke adresesegmenta plus ofset.
137
DESIGN OF RTOS SYSTEMS
Straničenje i virtulna memorija
* Do sada smo predpostavljali da se sve strane procesa držeu glavnoj memoriji, ili da je cijeli proces u glavnoj memoriji ( nei nužno neprekinutoj – kontingentnoj), ili se u potpunostiizbacije iz nje ( swap out).
* U sistemu sa virtualnom memorijom samo dio strana (najpotrebnijih ) se drži u glavnoj memoriji, ostale ostaju usekundarnoj memoriji.* Sada virtualni adresni prostor može biti mnogo veći negofizički.* Procedura koja puni potrebnu stranu u glavnu memoriju iprebacuje one koje nisu potrebne ( swaps out) u sekundarnumemoriju se naziva (zahtjev za pejdjiranjem ) Demand Paging.
138
DESIGN OF RTOS SYSTEMS * Zahtjev za pejdjiranjem ( demand paging), radi samo zbog toga što postojistroga lokalnost u programima, tj. sa velikom vjerovatnoćom da će tastranica biti referencirana nakon što je bila referencirana prije kratkogvremena (vremenska lokalnost- Temporal Locality), ili je bliska prethodnoreferenciranoj stranici u virtualnom adresnom prostoru ( prostorna lokalnost– Spacial Locality).Transformacija adrese kod pejdinga na zahtjev ( demand paging) jeprikazana na narednoj slici:
139
DESIGN OF RTOS SYSTEMS
Segmentacija i virtualna memorija
* Za sementaciju vrijedi isto kao i za straničenje ( paging): Nijeneophodno da svi segmenti procesa moraju biti u fizičkojmemoriji.
* Ovdje takodjer trebaju da budu napunjeni samo segmenti kojisu potrebni.
* Ovo omogućava da virtualna memorija bude mnogo veća odfizičke memorije.
* Straničenje i segmentacija dolaze kombinovano u većinidanašnjih procesorskih arhitektura.
140
DESIGN OF RTOS SYSTEMS
Adresna transformacija i segmentacija strana
141
DESIGN OF RTOS SYSTEMS
Strategija zamjenjivanja kod demand paging-a
* Optimalna strategija.Ovaj algoritam izabire za zamjenu onu stranu za koju jevrijeme za slijedeće referenciranje najduže. Ovo je zasigurnooptimalna strategija ali se ne može primjeniti pošto je za njupotrebno znanje o budućim vrijednostima. Zbog toga se koristisamo kao referenca da se evaluiraju drugi algoritmi.
* Najmanje korišten u zadnje vrijeme ( LRU – least recentlyused). Ova strategija zamjenjuje stranicu u memoriji koja nijebila referencirana najduži period vremena. Zbog lokalnosti onaje skoro isto tako dobra kao i optimalna strategijaPrilićno je komplikovana za implementaciju. Jedno od riješenjabi bilo da se tagiraju stranice sa vremenom posljednjereference.
142
DESIGN OF RTOS SYSTEMS
Ovo treba da bude uradjeno sa svakom referencom, štoprouzrokuje ogromni overhead. Alternativa bi bila da se čuvastek referenci na strane, što je isto tako skupo riješenje.
•Prvi unutra-prvi vani ( FIFO). Ova strategija tretira okvirestrana koji su alocirani za proces kao kružne bafere, i strane seotklanjaju u stilu Round-robina. Vrlo je jednostavna zaimplementaciju.
143
DESIGN OF RTOS SYSTEMS
Funkcija punjenja ( loading)
144
DESIGN OF RTOS SYSTEMS
Punjenje sa povezivanjem ( loader i linker)
145
DESIGN OF RTOS SYSTEMS Vrijeme povezivanja adresa kod punjenja ( loader)
Vrijeme programiranja: Sve stvarne fizičke adrese su direktnospecificirane od strane programera
* Vrijeme kompilacije i asambliranja: Program sadrži referencena simboličke adrese, i one se pretvaraju u stvarne fizičkeadrese od strane kompajlera/asamblera.
Vrijeme punjenja ( load time): Kompajler/asambler proizvodirelativne adrese. Loader prevodi ove u absolutne adrese (fizičke) u trenutku punjenja programa u memoriju.
Vrijeme izvršenja ( run time): Napunjeni program zadržavarelativne adrese. Ove se pretvaraju dinamički u apsolutneadrese od strane procesorskog hadvera.
146
DESIGN OF RTOS SYSTEMS
Vrijeme povezivanja adresa kod linkera
* Vrijeme programiranja: Nisu dozvoljeni nikakvi vanjskiprogrami niti reference na podatke. Programer mora postaviti uprogram izvorni kod za sve podprograme koji su referencirani.
Vrijeme kompilacije/asambliranja: Asambler mora uključitiizvorni kod svake subrutine koja je referencirana i asambliratije kao jedinstven modul.
Vrijeme povezivanja ( link time): Svi objektni moduli suasamblirani koristeći relativne adrese. Ovi moduli su povezanizajedno i sve reference su ponovno referencirane relativno uodnosu na početak krajnjeg modula koji će se puniti ( loadmodule).
147
DESIGN OF RTOS SYSTEMS
Vrijeme punjenja(load time): Vanjske reference nisurazriješene sve dok modul punjenja nije pred punjenjem uglavnu memoriju. U tom trenutku, referencirani moduli koji sedinamički linkuju, se dodaju modulu punjenja, i cijeli paket setada puni u virtualnu memoriju.
Vrijeme izvršenja ( run time): Vanjske reference nisurazriješene sve dok vanjski poziv se ne izvrši od straneprocesora. U tom trenutku, proces se prekida i željeni modul sepovezuje sa programom koji ga poziva.
Rasporedjivanje ( scheduling)
Ciljevi i tipovi rasporedjivanjaCilj rasporedjivanja procesora, je da se rasporede procesi dabi se izvršavali od strane tog procesora.
148
DESIGN OF RTOS SYSTEMS
Ovaj cilj se može razdjeliti u tri osnovne grupe rasporedjivanja:* Dugoročno rasporedjivanje (long term scheduling):Odluka da se doda novi proces u bazen procesa koji ćese izvršavati.
* Srednjoročno rasporedjivanje ( medium term): Odlukada se proces doda onim procesima koji su djelomičnoili u potpunosti u glavnoj memoriji.
* Kratkoročno rasporedjivanje( short term): Odluka otome koji će od raspoloživih procesa biti izvršavanod strane procesora.
* I/O rasporedjivanje: Odluka o tome koji od procesa kojićekaju na I/O zahtjev biti opslužen od strane I/Ouredjaja.
149
DESIGN OF RTOS SYSTEMS
Nivoi rasporedjivanja
150
DESIGN OF RTOS SYSTEMS
Dijagram ćekanja za rasporedjivanje
151
DESIGN OF RTOS SYSTEMS
Kriteriji kratkoročnog rasporedjivanja
Orijentirano prema korisniku, i prema performansi* Vrijeme obrta ( turnaround time): Ovo je interval vremena
izmedju podnošenja procesa na izvršenje i njegovogkompletiranja.Ovo vrijeme uključuje stvarno vrijeme izvršenja plusvrijeme potrošeno na resurse, uključujući iprocesor.
Ovo je prava mjera za batch tipove poslova.
* Vrijeme odziva: Za interaktivni proces, ovo je vrijeme odtrenutka podnošenja zahtjeva do trenutka kada sepočinje primati odziv.Ovo je bolja mjera nego vrijeme obrta sa tačke gledišta
interaktivnog korisnika.
152
DESIGN OF RTOS SYSTEMS
Strategija rasporedjivanja treba pokušavati da postigne malavremena odziva i da maksimizira broj interaktivnih korisnikakoji dobijaju prihvatljiva vremena odziva.* Granična vremena ( deadlines): kada su specificiranagranična vremena za kompletiranje procesa( kao što je slučajkod procesa u realnom vremenu), strategija rasporedjivanjatreba biti takva da podčini sve druge ciljeve, cilju maksimizacijeprocenta zadovoljavanja graničnih vremena.Korisnički orijentirana strategija* Predikativnost: Dati posao treba da se izvršava u približnoistim intervalima vremena i sa otprilike istim troškom, bezobzira na opterećenje cijelog sistema.Velike varijacije u vremenu odziva ili vremenu obrta su stresneza korisnika. One mogu signalizirati velike varijacije uopterećenju sistema ili potrebu za podešenjem sistema (system tuning), da se otklone nestabilnosti.
153
DESIGN OF RTOS SYSTEMS
Strategija orijentirana na sistem, sa performansom
* Propusnost (throughput): Strategija rasporedjivanja trebapokušati da maksimizira broj procesa koji su kompletirani pojedinici vremena.Ovo je mjera kako mnogo posla se izvršava.Ovo jasno zavisi od prosječne duljine procesa ali takodjer
zavisi i od strategije rasporedjivanja, koja može da utiče naovu iskoristivost.Iskoristivost procesora: Ovo je procenat vremena kada jeprocesor zaposlen.Za skupe dijeljene sisteme, ovo je značajan kriterij. Kod
sistema sa jednim korisnikom kao i kod nekih drugih, kao štosu sistemi realnog vremena, ovaj kriterij je manje važan negoneki drugi.
154
DESIGN OF RTOS SYSTEMS
Korektnost ( fairness): Kod odsustva uputa od strane korisnikaili nekih drugih uputa koje obezbjedjuje sistem, procesi trebajubiti tretirani jednako, i niti jedan proces ne smije trpitiizgladnjavanje ( starvation).
Forsiranje prioriteta( enforcing priorities): Kada su procesimadoznačeni prioriteti, strategija rasporedjivanja treba davatiprednost procesima sa većim prioritetima.Balansiranje resursa: Strategija rasporedjivanja treba da držiresurse sistema uposlenim. Procesi koji će manje koristitiresurse u stresu trebaju biti favorizirani.
Ovaj kriterij takodjer uključuje srednjoročno i dugoročnorasporedjivanje.
155
DESIGN OF RTOS SYSTEMS
Poredjenje strategija rasporedjivanja
Kada se diskutiraju razne strategije rasporedjivanja, slijedećiset procesa se koristi da sa porede performanse tih strategija:
156
DESIGN OF RTOS SYSTEMS
Strategija prvi došao – prvi uslužen ( first come first served) ( FCFS)
Ovo je najednostavnija strategija usluživanja.Takodjer je poznata pod imenom prvi unutra- prvi vani ( FIFO).Kako proces postaje spreman, on ulazi u red spremnihprocesa. Kada proces koji se trenutno izvršava prestaneizvršavati, proces koji je bio najduže vremena u redu spremnih,se izabire za izvršenje.FCFS strategija ima boje performanse za duge procese negoza kratke procese.Slijedeća tabela daje mjere performanse za FCFS za našprimjer seta procesa pomoću vremena izvršenja, vremenaobrta Tr, normaliziranog vremena obrta datog kao Tr/Ts , gdjeje Ts vrijeme servisiranja.
157
DESIGN OF RTOS SYSTEMS
Performansa FCFS strategije:
158
DESIGN OF RTOS SYSTEMS
Round Robin ( okolo kole)Ova strategija pokušava da prevazidje kaznu koju kratkiposlovi trpe sa FCFS strategijom, na taj način što koristipriempciju baziranu na satu.Satni interapt se generiše u periodičnim intervalima. Kada seinterapt desi, proces koji se trenutno izvršava se stavlja u redspremnih procesa, i slijedeći spremni proces izabran na baziFCFS se izabire za izvršenje. Očito da će proces koji jepriemptiran biti stavljen na kraj ovog reda.Ova tehnika se takodjer naziva i vremensko siječenje ( timeslicing).Osnovni problem dizajna kod ove strategije je pitanje izboradužine vremenskog isječka q.Ukoliko je vrlo kratko: tada će se kratki procesi brže kretati krozsistem. Medjutim ima dosta OS dodatka ( overhead) koje jevezano za ovo preključenje konteksta ( context switching).
159
DESIGN OF RTOS SYSTEMS
Zbog toga će ukupna performansa sistema početi dramatičnoopadati ako izaberemo suviše malo q.Ova strategija poznata kao Round robin je naročito efikasnakod sistema sa dijeljenim vremenom opšte namjene, kao štosu sistemi za procesiranje transakcija.Performansa Round Robin strategije ( q= 1)
160
DESIGN OF RTOS SYSTEMS
Performansa Round Robin strategije ( q= 4)
161
DESIGN OF RTOS SYSTEMS
Strategija kratki procesi prvi ( SPF )
Ovo je drugi pristup da se smanji bajes koji favorizira dugeprocese što je inherentno za FCFS strategiju.Karakteristike ove strategije su:
* Strategija nepriemptivosti.* Proces sa najmanjim oćekivanim vremenom procesiranja se
izabire slijedeći. Dakle kratki proces će skočiti napočetak reda , preskačući duge poslove.
Poteškoće: Potrebna je procjena zahtjevanog vremenaprocesiranja.- programer treba da obezbjedi ovu procjenu.- u proizvodnim okruženjima, poslovi se stalnoizvršavaju. Zbog toga se mogu koristiti neka prosječnavremena izvršenja ovog posla.
162
DESIGN OF RTOS SYSTEMS
Strategija najkraćeg preostalog vremena( SRT)* Ova strategija SRT je priemptivna verzija strategije slijedećegnajkraćeg procesnog vremena ( SPN) tj. SPF* Rasporedjivač uvjek izabire proces koji ima najmanjeoćekivano preostalo vrijeme procesiranja. Kada novi procesudje u red ćekanja spremnih procesa, on može imati i kraćepreostalo vrijeme procesiranja nego tekući proces koji seizvršava.
163
DESIGN OF RTOS SYSTEMS
* U skladu sa tim, rasporedjivač može priemptirati kad god noviproces postane spreman.
* Kao i sa SPN(SPF), SRT rasporedjivač mora imati procjenupreostalog vremena procesiranja da bi mogao provesti funkcijuselekcije, a postoji i rizik izgladnjavanja procesa koji duže traju.
* SRT nema bajesa prema procesima koji duže traju koji semože naći kod FCFS a za razliku od Round robina ne generišuse dodatni interapti. S druge strane, moraju se zapisivatiservisna vremena procesa da bi se izračunala preostalavremena procesiranja, što doprinosi dodatnom opterećenju (overhead).
164
DESIGN OF RTOS SYSTEMS
Performansa za najkraće preostalo vrijeme
165
DESIGN OF RTOS SYSTEMS
Strategija : slijedeći je najveći odnos odziva ( highest response ratio next- HRRN)
* Za svaki individualni proces mi bi želili da minimiziramonormalizirano vrijeme obrta ( Tr/Ts), i mi bi želili takodjer daminimiziramo prosječnu vrijednost ovog odnosa nad svimprocesima.* U opštem slučaju, mi ne možemo znati unaprijed, koje
vrijeme servisiranja će biti, ali ga možemo procjeniti:- na bazi prošle historije, ili- na bazi nekih ulaza od korisnika ili konfiguracionogmenadjera.
* Posmatrajmo odnos R = ( w + s) /s- R = je odnos odziva- w = vrijeme provedeno u ćekanju na procesor- s = oćekivano vrijeme servisiranja
166
DESIGN OF RTOS SYSTEMS
* Primjetimo da je minimalno vrijeme za R je 1.0* Pravilo rasporedjivanja je sada slijedeće: Kada se tekućiproces kompletira ili je blokiran, izabrati spreman proces sanajvećom vrijednošću R.* HRRN strategija je atraktivna jer ona uzima u obzir starostprocesa. Kraći procesi su favorizirani, ali sa starenjem bezservisiranja ( što povećeva R), i stariji a duži proces takodjerdobija šansu.Performansa strategije : slijedeći je proces sa najvećimodnosom odziva ( HRRN) je prikazana na narednoj slici:
167
DESIGN OF RTOS SYSTEMS
168
DESIGN OF RTOS SYSTEMS
Strategija povratne veze ( Feedback – FB)
* U najvećem broju slučajeva kod opšteg računanja, nemamoindikacije o relativnoj dužini različitih procesa. Zbog toga, nitijedna od strategija : SPN, SRT i HRRN se ne može primjeniti.* Tada, ako se već ne možemo fokusirati na preostalo vrijemedo izvršenja, fokusirajmo se na vrijeme potrošeno do tada naizvršenje.* Rasporedjivanje se vrši na bazi priempcije ( u vremenskimintervalima), i koristi se mehanizam dinamičkog prioroteta sajednim redom pridruženim svakom prioritetu koji se koristi.* Kada proces prvi put udje u sistem, on se stavlja u RQ0.Nakon njegovog prvog izvršenja stavlja se u RQ1. Svakinaredni put kada se priemptira, on se degradira stavljanjem ured slijedećeg nižeg nivoa prioriteta. Jedanput kada dostignered najnižeg nivoa prioriteta, on se vraća natrag u red RQ0.
169
DESIGN OF RTOS SYSTEMS
* Kraći proces će ovo vrlo brzo kompletirati bez da migriraisuviše nisko u redu, dok će duži proces postepeno tonuti kasve nižim redovima prioroteta.
* Unutar svakog reda, izuzev kod onog najnižeg nivoa gdje ćese koristiti mehanizam Round robina, korišten je mehanizamFCFS.
* Red spremnih procesa se opslužuje od strane procesorasamo ako su svi redovi spremnih procesa većeg nivoaprioriteta prazni.
170
DESIGN OF RTOS SYSTEMS
Feedback raporedjivanje
Opaska: Crtkane linije nisu stvarne konekcije( pošto postojisamo jedan procesor), nego indiciraju tok u vremenu.
171
DESIGN OF RTOS SYSTEMS
Performansa strategije Feedbacka sa q=1, je prikazana nanarednoj slici:
172
DESIGN OF RTOS SYSTEMS
Strategija sa poboljšanjem Feedback -a
* Problem sa jednostavnom feedback šemom: Kao i kodRound robina vrijeme obrta kod dužih procesa se možealarmantno produžiti.
*Da se ovo kompenzira, možemo varirati vremena priempcijeprema redovima kako slijedi:- procesu koji je rasporedjen iz RQ0 se dozvoljava da se
izvršava jednu vremensku jedinicu i nakon toga sepriemptira.
- procesu koji je raporedjen iz RQ1 je dozvoljeno da seizvršava dvije vremenske jedinice, itd.- u opštem slučaju procesu koji je rasporedjen iz RQkse dozvoljava izvršavanje vremenskih jedinica, prijepriempcije.
173
DESIGN OF RTOS SYSTEMS
Performansa strategije Feedbacka sa q= , je data nanarednoj slici:
174
DESIGN OF RTOS SYSTEMS
Specifičnosti operativnh sistema realnog vremena
Izazovi :
175
DESIGN OF RTOS SYSTEMS
Definicije za operativne sisteme realnog vremena:
Kopetz : Računarski sistem realnog vremena je sistem u kojemkorektnost ponašanja sistema ne zavisi samo od logičkihrezultata računanja, nego takodjer od fizičkog trenutka kada suovi rezultati dobijeni.Gdje se mogu naći sistemi realnog vremena.RT sistemi su svugdje oko nas:
* kontrola procesa i postrojenja* industrijska automatizacija* sistem kontrole željezničkog saobraćaja* Primjene u auto industriji* sistemi kontrole letjelica* sistemi za nadzor i akviziciju podataka sistema za
nadzor okružaja* telekomunikacioni sistem
176
DESIGN OF RTOS SYSTEMS
* robotika* vojni sistemi i oprema* istraživanje svemira* kućanski aparati* virtualna i uvećana realnost ( virtual/augmented reality)
Pogledajmo rastući nivo intenziteta softvera na primjerumobilnih uredja
177
DESIGN OF RTOS SYSTEMS
Porast intenziteta korištenja softvera u automobilskoj industriji
178
DESIGN OF RTOS SYSTEMS
Šta znači realno vrijeme?
Glavna razlika u odnosu na ostale vrste izračunavanja je :vrijeme* vrijeme znači da korektnost sistema zavisi od:
- ne samo od logičkih rezultata- nego takodjer od vremena u kojem su ti rezultati
proizvedeni.
realno – znači da : reakcija na vanjske dogadjaje se morajaviti za vrijeme evolucije samih dogadjaja.
- sistemsko vrijeme ( interno vrijeme) : treba da bude mjerenosa istom vremenskom skalom kao i kontrolirano okruženje (eksterno vrijeme)
179
DESIGN OF RTOS SYSTEMS
Da li realno vrijeme znači da je prediktabilno?
* Glavna razlika izmedju realnog vremena i ne realnogvremena je:
granično vrijeme ( deadline)
U kritičnim aplikacijama rezultati dobijeni nakon graničnogvremena ( deadline) :
- nisu samo zakašnjeli- nego su i pogrešni
* granično vrijeme mora biti zadovoljeno pri svim ( čak inajgorim ) okolnostima
Realno vrijeme znači da je dogadjaj predvidiv
180
DESIGN OF RTOS SYSTEMS
Tvrdo RT ( hard RT ) prema čvrstom ( firm) RT, prema mekom( soft) RT
RT zadatak se zove tvrdi kada:nedostizanje njegovog graničnog vremena ( deadline) može
imati katastrofalne posljedice na sistem ili okruženje koje sekontroliše.RT task se zovi čvrsti kada :nedostizanje njegovog graničnog vremena čini rezultatebezvrijednim, ali neće prouzrokovati značajniju štetuRT task se zove mekim kada:dostizanje graničnog vremena je poželjno. napr. iz razlogaperformanse ali nedostizanje neće prouzrokovati ozbiljnijuštetu.RT koji je u stanju da upravlja sa tvrdim RT taskovima senaziva sistem tvrdog realnog vremena ( hard real timesystem)
181
DESIGN OF RTOS SYSTEMS
Prikaz tvrdog RT naprema čvrstom RT , napremamekom RT
182
DESIGN OF RTOS SYSTEMS
Tipične aktivnosti tvrdog realnog vremena:Ove aktivnosti su :
* prikupljanje podataka sa senzora* detekcija kritičnih uslova* servo praćenje aktuatora* nisko nivovska kontrola kritičnih komponenata sistema
Tipične oblasti primjene su:automobilska: kontrola pogonskog stroja automobila,
kontrola zračnih jastukaupravljanje preko žice ( steer by wire)kočenje preko žice ( break by wire)
avio : kontrola turbo motora , aerodinamička kontrola( fly by wire)
183
DESIGN OF RTOS SYSTEMS
Tipične aktivnosti čvrstog RT sistema:- podrška donošenju odluka- predikcija vrijednosti
Tipične oblasti primjene :- prognoza vremena- odluke za akcije na berzi , kupoprodaja dionica
Tipične aktivnosti mekog RT- komandni interpreter za korisnički interfejs- obrada komandi sa tastature- prikaz poruka na ekranima
- prikazivanje varijabli stanja sistema na ekranima- prenos striming podataka
184
DESIGN OF RTOS SYSTEMS
Tipične oblasti primjene:- komunikacioni sistemi ( napr. glas putem IP , voiceover IP)- korisničke interakcije- elektronika komfora ( napr. elektronika za udobnosttijela putnika )
Real – time ≠ Brzo
185
DESIGN OF RTOS SYSTEMS
Poželjne karakteristike real-time sistemaPravovremenost ( timeliness)
- OS treba da obezbjedi kernel mehanizme za- menadjment vremena- taskove rukovanja sa eksplicitnim vremenskimogranićenjima- dizajn za vršna opterećenja- prediktabilnost (predvidivost)- tolerantnost na greške ( fault tolerance)- održivost
Postizanje predvidivosti se postiže sa korištenjem: InteraptReducirati drajvere na najmanju moguću mjeru
- drajver samo aktivira odgovarajući task da se pobrineo uredjaju koji kontroliše- ovaj task se izvršava pod direktnom kontrolom OS,kao i svaki drugi task
186
DESIGN OF RTOS SYSTEMS
-kontrolni taskovi imaju veće priorotete nego taskovi uredjaja
187
DESIGN OF RTOS SYSTEMS
Postizanje predvidivosti sa semaforima
* Uobićajeni mehanizam semafora nije pogodan za primjenerealnog vremena:
problem je u inverziji prioritetaTask većeg prioriteta je blokiran sa taskom manjeg
prioritetaRiješenje za ovo je :
- korištenje umjesto semafora specijalnog mehanizma :- protokol sa naslijedjivanjem prioriteta- protokol sa ograničenjem prioriteta ( ceiling)
Osnovni konceptiU ovom dijelu mi želimo da adresiramo slijedeće aspekte:
- Ograničenja taska- probleme rasporedjivanja
Osnovni softverski entitet kojim upravlja OS je
188
DESIGN OF RTOS SYSTEMS
PROCESProces je task u našem kontekstuKada imamo konfiguraciju sa jednim procesorom ikonkurentnim taskovimaCPU se mora doznačavati taskovima , u skladu sa unaprijeddefiniranim kriterijem koji se naziva :
strategija rasporedjivanja
Implementacija strategije rasporedivanja se naziva:algoritam rasporedivanja
Alokacija izabranog taska ka CPU na izvršenje se naziva : dispečing
Tri glavna stanja taska su:aktivan : task se može potencijalno izvršavatispreman : task ćeka na CPUizvršava se : task se izvršava od strane CPU
189
DESIGN OF RTOS SYSTEMS
Svi spremni taskovi se drže u redu spremnih taskova kao naslici:
Moguć je više od jedan red spremnih taskova.
Priempcija ( preemption)
Task koji se izvršava može biti u bilo kojem trenutku prekinutda bi dozvolio važnijem tasku da trenutačno dobije kontrolunad CPU.
190
DESIGN OF RTOS SYSTEMS Priempcija je prikazana na slijedećoj slici:
Rasporedjivanje je doznačavanje taskova procesorima zaizvršenje.Predostavimo tri taska J1, J2 i J3
Rasporedjivanje dobijeno izvršavanjem tri taska J1, J2 i J3U trenutcima vremena t1, t2, t3 i t4 procesor izvršava contextswitch.
191
DESIGN OF RTOS SYSTEMS
Ostvarivi i rasporedljivi skupovi taskova ( feasible and schedulable)
* Svaki interval [ t1, t1+1] sa s (t) konstantno , za t € [ t1,t1+1] , se naziva vremenski isječak ( time slice).* Priemptivni rasporedjivač dozvoljava tasku koji se izvršavada bude suspendiran u bilo kojem trenutku vremena. Dakletaskovi mogu biti izvršavani u razdvojenim intervalimavremena.* Rasporedjivanje se naziva ostvarivim (feasible), ako svitaskovi se mogu kompletirati u skladu sa skupomspecificiranih ogranićenja.* Skup taskova se zove rasporedivim ako postoji najmanjejedan algoritam koji može proizvesti ostvarivo ( feasible)rasporedjivanje.
192
DESIGN OF RTOS SYSTEMS
Primjer priemtivnog rasporedjivanja
193
DESIGN OF RTOS SYSTEMS
Tipovi ogranićenja
Slijedeći tipovi ogranićenja se razmatraju :
- Vremenska ogranićenjada zadovolji graničnu vrijednost ( deadline)
- Ogranićenja precedencijepoštovanje redoslijeda zahtjeva
- Ogranićenje resursadostupnost ka samo raspoloživim resursima.
194
DESIGN OF RTOS SYSTEMS
Vremenska ograničenjaSistemi realnog vremena se najčešće karakterišu prekovremenskih ogranićenja.Tipično vremensko ogranićenje je : granično vrijeme (deadline)
deadline = vrijeme prije kojeg task mora biti izvršen
Nestizanje na izvršenje unutar graničnog vremena razlikuje sekod dvije klase RT sistema:
* tvrdo ( hard) : nestizanje na granično vrijemeprouzrokuje katastrofalne posljedice* meko (soft): nestizanje izvršenja do deadlineasmanjuje performansu sistema
195
DESIGN OF RTOS SYSTEMS
Parametri koji karakteriziraju RT task JiVrijeme stizanja ( arrival time ) ai :
- je vrijeme kada task Ji postaje spreman zaizvršenje koje se takodjer naziva vrijeme zahtjeva( request time) ili vrijeme izdanja ( release time), ioznačava se sa ri
Vrijeme računanja ci :je vrijeme potrebno za izvršenje bez prekidanja.
Granično vrijeme (deadline) di :je vrijeme unutar kojeg task mora kompletiratisvoje izvršenje
Startno vrijeme si :je vrijeme kada task Ji starta svoje izvršenje
196
DESIGN OF RTOS SYSTEMS
Vrijeme završetka ( finishing time) fi :je vrijeme kada task Ji završava svoje izvršenje
Tipični parametri taska realnog vremenaPrimjer periodičnih i aperiodičnih taskova :
197
DESIGN OF RTOS SYSTEMS
Relacije precedencije ( prethodjenja) – primjer:
198
DESIGN OF RTOS SYSTEMS
Ograničenja resursa
Tačka gledišta procesa:Resurs je bilo koja softverska struktura koju može koristitiprocesPrimjeri za ovo su: struktura podataka, set varijabli, fajl samemorijskom oblasti.privatni resurs : posvećen specifičnom procesudijeljeni resurs : onaj koji će se koristiti od strane više procesaekskluzivni resurs : dijeljeni resurs kod kojeg nije dozvoljensimultani pristup od strane različitih procesa.kritični region : dio koda koji se izvršava pod ograničenjimamedjusobnog iskljućenja. Primjer za ovo je menadjment sasemaforima.
199
DESIGN OF RTOS SYSTEMS
Blokirani taskovi
Za task koji ćeka na neki ekskluzivni resurs se kaže da jeblokiran. Procesi koji su blokirani na istom resursu se drže uredu koji je pridružen sa semaforom s koji štiti ovaj resurs.Signal(i) koji su na vrhu reda kod s se prebacuju u stanjespreman ( ready state),
Stanje ćekanja uzrokovano ogranićenjem resursa
200
DESIGN OF RTOS SYSTEMS Inverzija prioritetaPredpostavimo da imamo priempciju izmedju dva taska J1 i J2. Prioritet J1 može biti veći od J2.Ako je task J2 startovao ranije on može ući u kritičnu sekciju.Nakon toga on može biti priemtiran od strane taska J1.Medjutim kada J1 želi da udje u svoju kritićnu sekciju, J1 jeblokiran i J2 se ponovno nastavlja.
Primjer blokiranja ekskluzivnog resursa
201
DESIGN OF RTOS SYSTEMS
Rasporedjivanje u realnom vremenu
Rasporedjivanje
Za dati skup od n taskova : J = { J1, …., Jn}skup od m procesora P = { P1, …., Pm}
i skup resursa R = { R1, …., Rn}
Precedencija može biti data koristeći graf precedencije ivremenska ogranićenja mogu biti pridružena svakom tasku.
Rasporedjivanje znači doznaćavanje procesora iz P i resursaiz R taskovima u J skupu , da bi se kompletirali svi taskovi podpostavljenim ogranićenjima.
Ovaj problem je NP- kompleksan.
202
DESIGN OF RTOS SYSTEMS
Klasifikacija algoritama rasporedjivanja
* Preemptive : task koji se izvršava može biti prekinut u bilokojem trenutku vremena* Non-preemptive: task kada se starta se izvršava dokompletiranja* Statički: odluke rasporedjivanja su bazirane na fiksnim ( off-line) parametrima* Dinamički : odluke rasporedjivanja su bazirane naparametrima koji se mjenjaju za vrijeme evolucije sistema.
Off-line: algoritam rasporedjivanja se izvršava na cjelokupnomskupu taskova prije starta sistema. Izračunati raspored seizvršava od strane dipečera.On-line: odluke rasporedjivanja se donose u toku izvršenja (run-time) , svaki put kada task udje ili napusti sistem.
203
DESIGN OF RTOS SYSTEMS
Optimalni: algoritam minimizira neku datu funkciju troška,alternativno: može da ne zadovolji deadline samo ako nitijedan drugi algoritam date klase ne može da ga zadovolji.
Heuristični: algoritam koji ima tendenciju da nadje optimalanraspored ali nema garancije da će ga naći.
Tvrdi real-time sistemi.
Kod ovih sistema ponašanje je vrlo predvidivo, tj. ostvarljivostrasporeda mora biti unaprijed garantovana.Sistem mora planirati akcije gledajući unaprijed u budućnost,predpostavljajući scenario najgoreg slućaja ( worst casescenario).
204
DESIGN OF RTOS SYSTEMS
Statički sistemi realnog vremena ( skup taskova je fiksan i apriori poznat ):- aktivacije svih taskova mogu se unaprijed izračunatioff-line- cjelokupan raspored se može pohraniti u tabelu.- u run time-u se vrši jednostavno rasporedjivanje prematabeli.
Prednosti su:* mogući su off-line vrlo sofisticirani algoritmi
Mane su:* sistem nije fleksibilan na promjene u okruženju.
205
DESIGN OF RTOS SYSTEMS
Dinamički real-time sistemi
Garancija mora biti data on-line svaki put kada se novi taskunese u sistem.Tipična šema mehanizma garancije za dinamički real-timesistem je data na slijedećoj slici:
Šema mehanizma garancije koji se koristi kod dinamičkihsistema sa tvrdim realnim vremenom
206
DESIGN OF RTOS SYSTEMS
Algoritmi najboljeg naporaMekani real-time sistemi
Jedina posljedica grešaka u tajmiranju je degradacija sistema.Primjer za ovo je striming videa ( može se primjetiti malojittera). Adekvatan za ove tipove mekanih real-time sistema jealgoritam najboljeg napora ( Best-effort).Daljnji algoritam je '' tries its best'' , tj pokušava najbolje štomože, tj. taskovi se stavljaju u redove zbog vremenskihogranićenja, ali se ne provodi provjera ostvarivosti ( feasibilitytest), tako da se task može i odbaciti .Prednosti:najbolji napor ima bolju performansu kod srednjih taskova (
ima manje overheada).Mane su:nepredvidivost, nije pogodan za tvrde real-time aplikacije.
207
DESIGN OF RTOS SYSTEMS
Rasporedjivanje u realnom vremenu
Aperiodično rasporedjivanje* najraniji deadline prvi ( earliest deadline first- EDF)* modificirani EDF
Periodično rasporedjivanje* doznačavanje prioroteta sa monotonim tempom ( ratemonotonic priority assignment – RM )* najraniji deadline prvi ( EDF – earliest deadline first)
Serveri* fiksni prioriteti* dinamički prioriteti
208
DESIGN OF RTOS SYSTEMS
Aperiodsko rasporedjivanje : najraniji deadline prvi ( EDF)
Karakteristike su:- mono procesor- dinamičko pristizanje, priempcija dozvoljena- minimiziraj maksimalno kašnjenje
Hornov algoritam
Teorem HornaZa dati skup od n nezavisnih taskova sa arbitrarnim vremenimapristizanja, svaki algoritam koji u bilo kojem trenutku izvršavatask sa najranijim aposlutnim deadline-om izmedju svihspremnih taskova je optimalan u odnosu na minimizacijumaksimalnog kašnjenja.
209
DESIGN OF RTOS SYSTEMS
Kompleksnost : po tasku: unoseći novo prispjeli task u uredjenulistu korektno, je dato sa : O(n)
za n taskova = ukupna kompleksnost je O(n2)
Primjer za EDF
210
DESIGN OF RTOS SYSTEMS
Kompleksnost : po tasku: unoseći novo prispjeli task u uredjenulistu korektno je dato sa : O(n)Big O notacija ( naziva se još Landau ili asimptotska notacija, jematematska notacija, koja se koristi da opiše asimptotskoponašanje funkcija. Njena namjena je da karakteriziraponašanje funkcije za vrlo velike( ili vrlo male) ulaze najednostavan ali strog način, koji će omogućiti poredjenje sadrugim funkcijama. Simbol veliko O( big O) se koristi da opišegornju granicu za velićinu funkcije u terminima neke druge,obićno jednostavnije funkcije. Postoje i drugi simboli koji sekoriste kao: o, W,w i Q za različite druge: gornje, niže itvrde granice. O notacija se obićno koristi da opiše asimptotskitvrdo ograničenje, ali tvrde granice se formalnije i preciznijeoznačavaju sa simbolom QQQQ.
211
DESIGN OF RTOS SYSTEMS
* U opštem slučaju radi se o NP- hard problemu.* Za specijalne slučajeve mogući su i algoritmi polinomijalnogvremena.NP-hard ( nondeterministic Polynomial-time hard), uračunarskoj teoriji kompleksnosti, je klasa problema koja jeneformalno ‘’u najmanjoj mjeri’’ isto tako teška kao i problemi uNP. Problem H je NP-hard, ako i samo ako postoji NP-kompletan problem L koji je Turing- reducibilan upolinomijalnom vremenu, tj. L≤T H. Drugim riječima L se možeriješiti u polinomijalnom vremenu sa oracle mašinom sa jednimoraclom za H.NP-hard problemi mogu biti bilo kojeg tipa, kao : problemiodlučivanja, problemi traženja, optimizacioni problemi.
212
DESIGN OF RTOS SYSTEMS
Kao posljedica takve definicije, mi imamo :•Problem je u najmanju ruku isto tako težak kao i L, pošto H semože koristiti da se riješi L.•* pošto je L NP-complete, i time i najteži u klasi NP, takodjerproblem H je u najmanju ruku isto tako težak kao NP, ali H nemora da bude u NP i time ne mora da bude problemodlučivanja.Rasporedjivanje sa ograničenjima precedencijeEDF sa ograničenjima precedencije
Predpostavimo n taskova sa ograničenjima precedencije idinamičkim aktivacijama .Mogu se riješiti po polinomijalnom vremenu samo ako jedozvoljena priempcija.
213
DESIGN OF RTOS SYSTEMS
Riješenje Chetto, Silly i Bouchentouf
Transformisati skup J zavisnih taskova u skup J* nezavisnihtaskova pomoću adekvatne modifikacije vremenskihparametara,Nakon toga aplicirati EDF.
Transformacija obezbjedjuje:
J* je rasporedivo ↔ J je rasporedivo i sva ogranićenja suzadovoljena.
Modifikacija vremena oslobadjanja ( release) i deadline-a sutakva da svaki task neće startovati, prije nego njegoviprethodnici, i oni ne mogu priemptirati svoje nasljednike ( drugitaskovi medjutim mogu biti priemptirani).
214
DESIGN OF RTOS SYSTEMS
Modifikacija vremena oslobadjanja ( release)
Za data dva taska Ja i Jb , Ja → Jbslijedi da slijedeća dva uslova moraju biti zadovoljena:
* sb > rb ( tj. Jb ne može startati prije svog vremenaoslobadjanja)* sb ≥ ra + ca ( Jb ne može startati dok Ja nije završio)
If Ja → Jb tada vrijeme objave Jb se može zamjeniti sa max( rb, ra + ca )→ da je novo vrijeme objave za Jb = max (rb, ra + ca )
215
DESIGN OF RTOS SYSTEMS
Modifikacija deadline-aNeka su data dva taska Ja i Jb , Ja → JbSlijedi, da u bilo kojem ostvarivom rasporedjivanju koje
zadovoljava ogranićenja precedencije, slijedeća dva uslovamoraju biti zadovoljena:* fa ≤ da ( Ja mora završiti prije svoga deadlinea)* fa ≤ da – cb (Ja mora završiti prije maksimalnog startnog
vremena Jb )
If Ja → Jb, onda deadline od Ja može biti zamjenjen sa min ( da, db + cb)novi deadline za Ja : da* = min( da, db – cb)
216
DESIGN OF RTOS SYSTEMS
Periodično rasporedjivanje taskova
Aspekti koji će biti razmatrani u ovoj sekciji su:
- aplikaciona oblast periodičnih taskova- termini koji se koriste u ovom kontekstu- rasporedjivanje sa monotonim ritmom ( rate monotonicscheduling – RM)- rasporedjivanje sa prvim taskom koji ima najranijideadline ( EDF )
Aplikacione oblasti periodičnih taskova
Periodične aktivnosti predstavljaju najveće računarskoopterećenje u mnogim aplikacijama:
217
DESIGN OF RTOS SYSTEMS
* akvizicija podataka sa senzora* nisko nivovski servo sistemi* regulacione i upravljačke konture* planiranje akcija* monitoring sistema
Nekoliko periodičnih taskova koji se izvršavaju konkurentno:
* individualna ograničenja tajmingaSvaki task je
- regularno aktiviran- sa adekvatnom brzinom- i kompletiran je unutar deadline-a
218
DESIGN OF RTOS SYSTEMS Više brzinski sistemi
Osnovne oznakeг - je skup periodičnih taskovaτi – je generički periodični taskτij – je instanca j taska τiri,j - je vrijeme izdavanja ( release) od taska τiΦi – je faza od τi ( τi,1 je vrijeme izdavanja prve instance )Ti - je period od τi ( jednak je intervalu izmedju dvijekonsekutivne aktivacije )Di – je relativni deadline od τi ( relativno u odnosu na vrijemeizdavanja)di,j - je apsolutni deadline od tijtj. di,j = Φi + ( j-1) Ti + Di )si,j - je startno vrijeme od τij (si,j ≥ ri,j )fi,j – je vrijeme završetka od τij (fi,j ≤ di,j )
219
DESIGN OF RTOS SYSTEMS Skup ostvarivih zadataka
Periodični task τi se naziva ostvarivim ako:
- sve njegove instance se završavaju u okviru deadline-a
Skup taskova T se zove ostvarivim ili rasporedivim ako :svi taskovi u T su ostvarivi.
Faktor iskorištenja procesora U
Za dati skup T periodičnih taskova , faktor iskorištenjaprocesora U je dio procesorskog vremena proveden uizvršenju skupa taskova.Ci/Ti je dio procesorskog vremena provedenog u izvršenjutaska τi
220
DESIGN OF RTOS SYSTEMS
Primjer za najmanju gornju granicu za U
221
DESIGN OF RTOS SYSTEMS
Rasporedjivanje sa monotonim ritmom
Precizniji naziv za ovo rasporedjivanje je: Doznačavanjeprioroteta sa monotonim ritmom ( rate monotonic priorityassignment)Taskovi sa većim brzinama zahtjeva ( tj. sa kraćim periodom),dobijaju veće prioritete.Ako su periodi konstantni, slijedi da je RM sa doznačavanjemfiksnih prioriteta.RM je intrisički ( izvorno) priemptivna strategija, task koji setrenutno izvršava se priemptira od strane novo oslobodjenog (released) taska sa kraćim periodom.
222
DESIGN OF RTOS SYSTEMS
Primjer rasporedjivanja sa monotonom brzinom ( ritmom)
223
DESIGN OF RTOS SYSTEMS
Optimalnost RM algoritmaRM je optimalan izmedju svih algoritama doznačavanja safiksnim prioritetom , tj.
Ako postoji skup taskova г koji ne može biti rasporedjensa RM tada slijedi :
da svaki algoritam sa fiksnim prioritetima ne možerasporedjivati г.
Izračunavanje Ulub za n taskova
Najmanja gornja granica iskorištenja procesora kod RMalgoritma je:
224
DESIGN OF RTOS SYSTEMS Ova vrijednost opada sa povećanjem n i konvergira ka :
Zaključna razmatranja o RM algoritmu
RM algoritam je optimalni, izmedju svih algoritama sadoznačavanjem fiksnog prioriteta.
* RM garantira da arbitrarni skup periodičnih taskova jerasporediv ako ukupno iskorištenje procesora U ne prelazivrijednost 0.69.
* Ulub = 0.69 je dovoljno ali ne i nužno da garantira ostvarivostdatog skupa taskova.
225
DESIGN OF RTOS SYSTEMS
Algoritam prvi sa najmanjim deadline-om ( earliest deadline first-EDF)
EDF algoritam je :
- pravilo dinamičkog rasporedjivanja- izabire taskove u skladu sa njihovim apsolutnimdeadlajnima- Taskovi sa ranijim deadlajnima će biti izvršavani savećim prioritetima- Apsolutni deadline periodićnog taska zavisi od tekućej-te instance:
226
DESIGN OF RTOS SYSTEMS
slijedi da je : EDF doznaćavanje sa dinamičkim prioritetom* intrisikalno ( izvorno ) priemtiv algoritam* primjenjljiv takodjer za periodične taskove
Analiza rasporedivosti kod EDF algoritma* Rasporedivost skupa periodičnih taskova kojimaupravlja EDF algoritam se može verificirati pomoćufaktora iskorištenja procesora.* Ovdje je Ulub = 1, tj. postiže se 100% iskoristivosti.
TeoremSkup periodičnih taskova je rasporediv sa EDF ako i samo ako :
227
DESIGN OF RTOS SYSTEMS
Primjer analize EDF rasporedivosti
228
DESIGN OF RTOS SYSTEMS Rasporedjivanje periodičnih taskova – Zaključci* Ogranićenja na nezavisne i priemptivne periodićne taskove* Riješenje za fiksno i dinamičko doznačavanje prioriteta.* Algoritam monotone brzine ( rate monotonic- RM) je optimalanizmedju svih algoritama sa fiksnim doznačavanjem prioriteta.* Algoritam : Prvi task sa najranijim deadline-om – EDF, jeoptimalan medju algoritmima sa dinamičkim doznačavanjemprioriteta.* Deadlajni su jednaki periodima . Ovo garantira test u O(n)
koristeći korištenje procesora, primjenjiv je i na RM i EDFalgoritme.
* Deadlajni ‹ perioda → slijedi da su algoritmi sa polinomijalnimvremenom za garantne testove:
- sa fiksnim prioritetom : analiza vremena odziva- dinamičkim prioritetom : iskorištenje procesora
229
DESIGN OF RTOS SYSTEMS Uvod u servere* Zahtjevi koji se pojavljuju kod većine aplikacija sa realnimvremenom su:
- periodični i aperiodični taskovi- tipično , periodični taskovi su vodjeni vremenom ( time –driven) , sa tvrdim realnim vremenom ( hard RT )- tipični aperiodični taskovi su vodjeni dogadjajima ( event– driven) sa mekim ili tvrdim RT.
* Glavni ciljevi za RT kernel su:- da garantira taskove za tvrdo RT- obezbjedi dobro prosječno vrijeme odziva za mekaneRT.
* Aperiodični taskovi koji su karakterizirani sa minimumomvremena medju dolaska ( inter-arrival time), nazivaju sesporadičnim.
* Aperiodični taskovi koji zahtjevaju on-line garantije zaindividualne instance se zovu čvrstim ( firm).
230
DESIGN OF RTOS SYSTEMS
Rasporedjivanje u pozadini
Najednostavniji metod:Rukuje sa mekim aperiodičnim taskovima u pozadini izaperiodičnih taskova, tj. u preostalom vremenu procesora nakonrasporedjivanja svih periodičnih taskova.Aperiodični taskovi dobijaju prioritete koji su niži od onih zaperiodićne taskove.
231
DESIGN OF RTOS SYSTEMS Organizacija rasporedjivanja u pozadini
Primjer servera sa fiksnim prioritetom – polling serverIdeja, da bi se postiglo bolje planiranje upravljanja sa periodičnimtaskom:Neka neki specifični periodični task servisira aperiodične zahtjeve.Ovo se naziva serverom, i ima ( kao i kod svakog periodičnogtaska ), period Ts kao i vrijeme računanja Cs.Vrijeme računanja Cs se naziva kapacitet u ovom slučaju.Server je rasporedjivan kao i bilo koji drugi periodični task, ne inužno na nižem priorotetu.
232
DESIGN OF RTOS SYSTEMS
Polling server ( PS ) je specijalni server sa:* svojim periodom Ts , PS postaje aktivan i opslužuje bilo kojićekajući aperiodični zahtjev unutar granica svog kapaciteta Cs.
* Ako nema niti jednog čekajućeg aperiodičnog zahtjeva , slijedida PS suspenduje sebe sve do početka svog slijedećeg perioda.Procesorsko vrijeme se onda koristi za periodične taskove.
* Ako aperiodični task prispije neposredno nakon suspenzije PS,on će se opslužiti u slijedećem periodu.
* Na početku svog perioda PS se vraća na svoju punu vrijednostCs.
233
DESIGN OF RTOS SYSTEMS
Primjer polling servera
234
DESIGN OF RTOS SYSTEMS
Serveri sa dinamičkim prioritetomUvodPodsjetimo se da algoritmi sa dinamičkim rasporedjivanjem imajuveće granice rasporedivosti nego algoritmi sa fiksnim prioritetima.Naprimjer: Skup periodičnih taskova sa faktorom iskorištenja
Up= 0.6Ako su periodični taskovi opsluživani od OS sa EDF algoritmom,tada granice iskoristivosti procesora idu i do 1.
Slijedi iz toga da maksimalna velićina servera može dosegnuti:Us = 1 – Up = 0.4
Predpostavke* Svi periodični taskovi ti : 1,....,n imaju tvrde ( hard ) deadline.* Svi aperiodični taskovi Ji : 1, ...., m nemaju tvrde deadline.* Svaki periodični task ti ima period Ti , vrijeme izračunavanja Ci ,i relativni deadline Di jednak svom periodu , tj Di = Ti .
235
DESIGN OF RTOS SYSTEMS
* Svi periodični taskovi su simultano aktivirani u trenutku t= 0.* Svaki periodični zahtjev ima poznato vrijeme računanja, alinepoznato vrijeme pristizanja ( arrival time ).
Exchange server sa dinamičkim prioritetom ( DPE)Osnovna ideja:Neka server zamjeni svoje vrijeme izvršenja sa izvršenjemperiodičnih taskova nižeg prioriteta ( ovo znači veći deadlinepod EDF algoritmom), u slučaju da nema aperiodičnih zahtjevakoji ćekaju na izvršenje.
Slijedi da runtime servera se može zamjeniti sa periodičnimtaskovima ali ne i rasipati ( izuzev ako ima i idle vremena ). On jesačuvan kod niskog prioriteta i može se ponovno tražiti kasnijekada aperiodični zahtjevi udju u sistem.
236
DESIGN OF RTOS SYSTEMS
Definicija DPEKada god je entitet sa največim prioritetom u sistemu aperiodični
kapacitet od C vremenskih jedinica, slijedeće se dogodi:- aperiodični zahtjevi u sistemu , se opslužuju sve dok sene kompletiraju ili dok se kapacitet ne iscrpi( kapacitetkoji se koristio jednak je vremenu izvršenja ), koristećikapacitet servera ili posudjeni kapacitet.- nema aperiodičnih zahtjeva na ćekanju , slijedi da će seizvršiti periodični task koji ima najkraći deadline, i kapacitetjednak dužini izvršenja će se dodati ( tj. posuditi )aperiodskom kapacitetu deadlina taska i oduzeti od C > 0za najveći tekuči kapacitet ( tj. deadlajni kapacitetasa najvećim prioritetom i oni za periodične taskove sumedjusobno zamjenjeni ).- nema na ćekanju za izvršenje ni zahtjeva aperiodičnih nitiperiodičnih instanci taskova.
237
DESIGN OF RTOS SYSTEMS
Slijedi da u tom slučaju je idle vrijeme, tj. kapacitet C jekonzumiran.Primjer za DPE strategiju
238
DESIGN OF RTOS SYSTEMS PROTOKOLI ZA ALOKACIJU RESURSAProtokoli za pristup resursima* Resurs je bilo koja softverska struktura koja se može koristitiod strane procesa da unaprijedi svoje izvršenje* Za resurs se kaže da je :
- privatan , ako je posvećen samo nekom specifičnomprocesu
- dijeljen , ako se koristi od strane više taskova- ekskluzivan , ako je dijeljen ali zaštičen protiv
konkurentnih ( tj. istovremenih ) pristupa.
Terminologija
239
DESIGN OF RTOS SYSTEMS Fenomen inverzije prioriteta
Posmatrajmo dva taska koji dijele jedan ekskluzivni resurs
Predpostavimo da J1 ima veći prioritet od J2Uprkos ove činjenice J1 može biti blokiran od strane J2.
240
DESIGN OF RTOS SYSTEMS
Primjer blokiranja ekskluzivnog resursa
Vrijeme blokiranja u gornjem primjeru je :maksimalno vrijeme blokiranja od J1 jednako je trajanju J2 ukritičnoj sekciji i neizbježno je zbog semantike kritične sekcije.
241
DESIGN OF RTOS SYSTEMS
Medjutim, vrijeme blokiranja može biti i neograničeno ako imataskova sa srednjim prioritetima.
Inverzija prioriteta se pojavljuje u intervalu [ t3, t6 ]
242
DESIGN OF RTOS SYSTEMS
Protokol naslijedjivanja prioriteta ( PIP)
Predloženo od strane Sha , Rajkumara i Lehoczsky , 1990
Osnovna ideja :
- kada task Ji blokira jedan ili više taskova većegprioriteta, on privremeno naslijedi najveći prioritetblokiranog taska- razlog : ovo spriječava da zadaci srednjeg nivoaprioriteta priemptiraju Ji i time produže period blokiranja.
243
DESIGN OF RTOS SYSTEMS
PIP definicija* Poslovi se rasporedjuju na bazi njihovih aktivnih prioriteta.
Ako su isti prioriteti slijedi da je algoritam FCFS
* Ji pokušava da udje u kritičnu sekciju zi,j :
-slučaj a) Ri,j je već u posjedu posla nižegprioriteta i Ji je blokiran ( od strane taska koji drži Ri,j )- slučaj b) su svi ostali slučajevi , Ji ulazi u zi,j
* Ji je blokiran , slijedi da on prenosi svoj aktivni prioritet na Jk, tj. na posao koji drži semafor.
slijedi da Jk ponovo uzima procesor i izvršava se uostatku svoje kritične sekcije sa pk = pi , tj. Jknaslijedjuje prioritet od Ji.
244
DESIGN OF RTOS SYSTEMS
U opštem slučaju task naslijedjuje največi prioritet od poslovakoje je blokirao.
* Jk izlazi iz kritične sekcije :- on odključava semaforslijedi da posao najvećeg prioriteta, koji je bio blokiran
na ovom semaforu ( ako je bilo takvih) se budi .- aktivni prioritet posla Jk se ažurira:- drugi poslovi koji su još uvjek blokirani od strane poslaJk : Jk naslijedjuje najveći prioritet od poslova koje jeblokirao Jk .- inače Jk će dobiti svoj normalni prioritet
* Naslijedjivanje prioriteta je tranzitivno :ako J3 blokira J2 a J2 blokira J1 tada : J3 naslijedjujeprioritet od J1 preko J2.
245
DESIGN OF RTOS SYSTEMS
Primjer PIP algoritma
Ista situacija kao i na prethodnoj slici ali sada sa primjenjenimPIP algoritmom:
246
DESIGN OF RTOS SYSTEMS Osobine PIPTeorem : ( Sha – Rajkumar- Lehoczky) : Pod protokolomnaslijedjivanja prioriteta, posao može biti blokiran za najvišedužinu trajanja od min( n,m) kritičnih sekcija, gdje je n – brojposlova niskog nivoa prioriteta koji mogu blokirati J , a m – jebroj različitih semafora koji mogu biti korišteni da blokiraju J.
Protokol limitiranja prioriteta ( priority ceiling protocol -PCP )
PCP protokol koji je uveden od strane Sha, Rajkumara iLehoczky 1990 , kao poboljšanje PIP protokola postiže:
* prevenciju formiranja deadloka* spriječava formiranje lančanog blokiranja.Ideja je slijedeća:
Proširiti PIP sa specijalnim pravilom za zaključavanjeslobodnog semafora. Ovo pravilo ne dozvoljava poslu da udjeu kritičnu sekciju ako ima zaključanih semafora koji bi ga mogliblokirati.
247
DESIGN OF RTOS SYSTEMS
Slijedi da : jedanput kada posao udje u u svoju prvu kritičnusekciju, on ne može nikad biti blokiran od straneposlova nižeg nivoa prioriteta.
Metod kojim se ovo postiže: doznačiti granicu prioriteta zasvaki semafor,Pri tom ova granica prioriteta je jednaka prioritetu poslanajvećeg nivoa prioriteta koji bi ga mogao zaključati.
- Poslu J je dozvoljeno da udje u kritičku sekciju samo ako jenjegov prioritet > od svih graničnih prioriteta semaforazaključanih od strane poslova koji su različiti od posla J.
Definicija protokola PCPSvakom semaforu Sk doznačen je granični ( ceiling) prioritetC( Sk) , koji je jednak prioritetu posla najvećeg prioriteta kojiga može zaključati. Primjetimo da C( Sk) je statička velićinakoja se može izračunati i off-line.
248
DESIGN OF RTOS SYSTEMS
* Neka Ji je posao sa najvećim prioritetom medju svimposlovima koji su spremni za izvršenje: dakle, procesor jedoznačen poslu Ji da se izvršava.
* Neka S* je semafor sa najvećim plafonom izmedju svihsemafora koji su trenutačno zaključani od strane svih drugihposlova izuzev Ji , i neka C(S*) je njegova gornja granica (ceiling).
* Da udje u kritičnu sekciju koja je čuvana od strane semaforaSk, Ji mora imati prioritet veći nego C(S*). Ako Pi ≤ C(S*),zaključavanje na Sk se ne dozvoljava i za Ji se kaže da jeblokiran na semaforu S* od posla koji drži zaključanim S*.
249
DESIGN OF RTOS SYSTEMS * Kada je posao Ji blokiran na semaforu, on prenosi svojprioritet na posao, recimo Jk , koji drži taj semafor. Dakle, Jk seponovo aktivira i izvršava ostatak svoje kritične sekcije saprioritetom od Ji. Za Jk se kaže da naslijedjuje prioritet Ji. Uopštem slučaju, task naslijedjuje najveći prioritet od poslovakoje je blokirao.* Kada Jk izadje iz kritične sekcije, on odključava semafor i
posao najvećeg prioriteta ( ako ih ima ), koji je blokiranna semaforu se budi.
Šta više, aktivni prioritet od Jk se ažurira kako slijedi:ako nema drugih poslova koji su blokirani od strane Jk ,pk se postavlja na nominalni prioritet Pk : inače, onse postavlja na najveći prioritet od svih poslovakoji su blokirani od strane Jk.
* Naslijedjivanje prioriteta je tranzitivno, tj. ako posao J3 blokiraposao J2 , i J2 blokira J1 , tada J3 naslijedjuje prioritetod J1 preko J2.
250
DESIGN OF RTOS SYSTEMS
Primjer PCP
Razmatrajmo : 3 posla J0, J1 , J2 sa smanjujućim prioritetimaJ0 sekvencijalno pristupa kritičkim sekcijama
koje su čuvane od strane S0 , S1.J1 pristupa samo kritičnim sekcijama koje sučuvane od strane S2J2 koristi S2 a zatim i ugnjezdjen pristup ka S1
Ovo rezultira u slijedećim graničnim vrijednostimaprioriteta semafora :
C( S0) = P0
C( S1) = P0
C( S2) = P1
251
DESIGN OF RTOS SYSTEMS
* U trenutku t0 , J2 se aktivira, i pošto je on jedini posao koji jespreman za izvršenje, on starta da se izvršava i kasnijezaključava semafor S2.* U trenutku t1 , posao J1 postaje spreman i priemptira J2.* U trenutku t2 , posao J1 pokušava da zaključa S2, ali jeblokiran od strane protokola pošto P1 nije veće od C( S2).Tada, J2 naslijedjuje prioritet od J1 i ponovno uzima njegovoizvršenje.
252
DESIGN OF RTOS SYSTEMS * U trenutku t3, J2 uspješno ulazi u svoju ugnježdenu kritičnusekciju, zaključavanjem S1. Primjetimo da je dozvoljeno J2da zaključa S1 pošto nema semafora koji su zaključani odstrane ostalih poslova.* U trenutku t4 , dok se J2 izvršava sa prioritetom p2 = P1 , J0postaje spreman i priemptira J2 pošto P0 › p2 .
253
DESIGN OF RTOS SYSTEMS
* U trenutku t5 , J0 pokušava da zaključa S0 , koji nijezaključan niti i od jednog posla. Medjutim, J0 , je blokirano odstrane protokola, pošto njegov prioritet nije veći nego C(S1),koje je najveća granica izmedju svih semafora koji su trenutnozaključani od strane drugih poslova. Pošto S1 je zaključan odstrane J2, J2 naslijedjuje prioritet od J0 i ponovno preuzimasvoje izvršenje.
254
DESIGN OF RTOS SYSTEMS
Osobine PCPTeorem : Protokol plafona ( ceiling) prioriteta spriječavapojavu deadlocka.
Teorem : ( Sha- Rajkumar- Lehoczky ) . Pod protokolomplafona prioriteta, posao Ji se može blokirati najviše za vrijemetrajanja jedne kritične sekcije.