Ieteicams, 2020

Redaktora Izvēle

Starpība starp priekšlaicīgu un ne-priekšlaicīgu grafiku operētājsistēmā

CPU plānotāja pienākums ir piešķirt procesu CPU, kad CPU atrodas dīkstāvē. CPU plānotājs izvēlas procesu no sagatavošanas rindas un piešķir procesu CPU. Plānošana, kas notiek, kad process pārslēdzas no darbības stāvokļa uz gatavu stāvokli vai no gaidīšanas stāvokļa līdz gatavam stāvoklim, tiek saukts par priekšlaicīgu plānošanu . Uz rokām plānošana, kas notiek, kad process izbeidzas vai pārslēdzas no darbības uz gaidīšanas režīmu, šāda veida CPU plānošana tiek saukta par neierobežotu plānošanu . Galvenā atšķirība starp priekšlaicīgu un nekompensējošu grafiku ir paša nosaukumā. Tas ir priekšnoteikums plānošanai; procesus var plānot. Nevēlamā plānošanā procesus nevar plānot.

Ļaujiet mums īsumā apspriest atšķirības starp gan pirmspirkšanas, gan pirmspirkšanas plānošanu, izmantojot zemāk redzamo salīdzinājumu tabulu.

Salīdzinājuma diagramma

Salīdzinājuma pamatsPriekšlaicīga plānošanaNeizpētīga plānošana
PamataResursi tiek piešķirti procesam uz ierobežotu laiku.Kad resursi tiek piešķirti procesam, process tur to līdz brīdim, kad tas pabeidz sprādziena laiku vai pārslēdzas uz gaidīšanas režīmu.
PārtrauktProcesu var pārtraukt.Procesu nevar pārtraukt, līdz tas beidzas vai pārslēdzas uz gaidīšanas režīmu.
BadsJa gatavības rindā bieži tiek saņemts augsta prioritātes process, zemas prioritātes process var būt bads.Ja process ar ilgu sprādziena laiku darbojas CPU, tad cits process ar mazāku CPU pārrāvuma laiku var badoties.
Pieskaitāmās izmaksasPriekšlaicīgam plānojumam ir pieskaitāmās izmaksas par procesu plānošanu.Bez iepriekšējas plānošanas nav pieskaitāmo izmaksu.
ElastīgumsPriekšlaicīga plānošana ir elastīga.Neizpētoša plānošana ir stingra.
IzmaksasPriekšlaicīga plānošana ir saistīta ar izmaksām.Neizpētoša plānošana nav izmaksu asociācija.

Priekšlaicīgas plānošanas definīcija

Priekšlaicīga plānošana ir tāda, ko var izdarīt apstākļos, kad process pāriet no darba stāvokļa uz gatavu stāvokli vai no gaidīšanas stāvokļa līdz gatavam stāvoklim . Šeit resursi (CPU cikli) tiek piešķirti procesam uz ierobežotu laiku un pēc tam tiek atņemti, un process atkal tiek ievietots gatavajā rindā, ja tam vēl ir atlikušais CPU pārrāvuma laiks. Šis process paliek gatavā rindā līdz nākamajai iespējai izpildīt.

Ja sagatavošanas rindā ierodas process ar augstu prioritāti, tam nav jāgaida, līdz pašreizējais process pabeidz sprādziena laiku. Tā vietā pašreizējais process tiek pārtraukts izpildes laikā un tiek ievietots gatavības rindā, līdz process ar augstu prioritāti tiek izmantots CPU cikliem. Tādā veidā katrs gatavā rindas process saņem kādu laiku, lai palaistu CPU. Tas padara priekšlaicīgu plānošanu elastīgu, bet palielina pieskaitāmās izmaksas, pārejot no darbības stāvokļa uz gatavu stāvokli un vise-verse.

Algoritmi, kas strādā ar iepriekšēju grafiku, ir Round Robin. Īsākā darba pirmā (SJF) un prioritāšu plānošana var būt vai nav pakļauta iepriekšējai plānošanai.

Ņemsim piemēru pirmspievienošanās plānošanai, skatiet tālāk redzamajā attēlā. Mums ir četri procesi P0, P1, P2, P3. No kuriem P2 ierodas laikā 0. Tātad CPU tiek piešķirts procesam P2, jo rindā nav cita procesa. Tikmēr P2 tika izpildīts, P3 ierodas laikā 1, tagad atlikušais laiks procesam P2 (5 milisekundes), kas ir lielāks par laiku, kas nepieciešams P3 (4 milisundes). Tātad CPU tiek piešķirts procesoram P3.

Tikmēr P3 tika izpildīts, process P1 ierodas laikā 2. Tagad P3 atlikušais laiks (3 milisekundes) ir mazāks par laiku, kas nepieciešams procesiem P1 (4 milisekundes) un P2 (5 milisekundes). Tātad P3 ir atļauts turpināt. Kamēr P3 turpinās, P0 tiek parādīts laikā 3, tagad P3 atlikušais laiks (2 milisekundes) ir vienāds ar laiku, kas nepieciešams P0 (2 milisekundes). Tātad P3 turpinās un pēc tam, kad P3 beidzas, CPU tiek piešķirts P0, jo tam ir mazāks pārraušanas laiks nekā citiem. Kad P0 beidzas, CPU tiek piešķirts P1 un pēc tam uz P2.

Neizpirkšanas grafika definīcija

Neparedzēta plānošana ir tāda, ko var piemērot apstākļos, kad process beidzas, vai process pārslēdzas no darbības uz gaidīšanas režīmu . Neizpirkšanas plānošanā, kad resursi (CPU) ir piešķirti procesam, process tur CPU, līdz tas tiek izbeigts vai sasniedz gaidīšanas stāvokli.

Atšķirībā no iepriekšējas plānošanas, ne-preemptive plānošana nepārtrauc procesus, kas darbojas CPU izpildes laikā. Tā vietā tas gaida, lai process pabeigtu CPU pārrāvuma laiku, un tad tas var piešķirt CPU citam procesam.

Neizpētošajā plānošanā, ja process ar ilgu CPU pārrāvuma laiku tiek izpildīts, tad otram procesam būs jāgaida ilgi, kas palielina gatavo rindu procesu vidējo gaidīšanas laiku. Tomēr neparedzētam plānojumam nav nekādu pieskaitāmu procesu, lai pārslēgtu procesus no gatavas rindas uz CPU, bet tas padara plānošanu neelastīgu, jo izpildes process nav pat priekšnoteikums procesam ar augstāku prioritāti.

Ļaujiet mums atrisināt iepriekš minēto plānošanas piemēru ne-preemptive veidā. Sākotnēji process P2 ierodas laikā 0, tāpēc CPU tiek piešķirts procesam P2, lai izpildītu 6 milisekundes. Starp visiem procesiem, ti, P0, P1, P3 ierodas gatavā rindā. Bet visi gaida, līdz process P2 pabeidz CPU pārrāvuma laiku. Tad process, kas ierodas pēc P2, ti, P3, tiek piešķirts CPU, līdz tas beidzas ar tā pārraušanas laiku. Tāpat P1 izpilda, un CPU vēlāk tiek dots procesam P0.

Galvenās atšķirības starp priekšlaicīgu un neobligātu plānošanu

  1. Galvenā atšķirība starp priekšlaicīgu un nekompensējošu grafiku ir tā, ka priekšlaicīgas plānošanas laikā CPU ir piešķirts procesiem ierobežotā laikā. Kamēr nav priekšlaicīgas plānošanas, CPU tiek piešķirts procesam, līdz tas beidzas vai pārslēdzas uz gaidīšanas režīmu .
  2. Izpildes process priekšlaicīgas plānošanas laikā tiek pārtraukts izpildes procesa vidū, bet izpildes process neparedzētā plānošanā netiek pārtraukts izpildes laikā.
  3. Pirmspievienošanās plānošana ir saistīta ar procesa pārslēgšanu no gatavības stāvokļa uz darba stāvokli, vise-verse un gatavās rindas saglabāšanu. No otras puses, ne-preemptive plānošana nav saistīta ar procesa maiņu no darbības stāvokļa līdz gatavam stāvoklim.
  4. Prognozējamā plānošanā, ja process ar augstu prioritāti bieži ierodas gatavajā rindā, tad process ar zemu prioritāti jāgaida ilgi, un tas var būt bads. No otras puses, ja nav priekšlaicīgas plānošanas, ja CPU ir piešķirts procesam ar lielāku sprādziena laiku, tad procesiem ar nelielu sprādziena laiku var būt bads.
  5. Priekšlaicīga plānošana ir diezgan elastīga, jo kritiskajiem procesiem ir atļauts piekļūt CPU, kad tie nonāk gatavības rindā, neatkarīgi no tā, kāds process pašlaik tiek izpildīts. Neizpriecīga plānošana ir stingra, jo pat tad, ja kritiskais process nonāk gatavajā rindā, process, kurā darbojas CPU, netiek traucēts.
  6. Priekšpasākumu plānošana ir izmaksu asociācija, jo tai ir jāsaglabā kopīgu datu integritāte, kas nav gadījums, kad tiek veikta iepriekšēja plānošana.

Secinājums:

Tas nav tāds, ka priekšlaicīga plānošana ir labāka nekā ne-preemptive plānošana vai vise-verse. Viss ir atkarīgs no tā, kā plānošana samazina procesu vidējo gaidīšanas laiku un maksimizē CPU izmantošanu.

Top