I denne opplæringen skal vi lære et viktig konsept i CPU Process Scheduling Algoritmer. Det viktige konseptnavnet er først til mølla. Dette er den grunnleggende algoritmen som hver student må lære for å forstå alt det grunnleggende om CPU Process Scheduling Algorithms.
First Come First Serve baner vei for forståelse av andre algoritmer. Denne algoritmen kan ha mange ulemper. Men disse ulempene skapte veldig nye og effektive algoritmer. Så det er vårt ansvar å lære om førstemann til mølla CPU-prosessplanleggingsalgoritmer.
Viktige forkortelser
- CPU - - - > Sentral prosesseringsenhet
- FCFS - - - > Førstemann til mølla
- AT - - - > Ankomsttid
- BT - - - > Burst Time
- WT - - - > Ventetid
- TAT - - - > Omløpstid
- CT - - - > Fullføringstid
- FIFO - - - > Først inn først ut
Første mann til mølla
Først til mølla CPU-planleggingsalgoritme, kort kjent som FCFS, er den første algoritmen til CPU Process Scheduling Algorithm. I First Come First Serve Algorithm er det vi gjør å la prosessen utføres på lineær måte.
Dette betyr at den prosessen som kommer inn i prosessen som kommer inn i klarkøen først, blir utført først. Dette viser at First Come First Serve Algorithm følger First In First Out (FIFO)-prinsippet.
Førstemann til mølla-algoritmen kan utføres på forhånds- og ikke-førstegangsmåte. Før vi går inn på eksempler, la oss forstå hva som er Pre Emptive og Non Pre Emptive Approach i CPU-prosessplanlegging.
Preemptive tilnærming
I dette tilfellet av Pre Emptive Process Scheduling, tildeler OS ressursene til en prosess i en forhåndsbestemt tidsperiode. Prosessen går over fra kjøretilstand til klartilstand eller fra ventetilstand til klartilstand under ressursallokering. Denne vekslingen skjer fordi CPU kan tildele andre prosesser prioritet og erstatte den nåværende aktive prosessen med den høyere prioriterte prosessen.
Ikke forhåndsemptiv tilnærming
I dette tilfellet med ikke-forutgående prosessplanlegging, kan ikke ressursen trekkes tilbake fra en prosess før prosessen er ferdig kjørt. Når en kjørende prosess avsluttes og går over til ventetilstand, byttes ressurser.
Konvoieffekt etter førstemann til mølla (FCFS)
Convoy Effect er et fenomen som forekommer i planleggingsalgoritmen kalt First Come First Serve (FCFS). Førstemann til mølla-planleggingsalgoritmen oppstår på en måte som ikke er forebyggende.
Den ikke-forebyggende måten betyr at hvis en prosess eller jobb startes utførelse, må operativsystemet fullføre prosessen eller jobben. Inntil prosessen eller jobben er null, starter ikke den nye eller neste prosessen eller jobben utføringen. Definisjonen av ikke-forebyggende planlegging når det gjelder operativsystem betyr at den sentrale prosesseringsenheten (CPU) vil være fullstendig dedikert til slutten av prosessen eller jobben startet først, og den nye prosessen eller jobben utføres først etter fullføring av den eldre prosessen eller jobb.
Det kan være noen få tilfeller som kan føre til at den sentrale prosesseringsenheten (CPU) bruker for mye tid. Dette er fordi i «først til mølla»-planleggingsalgoritmen Non Preemptive Approach, velges prosessene eller jobbene i seriell rekkefølge. På grunn av dette tar kortere jobber eller prosesser bak de større prosessene eller jobbene for lang tid å fullføre utførelsen. På grunn av dette er ventetiden, omløpstiden og gjennomføringstiden veldig høy.
konvertere en streng til heltall i java
Så, her ettersom den første prosessen er stor eller fullføringstiden er for lang, så oppstår denne konvoieffekten i First Come First Serve-algoritmen.
La oss anta at Lengre jobb tar uendelig tid å fullføre. Deretter må de gjenværende prosessene vente i samme uendelige tid. På grunn av denne konvoieffekten skapt av den lengre jobben, øker sultingen av venteprosessene veldig raskt. Dette er den største ulempen med FCFS CPU Process Scheduling.
Kjennetegn ved FCFS CPU-prosessplanlegging
Egenskapene til FCFS CPU Process Scheduling er:
- Implementeringen er enkel.
- Forårsaker ingen årsakssammenheng under bruk
- Den vedtar en ikke-forebyggende og forebyggende strategi.
- Den kjører hver prosedyre i den rekkefølgen de mottas.
- Ankomsttid brukes som utvalgskriterium for prosedyrer.
Fordeler med FCFS CPU-prosessplanlegging
Fordelene med FCFS CPU Process Scheduling er:
- For å allokere prosesser bruker den først inn først ut-køen.
- FCFS CPU-planleggingsprosessen er rett frem og enkel å implementere.
- I FCFS-situasjonen med forebyggende planlegging, er det ingen sjanse for at prosessen sulter.
- Siden det ikke tas hensyn til prosessprioritet, er det en rettferdig algoritme.
Ulemper med FCFS CPU-prosessplanlegging
Ulempene med FCFS CPU Process Scheduling er:
- FCFS CPU-planleggingsalgoritme har lang ventetid
- FCFS CPU-planlegging favoriserer CPU fremfor inngangs- eller utgangsoperasjoner
- I FCFS er det en sjanse for forekomst av konvoieffekt
- Fordi FCFS er så rett frem, er det ofte ikke særlig effektivt. Forlengede ventetider går hånd i hånd med dette. Alle andre bestillinger blir stående uvirksomme hvis CPU-en er opptatt med å behandle en tidkrevende bestilling.
Problemer i førstemann til mølla CPU-planleggingsalgoritmen
Eksempel
S. No Process ID Process Name Arrival Time Burst Time _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1 P 1 A 0 9 2 P 2 B 1 3 3 P 3 C 1 2 4 P 4 D 1 4 5 P 5 E 2 3 6 P 6 F 3 2
Ikke forhåndsemptiv tilnærming
La oss nå løse dette problemet ved hjelp av planleggingsalgoritmen kalt First Come First Serve in a Non Preemptive Approach.
Gantt-diagrammet for eksempel 1 ovenfor er:
java få gjeldende tid
Omløpstid = Fullføringstid - Ankomsttid
Ventetid = Omløpstid - Burst Time
Løsning på spørsmålet ovenfor Eksempel 1
Ja Nei | Prosess-ID | Ankomsttid | Burst Time | Fullføringstid | Turn Around Time | Ventetid | |
---|---|---|---|---|---|---|---|
1 | P 1 | EN | 0 | 9 | 9 | 9 | 0 |
2 | P 2 | B | 1 | 3 | 12 | elleve | 8 |
3 | P 3 | C | 1 | 2 | 14 | 1. 3 | elleve |
4 | P 4 | D | 1 | 4 | 18 | 17 | 1. 3 |
5 | P 5 | OG | 2 | 3 | tjueen | 19 | 16 |
6 | P 6 | F | 3 | 2 | 23 | tjue | 18 |
Gjennomsnittlig gjennomføringstid er:
Gjennomsnittlig CT = ( 9 + 12 + 14 + 18 + 21 + 23 ) / 6
Gjennomsnittlig CT = 97/6
Gjennomsnittlig CT = 16,16667
Gjennomsnittlig ventetid er:
Gjennomsnittlig WT = ( 0 + 8 + 11 + 13 + 16 + 18 ) /6
Gjennomsnittlig WT = 66/6
Gjennomsnittlig WT = 11
Gjennomsnittlig omløpstid er:
Gjennomsnittlig TAT = ( 9 + 11 + 13 + 17 + 19 +20 ) / 6
Gjennomsnittlig TAT = 89/6
Gjennomsnittlig TAT = 14,83334
Dette er hvordan FCFS løses i Non Pre Emptive Approach.
La oss nå forstå hvordan de kan løses i Pre Emptive Approach
Preemptive tilnærming
La oss nå løse dette problemet ved hjelp av planleggingsalgoritmen kalt First Come First Serve in a Pre Emptive Approach.
I Pre Emptive Approach søker vi etter den beste prosessen som er tilgjengelig
java parse streng til int
Gantt-diagrammet for eksempel 1 ovenfor er:
Ja Nei | Prosess-ID | Ankomsttid | Burst Time | Fullføringstid | Turn Around Time | Ventetid | |
---|---|---|---|---|---|---|---|
1 | P 1 | EN | 0 | 9 | 23 | 23 | 14 |
2 | P 2 | B | 1 | 3 | 8 | 7 | 4 |
3 | P 3 | C | 1 | 2 | 3 | 2 | 0 |
4 | P 4 | D | 1 | 4 | femten | 14 | 10 |
5 | P 5 | OG | 2 | 3 | elleve | 9 | 7 |
6 | P 6 | F | 3 | 2 | 5 | 2 | 0 |
neste → ← forrige For å bli kvitt problemet med å kaste vekk vekkesignalene foreslo Dijkstra en tilnærming som innebærer å lagre alle vekkesignalene. Dijkstra uttaler at i stedet for å gi vekking direkte til forbrukeren, kan produsenten lagre vekking i en variabel. Enhver av forbrukerne kan lese den når den trenger å gjøre det. Semafor er variablene som lagrer hele vekkesignalene som overføres fra produsent til forbruker. Det er en variabel der lesing, endring og oppdatering skjer automatisk i kjernemodus. Semafor kan ikke implementeres i brukermodus fordi rasetilstand alltid kan oppstå når to eller flere prosesser prøver å få tilgang til variabelen samtidig. Den trenger alltid støtte fra operativsystemet for å bli implementert. I henhold til situasjonens etterspørsel, kan Semaphore deles inn i to kategorier.
Vi vil diskutere hver enkelt i detalj. |