FCFS schemaläggningsalgoritm: Vad är, exempelprogram

⚡ Smart sammanfattning

Först till kvarn-schemaläggning kör processer i exakt den ordning de når klarkön, med hjälp av en enkel icke-förebyggande FIFO-metod som gör den till den enklaste CPU-schemaläggningsalgoritmen för ett operativsystem att implementera.

  • 🔄 Definition: FCFS tilldelar processorn till den process som begär den först, och hanterar redo-kön som en först in, först ut (FIFO) struktur.
  • ⚙️ Natur: FCFS är icke-preemptiv, så en pågående process håller processorn kvar tills den avslutar hela sin burst-tid.
  • 🎟️ Analogi: Precis som i en kö vid biljettkassan blir den som anländer först betjänad först, och de som anländer senare väntar på sin tur.
  • 📊 Beräkning: Genomsnittlig väntetid hittas av subtracberäkna varje process ankomsttid från dess starttid och sedan medelvärdesbilden över alla processer.
  • ???? Konvojeffekt: En lång process i frontlinjen tvingar kortare jobb att vänta, vilket ökar den genomsnittliga väntetiden och försämrar prestandan.
  • 🤖 AI-vinkel: Maskininlärning förutspår bursttider för att förbättra schemaläggningen, och Copilot hjälper till att skriva och testa FCFS-kod snabbt.

FCFS-schemaläggningsalgoritm i Operating System

Vad är först till kvarn-metoden?

Först till kvarn gäller (FCFS) är en schemaläggningsalgoritm för operativsystem som automatiskt exekverar köade förfrågningar och processer i den ordning de anländer. Det är den enklaste och mest använda CPU-schemaläggningsalgoritmen. I den här typen av algoritm får den process som först begär CPU:n CPU-tilldelningen först. Detta hanteras med en FIFO-kö. Den fullständiga formen av FCFS är först till kvarn.

När en process går in i redo-kön länkas dess PCB (processkontrollblock) till köns slut. Så när processorn blir ledig tilldelas den processen i början av kön.

Egenskaper hos FCFS-metoden

De viktigaste egenskaperna hos metoden "först till kvarn" listas nedan:

  • Det är ett icke-förebyggande schemaläggningsalgoritm, så en process behåller processorn tills den fullbordar sin burst-tid.
  • Jobb utförs alltid enligt först till kvarn-principen.
  • Det är lätt att implementera och använda.
  • Denna metod har dålig prestanda och den allmänna väntetiden är ganska lång.

Exempel på FCFS-schemaläggning

Ett verkligt exempel på FCFS-metoden är att köpa en biobiljett vid biljettkassan. I denna schemaläggningsalgoritm serveras en person enligt köordningen. Den person som anländer först i kön köper biljetten först, och sedan nästa. Detta fortsätter tills den sista personen i kön köper biljetten. Med denna algoritm fungerar CPU-processen på ett liknande sätt.

Hur fungerar FCFS? Beräknar genomsnittlig väntetid

För att förstå hur algoritmen schemalägger processer, här är ett exempel på fem processer som anländer vid olika tidpunkter. Varje process har en annan burst-tid.

Behandla Sprängtid Ankomst tid
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Genom att använda FCFS-schemaläggningsalgoritmen hanteras dessa processer enligt följande.

Steg 1) Processen börjar med P4, som har ankomsttid 0.

FCFS-schemaläggningsexempel steg 1

Steg 2) Klockan=1 kommer P3. P4 körs fortfarande. Därför hålls P3 i en kö.

FCFS-schemaläggningsexempel steg 2

Steg 3) Vid tidpunkten = 2 anländer P1 och hålls kvar i kön.

FCFS-schemaläggningsexempel steg 3

Steg 4) Vid tidpunkten = 3 slutför P4-processen sin exekvering.

FCFS-schemaläggningsexempel steg 4

Steg 5) Vid tidpunkten=4 startar P3, som är först i kön, exekvering.

FCFS-schemaläggningsexempel steg 5

Steg 6) Vid tidpunkten = 5 anländer P2 och hålls kvar i en kö.

FCFS-schemaläggningsexempel steg 6

Steg 7) Vid tidpunkten = 11 slutför P3 sin exekvering.

FCFS-schemaläggningsexempel steg 7

Steg 8) Vid tidpunkten 11 börjar P1 exekveringen. Den har en bursttid på 6, så den slutför exekveringen vid tidsintervallet 17.

FCFS-schemaläggningsexempel steg 8

Steg 9) Vid tidpunkten = 17 börjar P5 köras. Den har en bursttid på 4, så den slutför körningen vid tidpunkten = 21.

FCFS-schemaläggningsexempel steg 9

Steg 10) Vid tidpunkten 21 börjar P2 exekveringen. Den har en bursttid på 2, så den slutför exekveringen vid tidsintervallet 23.

FCFS-schemaläggningsexempel steg 10

Steg 11) Låt oss nu beräkna den genomsnittliga väntetiden för exemplet ovan.

Genomsnittlig väntetid för FCFS-schemaläggning

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

Genomsnittlig väntetid = (0 + 2 + 9 + 13 + 16) / 5 = 40 / 5 = 8

Beräkning av genomsnittlig väntetid för FCFS-schemaläggning

Fördelar med FCFS

Här är fördelarna och fördelarna med att använda FCFS-schemaläggningsalgoritmen:

  • Det är den enklaste formen av en CPU-schemaläggningsalgoritm.
  • Det är lätt att programmera.
  • Den följer en tydlig ordning efter först till kvarn.

Nackdelar med FCFS

Här är nackdelarna och nackdelarna med att använda FCFS-schemaläggningsalgoritmen:

  • Det är en icke-förebyggande CPU-schemaläggningsalgoritm, så när en process har allokerats till CPU:n kommer den aldrig att släppa processorn förrän den är klar med körningen.
  • Den genomsnittliga väntetiden är hög.
  • Korta processer längst bak i kön måste vänta på att den långa processen längst fram ska slutföras.
  • Det är inte en idealisk teknik för tidsdelningssystem.
  • På grund av sin enkelhet är FCFS inte särskilt effektivt.

Vanliga frågor

Först till kvarn, först till kvarn, är en icke-preemptiv algoritm. När en process väl får processorn körs den tills dess burst är klar, så schemaläggaren kan inte avbryta den för att köra en nyligen ankommen eller kortare process.

Konvojeffekten uppstår när flera korta processer väntar bakom en lång process längst fram i kön. Detta enda långa jobb ökar den genomsnittliga väntetiden och sänker den totala CPU-genomströmningen.

Omloppstiden är lika med slutförandetiden minus ankomsttiden för varje process. Den mäter den totala tiden en process tillbringar i systemet, från dess ankomst tills den slutför exekveringen på processorn.

FCFS serverar efter ankomstorder, Kortaste jobbet först serverar den minsta skuren först för kortare väntetid, och LISTA MED NAMNEN I CIRKEL ger varje process en fast tidsintervall för tidsdelning.

Ren FCFS orsakar inte svält, eftersom varje process så småningom hamnar längst fram i FIFO-kön. Långa jobb kan dock fortfarande försena korta jobb kraftigt genom konvojeffekten.

FCFS körs i O(n)-tid när processer redan är ordnade efter ankomsttid, eftersom varje processer är schemalagda en gång. Att sortera osorterade ankomster efter ankomsttid lägger först till ett O(n log n)-steg.

Maskininlärningsmodeller förutspår processbursttider och väljer eller finjusterar schemaläggningspolicyer för att minska genomsnittlig väntetid och energiförbrukning. Forskare använder dessa AI-drivna schemaläggare i molnservrar och datacenter.

Ja. GitHub Copilot kan generera FCFS-kod i C, Java, eller Python med beräkningar av väntetider och handläggningstid. Verifiera alltid formler för ankomsttidssortering, oavgjort och genomsnitt innan du litar på utdata.

Sammanfatta detta inlägg med: