Preventivan i nepreventivan raspored u operacijskim sustavima

Anonim

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:

  1. 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).
  2. 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:

  1. Kada se zadatak mijenja iz a Trčanje na a Čekanje (na primjer, čekanja tijekom zahtjeva za I / O).
  2. Kada se zadatak mijenja iz Trčanje do Spreman (na primjer reagiranje na prekid).
  3. Kada se zadatak mijenja iz čekanje do Spreman (na primjer, potreban je I / O zahtjev).
  4. 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.