sistemi za rad u realnom - es.elfak.ni.ac.rses.elfak.ni.ac.rs › ... › pdf_ppt ›...

Post on 28-Jun-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sistemi za rad u realnom

vremenu

------------------------------------------------------------------------------

Raspoređivanje zadataka

Sadržaj� Raspoređivanje� Redefinisanje zadatka� Stanja zadataka� Raspoređivanje bez istiskivanja� Raspoređivanje sa istiskivanjem� Implementacija planera� 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 � 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, �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 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

Spremno Ready

BlokiranoBlocked

Pojavio se ready task

Tasksa

Događaj potrebanzudatku se desio

IzvršavanjeRunningNeaktivno

Dormant

ready taskVišeg prioriteta

Tasksanajvišimprioritetom

Ćekanjena događaj

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.signalizira pojavu događ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.

ττττ11112222ττττ11112222

ττττ11113333ττττ11114444

Raspoređivanje bez istiskivanja

Tri zadatka definisana sa:Sva tri puštena u t=0

Prioritet PeriodaVreme

izvršavanja

τ1 1 7 2

τ2 2 16 4

τ3 3 31 7

prekoračenje

ττττ1111 ττττ11111111 ττττ11112222

ττττ31313131

ττττ11112222 ττττ11114444

ττττ22221111 ττττ22222222

ττττ1111

ττττ2222

ττττ3333

5 10 15 20 25

ττττ11111111

5 10 15 20 25

5 10 15 20 25

Raspoređivanje sa istiskivanjem

ττττ1111 ττττ11111111 ττττ11112222 ττττ11113333 ττττ11114444

Tri zadatka definisana sa:Sva tri puštena u t=0

Prioritet PeriodaVreme

izvršavanja

τ1 1 7 2

τ2 2 16 4

τ3 3 31 7

ττττ31313131

ττττ1111

ττττ2222

ττττ3333

5 10 15 20 25

ττττ11111111 ττττ11112222 ττττ11113333 ττττ11114444

ττττ22221111 ττττ22222222

5 10 15 20 25

5 10 15 20 25

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

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 )

Osnovne metode

�Shortest first (najkra ći prvi )

�Round-robin

�Konstantni prioritet

�Raspoređivanje u više nivoa prioriteta

�First-come-first-served (prvi stigne-prvi uslužen)• Po ovoj metodi uslužuje se, bez istiskivanja, zadatak sa

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

Osnovne metode

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.

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

Osnovne metode

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.

Tri zadatka definisana sa:Sva tri puštena u t=0

Vremenski kvantTc = 2 takta

Prioritet PeriodaVreme

izvršavanja

τ1 1 7 2

τ2 2 16 4

τ3 3 31 7

Osnovne metodeRound-robin

Nema prioriteta

ττττ22222222ττττ22221111

ττττ31313131 ττττ31313131 ττττ31313131ττττ31313131

ττττ1111

ττττ2222

ττττ3333

5 10 15 20 25

ττττ11111111 ττττ11112222 ττττ11113333 ττττ11114444

ττττ22221111 ττττ22222222

5 10 15 20 25

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

Preklapanjekonteksta

Vreme izvršavanja, C2 = 15

5 10 15 20 28525 290

5 10 15 20 28525 290

Propuštenikrajnji rok

Relativni krajnji rok, D2 = 21

Vreme izvršavanja, C2 = 15

top related