Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 4: Isingeniso kumhleli (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 =)

Isingeniso Seshejuli

Ingqikithi yenkinga: Uyithuthukisa kanjani inqubomgomo yesihleli
Kufanele zakhelwe kanjani izinhlaka zenqubomgomo yomhleli oyisisekelo? Kufanele kube yimiphi imibono eyinhloko? Yimaphi amamethrikhi abalulekile? Imaphi amasu ayisisekelo ayesetshenziswa ezinhlelweni zamakhompiyutha zakuqala?

Ukuqagela komthwalo womsebenzi

Ngaphambi kokuxoxa ngezinqubomgomo ezingase zibe khona, ake siqale senze ukuhlehla okumbalwa okwenza kube lula mayelana nezinqubo ezisebenza ohlelweni, ezibizwa ngokuhlanganyela ngokuthi. umthwalo womsebenzi. Ukuchaza umthwalo womsebenzi kuyingxenye ebalulekile yezinqubomgomo zokwakha, futhi uma wazi okwengeziwe ngomsebenzi, kuba ngcono inqubomgomo ongayibhala.

Ake senze ukucabanga okulandelayo mayelana nezinqubo ezisebenza ohlelweni, ngezinye izikhathi ezibizwa nangokuthi imisebenzi (imisebenzi). Cishe yonke le mibono ayilona iqiniso, kodwa iyadingeka ukuze kuthuthukiswe umcabango.

  1. Umsebenzi ngamunye ugijima isikhathi esifanayo,
  2. Yonke imisebenzi isethwe kanyekanye,
  3. Umsebenzi owabelwe usebenza kuze kuqedwe,
  4. Yonke imisebenzi isebenzisa i-CPU kuphela,
  5. Isikhathi sokusebenza somsebenzi ngamunye siyaziwa.

I-Scheduler Metrics

Ngokungeziwe kokunye ukucatshangelwa mayelana nomthwalo, elinye ithuluzi lokuqhathanisa izinqubomgomo zokushejula ezihlukene liyadingeka: amamethrikhi omhleli. Imethrikhi iyisilinganiso nje sokuthile. Kunenombolo yamamethrikhi angasetshenziswa ukuqhathanisa abahleli.

Isibonelo, sizosebenzisa imethrikhi ebizwa ngokuthi isikhathi sokushintsha (isikhathi sokushintsha). Isikhathi sokushintsha umsebenzi sichazwa njengomehluko phakathi kwesikhathi sokuqeda umsebenzi nesikhathi sokufika komsebenzi ohlelweni.

Tturnaround=Ukuqedwa−Isikhathi sokulinda

Njengoba sicabange ukuthi yonke imisebenzi ifike ngesikhathi esisodwa, bese kuthi u-Ta=0 bese ngaleyo ndlela u-Tt=Tc. Leli nani lizoshintsha ngokwemvelo uma sishintsha ukucabanga okungenhla.

Enye i-metric - ubulungiswa (ubulungiswa, ukwethembeka). Ukukhiqiza nokungenzeleli kuvame ukuba yizici eziphikisanayo ekuhleleni. Isibonelo, umhleli angase athuthukise ukusebenza, kodwa ngezindleko zokulinda eminye imisebenzi ukuthi isebenze, ngaleyo ndlela yehlise ukulunga.

OKOKUQALA KUQALA (FIFO)

I-algorithm eyisisekelo kakhulu esingayisebenzisa ibizwa nge-FIFO noma ngena kuqala (in), kuqala wanikezwa (out). Le algorithm inezinzuzo ezimbalwa: kulula kakhulu ukuyisebenzisa futhi ihambisana nakho konke esikucabangayo futhi yenza umsebenzi kahle impela.

Ake sibheke isibonelo esilula. Ake sithi imisebenzi emi-3 yahlelwa kanyekanye. Kodwa ake sicabange ukuthi umsebenzi A ufike ngaphambi kwesikhathi kunabo bonke abanye, ngakho-ke uzovela ohlwini lokubulawa ngaphambili kunabanye, njengo-B ohlobene no-C. Ake sicabange ukuthi ngamunye wabo uzokwenziwa imizuzwana engu-10. Sizoba yini isikhathi esimaphakathi sokuqeda le misebenzi kulesi simo?

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 4: Isingeniso kumhleli (ukuhumusha)

Ngokubala amanani - 10+20+30 futhi sihlukanise ngo-3, sithola isilinganiso sesikhathi sokwenza uhlelo esilingana nemizuzwana engama-20.
Manje ake sizame ukushintsha ukucabanga kwethu. Ikakhulukazi, ukucabangela 1 futhi ngaleyo ndlela ngeke sisacabanga ukuthi umsebenzi ngamunye uthatha isikhathi esifanayo ukuze wenziwe. Ngabe i-FIFO izokwenza kanjani ngalesi sikhathi?

Njengoba kuvela, izikhathi ezihlukene zokwenza umsebenzi zinomthelela omubi kakhulu ekukhiqizeni kwe-algorithm ye-FIFO. Ake sicabange ukuthi umsebenzi A uzothatha imizuzwana eyi-100 ukuqeda, kuyilapho u-B no-C kusazothatha imizuzwana eyi-10 ngayinye.

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 4: Isingeniso kumhleli (ukuhumusha)

Njengoba kubonakala esithombeni, isikhathi esimaphakathi sohlelo sizoba (100+110+120)/3=110. Lo mphumela ubizwa ngokuthi umphumela we-convoy, lapho abanye abathengi besikhathi esifushane besisetshenziswa bazoma umugqa ngemuva komthengi omningi. Kufana nolayini esitolo sokudla lapho kunekhasimende phambi kwakho elinenqola egcwele. Isixazululo esingcono kakhulu senkinga ukuzama ukushintsha irejista yemali noma uphumule futhi uphefumule ngokujulile.

Umsebenzi omfushane kakhulu kuqala

Kungenzeka ngandlela-thile ukuxazulula isimo esifanayo ngezinqubo ze-heavyweight? Impela. Olunye uhlobo lokuhlela lubizwa ngokuthiUmsebenzi omfushane kakhulu kuqala (SJF). I-algorithm yayo nayo ingeyakudala - njengoba negama lisho, imisebenzi emifushane izokwethulwa kuqala, ilandelana.

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 4: Isingeniso kumhleli (ukuhumusha)

Kulesi sibonelo, umphumela wokusebenzisa izinqubo ezifanayo uzoba ngcono esikhathini esimaphakathi sokushintsha uhlelo futhi sizolingana 50 esikhundleni sama-110, cishe izikhathi ezi-2 ezingcono.

Ngakho, ngokucabangela okunikeziwe ukuthi yonke imisebenzi ifika ngesikhathi esifanayo, i-algorithm ye-SJF ibonakala iyi-algorithm engcono kakhulu. Nokho, ukucabangela kwethu akubonakali kuyiqiniso. Kulokhu sishintsha ukucabanga 2 futhi kulokhu sicabange ukuthi imisebenzi ingaba khona nganoma yisiphi isikhathi, futhi hhayi yonke ngesikhathi esifanayo. Iziphi izinkinga lokhu okungaholela kuzo?

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 4: Isingeniso kumhleli (ukuhumusha)

Ake sicabange ukuthi umsebenzi A (100c) ufika kuqala futhi uqala ukwenziwa. Ku-t=10, imisebenzi B no-C iyafika, ngayinye ezothatha imizuzwana eyi-10. Ngakho isilinganiso sesikhathi sokwenza sithi (100+(110-10)+(120-10))3 = 103. Yini umhleli angayenza ukuze athuthukise lokhu?

Isikhathi Esifushane Sokuqeda Okokuqala (STCF)

Ukuze sithuthukise isimo, siyakushiya ukucabangela 3 kokuthi uhlelo luqalisiwe futhi luyaqhubeka luze luqedwe. Ngaphezu kwalokho, sizodinga ukusekelwa kwehadiwe futhi, njengoba ungase uqagele, sizosebenzisa isikhathi ukuphazamisa umsebenzi osebenzayo kanye ukushintsha umongo. Ngakho-ke, umhleli angenza okuthile ngesikhathi kufika imisebenzi ethi B, C - ayeke ukwenza umsebenzi A futhi afake imisebenzi ethi B no-C ekuyicubunguleni futhi, ngemva kokuqedwa kwayo, aqhubeke nokwenza inqubo A. Umhleli onjalo ubizwa ngokuthi I-STCFnoma Umsebenzi Wokuqala.

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 4: Isingeniso kumhleli (ukuhumusha)

Umphumela walo mhleli uzoba umphumela olandelayo: ((120-0)+(20-10)+(30-10))/3=50. Ngakho-ke, umhleli onjalo uba ngolungele kakhulu imisebenzi yethu.

Isikhathi sokuphendula semethrikhi

Ngakho-ke, uma sazi isikhathi sokusebenza semisebenzi nokuthi le misebenzi isebenzisa i-CPU kuphela, i-STCF izoba yisixazululo esingcono kakhulu. Futhi kanye ezikhathini zakuqala, lawa ma-algorithms asebenza kahle kakhulu. Nokho, umsebenzisi manje uchitha isikhathi sakhe esiningi kutheminali futhi ulindele ukuzizwisa okusebenzayo okusebenzayo. Ngakho kwasungulwa imethrikhi entsha - isikhathi sokuphendula (impendulo).

Isikhathi sokuphendula sibalwa kanje:

Tresponse=Tfirstrun−Tarrival

Ngakho, esibonelweni sangaphambilini, isikhathi sokuphendula sizoba: A=0, B=0, C=10 (abg=3,33).

Futhi kuvela ukuthi i-algorithm ye-STCF ayinhle kakhulu esimweni lapho imisebenzi emi-3 ifika ngesikhathi esifanayo - kuzodingeka ilinde kuze kube yilapho imisebenzi emincane iqedwa ngokuphelele. Ngakho-ke i-algorithm inhle kumethrikhi yesikhathi sokushintsha, kodwa embi kumethrikhi yokusebenzisana. Ake ucabange ukube ubuhlezi esikhumulweni sezindiza uzama ukuthayipha izinhlamvu kusihleli futhi kufanele ulinde imizuzwana eyi-10 ngoba omunye umsebenzi ubuthatha i-CPU. Akumnandi kakhulu.

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 4: Isingeniso kumhleli (ukuhumusha)

Ngakho-ke sibhekene nenye inkinga - singasakha kanjani isihleli esibucayi ngesikhathi sokuphendula?

Iround Robin

I-algorithm yenzelwe ukuxazulula le nkinga Iround Robin (RR). Umbono oyisisekelo ulula kakhulu: esikhundleni sokwenza imisebenzi ize iqedwe, sizoqhuba umsebenzi isikhathi esithile (okuthiwa ucezu lwesikhathi) bese sishintshela komunye umsebenzi ukusuka kulayini. I-algorithm iphinda umsebenzi wayo kuze kube yilapho yonke imisebenzi isiqediwe. Kulesi simo, isikhathi sokusebenza sohlelo kufanele sibe ukuphindaphinda kwesikhathi okuthi ngemva kwalokho isibali-sikhathi sizophazamisa inqubo. Isibonelo, uma isibali sikhathi siphazamisa inqubo njalo ngo-x=10ms, khona-ke usayizi wewindi lokwenziwa kwenqubo kufanele ube ukuphindaphinda okungu-10 futhi kube ngu-10,20 noma x*10.

Ake sibheke isibonelo: Imisebenzi ye-ABC ifika kanye kanye ohlelweni futhi ngayinye ifuna ukusebenza imizuzwana emi-5. I-algorithm ye-SJF izoqedela umsebenzi ngamunye ngaphambi kokuqala omunye. Ngokuphambene, i-algorithm ye-RR enefasitela lokuqalisa = 1s izodlula kule misebenzi kanje (Fig. 4.3):

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 4: Isingeniso kumhleli (ukuhumusha)
(I-SJF Futhi (Ayilungile Ngesikhathi Sokuphendula)

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 4: Isingeniso kumhleli (ukuhumusha)
(I-Round Robin (Ilungele Isikhathi Sokuphendula)

Isikhathi sokuphendula esimaphakathi se-algorithm ye-RR ngu-(0+1+2)/3=1, kanti i-SJF (0+5+10)/3=5.

Kunengqondo ukucabanga ukuthi iwindi lesikhathi liyipharamitha ebaluleke kakhulu ye-RR; uma lincane, isikhathi sokuphendula siphezulu. Kodwa-ke, akufanele ukwenze kube kuncane kakhulu, njengoba isikhathi sokushintsha umongo sizodlala indima ekusebenzeni okuphelele. Ngakho-ke, ukukhethwa kwesikhathi sewindi lokubulawa kusethwa umakhi we-OS futhi kuncike emisebenzini ehlelelwe ukwenziwa kuyo. Ukushintsha umongo akuyona ukuphela komsebenzi wesevisi ochitha isikhathi - uhlelo olusebenzayo lusebenza kwezinye izinto eziningi, isibonelo, ama-caches ahlukahlukene, futhi ngokushintsha ngakunye kuyadingeka ukulondoloza nokubuyisela le ndawo, okungase futhi kuthathe okuningi. isikhathi.

I-RR iyishejuli enhle uma besikhuluma kuphela ngemethrikhi yesikhathi sokuphendula. Kodwa i-metric yesikhathi sokuguqula umsebenzi izoziphatha kanjani nale algorithm? Cabanga ngesibonelo esingenhla, lapho isikhathi sokusebenza sika-A, B, C = 5s futhi sifika ngesikhathi esifanayo. Umsebenzi A uzophela ngo-13, B ngo-14, C ngo-15s futhi isikhathi sokushintsha esimaphakathi sizoba ngamasekhondi ayi-14. Ngakho, i-RR iyi-algorithm embi kakhulu yemethrikhi yenzuzo.

Ngokwemibandela evamile, noma iyiphi i-algorithm yohlobo lwe-RR ilungile; ihlukanisa isikhathi se-CPU ngokulinganayo phakathi kwazo zonke izinqubo. Futhi ngaleyo ndlela, lawa mamethrikhi ahlala engqubuzana wodwa.

Ngakho-ke, sinama-algorithms ambalwa aphikisanayo futhi ngesikhathi esifanayo kusenemibono eminingana esele - ukuthi isikhathi somsebenzi siyaziwa nokuthi umsebenzi usebenzisa i-CPU kuphela.

Ukuhlanganisa ne-I/O

Okokuqala, ake sisuse ukucabanga 4 ukuthi inqubo isebenzisa i-CPU kuphela; ngokwemvelo, akunjalo futhi izinqubo zingafinyelela kwezinye izinto zokusebenza.

Lapho noma iyiphi inqubo icela ukusebenza kwe-I/O, inqubo ingena esimweni esivinjiwe, ilinde ukuthi i-I/O iqede. Uma i-I/O ithunyelwa ku-hard drive, khona-ke ukusebenza okunjalo kungathatha ama-ms ambalwa noma ngaphezulu, futhi iphrosesa izobe ingenzi lutho ngalesi sikhathi. Ngalesi sikhathi, isihleli singakwazi ukusebenzisa iphrosesa nganoma iyiphi enye inqubo. Isinqumo esilandelayo umhleli kuzodingeka asenze yilapho inqubo izoqeda i-I/O yayo. Uma lokhu kwenzeka, kuzophazamiseka futhi i-OS izobeka inqubo ebizwa ngokuthi i-I/O esimweni sokulungela.

Ake sibheke isibonelo semisebenzi eminingana. Ngayinye yazo idinga ama-50ms wesikhathi se-CPU. Nokho, eyokuqala izofinyelela i-I/O njalo ngo-10ms (ezophinda isetshenziswe njalo ngo-10ms). Futhi inqubo B imane isebenzisa iphrosesa engu-50ms ngaphandle kwe-I/O.

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 4: Isingeniso kumhleli (ukuhumusha)

Kulesi sibonelo sizosebenzisa i-STCF scheduler. Ngabe umhleli uzoziphatha kanjani uma inqubo efana no-A yethulwa kuyo? Uzokwenza lokhu okulandelayo: okokuqala uzokhipha ngokuphelele inqubo A, bese ecubungula u-B.

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 4: Isingeniso kumhleli (ukuhumusha)

Indlela evamile yokuxazulula le nkinga ukuphatha umsebenzi omncane ngamunye ongu-10 ms wenqubo A njengomsebenzi ohlukile. Ngakho, uma uqala nge-algorithm ye-STJF, ukukhetha phakathi komsebenzi we-50 ms nomsebenzi we-10 ms kusobala. Bese, uma umsebenzi ongaphansi ongu-A usuqediwe, inqubo B kanye ne-I/O izokwethulwa. Ngemuva kokuthi i-I/O isiqediwe, kuzoba umkhuba ukuqala inqubo ye-10ms A futhi esikhundleni senqubo B. Ngale ndlela, kungenzeka ukusebenzisa ukugqagqana, lapho i-CPU isetshenziswa enye inqubo ngenkathi eyokuqala ilinde I/O. Futhi ngenxa yalokho, isistimu isetshenziswa kangcono - okwamanje lapho izinqubo ezisebenzisanayo zilinde i-I/O, ezinye izinqubo zingenziwa kuphrosesa.

I-Oracle ayisekho

Manje ake sizame ukususa umcabango wokuthi isikhathi sokusebenza komsebenzi siyaziwa. Lokhu ngokuvamile kuwukucatshangelwa okubi kakhulu nokungenangqondo kulo lonke uhlu. Eqinisweni, ku-OS evamile evamile, i-OS ngokwayo ivame ukwazi okuncane kakhulu ngesikhathi sokwenziwa kwemisebenzi, ngakho-ke ungakha kanjani umhleli ngaphandle kokwazi ukuthi umsebenzi uzothatha isikhathi esingakanani ukuze ufeze? Mhlawumbe singasebenzisa izimiso ze-RR ukuxazulula le nkinga?

Umphumela

Sibheke imibono eyisisekelo yokuhlela umsebenzi futhi sabheka imindeni emi-2 yabahleli. Owokuqala uqala umsebenzi omfushane kakhulu kuqala futhi ngaleyo ndlela andise isikhathi sokushintsha, kuyilapho owesibili uhlukaniswa phakathi kwayo yonke imisebenzi ngokulinganayo, okwandisa isikhathi sokuphendula. Womabili ama-algorithms mabi lapho ama-algorithms womunye umndeni mahle. Siphinde sabheka ukuthi ukusetshenziswa okufanayo kwe-CPU ne-I/O kungathuthukisa kanjani ukusebenza, kodwa akuzange kuxazulule inkinga nge-OS clairvoyance. Futhi esifundweni esilandelayo sizobheka umhleli obheka okwenzeka ngokushesha futhi azame ukubikezela ikusasa. Futhi kubizwa ngokuthi umugqa wempendulo wamazinga amaningi.

Source: www.habr.com

Engeza amazwana