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.

  • 🎯 Definition: Processer schemaläggs efter prioritet, där uppgifter med hĂśgre prioritet utfĂśrs fĂśre uppgifter med lägre prioritet.
  • 🔢 Prioritetsnummer: Ett lägre nummer betyder vanligtvis hĂśgre prioritet.
  • ⏸️ FĂśrebyggande: En ankomst med hĂśgre prioritet kan avbryta en pĂĽgĂĽende process med lägre prioritet.
  • ▶ ️ Icke-fĂśrebyggande: Den pĂĽgĂĽende processen behĂĽller processorn tills den avslutas eller växlar kontext.
  • ✅ FĂśrdel: Viktiga processer kĂśrs snabbt och matchar den relativa vikten med CPU-tiden.
  • ⚠️ Nackdel: LĂĽgprioriterade processer kan svälta och vänta pĂĽ obestämd tid.

Algoritm fÜr prioritering av schemaläggning

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.

Prioritetsschemaläggning

Steg 1) Vid tidpunkten 1 anländer ingen ny process. Exekveringen fortsätter med P1.

Prioritetsschemaläggning

Steg 2) Vid tidpunkt 2 kommer ingen ny process, sü du kan fortsätta med P1. P2 stür i väntekÜ.

Prioritetsschemaläggning

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.

Prioritetsschemaläggning

Steg 4) Vid tidpunkt 4 har P1 avslutat sin exekvering. P2 bĂśrjar kĂśras.

Prioritetsschemaläggning

Steg 5) Vid tidpunkt = 5 anländer ingen ny process, sü vi fortsätter med P2.

Prioritetsschemaläggning

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

Prioritetsschemaläggning

Steg 7) Vid tidpunkt 7 anländer ingen ny process, sü vi fortsätter med P3. P2 stür i väntekÜn.

Prioritetsschemaläggning

Steg 8) Vid tidpunkten = 8 anländer ingen ny process, sü vi kan fortsätta med P3.

Prioritetsschemaläggning

Steg 9) Vid tidpunkten = 9 kommer ingen ny process, sü vi kan fortsätta med P3.

Prioritetsschemaläggning

Steg 10) Vid tidsintervall 10 kommer ingen ny process, sü vi fortsätter med P3.

Prioritetsschemaläggning

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

Prioritetsschemaläggning

Steg 12) Vid tidpunkten 12 anländer P5. P3 har hÜgre prioritet, sü den fortsätter kÜrningen.

Prioritetsschemaläggning

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

Prioritetsschemaläggning

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.

Prioritetsschemaläggning

Steg 15) Vid tidpunkten 15 fortsätter P5 kÜrningen.

Prioritetsschemaläggning

Steg 16) Vid tidpunkten 16 är P5 klar med sin exekvering. P4 är den enda processen som üterstür. Den startar exekveringen.

Prioritetsschemaläggning

Steg 17) Vid tidpunkten 20 har P4 slutfĂśrt exekveringen och ingen process finns kvar.

Prioritetsschemaläggning

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.

Vanliga frĂĽgor

Svält inträffar när processer med låg prioritet väntar i oändlighet eftersom processer med högre prioritet fortsätter att dyka upp. Åldrande löser detta genom att gradvis öka prioriteten för processer som har väntat länge, så att varje process så småningom körs.

I de flesta operativsystem innebär ett lägre prioritetsnummer en hÜgre prioritet. Till exempel kÜrs en process med prioritet 1 fÜre en process med prioritet 3. Vissa system vänder dock pü detta, sü kontrollera alltid vilken konvention som används.

Prioritet kan tilldelas internt med hjälp av faktorer som minnesbehov, tidskrav och CPU-burst, eller externt av användaren eller administratÜren baserat pü vikt, kostnad eller deadlines. Den kan vara statisk (fast) eller dynamisk (ändras vid kÜrning).

AI kan dynamiskt tilldela och justera processprioriteringar genom att lära sig arbetsbelastningsmÜnster och deadlines. Detta hjälper viktiga jobb att slutfÜras i tid samtidigt som det minskar risken fÜr uteblivna arbetsuppgifter, vilket fÜrbättrar den totala genomstrÜmningen och responsen i komplexa, fÜränderliga system.

Ja. AI kan Üvervaka väntetider och automatiskt hÜja prioriteten fÜr processer med lüng väntetid, vilket fungerar som smart üldrande. Genom att fÜrutsäga trafikstockningar balanserar den rättvisa och prestanda bättre än fasta regler, sü att lügprioriterade jobb inte fÜrsenas fÜr alltid.

Sammanfatta detta inlägg med: