FCFS-planlægningsalgoritme: Hvad er, eksempelprogram

⚡ Smart opsummering

Først til mølle, først tjene-planlægning kører processer i den nøjagtige rækkefølge, de når klarkøen, ved hjælp af en simpel ikke-præemptiv FIFO-tilgang, der gør den til den nemmeste CPU-planlægningsalgoritme for et operativsystem at implementere.

  • 🔄 Definition: FCFS tildeler CPU'en til den proces, der anmoder om den først, og administrerer klarkøen som en først ind, først ud (FIFO) struktur.
  • 🇧🇷 Natur: FCFS er ikke-præemptiv, så en kørende proces holder CPU'en tilbage, indtil den afslutter hele sin burst-tid.
  • 🎟️ Analogi: Ligesom en billetkø bliver den, der ankommer først, betjent først, og de senere ankommende venter på deres tur.
  • 📊 Beregning: Gennemsnitlig ventetid findes ved subtracberegne hver process ankomsttid fra dens starttidspunkt og derefter gennemsnittet på tværs af alle processer.
  • ???? Konvojeffekt: Én lang proces i fronten tvinger kortere job til at vente, hvilket øger den gennemsnitlige ventetid og forringer ydeevnen.
  • 🤖 AI-vinkel: Maskinlæring forudsiger burst-tider for at forbedre planlægningen, og Copilot hjælper med at skrive og teste FCFS-kode hurtigt.

FCFS-planlægningsalgoritme i Operating System

Hvad er først til mølle-metoden?

Først til mølle (FCFS) er en planlægningsalgoritme i et operativsystem, der automatisk udfører anmodninger og processer i kø i den rækkefølge, de ankommer. Det er den nemmeste og enkleste CPU-planlægningsalgoritme. I denne type algoritme får den proces, der anmoder om CPU'en først, CPU-allokeringen først. Dette styres med en FIFO-kø. Den fulde form af FCFS er først til mølle.

Når en proces går ind i klarkøen, forbindes dens PCB (proceskontrolblok) med køens ende. Så når CPU'en bliver ledig, tildeles den processen i starten af ​​køen.

Karakteristika for FCFS-metoden

De vigtigste karakteristika ved "først til mølle"-metoden er anført nedenfor:

  • Det er et ikke-præemptiv planlægningsalgoritme, så en proces holder CPU'en, indtil den fuldfører sin burst-tid.
  • Opgaver udføres altid efter først-til-mølle-princippet.
  • Det er nemt at implementere og bruge.
  • Denne metode er dårlig i ydeevne, og den generelle ventetid er ret høj.

Eksempel på FCFS-planlægning

Et eksempel på FCFS-metoden fra det virkelige liv er ved at købe en biografbillet ved billetlugen. I denne planlægningsalgoritme bliver en person betjent i henhold til kørækkefølgen. Den person, der ankommer først i køen, køber billetten først, og derefter den næste. Dette fortsætter, indtil den sidste person i køen køber billetten. Ved hjælp af denne algoritme fungerer CPU-processen på en lignende måde.

Hvordan fungerer FCFS? Beregning af gennemsnitlig ventetid

For at forstå, hvordan algoritmen planlægger processer, er her et eksempel på fem processer, der ankommer på forskellige tidspunkter. Hver proces har en forskellig burst-tid.

Proces Burst tid Ankomsttid
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Ved at bruge FCFS-planlægningsalgoritmen håndteres disse processer som følger.

Trin 1) Processen begynder med P4, som har ankomsttid 0.

Eksempel på FCFS-planlægning trin 1

Trin 2) På tidspunktet=1 ankommer P3. P4 kører stadig. Derfor holdes P3 i en kø.

Eksempel på FCFS-planlægning trin 2

Trin 3) Ved tidspunktet = 2 ankommer P1 og holdes i køen.

Eksempel på FCFS-planlægning trin 3

Trin 4) Ved tidspunktet = 3 fuldfører P4-processen sin udførelse.

Eksempel på FCFS-planlægning trin 4

Trin 5) Ved time=4 starter P3, som er først i køen, eksekveringen.

Eksempel på FCFS-planlægning trin 5

Trin 6) Ved tidspunktet = 5 ankommer P2 og holdes i kø.

Eksempel på FCFS-planlægning trin 6

Trin 7) Ved tidspunktet = 11 fuldfører P3 sin udførelse.

Eksempel på FCFS-planlægning trin 7

Trin 8) Ved tid = 11 starter P1 udførelsen. Den har en burst-tid på 6, så den fuldfører udførelsen ved tidsinterval 17.

Eksempel på FCFS-planlægning trin 8

Trin 9) Ved tidspunktet = 17 starter P5 udførelsen. Den har en burst-tid på 4, så den fuldfører udførelsen ved tidspunktet = 21.

Eksempel på FCFS-planlægning trin 9

Trin 10) Ved tid = 21 starter P2 udførelsen. Den har en burst-tid på 2, så den fuldfører udførelsen ved tidsinterval 23.

Eksempel på FCFS-planlægning trin 10

Trin 11) Lad os nu beregne den gennemsnitlige ventetid for ovenstående eksempel.

Gennemsnitlig ventetid på FCFS-planlægning

Waiting time = Start time - Arrival time

P4 = 0 – 0 = 0

P3 = 3 – 1 = 2

P1 = 11 – 2 = 9

P5 = 17 – 4 = 13

P2 = 21 – 5 = 16

Gennemsnitlig ventetid = (0 + 2 + 9 + 13 + 16) / 5 = 40 / 5 = 8

Beregning af gennemsnitlig ventetid i FCFS-planlægning

Fordele ved FCFS

Her er fordelene og ulemperne ved at bruge FCFS-planlægningsalgoritmen:

  • Det er den enkleste form for en CPU-planlægningsalgoritme.
  • Det er nemt at programmere.
  • Det følger en simpel først til mølle-rækkefølge.

Ulemper ved FCFS

Her er ulemperne og ulemperne ved at bruge FCFS-planlægningsalgoritmen:

  • Det er en ikke-præemptiv CPU-planlægningsalgoritme, så når en proces er blevet allokeret til CPU'en, frigiver den aldrig CPU'en, før den er færdig med at udføre.
  • Den gennemsnitlige ventetid er høj.
  • Korte processer bagerst i køen skal vente på, at den lange proces forrest afsluttes.
  • Det er ikke en ideel teknik til tidsdelingssystemer.
  • På grund af sin enkelhed er FCFS ikke særlig effektiv.

Ofte Stillede Spørgsmål

Først til mølle, først tjene er en ikke-præemptiv algoritme. Når en proces får CPU'en, kører den, indtil dens burst er færdig, så scheduleren ikke kan afbryde den for at køre en nyligt ankommet eller kortere proces.

Konvojeffekten opstår, når flere korte processer venter bag én lang proces forrest i køen. Dette ene lange job øger den gennemsnitlige ventetid og sænker den samlede CPU-gennemstrømning.

Udførelsestiden er lig med færdiggørelsestiden minus ankomsttiden for hver proces. Den måler den samlede tid, en proces bruger i systemet, fra dens ankomst, indtil den afslutter udførelsen på CPU'en.

FCFS serverer efter ankomstordre, Korteste job først serverer den mindste burst først for kortere ventetid, og Round Robin giver hver proces et fast tidsinterval til tidsdeling.

Ren FCFS forårsager ikke sult, fordi hver proces til sidst når forrest i FIFO-køen. Lange job kan dog stadig forsinke korte job alvorligt på grund af konvojeffekten.

FCFS kører i O(n) tid, når processer allerede er ordnet efter ankomst, da hver er planlagt én gang. Sortering af usorterede ankomster efter ankomsttidspunkt tilføjer først et O(n log n) trin.

Maskinlæringsmodeller forudsiger procesudbrudstider og vælger eller justerer planlægningspolitikker for at reducere den gennemsnitlige ventetid og energiforbruget. Forskere anvender disse AI-drevne planlæggere i cloud-servere og datacentre.

Ja. GitHub Copilot kan generere FCFS-kode i C, Java eller Python med beregninger af ventetid og ekspeditionstid. Bekræft altid formlerne for sortering efter ankomsttid, tie-breaking og gennemsnit, før du stoler på outputtet.

Opsummer dette indlæg med: