logo

Pirmenybė teikiama procesoriaus procesų planavimui operacinėse sistemose

Šioje pamokoje išmoksime svarbią procesoriaus procesų planavimo algoritmų koncepciją. Svarbus koncepcijos pavadinimas yra „Pirmas atėjai, pirmas“ – patiekiamas pirmas. Tai yra pagrindinis algoritmas, kurį kiekvienas studentas turi išmokti suprasti visus CPU proceso planavimo algoritmų pagrindus.

„Pirmas atėjai, pirmas“ suteikia galimybę suprasti kitus algoritmus. Šis algoritmas gali turėti daug trūkumų. Tačiau šie trūkumai sukūrė labai naujus ir efektyvius algoritmus. Taigi, mūsų pareiga yra sužinoti apie procesoriaus procesų planavimo algoritmus „Pirmas atėjai, pirmas“.

Svarbios santrumpos

  1. CPU - - - > Centrinis procesorius
  2. FCFS - - - > Servei pirmas, pirmas
  3. AT - - - > Atvykimo laikas
  4. BT - - - > Burst Time
  5. WT - - - > Laukimo laikas
  6. TAT - - - > Apsukimo laikas
  7. CT - - - > Užbaigimo laikas
  8. FIFO - - - > First In First Out

Patiekite pirmas atėjai pirmas

CPU planavimo algoritmas, trumpai žinomas kaip FCFS, yra pirmasis CPU procesų planavimo algoritmo algoritmas. Naudodami „pirmas atėjai, pirmas tarnavimo“ algoritmą, mes leidžiame procesui vykdyti linijiniu būdu.

Tai reiškia, kad tas, kuris procesas patenka į paruoštą eilę, pirmiausia vykdomas. Tai rodo, kad „pirmas atėjai, pirmas tarnavimo“ algoritmas vadovaujasi FIFO (First In First Out) principu.

Aptarnavimo „pirmas atėjai, pirmas“ algoritmas gali būti vykdomas prevenciniu ir neišvengiamu būdu. Prieš eidami į pavyzdžius, supraskime, kas yra išankstinis ir neišvengiamas procesoriaus procesų planavimo metodas.

Prevencinis požiūris

Šiuo išankstinio proceso planavimo atveju OS skiria išteklius procesui iš anksto nustatytam laikotarpiui. Procesas pereina iš veikimo būsenos į parengties būseną arba iš laukimo būsenos į parengties būseną paskirstant išteklius. Šis perjungimas įvyksta, nes CPU gali suteikti pirmenybę kitiems procesams ir pakeisti šiuo metu aktyvų procesą aukštesnio prioriteto procesu.

Neprevencinis požiūris

Šiuo Neprevencinio proceso planavimo atveju išteklių negalima išimti iš proceso, kol procesas nesibaigs. Kai vykdomas procesas baigiasi ir pereina į laukimo būseną, ištekliai perjungiami.

Konvojaus efektas „Pirmas atėjai, pirmas“ (FCFS)

Konvojaus efektas yra reiškinys, atsirandantis planavimo algoritme, pavadintame „Pirmas atėjai pirmas aptarnavimas“ (FCFS). „Pirmas atėjai, pirmas“ planavimo algoritmas veikia ne prevenciniu būdu.

nustatyta java

Neprevencinis būdas reiškia, kad jei procesas arba užduotis pradedami vykdyti, operacinė sistema turi užbaigti savo procesą arba užduotį. Kol procesas arba užduotis nėra lygus nuliui, naujas arba kitas procesas ar užduotis nepradeda vykdyti. Neprevencinio planavimo apibrėžimas pagal operacinę sistemą reiškia, kad centrinis procesorius (CPU) bus visiškai paskirtas iki proceso ar užduoties pabaigos, kuri bus pradėta pirmiausia, o naujas procesas ar užduotis bus vykdoma tik baigus senesnį procesą arba darbas.

Gali būti keletas atvejų, dėl kurių centrinis procesorius (CPU) gali skirti per daug laiko. Taip yra todėl, kad taikant neprevencinį planavimo algoritmo „pirmas atėjai, pirmas“ metodą, procesai arba užduotys parenkami eilės tvarka. Dėl šios priežasties trumpesnės užduotys ar procesai už didesnių procesų ar užduočių užtrunka per daug laiko, kad būtų užbaigtas jo vykdymas. Dėl šios priežasties laukimo laikas, apsisukimo laikas, užbaigimo laikas yra labai ilgas.

FCFS planavimo algoritmai OS (operacinėje sistemoje)

Taigi, kadangi pirmasis procesas yra didelis arba užbaigimo laikas yra per ilgas, atsiranda šis Konvojaus efektas „Pirmas atėjai pirmas“ algoritme.

Tarkime, kad ilgesniam darbui atlikti reikia be galo daug laiko. Tada likę procesai turi laukti tą patį begalinį laiką. Dėl šio Ilgesnio darbo sukurto Konvojaus efekto labai sparčiai didėja laukimo procesų badavimas. Tai yra didžiausias FCFS procesoriaus procesų planavimo trūkumas.

pakeisti iš eilutės java

FCFS procesoriaus procesų planavimo charakteristikos

FCFS procesoriaus procesų planavimo ypatybės yra šios:

  1. Įgyvendinimas paprastas.
  2. Naudojimo metu nesukelia jokių priežastinių padarinių
  3. Ji priima prevencinę ir prevencinę strategiją.
  4. Kiekviena procedūra atliekama tokia tvarka, kokia jos gaunamos.
  5. Atvykimo laikas naudojamas kaip procedūrų atrankos kriterijus.

FCFS procesoriaus procesų planavimo pranašumai

FCFS procesoriaus procesų planavimo pranašumai yra šie:

  1. Norėdamas paskirstyti procesus, jis naudoja eilę First In First Out.
  2. FCFS procesoriaus planavimo procesas yra paprastas ir lengvai įgyvendinamas.
  3. FCFS situacijoje prevencinis planavimas nėra tikimybės, kad procesas suges.
  4. Kadangi neatsižvelgiama į proceso prioritetą, tai yra teisingas algoritmas.

FCFS procesoriaus procesų planavimo trūkumai

FCFS procesoriaus procesų planavimo trūkumai yra šie:

  • FCFS procesoriaus planavimo algoritmas turi ilgą laukimo laiką
  • FCFS CPU planavimas teikia pirmenybę CPU, o ne įvesties ar išvesties operacijoms
  • FCFS yra konvojaus efekto atsiradimo tikimybė
  • Kadangi FCFS yra tokia paprasta, ji dažnai nėra labai efektyvi. Kartu su tuo susiję ir ilgesni laukimo terminai. Visi kiti užsakymai paliekami neaktyvūs, jei CPU yra užimtas apdorojant vieną daug laiko reikalaujantį užsakymą.

„Pirmas atėjai, pirmas“ aptarnavimo procesoriaus planavimo algoritmo problemos

Pavyzdys

 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 

Neprevencinis požiūris

Dabar išspręskime šią problemą naudodamiesi planavimo algoritmu, pavadintu „Pirmas atėjai, pirmas aptarnavimas“, taikant neprevencinį metodą.

Pirmiau pateiktame 1 pavyzdyje Ganto diagrama yra tokia:

skaitymas iš csv failo java
FCFS planavimo algoritmai OS (operacinėje sistemoje)

Apsukimo laikas = užbaigimo laikas – atvykimo laikas

Laukimo laikas = apsisukimo laikas – serijos laikas

Pirmiau pateikto klausimo sprendimas 1 pavyzdys

Taip ne Proceso ID Atvykimo laikas Burst Time Užbaigimo laikas Apsisukimo laikas Laukimo laikas
1 P 1 A 0 9 9 9 0
2 P 2 B 1 3 12 vienuolika 8
3 P 3 C 1 2 14 13 vienuolika
4 P 4 D 1 4 18 17 13
5 P 5 IR 2 3 dvidešimt vienas 19 16
6 P 6 F 3 2 23 dvidešimt 18

Vidutinis užbaigimo laikas yra:

Vidutinis CT = ( 9 + 12 + 14 + 18 + 21 + 23 ) / 6

Vidutinis KT = 97/6

Vidutinis CT = 16,16667

Vidutinis laukimo laikas yra:

Vidutinis WT = ( 0 + 8 + 11 + 13 + 16 + 18 ) /6

Vidutinis WT = 66/6

Vidutinis WT = 11

Vidutinis apsisukimo laikas yra:

Vidutinis TAT ​​= ( 9 + 11 + 13 + 17 + 19 +20 ) / 6

programinės įrangos testavimas

Vidutinis TAT ​​= 89/6

Vidutinis TAT ​​= 14,83334

Taip FCFS išspręstas naudojant ne prevencinį metodą.

Dabar supraskime, kaip jas galima išspręsti taikant prevencinį metodą

Prevencinis požiūris

Dabar išspręskime šią problemą naudodamiesi planavimo algoritmu, pavadintu „Pirmas atėjai, pirmas aptarnavimas“, taikant prevencinį metodą.

Taikydami prevencinį metodą ieškome geriausio galimo proceso

Pirmiau pateiktame 1 pavyzdyje Ganto diagrama yra tokia:

pakeisti visą java
FCFS planavimo algoritmai OS (operacinėje sistemoje)
Taip ne Proceso ID Atvykimo laikas Burst Time Užbaigimo laikas Apsisukimo laikas Laukimo laikas
1 P 1 A 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 penkiolika 14 10
5 P 5 IR 2 3 vienuolika 9 7
6 P 6 F 3 2 5 2 0
kitas → ← Ankst

Siekdamas atsikratyti pažadinimo signalų švaistymo problemos, Dijkstra pasiūlė metodą, apimantį visų pažadinimo skambučių saugojimą. Dijkstra teigia, kad gamintojas gali įrašyti pažadinimo skambučius kintamajame, užuot davęs pažadinimo skambučius tiesiai vartotojui. Bet kuris vartotojas gali jį perskaityti, kai tik reikia.

Semaforas yra kintamieji, kuriuose saugomi visi pažadinimo skambučiai, kuriuos gamintojas perduoda vartotojui. Tai kintamasis, kurio skaitymas, modifikavimas ir atnaujinimas vyksta automatiškai branduolio režimu.

Semaforas negali būti įdiegtas vartotojo režimu, nes lenktynių sąlyga visada gali atsirasti, kai du ar daugiau procesų bando pasiekti kintamąjį vienu metu. Norint įdiegti, visada reikia operacinės sistemos palaikymo.

Pagal situacijos poreikį Semaforą galima suskirstyti į dvi kategorijas.

  1. Semaforo skaičiavimas
  2. Dvejetainis semaforas arba Mutex

Mes išsamiai aptarsime kiekvieną iš jų.