FCFS-i ajastamisalgoritm: mis on, näidisprogramm

⚡ Nutikas kokkuvõte

Esimesena tulnud, esimesena teenindatud põhimõttel ajastamine käivitab protsessid täpselt selles järjekorras, kus nad valmisolekujärjekorda jõuavad, kasutades lihtsat mitte-ennetavat FIFO-lähenemisviisi, mis teeb sellest operatsioonisüsteemi jaoks lihtsaimini rakendatava protsessori ajastamisalgoritmi.

  • 🔄 Määratlus: FCFS määrab protsessori sellele protsessile, mis seda esimesena taotleb, hallates valmisoleku järjekorda FIFO (first-in, first-out) struktuurina.
  • ⚙️ Nature: FCFS ei ole ennetav, seega hoiab töötav protsess protsessorit seni, kuni see on kogu oma purskeaja lõpetanud.
  • 🎟️ Analoogia: Nagu piletikassa järjekorras, teenindatakse esimesena saabunud klienti esimesena ja hiljem saabujad ootavad oma korda.
  • 📊 Arvutus: Keskmine ooteaeg leitakse alamjaotuse järgitraciga protsessi saabumisaja määramine selle algusajast ja seejärel kõigi protsesside keskmise arvutamine.
  • 🐢 Konvoi efekt: Üks pikk protsess esirinnas sunnib lühemaid töid ooteajale, mis pikendab keskmist ooteaega ja kahjustab jõudlust.
  • 🤖 Tehisintellekti nurk: Masinõpe ennustab purskeaegu ajastamise parandamiseks ja Copilot aitab FCFS-koodi kiiresti kirjutada ja testida.

FCFS-i ajastamisalgoritm Operating System

Mis on "kes ees, mees" serveerimismeetod?

Serveerimine „kes ees, mees” (FCFS) on operatsioonisüsteemi ajastamisalgoritm, mis käivitab järjekorras olevaid päringuid ja protsesse automaatselt nende saabumise järjekorras. See on lihtsaim ja lihtsam protsessori ajastamisalgoritm. Seda tüüpi algoritmis saab protsessori jaotuse esimesena protsessorilt päringu teinud protsessor. Seda hallatakse FIFO järjekorra abil. FCFS-i täielik vorm on "kes ees, see mees".

Kui protsess siseneb valmisolekujärjekorda, ühendatakse selle trükkplaat (PCB) järjekorra sabaosaga. Seega, kui protsessor vabaneb, määratakse see järjekorra alguses olevale protsessile.

FCFS-meetodi omadused

Esimesena tulnud, esimesena teenindatud meetodi peamised omadused on loetletud allpool:

  • On mitte-eelistav ajastamisalgoritm, seega protsess hoiab protsessorit seni, kuni see oma purskeaja lõpetab.
  • Tööd täidetakse alati "kes ees, see mees" põhimõttel.
  • Seda on lihtne rakendada ja kasutada.
  • Selle meetodi jõudlus on nõrk ja üldine ooteaeg on üsna pikk.

FCFS-i ajastamise näide

FCFS-meetodi reaalne näide on kinopileti ostmine piletikassast. Selles ajastamisalgoritmis teenindatakse inimest vastavalt järjekorrale. Esimesena järjekorda saabunud inimene ostab pileti esimesena ja seejärel järgmine. See jätkub seni, kuni järjekorras viimane inimene pileti ostab. Selle algoritmi abil töötab protsessori protsessor sarnasel viisil.

Kuidas FCFS töötab? Keskmise ooteaja arvutamine

Algoritmi protsesside ajastamise mõistmiseks toome näite viiest protsessist, mis saabuvad erinevatel aegadel. Igal protsessil on erinev saabumisaeg.

Protsess Purskeaeg Saabumise aeg
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

FCFS-i ajastamisalgoritmi kasutades käsitletakse neid protsesse järgmiselt.

Step 1) Protsess algab punktiga P4, mille saabumisaeg on 0.

FCFS-i ajastamise näide, 1. samm

Step 2) Kell = 1, saabub P3. P4 töötab endiselt. Seetõttu hoitakse P3 järjekorras.

FCFS-i ajastamise näide, 2. samm

Step 3) Ajahetkel 2 saabub P1 ja seda hoitakse järjekorras.

FCFS-i ajastamise näide, 3. samm

Step 4) Ajahetkel 3 lõpetab protsess P4 oma täitmise.

FCFS-i ajastamise näide, 4. samm

Step 5) Kellaaeg=4 alustab täitmist P3, mis on järjekorras esimene.

FCFS-i ajastamise näide, 5. samm

Step 6) Ajahetkel 5 saabub P2 ja seda hoitakse järjekorras.

FCFS-i ajastamise näide, 6. samm

Step 7) Ajahetkel 11 lõpetab P3 oma täitmise.

FCFS-i ajastamise näide, 7. samm

Step 8) Ajahetkel 11 alustab P1 täitmist. Selle purskeaeg on 6, seega lõpeb täitmine ajaintervallis 17.

FCFS-i ajastamise näide, 8. samm

Step 9) Ajahetkel 17 alustab P5 täitmist. Selle purskeaeg on 4, seega lõpeb täitmine ajahetkel 21.

FCFS-i ajastamise näide, 9. samm

Step 10) Ajahetkel 21 alustab P2 täitmist. Selle purskeaeg on 2, seega lõpeb täitmine ajaintervallis 23.

FCFS-i ajastamise näide, 10. samm

Step 11) Nüüd arvutame välja ülaltoodud näite keskmise ooteaja.

FCFS-i ajakava keskmine ooteaeg

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

Keskmine ooteaeg = (0 + 2 + 9 + 13 + 16) / 5 = 40 / 5 = 8

FCFS-i ajakava koostamise keskmise ooteaja arvutamine

FCFS-i eelised

Siin on FCFS-i ajastamisalgoritmi kasutamise plussid ja eelised:

  • See on kõige lihtsam vorm a CPU ajastamise algoritm.
  • Seda on lihtne programmeerida.
  • See järgib lihtsat esimesena tulnud, esimesena teenindatud järjekorda.

FCFS-i puudused

Siin on FCFS-i ajastamisalgoritmi kasutamise miinused ja puudused:

  • See on mitte-ennetav protsessori ajastamisalgoritm, seega kui protsess on protsessorile eraldatud, ei vabasta see protsessorit enne, kui see on täitmise lõpetanud.
  • Keskmine ooteaeg on pikk.
  • Järjekorra tagaosas olevad lühikesed protsessid peavad ootama, kuni eesolev pikk protsess lõpeb.
  • See ei ole ajajagamissüsteemide jaoks ideaalne tehnika.
  • Lihtsuse tõttu ei ole FCFS eriti tõhus.

KKK

Esimesena tulnud, esimesena teenindatud on mitte-ennetav algoritm. Kui protsess saab protsessori, töötab see kuni oma purske lõpuni, seega ei saa ajastaja seda katkestada, et käivitada äsja saabunud või lühemat protsessi.

Konvoiefekt tekib siis, kui järjekorra eesotsas ühe pika protsessi taga ootab mitu lühikest protsessi. See üks pikk töö pikendab keskmist ooteaega ja vähendab protsessori üldist läbilaskevõimet.

Pöördeaeg võrdub iga protsessi valmimisaja ja saabumisaja vahega. See mõõdab koguaega, mille protsess süsteemis veedab alates saabumisest kuni protsessoris täitmise lõpetamiseni.

FCFS teenindab saabumise järjekorras. Esmalt lühim töö teenindab esmalt väikseimat purset, et ooteaeg oleks lühem, ja Round Robini annab igale protsessile ajajagamiseks fikseeritud ajavahemiku.

Puhas FCFS ei põhjusta nälgimist, sest iga protsess jõuab lõpuks FIFO järjekorra etteotsa. Pikad tööd võivad aga konvoiefekti tõttu lühikesi oluliselt edasi lükata.

FCFS töötab O(n) ajaga, kui protsessid on juba saabumise järgi järjestatud, kuna igaüks neist on ajastatud üks kord. Sorteerimata saabumiste esmalt saabumisaja järgi sortimine lisab O(n log n) sammu.

Masinõppe mudelid ennustavad protsesside pursete aegu ning valivad ja häälestavad ajastamispoliitikaid, et vähendada keskmist ooteaega ja energiatarbimist. Teadlased rakendavad neid tehisintellektil põhinevaid ajakavasid pilveserverites ja andmekeskustes.

Jah. GitHub Copilot saab genereerida FCFS-koodi C-keeles. Javavõi Python ooteaja ja pöördeaja arvutustega. Enne väljundi usaldamist kontrollige alati saabumisaja sorteerimist, viigistamise ja keskmise valemeid.

Võta see postitus kokku järgmiselt: