Preventieve versus niet-preventieve planning: belangrijkste verschillen

Wat is preventieve planning?

Preventieve planning is een planningsmethode waarbij de taken meestal worden toegewezen met hun prioriteiten. Soms is het belangrijk om een ​​taak met een hogere prioriteit uit te voeren vóór een andere taak met een lagere prioriteit, zelfs als de taak met een lagere prioriteit nog steeds wordt uitgevoerd.

Op dat moment blijft de taak met lagere prioriteit enige tijd bestaan ​​en wordt hervat wanneer de taak met hogere prioriteit de uitvoering ervan heeft voltooid.

In deze handleiding voor het besturingssysteem leert u:

  • Wat is preventieve planning?
  • Wat is niet-preventieve planning?
  • Verschil tussen preventieve en niet-preventieve planning in OS
  • Voordelen van preventieve planning
  • Voordelen van niet-preventieve planning
  • Nadelen van preventieve planning
  • Nadelen van niet-preventieve planning
  • Voorbeeld van niet-preventieve planning
  • Voorbeeld van preventieve planning

Wat is niet-preventieve planning?

Bij dit type planningsmethode is de CPU toegewezen aan een specifiek proces. Het proces dat de CPU bezig houdt, zal de CPU vrijgeven door van context te wisselen of te beëindigen.

Het is de enige methode die voor verschillende hardwareplatforms kan worden gebruikt. Dat komt omdat het geen gespecialiseerde hardware nodig heeft (bijvoorbeeld een timer) zoals preventieve planning.

Niet-preventieve planning vindt plaats wanneer een proces vrijwillig in de wachttoestand komt of wordt beëindigd.

Verschil tussen preventieve en niet-preventieve planning in OS

Hier zijn preventieve en niet-preventieve planning in OS

Preventieve planning Niet-preventieve planning
Een processor kan worden voorbereid om de verschillende processen uit te voeren tijdens een lopende procesuitvoering. Zodra de processor met de uitvoering begint, moet deze deze voltooien voordat de andere wordt uitgevoerd. Het kan niet in het midden worden gepauzeerd.
CPU-gebruik is efficiënter in vergelijking met niet-preventieve planning. CPU-gebruik is minder efficiënt in vergelijking met preventieve planning.
De wachttijd en responstijd van preventieve planning is korter. De wacht- en responstijd van de niet-preventieve planningsmethode is hoger.
Preventieve planning heeft prioriteit. Het proces met de hoogste prioriteit is een proces dat momenteel wordt gebruikt. Wanneer een proces de status van lopend binnengaat, wordt de status van dat proces nooit uit de planner verwijderd totdat het zijn taak heeft voltooid.
Preventieve planning is flexibel. Niet-preventieve planning is rigide.
Voorbeelden: - Kortste resterende tijd eerst, Round Robin, etc. Voorbeelden: wie het eerst komt, het eerst maalt, de kortste taak eerst, prioriteitsplanning, enz.
Preemptive Scheduling-algoritme kan worden voorkomen, dat wil zeggen dat het proces kan worden gepland In niet-preventieve planning kan het proces niet worden gepland
In dit proces wordt de CPU voor een bepaalde tijdsperiode aan de processen toegewezen. In dit proces wordt de CPU aan het proces toegewezen totdat het eindigt of overschakelt naar de wachttoestand.
Preventief algoritme heeft de overhead van het omschakelen van het proces van de gereedstatus naar de actieve toestand en vice versa. Niet-preventieve planning heeft niet de overhead van het overschakelen van het proces naar de gereedstatus.

Voordelen van preventieve planning

Hier zijn de voor- / voordelen van de preventieve planningsmethode:

  • Preventieve planningsmethode is robuuster, zodat één proces de CPU niet kan monopoliseren
  • Keuze van lopende taak heroverwogen na elke onderbreking.
  • Elke gebeurtenis veroorzaakt een onderbreking van lopende taken
  • Het besturingssysteem zorgt ervoor dat het CPU-gebruik hetzelfde is bij alle lopende processen.
  • Hierin is het gebruik van de CPU hetzelfde, dwz alle actieve processen zullen evenveel gebruik maken van de CPU.
  • Deze planningsmethode improviseert ook de gemiddelde reactietijd.
  • Preemptive Scheduling is nuttig wanneer we het gebruiken voor de multi-programmeeromgeving.

Voordelen van niet-preventieve planning

Hier zijn de voor- / voordelen van de niet-preventieve planningsmethode:

  • Biedt lage planningsoverhead
  • Heeft de neiging om een ​​hoge doorvoer te bieden
  • Het is conceptueel zeer eenvoudige methode
  • Minder rekenkracht nodig voor planning

Nadelen van preventieve planning

Hier zijn de nadelen / nadeel van de preventieve planningsmethode:

  • Beperkte rekenkracht nodig voor planning
  • Het kost de planner meer tijd om de lopende taak op te schorten, de context te wisselen en de nieuwe inkomende taak te verzenden.
  • Het proces met lage prioriteit moet langer wachten als er continu processen met hoge prioriteit arriveren.

Nadelen van niet-preventieve planning

Hier zijn de nadelen / nadeel van de niet-preventieve planningsmethode:

  • Het kan tot uithongering leiden, vooral voor die realtime taken
  • Bugs kunnen ervoor zorgen dat een machine vastloopt
  • Het kan realtime en prioriteitsplanning moeilijk maken
  • Slechte reactietijd voor processen

Voorbeeld van niet-preventieve planning

Bij niet-preventieve SJF-planning, zodra de CPU-cyclus is toegewezen om te verwerken, houdt het proces deze vast totdat het een wachttoestand bereikt of wordt beëindigd.

Beschouw de volgende vijf processen die elk hun eigen unieke burst-tijd en aankomsttijd hebben.

Wachtrij verwerken Burst-tijd Aankomsttijd
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Stap 0) Op tijd = 0 arriveert P4 en begint de uitvoering.

Stap 1) Op tijd = 1 arriveert proces P3. Maar P4 heeft nog steeds 2 uitvoeringseenheden nodig om te voltooien. Het zal doorgaan met de uitvoering.

Stap 2) Op tijd = 2 arriveert proces P1 en wordt toegevoegd aan de wachtrij. P4 gaat door met de uitvoering.

Stap 3) Op tijd = 3, zal proces P4 zijn uitvoering beëindigen. De burst-tijd van P3 en P1 wordt vergeleken. Proces P1 wordt uitgevoerd omdat de burst-tijd korter is in vergelijking met P3.

Stap 4) Op tijd = 4 arriveert proces P5 en wordt toegevoegd aan de wachtrij. P1 gaat door met de uitvoering.

Stap 5) Op tijd = 5 arriveert proces P2 en wordt toegevoegd aan de wachtrij. P1 gaat door met de uitvoering.

Stap 6) Op tijd = 9, zal proces P1 zijn uitvoering beëindigen. De burst-tijd van P3, P5 en P2 wordt vergeleken. Proces P2 wordt uitgevoerd omdat de burst-tijd de laagste is.

Stap 7) Op tijd = 10, wordt P2 uitgevoerd en staan ​​P3 en P5 in de wachtrij.

Stap 8) Op tijd = 11, zal proces P2 zijn uitvoering beëindigen. De burst-tijd van P3 en P5 wordt vergeleken. Proces P5 wordt uitgevoerd omdat de burst-tijd korter is.

Stap 9) Op tijd = 15 zal proces P5 zijn uitvoering beëindigen.

Stap 10) Op tijd = 23, zal proces P3 zijn uitvoering beëindigen.

Stap 11) Laten we de gemiddelde wachttijd voor bovenstaand voorbeeld berekenen.

Wait timeP4= 0-0=0P1= 3-2=1P2= 9-5=4P5= 11-4=7P3= 15-1=14Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2

Voorbeeld van preventieve planning

Beschouw dit na drie processen in Round-robin

Wachtrij verwerken Burst-tijd
P1 4
P2 3
P3 5

Stap 1) De uitvoering begint met proces P1, dat burst-tijd 4 heeft. Hier wordt elk proces gedurende 2 seconden uitgevoerd. P2 en P3 staan ​​nog in de wachtrij.

Stap 2 ) Op tijd = 2 wordt P1 toegevoegd aan het einde van de wachtrij en begint P2 met uitvoeren

Stap 3) Op tijd = 4 wordt P2 overbodig gemaakt en aan het einde van de wachtrij toegevoegd. P3 begint met uitvoeren.

Stap 4) Op tijd = 6 wordt P3 overbodig gemaakt en aan het einde van de wachtrij toegevoegd. P1 begint met uitvoeren.

Stap 5) Op tijd = 8 heeft P1 een burst-tijd van 4. De uitvoering is voltooid. P2 begint met de uitvoering

Stap 6) P2 heeft een burst-tijd van 3. Het is al uitgevoerd voor 2 intervallen. Op tijd = 9 voltooit P2 de uitvoering. Vervolgens begint P3 met de uitvoering totdat deze is voltooid.

Stap 7) Laten we de gemiddelde wachttijd voor bovenstaand voorbeeld berekenen.

Wait timeP1= 0+ 4= 4P2= 2+4= 6P3= 4+3= 7

BELANGRIJKSTE VERSCHILLEN

  • Bij preventieve planning wordt de CPU toegewezen aan de processen voor een specifieke tijdsperiode en wordt de niet-preventieve planning CPU toegewezen aan het proces totdat het wordt beëindigd.
  • Bij preventieve planning worden taken omgeschakeld op basis van prioriteit, terwijl bij niet-preventieve planning geen omschakeling plaatsvindt.
  • Preventief algoritme heeft de overhead van het overschakelen van het proces van de gereedstatus naar de actieve toestand, terwijl niet-preventieve planning geen dergelijke overschakelingsoverhead heeft.
  • Preventieve planning is flexibel, terwijl niet-preventieve planning rigide is.

Interessante artikelen...