Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 5: Kukonzekera: Mndandanda wa Ndemanga za Magawo Ambiri (kumasulira)

Chiyambi cha Operating Systems

Pa Habr! Ndikufuna kubweretsa kwa inu mndandanda wa zolemba-zomasulira za buku limodzi losangalatsa m'malingaliro anga - OSTEP. Nkhaniyi ikufotokoza mozama za ntchito zamakina ogwiritsira ntchito ngati unix, mwachitsanzo, kugwira ntchito ndi njira, ma scheduler osiyanasiyana, kukumbukira, ndi zina zofananira zomwe zimapanga OS yamakono. Mutha kuwona choyambirira cha zida zonse apa apa. Chonde dziwani kuti kumasuliraku kudapangidwa mopanda ntchito (mwaulere), koma ndikhulupilira kuti ndidasunga tanthauzo lake.

Ntchito ya labu pankhaniyi ikupezeka apa:

Zigawo zina:

Mutha kuyang'ananso njira yanga pa uthengawo =)

Kukonzekera: Mzere wa Mayankho a Magawo Ambiri

M'nkhani ino tidzakambirana za mavuto omwe akupanga njira imodzi yotchuka kwambiri
kupanga, komwe kumatchedwa Mzere wa Mayankho a Mipikisano Yambiri (MLFQ). Wokonza MLFQ adafotokozedwa koyamba mu 1962 ndi Fernando J. CorbatΓ³ mu dongosolo lotchedwa
Compatible Time-Sharing System (CTSS). Izi zimagwiranso ntchito (kuphatikiza pambuyo pake
Multics) pambuyo pake adasankhidwa kukhala Mphotho ya Turing. Wopangayo anali
pambuyo pake ndidapeza mawonekedwe omwe amapezeka kale mkati
machitidwe ena amakono.

Ma algorithm a MLFQ amayesa kuthana ndi zovuta ziwiri zokulirapo.
Choyamba, imayesa kukhathamiritsa nthawi yosinthira, yomwe, monga tafotokozera m'nkhani yapitayi, imakongoletsedwa ndi njira yoyambira kumayambiriro kwa mzere kwambiri.
ntchito zazifupi. Komabe, OS sadziwa kuti njira inayake idzatenga nthawi yayitali bwanji, ndipo izi
chidziwitso chofunikira pakugwiritsa ntchito ma algorithms a SJF, STCF. Chachiwiri, MLFQ ikuyesera
kupanga makinawo kuti ayankhe kwa ogwiritsa ntchito (mwachitsanzo, kwa iwo omwe amakhala ndi
yang'anani pazenera kudikirira kuti ntchitoyo ithe) ndikuchepetsa nthawi
kuyankha. Tsoka ilo, ma algorithms ngati RR amawongolera nthawi yoyankha, koma kwambiri
kukhala ndi zotsatira zoyipa pa metric yosinthira nthawi. Chifukwa chake vuto lathu: Momwe mungapangire
ndandanda yomwe ikwaniritsa zofunikira zathu popanda kudziwa chilichonse
chikhalidwe cha ndondomeko zonse? Kodi scheduler angaphunzire bwanji mawonekedwe a ntchito,
zomwe zimayambitsa ndikupanga zisankho zabwinoko?

Chiyambi cha vuto: Kodi mungakonzekere bwanji makonzedwe a ntchito popanda chidziwitso changwiro?
Momwe mungapangire cholembera chomwe chimachepetsa nthawi yoyankha nthawi imodzi
kwa ntchito zolumikizana ndipo nthawi yomweyo zimachepetsa nthawi yosinthira popanda kudziwa
kudziwa nthawi yogwira ntchito?

Zindikirani: timaphunzira kuchokera ku zochitika zam'mbuyo

Mzere wa MLFQ ndi chitsanzo chabwino kwambiri cha machitidwe omwe amaphunzirapo
zochitika zakale kuti zilosere zam'tsogolo. Njira zofananira nthawi zambiri zimakhala
zopezeka mu OS (Ndi nthambi zina zambiri zamakompyuta, kuphatikiza nthambi
kulosera kwa hardware ndi caching algorithms). Maulendo ofanana
Zimayambika pamene ntchito zili ndi magawo amakhalidwe ndipo motero zimakhala zodziwikiratu.
Komabe, muyenera kusamala ndi njira iyi chifukwa zoneneratu ndizosavuta
zitha kukhala zolakwika ndikupangitsa kuti dongosolo lipange zisankho zoyipa kuposa
akanakhala opanda chidziwitso konse.

MLFQ: Malamulo Oyambira

Tiyeni tiwone malamulo oyambira a MLFQ algorithm. Ndipo ngakhale kukhazikitsa kwa algorithm iyi
Pali zingapo, njira zoyambira ndizofanana.
Pokhazikitsa tikhala tikuyang'ana, MLFQ ikhala ndi zingapo
mizere yosiyana, iliyonse yomwe idzakhala ndi zofunikira zosiyana. Nthawi iliyonse,
ntchito yokonzekera kuchitidwa ili pamzere umodzi. MLFQ imagwiritsa ntchito zofunika kwambiri,
kusankha ntchito yoti agwire kuti aphedwe, i.e. ntchito ndi apamwamba
zofunika (ntchito yochokera pamzere yomwe ili yofunika kwambiri) idzayambika kaye
pamzere.
Zachidziwikire, pakhoza kukhala ntchito yopitilira imodzi pamzere woperekedwa, choncho
kotero iwo adzakhala ndi patsogolo mofanana. Pankhaniyi, makinawo adzagwiritsidwa ntchito
RR kuti mukonzekere kuthamanga pakati pa ntchito izi.
Chifukwa chake tifika pamalamulo awiri ofunikira a MLFQ:

  • Lamulo1: Ngati choyambirira (A)> Chofunika Kwambiri (B), ntchito A idzayambitsidwa (B sichidzayamba)
  • Lamulo2: Ngati choyambirira (A) = Chofunika Kwambiri (B), A&B ayamba kugwiritsa ntchito RR

Kutengera zomwe tafotokozazi, zinthu zofunika pakukonza MLFQ
ndizo zofunika kwambiri. M'malo mopereka patsogolo chokhazikika kwa aliyense
ntchito, MLFQ imasintha kufunikira kwake kutengera zomwe zimawonedwa.
Mwachitsanzo, ngati ntchito nthawi zonse ikuponya ntchito pa CPU podikirira kulowetsa kiyibodi,
MLFQ idzaika patsogolo ntchito chifukwa ndi momwemo
njira yolumikizirana iyenera kugwira ntchito. Ngati, m'malo mwake, ntchitoyo nthawi zonse ndi
amagwiritsa ntchito CPU kwambiri kwa nthawi yayitali, MLFQ imatsitsa
chofunika kwambiri. Chifukwa chake, MLFQ iphunzira momwe zimakhalira zikuyenda
ndi kugwiritsa ntchito makhalidwe.
Tiyeni tijambule chitsanzo cha momwe mizere ingawonekere nthawi ina
nthawi ndipo mupeza chinthu chonga ichi:
Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 5: Kukonzekera: Mndandanda wa Ndemanga za Magawo Ambiri (kumasulira)

Pachiwembu ichi, njira ziwiri A ndi B zili pamzere wapamwamba kwambiri. Njira
C ali penapake pakati, ndipo ndondomeko D ili kumapeto kwenikweni kwa mzere. Malinga ndi pamwamba
Malinga ndi kufotokozera kwa algorithm ya MLFQ, wokonza mapulani azigwira ntchito ndi apamwamba kwambiri
Zofunikira molingana ndi RR, ndi ntchito C, D sizigwira ntchito.
Mwachilengedwe, chithunzithunzi chokhazikika sichingapereke chithunzi chonse cha momwe MLFQ imagwirira ntchito.
Ndikofunika kumvetsetsa bwino momwe chithunzicho chimasinthira pakapita nthawi.

Kuyesera 1: Momwe mungasinthire zofunikira

Pakadali pano muyenera kusankha momwe MLFQ ingasinthire gawo loyambirira
ntchito (ndipo momwe ntchitoyo ilili pamzere) pamene ikupita patsogolo pa moyo wake. Za
izi ndizofunikira kukumbukira kayendetsedwe ka ntchito: kuchuluka kwa ndalama
ntchito zolumikizana ndi nthawi yayitali (ndipo kumasulidwa pafupipafupi
CPU) ndi ntchito zingapo zazitali zomwe zimagwiritsa ntchito CPU nthawi yawo yonse yogwira ntchito, pomwe
Nthawi yoyankhira si yofunika pa ntchito zoterezi. Ndipo mwanjira iyi mutha kuyesa koyamba
gwiritsani ntchito algorithm ya MLFQ ndi malamulo awa:

  • Lamulo 3: Ntchito ikalowa m'dongosolo, imayikidwa pamzere wokhala ndi apamwamba kwambiri
  • chofunika kwambiri.
  • Rule4a: Ngati ntchito ikugwiritsa ntchito zenera la nthawi yonse yomwe yapatsidwa, ndiye
  • zofunika zachepetsedwa.
  • Rule4b: Ngati Ntchito itulutsa CPU nthawi yake isanathe, ndiye
  • imakhalabe ndi cholinga chomwecho.

Chitsanzo 1: Ntchito imodzi yokhalitsa

Monga tikuwonera mu chitsanzo ichi, ntchito yovomerezeka imayikidwa ndi apamwamba kwambiri
chofunika kwambiri. Pambuyo pa zenera la 10ms, njirayi imatsitsidwa patsogolo
wokonza. Pambuyo pawindo lotsatira, ntchitoyi imatsitsidwa
otsika kwambiri mu dongosolo, kumene amakhala.
Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 5: Kukonzekera: Mndandanda wa Ndemanga za Magawo Ambiri (kumasulira)

Chitsanzo 2: Anapereka ntchito yaifupi

Tsopano tiyeni tiwone chitsanzo cha momwe MLFQ ingayesere kuyandikira SJF. Mu zimenezo
Mwachitsanzo, ntchito ziwiri: A, yomwe ndi ntchito yayitali nthawi zonse
kukhala ndi CPU ndi B, yomwe ndi ntchito yochepa yolumikizana. Tiyerekeze
kuti A anali atagwira kale ntchito kwakanthawi pomwe ntchito B idafika.
Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 5: Kukonzekera: Mndandanda wa Ndemanga za Magawo Ambiri (kumasulira)

Chithunzichi chikuwonetsa zotsatira za zochitikazo. Ntchito A, monga ntchito iliyonse,
Kugwiritsa ntchito CPU kunali pansi kwambiri. Ntchito B idzafika nthawi T=100 ndipo idzafika
ayikidwa pamzere wapamwamba kwambiri. Popeza nthawi yake yogwira ntchito ndi yochepa, ndiye
idzamaliza isanafike pamzere womaliza.

Kuchokera ku chitsanzo ichi, cholinga chachikulu cha algorithm chiyenera kumveka: popeza ndondomekoyi sichitha
amadziwa ngati ntchitoyo ndi yayitali kapena yaifupi, ndiye choyamba amaona kuti ntchitoyo ndi yaitali
mwachidule ndipo amachipereka patsogolo kwambiri. Ngati iyi ndi ntchito yayifupi, ndiye
idzamalizidwa mwamsanga, apo ayi ngati ili ntchito yaitali, idzayenda pang’onopang’ono
patsogolo ndipo posachedwa adzatsimikizira kuti iye ndi ntchito yayitali yomwe siili
amafuna kuyankha.

Chitsanzo 3: Nanga I/O?

Tsopano tiyeni tiwone chitsanzo cha I/O. Monga tanenera mu lamulo 4b,
ngati ndondomeko imatulutsa purosesa popanda kugwiritsa ntchito nthawi yake yonse,
ndiye imakhalabe pamlingo womwewo wofunikira. Cholinga cha lamuloli ndi chophweka
- ngati ntchito yolumikizana imagwira ntchito zambiri za I / O, mwachitsanzo, kuyembekezera
kuchokera pa kiyi ya wosuta kapena makina osindikizira a mbewa, ntchito yotereyi idzamasula purosesa
pamaso pa zenera lopatsidwa. Sitikufuna kutsitsa ntchito yotereyi,
ndipo motero idzakhalabe pamlingo womwewo.
Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 5: Kukonzekera: Mndandanda wa Ndemanga za Magawo Ambiri (kumasulira)

Chitsanzochi chikuwonetsa momwe ma algorithm angagwirire ntchito ndi njira zotere - ntchito yolumikizirana B, yomwe imangofunika CPU ya 1ms isanachitike.
Njira ya I/O ndi Job A yanthawi yayitali, yomwe imathera nthawi yake yonse pogwiritsa ntchito CPU.
MLFQ imayika ndondomeko B patsogolo kwambiri chifukwa ikupitirira
kumasula CPU. Ngati B ndi ntchito yolumikizana, ndiye kuti algorithm yakwaniritsa
Cholinga chanu ndikuyendetsa ntchito zolumikizana mwachangu.

Mavuto ndi algorithm yamakono ya MLFQ

M'zitsanzo zam'mbuyomu tidapanga mtundu woyambira wa MLFQ. Ndipo zikuwoneka kuti iye
imagwira ntchito yake bwino komanso moona mtima, kugawa nthawi ya CPU mwachilungamo pakati
ntchito zazitali komanso kulola ntchito zazifupi kapena zazitali
gwiritsani ntchito I/O mwachangu. Tsoka ilo, njira iyi ili ndi zingapo
mavuto aakulu.
Choyamba, vuto la njala: ngati dongosololi liri ndi zambiri zogwirizana
ntchito, ndiye kuti adzawononga nthawi yonse ya purosesa ndipo motero palibe imodzi kwa nthawi yayitali
ntchitoyo siitheka (akufa ndi njala).

Chachiwiri, ogwiritsa ntchito anzeru amatha kulemba mapulogalamu awo kuti
kupusitsa wopanga. Chinyengo chagona pakuchita chinthu chokakamiza
Wokonzekera amapatsa ndondomekoyi nthawi yambiri ya CPU. Algorithm kuti
zomwe zafotokozedwa pamwambapa zimakhala pachiwopsezo chofanana ndi: nthawi isanafike zenera
zatha, muyenera kuchita ntchito ya I/O (kwa ena, ziribe kanthu fayilo)
ndipo motero kumasula CPU. Khalidwe lotereli lidzakuthandizani kuti mukhalebe chimodzimodzi
pamzere wokha ndikupezanso kuchuluka kwa CPU nthawi. Ngati mutero
izi ndi zolondola (mwachitsanzo, perekani 99% ya nthawi yazenera musanatulutse CPU),
ntchito yoteroyo imatha kungolamulira purosesa.

Pomaliza, pulogalamu imatha kusintha machitidwe ake pakapita nthawi. Ntchito zimenezo
yomwe idagwiritsa ntchito CPU imatha kukhala yolumikizana. Mu chitsanzo chathu, zofanana
ntchito sizidzalandira chithandizo choyenera kuchokera kwa wokonza ndondomeko monga momwe ena angachitire
(zoyamba) ntchito zolumikizana.

Funso kwa omvera: ndi kuukira kotani kwa wokonza mapulani komwe kungachitike masiku ano?

Kuyesera 2: Kuchulukitsa patsogolo

Tiyeni tiyese kusintha malamulo ndi kuona ngati tingapewe mavuto ndi
kusala kudya. Kodi tingachite chiyani kuti zigwirizane ndi izi
Ntchito za CPU zipeza nthawi (ngakhale sizitali).
Monga njira yosavuta yothetsera vutoli, mukhoza kunena nthawi ndi nthawi
kukweza patsogolo ntchito zonse zotere mu dongosolo. Pali njira zambiri
Kuti tikwaniritse izi, tiyeni tiyese kugwiritsa ntchito chinthu chosavuta monga chitsanzo: kumasulira
ntchito zonse nthawi yomweyo amapatsidwa patsogolo kwambiri, choncho lamulo latsopano:

  • Malamulo 5: Pambuyo pa nthawi inayake S, sunthirani ntchito zonse mudongosolo pamzere wapamwamba kwambiri.

Lamulo lathu latsopano limathetsa mavuto awiri nthawi imodzi. Choyamba, ndondomeko
akutsimikiziridwa kuti sadzafa ndi njala: ntchito zomwe zili zofunika kwambiri zidzagawidwa
CPU nthawi molingana ndi RR algorithm ndipo motero njira zonse zilandila
CPU nthawi. Kachiwiri, ngati njira ina yomwe idagwiritsidwa ntchito kale
purosesa yokhayo imakhala yolumikizana, idzakhalabe pamzere ndi apamwamba kwambiri
chofunika kwambiri pambuyo polandira kuwonjezereka kwa nthawi imodzi kwapamwamba kwambiri.
Tiyeni tione chitsanzo. Munkhaniyi, lingalirani njira imodzi yogwiritsira ntchito
Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 5: Kukonzekera: Mndandanda wa Ndemanga za Magawo Ambiri (kumasulira)

CPU ndi njira ziwiri zolumikizirana, zazifupi. Kumanzere kwa chithunzichi, chithunzichi chikuwonetsa khalidwe popanda kupititsa patsogolo patsogolo, ndipo motero ntchito yomwe imatenga nthawi yayitali imayamba kufa ndi njala pambuyo pa ntchito ziwiri zogwirizanitsa zikufika mu dongosolo. Pachithunzi chakumanja, chiwonjezeko choyambirira chimachitika pa 50ms iliyonse ndipo chifukwa chake njira zonse zimatsimikizika kuti zilandila nthawi ya CPU ndipo zizikhazikitsidwa nthawi ndi nthawi. 50ms pankhaniyi amatengedwa ngati chitsanzo; zenizeni nambalayi ndi yokwera pang'ono.
Mwachiwonekere, kuwonjezera nthawi yowonjezera nthawi S kumabweretsa
funso lomveka: ndi phindu lanji liyenera kukhazikitsidwa? Mmodzi mwa olemekezeka
akatswiri opanga makina a John Ousterhout adatcha kuchuluka kwa machitidwe ngati voo-doo
mosalekeza, popeza mwanjira ina amafunikira matsenga akuda kuti awone
kuwonetsera. Ndipo, mwatsoka, S ali ndi fungo lotere. Ngati muyikanso mtengo
ntchito zazikuluzikulu zidzayamba kufa ndi njala. Ndipo ngati muika mtengo wotsika kwambiri,
Ntchito zolumikizana sizilandira nthawi yoyenera ya CPU.

Kuyesera 3: Kuwerengera Bwino

Tsopano tili ndi vuto lina loti tithetse: momwe osachitira
kulola wokonza mapulani athu kupusitsidwa? Anthu omwe akuyenera kuimbidwa mlandu chifukwa chotheka ndi
malamulo 4a, 4b, omwe amalola kuti ntchito ikhale yoyamba, kumasula purosesa
nthawi yoperekedwa isanathe. Kodi kuthana ndi izi?
Yankho pankhaniyi litha kuonedwa ngati kuwerengera bwino kwa nthawi ya CPU pa chilichonse
Mtengo wapatali wa magawo MLFQ. M'malo moyiwala nthawi yomwe pulogalamuyo idagwiritsa ntchito
purosesa kwa nthawi yomwe wapatsidwa, iyenera kuganiziridwa ndikusungidwa. Pambuyo
ndondomekoyi yagwiritsa ntchito nthawi yomwe yapatsidwa, iyenera kuchepetsedwa kupita ina
mulingo wotsogola. Tsopano zilibe kanthu momwe njirayi idzagwiritsire ntchito nthawi yake - momwe
kuwerengera nthawi zonse pa purosesa kapena ngati mafoni angapo. Choncho,
lamulo 4 liyenera kulembedwanso ku fomu iyi:

  • Malamulo 4: Ntchito ikatha kugwiritsa ntchito nthawi yomwe yapatsidwa pamzere wapano (zilibe kanthu kuti idamasula kangati CPU), kufunikira kwa ntchitoyo kumatsitsidwa (kutsika pamzere).

Tiyeni tione chitsanzo:
Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 5: Kukonzekera: Mndandanda wa Ndemanga za Magawo Ambiri (kumasulira)Β»

Chithunzichi chikuwonetsa zomwe zimachitika ngati muyesa kupusitsa wopanga, monga
zikadakhala ndi malamulo am'mbuyomu 4a, 4b zotsatira kumanzere zikadapezedwa. Wodala watsopano
lamulo ndi zotsatira kumanja. Asanatetezedwe, njira iliyonse imatha kuyimbira I / O isanamalizidwe komanso
motero lamulirani CPU, mutatha kuteteza chitetezo, mosasamala kanthu za khalidwe
I/O, adzatsikabe pamzere ndipo sangathe kuchita mwachinyengo
tenga zida za CPU.

Kupititsa patsogolo MLFQ ndi mavuto ena

Ndi kusintha kwapamwambaku kumabwera mavuto atsopano: chimodzi mwazinthu zazikulu
Mafunso - momwe mungakhazikitsire ndondomeko yotereyi? Iwo. Zikuyenera kukhala zochuluka bwanji
mizere? Kodi kukula kwa zenera la pulogalamu mkati mwamzere kuyenera kukhala kotani? Bwanji
Kufunika kwa pulogalamuyo nthawi zambiri kumayenera kuwonjezeredwa kuti apewe njala komanso
kuganizira kusintha kwa khalidwe la pulogalamu? Palibe yankho losavuta la mafunso amenewa
yankho ndi kuyesa kokha ndi katundu ndi kasinthidwe wotsatira
kulinganiza kungayambitse kulinganiza kokhutiritsa.

Mwachitsanzo, machitidwe ambiri a MLFQ amakulolani kuti mugawire zosiyana
nthawi ya mizere yosiyanasiyana. Mizere yofunika kwambiri nthawi zambiri
nthawi zazifupi zimayikidwa. Mizere iyi imakhala ndi ntchito zolumikizana,
kusintha pakati komwe kumakhala kovutirapo ndipo kuyenera kutenga 10 kapena kuchepera
Ms. Mosiyana ndi izi, mizere yocheperako imakhala ndi ntchito zomwe zimagwira ntchito nthawi yayitali
CPU. Ndipo pamenepa, nthawi yayitali imakhala bwino kwambiri (100ms).
Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 5: Kukonzekera: Mndandanda wa Ndemanga za Magawo Ambiri (kumasulira)

Muchitsanzo ichi pali ntchito ziwiri zomwe zidagwira ntchito pa mzere 2
ms, yogawidwa m'mawindo a 10ms. 40ms pamzere wapakati (20ms zenera) komanso poyambira kwambiri
Zenera la nthawi ya mzere lidakhala 40ms pomwe ntchito zidamaliza ntchito yawo.

Kukhazikitsa kwa Solaris OS kwa MLFQ ndi gulu la ogawana nthawi.
Wokonza adzapereka mndandanda wa matebulo omwe amatanthauzira ndendende momwe ayenera
Chofunika kwambiri cha ndondomekoyi chimasintha pa nthawi ya moyo wake, zomwe ziyenera kukhala kukula kwake
zenera lopatsidwa ndi kangati muyenera kukweza ntchito zofunika. Woyang'anira
machitidwe amatha kuyanjana ndi tebulo ili ndikupangitsa wokonza kuti azichita
mosiyana. Mwachikhazikitso, tebulo ili lili ndi mizere 60 ndikuwonjezeka pang'onopang'ono
kukula kwazenera kuchokera ku 20ms (zofunika kwambiri) mpaka mazana angapo ms (zotsika kwambiri), ndi
komanso ndi mphamvu ya ntchito zonse kamodzi pa sekondi.

Okonza ena a MLFQ sagwiritsa ntchito tebulo kapena chilichonse
malamulo omwe akufotokozedwa mu phunziro ili, m'malo mwake, amawerengera zoyambira kugwiritsa ntchito
masamu masamu. Mwachitsanzo, pulogalamu ya FreeBSD imagwiritsa ntchito fomula
werengerani zomwe zili patsogolo pakalipano za ntchito kutengera nthawi yayitali bwanji
CPU yogwiritsidwa ntchito. Kuphatikiza apo, kugwiritsidwa ntchito kwa CPU kumawola pakapita nthawi, ndi zina zotero
Chifukwa chake, kuwonjezereka koyambirira kumachitika mosiyana ndi momwe tafotokozera pamwambapa. Izi ndi Zow
amatchedwa decay algorithms. Kuyambira mtundu 7.1, FreeBSD yagwiritsa ntchito ULE scheduler.

Pomaliza, okonza mapulani ambiri ali ndi zina. Mwachitsanzo, ena
ma schedulers amasunga milingo yayikulu kwambiri yogwiritsira ntchito makina ogwiritsira ntchito motero
Chifukwa chake, palibe njira yogwiritsira ntchito yomwe ingalandire patsogolo kwambiri
dongosolo. Machitidwe ena amakulolani kuti mupereke malangizo othandizira
wokonzekera akhoza kuyika zofunika patsogolo molondola. Mwachitsanzo, kugwiritsa ntchito lamulo zabwino
mukhoza kuwonjezera kapena kuchepetsa kufunika kwa ntchito ndipo motero kuonjezera kapena
chepetsa mwayi wa pulogalamu yogwiritsa ntchito nthawi ya CPU.

MLFQ: Chidule

Talongosola njira yokonzekera yotchedwa MLFQ. Dzina lake
yotsekedwa mu mfundo ya ntchito - ili ndi mizere ingapo ndipo imagwiritsa ntchito ndemanga
kudziwa kuti ntchito ndi yofunika.
Njira yomaliza ya malamulowo idzakhala motere:

  • Malamulo 1: Ngati choyambirira(A)> Chofunika Kwambiri(B), ntchito A idzayambitsidwa (B sichidzatero)
  • Malamulo 2: Ngati choyambirira(A) = Chofunika Kwambiri(B), A&B ayamba kugwiritsa ntchito RR
  • Malamulo 3: Ntchito ikalowa m'dongosolo, imayikidwa pamzere wapamwamba kwambiri.
  • Malamulo 4: Ntchito ikatha kugwiritsa ntchito nthawi yomwe yapatsidwa pamzere wapano (zilibe kanthu kuti idamasula kangati CPU), kufunikira kwa ntchitoyo kumatsitsidwa (kutsika pamzere).
  • Malamulo 5: Pambuyo pa nthawi inayake S, sunthirani ntchito zonse mudongosolo pamzere wapamwamba kwambiri.

MLFQ ndiyosangalatsa pazifukwa zotsatirazi - m'malo mongofuna kudziwa
mtundu wa ntchitoyo pasadakhale, algorithm imasanthula machitidwe am'mbuyomu a ntchitoyo ndi ma seti
zoika patsogolo moyenera. Choncho, amayesetsa kukhala pa mipando iwiri nthawi imodzi - kukwaniritsa zokolola za ntchito zazing'ono (SJF, STCF) ndi kuthamanga moona mtima.
CPU-loading ntchito. Chifukwa chake, machitidwe ambiri, kuphatikiza BSD ndi zotuluka zawo,
Solaris, Windows, Mac amagwiritsa ntchito mtundu wina wa algorithm monga ndandanda
MLFQ ngati maziko.

Zowonjezera:

  1. manpages.debian.org/stretch/manpages/sched.7.en.html
  2. en.wikipedia.org/wiki/Scheduling_(kompyuta)
  3. masamba.lip6.fr/Julia.Lawall/atc18-bouron.pdf
  4. www.usenix.org/legacy/event/bsdcon03/tech/full_papers/roberson/roberson.pdf
  5. chebykin.org/freebsd-process-scheduling

Source: www.habr.com