Razlika između preventivnog i ne-preventivnog zakazivanja u operativnim sustavima

Zakazivanje procesora (ili Raspored CPU-a) određuje kojima se procesi dodjeljuju i uklanjaju iz CPU-a na temelju modela zakazivanja kao što su Preventivni i Nepredviđeno zakazivanje (također poznat kao Planiranje zadruga).

Stariji sustavi mogli bi raditi u jednostavnim samostalnim načinima, ali uz sve veću potrebu za fleksibilnim, fleksibilnim sustavima, kao i virtualizacijom, učinkovito upravljanje višestrukim procesima omogućava brzi odgovor na sve zahtjeve za obradu zadataka.

Jedinice za planiranje često se nazivaju a zadatak a posao Planera je da izvodi i upravlja tim zadacima kad god je to potrebno; Planer odabire zadatak koji treba ukloniti i dodijeliti CPU-u na obradu, prema korištenom modelu zakazivanja.

Kako planer zna koji su zadaci prioriteti?

Planer mora pokrenuti pravičan i učinkovit proces odabira, uzimajući u obzir promjenjive, dinamičke zahtjeve za obradu i iskorištavajući najbolje od CPU ciklusa.

Tijekom obrade zadaci mogu biti u dva stanja:

  1. U Proces CPU gdje CPU izvodi proračune za obradu zadatka (razdoblje za CPU Burst varira od zadatka do zadatka, a program u program).
  2. U an Ulaz / izlaz (I / O) praska čekaju primanje ili slanje podataka iz sustava.

Kad CPU radi u praznom hodu, planer očitava Spremni red, i odabire sljedeći zadatak koji će se pokrenuti. Zatim, to je onaj Dispečer koja daje odabranu kontrolu nad CPU-om, tako da treba biti brz! Bilo koje vrijeme koje je dispečer preuzeo poznato je kao Latencija otpreme.

Postoje različite strukture i prilagođeni parametri za definiranje Spremni red, kao i nekoliko metoda koje se mogu koristiti za upravljanje složenošću postupka zakazivanja.

Općenito, radi se o optimiziranju i povećanju iskoristivosti procesora, propusnosti itd.

Planer mora donijeti odluku tijekom jedne od sljedećih faza:

  1. Kada se Zadatak promijeni iz a Trčanje do a Država čekanja (na primjer, čekanje tijekom I / O zahtjeva).
  2. Kad se Zadaća promijeni iz Trčanje do Spreman (na primjer, odgovaranje na prekid).
  3. Kad se Zadaća promijeni iz Čekanje do Spreman (na primjer, zahtjev za U / I je ispunjen).
  4. Kada Zadatak

Mora se odabrati novi zadatak ako se dogodi faza 1 ili 4 kako bi se osiguralo potpuno korištenje CPU-a, a u obje faze 2 i 3 zadatak se može nastaviti izvoditi ili je odabran novi.

Nakon razumijevanja kako se zadatak obrađuje, pogledajmo dva modela zakazivanja koji se bave prekidima CPU-a.

Oboje imaju slične značajke sa zadacima, stanjima zadataka, redovima čekanja i prioritetima (statičkim ili dinamičkim):

  • Nepredviđeno zakazivanje je kada zadatak traje dok se ne zaustavi (dobrovoljno) ili završi. Windows® je imao Nepreporučno zakazivanje do Windowsa 3.x, nakon čega se iz Windowsa 95 promijenio u Preemptive.
  • Preventivno planiranje gdje mjesto može prisilno obustaviti prekid CPU-a, za razliku od Non-Preemptive gdje se zadatak pokreće dok ne oslobodi kontrolu nad CPU-om..

Nepredviđeno zakazivanje

Zadaci unutar ne-preventivnog sustava izvodit će se dok nisu dovršeni.

Planer zatim provjerava stanja svih zadataka i zakazuje sljedeći zadatak s najvišim prioritetom sa Spreman država.

Ako nije zabranjeno zakazivanje, ako zadatak dodijeli procesoru, on se ne može oduzeti, čak i ako kratki zadaci moraju čekati da se dovrše duži zadaci.

Upravljanje zakazivanja za sve zadatke je "fer", a vremena odziva predvidljiva su jer zadaci visokog prioriteta ne mogu nagomilati zadatke dalje prema redu čekanja.

Planer osigurava da svaki zadatak dobije svoj udio u CPU-u, izbjegavajući kašnjenje s bilo kojim zadatkom. "Vrijeme" dodijeljeno CPU-u ne mora nužno biti jednako, jer ovisi o duljini zadatka za dovršavanje.

Preventivno planiranje

Ovaj model zakazivanja omogućava prekid zadataka - za razliku od Nepreporučnog zakazivanja koji ima pristup "trčanje do završetka".

Prekidi, koji bi mogli biti pokrenuti iz vanjskih poziva, pozivaju Schedulera da zaustavi pokretanje zadatka za upravljanje drugim zadatkom višeg prioriteta - tako da se može nadvladati kontrola CPU-a..

Zadatak s najvišim prioritetom u Spreman stanje se izvršava, omogućavajući brzo reagiranje na događaje u stvarnom vremenu.

Neki od nedostataka Preemptive Scheduling uključuju porast općih troškova za resurse pri korištenju prekida i problema mogu se dogoditi s dva zadatka dijeljenja podataka, jer jedan može biti prekinut tijekom ažuriranja dijeljenih struktura podataka i može negativno utjecati na integritet podataka.

S druge strane, praktično je biti u mogućnosti zaustaviti zadatak za upravljanje drugim koji bi mogao biti kritičan.

U sažetku

Može se definirati mnogo varijacija i ovisnosti u različitim pravilima, poput korištenja a "Politika okruglog stola [i]" pri čemu se svaki zadatak (s jednakim prioritetom) pokreće jednom, a zatim postavlja na kraj reda, za sljedeći ciklus.

Ostala pravila uključuju Prvo-In-First-Out, Najkraća-Posao-prvi, Najkraća-Posao-Sljedeća, Najkraće preostalo vrijeme, itd.

Analiza povijesnih podataka može pružiti informacije o aspektima, kao što su brzina dolaska novih zadataka, CPU i I / O provale itd., Tako da raspodjelom vjerojatnosti mogu izračunati karakteristike čekanja zadataka, na taj način naoružavajući administratore s relevantnim podacima za definiranje modela zakazivanja.