244
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

LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 2: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 3: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

3

DESIGN OF RTOS SYSTEMS OS kao korisnički interfejs

Hijerarhijski pogled na računarski sistem:

Page 4: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 5: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 .

Page 6: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 7: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 8: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 9: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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•

Page 10: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 11: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 12: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 13: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 14: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 15: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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:

Page 16: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 17: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 18: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 19: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

19

DESIGN OF RTOS SYSTEMS Virtuelna memorija : Transformacija adresa

Page 20: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 21: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 22: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 23: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 24: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 25: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 26: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 27: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 )

Page 28: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

28

DESIGN OF RTOS SYSTEMS

Page 29: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 30: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 31: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 32: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 33: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

33

DESIGN OF RTOS SYSTEMS

Bazična arhitektura Windows 2000 OS

Page 34: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 35: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 36: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 37: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 38: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 39: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

39

DESIGN OF RTOS SYSTEMS Bazična arhitektura UNIX-a

Page 40: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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:

Page 41: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 42: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

42

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

Page 43: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 44: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 )

Page 45: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

45

DESIGN OF RTOS SYSTEMS

Primjer : Tragovi procesa

Page 46: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

46

DESIGN OF RTOS SYSTEMS

Primjer: Pogled na procesor

Page 47: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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:

Page 48: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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:

Page 49: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 :

Page 50: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 51: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 52: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 53: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 54: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 55: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

55

DESIGN OF RTOS SYSTEMS

Različiti redovi ćekanja za različite dogadjaje

Page 56: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 57: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 58: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 59: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 60: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 61: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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:

Page 62: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 63: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 64: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 65: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 66: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 67: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 68: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 69: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 70: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 71: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 72: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

72

DESIGN OF RTOS SYSTEMS

Izvršenje Operativnog sistema

Page 73: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 74: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

74

DESIGN OF RTOS SYSTEMS

On dijeli sve resurse sa drugim koncima istog procesa.

Konci i procesi

Page 75: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

75

DESIGN OF RTOS SYSTEMS

Višekončani model procesa

Page 76: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 77: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 78: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 79: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 80: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 81: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 82: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 83: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 84: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 85: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

85

DESIGN OF RTOS SYSTEMS

Šema riješenja za medjusobno isključenje

Page 86: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 87: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 88: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 89: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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:

Page 90: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

90

DESIGN OF RTOS SYSTEMS

boolean testset (int i){

if ( i == 0 ){

i = 1 ;return true ;

}else

{return false ;

}}

Page 91: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 92: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 ;

}

Page 93: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 94: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 95: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 96: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 97: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 ;

} }} }

Page 98: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 ;

} }} }

Page 99: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

99

DESIGN OF RTOS SYSTEMS

Primjeri korištenja semafora

Page 100: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 101: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

101

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

Page 102: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 103: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

103

DESIGN OF RTOS SYSTEMS

Page 104: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

104

DESIGN OF RTOS SYSTEMS

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

Page 105: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

105

DESIGN OF RTOS SYSTEMS

Medjublokade ( deadlocks)

Page 106: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 107: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 108: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 109: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 110: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 111: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

111

DESIGN OF RTOS SYSTEMS

Adresiranje zahtjeva za proces

Page 112: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 113: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 114: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 115: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 116: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 117: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 118: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 119: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 120: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 121: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 122: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 123: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 124: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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:

Page 125: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 126: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 127: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 128: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 129: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 130: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 131: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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:

Page 132: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 133: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

133

DESIGN OF RTOS SYSTEMS

Adresna transformacija i segmentacija strana

Page 134: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 135: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 136: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

136

DESIGN OF RTOS SYSTEMS

Funkcija punjenja ( loading)

Page 137: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

137

DESIGN OF RTOS SYSTEMS

Punjenje sa povezivanjem ( loader i linker)

Page 138: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 139: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 140: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 141: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 142: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

142

DESIGN OF RTOS SYSTEMS

Nivoi rasporedjivanja

Page 143: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

143

DESIGN OF RTOS SYSTEMS

Dijagram ćekanja za rasporedjivanje

Page 144: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 145: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 146: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 147: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 148: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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:

Page 149: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 150: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

150

DESIGN OF RTOS SYSTEMS

Performansa FCFS strategije:

Page 151: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 152: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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)

Page 153: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

153

DESIGN OF RTOS SYSTEMS

Performansa Round Robin strategije ( q= 4)

Page 154: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 155: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 156: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 157: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

157

DESIGN OF RTOS SYSTEMS

Performansa za najkraće preostalo vrijeme

Page 158: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 159: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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:

Page 160: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 161: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 162: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

162

DESIGN OF RTOS SYSTEMS

Feedback raporedjivanje

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

Page 163: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

163

DESIGN OF RTOS SYSTEMS

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

Page 164: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 165: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

165

DESIGN OF RTOS SYSTEMS

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

Page 166: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

166

DESIGN OF RTOS SYSTEMS

Specifičnosti operativnh sistema realnog vremena

Izazovi :

Page 167: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 168: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 169: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

169

DESIGN OF RTOS SYSTEMS

Porast intenziteta korištenja softvera u automobilskoj industriji

Page 170: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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)

Page 171: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 172: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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)

Page 173: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

173

DESIGN OF RTOS SYSTEMS

Prikaz tvrdog RT naprema čvrstom RT , napremamekom RT

Page 174: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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)

Page 175: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 176: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 177: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 178: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

178

DESIGN OF RTOS SYSTEMS

-kontrolni taskovi imaju veće priorotete nego taskovi uredjaja

Page 179: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 180: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 181: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 182: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 183: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 184: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

184

DESIGN OF RTOS SYSTEMS

Primjer priemtivnog rasporedjivanja

Page 185: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 186: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 187: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 188: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 :

Page 189: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

189

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

Page 190: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 191: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 192: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 193: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 194: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 195: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 196: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 197: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 198: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 199: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 200: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 201: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 202: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 203: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 204: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 )

Page 205: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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)

Page 206: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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:

Page 207: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 208: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 )

Page 209: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 210: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

210

DESIGN OF RTOS SYSTEMS

Primjer za najmanju gornju granicu za U

Page 211: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 212: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

212

DESIGN OF RTOS SYSTEMS

Primjer rasporedjivanja sa monotonom brzinom ( ritmom)

Page 213: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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:

Page 214: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 215: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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:

Page 216: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 :

Page 217: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

217

DESIGN OF RTOS SYSTEMS

Primjer analize EDF rasporedivosti

Page 218: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 219: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 220: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 221: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 222: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 223: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

223

DESIGN OF RTOS SYSTEMS

Primjer polling servera

Page 224: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 .

Page 225: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 226: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 227: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

227

DESIGN OF RTOS SYSTEMS

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

Page 228: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 229: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 230: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 231: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 ]

Page 232: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 233: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 234: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 235: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

235

DESIGN OF RTOS SYSTEMS

Primjer PIP algoritma

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

Page 236: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 237: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 238: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 239: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 240: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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

Page 241: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 242: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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 .

Page 243: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.

Page 244: LITERATURA : 1. William Stallings:Operating Systems Forth ...people.etf.unsa.ba/~asalihbegovic/RTOS/Racunarski sistemi realnog... · njihove sinhronizacije. * Nivo 6: Radi sa sekundarnom

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.