Preventivan i nepreventivan raspored u operacijskim sustavima
Zakazivanje procesora (ili Zakazivanje procesora) određuje koji se procesi dodjeljuju i uklanjaju iz procesora, na temelju modela raspoređivanja kao što je Preventivni i Neprekidno zakazivanje (također poznat kao Kooperativno zakazivanje).
Starije sustave mogu raditi na jednostavnim samostalnim načinima rada, ali uz sve veću potrebu za responzivnim, fleksibilnim sustavima, kao i virtualizacijom, učinkovito upravljanje višestrukom obradom osigurava brzi odgovor na sve zahtjeve za obradu zadataka.
Jedinice za zakazivanje često se nazivaju a zadatak i to je Planerov posao za pokretanje i upravljanje tim zadacima kad god je to potrebno; Planer odabire zadatak koji će biti uklonjen i dodijeljen CPU-u za obradu, u skladu s korištenim modelom raspoređivanja.
Kako Planer zna koje su zadaće prioritetne?
Planer treba pokrenuti fer i učinkovit postupak odabira, uzimajući u obzir varijabilne, dinamičke zahtjeve za obradu i iskorištavanje većine procesorskih ciklusa.
Zadaci mogu biti u dvije države tijekom obrade:
- U CPU praska gdje CPU izvršava izračune za obradu zadatka (razdoblje za CPU Burst varira od zadatka do zadatka i programa do programa).
- U jednom Burst ulaz / izlaz (I / O) čekajući da se podaci primaju ili šalju iz sustava.
Kada je CPU u stanju mirovanja, Scheduler čita Spremni red, i odabire sljedeći zadatak za pokretanje. Zatim je to Dispečer koji daje odabranu zadatku kontrole CPU-a, tako da mora biti brz! Svaki put kojeg je poslao Dispatcher poznat je kao Otprema latencije.
Postoje različite strukture i prilagođeni parametri za definiranje Spremni red, kao i nekoliko metoda koje se mogu koristiti za upravljanje složenosti procesa raspoređivanja.
Općenito, njegova optimizacija i maksimiziranje iskorištenosti procesora, propusnosti itd.
Planer mora donijeti odluku tijekom jednog od sljedećih faza:
- Kada se zadatak mijenja iz a Trčanje na a Čekanje (na primjer, čekanja tijekom zahtjeva za I / O).
- Kada se zadatak mijenja iz Trčanje do Spreman (na primjer reagiranje na prekid).
- Kada se zadatak mijenja iz čekanje do Spreman (na primjer, potreban je I / O zahtjev).
- Kada Zadatak
Potrebno je odabrati novu zadatak ako se dogodi faza 1 ili 4 kako bi se osiguralo potpuno iskorištavanje CPU-a, au oba faza 2 i 3 zadatak se može nastaviti prikazivati ili odabrati novi.
Nakon što saznamo kako se zadatak obrađuje, pogledajmo dva modela raspoređivanja koji se bave prekidima CPU-a.
Obje imaju slične značajke s zadacima, stanjima zadataka, redovima i prioritetima (statički ili dinamički):
- Neprekidno zakazivanje je kada zadatak traje dok se ne zaustavi (dobrovoljno) ili završi. Windows® je imao neprekidno zakazivanje do sustava Windows 3.x, nakon čega se promijenio u Preemptive iz sustava Windows 95.
- Preventive Scheduling je mjesto gdje zadatak može biti prisilno suspendiran od strane CPU zaustaviti, za razliku od Non-Preemptive gdje zadatak radi dok ne oslobađa kontrolu CPU.
Neprekidno zakazivanje
Zadaci u sustavu bez predostrožnosti krenut će do dovršetka.
Planer zatim provjerava stanje svih zadataka i rasporedi sljedeći zadatak s najvišim prioritetom s a Spreman država.
S neispravnim zakazivanjem, nakon što zadatak ima svoj zadatak CPU-u, ne može se oduzeti, čak i ako kratke zadatke moraju čekati duže zadatke.
Upravljanje rasporedom u svim zadacima je "pošteno" i vrijeme odziva predvidljivo je jer zadaci s visokim prioritetima ne mogu zaustaviti zadatke čekanja dalje niz red.
Planer osigurava da svaki zadatak dobije svoj udio u CPU-u, izbjegavajući zakašnjenje s bilo kojim zadatkom. "Količina vremena" dodijeljena CPU-u ne mora nužno biti jednaka, jer ovisi o tome koliko dugo zadatak treba dovršiti.
Preventive Scheduling
Ovaj model raspoređivanja omogućuje prekidanje zadataka - za razliku od nepreventivnog rasporeda koji ima pristup "završetak".
Prekidači, koji se mogu inicirati iz vanjskih poziva, pozivaju Planeru da pauzira pokrenuti zadatak za upravljanje drugim prioritetnim zadatkom - tako da se kontrola CPU-a može spriječiti.
Zadatak najvišeg prioriteta u a Spreman izvršava se stanje, što omogućuje brzi odgovor na događaje u stvarnom vremenu.
Neki od nedostataka u programu Preemptive Scheduling uključuju povećanje općih troškova za resurse pri korištenju prekida i problema s dvama zadacima za dijeljenje podataka, jer se može prekinuti prilikom ažuriranja dijeljenih struktura podataka i može negativno utjecati na integritet podataka.
S druge strane, praktično je biti u stanju pauzirati zadatak za upravljanje nekom drugom koja bi mogla biti kritična.
U sažetku
Mogu se definirati mnoge varijance i ovisnosti u različitim politikama, kao što je korištenje a "Politika okruglog robina [i]" gdje svaki zadatak (s jednakim prioritetom) traje jednom, a zatim stavlja na kraju reda, za sljedeći ciklus.
Druga 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 učestalost stizanja novih zadataka, CPU i I / O Bursts, itd. Tako da razdiobe vjerojatnosti mogu izračunati karakteristike zadataka čekanja, čime se upućuju administratori s relevantnim podacima kako bi definirali modele raspoređivanja.