Iinkqubo zokuSebenza: Iziqwenga eziNtathu eziLula. Isigaba 5: UCwangciso: Umgca weNgxelo yeNqanaba eliNinzi (inguqulelo)

Intshayelelo kwiiNkqubo zokuSebenza

Hayi Habr! Ndingathanda ukuzisa ingqalelo yakho uluhlu lwamanqaku-iinguqulelo zoncwadi olulodwa olunomdla ngombono wam - i-OSTEP. Esi sixhobo sixoxa nzulu ngomsebenzi weenkqubo zokusebenza ezifana ne-unix, ezizezi, ukusebenza kunye neenkqubo, abacwangcisi abahlukeneyo, imemori, kunye namanye amacandelo afanayo enza i-OS yanamhlanje. Ungayibona imvelaphi yazo zonke izixhobo apha apha. Nceda uqaphele ukuba uguqulelo lwenziwe ngokungenamsebenzi (ngokukhululekileyo kakhulu), kodwa ndiyathemba ukuba ndiyigcinile intsingiselo ngokubanzi.

Umsebenzi waseLebhu ngalo mbandela unokufumaneka apha:

Amanye amalungu:

Ungajonga kwakhona itshaneli yam ku yocingo =)

UCwangciso: Uluhlu lweeNgxelo zeNqanaba ezininzi

Kule ntetho siza kuthetha ngeengxaki zokuphuhlisa enye yeendlela ezidumileyo
ukucwangcisa, okubizwa ngokuba Umgca weNgxelo yeNqanaba ezininzi (MLFQ). Umcwangcisi we-MLFQ wachazwa okokuqala kwi-1962 nguFernando J. CorbatΓ³ kwinkqubo ebizwa ngokuba
Inkqubo ehambelanayo yokwabelana ngeXesha (CTSS). Le misebenzi (kubandakanywa nokusebenza kamva kwi
IiMultics) zonyulelwa iMbasa yeTuring. Umcwangcisi waba
iphuculwe kwaye yafumana inkangeleko enokufumaneka sele ingaphakathi
ezinye iinkqubo zanamhlanje.

I-algorithm ye-MLFQ izama ukusombulula iingxaki ezi-2 eziphambili ezidlulanayo.
Okokuqala, izama ukwandisa ixesha lokuguqula, elithe, njengoko besixoxile kwintetho edlulileyo, liphuculwe ngendlela yokuqala ekuqaleni komgca kakhulu.
imisebenzi emifutshane. Nangona kunjalo, i-OS ayazi ukuba inkqubo ethile iya kuqhubeka ixesha elingakanani, kwaye oku
ulwazi oluyimfuneko ekusebenzeni kwe-SJF, STCF algorithms. Okwesibini, i-MLFQ iyazama
yenza inkqubo iphendule kubasebenzisi (umzekelo, kwabo bahlala kunye
jonga isikrini ulinde ukuba umsebenzi ugqitywe) kwaye ngaloo ndlela unciphise ixesha
impendulo. Ngelishwa, i-algorithms efana ne-RR iphucula ixesha lokuphendula, kodwa kakhulu
ibenempembelelo embi kwimetric yexesha lokutshintsha. Yiyo ke ingxaki yethu: Indlela yokuyila
umcwangcisi oza kuhlangabezana neemfuno zethu ngaphandle kokwazi nto ngayo
ubume benkqubo ngokubanzi? Umcwangcisi ungafunda njani iimpawu zemisebenzi,
eyisungulayo kwaye ke yenza izigqibo zocwangciso ezingcono?

Undoqo wengxaki: Indlela yokucwangcisa ukusetwa kwemisebenzi ngaphandle kolwazi olugqibeleleyo?
Uyila njani umcwangcisi ocutha ixesha lokuphendula ngaxeshanye
kwimisebenzi yonxibelelwano kwaye kwangaxeshanye kunciphisa ixesha lokujika ngaphandle kokwazi
ulwazi lwexesha lokwenziwa komsebenzi?

Qaphela: sifunda kwiziganeko ezidlulileyo

Umgca we-MLFQ ngumzekelo obalaseleyo wenkqubo efunda kuyo
iziganeko ezidlulileyo ukuqikelela ikamva. Iindlela ezifanayo zihlala
ifumaneka kwi-OS (Kwaye namanye amasebe amaninzi esayensi yekhompyuter, kubandakanya amasebe
uqikelelo lwehardware kunye ne-caching algorithms). Iihambo ezifanayo
ziqalwa xa imisebenzi inezigaba zokuziphatha kwaye ke ngoko iqikelelwa.
Nangona kunjalo, kuya kufuneka ulumkele obu buchule kuba uqikelelo lulula kakhulu
isenokujika ingachanekanga kwaye ikhokelele inkqubo ekwenzeni izigqibo ezibi kunezo
ebeya kuba engenalwazi kwaphela.

MLFQ: Imithetho esisiseko

Makhe sijonge imigaqo esisiseko ye-algorithm ye-MLFQ. Kwaye nangona ukuphunyezwa kwale algorithm
Kukho ezininzi, iindlela ezisisiseko ziyafana.
Ekuphunyezweni esiza kujonga kuyo, i-MLFQ iya kuba nezininzi
imigca eyahlukanisiweyo, nganye kuzo iya kuba nokubaluleka okwahlukileyo. Nanini na,
umsebenzi olungele ukwenziwa usemgceni omnye. I-MLFQ isebenzisa izinto eziphambili,
ukugqiba ukuba ngowuphi umsebenzi omawuqhutywe ukuphumeza, okt. umsebenzi ophezulu
okuphambili (umsebenzi osuka emgceni ngowona mba uphambili) uya kusungulwa kuqala
umgca.
Ewe, kunokubakho umsebenzi ongaphezulu kwesinye kumgca onikiweyo, ngoko
ngoko ke baya kuba nokubaluleka okufanayo. Kule meko, indlela iya kusetyenziswa
RR ukucwangcisa ukubaleka phakathi kwale misebenzi.
Ngaloo ndlela sifika kwimigaqo emibini esisiseko ye-MLFQ:

  • Umthetho1: Ukuba okuphambili(A) > Okuphambili(B), umsebenzi A uya kusungulwa (B akayi kusungulwa)
  • Umgaqo2: Ukuba okuphambili (A) = Okuphambili (B), i-A&B iqalwa ngokusebenzisa iRR

Ngokusekelwe koku ngasentla, izinto eziphambili zokucwangcisa i-MLFQ
zizinto eziphambili. Endaweni yokunika eyona nto iphambili emiselweyo
Umsebenzi, i-MLFQ itshintsha ukubaluleka kwayo ngokuxhomekeke kwindlela yokuziphatha eqatshelweyo.
Umzekelo, ukuba umsebenzi uhlala uphosa umsebenzi kwi-CPU ngelixa ulinde igalelo lebhodibhodi,
I-MLFQ iya kugcina inkqubo ephambili iphezulu kuba yile ndlela
inkqubo yonxibelelwano kufuneka isebenze. Ukuba, ngokuchaseneyo, umsebenzi uhlala kwaye
isebenzisa i-CPU kakhulu kwixesha elide, i-MLFQ iya kuthoba
into ephambili. Ke, i-MLFQ iyakufunda indlela yokuziphatha kweenkqubo ngelixa ziqhuba
kunye nokusebenzisa iindlela zokuziphatha.
Masizobe umzekelo wendlela enokuthi ijongeke ngayo imigca ngaxa lithile
ixesha kwaye emva koko ufumana into enje:
Iinkqubo zokuSebenza: Iziqwenga eziNtathu eziLula. Isigaba 5: UCwangciso: Umgca weNgxelo yeNqanaba eliNinzi (inguqulelo)

Kwesi sikimu, iinkqubo ezi-2 ze-A no-B zezona ziphambili kumgca ophambili. Inkqubo
UC ukwindawo embindini, kwaye inkqubo uD isekupheleni kanye kumgca. Ngokutsho koku ngasentla
Ngokweenkcazo ze-algorithm ye-MLFQ, umcwangcisi uya kwenza imisebenzi kuphela ngokuphezulu
Okuphambili ngokwe-RR, kunye nemisebenzi C, D iya kuba ingasebenzi.
Ngokwemvelo, umfanekiso omile awuzukunika umfanekiso opheleleyo wendlela iMLFQ esebenza ngayo.
Kubalulekile ukuqonda ngokuthe ngqo indlela umfanekiso oguquka ngayo ngexesha.

Imizamo yoku-1: Ukutshintsha njani okubalulekileyo

Ngeli xesha kufuneka wenze isigqibo sokuba i-MLFQ iya kutshintsha njani inqanaba eliphambili
imisebenzi (kwaye ke ngoko ubume bomsebenzi emgceni) njengoko uqhubela phambili kumjikelo wobomi bawo. Kuba
oku kuyimfuneko ukugcina engqondweni ukuhamba komsebenzi: isixa esithile
imisebenzi esebenzisanayo enamaxesha amafutshane okusebenza (kwaye ke ngoko ukukhulula rhoqo
CPU) kunye nemisebenzi emininzi yexesha elide esebenzisa i-CPU lonke ixesha labo lokusebenza, ngelixa
Ixesha lokuphendula alibalulekanga kwimisebenzi enjalo. Kwaye ngale ndlela unokwenza itrayi yakho yokuqala
sebenzisa i-algorithm ye-MLFQ ngale migaqo ilandelayo:

  • Umthetho3: Xa umsebenzi ungena kwisistim, ubekwa emgceni ngowona mkhulu
  • okubalulekileyo.
  • Umthetho4a: Ukuba umsebenzi usebenzisa lonke ixesha lefestile eyabelwe wona, ngoko ke
  • okuphambili kuncitshisiwe.
  • Umthetho4b: Ukuba uMsebenzi ukhulula i-CPU ngaphambi kokuba ixesha layo lefestile liphelelwe, ngoko ke
  • ihlala inokubaluleka okufanayo.

Umzekelo 1: Umsebenzi omnye othatha ixesha elide

Njengoko kunokubonwa kulo mzekelo, umsebenzi wokwamkelwa umiselwe ngowona mkhulu
okubalulekileyo. Emva kwexesha lefestile ye-10ms, inkqubo ithotywa kwindawo yokuqala
umcwangcisi. Emva kwefestile yexesha elizayo, umsebenzi uthotywa ekugqibeleni
eyona nto iphantsi kakhulu kwinkqubo, apho ihlala khona.
Iinkqubo zokuSebenza: Iziqwenga eziNtathu eziLula. Isigaba 5: UCwangciso: Umgca weNgxelo yeNqanaba eliNinzi (inguqulelo)

Umzekelo 2: Wenza umsebenzi omfutshane

Ngoku makhe sibone umzekelo wendlela i-MLFQ eya kuzama ngayo ukusondela kwi-SJF. Kulo nto
umzekelo, imisebenzi emibini: A, nto leyo ithatha ixesha elide umsebenzi rhoqo
ukuhlala kwi-CPU kunye no-B, nto leyo ingumsebenzi omfutshane wokusebenzisana. Masithi
ukuba uA wayesele esebenza ixesha elithile ngexesha lomsebenzi u-B wafika.
Iinkqubo zokuSebenza: Iziqwenga eziNtathu eziLula. Isigaba 5: UCwangciso: Umgca weNgxelo yeNqanaba eliNinzi (inguqulelo)

Le grafu ibonisa iziphumo zescenario. Umsebenzi A, njengawo nawuphi na umsebenzi,
Ukusetyenziswa kwe-CPU kwakusezantsi kakhulu. Umsebenzi B uya kufika ngexesha T=100 kwaye uya kufika
ibekwe kowona mgca ubalulekileyo. Ekubeni ixesha layo lokusebenza lifutshane, ngoko
izakugqiba phambi kokufikelela kumgca wokugqibela.

Kulo mzekelo, injongo ephambili ye-algorithm kufuneka iqondwe: ekubeni i-algorithm ayifuni
uyazi ukuba umsebenzi mde okanye mfutshane, ngoko ke kuqala ucingela ukuba loo msebenzi
mfutshane kwaye inika eyona nto iphambili. Ukuba lo ngumsebenzi omfutshane ngokwenene, ke
iya kugqitywa ngokukhawuleza, kungenjalo ukuba ngumsebenzi omde, iya kuhamba kancinane
ibeka phambili phantsi kwaye kungekudala uza kungqina ukuba ngokwenene ngumsebenzi omde ongawenziyo
ifuna impendulo.

Umzekelo 3: Kuthekani nge-I/O?

Ngoku makhe sijonge umzekelo we-I/O. Njengoko kuchaziwe kumgaqo 4b,
ukuba inkqubo ikhupha iprosesa ngaphandle kokusebenzisa lonke ixesha layo lokuqhuba,
emva koko ihlala kwinqanaba elifanayo eliphambili. Injongo yalo mgaqo ilula kakhulu
- ukuba umsebenzi odibeneyo wenza imisebenzi emininzi ye-I / O, umzekelo, ukulinda
ukusuka kwisitshixo somsebenzisi okanye ucinezelo lwe mouse, umsebenzi onjalo uyakukhulula umqhubekekisi
phambi kwefestile enikezelweyo. Asinakuthanda ukuthoba ukubaluleka komsebenzi onjalo,
kwaye ngaloo ndlela iya kuhlala kwinqanaba elifanayo.
Iinkqubo zokuSebenza: Iziqwenga eziNtathu eziLula. Isigaba 5: UCwangciso: Umgca weNgxelo yeNqanaba eliNinzi (inguqulelo)

Lo mzekelo ubonisa indlela i-algorithm eya kusebenza ngayo ngeenkqubo ezinjalo - umsebenzi osebenzayo B, ofuna kuphela i-CPU ye-1ms ngaphambi kokuphunyezwa.
Inkqubo ye-I / O kunye ne-Job A yexesha elide, echitha lonke ixesha layo isebenzisa i-CPU.
I-MLFQ igcina inkqubo B kweyona iphambili kuba iyaqhubeka
khulula i-CPU. Ukuba B ngumsebenzi osebenzisanayo, ngoko i-algorithm iphumelele
Injongo yakho kukuqhuba imisebenzi edibeneyo ngokukhawuleza.

Iingxaki nge-algorithm ye-MLFQ yangoku

Kwimizekelo yangaphambili sakhe inguqulelo esisiseko ye-MLFQ. Kwaye kubonakala ngathi
yenza umsebenzi wayo kakuhle nangokunyaniseka, isasaza ixesha le-CPU ngokufanelekileyo phakathi
imisebenzi emide kunye nokuvumela imisebenzi emifutshane okanye enomthamo ophezulu
sebenza kwi-I/O ngokukhawuleza. Ngelishwa, le ndlela iqulethe ezininzi
iingxaki ezinzulu.
Okokuqala, ingxaki yendlala: ukuba inkqubo inezinto ezininzi ezisebenzisanayo
imisebenzi, emva koko baya kudla lonke ixesha leprosesa kwaye kungabikho namnye ixesha elide
umsebenzi awuyi kuba nako ukwenziwa (balambile).

Okwesibini, abasebenzisi abakrelekrele banokubhala iinkqubo zabo ukuze
khohlisa umcwangcisi. Inkohliso ilele ekwenzeni into yokunyanzela
Umcwangcisi unika inkqubo ixesha elininzi le-CPU. Algorithm ukuba
echazwe ngasentla isesichengeni sohlaselo olufanayo: phambi kokuba iwindow yexesha iyenzeka
iphelile, kufuneka wenze umsebenzi we-I/O (kwabanye, nokuba yeyiphi ifayile)
kwaye ngaloo ndlela ukhulule i-CPU. Ukuziphatha okunjalo kuya kukuvumela ukuba uhlale ufana
umgca ngokwawo kwaye uphinde ufumane ipesenti enkulu yexesha le-CPU. Ukuba wenza njalo
oku kuchanekile (umzekelo, yenza i-99% yexesha lefestile phambi kokukhulula i-CPU),
umsebenzi onjalo unokuhombisa iprosesa.

Ekugqibeleni, inkqubo inokutshintsha ukuziphatha kwayo ngokuhamba kwexesha. Loo misebenzi
esebenzise i-CPU inokunxibelelana. Kumzekelo wethu, okufanayo
imisebenzi ayizukufumana unyango oluyifaneleyo kumcwangcisi njengoko abanye bebeya kufumana
(eyokuqala) imisebenzi yonxibelelwano.

Umbuzo wabaphulaphuli: luluphi uhlaselo kumcwangcisi onokuthi lwenziwe kwihlabathi lanamhlanje?

Imizamo yesi-2: Ukunyusa okubalulekileyo

Masizame ukutshintsha imithetho kwaye sibone ukuba singaziphepha na iingxaki
ukuzila ukutya. Yintoni esinokuyenza ukuqinisekisa ukuba ezinxulumene
Imisebenzi ye-CPU iya kufumana ixesha labo (nokuba alikude).
Njengesisombululo esilula kwingxaki, unokucebisa ngamaxesha athile
phakamisa ukubaluleka kwayo yonke imisebenzi enjalo kwisistim. Zininzi iindlela
Ukufezekisa oku, makhe sizame ukuphumeza into elula njengomzekelo: guqulela
yonke imisebenzi ngoko nangoko inikwa eyona nto iphambili, kungoko umthetho omtsha:

  • Umgaqo5: Emva kwexesha elithile S, hambisa yonke imisebenzi ekwisistim uye kowona mgca uphezulu.

Umgaqo wethu omtsha usombulula iingxaki ezimbini ngexesha elinye. Okokuqala, iinkqubo
baqinisekisiwe ukuba bangalambi: imisebenzi eyona nto iphambili iya kwahlulwa
Ixesha le-CPU ngokwe-algorithm ye-RR kwaye ngoko zonke iinkqubo ziya kufumana
ixesha CPU. Okwesibini, ukuba kukho inkqubo eyayisetyenziswa ngaphambili
iprosesa kuphela iba interactive, iyakuhlala emgceni ngeyona iphezulu
into ephambili emva kokufumana ukonyuswa kwangexesha elinye kwizinto eziphambili ukuya kwezona ziphezulu.
Makhe sijonge umzekelo. Kule meko, qwalasela inkqubo enye yokusebenzisa
Iinkqubo zokuSebenza: Iziqwenga eziNtathu eziLula. Isigaba 5: UCwangciso: Umgca weNgxelo yeNqanaba eliNinzi (inguqulelo)

CPU kunye ezimbini interactive, iinkqubo ezimfutshane. Ngakwesobunxele kumzobo, umzobo ubonisa ukuziphatha ngaphandle kokunyuswa kokuphambili, kwaye ngoko ke umsebenzi wexesha elide uqala ukulamba emva kokuba imisebenzi emibini edibeneyo ifike kwinkqubo. Kumzobo osekunene, ukonyuka okuphambili kwenziwa rhoqo nge-50ms kwaye ke zonke iinkqubo ziqinisekisiwe ukufumana ixesha le-CPU kwaye ziya kusungulwa ngamaxesha athile. 50ms kule meko ithathwa njengomzekelo; enyanisweni eli nani lingaphezulu kancinci.
Ngokucacileyo, ukongeza ixesha lokunyuka kwe-S likhokelela
umbuzo onengqondo: leliphi ixabiso ekufuneka libekwe? Omnye wabahlonitshwayo
iinjineli zeenkqubo uJohn Ousterhout wabiza amanani anjalo kwiinkqubo njenge voo-doo
rhoqo, ekubeni ngandlel' ithile babefuna umlingo omnyama ukulungisa
ebonisa. Kwaye, ngelishwa, i-S inevumba elinjalo. Ukuba ubeka ixabiso kwakhona
imisebenzi emikhulu-emide iya kuqala ukulamba. Kwaye ukuba ubeka ixabiso eliphantsi kakhulu,
Imisebenzi esebenzayo ayiyi kufumana ixesha elifanelekileyo le-CPU.

Umzamo wesi-3: I-Accounting engcono

Ngoku sinenye ingxaki ekufuneka siyisombulule: hayi njani
ukuvumela ukuba umcwangcisi wethu akhohliswe? Abantu abafanele babeke ityala ngale nto inokwenzeka
imithetho 4a, 4b, evumela umsebenzi ukuba ugcine kuqala, ukukhulula iprosesa
ngaphambi kokuba ixesha elimiselweyo liphele. Indlela yokujongana nale nto?
Isisombululo kule meko sinokuthathwa njengengxelo engcono ye-CPU yexesha ngalinye
Inqanaba le-MLFQ. Endaweni yokulibala ixesha elisetyenziswe kwinkqubo
iprosesa yexesha elimiselweyo, kufuneka ithathelwe ingqalelo kwaye igcinwe. Emva koko
inkqubo isebenzise ixesha layo elinikiweyo, kufuneka ithotywe kwelandelayo
inqanaba eliphambili. Ngoku akukhathaliseki ukuba inkqubo iya kulisebenzisa njani ixesha layo - njani
igcina ikhompyutha kwiprosesa okanye njengenani leefowuni. Ngoko,
Umgaqo 4 kufuneka uphinde ubhalwe ngolu hlobo lulandelayo:

  • Umgaqo4: Emva kokuba umsebenzi usebenzise ixesha elabelwe wona kumgca wangoku (nokuba ukhulule kangaphi i-CPU), umba ophambili waloo msebenzi uyathotywa (uhamba ezantsi kumgca).

Makhe sijonge umzekelo:
Iinkqubo zokuSebenza: Iziqwenga eziNtathu eziLula. Isigaba 5: UCwangciso: Umgca weNgxelo yeNqanaba eliNinzi (inguqulelo)Β»

Umzobo ubonisa okwenzekayo ukuba uzama ukukhohlisa umcwangcisi, njengaye
ukuba ibikunye nemithetho yangaphambili 4a, 4b isiphumo ngasekhohlo beziya kufunyanwa. Imnandi entsha
umthetho sisiphumo ngasekunene. Ngaphambi kokukhuselwa, nayiphi na inkqubo inokubiza i-I / O ngaphambi kokugqitywa kunye
Ngaloo ndlela yongamela i-CPU, emva kokwenza ukhuseleko, kungakhathaliseki ukuziphatha
I/O, useza kuhamba ezantsi emgceni kwaye ngaloo ndlela akayi kukwazi ukunganyaniseki
thatha izixhobo ze-CPU.

Ukuphucula i-MLFQ kunye nezinye iingxaki

Ngophuculo olungentla luza neengxaki ezintsha: enye yezona ziphambili
Imibuzo - njani ukwenza iparameterize umcwangcisi onjalo? Ezo. Kufuneka ibe yimalini
imigca? Imele ibe yintoni ubungakanani befestile yenkqubo ngaphakathi komgca? Njani
Inkqubo ephambili kufuneka yandiswe rhoqo ukuphepha indlala kunye
ithathele ingqalelo utshintsho kwindlela yokuziphatha kwenkqubo? Akukho mpendulo ilula kule mibuzo
impendulo kunye nemifuniselo kuphela ngemithwalo kunye noqwalaselo olulandelayo
umcwangcisi unokukhokelela kwibhalansi ethile eyanelisayo.

Umzekelo, uninzi lokuphunyezwa kwe-MLFQ kukuvumela ukuba unikeze okwahlukileyo
amaxesha ngamaxesha emigca eyahlukeneyo. Imigca ebaluleke kakhulu idla ngokubakho
amaxesha amafutshane amiselweyo. Le migca inemisebenzi yonxibelelwano,
Ukutshintshela phakathi kwezinto ezinovakalelo kwaye kufuneka kuthathe i-10 okanye ngaphantsi
Nksk. Ngokuchaseneyo, imigca ebaluleke kakhulu ibandakanya imisebenzi ethatha ixesha elide esetyenziswayo
ICPU. Kwaye kule meko, ixesha elide lilingana kakuhle (100ms).
Iinkqubo zokuSebenza: Iziqwenga eziNtathu eziLula. Isigaba 5: UCwangciso: Umgca weNgxelo yeNqanaba eliNinzi (inguqulelo)

Kulo mzekelo kukho imisebenzi emi-2 esebenze ngokubaluleka okuphezulu kumgca wama-20
ms, yahlulwe kwiifestile ze-10ms. I-40ms kumgca ophakathi (ifestile ye-20ms) kunye nokubaluleka okuphantsi
Ifestile yexesha emgceni yaba yi-40ms apho imisebenzi igqibezela umsebenzi wayo.

Ukuphunyezwa kwe-Solaris OS ye-MLFQ yiklasi yabacwangcisi bexesha lokwabelana.
Umcwangcisi uya kubonelela ngeseti yeetheyibhile ezichaza kanye njengoko kufanele
Ukubaluleka kwenkqubo kuyatshintsha kwixesha lobomi bayo, kufuneka ibe yintoni ubungakanani
iwindow eyabelwe kwaye ufuna kangaphi ukuphakamisa okuphambili komsebenzi. Umlawuli
Iinkqubo zinokusebenzisana nale tafile kwaye zenze umcwangcisi aziphathe
ngokwahlukileyo. Ngokungagqibekanga, le theyibhile inemigca engama-60 ngokunyuka kancinci
ubungakanani befestile ukusuka kwi-20ms (ukubaluleka okuphezulu) ukuya kumakhulu amaninzi ms (ukubaluleka okuphantsi), kunye
kwakhona ngokunyuswa kwayo yonke imisebenzi kanye ngomzuzwana.

Abanye abacwangcisi be-MLFQ abayisebenzisi itafile okanye nayiphi na into ethile
imithetho echazwe kule ntetho, ngokuchaseneyo, babala izinto eziphambili ngokusebenzisa
iifomula zemathematika. Umzekelo, umcwangcisi weFreeBSD usebenzisa ifomula ye
ukubala okuphambili kwangoku komsebenzi ngokusekelwe kwixesha elide lenkqubo
CPU esetyenziswayo. Ukongeza, ukusetyenziswa kwe-CPU kubola ngokuhamba kwexesha, kwaye njalo
Ke ngoko, ukonyuka kokubaluleka kokubaluleka kwenzeka ngokwahlukileyo kunoko kuchazwe ngasentla. Lena Yinyaniso
ebizwa ngokuba yi-decay algorithms. Ukusukela kwinguqulo 7.1, iFreeBSD isebenzise umcwangcisi we-ULE.

Ekugqibeleni, abaninzi abacwangcisi banezinye iimpawu. Ngokomzekelo, ezinye
abacwangcisi bagcine awona manqanaba aphezulu okusebenza kwenkqubo yokusebenza kwaye ngaloo ndlela
Ke, akukho nkqubo yomsebenzisi inokufumana eyona nto iphambili kwi
inkqubo. Ezinye iinkqubo zikuvumela ukuba unike iingcebiso ukunceda
umcwangcisi unokumisela izinto eziphambili ngokuchanekileyo. Umzekelo, usebenzisa umyalelo intle
unokonyusa okanye unciphise ukubaluleka komsebenzi kwaye ngaloo ndlela wandise okanye
ukunciphisa amathuba inkqubo yokusebenzisa ixesha CPU.

MLFQ: Isishwankathelo

Sichaze indlela yokucwangcisa ebizwa ngokuba yi-MLFQ. Igama lakhe
ifakwe kumgaqo wokusebenza - inemigca emininzi kwaye isebenzisa impendulo
ukumisela umsebenzi ophambili.
Indlela yokugqibela yemigaqo iya kuba ngolu hlobo lulandelayo:

  • Umgaqo1: Ukuba okuphambili(A) > Okuphambili(B), umsebenzi A uya kusungulwa (B akayi)
  • Umgaqo2: Ukuba okuphambili (A) = Okubalulekileyo (B), i-A&B iqalwa ngokusebenzisa i-RR
  • Umgaqo3: Xa umsebenzi ungena kwisistim, ubekwa kowona mgca ubalulekileyo.
  • Umgaqo4: Emva kokuba umsebenzi usebenzise ixesha elabelwe wona kumgca wangoku (nokuba ukhulule kangaphi i-CPU), umba ophambili waloo msebenzi uyathotywa (uhamba ezantsi kumgca).
  • Umgaqo5: Emva kwexesha elithile S, hambisa yonke imisebenzi ekwisistim uye kowona mgca uphezulu.

I-MLFQ inomdla ngenxa yesi sizathu silandelayo - endaweni yokufuna ulwazi malunga
Ubume bomsebenzi kwangaphambili, i-algorithm ifunda indlela yokuziphatha yangaphambili yomsebenzi kunye neeseti
izinto eziphambili ngokubaluleka ngokufanelekileyo. Ngaloo ndlela, uzama ukuhlala kwizitulo ezibini ngaxeshanye - ukuphumeza imveliso yemisebenzi emincinci (SJF, STCF) kunye nokuqhuba ngokunyanisekileyo ixesha elide,
CPU-ukulayisha imisebenzi. Ke ngoko, iinkqubo ezininzi, kubandakanya i-BSD kunye nezinto eziphuma kuzo,
I-Solaris, iWindows, iMac isebenzisa uhlobo oluthile lwe-algorithm njengomcwangcisi
I-MLFQ njengesiseko.

Izinto ezongeziweyo:

  1. manpages.debian.org/stretch/manpages/sched.7.en.html
  2. xh.wikipedia.org/wiki/Scheduling_(ikhompyutha)
  3. amaphepha.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

umthombo: www.habr.com

Yongeza izimvo