Skirtumas tarp prevencinio ir neprevencinio planavimo operacinėse sistemose

Procesoriaus planavimas (arba CPU planavimas) nustato, kuriems procesams priskiriami ir pašalinami procesoriai, remiantis planavimo modeliais, tokiais kaip Prevencinis ir Neprevencinis planavimas (taip pat žinomas kaip Bendradarbiavimo planavimas).

Senesnės sistemos galėtų veikti paprastais atskirais režimais, tačiau, atsižvelgiant į didėjantį reaguojančių, lanksčių sistemų poreikį ir virtualizaciją, efektyviai valdant daugialypį apdorojimą, greitai reaguojama į visas užduočių apdorojimo užklausas..

Planavimo vienetai dažnai vadinami a užduotis ir, kai reikia, šias užduotis vykdyti ir valdyti yra planuotojo užduotis; Tvarkaraštis pasirenka užduotį, kurią reikia pašalinti, ir priskiria procesoriui apdoroti pagal naudojamą planavimo modelį..

Kaip planuotojas žino, kurios užduotys yra prioritetinės?

Tvarkaraštis turi vykdyti teisingą ir veiksmingą atrankos procesą, atsižvelgdamas į kintamas, dinamiškas apdorojimo užklausas ir maksimaliai išnaudodamas centrinio procesoriaus ciklus..

Apdorojant užduotys gali būti dviejose būsenose:

  1. Į a „CPU Burst“ kur CPU atlieka skaičiavimus, kad apdorotų užduotį (CPU sprogimo laikotarpis skiriasi priklausomai nuo užduoties ir užduoties, ir nuo programos iki programos).
  2. Į Įvesties / išvesties (I / O) serija laukia duomenų gavimo ar išsiuntimo iš sistemos.

Kai procesorius nenaudojamas, planavimo priemonė nuskaito Paruošta eilė, ir pasirenka kitą vykdomą užduotį. Tada yra Dispečeris tai suteikia pasirinktai užduočiai CPU valdymą, todėl ji turi būti greita! Bet koks dispečerio laikas yra žinomas kaip Siuntimo vėlavimas.

Yra skirtingos struktūros ir pasirinktiniai parametrai Paruošta eilė, taip pat keletas metodų, kurie gali būti naudojami planavimo proceso sudėtingumui valdyti.

Paprastai kalbant apie procesoriaus panaudojimo, pralaidumo ir kt. Optimizavimą ir maksimizavimą.

Tvarkaraštis turi priimti sprendimą viename iš šių etapų:

  1. Kai užduotis pasikeičia iš a Bėgimas į a Laukianti būsena (pvz., laukiama I / O užklausos metu).
  2. Kai užduotis pasikeičia iš Bėgimas į Parengta (pvz., reaguoti į pertraukimą).
  3. Kai užduotis pasikeičia iš Laukia į Parengta (pavyzdžiui, užpildyta I / O užklausa).
  4. Kai Užduotis

Jei 1 ar 4 etapas įvyksta taip, kad būtų užtikrintas visiškas CPU panaudojimas, reikia pasirinkti naują užduotį, o tiek 2, tiek 3 etape užduotis gali būti vykdoma toliau arba pasirenkama nauja..

Supratę, kaip apdorojama užduotis, pažvelkime į du planavimo modelius, susijusius su procesoriaus pertraukimais.

Abu jie turi panašias funkcijas, susijusias su užduotimis, užduočių būsenomis, eilėmis ir prioritetais (statiniais ar dinaminiais):

  • Neprevencinis planavimas yra tada, kai užduotis vykdoma, kol ji sustoja (savanoriškai) arba baigiasi. „Windows®“ turėjo neprevencinį planavimą iki „Windows 3.x“, po to iš „Windows 95“ jis pakeitė į „Preemptive“.
  • Prevencinis planavimas kur užduotis gali būti priverstinai sustabdyta nutraukiant procesorių, skirtingai nuo neprevencinio, kai užduotis vykdoma tol, kol ji atleidžia centrinio procesoriaus valdymą..

Neprevencinis planavimas

Neprevencinėje sistemoje vykdomos užduotys bus įvykdytos iki galo.

Tada Tvarkaraštis patikrina visų užduočių būsenas ir suplanuoja kitą aukščiausio prioriteto užduotį mygtuku Parengta valstybės.

Neprevencinis planavimas, kai užduotis priskiriama centriniam procesoriui, jos negalima pašalinti, net jei trumpoms užduotims reikia laukti ilgesnių užduočių..

Visų užduočių planavimo valdymas yra „teisingas“ ir numatomas reagavimo laikas, nes aukšto prioriteto užduotys negali perkelti laukimo užduočių toliau eilėje..

Tvarkaraštis užtikrina, kad kiekviena užduotis užima dalį centrinio procesoriaus, išvengiant bet kokio užduoties vėlavimo. CPU paskirta „laiko suma“ nebūtinai turi būti lygi, nes tai priklauso nuo to, kiek laiko užduočiai atlikti reikia.

Prevencinis planavimas

Šis planavimo modelis leidžia pertraukti užduotis - priešingai nei neprevencinis planavimas, kurio metodas yra „nuo pradžios iki pabaigos“..

Pertraukimai, kurie gali būti inicijuojami iš išorinių skambučių, reikalauja, kad Tvarkaraštis sustabdytų vykdomą užduotį, kad būtų galima valdyti kitą aukštesnio prioriteto užduotį - taigi galima užkirsti kelią centrinio procesoriaus valdymui..

Aukščiausio prioriteto užduotis a Parengta būsena vykdoma, leidžianti greitai reaguoti į realaus laiko įvykius.

Kai kurie trūkumai, susiję su prevenciniu planavimu, yra susiję su išteklių pridėtinių išlaidų padidėjimu, kai naudojami pertraukimai, ir problemų gali kilti dėl dviejų užduočių dalijimosi duomenimis, nes viena gali būti nutraukta atnaujinant bendrai naudojamas duomenų struktūras ir tai gali neigiamai paveikti duomenų vientisumą..

Kita vertus, praktiška mokėti pristabdyti užduotį, kad būtų galima valdyti kitą, kuri galėtų būti kritinė.

Apibendrinant

Galima apibrėžti daugybę skirtingų strategijų skirtumų ir priklausomybių, pavyzdžiui, naudojant a „Apvaliojo robino politika [i]“ kur kiekviena užduotis (turinti vienodą prioritetą) vykdoma vieną kartą, o po to dedama į eilės pabaigą kitam ciklui.

Į kitas politikas įeina Pirmas vidun, pirmas laukan, Trumpiausias darbas, Trumpiausias darbas-kitas, Trumpiausias likęs laikas, ir tt.

Istorinių duomenų analizė gali suteikti informacijos apie aspektus, tokius kaip naujų užduočių atvykimo greitis, procesoriaus ir I / O įkėlimai ir tt, taigi tikimybių pasiskirstymas gali apskaičiuoti užduočių laukimo laiko charakteristikas, tokiu būdu padėdamas administratorius svarbiais duomenimis apibrėžti planavimo modelius..