CPU ajakava Algorithms in Operating Systems
Mis on protsessori ajastamine?
CPU ajakava on protsess, mille käigus tehakse kindlaks, milline protsess omab täitmiseks CPU-d, kui mõni teine protsess on ootel. Protsessori ajastamise põhiülesanne on tagada, et iga kord, kui protsessor jääb jõude, valib OS vähemalt ühe täitmiseks valmis ootejärjekorras saadaolevatest protsessidest. Valikuprotsessi viib läbi CPU planeerija. See valib ühe mälus olevatest protsessidest, mis on täitmiseks valmis.
Protsessori ajastamise tüübid
Siin on kahte tüüpi ajastamismeetodeid.
Ennetav ajakava
Ennetavas ajastamises määratakse ülesanded enamasti nende prioriteetidega. Mõnikord on oluline käivitada kõrgema prioriteediga ülesanne enne teist madalama prioriteediga ülesannet, isegi kui madalama prioriteediga ülesanne on endiselt töös. Madalama prioriteediga ülesanne kehtib mõnda aega ja jätkub, kui kõrgema prioriteediga ülesanne on täitmise lõpetanud.
Mitteennetav ajakava
Seda tüüpi ajastamismeetodi puhul on CPU määratud kindlale protsessile. Protsess, mis hoiab CPU hõivatud, vabastab CPU kas konteksti vahetades või lõpetades. See on ainus meetod, mida saab kasutada erinevate riistvaraplatvormide jaoks. Seda seetõttu, et see ei vaja spetsiaalset riistvara (näiteks taimerit), nagu ennetav ajastamine.
Millal on ajakava ennetav või mitteennetav?
Et teha kindlaks, kas ajakava on ennetav või mitteennetav, võtke arvesse neid nelja parameetrit.
- Protsess lülitub töötavast olekust ooteolekusse.
- Konkreetne protsess lülitub tööolekust valmisolekusse.
- Konkreetne protsess lülitub ooteolekust valmisolekusse.
- Protsess lõpetas täitmise ja lõpetati.
Kehtivad ainult tingimused 1 ja 4, ajastamist nimetatakse mitteennetavaks.
Kõik muud ajaplaanid on ennetavad.
Olulised protsessori ajastamise terminoloogiad
- Sarivõtte aeg/täitmisaeg: See on aeg, mida protsess nõuab täitmise lõpuleviimiseks. Seda nimetatakse ka jooksuajaks.
- Saabumise aeg: kui protsess läheb valmisolekusse
- Lõpuaeg: kui protsess on lõppenud ja süsteemist väljuda
- Multiprogrammeerimine: Mitmed programmid, mis võivad samal ajal mälus olla.
- Töökohad: See on teatud tüüpi programm, millel puudub igasugune kasutaja sekkumine.
- Kasutaja: See on omamoodi programm, millel on kasutaja interaktsioon.
- Protsess: See on viide, mida kasutatakse nii töö kui ka kasutaja jaoks.
- CPU/IO sarivõtte tsükkel: Iseloomustab protsessi täitmist, mis vaheldub CPU ja I/O aktiivsusega. CPU ajad on tavaliselt lühemad kui I/O aeg.
CPU ajastamise kriteeriumid
Protsessori ajastamisalgoritm püüab maksimeerida ja minimeerida järgmist:
Maksimeerima
Protsessori kasutus:Protsessori kasutamine on peamine ülesanne, mille puhul operatsioonisüsteem peab tagama, et CPU oleks võimalikult hõivatud. See võib olla vahemikus 0 kuni 100 protsenti. RTOS-i puhul võib see aga olla vahemikus 40 protsenti madala taseme ja 90 protsendist kõrgetasemelise süsteemi puhul.
Läbilaskevõime: Protsesside arv, mis ajaühikus täitmise lõpetavad, on teada läbilaskevõime. Seega, kui protsessor on protsessi täitmisega hõivatud, on sel ajal töö tehtud ja ajaühikus tehtud tööd nimetatakse läbilaskevõimeks.
Minimeerima
Ooteaeg: Ooteaeg on summa, mille konkreetne protsess peab ootejärjekorras ootama.
Reaktsiooniaeg: See on ajavahemik, mille jooksul taotlus esitati kuni esimese vastuse saamiseni.
Tööaeg: Tööaeg on teatud protsessi läbiviimiseks kuluv aeg. See arvutab kogu aja, mis kulub mällu pääsemiseks, järjekorras ootamiseks ja protsessoris täitmiseks. Protsessi esitamise ja lõpetamise aja vaheline ajavahemik on pöördeaeg.
Intervallitaimer
Taimeri katkestamine on meetod, mis on tihedalt seotud eelmüügiga. Kui teatud protsess saab CPU jaotuse, võidakse taimer seada määratud intervallile. Nii taimeri katkestamine kui ka eelostmine sunnivad protsessi CPU-d tagastama enne, kui selle protsessori sari on lõppenud.
Enamik multiprogrammeeritud operatsioonisüsteeme kasutab teatud vormis taimerit, et takistada protsessil süsteemi igaveseks segi panemast.
Mis on dispetšer?
See on moodul, mis tagab protsessi CPU juhtimise. Dispetšer peaks olema kiire, et see saaks töötada iga kontekstilülitiga. Saatmise latentsusaeg on aeg, mida protsessori planeerija vajab ühe protsessi peatamiseks ja teise käivitamiseks.
Dispetšeri ülesanded:
- Konteksti vahetamine
- Lülitumine kasutajarežiimile
- Liikumine äsja laaditud programmis õigesse kohta.
Protsessori planeerimisalgoritmi tüübid
Peamiselt on kuus tüüpi protsesside ajastamise algoritmid
- Serveerimine „kes ees, mees” (FCFS)
- Lühim töö esimene (SJF) ajakava
- Lühim järelejäänud aeg
- Prioriteetne ajakava
- Round Robini ajakava
- Mitmetasandiline järjekorra ajastamine
Serveeri „kes ees, see mees“.
„First Come Serve“ on FCFS-i täisvorm. See on kõige lihtsam ja lihtsam protsessori ajastamise algoritm. Seda tüüpi algoritmi puhul saab protsess, mis taotleb protsessorit, esmalt CPU jaotuse. Seda ajastamismeetodit saab hallata FIFO järjekorraga.
Kui protsess siseneb valmisjärjekorda, seotakse selle PCB (Process Control Block) järjekorra sabaga. Seega, kui protsessor vabaneb, tuleks see määrata protsessile järjekorra alguses.
FCFS meetodi omadused
- See pakub mitte-ennetavat ja ennetavat ajastamisalgoritmi.
- Tööd täidetakse alati "kes ees, see mees" põhimõttel
- Seda on lihtne rakendada ja kasutada.
- Selle meetodi jõudlus on aga kehv ja üldine ooteaeg on üsna pikk.
Lühim järelejäänud aeg
SRT täisvorm on Lühim järelejäänud aeg. Seda tuntakse ka kui SJF-i ennetavat ajakava. Selle meetodi puhul eraldatakse protsess ülesandele, mis on selle täitmisele kõige lähemal. See meetod takistab uuemal valmisoleku protsessil vanema protsessi lõpuleviimist.
SRT sõiduplaani meetodi omadused
- Seda meetodit kasutatakse enamasti partiikeskkondades, kus tuleb eelistada lühikesi töid.
- See ei ole ideaalne meetod selle rakendamiseks jagatud süsteemis, kus vajalik protsessori aeg on teadmata.
- Seostage iga protsessiga selle järgmise CPU-paketi pikkusena. Nii et operatsioonisüsteem kasutab neid pikkusi, mis aitab ajastada protsessi võimalikult lühikese ajaga.
Prioriteedipõhine ajakava
Prioriteetne ajakava on prioriteetide alusel protsesside ajastamise meetod. Selle meetodi puhul valib planeerija prioriteedi järgi tööülesanded.
Prioriteedi ajastamine aitab ka OS-il kaasata prioriteetseid ülesandeid. Esmalt tuleks läbi viia kõrgema prioriteediga protsessid, samas kui võrdse prioriteediga tööd tehakse ring- või FCFS-põhiselt. Prioriteedi saab otsustada mälunõuete, ajanõuete jms põhjal.
Round-Robini ajakava
Round robin on vanim ja lihtsaim ajastamisalgoritm. Selle algoritmi nimi tuleneb round-robin printsiibist, kus iga inimene saab kordamööda millestki võrdse osa. Seda kasutatakse enamasti algoritmide ajastamiseks multitegumtöös. See algoritmmeetod aitab protsesse näljavabalt ellu viia.
Round-Robini ajakava omadused
- Round robin on hübriidmudel, mis on kellaajam
- Ajalõik peaks olema minimaalne, mis määratakse konkreetse töödeldava ülesande jaoks. Erinevate protsesside puhul võib see aga erineda.
- See on reaalajas süsteem, mis reageerib sündmusele kindla aja jooksul.
Esmalt lühim töö
SJF on (kõigepealt lühima töö) täisvorm on ajastamisalgoritm, mille puhul tuleks järgmisena käivitamiseks valida kõige lühema täitmisajaga protsess. See ajastamismeetod võib olla ennetav või mitteennetav. See vähendab oluliselt teiste täitmist ootavate protsesside keskmist ooteaega.
SJF ajakava omadused
- See on seotud iga tööga täitmiseks kuluva ajaühikuna.
- Selle meetodi puhul, kui protsessor on saadaval, käivitatakse kõigepealt järgmine protsess või töö, mille valmimisaeg on kõige lühem.
- Seda rakendatakse mitteennetava poliitikaga.
- See algoritmimeetod on kasulik pakett-tüüpi töötlemiseks, kus tööde lõpetamise ootamine pole kriitiline.
- See parandab töötulemusi, pakkudes lühemaid töid, mis tuleks esmalt teostada ja mille tööaeg on enamasti lühem.
Mitmetasandiliste järjekordade ajastamine
See algoritm eraldab valmis järjekorra erinevateks eraldi järjekordadeks. Selle meetodi puhul määratakse protsessid järjekorda, mis põhineb protsessi konkreetsel omadusel, nagu protsessi prioriteet, mälu suurus jne.
See ei ole aga sõltumatu ajastamise OS-i algoritm, kuna see peab tööde ajastamiseks kasutama teist tüüpi algoritme.
Iseloomulik mitmetasandiliste järjekordade ajastamisele
- Mõnede omadustega protsesside jaoks tuleks säilitada mitu järjekorda.
- Igal järjekorral võib olla eraldi ajastamisalgoritmid.
- Igale järjekorrale määratakse prioriteedid.
Ajastamisalgoritmi eesmärk
Siin on ajastamisalgoritmi kasutamise põhjused.
- CPU kasutab oma tõhususe parandamiseks ajastamist.
- See aitab teil konkureerivate protsesside vahel ressursse jaotada.
- Protsessori maksimaalset kasutust saab saavutada mitme programmeerimisega.
- Täitatavad protsessid on valmis järjekorras.
kokkuvõte
- Protsessori ajastamine on protsess, mille käigus määratakse kindlaks, milline protsess omab täitmiseks CPU-d, kui mõni teine protsess on ootel.
- Ennetavas ajastamises määratakse ülesanded enamasti nende prioriteetidega.
- Mitte-ennetava ajastamise meetodi puhul on CPU määratud konkreetsele protsessile.
- Sarivõtte aeg on aeg, mis kulub protsessi täitmiseks. Seda nimetatakse ka jooksuajaks.
- Protsessori kasutamine on peamine ülesanne, mille puhul operatsioonisüsteem peab tagama, et protsessor oleks võimalikult hõivatud.
- Protsesside arv, mis ajaühikus täitmise lõpetavad, on teada läbilaskevõime.
- Ooteaeg on summa, mille konkreetne protsess peab ootejärjekorras ootama.
- See on aeg, mille jooksul taotlus esitati kuni esimese vastuse saamiseni.
- Tööaeg on konkreetse protsessi läbiviimiseks kuluv aeg.
- Taimeri katkestamine on meetod, mis on tihedalt seotud eelmüügiga.
- Dispetšer on moodul, mis tagab protsessi CPU juhtimise.
- Kuut tüüpi protsesside ajastamise algoritme on järgmised: teenindage kõigepealt (FCFS), 2) lühima töö esimesena (SJF) ajakava, 3) lühim järelejäänud aeg, 4) prioriteetne ajastamine, 5) ringipõhine ajastamine, 6) mitmetasandiline järjekorra ajastamine. .
- aasta Meetod „kes ees, see mees”., protsess, mis taotleb CPU-d, saab kõigepealt CPU jaotuse.
- Kõige lühema järelejäänud aja jooksul eraldatakse protsess ülesandele, mis on selle lõpetamisele kõige lähemal.
- Prioriteetse ajastamise puhul valib planeerija prioriteedi järgi tööülesanded.
- Ringmängu ajakava töötab põhimõttel, kus iga inimene saab kordamööda millestki võrdse osa.
- Esmalt lühim töö puhul tuleks järgmiseks täitmiseks valida lühim täitmisaeg.
- Mitmetasandiline ajastamismeetod eraldab valmis järjekorra erinevateks eraldi järjekordadeks. Selle meetodi puhul määratakse protsessid järjekorda konkreetse atribuudi alusel.
- CPU kasutab oma tõhususe parandamiseks ajastamist.