Kas yra procesoriaus planavimas?
CPU planavimas yra procesas, kurio metu nustatoma, kuriam procesui priklausys procesorius, o kitas procesas bus sulaikytas. Pagrindinė procesoriaus planavimo užduotis yra įsitikinti, kad kai tik procesorius lieka nenaudojamas, OS bent jau pasirenka vieną iš procesų, galimų vykdyti eilėje. Pasirinkimo procesą atliks procesoriaus planuoklis. Jis parenka vieną iš atmintyje esančių procesų, kurie yra paruošti vykdyti.
Šioje procesoriaus planavimo pamokoje sužinosite:
- Kas yra procesoriaus planavimas?
- CPU planavimo tipai
- Svarbios procesoriaus planavimo terminologijos
- CPU planavimo kriterijai
- Intervalo laikmatis
- Kas yra dispečeris?
- CPU planavimo algoritmo tipai
- Pirmiausia ateikite pirmas
- Trumpiausias likęs laikas
- Prioritetinis planavimas
- „Round-Robin“ planavimas
- Pirmiausia trumpiausias darbas
- Kelių lygių eilučių planavimas
- Planavimo algoritmo tikslas
CPU planavimo tipai
Čia yra dviejų rūšių planavimo metodai:
Išankstinis planavimas
Taikant išankstinį planavimą, užduotys dažniausiai skiriamos pagal jų prioritetus. Kartais svarbu vykdyti užduotį su didesniu prioritetu prieš kitą žemesnio prioriteto užduotį, net jei vis dar vykdoma žemesnio prioriteto užduotis. Žemesnio prioriteto užduotis laikoma tam tikrą laiką ir atnaujinama, kai aukštesnio prioriteto užduotis baigia vykdyti.
Neplaninis planavimas
Šio tipo planavimo metodu procesorius buvo priskirtas konkrečiam procesui. Procesas, palaikantis procesoriaus užimtumą, atleis procesorių pakeisdamas kontekstą arba nutraukdamas. Tai yra vienintelis metodas, kurį galima naudoti įvairioms aparatinės įrangos platformoms. Taip yra todėl, kad jai nereikia specialios aparatūros (pavyzdžiui, laikmačio), pavyzdžiui, prevencinio planavimo.
Kada planavimas yra pirmenybinis ar ne pirmenybinis?
Norėdami nustatyti, ar planavimas yra prevencinis, ar ne, apsvarstykite šiuos keturis parametrus:
- Procesas pereina iš bėgimo į laukimo būseną.
- Konkretus procesas pereina iš veikiančios būsenos į parengties būseną.
- Konkretus procesas pereina iš laukimo būsenos į parengties būseną.
- Procesas baigė vykdyti ir nutraukė.
Taikomos tik 1 ir 4 sąlygos, planavimas vadinamas neprepresyviu.
Visi kiti planai yra prevenciniai.
Svarbios procesoriaus planavimo terminologijos
- Serijos laikas / vykdymo laikas: tai laikas, kurio reikalauja procesas, kad užbaigtų vykdymą. Jis taip pat vadinamas bėgimo laiku.
- Atvykimo laikas: kai procesas pereina į paruoštą būseną
- Baigimo laikas: kai procesas bus baigtas ir išeisite iš sistemos
- Daugiaprogramavimas: daugybė programų, kurios gali būti atmintyje vienu metu.
- Darbas: Tai yra tam tikros rūšies programa, be jokio vartotojo sąveikos.
- Vartotojas: Tai yra tam tikra programa, turinti vartotojo sąveiką.
- Procesas: Tai nuoroda, naudojama tiek darbui, tiek vartotojui.
- CPU / IO serijos ciklas: apibūdina proceso vykdymą, kuris keičia CPU ir I / O veiklą. Procesoriaus laikas paprastai yra trumpesnis nei įvesties / išvesties laikas.
CPU planavimo kriterijai
CPU planavimo algoritmas bando maksimaliai padidinti ir sumažinti:
Padidinti:
Procesoriaus naudojimas: procesoriaus naudojimas yra pagrindinė užduotis, kurią atliekant operacinė sistema turi įsitikinti, kad procesorius išlieka kuo užimtas. Tai gali svyruoti nuo 0 iki 100 procentų. Tačiau RTOS atveju jis gali svyruoti nuo 40 procentų žemo lygio ir 90 procentų aukšto lygio sistemoms.
Pralaidumas: Procesų, kurie užbaigia jų vykdymą per laiko vienetą, skaičius yra žinomas. Taigi, kai procesorius yra užimtas vykdant procesą, tuo metu darbas yra atliekamas, o darbas, atliktas per laiko vienetą, vadinamas pralaidumu.
Sumažinti:
Laukimo laikas: laukimo laikas yra suma, kurios konkrečiam procesui reikia laukti parengtoje eilėje.
Atsakymo laikas: tai laikas, per kurį buvo pateikta užklausa, kol bus pateiktas pirmasis atsakymas.
Apyvartos laikas: Apyvartos laikas yra tam tikro proceso vykdymo laikas. Tai yra viso laiko, praleisto laukiant, kol pateks į atmintį, laukimas eilėje ir vykdymas procesoriuje, apskaičiavimas. Laikotarpis nuo proceso pateikimo iki užbaigimo yra apyvartos laikas.
Intervalo laikmatis
Laikmačio pertraukimas yra metodas, glaudžiai susijęs su išankstiniu nusistatymu. Kai tam tikras procesas gauna paskirstymą procesoriui, laikmatis gali būti nustatytas į nurodytą intervalą. Tiek laikmačio pertraukimas, tiek išankstinis nustatymas priverčia procesą grąžinti procesorių, kol jo procesorius nesibaigia.
Dauguma daugiaprogramių operacinių sistemų naudoja tam tikrą laikmačio formą, kad procesas visam laikui nesusietų.
Kas yra dispečeris?
Tai modulis, kuris suteikia procesoriaus valdymą procesui. Dispečeris turėtų būti greitas, kad galėtų veikti kiekviename konteksto jungiklyje. Išsiuntimo vėlavimas yra laikas, kurio reikia procesoriaus planuotojui sustabdyti vieną procesą ir pradėti kitą.
Dispečerio atliekamos funkcijos:
- Konteksto perjungimas
- Perjungimas į vartotojo režimą
- Perkeliama į teisingą vietą naujai įkeltoje programoje.
CPU planavimo algoritmo tipai
Yra daugiausia šešių tipų procesų planavimo algoritmai
- Pirmasis ateik pirmas patiekalas (FCFS)
- Trumpiausias darbas pirmiausia (SJF) planavimas
- Trumpiausias likęs laikas
- Pirmumo planavimas
- Apskrito Robino planavimas
- Daugiapakopio eilės planavimas
Pirmiausia ateikite pirmas
„First Come First Serve“ yra visa FCFS forma. Tai paprasčiausias ir paprasčiausias procesoriaus planavimo algoritmas. Šio tipo algoritme procesas, reikalaujantis procesoriaus, pirmiausia gauna procesoriaus paskirstymą. Šį planavimo metodą galima valdyti FIFO eilėje.
Procesui patekus į parengtą eilę, jo PCB (proceso valdymo blokas) susiejamas su eilės uodega. Taigi, kai procesorius tampa laisvas, jis turėtų būti priskirtas procesui eilės pradžioje.
FCFS metodo charakteristikos:
- Jis siūlo ne išankstinį ir išankstinį planavimo algoritmą.
- Darbai visada vykdomi pirmumo principu
- Tai lengva įgyvendinti ir naudoti.
- Tačiau šis metodas yra blogas, o bendras laukimo laikas yra gana ilgas.
Trumpiausias likęs laikas
Visa SRT forma yra trumpiausias likęs laikas. Jis taip pat žinomas kaip prevencinis SJF planavimas. Taikant šį metodą, procesas bus priskirtas užduočiai, kuri yra arčiausiai jos atlikimo. Šis metodas neleidžia naujesnės parengties būsenos procesui sulaikyti senesnio proceso pabaigos.
SRT planavimo metodo charakteristikos:
- Šis metodas dažniausiai taikomas paketinėse aplinkose, kur reikia teikti pirmenybę trumpiems darbams.
- Tai nėra idealus būdas jį įgyvendinti bendroje sistemoje, kur nežinomas reikalingas procesoriaus laikas.
- Susiekite su kiekvienu procesu, nes jo kito procesoriaus sprogo ilgis. Taigi ta operacinė sistema naudoja šiuos ilgius, o tai padeda planuoti procesą per trumpiausią įmanomą laiką.
Prioritetinis planavimas
Prioriteto planavimas yra procesų planavimo metodas, pagrįstas prioritetu. Taikant šį metodą, tvarkaraštis parenka užduotis, kurios turi dirbti pagal prioritetą.
Prioriteto planavimas taip pat padeda OS įtraukti prioritetines užduotis. Pirmiausia turėtų būti vykdomi procesai, kuriems teikiamas didesnis prioritetas, o darbo vietos, kurių prioritetai yra vienodi, vykdomi pirmyn ar per visą laiką. Prioritetą galima nuspręsti atsižvelgiant į atminties reikalavimus, laiko reikalavimus ir kt.
„Round-Robin“ planavimas
Apskritimas yra seniausias, paprasčiausias planavimo algoritmas. Šio algoritmo pavadinimas kilęs iš „round-robin“ principo, kai kiekvienas žmogus iš eilės gauna vienodą kažko dalį. Dažniausiai jis naudojamas algoritmų planavimui atliekant daugiafunkcines užduotis. Šis algoritmo metodas padeda be bado vykdyti procesus.
„Round-Robin“ planavimo ypatybės
- Apskritimas yra hibridinis modelis, valdomas pagal laikrodį
- Laiko dalis turėtų būti minimali, kuri skiriama konkrečiai apdorotinai užduočiai. Tačiau skirtingiems procesams jis gali skirtis.
- Tai realaus laiko sistema, kuri reaguoja į įvykį per tam tikrą laiką.
Pirmiausia trumpiausias darbas
SJF yra visa forma („Trumpiausias darbas pirmiausia“) yra planavimo algoritmas, kuriame vykdymui turėtų būti pasirinktas procesas su trumpiausiu vykdymo laiku. Šis planavimo metodas gali būti prevencinis arba neprognozuojantis. Tai žymiai sumažina kitų procesų, laukiančių vykdymo, vidutinę laukimo laiką.
SJF planavimo ypatybės
- Jis susietas su kiekvienu darbu kaip laiko vienetas, kurį reikia atlikti.
- Taikant šį metodą, kai bus prieinamas procesorius, pirmiausia bus vykdomas kitas procesas ar darbas, kurio užbaigimo laikas yra trumpiausias.
- Jis įgyvendinamas laikantis ne prevencinės politikos.
- Šis algoritmo metodas yra naudingas paketinio tipo apdorojimui, kai laukti, kol darbai bus baigti, nėra kritiška.
- Tai pagerina darbo našumą siūlant trumpesnes darbo vietas, kurios turėtų būti vykdomos pirmiausia, o jų darbo laikas dažniausiai yra trumpesnis.
Kelių lygių eilučių planavimas
Šis algoritmas paruoštą eilę atskiria į įvairias atskiras eiles. Taikant šį metodą, procesai priskiriami eilei, atsižvelgiant į konkrečią proceso savybę, pvz., Proceso prioritetą, atminties dydį ir kt.
Tačiau tai nėra nepriklausomas OS algoritmo planavimas, nes norint suplanuoti darbus, reikia naudoti kitų tipų algoritmus.
Būdingas kelių lygių eilučių planavimas:
- Turėtų būti išlaikytos kelios eilės procesams, turintiems tam tikrų savybių.
- Kiekvienoje eilėje gali būti atskiri planavimo algoritmai.
- Kiekvienai eilei suteikiami prioritetai.
Planavimo algoritmo tikslas
Čia pateikiamos planavimo algoritmo naudojimo priežastys:
- Kad pagerintų savo efektyvumą, procesorius naudoja planavimą.
- Tai padeda paskirstyti išteklius tarp konkuruojančių procesų.
- Maksimalų procesoriaus panaudojimą galima pasiekti naudojant daugiaprogramavimą.
- Vykdomi procesai yra parengtoje eilėje.
Santrauka:
- Procesoriaus planavimas yra procesas, kurio metu nustatoma, kuriam procesui priklausys procesorius, o kitas procesas bus sulaikytas.
- Taikant išankstinį planavimą, užduotys dažniausiai skiriamos pagal jų prioritetus.
- Neapsaugos planavimo metodu procesorius buvo priskirtas konkrečiam procesui.
- Serijos laikas yra laikas, reikalingas procesui užbaigti. Jis taip pat vadinamas bėgimo laiku.
- Procesoriaus naudojimas yra pagrindinė užduotis, kurios metu operacinė sistema turi užtikrinti, kad procesorius išliktų kuo užimtas
- Procesų, kurie užbaigia jų vykdymą per laiko vienetą, skaičius yra žinomas.
- Laukimo laikas yra suma, kurios konkrečiam procesui reikia laukti parengtoje eilėje.
- Tai yra laikas, per kurį buvo pateiktas prašymas, kol bus pateiktas pirmasis atsakymas.
- Apyvartos laikas yra tam tikro proceso vykdymo laikas.
- Laikmačio pertraukimas yra metodas, glaudžiai susijęs su išankstiniu
- Dispečeris yra modulis, suteikiantis procesoriaus valdymą procesui.
- Šeši procesų planavimo algoritmų tipai yra šie:
- „Pirmojo atėjimo pirmas tarnavimas“ (FCFS), 2) „Trumpiausias darbas pirmiausia“ (SJF) planavimas 3) Trumpiausias likęs laikas 4) Prioriteto planavimas 5) „Robin“ planavimas 6) Daugiapakopio eilės planavimas
- Taikant metodą „Pirmas ateikite pirmą kartą“, procesas, reikalaujantis procesoriaus, pirmiausia gauna procesoriaus paskirstymą.
- Per trumpiausią likusį laiką procesas bus paskirtas užduočiai, kuri yra arčiausiai jos atlikimo.
- Skiltyje „Prioriteto planavimas“ tvarkaraštis parenka užduotis, kurias reikia atlikti pagal prioritetą.
- Šis „Round Robin“ planavimas veikia iš principo, kai kiekvienas žmogus iš eilės gauna vienodą kažko dalį
- Pirmiausia trumpiausiame darbe turėtų būti pasirinktas trumpiausias vykdymo laikas
- Taikant daugiapakopį planavimą, metodas atskiria paruoštą eilę į įvairias atskiras eiles. Taikant šį metodą, procesai priskiriami eilei pagal tam tikrą ypatybę
- Kad pagerintų savo efektyvumą, procesorius naudoja planavimą.