Nøgleforskel – forebyggende vs ikke-forebyggende planlægning i OS
En proces er et program under udførelse. En computer skal udføre mange opgaver på samme tid. Derfor bør CPU'en hente processer og udføre dem. Nogle gange er det nødvendigt at udføre nogle processer end de andre processer. På det tidspunkt afbrydes den kørende proces, og CPU allokeres til den nye proces. Når opgaven er fuldført, allokeres CPU'en tilbage til den forrige proces. Planlægningen ifølge denne mekanisme er kendt som forebyggende planlægning. Hvis den kørende proces ikke kan afbrydes, og det er obligatorisk at udføre den kørende proces, er det kendt som ikke-forebyggende planlægning. Denne artikel diskuterer forskellen mellem forebyggende og ikke-forebyggende planlægning i et operativsystem. Den præemptive planlægning er procesplanlægningsmekanismen, hvorigennem en proces, der kan blive afbrudt af en anden proces midt i dens udførelse. Den ikke-forebyggende planlægning er procesplanlægningsmekanismen, hvorigennem én proces først starter eksekvering, efter at den forrige proces er afsluttet. Det er den vigtigste forskel mellem forebyggende og ikke-forebyggende planlægning i OS.
Hvad er forebyggende planlægning i OS?
Round Robin Scheduling er et eksempel på forebyggende planlægning. Hver proces får en lille mængde CPU-tid. Det er norm alt 10 til 100 millisekunder. Denne lille enhed af data er også kendt som tidskvante. Når denne tid er udløbet, foregribes processen og tilføjes til slutningen af klarkøen. Antag, at der er 4 processer som P1, P2, P3 og P4. CPU-bursttider i millisekunder er som følger. Tidskvantet er 20.
Figur 01: Eksempel på Round Robin-planlægning
P1-processen kører indtil 20. Der er yderligere 33 ms tilbage. Så udføres P2. Da tidskvantemet er 20 og den nødvendige tid P2 er 17ms, vil P2 udføres i 17ms. Så P2-processen er afsluttet. Så er chancen givet til P3. Det vil køre i 20 ms. Resten er 48ms. Så vil P4 køre i 20 ms. Den har 4ms til at fuldføre den samlede proces. Igen vil P1 køre i 20 ms. Det har yderligere 13 ms til at fuldføre processen. Ændringen gives til P3. Det vil køre i 20 ms, og det har yderligere 28 ms til at afslutte fuldstændigt. P4 udfører. Den har kun 4ms. Derfor afslutter P4 udførelsen. P2 og P4 er allerede færdige. De resterende processer er P1 og P3. Chancen er givet til P3. Den havde 13 ms at gennemføre, så den fuldfører. Nu er den eneste tilbageværende proces P3. Den har 28 ms at fuldføre. Så P3 vil køre i 20ms. Resten er 8ms. Alle andre processer er allerede afsluttet. Derfor vil resten af 8ms af P3 køre igen. På samme måde får hver proces en chance for at udføre.
Hvad er ikke-forebyggende planlægning i OS?
Først til mølle-planlægning (FCFS) kan tages som et eksempel på ikke-forebyggende planlægning. Processen, der anmoder først, tildeles CPU'en først. Denne planlægning administreres nemt af køen First In First Out (FIFO). Hvis der er processer kom i rækkefølge som P1, P2 og P3, så er chancen først givet til P1. Når det er afsluttet, vil P2 udføres. Når P2 er færdig, vil P3 køre. Antag, at der er 3 processer som P1, P2 og P3 med CPU bursttider i millisekunder som følger.
Figur 02: Eksempel på FCFS-planlægning
I henhold til ovenstående vil P1 udføres. Når den er afsluttet, udføres processen P2 i 3ms. Nu er den resterende proces P3. Så vil det udføres. Ventetiden for P1 er nul. Processen P2 måtte vente 24ms, og processen P3 måtte vente 27ms. Hvis processerne ankom i rækkefølgen P2, P3 og P1, afsluttes P2 først. Næste P3 afsluttes, og til sidst vil P1 fuldføres.
Hvad er ligheden mellem forebyggende og ikke-forebyggende planlægning i OS?
Både forebyggende og ikke-forebyggende planlægning i OS er mekanismer til at planlægge processer i en computer
Hvad er forskellen mellem forebyggende og ikke-forebyggende planlægning i OS?
forebyggende vs ikke-forebyggende planlægning i OS |
|
Den forebyggende planlægning er procesplanlægningsmekanismen, hvorigennem en proces kan afbrydes af en anden proces midt i dens udførelse. | Den ikke-forebyggende planlægning er procesplanlægningsmekanismen, hvorigennem én proces først starter eksekvering, efter at den forrige proces er afsluttet. |
Procesafbrydelse | |
I forebyggende planlægning kan processerne afbrydes. | I ikke-forebyggende planlægning kan processerne afbrydes. |
CPU-udnyttelse | |
I forebyggende planlægning er CPU-udnyttelsen højere end ikke-forebyggende planlægning. | I ikke-forebyggende planlægning er CPU-udnyttelsen minimum sammenlignet med forebyggende planlægning. |
Fleksibilitet | |
Forebyggende planlægning er fleksibel. | Ikke-forebyggende planlægning er ikke fleksibel. |
Oversigt – forebyggende vs ikke-forebyggende planlægning i OS
Der er flere processer, der kører på en computer. Når hver proces udføres, allokeres CPU'en til den specifikke proces. Nogle gange er det nødvendigt at stoppe udførelsen af den aktuelle proces og at prioritere en anden proces. Processer planlægningsmekanismer kan være forebyggende eller ikke-forebyggende. Den præemptive planlægning er procesplanlægningsmekanismen, hvorigennem processen kan afbrydes af en anden proces midt i dens udførelse. Den ikke-forebyggende planlægning er procesplanlægningsmekanismen, selvom den ene proces først starter eksekvering, efter at den forrige proces er afsluttet. Dette er forskellen mellem forebyggende og ikke-forebyggende planlægning i OS.
Download PDF'en af Preemptive vs Nonpreemptive Scheduling i OS
Du kan downloade PDF-versionen af denne artikel og bruge den til offline-formål i henhold til citatnotat. Download venligst PDF-versionen her: Difference Between Preemptive and Nonpreemptive Scheduling in OS