CPU-planlægning Algorithms in Operating Systemer

Hvad er CPU-planlægning?

CPU-planlægning er en proces til at bestemme, hvilken proces der skal eje CPU til udførelse, mens en anden proces er i venteposition. Hovedopgaven med CPU-planlægning er at sikre, at når CPU'en forbliver inaktiv, vælger operativsystemet i det mindste en af ​​de tilgængelige processer i klarkøen til udførelse. Udvælgelsesprocessen vil blive udført af CPU-planlæggeren. Den vælger en af ​​de processer i hukommelsen, der er klar til udførelse.

Typer af CPU-planlægning

Her er to slags planlægningsmetoder:

Typer af CPU-planlægning

Forebyggende planlægning

I Preemptive Scheduling er opgaverne for det meste tildelt deres prioriteter. Nogle gange er det vigtigt at køre en opgave med en højere prioritet før en anden lavere prioritet opgave, selvom den lavere prioriterede opgave stadig kører. Opgaven med lavere prioritet holder i nogen tid og genoptages, når opgaven med højere prioritet afslutter sin udførelse.

Ikke-forebyggende planlægning

I denne type planlægningsmetode er CPU'en blevet allokeret til en specifik proces. Processen, der holder CPU'en optaget, frigiver CPU'en enten ved at skifte kontekst eller afslutte. Det er den eneste metode, der kan bruges til forskellige hardwareplatforme. Det er fordi det ikke har brug for speciel hardware (for eksempel en timer) som forebyggende planlægning.

Hvornår er planlægning forebyggende eller ikke-forebyggende?

For at afgøre, om planlægning er forebyggende eller ikke-forebyggende, skal du overveje disse fire parametre:

  1. En proces skifter fra kørende til ventetilstand.
  2. Specifik proces skifter fra køretilstand til klartilstand.
  3. Specifik proces skifter fra ventetilstand til klartilstand.
  4. Processen afsluttede sin udførelse og afsluttede.

Kun betingelser 1 og 4 gælder, planlægningen kaldes ikke-præventive.

Al anden planlægning er forebyggende.

Vigtige CPU-planlægningsterminologier

  • Burst-tid/udførelsestid: Det er en tid, der kræves af processen at fuldføre eksekveringen. Det kaldes også løbetid.
  • Ankomsttid: når en proces går ind i en klar tilstand
  • Sluttid: når processen afsluttes og afsluttes fra et system
  • Multiprogrammering: En række programmer, som kan være til stede i hukommelsen på samme tid.
  • Jobs: Det er en type program uden nogen form for brugerinteraktion.
  • Bruger: Det er en slags program med brugerinteraktion.
  • Proces: Det er referencen, der bruges til både job og bruger.
  • CPU/IO burst cyklus: Karakteriserer procesudførelse, som veksler mellem CPU- og I/O-aktivitet. CPU-tider er normalt kortere end I/O-tiden.

CPU-planlægningskriterier

En CPU-planlægningsalgoritme forsøger at maksimere og minimere følgende:

CPU-planlægningskriterier

Maksimer

CPU-udnyttelse:CPU-udnyttelse er hovedopgaven, hvor operativsystemet skal sørge for, at CPU forbliver så travlt som muligt. Det kan variere fra 0 til 100 procent. For RTOS kan det dog variere fra 40 procent for lavt niveau og 90 procent for højt niveau.

gennemløb: Antallet af processer, der afslutter deres udførelse pr. tidsenhed, er kendt gennemløb. Så når CPU'en har travlt med at udføre processen, på det tidspunkt, arbejdes der, og det udførte arbejde pr. tidsenhed kaldes gennemløb.

Minimer

Ventetid: Ventetid er et beløb, som specifik proces skal vente i klarkøen.

Responstid: Det er et tidsrum, hvori anmodningen blev indgivet, indtil det første svar er produceret.

Vendetid: Ekspeditionstid er en mængde tid til at udføre en bestemt proces. Det er beregningen af ​​den samlede tid brugt på at vente på at komme ind i hukommelsen, vente i køen og udføre på CPU'en. Perioden mellem tidspunktet for indsendelse af processen til færdiggørelsestidspunktet er ekspeditionstiden.

Intervaltimer

Timerafbrydelse er en metode, der er tæt forbundet med forkøbsret. Når en bestemt proces får CPU-allokeringen, kan en timer indstilles til et specificeret interval. Både timerafbrydelse og præemption tvinger en proces til at returnere CPU'en, før dens CPU-burst er færdig.

Det meste af det multiprogrammerede operativsystem bruger en form for en timer for at forhindre en proces i at binde systemet for evigt.

Hvad er Dispatcher?

Det er et modul, der giver kontrol over CPU'en til processen. Dispatcheren skal være hurtig, så den kan køre på alle kontekstskifter. Afsendelsesforsinkelse er den tid, som CPU-planlæggeren kræver for at stoppe en proces og starte en anden.

Funktioner udført af dispatcher:

  • Kontekstskift
  • Skift til brugertilstand
  • Flytning til den korrekte placering i det nyligt indlæste program.

Typer af CPU-planlægningsalgoritme

Der er hovedsageligt seks typer procesplanlægningsalgoritmer

  1. Først til mølle (FCFS)
  2. Shortest-Job-First (SJF) planlægning
  3. Korteste resterende tid
  4. Prioritetsplanlægning
  5. Runde Robin Planlægning
  6. Køplanlægning på flere niveauer
Planlægning Algorithms
Planlægning Algorithms

Først til mølle

Først til mølle er den fulde form for FCFS. Det er den nemmeste og mest enkle CPU-planlægningsalgoritme. I denne type algoritme får den proces, der anmoder CPU'en, CPU-allokeringen først. Denne planlægningsmetode kan administreres med en FIFO-kø.

Når processen kommer ind i klarkøen, er dens PCB (Process Control Block) forbundet med køens ende. Så når CPU'en bliver fri, skal den tildeles processen i begyndelsen af ​​køen.

Karakteristika for FCFS-metoden

  • Det tilbyder ikke-forebyggende og forebyggende planlægningsalgoritme.
  • Opgaver udføres altid efter først-til-mølle-princippet
  • Det er nemt at implementere og bruge.
  • Denne metode er dog dårlig i ydeevne, og den generelle ventetid er ret høj.

Korteste resterende tid

Den fulde form for SRT er Korteste resterende tid. Det er også kendt som SJF forebyggende planlægning. I denne metode vil processen blive allokeret til opgaven, som er tættest på dens afslutning. Denne metode forhindrer en nyere klar tilstandsproces i at holde færdiggørelsen af ​​en ældre proces.

Karakteristika for SRT-planlægningsmetoden

  • Denne metode anvendes for det meste i batch-miljøer, hvor korte job skal gives præference.
  • Dette er ikke en ideel metode til at implementere det i et delt system, hvor den nødvendige CPU-tid er ukendt.
  • Tilknyt hver proces som længden af ​​dens næste CPU burst. Så det operativsystem bruger disse længder, hvilket hjælper med at planlægge processen med kortest mulig tid.

Prioritetsbaseret planlægning

Prioritetsplanlægning er en metode til at planlægge processer baseret på prioritet. I denne metode vælger planlæggeren de opgaver, der skal fungere efter prioritet.

Prioritetsplanlægning hjælper også OS med at involvere prioriterede opgaver. Processerne med højere prioritet bør udføres først, hvorimod job med lige prioritet udføres på round-robin eller FCFS-basis. Prioritet kan besluttes ud fra hukommelseskrav, tidskrav mv.

Round-Robin planlægning

Round robin er den ældste, enkleste planlægningsalgoritme. Navnet på denne algoritme kommer fra round-robin-princippet, hvor hver person får en lige del af noget på skift. Det bruges mest til at planlægge algoritmer i multitasking. Denne algoritme metode hjælper til sultfri udførelse af processer.

Karakteristika for Round-Robin-planlægning

  • Round robin er en hybridmodel, som er urdrevet
  • Tidsudsnit skal være minimum, som er tildelt til en specifik opgave, der skal behandles. Det kan dog variere for forskellige processer.
  • Det er et realtidssystem, som reagerer på hændelsen inden for en bestemt tidsfrist.

Korteste job først

SJF er en fuld form af (Korteste job først) er en planlægningsalgoritme, hvor processen med den korteste eksekveringstid skal vælges til udførelse næste gang. Denne planlægningsmetode kan være forebyggende eller ikke-forebyggende. Det reducerer den gennemsnitlige ventetid markant for andre processer, der afventer eksekvering.

Karakteristika for SJF-planlægning

  • Det er knyttet til hvert job som en tidsenhed, der skal udføres.
  • I denne metode, når CPU'en er tilgængelig, vil den næste proces eller job med den korteste færdiggørelsestid blive udført først.
  • Det er implementeret med ikke-forebyggende politik.
  • Denne algoritmemetode er nyttig til batch-typebehandling, hvor det ikke er kritisk at vente på, at jobs fuldføres.
  • Det forbedrer joboutput ved at tilbyde kortere job, som skal udføres først, som for det meste har en kortere ekspeditionstid.

Planlægning af køer på flere niveauer

Denne algoritme adskiller klarkøen i forskellige separate køer. I denne metode tildeles processer til en kø baseret på en specifik egenskab ved processen, såsom procesprioriteten, størrelsen af ​​hukommelsen osv.

Dette er dog ikke en uafhængig planlægnings-OS-algoritme, da den skal bruge andre typer algoritmer for at planlægge opgaverne.

Karakteristisk for planlægning af køer på flere niveauer

  • Der bør opretholdes flere køer for processer med nogle karakteristika.
  • Hver kø kan have sine separate planlægningsalgoritmer.
  • Der gives prioritet for hver kø.

Formålet med en planlægningsalgoritme

Her er grundene til at bruge en planlægningsalgoritme:

  • CPU'en bruger planlægning til at forbedre effektiviteten.
  • Det hjælper dig med at allokere ressourcer mellem konkurrerende processer.
  • Den maksimale udnyttelse af CPU kan opnås med multi-programmering.
  • De processer, der skal udføres, er i klar kø.

Resumé

  • CPU-planlægning er en proces til at bestemme, hvilken proces der skal eje CPU til udførelse, mens en anden proces er i venteposition.
  • I Preemptive Scheduling er opgaverne for det meste tildelt deres prioriteter.
  • I den ikke-forebyggende planlægningsmetode er CPU'en blevet allokeret til en specifik proces.
  • Bursttiden er den tid, det tager for processen at fuldføre eksekveringen. Det kaldes også løbetid.
  • CPU-udnyttelse er hovedopgaven, hvor operativsystemet skal sikre, at CPU'en forbliver så travlt som muligt.
  • Antallet af processer, der afslutter deres udførelse pr. tidsenhed, er kendt gennemløb.
  • Ventetid er et beløb, som en bestemt proces skal vente i klarkøen.
  • Det er den tid, hvori anmodningen blev sendt, indtil det første svar er produceret.
  • Ekspeditionstid er mængden af ​​tid til at udføre en bestemt proces.
  • Timerafbrydelse er en metode, der er tæt forbundet med forkøbsret.
  • En dispatcher er et modul, der giver styring af CPU'en til processen.
  • Seks typer af procesplanlægningsalgoritmer er: Først til mølle (FCFS), 2) Shortest-Job-First (SJF) planlægning, 3) korteste resterende tid, 4) prioritetsplanlægning, 5) Round Robin-planlægning, 6) flerniveaukøplanlægning .
  • I Først til mølle-metoden, den proces, der anmoder CPU'en, får CPU-allokeringen først.
  • På den kortest tilbageværende tid vil processen blive allokeret til den opgave, der er tættest på dens afslutning.
  • I prioritetsplanlægning vælger planlæggeren de opgaver, der skal fungere efter prioritet.
  • Round robin planlægning arbejder ud fra princippet, hvor hver person får en lige del af noget på skift.
  • I det korteste job først, skal den korteste udførelsestid vælges til udførelse næste.
  • Multilevel planlægningsmetoden adskiller klarkøen i forskellige separate køer. I denne metode tildeles processer til en kø baseret på en specifik egenskab.
  • CPU'en bruger planlægning til at forbedre effektiviteten.