CPU-planlegging Algorithms in Operating systemer
Hva er CPU-planlegging?
CPU-planlegging er en prosess for å bestemme hvilken prosess som skal eie CPU for kjøring mens en annen prosess er på vent. Hovedoppgaven med CPU-planlegging er å sørge for at når CPU-en forblir inaktiv, velger operativsystemet minst én av prosessene som er tilgjengelige i klarkøen for utførelse. Utvelgelsesprosessen vil bli utført av CPU-planleggeren. Den velger en av prosessene i minnet som er klare for utførelse.
Typer CPU-planlegging
Her er to typer planleggingsmetoder:
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 har CPU-en blitt allokert til en spesifikk prosess. Prosessen som holder CPU-en opptatt vil frigjøre 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 tidtaker) som forebyggende planlegging.
Når planlegging er forebyggende eller ikke-forebyggende?
For å finne ut om planlegging er forebyggende eller ikke-forebyggende, bør du vurdere disse fire parameterne:
- En prosess bytter fra kjørende til ventetilstand.
- Spesifikk prosess bytter fra kjøretilstand til klartilstand.
- Spesifikk prosess bytter fra ventetilstand til klartilstand.
- Prosessen fullførte utførelsen og avsluttet.
Kun vilkår 1 og 4 gjelder, planleggingen kalles ikke-preemptive.
All annen planlegging er forebyggende.
Viktige CPU-planleggingsterminologier
- Burst-tid/utførelsestid: Det er en tid som kreves av prosessen for å fullføre utførelse. Det kalles også løpetid.
- Ankomsttid: når en prosess går inn i klar tilstand
- Slutttid: når prosessen er fullført og avsluttes fra et system
- Multiprogrammering: En rekke programmer som kan være til stede i minnet samtidig.
- Arbeidsplasser: Det er en type program uten noen form for brukerinteraksjon.
- Bruker: Det er et slags program som har brukerinteraksjon.
- Prosess: Det er referansen som brukes for både jobb og bruker.
- CPU/IO-burst-syklus: Karakteriserer prosessutførelse, som veksler mellom CPU- og I/O-aktivitet. CPU-tidene er vanligvis kortere enn tiden for I/O.
CPU-planleggingskriterier
En CPU-planleggingsalgoritme prøver å maksimere og minimere følgende:
Maksimer
CPU-bruk:CPU-utnyttelse er hovedoppgaven som operativsystemet trenger for å sørge for at CPU forblir så opptatt som mulig. Det kan variere fra 0 til 100 prosent. For RTOS kan den imidlertid variere fra 40 prosent for lavt nivå og 90 prosent for høynivåsystemet.
gjennomløp: Antall prosesser som fullfører sin utførelse per tidsenhet er kjent gjennomstrømning. Så, når CPU-en er opptatt med å utføre prosessen, på det tidspunktet, blir arbeidet gjort, og arbeidet som er fullført per tidsenhet kalles gjennomstrømning.
Minimer
Ventetid: Ventetid er et beløp som spesifikk prosess må vente i klarkøen.
Responstid: Det er en tidsperiode som forespørselen ble sendt inn til det første svaret er produsert.
Vendingstid: Omløpstid er en mengde tid for å utføre en bestemt prosess. Det er beregningen av den totale tiden brukt på å vente på å komme inn i minnet, vente i køen og kjøre på CPU. Perioden mellom tidspunktet for innlevering av prosess til gjennomføringstidspunktet er behandlingstiden.
Intervalltimer
Timeravbrudd er en metode som er nært knyttet til forkjøpsrett. Når en bestemt prosess får CPU-allokeringen, kan en tidtaker settes til et spesifisert intervall. Både timeravbrudd og forhåndsavbrudd tvinger en prosess til å returnere CPU-en før CPU-utbruddet er fullført.
Det meste av det multiprogrammerte operativsystemet bruker en eller annen form for en timer for å forhindre at en prosess binder systemet for alltid.
Hva er Dispatcher?
Det er en modul som gir kontroll over CPU til prosessen. Dispatcheren skal være rask slik at den kan kjøre på hver kontekstbryter. Forsendelsesforsinkelse er hvor lang tid CPU-planleggeren trenger for å stoppe en prosess og starte en annen.
Funksjoner utført av dispatcher:
- Kontekstbytte
- Bytter til brukermodus
- Flytte til riktig plassering i det nylig lastede programmet.
Typer CPU-planleggingsalgoritme
Det er hovedsakelig seks typer prosessplanleggingsalgoritmer
- Førstemann til mølla (FCFS)
- Shortest-Job-First (SJF) planlegging
- Korteste gjenværende tid
- Prioritetsplanlegging
- Round Robin-planlegging
- Køplanlegging på flere nivåer
Første mann til mølla
Førstemann til mølla er den fullstendige formen for FCFS. Det er den enkleste og enkleste CPU-planleggingsalgoritmen. I denne typen algoritme får prosessen som ber CPU-en CPU-allokeringen først. Denne planleggingsmetoden kan administreres med en FIFO-kø.
Når prosessen går inn i klarkøen, blir dens PCB (Process Control Block) koblet til halen av køen. Så når CPU blir ledig, bør den tilordnes prosessen i begynnelsen av køen.
Kjennetegn ved FCFS-metoden
- Den tilbyr ikke-forebyggende og forebyggende planleggingsalgoritme.
- Jobbene utføres alltid etter førstemann til mølla-prinsippet
- Det er enkelt å implementere og bruke.
- Denne metoden har imidlertid dårlig ytelse, og den generelle ventetiden er ganske høy.
Korteste gjenværende tid
Den fullstendige formen for SRT er Korteste gjenværende tid. Det er også kjent som SJF forebyggende planlegging. I denne metoden vil prosessen bli allokert til oppgaven, som er nærmest fullføringen. Denne metoden forhindrer en nyere klar tilstandsprosess fra å holde fullføringen av en eldre prosess.
Kjennetegn ved SRT-planleggingsmetoden
- Denne metoden brukes for det meste i batch-miljøer der korte jobber kreves for å bli foretrukket.
- Dette er ikke en ideell metode for å implementere det i et delt system der den nødvendige CPU-tiden er ukjent.
- Tilknytt hver prosess ettersom lengden på neste CPU-utbrudd. Så det operativsystemet bruker disse lengdene, noe som bidrar til å planlegge prosessen med kortest mulig tid.
Prioritetsbasert planlegging
Prioritetsplanlegging er en metode for å planlegge prosesser basert på prioritet. I denne metoden velger planleggeren oppgavene som skal fungere i henhold til prioritet.
Prioritetsplanlegging hjelper også OS med å involvere prioriterte oppdrag. Prosessene med høyere prioritet bør utføres først, mens jobber med lik prioritet utføres på rundkjørings- eller FCFS-basis. Prioritet kan bestemmes ut fra minnekrav, tidskrav osv.
Round-Robin-planlegging
Round robin er den eldste, enkleste planleggingsalgoritmen. Navnet på denne algoritmen kommer fra round-robin-prinsippet, der hver person får en lik del av noe i sin tur. Det brukes mest for å planlegge algoritmer i multitasking. Denne algoritmemetoden hjelper til med sultfri utførelse av prosesser.
Kjennetegn ved Round-Robin-planlegging
- Round robin er en hybridmodell som er klokkedrevet
- Tidsstykket skal være minimum, som er tildelt for en spesifikk oppgave som skal behandles. Det kan imidlertid variere for ulike prosesser.
- Det er et sanntidssystem som reagerer på hendelsen innenfor en bestemt tidsgrense.
Korteste jobb først
SJF er en full form av (Korteste jobb først) er en planleggingsalgoritme der prosessen med kortest utførelsestid skal velges for utførelse neste gang. Denne planleggingsmetoden kan være forebyggende eller ikke-forebyggende. Det reduserer den gjennomsnittlige ventetiden betydelig for andre prosesser som venter på utførelse.
Kjennetegn ved SJF-planlegging
- Det er knyttet til hver jobb som en tidsenhet for å fullføre.
- I denne metoden, når CPU er tilgjengelig, vil neste prosess eller jobb med kortest fullføringstid utføres først.
- Den er implementert med ikke-forebyggende politikk.
- Denne algoritmemetoden er nyttig for batch-behandling, der det ikke er kritisk å vente på at jobbene skal fullføres.
- Det forbedrer jobbproduksjonen ved å tilby kortere jobber, som bør utføres først, som stort sett har kortere behandlingstid.
Planlegging av køer på flere nivåer
Denne algoritmen skiller klarkøen i forskjellige separate køer. I denne metoden tilordnes prosesser til en kø basert på en spesifikk egenskap til prosessen, som prosessprioritet, størrelse på minnet, etc.
Dette er imidlertid ikke en uavhengig planleggings-OS-algoritme, da den må bruke andre typer algoritmer for å planlegge jobbene.
Karakteristisk for planlegging av køer på flere nivåer
- Flere køer bør opprettholdes for prosesser med noen egenskaper.
- Hver kø kan ha sine separate planleggingsalgoritmer.
- Det er prioritert for hver kø.
Hensikten med en planleggingsalgoritme
Her er grunnene til å bruke en planleggingsalgoritme:
- CPU-en bruker planlegging for å forbedre effektiviteten.
- Det hjelper deg å allokere ressurser mellom konkurrerende prosesser.
- Maksimal utnyttelse av CPU kan oppnås med multiprogrammering.
- Prosessene som skal utføres er i klar kø.
Sammendrag
- CPU-planlegging er en prosess for å bestemme hvilken prosess som skal eie CPU for utførelse mens en annen prosess er på vent.
- I Preemptive Scheduling er oppgavene stort sett tildelt deres prioriteringer.
- I den ikke-preemptive planleggingsmetoden har CPU blitt allokert til en spesifikk prosess.
- Burst-tiden er tiden det tar før prosessen fullføres. Det kalles også løpetid.
- CPU-utnyttelse er hovedoppgaven som operativsystemet trenger for å sikre at CPU-en forblir så opptatt som mulig.
- Antall prosesser som fullfører sin utførelse per tidsenhet er kjent gjennomstrømning.
- Ventetid er et beløp som en spesifikk prosess må vente i klarkøen.
- Det er hvor lang tid forespørselen ble sendt inn til det første svaret er produsert.
- Omløpstid er hvor lang tid det tar å utføre en bestemt prosess.
- Timeravbrudd er en metode som er nært knyttet til forkjøpsrett.
- En dispatcher er en modul som gir kontroll over CPU-en til prosessen.
- Seks typer prosessplanleggingsalgoritmer er: Først til mølla (FCFS), 2) Shortest-Job-First (SJF) Planlegging, 3) Korteste gjenværende tid, 4) Prioritetsplanlegging, 5) Round Robin-planlegging, 6) Planlegging av flere nivåer i kø. .
- på Først til mølla-metoden, prosessen som ber CPU-en får CPU-allokeringen først.
- På kortest gjenværende tid vil prosessen bli allokert til oppgaven som er nærmest ferdigstillelse.
- I prioritert planlegging velger planleggeren oppgavene som skal fungere i henhold til prioritet.
- Round robin-planlegging jobber etter prinsippet der hver person får en lik del av noe etter tur.
- I den korteste jobben først, bør den korteste utførelsestiden velges for utførelse neste.
- Flernivåplanleggingsmetoden skiller klarkøen i forskjellige separate køer. I denne metoden tilordnes prosesser til en kø basert på en bestemt egenskap.
- CPU-en bruker planlegging for å forbedre effektiviteten.