Atšķirība starp preventīvo un nelietojošo plānošanu operētājsistēmās

Procesora plānošana (vai CPU plānošana) nosaka, kuri procesi tiek piešķirti procesoriem un noņemti no tiem, pamatojoties uz plānošanas modeļiem, piemēram, Preventīvā un Nepreventīvā plānošana (pazīstams arī kā kooperatīvā plānošana).

Vecākas sistēmas varētu darboties vienkāršos patstāvīgos režīmos, bet, ņemot vērā pieaugošo vajadzību pēc atsaucīgām, elastīgām sistēmām, kā arī virtualizācijas, daudznozaru apstrādes efektīva pārvaldība nodrošina ātru reakciju uz visiem uzdevumu apstrādes pieprasījumiem.

Plānošanas vienības bieži sauc par uzdevumu, un plānotāja pienākums ir šos uzdevumus vadīt un pārvaldīt, kad vien tas nepieciešams; plānotājs izvēlas noņemamo uzdevumu un piešķir CPU apstrādei saskaņā ar izmantoto plānošanas modeli.

Kā plānotājs zina, kuri uzdevumi ir prioritāri?

Plānotājam ir jāvada godīgs un efektīvs atlases process, ņemot vērā mainīgos, dinamiskos apstrādes pieprasījumus un maksimāli izmantojot CPU ciklus.

Apstrādes laikā uzdevumi var būt divos stāvokļos:

  1. CPU sērijā, kurā CPU veic aprēķinus, lai apstrādātu uzdevumu (CPU eksplozijas periods katram uzdevumam un programmai ir atšķirīgs). In Input / Output (I / O) Burst gaida datu saņemšanu vai nosūtīšanu no sistēmas.

Kad CPU ir dīkstāvē, plānotājs nolasa rindu Gatavs un izvēlas nākamo izpildāmo uzdevumu. Tad dispečers dod izvēlētajam CPU uzdevuma kontroli, tāpēc tam jābūt ātram! Jebkurš dispečera patērētais laiks ir pazīstams kā nosūtīšanas latentums.

Gatavības rindas noteikšanai ir dažādas struktūras un pielāgoti parametri, kā arī vairākas metodes, kuras var izmantot, lai pārvaldītu plānošanas procesa sarežģītību.

Parasti tas attiecas uz CPU izmantošanas, caurlaidspējas optimizēšanu un palielināšanu.

Plānotājam jāpieņem lēmums vienā no šiem posmiem:

  1. Kad uzdevums mainās no skriešanas uz gaidīšanas stāvokli (piemēram, gaidīšana I / O pieprasījuma laikā). Kad uzdevums mainās no Running uz Ready (piemēram, reaģējot uz pārtraukumu). Kad uzdevums mainās no Gaidīšana uz Gatavs (piemēram, I / O pieprasījums ir pabeigts). Kad uzdevums

Ja 1. vai 4. posms notiek, lai nodrošinātu CPU pilnīgu izmantošanu, ir jāizvēlas jauns uzdevums, un gan 2., gan 3. posmā uzdevumu var turpināt izpildīt vai ir izvēlēts jauns.

Pēc izpratnes par uzdevuma apstrādi apskatīsim divus plānošanas modeļus, kas attiecas uz CPU pārtraukumiem.

Abiem ir līdzīgas funkcijas ar uzdevumiem, uzdevumu stāvokļiem, rindām un prioritātēm (statiskām vai dinamiskām):

  • Nepreventīva plānošana ir tāda, kad uzdevums tiek izpildīts, līdz tas apstājas (brīvprātīgi) vai tiek pabeigts. Līdz Windows 3.x operētājsistēmai Windows® bija nepiemērojoša plānošana, pēc tam Windows 95 to nomainīja uz Preemptive. Preventīvā plānošana ir tāda, kurā uzdevumu var piespiedu kārtā apturēt ar CPU pārtraukumu, atšķirībā no nepreventīvajiem, kur uzdevums tiek izpildīts, līdz tas atbrīvo CPU kontroli.

Nepreventīvs plānojums

Nepreventīvas sistēmas uzdevumi tiks veikti līdz pabeigšanai.

Plānotājs pēc tam pārbauda visu uzdevumu stāvokļus un ieplāno nākamo augstākās prioritātes uzdevumu ar statusu Gatavs.

Ar neprevenciozu plānošanu, kad uzdevumam ir piešķirta centrālā procesora funkcija, to nevar noņemt, pat ja īsiem uzdevumiem jāgaida ilgāki uzdevumi.

Plānošanas pārvaldība visiem uzdevumiem ir “taisnīga”, un atbildes laiki ir paredzami, jo augstas prioritātes uzdevumi nevar atlikt gaidīšanas uzdevumus tālāk rindā.

Plānotājs nodrošina, ka katrs uzdevums iegūst CPU daļu, izvairoties no jebkādas kavēšanās ar jebkuru uzdevumu. CPU atvēlētais “laika daudzums” var nebūt vienāds, jo tas ir atkarīgs no tā, cik ilgs laiks jāveic uzdevumam.

Preventīva plānošana

Šis plānošanas modelis ļauj pārtraukt uzdevumus - atšķirībā no neprevenciozās plānošanas, kurai ir pieeja “palaist līdz pabeigšanai”.

Pārtraukumi, kurus var iniciēt no ārējiem zvaniem, liek plānotājam pārtraukt tekošo uzdevumu, lai pārvaldītu citu augstākas prioritātes uzdevumu - tātad var novērst CPU kontroli.

Tiek izpildīts augstākās prioritātes uzdevums gatavības stāvoklī, ļaujot ātri reaģēt uz reālā laika notikumiem.

Daži no trūkumiem, kas saistīti ar Preventīvās plānošanas procesu, ir saistīti ar resursu palielinājumu, ja tiek izmantoti pārtraukumi, un problēmas var rasties saistībā ar diviem uzdevumiem, kas apmainās ar datiem, jo ​​viens var tikt pārtraukts, atjauninot dalītās datu struktūras, un tas varētu negatīvi ietekmēt datu integritāti.

No otras puses, ir praktiski spēt apturēt uzdevumu, lai pārvaldītu citu, kas varētu būt kritisks.

Kopsavilkumā

Var definēt dažādas atšķirības un atkarības dažādās politikās, piemēram, izmantojot “apaļā robina politiku [i]”, kur katrs uzdevums (ar vienādu prioritāti) tiek izpildīts vienu reizi un pēc tam tiek ievietots rindas beigās nākamajam ciklam.

Pie citām politikām pieder pirmais-pirmais-pirmais, īsākais darbs-pirmais, īsākais-nākamais, īsākais atlikušais laiks utt.

Vēstures datu analīze var sniegt informāciju par aspektiem, piemēram, jaunu uzdevumu saņemšanas ātrumu, CPU un I / O burstiem utt., Lai varbūtības sadalījumi varētu aprēķināt uzdevumu gaidīšanas laika raksturlielumus, tādējādi apgādājot administratorus ar attiecīgiem datiem, lai definētu plānošanas modeļus.

Atsauces

  •  https://en.wikipedia.org/wiki/Round-robin_scheduling
  • https://cs.stackexchange.com/questions/35723/can-shortest-job-first-scheduling-be-subject-to-convoy-effect