LITERATURA : 1. William Stallings:Operating Systems Forth...

Post on 01-Nov-2019

2 views 0 download

Transcript of LITERATURA : 1. William Stallings:Operating Systems Forth...

1

PROJEKTOVANJE RACUNARSKI BAZIRANIH SISTEMA REALNOG VREMENA

DESIGN OF RTOS SYSTEMS

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 for Distributed Applications“, Kluwer Academic Publishers

4. Jane W. S. Liu: „Real-Time Systems “, Prentice Hall

2

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čunarskog hardvera.

Ciljevi :* Pogodnost: lakše korištenje kompjutera* efikasnost: efikasnije korištenje računarskih resursa* mogućnost proširenja: dozvoljava laganu integraciju novih servisa

3

DESIGN OF RTOS SYSTEMS OS kao korisnički interfejs

Hijerarhijski pogled na računarski sistem:

4

DESIGN OF RTOS SYSTEMS Servisi koje obezbjedjuje operativni sistem

* Razvoj programa : Alati kao editori, debageri. Ovi alati obićno nisu dio jezgre operativnog sistema ( core ).* Izvršenje programa: Niz zadataka koji je potreban da se izvrši program ( punjenje podataka i instrukcija u memoriju, inicijalizacija I/O uredjaja i fajlova , ..itd).* Pristup I/O uredjajima: Svaki I/O uredjaj zahtjeva posebne kontrolne signale. OS obezbjedjuje taj interfejs da bi ga sakrio od korisnika. * Pristup fajlovima: Locira fajlove na I/O uredjajima, iskorištava njihovu strukturu. Štiti pristupe fajlovima u slučaju kada ima više korisnika.

* Pristup sistemu: OS upravlja pristup korisnika sistemu i razriješava potencijalne konflikte.

5

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 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 .

6

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

7

DESIGN OF RTOS SYSTEMS Multiprogramiranje* Historijski prvi pokušaj da se prevazidju neaktivna

vremena procesora.Razlog za postojanje neaktivnog vremena: I/O su

mnogo sporiji od CPU.Primjer poredjenja:

* čitanje jednog zapisa iz fajla 0.0015 sek.* izvršenje 100 instrukcija 0.0001 sek.* upisivanje jednog zapisa u fajl 0.0015 sek.

------------------Total 0.0031 sek

procenat iskorištenosti CPU = 0.0001/0.0031 = 3.2%* Ideja multiprograminga: neka neki drugi program se

izvršava za vrijeme I/O pristupa.

8

DESIGN OF RTOS SYSTEMS * Uslov za ovo: Dovoljno memorije da može da drži više od

jednog programa u njoj za izvršavanje. * Multiprograming ( takodjer se naziva i multitasking) je koncept

koji se primjenjuje u svakom modernom OS-u.Primjer multiprograminga

9

DESIGN OF RTOS SYSTEMS Dijeljenje vremena ( time sharing)

* Ovaj koncept je inicijalno uveden da dijeli skupo računarsko vrijeme izmedju više korisnika.

* n korisnika -> svaki korisnik koristi samo 1/n-ti dioračunarskog kapaciteta ( ne uzimajući u obzir dio vremena koji koristi sam sistem ).

* Ovo je tolerantno pošto su korisničke akcije i reakcije mnogo sporije od računara.

* Pvi sistem sa dijeljenjem vremena je bio CTTS ( Compatible time sharing system ) , 1961 na MIT.

• Bio je organiziran tako da je :- uvjek jedan program u memoriji

• - TS manedjer zauzima prvih 5K memorije•

10

DESIGN OF RTOS SYSTEMS - Korisnički program je uvjek startao od adrese 5K.

• - Nakon fiksnog vremenskog intervala, korisnički program koji se završavao je bivao prebrisavan slijedečim korisničkim programom koji je čekao izvršenje.

* Djeljenje vremena je takodjer vrsta multiprogramiranja. Ovdje je cilj da se minimizira vrijeme odziva umjesto da se maksimizira iskorištenje procesora.

• Prekljućenje izmedju programa ( context switch), se u ovom slućaju vršilo zbog toga što je vremenski slot koji je bio dodjeljen poslu prošao, umjesto pokušaja da se pristupi I/O podsistemu ( ovo takodjer prouzrokuje context preključenje u sistemima sa djeljenjem vremena).

11

DESIGN OF RTOS SYSTEMS Glavni principi Operativnih sistemaDanas su Operativni sistemi najkompleksniji dio softvera koji je ikada razvijen. Tako naprimjer OS za kontrolu 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.

12

DESIGN OF RTOS SYSTEMS Procesi

Proces 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 stanjem procesa – process state) , uključuje sve informacije koje OS treba, da bi korektno upravljao procesom. * to uključuje sadržaje različitih registara ( uključujući i programski brojač – PC program counter ).

13

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

14

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 vjerovatno izvršavao, ali je iz nekog razloga zamjenjen sa procesom i. Ova procedura se naziva preemption ( ispražnjenje ). U situaciji koja je prikazana na slici, k je u stanju ćekanja ( waiting state) , dok je proces i u stanju izvršenja ( running state).*Procedura zamjene jednog procesa sa drugim se naziva preključenje sadržaja ( context switch).

*U obadva slućaja sva relevantna informacija o procesu je smještena u kontekstu. Specifična vrijednost PC ( programski brojač) u procesu k u trenutku preključenja konteksta je pohranjena u kontekstu.

15

DESIGN OF RTOS SYSTEMS

Na taj način, puneči procesorske registre sa vrijednostima koje su pohranjene u kontekstu, proces k će nastaviti da se izvrš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 i fleksibilno korištenje podataka.

*Menadjeri sistema žele da imaju efikasnu i blagovremenu kontrolu nad alokacijom memorije.

* Ovo je obadvoje obezbjedjeno putem upravljanja memorijom. Njeni primarni zadatci su:

16

DESIGN OF RTOS SYSTEMS

- Izolacija procesa: Spriječiti procese da pristupaju memorijskom prostoru drugih procesa.- Automatska alokacija i menadjment: Memorijski prostor za programe treba biti automatski alociran kroz čitavu hijerarhiju memorije. Ovo treba biti transparentno za korisnika ( tj. da on ovo i ne uočava ). - Podrška za modularno programiranje. Programeri trebaju biti u stanju da kreiraju i unište objekte podataka. - Zaštita i kontrola pristupa. Ako je potrebna dijeljena memorija, ovo treba biti organizirano na siguran način, izbjegavajući medjusobno uništavanje memorijskog prostora drugog procesa. - Dugovremeno pohranjivanje: Mnoge aplikacije zahtjevaju da se informacije pohranjuju i nakon što se se računar isključi.

17

DESIGN OF RTOS SYSTEMS

Virtuelna memorijaSvi gore pobrojani zahtjevi su podržani od strane :

Virtuelne memorije i sistema fajlova:

* Virtuelna memorija omogućava programima da adresiraju sa logičke tačke gledišta, bez obzira na kolićinu memorije koja 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 broja stranice 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.

18

DESIGN OF RTOS SYSTEMS * Sistem stranica obezbjedjuje dinamičko mapiranje izmedju virtuelnih adresa koje koristi program i realnih adresa u glavnoj memoriji. * Informacija o tome gdje je fizička stranica u odnosu na virtuelnu se održava u tabeli strana ( Page table). Svaki proces ima svoju tabelu strana ( page table). Kada je zahtjevana fizička strana na disku, ona se pohranjuje negdje u glavnu memoriju i ažurira se tabela stranica.

Primjer virtuelne memorije

19

DESIGN OF RTOS SYSTEMS Virtuelna memorija : Transformacija adresa

20

DESIGN OF RTOS SYSTEMS Virtuelno adresiranje : Hardverska podrška

Zaštita informacija i sigurnostPostoje tri glavne kategorije podrške koje nude operativni sistemi:* Kontrola pristupa: Regulira pristup korisnika totalnom sistemu ili podsistemima ( čak i individualnim data objektima ). Reguliranje pristupa procesa raznim resursima i objektima unutar sistema.

21

DESIGN OF RTOS SYSTEMS * Kontrola toka informacija: Regulira tok podataka unutar sistema 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

22

DESIGN OF RTOS SYSTEMS

Rasporedjivanje i menadjment resursaGlavni zadatak operativnog sistema: upravljati različitim resursima ( glavnim memorijskim prostorom, I/O uredjajima, procesorima ), i rasporedjivati njhovo korištenje od strane aktivnih procesa.Tri faktora trebaju biti razmatrana:

* Korektnost ( fairness): Svi procesi koji se nadmeću za korištenje nekog specifićnog resursa, trebaju imati približno isti i fer pristup ovom resursu.* Diferencirana odzivnost: Operativni sistem možda će morati 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 je prije moguće.

23

DESIGN OF RTOS SYSTEMS

* Efikasnost: Operativni sistem treba pokušati da maksimizira propusnost i minimizira vrijeme odziva.

Pošto su ovi zahtjevi djelomićno kontradiktorni, trebaće naći neki balans izmedju njih.

Rasporedjivanje unutar Operativnog sistema

24

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 spremni na 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 redu naizmenič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 i doznačuje im izvjesni memorijski prostor. Ovo se radi na bazi neke strategije.

25

DESIGN OF RTOS SYSTEMS

* Postoji po jedan I/O red po uredjaju. To znači da više od jednog procesa može zahtjevati korištenje ovog uredjaja. Rasporedjivač odlučuje koji od procesa koji ćeka za korištenje uredjaja 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 i imaju tendenciju daljeg rasta.Primjeri:

1964: IBM OS/360 1 M liniju koda1975 : MIT Multics 20 M linija koda2000: MS Windows 2K 32 M linija koda

26

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 nazvan servisima). Obićno to zavisi od servisa koje obezbjedjuje slijedeći niži nivo i obezbjedjuje servise slijedećem višem nivou.

27

DESIGN OF RTOS SYSTEMS

*Niži nivoi imaju mnogo kraća vremena izvršenja. Neki dijelovi operativnog sistema interaktiraju direktno sa hadverom. ( tj. u nanosekundnom ili mikrosekundnom vremenskom intervalu).

* Viši nivoi rade na mnogo sporijim vremenskim intervalima.

Idealni slojevi Operativnog sistema ( E. Dijkstra )

28

DESIGN OF RTOS SYSTEMS

29

DESIGN OF RTOS SYSTEMS Hardverski nivoi

Nivo 1: Elektronska kola kao što su registri, itd.. Tipične operacije su prenosi podataka izmedju registara i aritmetičke operacije.

Nivo 2: Instrukcioni set procesora. Obezbjedjuje cjelokupan set rapoloživih mašinskih instrukcija.

Nivo 3: Dodaje koncept procedure ili subrutine uključujući i call-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. Medjutim sam sistem interapta je u vrlo tijesnoj sprezi sa Operativnim sistemom.

30

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 pohrane konteksti. Ako procesi kooperiraju potreban je i neki metod njihove sinhronizacije.* Nivo 6: Radi sa sekundarnom memorijom računara. Funkcije za pozicioniranje (read/write) glava za čitanje i pisanje se obezbjedjuju za ovo i uvodi se transfer blokova podataka. Putem nivoa 5, procesi koji traže ove usluge se obavještavaju o izvršenju ovih operacija.* Nivo 7: Kreira logičku adresu prostora za procese. Organizira virtuelni adresni prostor u blokovima koji se mogu pomjerati izmedju glavne memorije i sekundarne memorije.

31

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 bogatiji u dijeljenju informacija. Pajp ( pipe) je izlaz iz jednog procesa i ulaz u drugi proces.

* Nivo 9: Dugovremena memorija imenovanih fajlova. Podatci u sekundarnoj memoriji se sada posmatraju kao abstraktni entiteti varijabilne dužine.

* Nivo 10: Obezbjedjuje pristup vanjskim uredjajima koristeći standardne interfejse.

32

DESIGN OF RTOS SYSTEMS

* Nivo 11: Je odgovoran za održavanje asocijacije izmedju vanjskih i unutarnjih identifikatora. Vanjski identifikatori su imena koja daju korisnici. Unutarnji identifikatori su adrese.

* Nivo 12: Obezbjedjuje potpune usluge za podršku procesima. Na ovome nivou sve informacije koje su potrebne za menadjment procesa su obezbjedjene.

* Nivo 13: Obezbjedjuje interfejs korisnika sa operativnim sistemom. Naziva se školjkom ( shell) pošto odvaja korisnika od detalja OS. Predstavlja OS kao jednostavnu kolekciju servisa.

33

DESIGN OF RTOS SYSTEMS

Bazična arhitektura Windows 2000 OS

34

DESIGN OF RTOS SYSTEMS Niži abstraktni nivoi Win 2K

* Hardverski abstraktni nivo ( HAL – hardware abstraction layer): Izolira OS od razlika u hadveru platformi na kojima je instaliran. Na taj način se postiže da hadverske karakteristike različitih arhitektura izgledaju slićne jedne drugima.

* Mikrokernel : se sastoji od najčešće korištenih i najosnovnijih komponenti OS, tj. :

- rasporedjivanja konaca ( thread scheduling)- prekljućenja procesa ( process switching )- multiprocesorska sinhronizacija

Mikrokernelski kod se ne izvršava u koncima , tj. on je jedini dio operativnog sistema koji nije priemtive ( ne stavlja se na stek radi učitavanja drugog programa) niti je rasporediv po stranicama virtuelne memorije ( pageable).

35

DESIGN OF RTOS SYSTEMS * Drajveri za uredjaje ( device drivers): Uključuju i fajl sistem i drajvere za hadverski uredjaj. Ovaj drajver za uredjaj prevodi korisničke I/O funkcionalne pozive ( I/O function calls) u specifične I/O zahtjeve prema hadverskom uredjaju.

Win2k executiveI/O menadjer : Obezbjedjuje okvir kroz koji aplikacije mogu pristupiti I/O uredjajima. On je odgovoran za rasporedjivanje na odgovarajuće drajvere uredjaja. Nameće zahtjeve sigurnosti i imenovanja za uredjaje i fajl sisteme ( koristeći objektni menadjer ).Objektni menadjer: Kreira, upravlja, i briše W2K izvršne objekte i abstraktne tipove podataka koji su se koristili da bi se predstavili resursi kao što su: procesi, konci ( threads), i sinhronizacija objekata. Takodjer kreira objektne hendlove, kojise sastoje od informacije o kontroli pristupa objektu kao i pointera na taj objekat.

36

DESIGN OF RTOS SYSTEMS

Monitor reference sigurnosti: kreira i briše objekte i prati procese i ukončava objekte. * Servis poziva lokalne procedure ( LPC – local procedure call): Nameće klijent/server relaciju izmedju aplikacija i izvršnih podsistema unutar jedinstvenog sistema.

Menadjer virtuelne memorije : Mapira virtuelne adrese adresnog prostora procesa na fizičke strane u memoriji računara. Menadjer keša ( cache manager ): Poboljšava performanse fajl baziranih I/O na taj način što obezbjedjuje da zadnje referencirani podatci sa diska ostaju u glavnoj memoriji neko kraće vrijeme prije nego što ih pošalje ponovo na disk. Moduli prozorske grafike : kreira prozorski orijentirani ekranski interfejs i upravlja grafičkim uredjajima.

37

DESIGN OF RTOS SYSTEMS

Win2K korisnički procesi

Ovi procesi se povezuju koristeći dinamički povezive biblioteke ( dynamically linked libraries- DLL )

* Specijalni procesi sistemske podrške : uključuju servise koji nisu obezbjedjeni kao dio Win2K OS, kao što je proces logiranja i menadjer sesije.

* Serverski procesi: Drugi W2K servisi kao što je naprimjer zapisivač dogadjaja ( data logger)

* Podsistemi okruženja ( environment subsystems): Izlažu izvorne W2K servise korisnikovim aplikacijama i na taj način obezbjedjuju OS okruženje, ili personalizaciju.

38

DESIGN OF RTOS SYSTEMS Podržani podsistemi su:

- Win32 - Posix- OS-2

U svakom od ovih slučajeva izvorni pozivi ( native calls) se prevode u W2K pozive.

* Korisničke aplikacije

39

DESIGN OF RTOS SYSTEMS Bazična arhitektura UNIX-a

40

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 na slijedećem blok dijagramu:

41

DESIGN OF RTOS SYSTEMS Bazna arhitektura LINUX-a

LINUX je izvorno bio napisan od strane Torvaldsa kao UNIX varijanta za IBM PC računare. Za razliku od većine UNIX sistema, koji su monolitni kerneli, LINUX slijedi modularnu strukturu, koristeći punive module ( loadable modules).Ovi moduli imaju dvije vrlo važne karakteristike:* Dinamičko povezivanje: Kernelski modul se može napuniti i povezati sa kernelom i kada je kernel već u memoriji i izvršava se. Modul se takodjer može razvezati ( unlink ) i otkloniti iz memorije u bilo kojem trenutku vremena. Nadsloživi moduli ( stackable modules): Moduli su aranžirani u hijerarhiji. Individualni moduli služe kao biblioteke kada se referenciraju od klijentskih modula koji su visoko iznad u hijerarhiji, a kao klijenti kada referenciraju module koji su ispod njih u hijerarhiji.

42

DESIGN OF RTOS SYSTEMS Lista primjera LINUX kernelskih modula( Prikazana je situacija nakon punjenja samo dva kernelska modula : FAT i VFAT )

43

DESIGN OF RTOS SYSTEMS PROCESI

* Da bi se program izvršio kreira se Proces ili Task.* Možemo karakterizirati ponašanje individualnog procesa izlistavajući sekvencu instrukcija koje se izvršavaju za ovaj proces. Ovo se zove praćenje traga ( trace ) procesa.* Procesor ne vidi individualne tragove procesa nego samo preklopljenu ( interleaved) totalnu sekvencu koja je rezultat izvršavanja ovih procesa na preklapajući način, zajedno sa umetnutim instrukcijama čije je porijeklo sam operativni sistem.* U narednom primjeru mi ćemo predpostaviti tri procesa i dispečer OS-a koji se pune u glavnu memoriju, i da nema virtuelne memorije. Predpostavićemo da svaki proces ima tajm-out nakon 6 instrukcija, i dispečer treba narednih 6 instrukcija da izvrši preključenje konteksta ( context switch). U realnosti potrebno je mnogo više instrukcija za ovo a i time-outi se dešavaju nakon mnogo većeg broja instrukcija.

44

DESIGN OF RTOS SYSTEMS

* Zahtjev za I/O operacijom će takodjer dovesti do toga da proces mora da ćeka , tj. i u ovom slućaju se izvršava preključenje konteksta ( context switch).Primjer : Mapa memorije ( snapshot snimak )

45

DESIGN OF RTOS SYSTEMS

Primjer : Tragovi procesa

46

DESIGN OF RTOS SYSTEMS

Primjer: Pogled na procesor

47

DESIGN OF RTOS SYSTEMS Model procesa sa dva stanja

U slućaju najednostavnijeg modela, proces može biti ili u izvršenju ili ne. Ovo vodi do najednostavnijeg modela procesa kao na slici:

48

DESIGN OF RTOS SYSTEMS

Dispečer predstavljen kao operacija stavljanja u red ćekanja

Novo kreirani procesi kao i oni koji se zaustavljeni se unose u red ćekanja. Dispećer, kada se aktivira, uzima prvi element u redu i prenosi kontrolu nad procesorom ovom procesu:

49

DESIGN OF RTOS SYSTEMS Dodatna stanja* Kreiranje procesa: Kada novi proces treba da bude kreiran, operativni sistem gradi potrebne strukture podataka i alocira memorijski prostor procesu. * Završavanje procesa: Kada proces je završen, bilo zbog normalnog završetka ili zbog grešaka, memorijski prostor se vraća na raspolaganje operativnom sistemu i uklanjaju se strukture podataka procesa.

* Procesi koji se ne izvršavaju trebaju se medjusobno razlikovati kao oni koji samo ćekaju na procesor ( tj. oni mogu da se izvršavaju odmah) , i one koji ćekaju na neki drugi uredjaj ( napr. I/O uredjaj).

* Ovo vodi do modela izvršenja procesa sa pet stanja kao na slijedećoj slici :

50

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 se neki dogadjaj ne pojavi, kao što je naprimjer neka I/O operacija.

51

DESIGN OF RTOS SYSTEMS

* New: Proces koji je upravo bio kreiran ali još nije bio primljen u bazen onih procesa koji se izvršavaju od strane operativnog sitema. Tipično, novi proces nije još bio napunjen u glavnu memoriju.

* Exit: Proces koji je oslobodjen iz bazena izvršavanih procesa od strane OS, bilo zbog toga što je zadržan ili je odbačen iz nekog 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 Ready stanje kada je on spreman da preuzme još jedan dodatni proces. Većina OS ima neku granicu broja procesa koji se mogu izvršavati.

52

DESIGN OF RTOS SYSTEMS * Ready-> Running: Kada je vrijeme za novi proces da se izvršava, OS bira jedan od procesa iz ready stanja. Selekcija može biti sofisticiranija nego što je to Round-Robin pristup.

* Running-> Exit: proces koji se trenutno izvršava se okončava od strane OS ako proces indicira da se kompletiralo njegovo izvršenje ili ako je odbačen ( aborted).

* Running-> Ready : Najčešći razlog za ovu tranziciju je da je proces koji se izvršava dostigao svoj maksimalni neprekinuti interval vremena za izvršenje. Drugi razlog ( samo u slučaju da OS podržava različite nivoe prioriteta), može biti, da je proces većeg nivoa prioriteta prispjeo i mora odmah biti izvršavan. Ova procedura se naziva '' preemepcija'' . Proces može takodjer i dobrovoljno osloboditi kontrolu nad procesorom

53

DESIGN OF RTOS SYSTEMS * Running-> Blocked: Proces se stavlja u Blocked stanje ako zahtjeva nešto na što mora ćekati. Zahtjev ka OS je obićno u obliku poziva ka sistemskom servisu ( takodjer se naziva i sistemska primitiva) , napr. poziv od programa koji se izvršava ka proceduri koja je dio OS. Kada procesi komuniciraju, proces može biti blokiran dok ćeka na poruku od drugog procesa koja još nije bila poslata.* Blocked-> Ready: proces u blocked stanju je pomjeren u Ready ( spreman) stanje, kada se dogadjaj na koji je čekao, desi. * Ready-> Exit: radi jasnoće , ova tranzicija nije pokazana u dijagramu stanja. U nekim OS sistemima ( napr. UNIX) , roditelj može okončati dijete proces u bilo kojem trenutku vremena. Takodjer, ako se roditelj okonča, sva djeca procesi koji su pridruženi sa roditeljem mogu biti takodjer okončani. Proces se naziva roditeljem drugog procesa ako je inicirao kreiranje tog procesa.

54

DESIGN OF RTOS SYSTEMS

* Blocked->Exit: Komentari koji su bili navedeni kod prethodne tranzicije vrijede i ovdje. Tipični primjer za ovo je odbacivanje procesa štampača koji visi u nekom stanju.

Model sa pet stanja: Jednostavni sistem reda ćekanja

55

DESIGN OF RTOS SYSTEMS

Različiti redovi ćekanja za različite dogadjaje

56

DESIGN OF RTOS SYSTEMS Suspendovano stanje

*I/O su ekstremno spori u odnosu na brzinu izvršenja procesora.

*Čak i u našem multiprogramskom modelu sa visokom vjerovatnoćom, svi procesi će čekati na I/O, i procesor će biti nezaposlen ( idle).* Riješenje: Prebaciti jedan ili više procesa na ćekanju na disk a ubaciti spremne procese sa diska ili prihvatiti novo prispjeleprocese.* Iz ovog razloga dva ili više stanja se uvode: Ready/ Suspend i Blocked/ Suspend stanje * Prebacivanje sa zamjenom ( swapping) je I/O operacija koja može takodjer da uspori sistem. Zato je potrebna pažljiva parametrizacija.

57

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.

58

DESIGN OF RTOS SYSTEMS

* Blocked-> Blocked/Suspend: Ako nema ready ( spremnih) procesa, tada barem jedan blokirani proces se izbacuje iz memorije ( swapped out) da se napravi prostor za neki drugi proces koji nije blokiran. Ovo se može ćakdesiti i kada postoji ready ( spreman) proces koji je raspoloživ u slučaju kada OS detektuje da će zahtjevati isuviše glavne memorije za efikasno izvršenje.

* Blocked/Suspend-> Ready/Suspend: Ova tranzicija stanja se pojavljuje ako se dogadjaj na koji se ćekalo se pojavi. Primjetimo da informacija stanja suspendovanog procesa mora biti raspoloživa OS-u.

59

DESIGN OF RTOS SYSTEMS

* Ready/Suspend->Ready: Kada nema spremnih procesa u glavnoj memoriji, OS će trebati da unese jedan i da nastavi operaciju. Druga mogućnost je da proces u Ready/Suspend redu ćekanja ima veći prioritet od drugih procesa u Ready redu ćekanja.

* New-> Ready/Suspend and New -> Ready: Kada se kreira novi proces, može se dodati u bilo koji od dva reda. U obadva slućaja OS mora da kreira neke strukture podataka. Može biti razumno da ovo uradi što je prije da bi imao veliki broj raspoloživih spremnih procesa, čak i kada 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 ima smisla da se direktno unesu u Ready red ćekanja.

60

DESIGN OF RTOS SYSTEMS

•Blocked/Suspend-> Blocked: Ovo izgleda malo neobićno na prvi pogled. Ali ako proces u Blocked/Suspend redu ćekanja ima veći prioritet nego svi procesi u Ready redu ćekanja, i ako OS ima dobre razloge da oćekuje da blokirani resurs postane uskoro raspoloživ, ima smisla da se napuni proces u nekoj vrsti prethodnog zahvata ( prefetching).

* Running-> Ready/Suspend: Normalno, proces u izvršenju se prebacuje u Ready stanje kada istekne vrijeme koje mu je dodjeljeno za izvršenje. U rijetkim slučajevima, kada OS priemptira proces zbog procesa sa višim nivom prioriteta u redu ćekanja Blocked/Suspend koji je upravo postao deblokiran, OS može prebaciti priemptirani proces direktno u Ready/Suspend red ćekanja da bi oslobodio nešto glavne memorije.

61

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 strane procesa koji ga je kreirao ( napr. od procesa roditelja –parent process), ili pak zbog okončanja samog procesa roditelja. Time proces iz bilo kojeg stanja može biti prebaćen u stanje izlaza ( Exit ).

Kontrolne strukture Operativnog sistema

Operativni sistem treba da upravlja procesima i resursima te zbog toga mora da ima informacije o tekučem statusu svih procesa i resursa. Ovo je pohranjeno u slijedeće strukture podataka:Memorijske tabele: Da bi u njima držao evidenciju o glavnoj memoriji kao i sekundarnoj memoriji. Memorijske tabele moraju da sadržavaju slijedeće informacije:

62

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/O uredjajima i kanalima računarskog sistema. U svakom datom trenutku vremena, I/O uredjaj može biti raspoloživ ili doznačen nekom odredjenom procesu. Ako je neka I/O operacija u progresu, OS treba da zna njen status.* File tabele ( opciono) : Informacije o postojanju fajlova, njihovoj lokaciji u sekundarnoj memoriji, njihovom tekučem statusu, kao i drugim atributima.Ako se ovim informacijama upravlja od strane sistema za

menadjment fajlova ( file mamagement system), tada OS uglavnom nisu potrebne ove informacije.

63

DESIGN OF RTOS SYSTEMS

* Procesne tabele: Koje koristi OS da upravlja procesima. Ove strukture podataka bit će u nastavku detaljnije analizirane.

Kontrolne tabele Operativnog sistema

64

DESIGN OF RTOS SYSTEMS

Kontrolne strukture procesa

Cjelokupni memorijski prostor kojeg zauzima proces se naziva procesna 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 o pozivima procedura i prenosu parametara ka njima .

* niz atributa koji se koriste od strane OS za kontrolu procesa. Ovaj set atributa se naziva Kontrolni blok procesa ( Process control Block – PCB ).

65

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 jedinstven numerički identifikator, t.j. jednostavno jedan indeks u primarnoj tabeli procesa. Kadgod se treba taj proces adresirati ( ili od strane OS ili nekog drugog procesa), koristi se ovaj identifikator. Ako je procesu dozvoljeno da kreira druge procese, ovaj identifikator označava i proces roditelj kao i sve nasljednike tog procesa.

66

DESIGN OF RTOS SYSTEMS

Informacija o stanju procesora: Ovdje se pohranjuje sadržaj procesorskih registara u trenutku kada je proces izgubio stanjeizvršenja ( running) . Ovaj set registara se sastoji ne samo od registara koji su vidljivi za korisnika, nego i od dodatnih statusnih registara. Naročito je tkzv. riječ programskog statusa ( PSW –program status word), dio ove informacije.Informacija o kontroli procesa: Ovo je dopunska informacija koja je potrebna Operativnom sistemu da bi kontrolirao i koordinirao razne aktivne procese. Ona sadrži:* Informaciju o rasporedu i stanjima ( scheduling and state)

- Stanju procesa- prioritetu- informacije koje se odnose na rasporedjivanje- dogadjaji

67

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 User Mode, u kojem su dozvoljene samo normalne instrukcije* Provilegirani mod, nazvan i System mode, Control Mode ili Kernel Mode, u kojem se dodatno dozvoljava i pristup kontrolnim registrima, i I/O operacijama.

68

DESIGN OF RTOS SYSTEMS

•Tekuči mod rada je pohranjen u PSW procesora.

* Preključenje moda se izvršava od strane specifične operacije. Može se izvršiti u sistemskom modu. U User modu, ova instrukcija postaje poziv ka OS , koji tada može da odluči da li da dozvoli procesu da se izvršava u sistemskom modu ili ne.* Manje privilegirani mod, koji se najčešće naziva User Mode, u kojem su dozvoljene samo normalne instrukcije* Provilegirani mod, nazvan i System mode, Control Mode ili Kernel Mode, u kojem se dodatno dozvoljava i pristup kontrolnim registrima, i I/O operacijama.

69

DESIGN OF RTOS SYSTEMS Kreiranje procesa

OS kreira proces koristeći slijedeće korake:

* Doznačava jedinstveni identifikator procesa novom procesu* Doznačuje memorijski prostor za proces. Ovo uključuje sve elemente procesne slike.

* Inicijalizira kontrolni blok procesa. Informacija kontrole procesa se inicijalizira na bazi standardnih default vrijednosti plus specifične vrijednosti koje su obezbjedjene za ovaj proces.

70

DESIGN OF RTOS SYSTEMS

* Setuje odgovarajuće linkove. Napr. ako OS održava svaki red rasporedjivanja kao uvezanu listu, tada novi proces se mora staviti u Ready ili Ready/Suspend listu.

* Kreira ili ekspandira i druge strukture podataka. Napr. OS mož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 ima kontrolu nad procesorom. Ono takodjer se dešava i automatski, inicijalizirano od hadvera procesora kada se pojavi interapt. Ovo je ujedno i jedini način na koji OS može dobiti kontrolu nad procesorom. Najkomplikovanije preključenje procesa je tranzicija stanja iz stanja izvršenja ( Running) u neko drugo stanje.

71

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ći red ć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 postojao kada je izabrani proces za izvršenje, posljednji put preključen van izvršenja u neko drugo stanje.

72

DESIGN OF RTOS SYSTEMS

Izvršenje Operativnog sistema

73

DESIGN OF RTOS SYSTEMS Konci ( threads)

Koncept procesa uključuje dvije karakteristike:*Vlasništvo nad resursom ( resource ownership): Proces uključuje virtualni adresni prostor u kojem će držati pocesnu sliku, i sa vremena na vrijeme on takodjer doznačuje vlasništvo nad resursima kao što su glavna memorija, I/O kanali, I/O uredjaji.

* Rasporedjivanje/izvršenje ( scheduling/execution): Izvršenje procesa slijedi stazu izvršenja kroz jedan ili više programa. Proces ima stanje izvršenja ( Running, Ready, itd), i predstavlja entitet koji je rasporedjivan i dispečiran od strane OS.

Moderni OS se razlikuju medjusobno po ovim dvjema karakteristikama. Proces ih posjeduje obadvije. Može se sastojati od više od jednog konca ( thread). Konac ima samo karakteristiku da predstavlja objekat rasporedjivanja ( scheduling).

74

DESIGN OF RTOS SYSTEMS

On dijeli sve resurse sa drugim koncima istog procesa.

Konci i procesi

75

DESIGN OF RTOS SYSTEMS

Višekončani model procesa

76

DESIGN OF RTOS SYSTEMS Stanja konaca

Pošto konci nemaju karakteristiku posjedovanja resursa, za njih su relevantna samo tri stanja:

* running* ready

* blockedTipično, postoje četiri osnovne operacije koje mjenjaju stanja konaca:

* Spawn: Kada novi proces je spawniran, inicijalni konac za njega je takodjer spawniran. Ovaj može takodjer da spawnira i druge. * Block: Kada konac treba da ćeka na neki dogadjaj koji će ga blokirati, pohranjujući svoje korisničke registre, programski brojač i pokazivače na stekove.

77

DESIGN OF RTOS SYSTEMS * Unblock: Kada se dogadjaj zbog kojeg je konac blokiran pojavi, konac se prebacuje u red čekanja spremnih ( ready).* Finish: Kada se konac kompletira, njegovi sadržaji registara i stekovi se dealociraju ( tj. oslobadjaju).

KONTROLA KONKURENTNOSTI ( ISTOVREMENOSTI )Jednostavan primjer:

Razmotrimo slijedeću proceduru:void echo ()

{chin= getchar();chout=chin;putchar(chout);}

78

DESIGN OF RTOS SYSTEMS

Ovaj program dakle čita jedan karakter sa tastature, prebacuje ga 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 prvog iskaza. Karakter kojeg je pročitao ( napr. x) je pohranjen u chin. 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 unjeo korisnik je prepisana sa vrijednošću y i izgubljena je. Sada će varijabla chin sadržavati y koja se prebacuje na chout i pokazuje na ekranu. Dakle korisnik je unjeo x a na ekranu će se pokazati y.

79

DESIGN OF RTOS SYSTEMS Prvo riješenje za opisani problem

Iz gornjeg opisa problema slijedi da mi treba da imamo kontrolu pristupa dijeljenim objektima. Čineči to, možemo doći do slijedećeg riješenja:

1. Proces P1 poziva echo i prekinut je neposredno nakon izvršenja prvog iskaza. Karakter koji je unesen, napr. x , se pohranjuje u chin.

2. Proces P2 se aktivira i poziva echo modul. Medjutim, pošto je P1 još uvjek unutar echo modula, mada trenutno suspendovan, P2 je blokiran da udje u echo proceduru. Zbog toga će P2 biti suspendovan, ćekajuči na raspoloživost echo procedure.

80

DESIGN OF RTOS SYSTEMS

3. Nakon nekog vremena, proces P1 je ponovo aktiviran ( resumed), i kompletira izvršenje echo procedure. Korektan karakter koji je unesen, tj. x će biti prikazan na ekranu.

4. Kada P1 izadje iz echo procedure, ovo će otkloniti blokadu na P2. Kada se P2 nastavi izvršavati, moći će uspješno pozvati echo proceduru.

Zadatci Operativnog sistema za implementaciju opisanog riješenja

1. OS mora biti u stanju da vodi evidenciju raznih aktivnih procesa. Za ovo se koristi PCB struktura.

81

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 procesa od neplanirane interferencije od strane drugih procesa.

4. Rezultat procesa mora biti nezavistan od brzine sa kojom se izvršio, relativno u odnosu na ostale konkurentne ( istovremene ) procese.

82

DESIGN OF RTOS SYSTEMS

Tri kontrolna problema: 1. Medjusobno isključenje

* Predpostavimo da dva ili više procesa zahtjevaju pristup ka jednom nedijeljenom resursu ( napr. štampaču).

* Za vrijeme izvršenja svaki proces će slati komande ili podatke i primaće statusne informacije ili podatke.

* Takav resurs se naziva kritičnim resursom, a dio programa koji ga koristi se naziva Kritična Sekcija ( Critical section).

* Bitno je da je samo jedan program u datom trenutku vremena u kritičnoj sekciji.

83

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 proces da oslobodi njemu dodijeljen resurs. Drugi proces ga medjutim ne može osloboditi, jer je i on blokiran.

84

DESIGN OF RTOS SYSTEMS Tri kontrolna problema: 3. Izgladnjavanje ( starvation)

* Predpostavimo da sva tri procesa P1, P2 i P3 zahtjevaju periodičan pristup resursu R. * Predpostavimo da je P1 u posjedu R a P2 i P3 ćekaju na njega. * Predpostavimo da OS omogući pristup R kada P1 izadje iz kritične sekcije.* Ako P1 zahtjeva R ponovno prije nego što se okonča izvršenje P2 i ako OS doznači R ka P1 nakon što je P2 završio, P3 neće nikada moći pristupiti R.

85

DESIGN OF RTOS SYSTEMS

Šema riješenja za medjusobno isključenje

86

DESIGN OF RTOS SYSTEMS Kooperacija putem dijeljenjaPredpostavimo dva programa koji dijele varijable a i b. Obadva programa rade neku obradu podataka u kojoj je bitno da vrijednosti 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 sa nekonzistentnim stanjem:

a= 4 i b= 3Slijedi da, kritične sekcije se takodjer trebaju koristiti kada koristimo dijeljene varijable.

87

DESIGN OF RTOS SYSTEMS Zahtjevi za medjusobno isključenje

1. Medjusobno isključenje mora biti nametnuto; samo jednom procesu u datom trenutku vremena je dozvoljeno da bude unutar njegove kritične sekcije, od svih procesa koji imaju kritič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 ka kritičnoj sekciji, da bude beskonačno zadržavan, ne smije se pojaviti medjublokada, niti izgladnjavanje.

4. Kada nema niti jednog procesa u kritičnoj sekciji, bilo koji proces koji zahtjeva ulaz u svoju kritičnu sekciju, mora biti omogućen da udje bez zadržavanja.

88

DESIGN OF RTOS SYSTEMS

Hadverska 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 */}

89

DESIGN OF RTOS SYSTEMS

Ovo radi samo na jednoprocesorskim mašinama. Degradira dramatič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:

90

DESIGN OF RTOS SYSTEMS

boolean testset (int i){

if ( i == 0 ){

i = 1 ;return true ;

}else

{return false ;

}}

91

DESIGN OF RTOS SYSTEMS Hadverska 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) ) ;}

92

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 ;

}

93

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) ) ;}

94

DESIGN OF RTOS SYSTEMS

Osobine pristupa preko mašinskih instrukcija

* Može se primjeniti na bilo koji broj procesa ili na jednoprocesorskoj ili višeprocesorskoj mašini sa dijeljenjem glavne 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 vlastitom varijablom.

95

DESIGN OF RTOS SYSTEMS Nedostaci pristupa preko mašinskih instrukcija.* Koristi se ćekanje zbog zauzetosti ( busy waiting), tj. proces koji čeka na kritičnu sekciju nastavlja da konzumira procesorsko vrijeme. * Moguće je izgladnjavanje ( starvation), Kada proces napušta kritičnu sekciju a ćeka više od jednog procesa, selekcija procesa koji ćeka je arbitrarna. Posljedica ovoga je da neki procesi mogu ćekati beskonačno dugo. * Moguća je pojava medjublokade ( deadlocka). Napr. proces P1 izvršava specijalnu instrukciju ( testset ili exchange) i ulazi u kritičnu sekciju. P1 se nakon toga prekida da bi procesor bio dat P2 koji ima veći prioritet. Ako P2 sada pokuša da koristi isti resurs kao i P1, bit će mu zabranjen pristup. Zbog toga će on ući u konturu ćekanja zbog zauzeća resursa. Medjutim, P1 neće nikada biti lansiran u izvršenje zbog toga što ima manji prioritet nego drugi spreman proces tj. P2.

96

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. Ako vrijednost postane negativna, onda proces koji izvršava wait se blokira. * Signal: Ova operacija inkrementira vrijednost semafora. Ako vrijednost nije pozitivna, onda proces koji je bio blokiran sa wait operacijom se deblokira.

Kao specijalna vrsta semafora može se definirati binarni semafor. Njegove semaforske vrijednosti mogu biti samo 0 i 1.

97

DESIGN OF RTOS SYSTEMS Definicja semaforskih operacija

Primjetimo da se slijedeći pseudo kod ne može implementirati u C programskom 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 ;

} }} }

98

DESIGN OF RTOS SYSTEMS

Definiranje operacija binarnog semafora

struct 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 ;

} }} }

99

DESIGN OF RTOS SYSTEMS

Primjeri korištenja semafora

100

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) ) ;}

101

DESIGN OF RTOS SYSTEMS Ponašanje riješenja medjusobnog iskljućenja

102

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.

103

DESIGN OF RTOS SYSTEMS

104

DESIGN OF RTOS SYSTEMS

Riješenje problema Proizvodjač/Potrošač/* program boundedbuffer*/

105

DESIGN OF RTOS SYSTEMS

Medjublokade ( deadlocks)

106

DESIGN OF RTOS SYSTEMS

Uslovi za medjublokade

1. Medjusobno isključenje: Samo jedan proces može koristiti resurs u svakom trenutku vremena

2. Drži i ćekaj (Hold and wait): Proces može držati dodijeljeni resurs dok ćeka doznačavanje ostalih.

3. Nema priempcije: Nikakav resurs ne može biti na silu oduzet od procesa dok ga on drži.

4. Kružno ćekanje: Postoji zatvoreni lanac procesa, tako da svaki proces drži najmanje jedan resurs koji je potreban slijedećem procesu u lancu.

107

DESIGN OF RTOS SYSTEMS

Primjer kružnog ćekanja

Prevencija medjublokada ( deadlocka)* Medjusobno iskljućenje: Ovo ne može biti iskljućeno kao riješ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 zahtjevamo da proces zahtjeva sve svoje potrebne resurse istovremeno i blokiranjem procesa dok mu nisu dati svi resursi. Ovo naravno će sa svoje strane uvesti neefikasnost u izvršenju programa.

108

DESIGN OF RTOS SYSTEMS

* Nema priempcije: Jedno riješenje može biti da se prisili proces da oslobodi resurs koji već drži ako je on blokiran zbog toga što još jedan resurs koji mu je potreban nije raspoloživ.

* Kružno ćekanje: Ovo može biti sprijećeno definirajući linearno uredjenje tipova resursa. Ako proces ima alocirane resurse tipa R, tada može da zahtjeva samo one tipove resursa koji slijede nakon R u redoslijedu.

* Dokaz: Prepostavimo da je P1 zaključao Ri i želi da zaključa Rk. Ovo je dozvoljeno ukoliko je i < k. Ali nakon toga nije dozvoljeno da P2 drži Rk i želi da zakljuća Ri pošto bi ovo impliciralo da je k < i.

109

DESIGN OF RTOS SYSTEMS Menadjment memorijeZahtjevi na menadjment memorijeObićno se postavljaju slijedeći zahtjevi na sistem upravljanja memorijom:

* 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 biti napunjen u glavnu memoriju. * Pošto se programi ubacuju i izbacuju ( swapped) iz glavne memorije, vrlo je malo vjerovatno da će program biti swapovan u memoriju na istoj lokaciji na kojoj je ranije bio.

110

DESIGN OF RTOS SYSTEMS

* Umjesto toga, mi treba da relociramo proces u različite dijelove memorije.

* Operativni sistem treba da zna:- PCB- ulaznu tačku za program- tekuči vrh steka

* Operacije granjanja unutar programa i referenciranje podataka traži još sofisticiraniju podršku.

111

DESIGN OF RTOS SYSTEMS

Adresiranje zahtjeva za proces

112

DESIGN OF RTOS SYSTEMS Zaštita

* Svaki proces treba biti zaštićen od neželjene interferencije od drugih procesa.

* Zadovoljenje zahtjeva relokacije, čini ovu situaciju mnogo komplikovanijom, pošto lokacija programa u glavnoj memoriji postaje 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 u adresnom prostoru OS.- Program ne može pristupiti adresama u adresnom prostoru drugog procesa.

113

DESIGN OF RTOS SYSTEMS * Ovo je nametnuto putem adresiranja preko baznog registra i provjeravanja da li su adrese van nekih granica.

•Primjetimo da ovi mehanizmi moraju biti obezbjedjeni od strane hadvera , OS to ne može raditi bez podrške hadvera.

Dijeljenje (sharing)* Svaki mehanizam zaštite mora imati fleksibilnost da dozvoli da nekoliko procesa pristupa istom dijelu glavne memorije Primjer za ovo je dijeljeni kod.* Procesi koji komuniciraju trebaju najmanje minimalni dio prostora djeljene memorije da bi ovo mogli uraditi.

* Naravno, dijeljenje podataka je opasno sa stanovišta zaštite podataka. Zbog toga sistem za menadjment memorijom treba da dozvoli dijeljenje samo pod striktno definiranim pravilima.

114

DESIGN OF RTOS SYSTEMS

Logička organizacija* Memorija u računarima je organizirana kao linearni, tj. jedno dimenzionalni, 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 od modula, 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 od strane OS u modu izvršenja ( runtime).- Različiti stepeni zaštite se mogu doznačiti modulima.

115

DESIGN OF RTOS SYSTEMS - Djeljenje modula izmedju procesa se može podržati. Ovo odraž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 sekundarnu memoriju.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

116

DESIGN OF RTOS SYSTEMS * Tok izmedju ova dva nivoa memorijske hijerarhije je glavna briga za OS. ( Keš memorija je transparentna za OS , ona se u potpunosti kontroliše od strane hardvera).Tehnike menadjmenta memorije

Fiksno razdjeljivanje ( partitioning)

Glavna memorija je podjeljena u više statičkih particija u toku vremena generacije OS. Program se može napuniti u particiju jednake ili veće velićine od particije.Ovaj metod je jednostavan za implementaciju i predstavlja malo dopunskog opterećenja ( overhead) za OS.

Nedostatak je neefikasno korištenje memorije zbog interne fragmentacije. Maksimalni broj aktivnih procesa je fiksan.

117

DESIGN OF RTOS SYSTEMS Dinamičko razdjeljivanjeParticije se dinamički kreiraju, tako da svaki proces se loaduje u particiju tačno iste velićine kao i proces. Prednost je da nema interne fragmentacije, i efikasnije korištenje memorije. Nedostatak je neefikasno korištenje procesora zbog potrebe kompaktacije da bi se spriječila vanjska fragmentacija.Jednaostavno straničenje ( paging)Glavna memorija je razdjeljena u niz okvira iste velićine. Svaki proces je razdjeljen u stranice iste velićine koje su istovjetne velićine kao okviri. Proces se puni putem punjenja svih njegovih stranica u raspoložive okvire koji ne moraju biti kontinualno rasporedjeni jedan iza drugog ( kontingentne -contiguous).Prednost je da nema vanjske fregmentacijeMana je da ipak postoji manji obim interne fragmentacije.

118

DESIGN OF RTOS SYSTEMS

Jednostavna segmentacija

Svaki proces je podjeljen u niz segmenata. Proces se puni putem punjenja svih njegovih segmenata u dinamičke particije, koje ne moraju biti kontigentne.

Prednost je da nema interne fragmentacije, poboljšano korištenje memorije u poredjenju sa dinamičkom particijom.

Mane su:- Vanjska fragmentacija- potrebna je eksplicitna provjera velićina segmenata

119

DESIGN OF RTOS SYSTEMS

Virtualno straničenje memorije ( virtual memory paging).

Realizuje se kao i kod jednostavnog pejdjiranja, izuzev što nije potrebno napuniti sve strane procesa. Nerezidentne strane se unose u glavnu memoriju u kasnijoj fazi automatski.

Prednosti:Nema vanjske fragmentacije, veći stepen multiprogramiranja, veći virtualni adresni prostor.

Nedostatci:Interna fragmentacijaDodatak ( overhead) zbog kompleksnog menadjmenta memorije.

120

DESIGN OF RTOS SYSTEMS

Virtualna segmentacija memorije

Realizuje sa kao i kod jednostavne segmentacije, izuzev da nije potrebno napuniti sve segmente procesa. Nerezidentni segmenti 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

121

DESIGN OF RTOS SYSTEMS

Fiksno particioniranje

Danas se rijetko koristi, samo u slučajevima gdje OS overhead mora 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.

122

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.

123

DESIGN OF RTOS SYSTEMS

5. Predpostavimo da niti jedan od procesa u glavnoj memoriji nije spreman. OS će izbaciti ( swaps out) proces 2. Ovo će stvoriti prostora da se napuni drugi proces, proces 4. Pošto je proces 4 manji od procesa 2, još jedna mala rupa biće kreirana.

124

DESIGN OF RTOS SYSTEMS 6. Predpostavimo ponovno, da niti jedan od procesa u glavnoj memoriji nije spreman. Ali proces 2 u ready/suspend redu ćekanja je raspoloživ. Pošto nema dovoljno prostora u memoriji za 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:

125

DESIGN OF RTOS SYSTEMS

Straničenje ( paging)

* Particioniranje je neefikasan način korištenja memorije.

* Bolje riješenje je : Razdjeliti glavnu memoriju u manje dijelove fiksne velićine. Ovo blokovi ( chunks) se onda zovu okviri 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 naizmjenicno poredane ( konsekutivne ) okvire.* Dodatna struktura podataka je potrebna. Za svaki proces, mora se pohraniti gdje se njegove strane pune u okvire. Ova struktura podataka se naziva tabela strana ( Page table).

126

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.

127

DESIGN OF RTOS SYSTEMS

3. Startna fizička adresa okvira je k* ( ako je velićina strane bajta), i fizička adresa referenciranog bajta je taj broj

uvećan za ofset. Fizička adresa se ne mora izračunavati, ona se lako rekonstruiše stavljajući broj okvira ispred ofseta.

128

DESIGN OF RTOS SYSTEMS Segmentacija* Alternativno riješenje: je segmentacija. Sa njom razdjeljujemo procese u blokove različite velićine. Ove blokove nazivamo segmentima.

* Ne postoji potreba da segmenti procesa pune u redoslijedne dijelove glavne memorije.

* Dodatna struktura podataka je potrebna: Za svaki proces se mora pohraniti gdje se njegovi segmenti pune u glavnu memoriju. Ova struktura podataka se naziva tabela segmenata ( Segment table ).

* U suprotnosti od straničenja ( paging), gdje je velićina strane fiksna i unaprijed poznata, za segmentaciju dužina segmenta se takodjer mora pohraniti u segmentnu tabelu.

129

DESIGN OF RTOS SYSTEMS

Transformacija adresa kod segmentacije.

1. Izvaditi broj segmenta kao n bita sa lijeve strane ( ako je broj segmenata = ) iz logičke adrese.

2. Koristiti broj segmenta kao indeks u tabeli segmenata procesa, da se nadje startna fizička adresa segmenta.

3. Porediti ofset, izražen sa m desnih bita ( maksimalna velićina segmenta je bajta), sa dužinom segmenta. Ako je ofset veći od dužine, adresa nije validna.

4. Željena fizička adresa je suma startne fizičke adrese segmenta plus ofset.

130

DESIGN OF RTOS SYSTEMS

Straničenje i virtulna memorija

* Do sada smo predpostavljali da se sve strane procesa drže u glavnoj memoriji, ili da je cijeli proces u glavnoj memoriji ( ne i nužno neprekinutoj – kontingentnoj), ili se u potpunosti izbacije iz nje ( swap out).

* U sistemu sa virtualnom memorijom samo dio strana ( najpotrebnijih ) se drži u glavnoj memoriji, ostale ostaju u sekundarnoj memoriji. * Sada virtualni adresni prostor može biti mnogo veći nego fizički.* Procedura koja puni potrebnu stranu u glavnu memoriju i prebacuje one koje nisu potrebne ( swaps out) u sekundarnu memoriju se naziva (zahtjev za pejdjiranjem ) Demand Paging.

131

DESIGN OF RTOS SYSTEMS * Zahtjev za pejdjiranjem ( demand paging), radi samo zbog toga što postoji stroga lokalnost u programima, tj. sa velikom vjerovatnoćom da će ta stranica biti referencirana nakon što je bila referencirana prije kratkog vremena (vremenska lokalnost- Temporal Locality), ili je bliska prethodno referenciranoj stranici u virtualnom adresnom prostoru ( prostorna lokalnost – Spacial Locality).Transformacija adrese kod pejdinga na zahtjev ( demand paging) je prikazana na narednoj slici:

132

DESIGN OF RTOS SYSTEMS

Segmentacija i virtualna memorija

* Za sementaciju vrijedi isto kao i za straničenje ( paging): Nije neophodno da svi segmenti procesa moraju biti u fizičkoj memoriji.

* Ovdje takodjer trebaju da budu napunjeni samo segmenti koji su potrebni.

* Ovo omogućava da virtualna memorija bude mnogo veća od fizičke memorije.

* Straničenje i segmentacija dolaze kombinovano u većini današnjih procesorskih arhitektura.

133

DESIGN OF RTOS SYSTEMS

Adresna transformacija i segmentacija strana

134

DESIGN OF RTOS SYSTEMS Strategija zamjenjivanja kod demand paging-a

* Optimalna strategija.Ovaj algoritam izabire za zamjenu onu stranu za koju je vrijeme za slijedeće referenciranje najduže. Ovo je zasigurno optimalna strategija ali se ne može primjeniti pošto je za nju potrebno znanje o budućim vrijednostima. Zbog toga se koristi samo kao referenca da se evaluiraju drugi algoritmi.

* Najmanje korišten u zadnje vrijeme ( LRU – least recently used). Ova strategija zamjenjuje stranicu u memoriji koja nije bila referencirana najduži period vremena. Zbog lokalnosti ona je skoro isto tako dobra kao i optimalna strategijaPrilićno je komplikovana za implementaciju. Jedno od riješenja bi bilo da se tagiraju stranice sa vremenom posljednje reference.

135

DESIGN OF RTOS SYSTEMS

Ovo treba da bude uradjeno sa svakom referencom, što prouzrokuje ogromni overhead. Alternativa bi bila da se čuva stek referenci na strane, što je isto tako skupo riješenje.

•Prvi unutra-prvi vani ( FIFO). Ova strategija tretira okvire strana koji su alocirani za proces kao kružne bafere, i strane se otklanjaju u stilu Round-robina. Vrlo je jednostavna za implementaciju.

136

DESIGN OF RTOS SYSTEMS

Funkcija punjenja ( loading)

137

DESIGN OF RTOS SYSTEMS

Punjenje sa povezivanjem ( loader i linker)

138

DESIGN OF RTOS SYSTEMS Vrijeme povezivanja adresa kod punjenja ( loader)

Vrijeme programiranja: Sve stvarne fizičke adrese su direktno specificirane od strane programera

* Vrijeme kompilacije i asambliranja: Program sadrži reference na simboličke adrese, i one se pretvaraju u stvarne fizičke adrese od strane kompajlera/asamblera.

Vrijeme punjenja ( load time): Kompajler/asambler proizvodi relativne adrese. Loader prevodi ove u absolutne adrese ( fizičke) u trenutku punjenja programa u memoriju.

Vrijeme izvršenja ( run time): Napunjeni program zadržava relativne adrese. Ove se pretvaraju dinamički u apsolutne adrese od strane procesorskog hadvera.

139

DESIGN OF RTOS SYSTEMS

Vrijeme povezivanja adresa kod linkera

* Vrijeme programiranja: Nisu dozvoljeni nikakvi vanjski programi niti reference na podatke. Programer mora postaviti u program izvorni kod za sve podprograme koji su referencirani.

Vrijeme kompilacije/asambliranja: Asambler mora uključiti izvorni kod svake subrutine koja je referencirana i asamblirati je kao jedinstven modul.

Vrijeme povezivanja ( link time): Svi objektni moduli su asamblirani koristeći relativne adrese. Ovi moduli su povezani zajedno i sve reference su ponovno referencirane relativno u odnosu na početak krajnjeg modula koji će se puniti ( load module).

140

DESIGN OF RTOS SYSTEMS Vrijeme punjenja(load time): Vanjske reference nisu razriješene sve dok modul punjenja nije pred punjenjem u glavnu memoriju. U tom trenutku, referencirani moduli koji se dinamički linkuju, se dodaju modulu punjenja, i cijeli paket se tada puni u virtualnu memoriju.

Vrijeme izvršenja ( run time): Vanjske reference nisu razriješene sve dok vanjski poziv se ne izvrši od strane procesora. U tom trenutku, proces se prekida i željeni modul se povezuje sa programom koji ga poziva.

Rasporedjivanje ( scheduling)

Ciljevi i tipovi povezivanjaCilj rasporedjivanja procesora, je da se rasporede procesi da bi se izvršavali od strane tog procesora.

141

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 će se izvršavati.

* Srednjoročno rasporedjivanje ( medium term): Odluka da se proces doda onim procesima koji su djelomično ili u potpunosti u glavnoj memoriji.

* Kratkoročno rasporedjivanje( short term): Odluka o tome koji će od raspoloživih procesa biti izvršavan od strane procesora.

* I/O rasporedjivanje: Odluka o tome koji od procesa koji ćekaju na I/O zahtjev biti opslužen od strane I/O uredjaja.

142

DESIGN OF RTOS SYSTEMS

Nivoi rasporedjivanja

143

DESIGN OF RTOS SYSTEMS

Dijagram ćekanja za rasporedjivanje

144

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 njegovog kompletiranja.Ovo vrijeme uključuje stvarno vrijeme izvršenja plus vrijeme potrošeno na resurse, uključujući i procesor.

Ovo je prava mjera za batch tipove poslova.

* Vrijeme odziva: Za interaktivni proces, ovo je vrijeme od trenutka podnošenja zahtjeva do trenutka kada se počinje primati odziv.Ovo je bolja mjera nego vrijeme obrta sa tačke gledišta interaktivnog korisnika.

145

DESIGN OF RTOS SYSTEMS Strategija rasporedjivanja treba pokušavati da postigne mala vremena odziva i da maksimizira broj interaktivnih korisnika koji dobijaju prihvatljiva vremena odziva. * Granična vremena ( deadlines): kada su specificirana granična vremena za kompletiranje procesa( kao što je slučaj kod procesa u realnom vremenu), strategija rasporedjivanja treba biti takva da podčini sve druge ciljeve, cilju maksimizacije procenta zadovoljavanja graničnih vremena.Korisnički orijentirana strategija* Predikativnost: Dati posao treba da se izvršava u približno istim intervalima vremena i sa otprilike istim troškom, bez obzira na opterećenje cijelog sistema.Velike varijacije u vremenu odziva ili vremenu obrta su stresne za korisnika. One mogu signalizirati velike varijacije u opterećenju sistema ili potrebu za podešenjem sistema ( system tuning), da se otklone nestabilnosti.

146

DESIGN OF RTOS SYSTEMS

Strategija orijentirana na sistem, sa performansom

* Propusnost (throughput): Strategija rasporedjivanja treba pokušati da maksimizira broj procesa koji su kompletirani po jedinici 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 na ovu iskoristivost.Iskoristivost procesora: Ovo je procenat vremena kada je procesor zaposlen. Za skupe dijeljene sisteme, ovo je značajan kriterij. Kod sistema sa jednim korisnikom kao i kod nekih drugih, kao što su sistemi realnog vremena, ovaj kriterij je manje važan nego neki drugi.

147

DESIGN OF RTOS SYSTEMS

Korektnost ( fairness): Kod odsustva uputa od strane korisnika ili nekih drugih uputa koje obezbjedjuje sistem, procesi trebajubiti tretirani jednako, i niti jedan proces ne smije trpiti izgladnjavanje ( starvation).

Forsiranje prioriteta( enforcing priorities): Kada su procesima doznačeni prioriteti, strategija rasporedjivanja treba davati prednost procesima sa većim prioritetima. Balansiranje resursa: Strategija rasporedjivanja treba da drži resurse sistema uposlenim. Procesi koji će manje koristiti resurse u stresu trebaju biti favorizirani.

Ovaj kriterij takodjer uključuje srednjoročno i dugoročno rasporedjivanje.

148

DESIGN OF RTOS SYSTEMS

Poredjenje strategija rasporedjivanja

Kada se diskutiraju razne strategije rasporedjivanja, slijedeći set procesa se koristi da sa porede performanse tih strategija:

149

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 spremnih procesa. Kada proces koji se trenutno izvršava prestane izvršavati, proces koji je bio najduže vremena u redu spremnih, se izabire za izvršenje.FCFS strategija ima boje performanse za duge procese nego za kratke procese. Slijedeća tabela daje mjere performanse za FCFS za našprimjer seta procesa pomoću vremena izvršenja, vremena obrta Tr, normaliziranog vremena obrta datog kao Tr/Ts , gdje je Ts vrijeme servisiranja.

150

DESIGN OF RTOS SYSTEMS

Performansa FCFS strategije:

151

DESIGN OF RTOS SYSTEMS Round Robin ( okolo kole)Ova strategija pokušava da prevazidje kaznu koju kratki poslovi trpe sa FCFS strategijom, na taj način što koristi priempciju baziranu na satu.Satni interapt se generiše u periodičnim intervalima. Kada se interapt desi, proces koji se trenutno izvršava se stavlja u red spremnih procesa, i slijedeći spremni proces izabran na bazi FCFS se izabire za izvršenje. Očito da će proces koji je priemptiran biti stavljen na kraj ovog reda. Ova tehnika se takodjer naziva i vremensko siječenje ( time slicing).Osnovni problem dizajna kod ove strategije je pitanje izbora dužine vremenskog isječka q. Ukoliko je vrlo kratko: tada će se kratki procesi brže kretati kroz sistem. Medjutim ima dosta OS dodatka ( overhead) koje je vezano za ovo preključenje konteksta ( context switching).

152

DESIGN OF RTOS SYSTEMS

Zbog toga će ukupna performansa sistema početi dramatično opadati ako izaberemo suviše malo q. Ova strategija poznata kao Round robin je naročito efikasna kod sistema sa dijeljenim vremenom opšte namjene, kao što su sistemi za procesiranje transakcija.Performansa Round Robin strategije ( q= 1)

153

DESIGN OF RTOS SYSTEMS

Performansa Round Robin strategije ( q= 4)

154

DESIGN OF RTOS SYSTEMS Strategija kratki procesi prvi ( SPF )

Ovo je drugi pristup da se smanji bajes koji favorizira duge procese š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 na početak reda , preskačući duge poslove.

Poteškoće: Potrebna je procjena zahtjevanog vremena procesiranja. - programer treba da obezbjedi ovu procjenu.- u proizvodnim okruženjima, poslovi se stalno izvršavaju. Zbog toga se mogu koristiti neka prosječna vremena izvršenja ovog posla.

155

DESIGN OF RTOS SYSTEMS

Strategija najkraćeg preostalog vremena( SRT)* Ova strategija SRT je priemptivna verzija strategije slijedećeg najkraćeg procesnog vremena ( SPN).* Rasporedjivač uvjek izabire proces koji ima najmanje oćekivano preostalo vrijeme procesiranja. Kada novi proces udje u red ćekanja spremnih procesa, on može imati i kraće preostalo vrijeme procesiranja nego tekući proces koji se izvršava.

156

DESIGN OF RTOS SYSTEMS

* U skladu sa tim, rasporedjivač može priemptirati kad god novi proces postane spreman.

* Kao i sa SPN, SRT rasporedjivač mora imati procjenu preostalog vremena procesiranja da bi mogao provesti funkciju selekcije, a postoji i rizik izgladnjavanja procesa koji duže traju.

* SRT nema bajesa prema procesima koji duže traju koji se može naći kod FCS a za razliku od Round robina ne generišu se dodatni interapti. S druge strane, moraju se zapisivati servisna vremena procesa da bi se izračunala preostala vremena procesiranja, što doprinosi dodatnom opterećenju ( overhead).

157

DESIGN OF RTOS SYSTEMS

Performansa za najkraće preostalo vrijeme

158

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 minimiziramo normalizirano vrijeme obrta ( Tr/Ts), i mi bi želili takodjer da minimiziramo prosječnu vrijednost ovog odnosa nad svim procesima.* 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 konfiguracionog menadjera.

* Posmatrajmo odnos R = ( w + s) /s - R = je odnos odziva- w = vrijeme provedeno u ćekanju na procesor- s = oćekivano vrijeme servisiranja

159

DESIGN OF RTOS SYSTEMS * Primjetimo da je minimalno vrijeme za R je 1.0* Pravilo rasporedjivanja je sada slijedeće: Kada se tekući proces kompletira ili je blokiran, izabrati spreman proces sa najvećom vrijednošću R.* HRRN strategija je atraktivna jer ona uzima u obzir starost procesa. Kraći procesi su favorizirani, ali sa starenjem bez servisiranja ( što povećeva R), i stariji a duži proces takodjer dobija šansu.Performansa strategije : slijedeći je proces sa najvećim odnosom odziva ( HRRN) je prikazana na narednoj slici:

160

DESIGN OF RTOS SYSTEMS Strategija povratne veze ( Feedback – FB)

* U najvećem broju slučajeva kod opšteg računanja, nemamo indikacije o relativnoj dužini različitih procesa. Zbog toga, niti jedna od strategija : SPN, SRT i HRRN se ne može primjeniti.* Tada, ako se već ne možemo fokusirati na preostalo vrijeme do izvršenja, fokusirajmo se na vrijeme potrošeno do tada na izvršenje.* Rasporedjivanje se vrši na bazi priempcije ( u vremenskim intervalima), i koristi se mehanizam dinamičkog prioroteta sa jednim 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. Svaki naredni put kada se priemptira, on se degradira stavljanjem u red slijedećeg nižeg nivoa prioriteta. Jedanput kada dostigne red najnižeg nivoa prioriteta, on se vraća natrag u red RQ0.

161

DESIGN OF RTOS SYSTEMS

* Kraći proces će ovo vrlo brzo kompletirati bez da migrira isuviše nisko u redu, dok će duži proces postepeno tonuti ka sve nižim redovima prioroteta.

* Unutar svakog reda, izuzev kod onog najnižeg nivoa gdje će se koristiti mehanizam Round robina, korišten je mehanizam FCFS.

* Red spremnih procesa se opslužuje od strane procesora samo ako su svi redovi spremnih procesa većeg nivoa prioriteta prazni.

162

DESIGN OF RTOS SYSTEMS

Feedback raporedjivanje

Opaska: Crtkane linije nisu stvarne konekcije( pošto postoji samo jedan procesor), nego indiciraju tok u vremenu.

163

DESIGN OF RTOS SYSTEMS

Performansa strategije Feedbacka sa q=1, je prikazana na narednoj slici:

164

DESIGN OF RTOS SYSTEMS Strategija sa poboljšanjem Feedback -a

* Problem sa jednostavnom feedback šemom: Kao i kod Round robina vrijeme obrta kod dužih procesa se može alarmantno produžiti.

*Da se ovo kompenzira, možemo varirati vremena priempcije prema redovima kako slijedi:- procesu koji je rasporedjen iz RQ0 se dozvoljava da se

izvršava jednu vremensku jedinicu i nakon toga se priemptira.

- procesu koji je raporedjen iz RQ1 je dozvoljeno da se izvršava dvije vremenske jedinice, itd.- u opštem slučaju procesu koji je rasporedjen iz RQk se dozvoljava izvršavanje vremenskih jedinica, prije priempcije.

165

DESIGN OF RTOS SYSTEMS

Performansa strategije Feedbacka sa q= , je data na narednoj slici:

166

DESIGN OF RTOS SYSTEMS

Specifičnosti operativnh sistema realnog vremena

Izazovi :

167

DESIGN OF RTOS SYSTEMS Definicije za operativne sisteme realnog vremena:

Kopetz : Računarski sistem realnog vremena je sistem u kojem korektnost ponašanja sistema ne zavisi samo od logičkih rezultata računanja, nego takodjer od fizičkog trenutka kada su ovi 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

168

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 primjeru mobilnih uredja

169

DESIGN OF RTOS SYSTEMS

Porast intenziteta korištenja softvera u automobilskoj industriji

170

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 mora javiti za vrijeme evolucije samih dogadjaja.

- sistemsko vrijeme ( interno vrijeme) : treba da bude mjereno sa istom vremenskom skalom kao i kontrolirano okruženje ( eksterno vrijeme)

171

DESIGN OF RTOS SYSTEMS

Da li realno vrijeme znači da je prediktabilno?

* Glavna razlika izmedju realnog vremena i ne realnog vremena je:

granično vrijeme ( deadline)

U kritičnim aplikacijama rezultati dobijeni nakon graničnog vremena ( deadline) :

- nisu samo zakašnjeli - nego su i pogrešni

* granično vrijeme mora biti zadovoljeno pri svim ( čak i najgorim ) okolnostima

Realno vrijeme znači da je dogadjaj predvidiv

172

DESIGN OF RTOS SYSTEMS Tvrdo RT ( hard RT ) prema čvrstom ( firm) RT, prema

mekom( soft) RTRT zadatak se zove tvrdi kada:nedostizanje njegovog graničnog vremena ( deadline) može imati katastrofalne posljedice na sistem ili okruženje koje se kontroliše.RT task se zovi čvrsti kada :nedostizanje njegovog graničnog vremena čini rezultate bezvrijednim, ali neće prouzrokovati značajniju štetuRT task se zove mekim kada:dostizanje graničnog vremena je poželjno. napr. iz razloga performanse ali nedostizanje neće prouzrokovati ozbiljniju štetu.RT koji je u stanju da upravlja sa tvrdim RT taskovima se naziva sistem tvrdog realnog vremena ( hard real time system)

173

DESIGN OF RTOS SYSTEMS

Prikaz tvrdog RT naprema čvrstom RT , napremamekom RT

174

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 nivoska 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)

175

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

176

DESIGN OF RTOS SYSTEMS

Tipične oblasti primjene:- komunikacioni sistemi ( napr. glas putem IP , voice over IP)- korisničke interakcije- elektronika komfora ( napr. elektronika za udobnost tijela putnika )

Real – time ≠ Brzo

177

DESIGN OF RTOS SYSTEMS Poželjne karakteristike real-time sistemaPravovremenost ( timeliness)

- OS treba da obezbjedi kernel mehanizme za - menadjment vremena- taskove rukovanja sa eksplicitnim vremenskim ogranićenjima - dizajn za vršna opterećenja- prediktabilnost- 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 pobrine o uredjaju koji kontroliše- ovaj task se izvršava pod direktnom kontrolom OS, kao i svaki drugi task

178

DESIGN OF RTOS SYSTEMS

-kontrolni taskovi imaju veće priorotete nego taskovi uredjaja

179

DESIGN OF RTOS SYSTEMS Postizanje predvidivosti sa semaforima

* Uobićajeni mehanizam semafora nije pogodan za primjene realnog 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

180

DESIGN OF RTOS SYSTEMS PROCES

Proces je task u našem kontekstuKada imamo konfiguraciju sa jednim procesorom i konkurentnim taskovima CPU se mora doznačavati taskovima , u skladu sa unaprijed definiranim kriterijem koji se naziva :

strategija rasporedjivanjaImplementacija strategije rasporedivanja se naziva:

algoritam rasporedivanjaAlokacija 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 CPU izvršava se : task se izvršava od strane CPU

181

DESIGN OF RTOS SYSTEMS

Svi spremni taskovi se drže u redu spremnih taskova kao na slici:

Moguć je više od jedan red spremnih taskova.

Priempcija ( preemption)

Task koji se izvršava može biti u bilo kojem trenutku prekinut da bi dozvolio važnijem tasku da trenutačno dobije kontrolu nad CPU.

182

DESIGN OF RTOS SYSTEMS Priempcija je prikazana na slijedećoj slici:

Rasporedjivanje je doznačavanje taskova procesorima za izvrš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 context switch.

183

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šava da bude suspendiran u bilo kojem trenutku vremena. Dakle taskovi mogu biti izvršavani u razdvojenim intervalima vremena.* Rasporedjivanje se naziva ostvarivim (feasible), ako svi taskovi se mogu kompletirati u skladu sa skupom specificiranih ogranićenja.* Skup taskova se zove rasporedivim ako postoji najmanje jedan algoritam koji može proizvesti ostvarivo ( feasible) rasporedjivanje.

184

DESIGN OF RTOS SYSTEMS

Primjer priemtivnog rasporedjivanja

185

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.

186

DESIGN OF RTOS SYSTEMS

Vremenska ograničenja Sistemi realnog vremena se najčešće karakterišu preko vremenskih 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 se kod dvije klase RT sistema:

* tvrdo ( hard) : nestizanje na granično vrijeme prouzrokuje katastrofalne posljedice* meko (soft): nestizanje izvršenja do deadlinea smanjuje performansu sistema

187

DESIGN OF RTOS SYSTEMS

Parametri koji kakrakteriziraju RT task JiVrijeme stizanja ( arrival time ) ai :

- je vrijeme kada task Ji postaje spreman za izvršenje koje se takodjer naziva vrijeme zahtjeva ( request time) ili vrijeme izdanja ( release time), i označ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 kompletirati svoje izvršenje

Startno vrijeme si :je vrijeme kada task Ji starta svoje izvršenje

188

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 :

189

DESIGN OF RTOS SYSTEMS Relacije precedencije ( prethodjenja) – primjer:

190

DESIGN OF RTOS SYSTEMS

Ograničenja resursa

Tačka gledišta procesa:Resurs je bilo koja softverska struktura koju može koristiti procesPrimjeri za ovo su: struktura podataka, set varijabli, fajl sa memorijskom oblasti.privatni resurs : posvećen specifičnom procesu dijeljeni resurs : onaj koji će se koristiti od strane više procesaeksluzivni resurs : dijeljeni resurs kod kojeg nije dozvoljen simultani pristup od strane različitih procesa.kritični region : dio koda koji se izvršava pod ograničenjima medjusobnog iskljućenja. Primjer za ovo je menadjment sa semaforima.

191

DESIGN OF RTOS SYSTEMS Blokirani taskovi

Za task koji ćeka na neki ekskluzivni resurs se kaže da je blokiran. Procesi koji su blokirani na istom resursu se drže u redu koji je pridružen sa semaforom s koji štiti ovaj resurs. Signal(i) koji su na vrhu reda kod s se prebacuju u stanje spreman ( ready state),

Stanje ćekanja uzrokovano ogranićenjem resursa

192

DESIGN OF RTOS SYSTEMS Inverzija prioriteta Predpostavimo 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 je blokiran i J2 se ponovno nastavlja.

Primjer blokiranja ekskluzivnog resursa

193

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 i vremenska ogranićenja mogu biti pridružena svakom tasku.

Rasporedjivanje znači doznaćavanje procesora iz P i resursa iz R taskovima u J skupu , da bi se kompletirali svi taskovi podpostavljenim ogranićenjima.

Ovaj problem je NP- kompleksan.

194

DESIGN OF RTOS SYSTEMS Klasifikacija algoritama rasporedjivanja

* Preemptive : task koji se izvršava može biti prekinut u bilo kojem trenutku vremena* Non-preemptive: task kada se starta se izvršava do kompletiranja * Statički: odluke rasporedjivanja su bazirane na fiksnim ( off-line) parametrima* Dinamički : odluke rasporedjivanja su bazirane na parametrima koji se mjenjaju za vrijeme evolucije sistema.

Off-line: algoritam rasporedjivanja se izvršava na cjelokupnom skupu taskova prije starta sistema. Izračunati raspored se izvrš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.

195

DESIGN OF RTOS SYSTEMS

Optimalni: algoritam minimizira neku datu funkciju troška, alternativno: može da ne zadovolji deadline samo ako niti jedan drugi algoritam date klase ne može da ga zadovolji.

Heuristični: algoritam koji ima tendenciju da nadje optimalan raspored ali nema garancije da će ga naći.

Tvrdi real-time sistemi.

Kod ovih sistema ponašanje je vrlo predvidivo, tj. ostvarljivost rasporeda mora biti unaprijed garantovana.Sistem mora planirati akcije gledajući unaprijed u budućnost, predpostavljajući scenario najgoreg slućaja ( worst case scenario).

196

DESIGN OF RTOS SYSTEMS

Statički sistemi realnog vremena ( skup taskova je fiksan i a priori poznat ):- aktivacije svih taskova mogu se unaprijed izračunati off-line- cjelokupan raspored se može pohraniti u tabelu.- u run time-u se vrši jednostavno rasporedjivanje prema tabeli.

Prednosti su:* mogući su off-line vrlo sofisticirani algoritmi

Mane su:* sistem nije fleksibilan na promjene u okruženju.

197

DESIGN OF RTOS SYSTEMS Dinamički real-time sistemi

Garancija mora biti data on-line svaki put kada se novi task unese u sistem.Tipična šema mehanizma garancije za dinamički real-time sistem je data na slijedećoj slici:

Šema mehanizma garancije koji se koristi kod dinamičkih sistema sa tvrdim realnim vremenom

198

DESIGN OF RTOS SYSTEMS

Algoritmi najboljeg naporaMekani real-time sistemiJedina posljedica grešaka u tajmiranju je degradacija sistema. Primjer za ovo je striming videa ( može se primjetiti malo jittera). Adekvatan za ove tipove mekanih real-time sistema je algoritam najboljeg napora ( Best-effort).Daljnji algoritam je '' tries its best'' , tj pokušava najbolje što može, tj. taskovi se stavljaju u redove zbog vremenskih ogranićenja, ali se ne provodi provjera ostvarivosti ( feasibility test), 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.

199

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 ( rate monotonic priority assignment – RM )* najraniji deadline prvi ( EDF – earliest deadline first)

Serveri* fiksni prioriteti* dinamički prioriteti

200

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 vremenima pristizanja, svaki algoritam koji u bilo kojem trenutku izvršava task sa najranijim aposlutnim deadline-om izmedju svih spremnih taskova je optimalan u odnosu na minimizaciju maksimalnog kašnjenja.

201

DESIGN OF RTOS SYSTEMS

Kompleksnost : po tasku: unoseći novo prispjeli task u uredjenu listu korektno je dato sa : O(n)

za n taskova = ukupna kompleksnost je O(n2)

Primjer za EDF

202

DESIGN OF RTOS SYSTEMS

Rasporedjivanje sa ograničenjima precedencije

* U opštem slučaju radi se o NP- hard problemu.

* Za specijalne slučajeve mogući su i algoritmi polinomijalnog vremena.

EDF sa ograničenjima precedencije

Predpostavimo n taskova sa ograničenjima precedencije i dinamičkim aktivacijama .Mogu se riješiti po polinomijalnom vremenu samo ako je dozvoljena priempcija.

203

DESIGN OF RTOS SYSTEMS Riješenje Chetto, Silly i Bouchentouf

Transformisati skup J zavisnih taskova u skup J* nezavisnih taskova pomoću adekvatne

modifikacije vremenskih parametara,Nakon toga aplicirati EDF.

Transformacija obezbjedjuje:

J* je rasporedivo ↔ J je rasporedivo i sva ogranićenja su zadovoljena.

Modifikacija vremena oslobadjanja ( release) i deadline-a su takva da svaki task neće startovati, prije nego njegovi prethodnici i oni ne mogu priemptirati svoje nasljednike ( drugitaskovi medjutim mogu biti priemptirani).

204

DESIGN OF RTOS SYSTEMS Modifikacija vremena oslobadjanja ( release)

Za data dva taska Ja i Jb , Ja → Jb slijedi da slijedeća dva uslova moraju biti zadovoljena:

* sb > rb ( tj. Jb ne može startati prije svog vremena oslobadjanja)* 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 )

205

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 uslova moraju 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)

206

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 monotonic scheduling – RM)- rasporedjivanje sa prvim taskom koji ima najraniji deadline ( EDF )

Aplikacione oblasti periodičnih taskova

Periodične aktivnosti predstavljaju najveće računarsko opterećenje u mnogim aplikacijama:

207

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

208

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 dvije konsekutivne aktivacije )Di – je relativni deadline od τi ( relativno u odnosu na vrijeme izdavanja)di,j - je apsolutni deadline od tij tj. 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 )

209

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 г se zove ostvarivim ili rasporedivim ako :svi taskovi u г su ostvarivi.

Faktor iskorištenja procesora U

Za dati skup г periodičnih taskova , faktor iskorištenja procesora U je dio procesorskog vremena proveden u izvršenju skupa taskova.Ci/Ti je dio procesorskog vremena provedenog u izvršenju taska τi

210

DESIGN OF RTOS SYSTEMS

Primjer za najmanju gornju granicu za U

211

DESIGN OF RTOS SYSTEMS Rasporedjivanje sa monotonim ritmom

Precizniji naziv za ovo rasporedjivanje je: Doznačavanje prioroteta sa monotonim ritmom ( rate monotonic priority assignment)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čavanjem fiksnih prioriteta.RM je intrisički ( izvorno) priemptivna strategija, task koji se trenutno izvršava se priemptira od strane novo oslobodjenog ( released) taska sa kraćim periodom.

212

DESIGN OF RTOS SYSTEMS

Primjer rasporedjivanja sa monotonom brzinom ( ritmom)

213

DESIGN OF RTOS SYSTEMS Optimalnost RM algoritmaRM je optimalan izmedju svih algoritama doznačavanja sa fiksnim prioritetom , tj.

Ako postoji skup taskova г koji ne može biti rasporedjen sa RM tada slijedi :

da svaki algoritam sa fiksnim prioritetima ne može raspordjivati г.

Izračunavanje Ulub za n taskova

Najmanja gornja granica iskorištenja procesora kod RM algoritma je:

214

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 sa doznačavanjem fiksnog prioriteta.

* RM garantira da arbitrarni skup periodičnih taskova je rasporediv ako ukupno iskorištenje procesora U ne prelazi vrijednost 0.69.

* Ulub = 0.69 je dovoljno ali ne i nužno da garantira ostvarivost datog skupa taskova.

215

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 apsolutnim deadlajnima- Taskovi sa ranijim deadlajnima će biti izvršavani sa većim prioritetima - Apsolutni deadline periodićnog taska zavisi od tekuće j-te instance:

216

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 kojima upravlja EDF algoritam se može verificirati pomoću faktora 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 :

217

DESIGN OF RTOS SYSTEMS

Primjer analize EDF rasporedivosti

218

DESIGN OF RTOS SYSTEMS Rasporedjianje 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 optimalan izmedju svih algoritama sa fiksnim doznačavanjem prioriteta.* Algoritam : Prvi task sa najranijim deadline-om – EDF, je optimalan medju algoritmima sa dinamičkim doznačavanjem prioriteta.* Deadlajni su jednaki periodima . Ovo garantira test u O(n)

koristeći korištenje procesora, primjenjiv je i na RM i EDF algoritme.

* Deadlajni ‹ perioda → slijedi da su algoritmi sa polinomijalnim vremenom za garantne testove:

- sa fiksnim prioritetom : analiza vremena odziva- dinamičkim prioritetom : iskorištenje procesora

219

DESIGN OF RTOS SYSTEMS Uvod u servere* Zahtjevi koji se pojavljuju kod većine aplikacija sa realnim vremenom 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 mekane RT.

* Aperiodični taskovi koji su karakterizirani sa minimumom vremena medju dolaska ( inter-arrival time), nazivaju se sporadičnim.

* Aperiodični taskovi koji zahtjevaju on-line garantije za individualne instance se zovu čvrstim ( firm).

220

DESIGN OF RTOS SYSTEMS

Rasporedjivanje u pozadini

Najednostavniji metod:Rukuje sa mekim aperiodičnim taskovima u pozadini iza periodičnih taskova, tj. u preostalom vremenu procesora nakon rasporedjivanja svih periodičnih taskova.Aperiodični taskovi dobijaju prioritete koji su niži od onih za periodićne taskove.

221

DESIGN OF RTOS SYSTEMS Organizacija rasporedjivanja u pozadini

Primjer servera sa fiksnim prioritetom – polling serverIdeja, da bi se postiglo bolje planiranje upravljanja sa periodičnim taskom:Neka neki specifični periodični task servisira aperiodične zahtjeve.Ovo se naziva serverom, i ima ( kao i kod svakog periodičnog taska ), 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 i nužno na nižem priorotetu.

222

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 , slijedi da 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 vrijednost Cs.

223

DESIGN OF RTOS SYSTEMS

Primjer polling servera

224

DESIGN OF RTOS SYSTEMS Serveri sa dinamičkim prioritetomUvodPodsjetimo se da algoritmi sa dinamičkim rasporedjivanjem imaju već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 .

225

DESIGN OF RTOS SYSTEMS

* Svi periodični taskovi su simultano aktivirani u trenutku t= 0.* Svaki periodični zahtjev ima poznato vrijeme računanja, ali nepoznato vrijeme pristizanja ( arrival time ).Exchange server sa dinamičkim prioritetom ( DPE)

Osnovna ideja:Neka server zamjeni svoje vrijeme izvršenja sa izvršenjem periodičnih taskova nižeg prioriteta ( ovo znači veći deadline pod EDF algoritmom), u slučaju da nema aperiodičnih zahtjeva koji ćekaju na izvršenje.

Slijedi da runtime servera se može zamjeniti sa periodičnim taskovima ali ne i rasipati ( izuzev ako ima i idle vremena ). On je sačuvan kod niskog prioriteta i može se ponovno tražiti kasnije kada aperiodični zahtjevi udju u sistem.

226

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 se ne kompletiraju ili dok se kapacitet ne iscrpi( kapacitet koji se koristio jednak je vremenu izvršenja ), koristeći kapacitet servera ili posudjeni kapacitet.- nema aperiodičnih zahtjeva na ćekanju , slijedi da će se izvršiti periodični task koji ima najkraći deadline, i kapacitet jednak dužini izvršenja će se dodati ( tj. posuditi ) aperiodskom kapacitetu deadlina taska i oduzeti od C > 0 za najveći tekuči kapacitet ( tj. deadlajni kapaciteta sa najvećim prioritetom i oni za periodične taskove su medjusobno zamjenjeni ).- nema na ćekanju za izvršenje ni zahtjeva aperiodičnih niti periodičnih instanci taskova.

227

DESIGN OF RTOS SYSTEMS

Slijedi da u tom slučaju je idle vrijeme, tj. kapacitet C je konzumiran.Primjer za DPE strategiju

228

DESIGN OF RTOS SYSTEMS PROTOKOLI ZA ALOKACIJU RESURSA

Protokoli za pristup resursima

* Resurs je bilo koja softverska struktura koja se može koristiti od strane procesa da unaprijedi svoje izvršenje* Za resurs se kaže da je :

- privatan , ako je posvećen samo nekom specifičnom procesu- dijeljen , ako se koristi od strane više taskova- ekskluzivan , ako je dijeljen ali zaštičen protiv konkurentnih ( tj. istovremenih ) pristupa.

Terminologija

229

DESIGN OF RTOS SYSTEMS Fenomen inverzije prioriteta

Posmatrajmo dva taska koji dijele jedan ekskluzivni resurs

Predpostavimo da J1 ima veći prioritet od J2 Uprkos ove činjenice J1 može biti blokiran od strane J2.

230

DESIGN OF RTOS SYSTEMS

Primjer blokiranja ekskluzivnog resursa

Vrijeme blokiranja u gornjem primjeru je :maksimalno vrijeme blokiranja od J1 jednako je trajanju J2 u kritičnoj sekciji i neizbježno je zbog semantike kritične sekcije.

231

DESIGN OF RTOS SYSTEMS

Medjutim, vrijeme blokiranja može biti i neograničeno ako ima taskova sa srednjim prioritetima.

Inverzija prioriteta se pojavljuje u intervalu [ t3, t6 ]

232

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ćeg prioriteta, on privremeno naslijedi najveći prioritet blokiranog taska- razlog : ovo spriječava da zadaci srednjeg nivoa prioriteta priemptiraju Ji i time produže period blokiranja.

233

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 zij :

-slučaj a) Ri,j je već u posjedu posla nižeg prioriteta 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 u ostatku svoje kritične sekcije sa pk = pi , tj. Jk naslijedjuje prioritet od Ji.

234

DESIGN OF RTOS SYSTEMS U opštem slučaju task naslijedjuje največi prioritet od poslova koje 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 posla Jk : Jk naslijedjuje najveći prioritet od poslova koje je blokirao Jk .- inače Jk će dobiti svoj normalni prioritet

* Naslijedjivanje prioriteta je tranzitivno :ako J3 blokira J2 a J2 blokira J1 tada : J3 naslijedjuje prioritet od J1 preko J2.

235

DESIGN OF RTOS SYSTEMS

Primjer PIP algoritma

Ista situacija kao i na prethodnoj slici ali sada sa primjenjenim PIP algoritmom:

236

DESIGN OF RTOS SYSTEMS Osobine PIP Teorem : ( Sha – Rajkumar- Lehoczky) : Pod protokolom naslijedjivanja prioriteta, posao može biti blokiran za najviše dužinu trajanja od min( n,m) kritičnih sekcija, gdje je n – broj poslova niskog nivoa prioriteta koji mogu blokirati J , a m – je broj 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 i Lehoczky 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čavanje

slobodnog semafora. Ovo pravilo ne dozvoljava poslu da udje u kritičnu sekciju ako ima zaključanih semafora koji bi ga mogli blokirati.

237

DESIGN OF RTOS SYSTEMS Slijedi da : jedanput kada posao udje u u svoju prvu kritičnu

sekciju, on ne može nikad biti blokiran od strane poslova nižeg nivoa prioriteta.

Metod kojim se ovo postiže: doznačiti granicu prioriteta za svaki semafor, Pri tom ova granica prioriteta je jednaka prioritetu posla najvećeg nivoa prioriteta koji bi ga mogao zaključati.

- Poslu J je dozvoljeno da udje u kritičku sekciju samo ako je njegov prioritet > od svih graničnih prioriteta semafora zaključanih od strane poslova koji su različiti od posla J.

Definicija protokola PCPSvakom semaforu Sk doznačen je granični ( ceiling) prioritet C( Sk) , koji je jednak prioritetu posla najvećeg prioriteta koji ga može zaključati. Primjetimo da C( Sk) je statička velićina koja se može izračunati i off-line.

238

DESIGN OF RTOS SYSTEMS

* Neka Ji je posao sa najvećim prioritetom medju svim poslovima koji su spremni za izvršenje: dakle, procesor je doznačen poslu Ji da se izvršava.

* Neka S* je semafor sa najvećom granicom izmedju svih semafora koji su trenutačno zaključani od strane svih drugih poslova izuzev Ji , i neka C(S*) je njegova gornja granica ( ceiling).

* Da udje u kritičnu sekciju koja je čuvana od strane semafora Sk, 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 je blokiran na semaforu S* od posla koji drži zaključanim S*.

239

DESIGN OF RTOS SYSTEMS * Kada je posao Ji blokiran na semaforu, on prenosi svoj prioritet na posao, recimo Jk , koji drži taj semafor. Dakle, Jk se ponovo aktivira i izvršava ostatak svoje kritične sekcije sa prioritetom od Ji. Za Jk se kaže da naslijedjuje prioritet Ji. U opštem slučaju, task naslijedjuje najveći prioritet od poslova koje je blokirao.* Kada Jk izadje iz kritične sekcije, on odključava semafor i

posao najvećeg prioriteta ( ako ih ima ), koji je blokiran na 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, on se postavlja na najveći prioritet od svih poslova koji su blokirani od strane Jk.

* Naslijedjivanje prioriteta je tranzitivno, tj. ako posao J3 blokira posao J2 , i J2 blokira J1 , tada J3 naslijedjuje prioritet od J1 preko J2.

240

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 vrijednostima prioriteta semafora :

C( S0) = P0

C( S1) = P0

C( S2) = P1

241

DESIGN OF RTOS SYSTEMS

* U trenutku t0 , J2 se aktivira, i pošto je on jedini posao koji je spreman za izvršenje, on starta da se izvršava i kasnije zaključ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 je blokiran od strane protokola pošto P1 nije veće od C( S2). Tada, J2 naslijedjuje prioritet od J1 i ponovno uzima njegovo izvršenje.

242

DESIGN OF RTOS SYSTEMS * U trenutku t3, J2 uspješno ulazi u svoju ugnježdenu kritičnu sekciju, zaključavanjem S1. Primjetimo da je dozvoljeno J2 da zaključa S1 pošto nema semafora koji su zaključani od strane ostalih poslova.* U trenutku t4 , dok se J2 izvršava sa prioritetom p2 = P1 , J0 postaje spreman i priemptira J2 pošto P0 › p2 .

243

DESIGN OF RTOS SYSTEMS

* U trenutku t5 , J0 pokušava da zaključa S0 , koji nije zaključan niti i od jednog posla. Medjutim, J0 , je blokirano od strane protokola, pošto njegov prioritet nije veći nego C(S1), koje je najveća granica izmedju svih semafora koji su trenutno zaključani od strane drugih poslova. Pošto S1 je zaključan od strane J2, J2 naslijedjuje prioritet od J0 i ponovno preuzima njegovo izvršenje.

244

DESIGN OF RTOS SYSTEMS

Osobine PCPTeorem : Protokol plafona ( ceiling) prioriteta spriječava pojavu deadlocka.

Teorem : ( Sha- Rajkumar- Lehoczky ) . Pod protokolom plafona prioriteta, posao Ji se može blokirati najviše za vrijeme trajanja jedne kritične sekcije.