Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu chechina: Nhanganyaya kune anoronga (shanduro)

Nhanganyaya kune Operating Systems

Mhoro, Habr! Ndinoda kukupa pfungwa dzako nhevedzano yezvinyorwa-shanduro yeimwe bhuku inonakidza mumaonero angu - OSTEP. Ichi chinyorwa chinoongorora zvakadzama basa reunix-senge masisitimu anoshanda, anoti, kushanda nematanho, akasiyana marongero, ndangariro uye zvimwe zvakafanana zvinoumba OS yemazuva ano. Iwe unogona kuona yepakutanga yezvinhu zvese pano pano. Ndapota cherechedza kuti shanduro yakaitwa zvisina basa (zvakasununguka), asi ndinovimba kuti ndakachengeta zvazvinoreva.

Basa re laboratori panyaya iyi rinogona kuwanikwa pano:

Zvimwe zvikamu:

Unogonawo kutarisa chiteshi changu pa teregiramu =)

Nhanganyaya kuMurongwa

Iwo musimboti wedambudziko: Maitiro ekugadzira a scheduler policy
Magadzirirwo ebumbiro remitemo epasi anofanira kugadzirwa sei? Ndezvipi zvinofanira kuva fungidziro huru? Ndezvipi zviyero zvakakosha? Ndeapi maitiro ekutanga akashandiswa mukutanga komputa masisitimu?

Mifungo Yebasa

Tisati takurukura zvingangoitwa marongero, ngatitangei taita mashoma kurerusa digressions nezve maitirwo ari kuita musystem, ayo anodaidzwa pamwe chete. basa rakawanda. Kutsanangura mutoro webasa chikamu chakakosha chemitemo yekuvaka, uye kana iwe uchiwedzera kuziva nezvebasa rebasa, zviri nani iyo mutemo waunogona kunyora.

Ngatiite fungidziro dzinotevera pamusoro pemaitiro ari kushanda muhurongwa, dzimwe nguva anonziwo mabasa (mabasa). Anenge ese efungidziro aya haasi echokwadi, asi anodiwa pakukura kwepfungwa.

  1. Basa rega rega rinotora nguva yakafanana,
  2. Mabasa ese akaiswa panguva imwe chete,
  3. Basa rawakapiwa rinoshanda kusvika rapera,
  4. Mabasa ese anoshandisa CPU chete,
  5. Nguva yekumhanya yebasa rega rega inozivikanwa.

Scheduler Metrics

Pamusoro pezvimwe fungidziro nezvemutoro, chimwe chishandiso chekuenzanisa marongero akasiyana anodiwa: scheduler metrics. Metric inongova imwe chiyero chechimwe chinhu. Kune akati wandei metrics anogona kushandiswa kuenzanisa kuronga.

Semuenzaniso, isu tichashandisa metric inonzi nguva yekuchinja (nguva yekuchinja). Nguva yekushandura basa inotsanangurwa semusiyano pakati penguva yekupedzisa basa uye nguva yekusvika yebasa muhurongwa.

Tturnaround=Kupedzisa−Tarrival

Sezvo isu taifungidzira kuti mabasa ese akasvika panguva imwe chete, ipapo Ta=0 uye nokudaro Tt=Tc. Ukoshi uhwu hunozongo shanduka kana tikashandura fungidziro dziri pamusoro.

Imwe metric - fairness (kururama, kuvimbika). Kubudirira uye kururamisira zvinowanzopesana pakuronga. Semuenzaniso, mugadziri anogona kukwidziridza kuita, asi nemutengo wekumirira mamwe mabasa kuti aite, nekudaro kuderedza kurongeka.

PAKUTANGA PAKUTANGA (FIFO)

Iyo inonyanya kukosha algorithm yatinogona kuita inonzi FIFO kana tanga kuuya (mukati), tanga kupihwa (kunze). Iyi algorithm ine akati wandei mabhenefiti: iri nyore kwazvo kuita uye inokodzera zvese zvatinofungidzira uye inoita basa racho nemazvo.

Ngatitarisei muenzaniso wakapfava. Ngatitii mabasa matatu akaiswa panguva imwe chete. Asi ngatitorei kuti basa A rakasvika zvishoma kudarika mamwe ose, saka richaonekwa mumutsara wekuuraya mberi kune mamwe, sezvakaita B hukama naC. Ngatitorei kuti mumwe nomumwe wavo achaurayiwa kwemaminitsi gumi. Ndeipi ichava nguva yeavhareji yekupedzisa mabasa aya mune iyi kesi?

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu chechina: Nhanganyaya kune anoronga (shanduro)

Nekuverenga kukosha - 10+20+30 uye kupatsanura ne3, tinowana avhareji yenguva yekuitwa kwechirongwa yakaenzana nemasekondi makumi maviri.
Zvino ngatiedze kushandura mafungiro edu. Kunyanya, kufungidzira 1 uye nekudaro isu hatichafungidzire kuti basa rega rega rinotora nguva yakafanana yenguva kuita. FIFO ichaita sei panguva ino?

Sezvazvinoitika, nguva dzakasiyana dzekuita basa dzine kukanganisa kwakanyanya pakubudirira kweFIFO algorithm. Ngatifungei kuti basa A richatora masekonzi zana kupedzisa, ukuwo B neC zvichingotora masekonzi gumi imwe neimwe.

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu chechina: Nhanganyaya kune anoronga (shanduro)

Sezvinogona kuonekwa kubva pamufananidzo, nguva yepakati yegadziriro ichave (100+110+120)/3=110. Mhedzisiro iyi inonzi convoy effect, apo vamwe vatengi venguva pfupi vezvekushandisa vanozomira mushure memutengi anorema. Zvakafanana nemutsetse wepachitoro chegirosari kana paine mutengi pamberi pako ane chingoro chakazara. Mhinduro yakanakisisa yechinetso ndeyekuedza kuchinja rejista yemari kana kuzorora uye kufema zvakanyanya.

Shortest Job First

Zvinoita here neimwe nzira kugadzirisa mamiriro akafanana neheavyweight process? Zvirokwazvo. Imwe mhando yekuronga inonziShortest Job First (SJF). Yayo algorithm zvakare ndeyechinyakare - sezvinoreva zita, mapfupi mabasa achatangwa kutanga, rimwe mushure memumwe.

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu chechina: Nhanganyaya kune anoronga (shanduro)

Mumuenzaniso uyu, mhedzisiro yekumhanyisa maitiro akafanana ichave kuvandudzwa kweavhareji chirongwa chekuchinja nguva uye ichave yakaenzana 50 panzvimbo ye110, iyo inenge kaviri zviri nani.

Nokudaro, nokuda kwekufungidzira kwakapiwa kuti mabasa ose anosvika panguva imwe chete, SJF algorithm inoratidzika seyo yakanyanya kunaka algorithm. Zvisinei, fungidziro dzedu hadzisati dzichiratidzika kuva dzechokwadi. Panguva ino isu tinoshandura fungidziro 2 uye ino nguva fungidzira kuti mabasa anogona kuve aripo chero nguva, uye kwete ese panguva imwe chete. Izvi zvinogona kukonzera matambudziko api?

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu chechina: Nhanganyaya kune anoronga (shanduro)

Ngatimbofungidzira kuti basa A (100c) rinosvika pekutanga uye rinotanga kuitwa. Pa t=10, mabasa B naC anosvika, rimwe nerimwe richitora masekondi gumi. Saka avhareji yenguva yekuuraya ndeye (10+(100-110)+(10-120))10 = 3. Murongi angaitei kuti avandudze izvi?

Ipfupi Nguva-yekupedzisa Kutanga (STCF)

Kuti tigadzirise mamiriro acho ezvinhu, tinosiya fungidziro ye3 yekuti chirongwa chinotangwa uye chinomhanya kusvika chapera. Mukuwedzera, isu tichada tsigiro yehardware uye, sezvaungafungidzira, isu tichashandisa timer kukanganisa basa rekumhanya uye kushandura mamiriro ezvinhu. Saka, mugadziri anogona kuita chimwe chinhu panguva iyo mabasa B, C asvika - kurega kuita basa A uye kuisa mabasa B neC mukugadzirisa uye, mushure mokunge apera, enderera mberi nekuita maitiro A. Murongi akadaro anonzi anonzi STCFkana Preemptive Job Kutanga.

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu chechina: Nhanganyaya kune anoronga (shanduro)

Mhedzisiro yemurongi uyu ichava mhedzisiro inotevera: ((120-0)+(20-10)+(30-10))/3=50. Saka, mugadziri akadaro anotova akanyanya kunaka kumabasa edu.

Metric Mhinduro Nguva

Nokudaro, kana tichiziva nguva yekushanda yemabasa uye kuti mabasa aya anoshandisa CPU chete, STCF ndiyo ichava mhinduro yakanakisisa. Uye kamwe munguva dzekutanga, aya algorithms akashanda zvakanaka. Nekudaro, mushandisi zvino anoshandisa yakawanda yenguva yake ari paiyo terminal uye anotarisira inobereka inopindirana chiitiko. Saka metric itsva yakazvarwa - nguva yekupindura (mhinduro).

Nguva yekupindura inoverengerwa sezvizvi:

Tresponse=Tfirstrun−Tarrival

Saka, kumuenzaniso wekare, nguva yekupindura ichava: A=0, B=0, C=10 (abg=3,33).

Uye zvinoitika kuti STCF algorithm haina kunaka mumamiriro ezvinhu apo mabasa matatu anosvika panguva imwe chete - inofanira kumirira kusvikira mabasa maduku apera zvachose. Saka iyo algorithm yakanaka kune yekuchinja nguva metric, asi yakaipa kune yekudyidzana metric. Fungidzira dai wanga wakagara pane terminal uchiedza kutaipa mavara mupepeti uye uchifanira kumirira anopfuura 3 masekonzi nekuti rimwe basa raitora CPU. Hazvinakidze zvakanyanya.

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu chechina: Nhanganyaya kune anoronga (shanduro)

Saka takatarisana nerimwe dambudziko - tingavake sei mugadziri ane hanya nenguva yekupindura?

Kutenderera Robin

Algorithm yakagadzirwa kugadzirisa dambudziko iri Kutenderera Robin (RR). Pfungwa yekutanga iri nyore: pachinzvimbo chekumhanyisa mabasa kusvika apera, isu tichamhanyisa basa racho kwenguva yakati (inonzi chidimbu chenguva) tozochinja kune rimwe basa kubva pamutsetse. Iyo algorithm inodzokorora basa rayo kusvika mabasa ese apera. Muchiitiko ichi, nguva yekushanda yepurogiramu inofanira kuva yakawanda yenguva mushure mokunge iyo timer ichavhiringidza maitiro. Semuyenzaniso, kana chibatiso chenguva chikavhiringa maitiro ega ega x=10ms, saka saizi yefafitera rekuita hunofanirwa kuita kuwanda kwegumi uye kuve 10 kana x*10,20.

Ngatitarisei muenzaniso: ABC mabasa anosvika panguva imwe chete muhurongwa uye rimwe nerimwe rawo rinoda kumhanya kwemasekonzi mashanu. Iyo SJF algorithm ichapedza basa rega rega isati yatanga rimwe. Kusiyana neizvi, iyo RR algorithm ine hwindo rekuvhura = 5s ichapfuura nepakati pemabasa seanotevera (Fig. 1):

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu chechina: Nhanganyaya kune anoronga (shanduro)
(SJF Zvakare (Yakashata kune Nguva yekupindura)

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu chechina: Nhanganyaya kune anoronga (shanduro)
(Round Robin (Yakanaka Kwenguva yekupindura)

Avhareji yenguva yekupindura yeRR algorithm ndeye (0+1+2)/3=1, ukuwo SJF (0+5+10)/3=5.

Zvine musoro kufunga kuti hwindo renguva iparameter yakakosha yeRR; iyo idiki iyo, ndiyo yakakwirira nguva yekupindura. Nekudaro, iwe haufanirwe kuzviita diki zvakanyanya, sezvo mamiriro ekuchinja nguva achaitawo basa mukuita kwese. Nokudaro, kusarudzwa kwekuurayiwa kwehwindo nguva inogadziriswa neOs architect uye zvinoenderana nemabasa anorongwa kuti aitwe mairi. Kushandura mamiriro haisi iyo chete basa rekushanda rinopedza nguva - chirongwa chekumhanya chinoshanda pane zvakawanda zvezvimwe zvinhu, semuenzaniso, cache dzakasiyana-siyana, uye neshanduko imwe neimwe inofanirwa kuchengetedza nekudzorera iyi nharaunda, iyo inogonawo kutora zvakawanda. nguva.

RR is a great scheduler dai taingotaura nezve metric yenguva yekupindura. Asi iro basa rekuchinja nguva metric richaita sei neiyi algorithm? Funga muenzaniso wepamusoro, apo nguva yekushanda yeA, B, C = 5s uye inosvika panguva imwe chete. Basa A richapera pa13, B pa14, C pa15s uye avhareji yenguva yekutendeuka ichave 14s. Saka, RR ndiyo yakaipisisa algorithm yekuchinja metric.

Mune mamwe mazwi, chero RR-mhando algorithm yakanaka; inokamura iyo CPU nguva zvakaenzana pakati pemaitiro ese. Uye nekudaro, aya metrics anogara achinetsana.

Nekudaro, isu tine akati wandei akasiyana algorithms uye panguva imwe chete kuchine akati wandei fungidziro asara - kuti nguva yebasa inozivikanwa uye kuti basa rinongoshandisa CPU.

Kusanganiswa neI/O

Chekutanga pane zvese, ngatibvise fungidziro 4 kuti maitiro acho anoshandisa CPU chete; sezvizvi, izvi handizvo uye maitiro anogona kuwana mimwe michina.

Iyo nguva chero maitiro anokumbira I / O oparesheni, maitiro anopinda munzvimbo yakavharwa, achimirira kuti I / O ipedze. Kana I / O ikatumirwa kune hard drive, ipapo kushanda kwakadaro kunogona kutora kusvika kune akati wandei ms kana kureba, uye processor ichave isina basa panguva ino. Munguva ino, mugadziri anogona kutora processor neimwe nzira. Sarudzo inotevera iyo murongi achafanirwa kuita ndipo iyo nzira ichapedza I/O yayo. Kana izvi zvikaitika, kukanganisa kuchaitika uye OS ichaisa maitiro akadana I / O munzvimbo yakagadzirira.

Ngatitarisei muenzaniso wezvinetso zvakawanda. Imwe neimwe yadzo inoda 50ms yeCPU nguva. Nekudaro, yekutanga ichawana I/O yega yega gumi (inozoitwawo yega gumi). Uye maitiro B anongoshandisa 10ms processor isina I/O.

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu chechina: Nhanganyaya kune anoronga (shanduro)

Mumuenzaniso uyu tichashandisa STCF scheduler. Mugadziri achaita sei kana maitiro akaita seA akatangwa pairi? Achaita zvinotevera: kutanga achaita zvizere nzira A, uye ipapo gadzira B.

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu chechina: Nhanganyaya kune anoronga (shanduro)

Maitiro echinyakare ekugadzirisa dambudziko iri kubata yega yega 10 ms subtask yemaitiro A sebasa rakasiyana. Saka, kana uchitanga ne STJF algorithm, sarudzo pakati pe 50 ms basa uye 10 ms basa iri pachena. Zvino, kana subtask A yapera, maitiro B uye I / O anozotangwa. Mushure mekunge I / O yapedza, ichave tsika kutanga 10ms maitiro A zvakare panzvimbo yeB. Nenzira iyi, zvinokwanisika kushandisa kupindirana, apo CPU inoshandiswa neimwe nzira apo yekutanga yakamirira. I/O. Uye semhedzisiro, iyo sisitimu inoshandiswa zvirinani - panguva iyo maitiro ekudyidzana akamirira I / O, mamwe maitiro anogona kuitwa pane processor.

Iyo Oracle haisisiri

Zvino ngatiedzei kubvisa fungidziro yekuti nguva yekumhanya yebasa inozivikanwa. Izvi zvinowanzova fungidziro yakaipisisa uye isiri yechokwadi pane yese rondedzero. Muchokwadi, muavhareji yakajairwa OS, iyo OS pachayo inowanzoziva zvishoma nezve nguva yekuitwa kwemabasa, saka ungaite sei iwe kuvaka mugadziri usingazive kuti basa racho richatora nguva yakareba sei kuita? Zvichida tinogona kushandisa mamwe maRR misimboti kugadzirisa dambudziko iri?

Mugumisiro

Takatarisa mazano ekutanga ekuronga basa uye takatarisa mhuri mbiri dzevagadziri. Yekutanga inotanga basa rakapfupika kutanga uye nekudaro inowedzera nguva yekuchinja, nepo yechipiri yakabvaruka pakati pemabasa ese zvakaenzana, ichiwedzera nguva yekupindura. Ose maalgorithms akaipa uko algorithms yeimwe mhuri yakanaka. Isu takatarisawo kuti kushandiswa kwakafanana kweCPU neI / O kunogona sei kuvandudza mashandiro, asi haina kugadzirisa dambudziko neOS clairvoyance. Uye muchidzidzo chinotevera tichatarisa murongi anotarisa mune zvakapfuura uye anoedza kufanotaura ramangwana. Uye inonzi multi-level mhinduro queue.

Source: www.habr.com

Voeg