Prioriterad schemaläggningsalgoritm: Preemptiv, icke-preemptiv
⥠Smart sammanfattning
Prioritetsschemaläggning är en CPU-schemaläggningsmetod som väljer processer baserat pü prioritet, och kÜr uppgifter med hÜgre prioritet fÜrst. Den kan vara preemptiv eller icke-preemptiv, och processer med samma prioritet hanteras enligt principen fÜrst till kvarn eller runda-robin.

Vad är prioriteringsplanering?
Prioritetsschemaläggning är en metod fÜr att schemalägga processer som är baserad pü prioritet. I den här algoritmen väljer schemaläggaren de uppgifter som ska fungera enligt prioritet.
Processerna med hĂśgre prioritet bĂśr utfĂśras fĂśrst, medan jobb med lika prioritet utfĂśrs pĂĽ rundgĂĽngs- eller FCFS-basis. Prioriteten beror pĂĽ minneskrav, tidskrav etc.
Typer av prioriteringsplanering
Prioriterad schemaläggning är indelad i tvü huvudtyper:
FÜrebyggande schemaläggning
I fÜrebyggande schemaläggning tilldelas uppgifterna oftast med sina prioriteringar. Ibland är det viktigt att kÜra en uppgift med hÜgre prioritet fÜre en annan lägre prioriterad uppgift, även om den lägre prioriterade uppgiften fortfarande kÜrs. Uppgiften med lägre prioritet hüller i sig en tid och üterupptas när den hÜgre prioriterade uppgiften slutfÜrs.
Icke-fÜrebyggande schemaläggning
I den här typen av schemaläggningsmetod har processorn allokerats till en specifik process. Processen som hüller processorn upptagen frigÜr processorn antingen genom att byta kontext eller avsluta. Det är den enda metoden som kan användas fÜr olika hürdvaruplattformar. Det beror pü att den inte behÜver speciell hürdvara (till exempel en timer) som vid preemptiv schemaläggning.
Egenskaper fĂśr prioriteringsplanering
- En CPU-algoritm som schemalägger processer baserat pü prioritet.
- Det används i Operasystem fÜr att utfÜra batchprocesser.
- Om tvĂĽ jobb med samma prioritet är REDO fungerar det pĂĽ en FĂRST TILL KVARN basis.
- I prioriteringsschemaläggning tilldelas ett nummer till varje process som anger dess prioritetsnivü.
- Ju lägre siffra, desto hÜgre prioritet.
- I den här typen av schemaläggningsalgoritm, om en nyare process anländer som har hÜgre prioritet än den process som fÜr närvarande kÜrs, sü fÜregrips den process som fÜr närvarande kÜrs.
Exempel pĂĽ prioriteringsplanering
Betrakta fĂśljande fem processer P1 till P5. Varje process har sin unika prioritet, bursttid och ankomsttid.
| Behandla | Budget | Sprängtid | Ankomst tid |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 3 | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Steg 0) Vid tidpunkten 0 anländer process P1 och P2. P1 har hÜgre prioritet än P2. Exekveringen bÜrjar med process P1, som har bursttid 4.
Steg 1) Vid tidpunkten 1 anländer ingen ny process. Exekveringen fortsätter med P1.
Steg 2) Vid tidpunkt 2 kommer ingen ny process, sü du kan fortsätta med P1. P2 stür i väntekÜ.
Steg 3) Vid tidpunkt 3 anländer ingen ny process, sü du kan fortsätta med P1. P2-processen stür fortfarande i väntekÜn.
Steg 4) Vid tidpunkt 4 har P1 avslutat sin exekvering. P2 bĂśrjar kĂśras.
Steg 5) Vid tidpunkt = 5 anländer ingen ny process, sü vi fortsätter med P2.
Steg 6) Vid tidpunkten 6 anländer P3. P3 har hÜgre prioritet (1) jämfÜrt med P2 som har prioritet (2). P2 fÜrbehülls och P3 pübÜrjar sin exekvering.
| Behandla | Budget | Sprängtid | Ankomst tid |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 av 3 väntande | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Steg 7) Vid tidpunkt 7 anländer ingen ny process, sü vi fortsätter med P3. P2 stür i väntekÜn.
Steg 8) Vid tidpunkten = 8 anländer ingen ny process, sü vi kan fortsätta med P3.
Steg 9) Vid tidpunkten = 9 kommer ingen ny process, sü vi kan fortsätta med P3.
Steg 10) Vid tidsintervall 10 kommer ingen ny process, sü vi fortsätter med P3.
Steg 11) Vid tidpunkten 11 anländer P4 med prioritet 4. P3 har hÜgre prioritet, sü den fortsätter sin exekvering.
| Behandla | Budget | Sprängtid | Ankomst tid |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 av 3 väntande | 0 |
| P3 | 1 | 2 av 7 väntande | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Steg 12) Vid tidpunkten 12 anländer P5. P3 har hÜgre prioritet, sü den fortsätter kÜrningen.
Steg 13) Vid tidpunkten 13 slutfÜr P3 exekveringen. Vi har P2, P4 och P5 i redokÜn. P2 och P5 har samma prioritet. P2:s ankomsttid är fÜre P5, sü P2 bÜrjar exekveringen.
| Behandla | Budget | Sprängtid | Ankomst tid |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 av 3 väntande | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Steg 14) Vid tidpunkten 14 har P2-processen avslutat sin exekvering. P4 och P5 är i vänteläge. P5 har hÜgsta prioritet och startar exekveringen.
Steg 15) Vid tidpunkten 15 fortsätter P5 kÜrningen.
Steg 16) Vid tidpunkten 16 är P5 klar med sin exekvering. P4 är den enda processen som üterstür. Den startar exekveringen.
Steg 17) Vid tidpunkten 20 har P4 slutfĂśrt exekveringen och ingen process finns kvar.
Steg 18) Lüt oss beräkna den genomsnittliga väntetiden fÜr exemplet ovan.
Väntetid = starttid â ankomsttid + väntetid fĂśr nästa skur
P1 = 0 - 0 = 0 P2 = 4 - 0 + 7 = 11 P3 = 6 - 6 = 0 P4 = 16 - 11 = 5 Average Waiting time = (0 + 11 + 0 + 5 + 2)/5 = 18/5 = 3.6
FÜrdelar med prioriterad schemaläggning
Här är fÜrdelarna/fÜrdelarna med att använda prioriterad schemaläggningsmetod:
- Lättanvänd schemaläggningsmetod.
- Processer exekveras baserat pü prioritet, sü hÜg prioritet behÜver inte vänta länge, vilket sparar tid.
- Denna metod erbjuder en bra mekanism där den relativa betydelsen av varje process kan definieras exakt.
- Lämplig fÜr applikationer med varierande tids- och resurskrav.
Nackdelar med prioriteringsschemaläggning
Här är nackdelarna/nackdelarna med prioriterad schemaläggning:
- Om systemet sĂĽ smĂĽningom kraschar gĂĽr alla lĂĽgprioriterade processer fĂśrlorade.
- Om hÜgprioriterade processer tar mycket CPU-tid, kan de lägre prioriterade processerna svälta och kommer att skjutas upp pü obestämd tid.
- Denna schemaläggningsalgoritm kan lüta vissa lügprioriterade processer vänta pü obestämd tid.
- En process kommer att blockeras när den är redo att kÜras men müste vänta pü CPU:n eftersom nügon annan process kÜrs just nu.
- Om en ny process med hÜgre prioritet fortsätter att komma i klarkÜn, kan processen som är i vänteläge behÜva vänta under en lüng tid.


















