Prioritetsplanleggingsalgoritme: Preemptiv, ikke-preemptiv

โšก Smart oppsummering

Prioritetsplanlegging er en CPU-planleggingsmetode som velger prosesser basert pรฅ prioritet, og kjรธrer oppgaver med hรธyere prioritet fรธrst. Den kan vรฆre preemptiv eller ikke-preemptiv, og prosesser med lik prioritet hรฅndteres etter fรธrst til mรธlla-prinsippet eller etter runde-robin-prinsippet.

  • ๐ŸŽฏ Definisjon: Prosesser er planlagt etter prioritet, med oppgaver med hรธyere prioritet utfรธrt fรธr oppgaver med lavere prioritet.
  • ๐Ÿ”ข Prioritetsnummer: Et lavere tall betyr vanligvis hรธyere prioritet.
  • โธ๏ธ Forebyggende: En ankomst med hรธyere prioritet kan avbryte en prosess med lavere prioritet som for รธyeblikket kjรธrer.
  • โ–ถ ๏ธ Ikke-preemptiv: Den kjรธrende prosessen beholder CPU-en til den avsluttes eller bytter kontekst.
  • โœ… Fordel: Viktige prosesser kjรธrer raskt, og samsvarer med den relative viktigheten i forhold til CPU-tiden.
  • โš ๏ธ Ulempe: Lavprioriterte prosesser kan sulte og vente pรฅ ubestemt tid.

Algoritme for prioriteringsplanlegging

Hva er prioritert planlegging?

Prioritetsplanlegging er en metode for รฅ planlegge prosesser som er basert pรฅ prioritering. I denne algoritmen velger planleggeren oppgavene som skal fungere i henhold til prioritet.

Prosessene med hรธyere prioritet bรธr utfรธres fรธrst, mens jobber med lik prioritering utfรธres pรฅ rundkjรธrings- eller FCFS-basis. Prioritet avhenger av minnekrav, tidskrav osv.

Typer prioritert planlegging

Prioritert planlegging er delt inn i to hovedtyper:

Forebyggende planlegging

I Preemptive Scheduling er oppgavene stort sett tildelt deres prioriteringer. Noen ganger er det viktig รฅ kjรธre en oppgave med hรธyere prioritet fรธr en annen lavere prioritet oppgave, selv om den lavere prioriterte oppgaven fortsatt kjรธrer. Den lavere prioriterte oppgaven varer i en stund og fortsetter nรฅr den hรธyere prioriterte oppgaven er ferdig.

Ikke-forebyggende planlegging

I denne typen planleggingsmetode er CPU-en allokert til en spesifikk prosess. Prosessen som holder CPU-en opptatt, frigjรธr CPU-en enten ved รฅ bytte kontekst eller avslutte. Det er den eneste metoden som kan brukes for ulike maskinvareplattformer. Det er fordi den ikke trenger spesiell maskinvare (for eksempel en timer) slik som preemptiv planlegging.

Kjennetegn ved prioriteringsplanlegging

  • En CPU-algoritme som planlegger prosesser basert pรฅ prioritet.
  • Det er brukt i Operasystemer for รฅ utfรธre batch-prosesser.
  • Hvis to jobber med samme prioritet er KLAR, fungerer det pรฅ en Fร˜RSTEMANN TIL Mร˜LLA basis.
  • Ved prioriteringsplanlegging tildeles et nummer til hver prosess som angir prioritetsnivรฅet.
  • Jo lavere tallet er, desto hรธyere er prioriteten.
  • I denne typen planleggingsalgoritme, hvis en nyere prosess ankommer som har hรธyere prioritet enn den prosessen som kjรธrer for รธyeblikket, blir den prosessen som kjรธrer foregrepet.

Eksempel pรฅ prioritert planlegging

Tenk pรฅ de fรธlgende fem prosessene P1 til P5. Hver prosess har sin unike prioritet, burst-tid og ankomsttid.

Prosess Prioritet Sprengtid Ankomsttid
P1 1 4 0
P2 2 3 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Trinn 0) Ved tid = 0 ankommer prosess P1 og P2. P1 har hรธyere prioritet enn P2. Utfรธrelsen begynner med prosess P1, som har burst-tid 4.

Prioritetsplanlegging

Trinn 1) Ved tid = 1, ankommer ingen ny prosess. Utfรธrelsen fortsetter med P1.

Prioritetsplanlegging

Trinn 2) Ved tidspunkt 2 kommer ingen ny prosess, sรฅ du kan fortsette med P1. P2 stรฅr i ventekรธ.

Prioritetsplanlegging

Trinn 3) Ved tidspunkt 3 ankommer ingen ny prosess, sรฅ du kan fortsette med P1. P2-prosessen stรฅr fortsatt i ventekรธen.

Prioritetsplanlegging

Trinn 4) Pรฅ tid 4 har P1 avsluttet sin utfรธrelse. P2 starter utfรธrelse.

Prioritetsplanlegging

Trinn 5) Ved tid = 5 ankommer ingen ny prosess, sรฅ vi fortsetter med P2.

Prioritetsplanlegging

Trinn 6) Ved tid = 6 ankommer P3. P3 har hรธyere prioritet (1) sammenlignet med P2 som har prioritet (2). P2 blir foregrepet, og P3 begynner sin utfรธrelse.

Prosess Prioritet Sprengtid Ankomsttid
P1 1 4 0
P2 2 1 av 3 venter 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Prioritetsplanlegging

Trinn 7) Ved tidspunkt 7 ankommer ingen ny prosess, sรฅ vi fortsetter med P3. P2 stรฅr i ventekรธen.

Prioritetsplanlegging

Trinn 8) Ved tid = 8 ankommer ingen ny prosess, sรฅ vi kan fortsette med P3.

Prioritetsplanlegging

Trinn 9) Ved tid = 9 kommer ingen ny prosess, sรฅ vi kan fortsette med P3.

Prioritetsplanlegging

Trinn 10) Ved tidsintervall 10 kommer ingen ny prosess, sรฅ vi fortsetter med P3.

Prioritetsplanlegging

Trinn 11) Ved tid = 11 ankommer P4 med prioritet 4. P3 har hรธyere prioritet, sรฅ den fortsetter utfรธrelsen.

Prosess Prioritet Sprengtid Ankomsttid
P1 1 4 0
P2 2 1 av 3 venter 0
P3 1 2 av 7 venter 6
P4 3 4 11
P5 2 2 12

Prioritetsplanlegging

Trinn 12) Ved tid = 12 ankommer P5. P3 har hรธyere prioritet, sรฅ den fortsetter utfรธrelsen.

Prioritetsplanlegging

Trinn 13) Ved tid = 13 fullfรธrer P3 utfรธrelsen. Vi har P2, P4 og P5 i klarkรธen. P2 og P5 har lik prioritet. Ankomsttiden til P2 er fรธr P5, sรฅ P2 starter utfรธrelsen.

Prosess Prioritet Sprengtid Ankomsttid
P1 1 4 0
P2 2 1 av 3 venter 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Prioritetsplanlegging

Trinn 14) Ved tid = 14 er P2-prosessen ferdig med utfรธrelse. P4 og P5 er i ventetilstand. P5 har hรธyest prioritet og starter utfรธrelse.

Prioritetsplanlegging

Trinn 15) Ved tid = 15 fortsetter P5 utfรธrelsen.

Prioritetsplanlegging

Trinn 16) Ved tid = 16 er P5 ferdig med utfรธrelse. P4 er den eneste prosessen som er igjen. Den starter utfรธrelse.

Prioritetsplanlegging

Trinn 17) Ved tidspunktet = 20 har P4 fullfรธrt utfรธrelsen, og ingen prosess er igjen.

Prioritetsplanlegging

Trinn 18) La oss beregne den gjennomsnittlige ventetiden for eksemplet ovenfor.

Ventetid = starttidspunkt โ€“ ankomsttid + ventetid for neste utbrudd

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

Fordeler med prioritert planlegging

Her er fordelene/profesjonene ved รฅ bruke prioritert planleggingsmetoden:

  • Enkel รฅ bruke planleggingsmetode.
  • Prosesser utfรธres pรฅ grunnlag av prioritet, slik at hรธy prioritet ikke trenger รฅ vente lenge, noe som sparer tid.
  • Denne metoden gir en god mekanisme der den relative betydningen av hver prosess kan defineres presist.
  • Egnet for applikasjoner med varierende tids- og ressursbehov.

Ulemper med prioritert planlegging

Her er ulempene/ulempene med prioritert planlegging:

  • Hvis systemet til slutt krasjer, gรฅr alle lavprioriterte prosesser tapt.
  • Hvis prosesser med hรธy prioritet tar mye CPU-tid, kan de lavere prioriterte prosessene sulte og vil bli utsatt pรฅ ubestemt tid.
  • Denne planleggingsalgoritmen kan la noen lavprioriterte prosesser vente pรฅ ubestemt tid.
  • En prosess vil bli blokkert nรฅr den er klar til รฅ kjรธre, men mรฅ vente pรฅ CPU fordi en annen prosess kjรธrer for รธyeblikket.
  • Hvis en ny prosess med hรธyere prioritet fortsetter รฅ komme i klarkรธen, kan det hende at prosessen som er i ventetilstand mรฅ vente i lang tid.

Spรธrsmรฅl og svar

Sult skjer nรฅr prosesser med lav prioritet venter pรฅ ubestemt tid fordi prosesser med hรธyere prioritet stadig dukker opp. Aldring lรธser dette ved รฅ gradvis รธke prioriteten til prosesser som har ventet lenge, slik at hver prosess til slutt kjรธrer.

I de fleste operativsystemer betyr et lavere prioritetsnummer en hรธyere prioritet. For eksempel kjรธrer en prosess med prioritet 1 fรธr en prosess med prioritet 3. Noen systemer reverserer imidlertid dette, sรฅ sjekk alltid konvensjonen som brukes.

Prioritet kan tildeles internt ved hjelp av faktorer som minnebehov, tidskrav og CPU-burst, eller eksternt av brukeren eller administratoren basert pรฅ viktighet, kostnad eller tidsfrister. Den kan vรฆre statisk (fast) eller dynamisk (endres under kjรธretid).

AI kan tildele og justere prosessprioriteringer dynamisk ved รฅ lรฆre arbeidsmengdemรธnstre og tidsfrister. Dette hjelper viktige jobber med รฅ fullfรธre i tide, samtidig som det reduserer risikoen for mangel pรฅ ressurser, forbedrer den generelle gjennomstrรธmningen og responstiden i komplekse, skiftende systemer.

Ja. AI kan overvรฅke ventetider og automatisk รธke prioriteten til prosesser med lang ventetid, noe som fungerer som smart aldring. Ved รฅ forutsi overbelastning balanserer den rettferdighet og ytelse bedre enn faste regler, slik at lavprioriterte jobber ikke blir forsinket for alltid.

Oppsummer dette innlegget med: