Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 5: Ukuhlela: Umugqa Wempendulo Yezinga Eliningi (ukuhumusha)

Isingeniso Sezinhlelo Zokusebenza

Sawubona Habr! Ngingathanda ukukukhumbuza uchungechunge lwezihloko-ukuhumusha kwencwadi eyodwa ethokozisayo ngokombono wami - i-OSTEP. Le nto idingida ngokujulile umsebenzi wezinhlelo zokusebenza ezifana ne-unix, okungukuthi, ukusebenza ngezinqubo, abahleli abahlukahlukene, inkumbulo, nezinye izakhi ezifanayo ezakha i-OS yesimanje. Ungabona okwangempela kwazo zonke izinto lapha lapha. Sicela uqaphele ukuthi ukuhumusha kwenziwe ngokungafanele (ngokukhululekile impela), kodwa ngithemba ukuthi ngiyigcinile incazelo evamile.

Umsebenzi walebhu ngale ndaba ungatholakala lapha:

Ezinye izingxenye:

Futhi ungabheka isiteshi sami ku yocingo =)

Ukuhlela: Umugqa Wempendulo Yezinga Eliningi

Kule nkulumo, sizokhuluma ngezinkinga zokuthuthukisa enye yezindlela ezidume kakhulu
ukuhlela, okubizwa ngokuthi Umugqa Wempendulo Yezinga Eliningi (MLFQ). Umhleli we-MLFQ wachazwa okokuqala ngo-1962 nguFernando J. Corbató ohlelweni olubizwa ngokuthi.
Uhlelo Oluhambisanayo Lokwabelana Ngesikhathi (CTSS). Le misebenzi (kuhlanganise nokusebenza kamuva
Ama-Multics) abe eseqokelwa i-Turing Award. Umhleli kwaba
ngemuva kwalokho yathuthukiswa futhi yathola ukubukeka okungatholakala vele ku
ezinye izinhlelo zesimanje.

I-algorithm ye-MLFQ izama ukuxazulula izinkinga ezi-2 ezigqagqene ezibalulekile.
Okokuqala, izama ukukhulisa isikhathi sokushintsha, okuthi, njengoba sixoxile enkulumweni edlule, sithuthukiswe ngendlela yokuqala ekuqaleni komugqa kakhulu.
imisebenzi emifushane. Kodwa-ke, i-OS ayazi ukuthi le nqubo noma leyo nqubo izosebenza isikhathi esingakanani, futhi lokhu
ulwazi oludingekayo ekusebenzeni kwe-SJF, STCF algorithms. Okwesibili, i-MLFQ iyazama
yenza uhlelo luphendule kubasebenzisi (isibonelo, kulabo abahlezi kanye
ukugqolozela isikrini ngenkathi ulinde umsebenzi ukuthi uqedele) futhi ngaleyo ndlela unciphise isikhathi
impendulo. Ngeshwa, ama-algorithms afana ne-RR anciphisa isikhathi sokuphendula, kodwa
ibe nomthelela omubi kumethrikhi yesikhathi sokushintsha. Ngakho-ke inkinga yethu: Indlela yokuklama
umhleli ozohlangabezana nezidingo zethu futhi ngesikhathi esifanayo angazi lutho ngakho
ubunjalo benqubo, ngokuvamile? Umhleli angafunda kanjani izici zemisebenzi,
okuyinto eyethulayo futhi ngaleyo ndlela yenza izinqumo ezingcono zokuhlela?

Ingqikithi yenkinga: Ungahlela kanjani ukumiswa kwemisebenzi ngaphandle kolwazi oluphelele?
Indlela yokudizayina isihleli esinciphisa ngasikhathi sinye isikhathi sokuphendula
ngemisebenzi esebenzisanayo futhi ngesikhathi esifanayo kunciphisa isikhathi sokushintsha ngaphandle kokwazi
ulwazi lwesikhathi sokwenza umsebenzi?

Qaphela: ukufunda ezenzakalweni zangaphambilini

Ulayini we-MLFQ uyisibonelo esihle kakhulu sohlelo oluqeqeshwe kulo
izehlakalo ezedlule ukubikezela ikusasa. Izindlela ezinjalo zivamile
kutholakala ku-OS (Namanye amagatsha amaningi kwisayensi yekhompyutha, kufaka phakathi amagatsha
izibikezelo zehadiwe nama-algorithms wokulondoloza isikhashana). Uhambo olufanayo
ukuqala lapho imisebenzi inezigaba zokuziphatha futhi ngenxa yalokho ibikezelwa.
Kodwa-ke, umuntu kufanele aqaphele ngale ndlela, ngoba ukubikezela kulula kakhulu.
kungase kuvele kungalungile futhi kuholele uhlelo ekwenzeni izinqumo ezimbi kakhulu kuna
angabi nalwazi nhlobo.

I-MLFQ: Imithetho Eyisisekelo

Cabangela imithetho eyisisekelo ye-algorithm ye-MLFQ. Futhi nakuba ukusetshenziswa kwalesi algorithm
kukhona eziningana, izindlela eziyisisekelo ziyefana.
Ekusetshenzisweni esizocubungula, i-MLFQ izoba nezimbalwa
olayini abahlukene, ngamunye ozoba nokubalulekile okuhlukile. Noma nini,
umsebenzi olungele ukwenziwa usemgqeni ofanayo. I-MLFQ isebenzisa izinto eziza kuqala,
ukunquma ukuthi yimuphi umsebenzi okufanele wenziwe ukuze wenziwe, i.e. umsebenzi ophezulu
okubalulekile (umsebenzi ovela kulayini obaluleke kakhulu) uzokwethulwa ekuqaleni
ulayini.
Yebo, kungaba nomsebenzi ongaphezu kowodwa kulayini othile, ngakho
ngakho-ke bazoba nokuza kuqala okufanayo. Kulokhu, umshini uzosetshenziswa
RR yokuqalisa ukuhlela phakathi kwale misebenzi.
Ngakho sifika emithethweni emibili eyisisekelo ye-MLFQ:

  • Umthetho1: Uma kuqala(A) > Okubalulekile(B), umsebenzi A uzosebenza (B ngeke)
  • Umthetho2: Uma okubalulekile(A) = Okubalulekile(B), i-A&B iqalwa kusetshenziswa i-RR

Ngokusekelwe kulokhu okungenhla, izakhi ezibalulekile zokuhlela i-MLFQ yilezi
yizinto eziza kuqala. Esikhundleni sokunikeza okubalulekile okungaguquki kulowo nalowo
Umsebenzi, i-MLFQ ishintsha ukubaluleka kwayo kuye ngokuziphatha okubonwayo.
Isibonelo, uma umsebenzi uhlala uyeka ku-CPU ngenkathi ulinde okokufaka kwekhibhodi,
I-MLFQ izogcina inqubo ihamba phambili ngoba injalo
inqubo interactive kufanele isebenze. Uma, ngokuphambene nalokho, umsebenzi uhlala njalo futhi
i-CPU eqinile isikhathi eside, i-MLFQ izokwehlisa
okubalulekile. Ngakho-ke, i-MLFQ izofunda ukuziphatha kwezinqubo ngesikhathi ezisebenza ngayo.
nokusebenzisa izindlela zokuziphatha.
Ake sidwebe isibonelo sokuthi olayini bangase babukeke kanjani esikhathini esithile
isikhathi bese uthola okuthile okufana nalokhu:
Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 5: Ukuhlela: Umugqa Wempendulo Yezinga Eliningi (ukuhumusha)

Kulolu hlelo, izinqubo ezi-2 ezithi A no-B zisemgqeni obaluleke kakhulu. Inqubo
U-C usendaweni ethile phakathi, futhi inqubo D isekupheleni komugqa. Ngokwalokhu okungenhla
Izincazelo ze-algorithm ye-MLFQ, umhleli uzokwenza kuphela imisebenzi ephezulu kakhulu
okubalulekile ngokwe-RR, kanye nemisebenzi C, D izobe ingasebenzi.
Ngokwemvelo, isifinyezo esimile ngeke sinikeze isithombe esiphelele sokuthi i-MLFQ isebenza kanjani.
Kubalulekile ukuqonda kahle ukuthi isithombe sishintsha kanjani ngokuhamba kwesikhathi.

Umzamo 1: Ungakushintsha kanjani okubalulekile

Kuleli qophelo, udinga ukunquma ukuthi i-MLFQ izolishintsha kanjani izinga elibalulekile
umsebenzi (futhi kanjalo nendawo yomsebenzi kulayini) phakathi nomjikelezo wokuphila kwawo. Ngoba
kulokhu, udinga ukukhumbula ukuhamba komsebenzi: inani elithile
imisebenzi esebenzisanayo enezikhathi ezimfishane zokusebenza (futhi kanjalo nokukhululwa njalo
CPU) kanye nemisebenzi eminingana emide esebenzisa i-CPU sonke isikhathi sayo sokusebenza, ngenkathi
isikhathi sokuphendula semisebenzi enjalo asibalulekile. Futhi ngakho ungenza umzamo wokuqala
sebenzisa i-algorithm ye-MLFQ ngale mithetho elandelayo:

  • Umthetho3: Uma umsebenzi ungena ohlelweni, ubekwa kulayini onenani eliphakeme kakhulu
  • okubalulekile.
  • I-Rule4a: Uma umsebenzi usebenzisa iwindi lesikhathi sawo sonke, khona-ke
  • okubalulekile kuyehliswa.
  • I-Rule4b: Uma Umsebenzi ukhulula i-CPU ngaphambi kokuthi iwindi lesikhathi sayo liphelelwe yisikhathi, bese kuba njalo
  • ihlala nokubalulekile okufanayo.

Isibonelo sokuqala: Umsebenzi owodwa osenesikhathi eside usebenza

Njengoba ubona kulesi sibonelo, umsebenzi wokwamukelwa usethwe phezulu kakhulu
okubalulekile. Ngemuva kwewindi lesikhathi esingu-10ms, inqubo yehliswa ngokubalulekile.
umhleli. Ngemva kwewindi elilandelayo, umsebenzi ekugcineni wehliselwa ku
okubalulekile okuphansi ohlelweni, lapho kuhlala khona.
Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 5: Ukuhlela: Umugqa Wempendulo Yezinga Eliningi (ukuhumusha)

Isibonelo sesi-2: Uthathe umsebenzi omfushane

Manje ake sibone isibonelo sokuthi i-MLFQ izozama kanjani ukusondela ku-SJF. Kulokho
isibonelo, imisebenzi emibili: A, okuwumsebenzi osebenza isikhathi eside njalo
ukuthatha i-CPU no-B, okuwumsebenzi omfushane osebenzisanayo. Ake sithi
ukuthi u-A wayesevele esebenza isikhathi eside ngesikhathi umsebenzi u-B ufika.
Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 5: Ukuhlela: Umugqa Wempendulo Yezinga Eliningi (ukuhumusha)

Le grafu ibonisa imiphumela yesimo. Umsebenzi A, njenganoma yimuphi umsebenzi,
ukusebenzisa i-CPU kwakuphansi kakhulu. Umsebenzi B uzofika ngesikhathi T=100 futhi uzofika
ibekwe emgqeni obaluleke kakhulu. Njengoba isikhathi sokusebenza sifushane,
izoqeda ngaphambi kokuthi ifike kulayini wokugcina.

Kusukela kulesi sibonelo, kufanele uqonde umgomo oyinhloko we-algorithm: ngoba i-algorithm ayikwenzi
wazi umsebenzi omude noma omfushane, khona-ke okokuqala uthatha ukuthi lowo msebenzi
mfushane futhi ikubeka kuqala kakhulu. Uma kuwumsebenzi omfushane ngempela, ke
izokhipha ngokushesha, ngaphandle kwalokho uma kuwumsebenzi omude izohamba kancane
kuqala phansi futhi maduze kuzofakazela ukuthi uwumsebenzi omude ngempela ongakwenzi
idinga impendulo.

Isibonelo sesi-3: Kuthiwani nge-I/O?

Manje ake sibheke isibonelo se-I/O. Njengoba kushiwo kumthetho 4b,
uma inqubo ikhulula iphrosesa ngaphandle kokusebenzisa ngokugcwele isikhathi sayo sokucubungula,
bese lihlala lisezingeni elifanayo elibalulekile. Inhloso yalo mthetho ilula kakhulu.
- uma umsebenzi osebenzisanayo wenza okuningi kwe-I/O, isibonelo, ukulinda
kusuka kokhiye bomsebenzisi noma kumagundane, umsebenzi onjalo uzokhulula iphrosesa
ngaphambi kwewindi elinikeziwe. Asifuni ukushiya umsebenzi obaluleke kangaka,
futhi ngaleyo ndlela izohlala isezingeni elifanayo.
Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 5: Ukuhlela: Umugqa Wempendulo Yezinga Eliningi (ukuhumusha)

Lesi sibonelo sibonisa ukuthi i-algorithm izosebenza kanjani nezinqubo ezinjalo - umsebenzi osebenzisanayo B, odinga kuphela i-CPU engu-1ms ngaphambi kokwenza.
Inqubo ye-I/O nomsebenzi omude A, osebenzisa i-CPU ngaso sonke isikhathi.
I-MLFQ igcina inqubo B iseqhulwini kakhulu njengoba iqhubeka
khulula i-CPU. Uma okuthi B kuwumsebenzi osebenzisanayo, khona-ke i-algorithm kuleli cala isifinyelele
inhloso yawo ukuqalisa imisebenzi exhumana ngokushesha.

Izinkinga nge-algorithm yamanje ye-MLFQ

Ezibonelweni ezedlule, sakhe inguqulo eyisisekelo ye-MLFQ. Futhi kubonakala sengathi
yenza umsebenzi wayo kahle nangendlela efanele, isabalalisa isikhathi se-CPU ngokulinganayo phakathi
imisebenzi emide nokuvumela imisebenzi emifushane noma imisebenzi efinyelelwa kakhulu
ku-I/O ukuze icutshungulwe ngokushesha. Ngeshwa, le ndlela iqukethe eziningana
izinkinga ezinkulu.
Okokuqala, inkinga yendlala: uma uhlelo luzoba nokuningi okusebenzisanayo
imisebenzi, zizodla sonke isikhathi se-CPU futhi ngaleyo ndlela kungabi nesikhathi eside
umsebenzi ngeke uthole ithuba lokubulawa (babulawa indlala).

Okwesibili, abasebenzisi abahlakaniphile bangabhala izinhlelo zabo ukuze
khohlisa umhleli. Inkohliso ilele ekwenzeni okuthile ukuze uphoqelele
umhleli ukunikeza inqubo isikhathi esengeziwe se-CPU. I-algorithm yokuthi
echazwe ngenhla isengozini yokuhlaselwa okunjalo: ngaphambi kokuba iwindi lesikhathi lisebenze
ngaphezulu, udinga ukwenza umsebenzi we-I / O (kwabanye, noma ngabe yiliphi ifayela)
futhi ngaleyo ndlela ukhulule i-CPU. Ukuziphatha okunjalo kuzokuvumela ukuthi uhlale endaweni efanayo
ulayini ngokwawo futhi uthole iphesenti elikhulu lesikhathi se-CPU. Uma kwenziwa
lokhu kulungile (isb. sebenzisa u-99% wesikhathi sewindi ngaphambi kokukhulula i-CPU),
umsebenzi onjalo ungamane ulawule iphrosesa.

Ekugcineni, uhlelo lungashintsha ukuziphatha kwalo ngokuhamba kwesikhathi. Leyo misebenzi
esebenzise i-CPU ingasebenzisana. Esibonelweni sethu, okufanayo
imisebenzi ngeke ithole ukwelashwa okufanele kumhleli, njengoba abanye bebengathola
(yangempela) imisebenzi esebenzisanayo.

Umbuzo ezilalelini: yikuphi ukuhlaselwa komhleli ongenziwa ezweni lanamuhla?

Umzamo 2: Khulisa okubalulekile

Ake sizame ukushintsha imithetho futhi sibone ukuthi singazigwema yini izinkinga
indlala. Yini esingayenza ukuze siqinisekise ukuthi kuhlobene
Imisebenzi ye-CPU izothola isikhathi sayo (ngisho noma ingeside).
Njengesixazululo esilula senkinga, ungaphakamisa ngezikhathi ezithile
ukwandisa ukubaluleka kwayo yonke imisebenzi enjalo ohlelweni. Ziningi izindlela
ukufeza lokhu, ake sizame ukwenza okuthile okulula njengesibonelo: humusha
yonke imisebenzi ngasikhathi sinye iye phezulu kakhulu, yingakho umthetho omusha:

  • Umthetho5: Ngemva kwesikhathi esithile S, dlulisela yonke imisebenzi kusistimu kulayini ophakeme kakhulu.

Umthetho wethu omusha uxazulula izinkinga ezimbili ngesikhathi esisodwa. Okokuqala, izinqubo
kuqinisekisiwe ukuthi ngeke ulambe: imisebenzi ekulayini ophakeme izokwabelana
isikhathi sokucubungula ngokuya nge-algorithm ye-RR futhi ngaleyo ndlela zonke izinqubo zizothola
isikhathi sokucubungula. Okwesibili, uma inqubo ethile esetshenziswe ngaphambilini
iprosesa kuphela esebenzisanayo, izohlala kumugqa nokuphezulu
okubalulekile ngemva kokuthola ukukhushulelwa kokubaluleke kakhulu kanye.
Cabangela isibonelo. Kulesi simo, cabanga inqubo eyodwa usebenzisa
Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 5: Ukuhlela: Umugqa Wempendulo Yezinga Eliningi (ukuhumusha)

I-CPU nezinqubo ezimbili ezisebenzayo, ezimfushane. Kwesokunxele emfanekisweni, isibalo sibonisa ukuziphatha ngaphandle kokukhushulwa kuqala, futhi ngaleyo ndlela umsebenzi omude uqala ukulamba ngemva kokufika kwemisebenzi emibili esebenzisanayo ohlelweni. Emfanekisweni ongakwesokudla, njalo ngo-50ms ukwenyuka okubalulekile kuyenziwa futhi ngaleyo ndlela zonke izinqubo ziqinisekiswa ukuthi zizothola isikhathi sokucubungula futhi zizoqalwa ngezikhathi ezithile. 50ms kulokhu kuthathwa njengesibonelo, empeleni leli nani liphakeme ngandlela thize.
Kusobala ukuthi ukwengezwa kwesikhathi sokukhuphuka ngezikhathi ezithile S kuholela ku
umbuzo onengqondo: yiliphi inani okufanele libekwe? Omunye ofanelwe kahle
onjiniyela bezinhlelo u-John Ousterhout ubhekisele kumanani afanayo kumasistimu njenge-voo-doo
njalo, ngoba ngandlela thize babedinga umlingo omnyama ukuze balungile
ukuchayeka. Futhi, ngeshwa, i-S ine-flavour enjalo. Uma usetha inani futhi
imisebenzi emikhulu izolamba. Futhi uma uyibeka phansi kakhulu,
imisebenzi esebenzisanayo ngeke ithole isikhathi esifanele se-CPU.

Umzamo 3: Ukubalwa Kwezimali Okungcono

Manje sinenye inkinga eyodwa okufanele siyixazulule: ukuthi ungenzenjani
sivumele ukukopela umhleli wethu? Amacala alokhu okungenzeka
imithetho 4a, 4b evumela umsebenzi ukuthi ugcine ukubaluleka kwawo ngokukhulula iphrosesa
ngaphambi kokuphela kwesikhathi esinikeziwe. Ungabhekana kanjani nakho?
Isixazululo kulokhu singathathwa njenge-accounting engcono yesikhathi se-CPU ngakunye
Ileveli ye-MLFQ. Esikhundleni sokukhohlwa isikhathi esisetshenziswe uhlelo
iprosesa yesikhawu esinikeziwe, kufanele uyinake futhi uyigcine. Ngemva
inqubo isisebenzise isikhathi sayo esinikeziwe, kufanele yehliselwe kwesilandelayo
izinga elibalulekile. Manje akunandaba ukuthi inqubo izosebenzisa kanjani isikhathi sayo - kanjani
ihlale ikhompuyutha kuphrosesa noma njengesethi yezingcingo. Ngakho,
Umthetho 4 kufanele ubhalwe kabusha kanje:

  • Umthetho4: Ngemva kokuthi umsebenzi ususebenzise isikhathi sawo esinikeziwe kulayini wamanje (kungakhathaliseki ukuthi ukhulule kangaki i-CPU), ukubaluleka komsebenzi onjalo kuyancishiswa (yehlisa umugqa).

Ake sibheke isibonelo:
Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 5: Ukuhlela: Umugqa Wempendulo Yezinga Eliningi (ukuhumusha)»

Isibalo sibonisa ukuthi kwenzekani uma uzama ukukhohlisa isihleli njengokuthanda
ukube bekunemithetho yangaphambilini ethi 4a, 4b bekungaba umphumela kwesokunxele. Ngezintsha
umthetho umphumela ungakwesokudla. Ngaphambi kokuvikelwa, noma iyiphi inqubo ingashayela i-I/O ngaphambi kokuqedwa futhi
ngakho-ke lawula i-CPU, ngemva kokunika amandla ukuvikelwa, kungakhathaliseki ukuziphatha
I/O, usazokwehla emgqeni futhi ngaleyo ndlela ngeke akwazi ukungathembeki
thatha izinsiza ze-CPU.

Ukuthuthukisa i-MLFQ nezinye izinkinga

Ngokuthuthukiswa okungenhla, izinkinga ezintsha ziyavela: enye yezinkinga ezinkulu
imibuzo - indlela yokwenza ipharamitha kumhleli onjalo? Labo. Kufanele kube yimalini
olayini? Kufanele ube yini usayizi wewindi lohlelo ngaphakathi komugqa? Kanjani
Uhlelo kufanele lubekwe eqhulwini ukuze kugwenywe indlala kanye
ukucabangela ushintsho ekuziphatheni kohlelo? Kule mibuzo, akukho lula
impendulo kanye nokuhlolwa okunemithwalo kanye nokucushwa okulandelayo
umhleli angaholela ebhalansi ethile eyanelisayo.

Isibonelo, ukusetshenziswa okuningi kwe-MLFQ kukuvumela ukuthi unikeze okuhlukile
izikhala zesikhathi kolayini abahlukene. Olayini ababalulekile kakhulu ngokuvamile
izikhawu ezimfushane. Le migqa iqukethe imisebenzi exhumanayo,
ukushintsha phakathi kokuzwela kakhulu futhi kufanele kuthathe u-10 noma ngaphansi
ms. Ngokuphambene, imigqa ebaluleke kancane iqukethe imisebenzi ehlala isikhathi eside esetshenziswayo
CPU. Futhi kulokhu, izikhawu zesikhathi eside zilingana kahle kakhulu (100ms).
Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 5: Ukuhlela: Umugqa Wempendulo Yezinga Eliningi (ukuhumusha)

Kulesi sibonelo, kunemisebenzi emi-2 esebenze kumugqa wama-20 obaluleke kakhulu
ms ihlukaniswe ngamafasitela angu-10ms. 40ms kulayini ophakathi nendawo (20ms window) nakumugqa ongabalulekile kangako
iwindi lesikhathi somugqa libe ngu-40ms lapho imisebenzi iqeda khona umsebenzi wayo.

Ukuqaliswa kwe-MLFQ ku-Solaris OS yikilasi labahleli ababelana ngesikhathi.
Isihleli sizohlinzeka ngesethi yamathebula echaza kahle ukuthi kufanele kanjani
shintsha okubalulekile kwenqubo phakathi nenkathi yokuphila kwayo, kufanele kube usayizi onjani
iwindi elizokwabelwa nokuthi kangaki ukuphakamisa izinto ezibalulekile emsebenzini. Umlawuli
isistimu ingasebenzisana naleli thebula futhi yenze umhleli aziphathe
ngokuhlukile. Ngokuzenzakalela, leli thebula linemigqa engama-60 enokwenyuka kancane kancane
usayizi wewindi kusuka ku-20ms (okubaluleke kakhulu) kuya kumakhulu ambalwa ms (okubalulekile okuphansi), kanye
futhi ngokuthuthuka kwayo yonke imisebenzi kanye ngomzuzwana.

Abanye abahleli be-MLFQ abalisebenzisi itafula nanoma iyiphi into ethile
imithetho echazwe kulesi sahluko, ngokuphambene nalokho, babala izinto eziza kuqala besebenzisa
amafomula ezibalo. Isibonelo, umhleli kuFreeBSD usebenzisa ifomula yokuthi
ukubala ukubaluleka komsebenzi wamanje ngokusekelwe ekutheni ingakanani inqubo
wasebenzisa i-CPU. Ngaphezu kwalokho, ukusetshenziswa kwe-CPU kubola ngokuhamba kwesikhathi, futhi kanjalo
Ngakho-ke, ukukhuphuka okubalulekile kuhluke ngandlela thile kunalokho okuchazwe ngenhla. Yiqiniso lokhu
ebizwa ngokuthi i-decay algorithms. Kusukela kunguqulo 7.1, iFreeBSD isebenzisa isihleli se-ULE.

Ekugcineni, abahleli abaningi banezinye izici. Ngokwesibonelo, abanye
abahleli bagcina amazinga aphezulu okusebenza kwesistimu yokusebenza kanjalo
Ngakho-ke, ayikho inqubo yomsebenzisi engathola okubaluleke kakhulu
uhlelo. Amanye amasistimu akuvumela ukuthi unikeze iseluleko ukuze usize
umhleli ukuze abeke phambili ngendlela efanele. Isibonelo, usebenzisa umyalo nice
ungakwazi ukwandisa noma unciphise ukubaluleka komsebenzi futhi ngaleyo ndlela wandise noma wehle
nciphisa amathuba ohlelo ngesikhathi se-CPU.

I-MLFQ: Isifinyezo

Sichaze indlela yokuhlela ebizwa nge-MLFQ. Egameni lakhe
iphethwe isimiso sokusebenza - inemigqa eminingana futhi isebenzisa impendulo
ukubeka phambili umsebenzi.
Ifomu lokugcina lemithetho lizoba kanje:

  • Umthetho1: Uma kuqala(A) > Okubalulekile(B), umsebenzi A uzosebenza (B ngeke)
  • Umthetho2: Uma okubalulekile(A) = Okubalulekile(B), i-A&B iqalwa kusetshenziswa i-RR
  • Umthetho3: Uma umsebenzi ungena ohlelweni, ubekwa kulayini obaluleke kakhulu.
  • Umthetho4: Ngemva kokuthi umsebenzi ususebenzise isikhathi sawo esinikeziwe kulayini wamanje (kungakhathaliseki ukuthi ukhulule kangaki i-CPU), ukubaluleka komsebenzi onjalo kuyancishiswa (yehlisa umugqa).
  • Umthetho5: Ngemva kwesikhathi esithile S, dlulisela yonke imisebenzi kusistimu kulayini ophakeme kakhulu.

I-MLFQ iyathakazelisa ngenxa yalesi sizathu esilandelayo - esikhundleni sokudinga ulwazi mayelana
ubunjalo bomsebenzi kusengaphambili, i-algorithm ifunda ukuziphatha okudlule komsebenzi kanye namasethi
okubalulekile ngokufanele. Ngakho-ke, uzama ukuhlala ezihlalweni ezimbili ngesikhathi esisodwa - ukufeza ukusebenza kwemisebenzi emincane (SJF, STCF) futhi agijime ngokwethembeka isikhathi eside,
Imisebenzi yokulayisha i-CPU. Ngakho-ke, amasistimu amaningi, kufaka phakathi i-BSD kanye nokuphuma kwawo,
I-Solaris, iWindows, iMac isebenzisa uhlobo oluthile lwe-algorithm njengomhleli
I-MLFQ njengesisekelo.

Izinto ezingeziwe:

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

Engeza amazwana