Sistemi za rad u realnom vremenu --------------------------------------- Raspoređivanje zadataka
Raspoređivanje Redefinisanje zadatka Stanja zadataka Sadržaj Raspoređivanje bez istiskivanja Raspoređivanje sa istiskivanjem Implementacija planera Raspoređivanje u klasičnim OS Osnovne metode First-come-first-served (prvi stigne-prvi uslužen) Shortest first (najkraći prvi) Round-robin Konstantni prioritet Raspoređivanje u više nivoa prioriteta
Raspoređivanje Zadaci se raspoređuju i dobijaju resurse shodno usvojenom algoritmu i protokolima za pristup resursima Planer (Scheduler) implementira ove algoritme Planer dodeljuje zadatke procesorima Raspored (Schedule) je dodela svih zadataka u sistemu raspoloživim procesorima od strane planera. Važeći raspored zadovoljava sledeće uslove: Svaki procesor je dodeljen najviše jednom zadatka u svakom trenutku Svaki zadatak je dodeljen najviše jednom procesoru u svakom trenutku Nijedan zadatak nije rapoređen pre njegovog vremena pruštanja Ukupno procesorsko vreme dodeljeno svakom zadatku jednako je maksimalnom ili stvarnom vremenu izvršavanja Da su ispoštovana sva ograničenja u prednjačenja i korišćenje resursa
Raspoređivanje Važeći raspored je izvodiv (feasible) ako svaka instanca ispunjava svoja vremenska ogrničenja. Performanse soft RT sistema mogu biti opisane sa Broj propusta (Miss rate) - procenat zadatka koji su se izvršili sa kašnjenjem Broj gubitaka (Loss rate) - procenat zadatka koji se nisu izvršili Algoritam raspoređivanja je optimalan ako algoritam uvek daje izvodivi raspored za dati skup zadataka koji ima izvodivi raspored Tipovi raspoređivanja On-line ili off-line Best errord i timing fault intolerance Centralizovano i distribuirano
Redefinicija zadataka Zadatak: Osnovni gradivni blok programa koji se piše pod operativnim sistemom. Zadatak (u mnogim RTOS) kao podprogram Poziv funkcije RTOS-a koja startuje zadatak, definisanjem startne adrese i nekih drugih parametara Ograničenja u broju zadataka!
Stanja zadataka Izvršavanje/Running: Procesor izvršava instrukcije koje su deo zadatka. U ovom stanju se nalazi samo jedan zadatak. Spremno/Ready: Neki drugi zadatak se izvršava ali ako procesor postane raspoloživ task će nastaviti sa izvršavanjem. U ovom stanju se može naći proizvoljan broj zadataka. Blokirano/Blocked: Zadatak trenutno ne može da se izvršava, čak i da je procesor raspoloživ. Zadatak čeka na pojavu nekog događaja. Bilo koji broj zadataka se može naći u ovom stanju. Suspended, pended, waiting, dormant, delayed
Stanja zadataka Blokirano Blocked Događaj potreban zudatku se desio Spremno Ready Task sa najvišim prioritetom Pojavio se ready task Višeg prioriteta Neaktivno Dormant Ćekanje na događaj Izvršavanje Running
Stanja zadataka Prelaz u blokirano stanje vrši sam zadatak Drugi zadaci ne mogu odlučiti o prelazu u blokirrano stanje. Zadatak mora biti u stanju izvršavanja da bi prešo u blokirano stanje. Samo neki drugi zadatak, ili prekid, može prebaciti zadatak u spremno stanje (iz blokiranog) Dok je zadatak u blokiranom stanju, nikada ne dobija procesor. Neki drugi zadatak u sistemu (ili prekidna rutina) mora biti sposoban da signalizira pojavu događaja. aja. U suprotnom, zadatak će zauvek ostati u blokoranom stanju. Šeduler donosi odluku koji će zadatak iz grupe spremnih biti prvi izvršen Zadatak može blokirati sam sebe, a ostali zadaci i prekidne rutine mogu prebaciti zadatak iz blokiranog stanja u spremno, ali šeduler ima kontrolu nad zadacima u spremnom stanju.
Raspoređivanje bez istiskivanja Tri zadatka definisana sa: Sva tri puštena u t=0 Prioritet Perioda Vreme izvršavanja τ 1 1 7 2 τ 2 2 16 4 τ 3 3 31 7 τ 1 τ 1 τ 11 τ 12 τ 12 τ 14 τ 13 prekoračenje 5 10 15 20 25 τ 2 τ 21 τ 22 5 10 15 20 25 τ 3 τ 31 5 10 15 20 25
Raspoređivanje sa istiskivanjem Tri zadatka definisana sa: Sva tri puštena u t=0 Prioritet Perioda Vreme izvršavanja τ 1 1 7 2 τ 2 2 16 4 τ 3 3 31 7 τ 1 τ 11 τ 12 τ 13 τ 14 τ 1 5 10 15 20 25 τ 2 τ 21 τ 22 5 10 15 20 25 τ 3 τ 31 5 10 15 20 25
Implementacija planera Bazirano na konvencionalnim strukturama podataka Tabele izvršenja Prioritetna lista čekanja Konstantan ili promenljivi prioritet Raspoređivanje u dva nivoa
Implementacija planera Tabele izvršenja Kada je raspored poznat pre početka izvršavanja aplikacije, statičko off-line raspoređivanje. Šeduler donosu odluko o tome koji će zadatak iz grupe spremnih zadataka da bude izvršen na osnovu tabele. Prioritetna lista čekanja Dinamički planirane sekvence, on-line uređena lista. Uređivanje na osnovu ključeva, pretraživanje po ključevima. Heap sorted list, uređena lista prioriteta.
Implementacija planera Konstantan ili promenljivi prioritet Kada je ključ (prioritet) po kome se pretražuju liste konstantan: vreme izvršavanja, relativni krajnji rok, perioda ili spoljašnji prioritet. Kada je promenljiv u toku izvršavanja programa: preostalo vreme izvršavanja, labavost, ili kada se stalno menja vreme puštanja ili apsolutni krajnji rok. Raspoređivanje u dva nivoa Za kompleksna raspoređivanja. Na višem nivou long-term odluke, obrada preopterećenja, izbacivanje zadataka. Na nižem nivou izbor zadataka iz podskupa pripremljenog od strane višeg nivoa. Primer distribuirano raspoređivanje.
Raspređivanje u klasičnim OS Dve osnovne funkcije: Maksimalno iskorišćenje procesora. U realnim uslovima od 40% do 95%. Minimizacija vremena odziva zadatka. Najbolji slučaj kada je vreme odziva jednako vremenu izvršavanja zadatak odmah izabran za izvršavanje i izvršen bez istiskivanja. Potvrda uspešnosti raspoređivanja određevanjem kriterijuma: Vremena čekanja zadataka (u ready stanju); Propusnost procesora, srednji broj izvršenih zadataka u određenom vremenskom intervalu; Ukupnog vremena izvršavanja skupa zadataka; Srednjeg vremena odziva skupa zadataka.
Osnovne metode Metode za odluku koji će od spremnih zadatka biti izabran za izvršavanje: First-come-first-served (prvi stigne-prvi uslužen) Shortest first (najkraći prvi) Round-robin Konstantni prioritet Raspoređivanje u više nivoa prioriteta
Osnovne metode First-come-first-served (prvi stigne-prvi uslužen) Po ovoj metodi uslužuje se, bez istiskivanja, zadatak sa najstarijim zahtevom iz grupe spremnih zadatka; Alokacija procesora je po redosledu dolaska zadataka; Zadaci sa kratkim vremenom izvršavanja mogu biti kažnjeni kada im prethodi zadatak sa dugim vremenom izvršavanja. Shortest first (najkraći prvi) Pokušaj da se ispravi nedostatak prethodnog; Procesor se dodeljuje najkraćem zadatku bez istiskivanja; Minimizacija srednjeg vremena odziva; Kažnjeni dugački zadaci; Potreba za poznavanjem vremena izvršavanja svakog zadatka.
Osnovne metode Round-robin Dodela procesora zadacima u fiksnim vremenskim intervalima (time slice), 10 ms do 100 ms; Procesor se dodeljuje svim spremnim zadacima na period ne duži od zadatog kvanta; Ako zadatak završi pre isteka vremena, procesor se oslobađa i prelazi se na izvršavanje novog zadatka; Ako se zadatak ne završi do isteka vremena, biva istisnut i postaje zadnji u listi spremnih zadataka; Velika zavisnost performansi od veličine vremenskog intervala. Veliki vremenski kvant povećava vreme odziva, mali povećava vreme koje se gubi na preklapanja zadataka.
Round-robin Osnovne metode Tri zadatka definisana sa: Sva tri puštena u t=0 Vremenski kvant Tc = 2 takta Nema prioriteta Prioritet Perioda Vreme izvršavanja τ 1 1 7 2 τ 2 2 16 4 τ 3 3 31 7 τ 1 τ 11 τ 12 τ 13 τ 14 5 10 15 20 25 τ 2 τ 21 τ 21 τ 22 τ 22 5 10 15 20 25 τ 3 τ 31 τ 31 τ 31 τ 31 5 10 15 20 25 Zadatak: Rasporediti ove zadatke za : Tc = 1, 3, 4 i 5
Osnovne metode Konstantni prioritet Konstantna vrednost prioriteta pridružuje se svakom zadatku. U svakom trenutku izvršava se zadatak sa najvišim prioritetom. Koristi se bez istiskivanja. Nedostatak, zadaci sa niskim prioritetom mogu čekati na izvršenje do beskonačnosti (starve forever). Rešenje starenje prioriteta, uvećanje prioriteta sa vremenom čekanja spremnog zadatka. Raspoređivanje u više nivoa prioriteta Veći broj lista čekanja gde svaka odgovara određenom prioritetu. U jednoj listi svi zadaci su istog prioriteta i izvršavaju se po redosledu dolaska ili po Round-robin metodi. Vremenski kvant može biti različit za svaku listu. Prvo se opslužuju zadaci iz liste sa najvećim prioritetom, 0, a zatim iz sledeće liste, 1, sve dok je lista 0 prazna i td.
Ilustracija prednosti raspoređivanja nad brzinom Problem inspirisan La Fontenovom basnom Zec i kornjača (La Fontaine, Le li`evre et la tortue, Fables VI, 10, Paris, 17th century) Dva zadatka: Prvi - periodičan koji kontroliše rad motora u automobilu. Perioda i relativni krajnji rok iznose 320 ms. Drugi sporadični koji reaguje na komande upravljanja. Relativni krajnji rok iznosi 21 ms Dva procesora: Prvi: Tortoise (Kornjača) brzine 1 Mips, vreme preklapanja zadataka 1 ms i raspoređivanje po principu najkraćeg krajnjeg roka. Vreme izračunavanja periodičnog zadatka izvosi 270 ms a sporadičnog 15 ms. Drugi: Hare (Zec) brzine 10 Mips, vreme preklapanja zadataka približno 0, i raspoređivanje po principu prvi-stigne-prvi-uslužen bez istiskivanja. Vreme izračunavanja periodičnog zadatka izvosi 27 ms a sporadičnog 1.5 ms. Scenario: Sporadični zadatak se aktivira odmah nakon pojave periodičnog zadatka
D Tortoise Hare τ 1 320 270 27 τ 2 21 15 1.5 Vreme izvršavanja, C 2 = 15 Preklapanje konteksta 5 10 15 20 25 285 290 5 10 15 20 25 285 290 Relativni krajnji rok, D 2 = 21 Propušteni krajnji rok