Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 4: Chiyambi cha ndandanda (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 =)

Mau oyamba a Scheduler

Chofunikira chavuto: Momwe mungapangire ndondomeko ya scheduler
Kodi ndondomeko zoyendetsera ndondomeko ziyenera kupangidwa bwanji? Mfundo zazikuluzikulu ziyenera kukhala zotani? Ndi miyeso iti yomwe ili yofunika? Kodi ndi njira zotani zoyambira zomwe zidagwiritsidwa ntchito poyambira makompyuta?

Malingaliro a Ntchito

Tisanakambirane mfundo zomwe zingatheke, tiyeni tiyambe tikambirane pang'ono pang'onopang'ono za ndondomeko zomwe zikuyenda mu dongosolo, zomwe zimatchedwa pamodzi. kuchuluka kwa ntchito. Kufotokozera za ntchito ndi gawo lofunika kwambiri la ndondomeko zomanga, ndipo mukamadziwa zambiri za ntchitoyo, ndondomeko yomwe mungalembe ndi yabwino.

Tiyeni tipange malingaliro awa okhudza njira zomwe zikuyenda mu dongosolo, nthawi zina amatchedwanso ntchito (ntchito). Pafupifupi malingaliro onsewa sali enieni, koma ndi ofunikira pakukula kwa malingaliro.

  1. Ntchito iliyonse imayendera nthawi yofanana,
  2. Ntchito zonse zimayikidwa nthawi imodzi,
  3. Ntchito yomwe wapatsidwa imagwira ntchito mpaka kumaliza,
  4. Ntchito zonse zimagwiritsa ntchito CPU yokha,
  5. Nthawi yoyendetsa ntchito iliyonse imadziwika.

Scheduler Metrics

Kuphatikiza pamalingaliro ena okhudzana ndi katunduyo, chida china chofananizira ndondomeko zamadongosolo chimafunikira: ma metric owerengera. Metric ndi muyeso wina chabe wa chinachake. Pali ma metric angapo omwe angagwiritsidwe ntchito kufananiza okonza mapulani.

Mwachitsanzo, tigwiritsa ntchito metric yotchedwa nthawi yosinthira (nthawi yosinthira). Nthawi yosinthira ntchito imatanthauzidwa ngati kusiyana pakati pa nthawi yomaliza ntchito ndi nthawi yofika ntchito mudongosolo.

Tturnaround=Kumaliza−Tarrival

Popeza tinkaganiza kuti ntchito zonse zinafika nthawi imodzi, ndiye Ta=0 ndipo motero Tt=Tc. Mtengo uwu udzasintha mwachibadwa tikasintha malingaliro omwe ali pamwambawa.

Metric ina - chilungamo (chilungamo, chilungamo). Kuchita bwino ndi chilungamo nthawi zambiri zimatsutsana pokonzekera. Mwachitsanzo, wokonza mapulani amatha kuwongolera magwiridwe antchito, koma pamtengo wodikirira kuti ntchito zina zichitike, motero kuchepetsa chilungamo.

POYAMBA POYAMBA (FIFO)

Algorithm yofunikira kwambiri yomwe titha kugwiritsa ntchito imatchedwa FIFO kapena bwerani koyamba (kulowa), kuperekedwa koyamba (kutuluka). Algorithm iyi ili ndi zabwino zingapo: ndiyosavuta kukhazikitsa ndipo imagwirizana ndi zomwe tikuganiza ndipo imagwira ntchito bwino.

Tiyeni tione chitsanzo chosavuta. Tinene kuti ntchito zitatu zidakhazikitsidwa nthawi imodzi. Koma tiyeni tiyerekeze kuti ntchito A inafika kale pang'ono kuposa ena onse, kotero idzawonekera pamndandanda wakupha kale kuposa ena, monga B wachibale kwa C. Tiyerekeze kuti aliyense wa iwo adzaphedwa kwa masekondi 3. Kodi avareji ya nthawi yomaliza ntchitozi ikhala iti?

Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 4: Chiyambi cha ndandanda (kumasulira)

Powerengera zikhalidwe - 10+20+30 ndikugawa ndi 3, timapeza nthawi yochitira pulogalamu yofanana ndi masekondi 20.

Tsopano tiyeni tiyese kusintha maganizo athu. Makamaka, kulingalira 1 ndipo motero sitidzaganizanso kuti ntchito iliyonse imatenga nthawi yofanana kuti ichitike. Kodi FIFO ichita bwanji nthawi ino?

Zotsatira zake, nthawi zosiyanasiyana zogwirira ntchito zimakhala ndi vuto lalikulu pakupanga algorithm ya FIFO. Tiyerekeze kuti ntchito A idzatenga masekondi 100 kuti ithe, pomwe B ndi C zidzatenga masekondi 10 iliyonse.

Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 4: Chiyambi cha ndandanda (kumasulira)

Monga tikuwonera pachithunzichi, nthawi yapakati pa dongosololi idzakhala (100+110+120)/3=110. Izi zimatchedwa convoy zotsatira, pamene ena ogula kwakanthawi kochepa akakhala pamzere pambuyo pa ogula kwambiri. Zili ngati mzere wapa golosale pamene pali kasitomala kutsogolo kwanu ali ndi ngolo yodzaza. Njira yabwino yothetsera vutoli ndiyo kuyesa kusintha kaundula wa ndalama kapena kumasuka ndi kupuma mozama.

Ntchito Yaifupi Kwambiri Choyamba

Kodi ndizotheka kuthetsa vuto lomweli ndi njira zolemetsa? Ndithudi. Mtundu wina wokonzekera umatchedwaNtchito Yaifupi Kwambiri Choyamba (SJF). Ma aligorivimu ake ndi akale kwambiri - monga momwe dzinalo limatanthawuzira, ntchito zazifupi kwambiri zidzayambitsidwa koyamba, imodzi pambuyo pa inzake.

Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 4: Chiyambi cha ndandanda (kumasulira)

Muchitsanzo ichi, zotsatira zoyendetsa njira zomwezo zidzakhala kusintha kwa nthawi yosinthira pulogalamu ndipo zidzakhala zofanana ndi 50 m'malo mwa 110, yomwe ili pafupifupi 2 nthawi zabwinoko.

Chifukwa chake, chifukwa choganiza kuti ntchito zonse zimafika nthawi imodzi, algorithm ya SJF ikuwoneka kuti ndiyo njira yabwino kwambiri. Komabe, malingaliro athu sakuwoneka ngati enieni. Nthawi ino timasintha lingaliro 2 ndipo nthawi ino tikuganiza kuti ntchito zitha kukhalapo nthawi iliyonse, osati zonse nthawi imodzi. Kodi izi zingabweretse mavuto otani?

Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 4: Chiyambi cha ndandanda (kumasulira)

Tiyerekeze kuti ntchito A (100c) ifika koyamba ndikuyamba kuchitidwa. Pa t=10, ntchito B ndi C ifika, iliyonse yomwe idzatenga masekondi khumi. Chifukwa chake nthawi yapakati yopha ndi (10+(100-110)+(10-120))10 = 3. Kodi wokonza mapulani angachite chiyani kuti izi zitheke?

Nthawi Yaifupi Kwambiri Yomaliza Yoyamba (STCF)

Kuti tichite bwino, timasiya kulingalira 3 kuti pulogalamuyo idakhazikitsidwa ndikupitilira mpaka kutha. Kuphatikiza apo, tidzafunika thandizo la hardware ndipo, monga momwe mungaganizire, tidzagwiritsa ntchito powerengetsera nthawi kusokoneza ntchito yothamanga ndi kusintha kwa nkhani. Chifukwa chake, wokonza mapulani atha kuchitapo kanthu panthawi yomwe ntchito B, C ifika - kusiya kugwira ntchito A ndikuyika ntchito B ndi C pokonzekera ndipo, ikamaliza, pitilizani kuchita A. Wokonza mapulani wotere amatchedwa Mtengo wa STCFkapena Ntchito Yoyeserera Kwambiri.

Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 4: Chiyambi cha ndandanda (kumasulira)

Zotsatira za ndondomekoyi zidzakhala zotsatirazi: ((120-0)+(20-10)+(30-10))/3=50. Chifukwa chake, ndandanda yotereyi imakhala yabwino kwambiri pantchito zathu.

Metric Response Time

Choncho, ngati tidziwa nthawi yogwira ntchito komanso kuti ntchitozi zimagwiritsa ntchito CPU yokha, STCF idzakhala yankho labwino kwambiri. Ndipo kamodzi koyambirira, ma algorithms awa adagwira ntchito bwino. Komabe, wogwiritsa ntchito tsopano amathera nthawi yake yambiri pa terminal ndipo amayembekeza zokumana nazo zothandiza. Chifukwa chake metric yatsopano idabadwa - nthawi yoyankha (kuyankha).

Nthawi yoyankha imawerengedwa motere:

Tresponse=Tfirstrun−Tarrival

Chifukwa chake, kwa chitsanzo cham'mbuyomu, nthawi yoyankha idzakhala: A=0, B=0, C=10 (abg=3,33).

Ndipo zikuoneka kuti aligorivimu STCF si bwino kwambiri pamene ntchito 3 kufika nthawi yomweyo - ayenera kudikira mpaka ntchito zazing'ono anamaliza. Chifukwa chake ma aligorivimu ndi abwino pamiyeso yanthawi yosinthira, koma yoyipa pamakina olumikizana. Tangoganizani mutakhala pa terminal mukuyesera kulemba zilembo mumkonzi ndikudikirira masekondi opitilira 10 chifukwa ntchito ina inali kutenga CPU. Sizosangalatsa kwambiri.

Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 4: Chiyambi cha ndandanda (kumasulira)

Ndiye tikukumana ndi vuto lina - tingapange bwanji ndandanda yomwe imakhudzidwa ndi nthawi yoyankha?

Kuzungulira Robin

Algorithm idapangidwa kuti ithetse vutoli Kuzungulira Robin (RR). Lingaliro loyambirira ndi losavuta: m'malo mogwira ntchito mpaka zitatsirizidwa, tidzayendetsa ntchitoyi kwa nthawi inayake (yotchedwa kagawo ka nthawi) ndikusinthira ku ntchito ina kuchokera pamzere. Algorithm imabwereza ntchito zake mpaka ntchito zonse zitamalizidwa. Pankhaniyi, nthawi yoyendetsera pulogalamuyo iyenera kukhala yochulukirapo pambuyo pake pomwe chowerengera chidzasokoneza ndondomekoyi. Mwachitsanzo, ngati chowerengera chisokoneza ndondomeko x=10ms iliyonse, ndiye kuti kukula kwazenera la ndondomekoyo kuyenera kukhala kuchulukitsa kwa 10 ndikukhala 10,20 kapena x*10.

Tiyeni tiwone chitsanzo: Ntchito za ABC zimafika nthawi imodzi mudongosolo ndipo iliyonse ikufuna kuthamanga kwa masekondi asanu. Algorithm ya SJF idzamaliza ntchito iliyonse isanayambe ina. Mosiyana ndi izi, RR aligorivimu yokhala ndi zenera loyambitsa = 5s idzadutsa ntchito motere (mkuyu 1):

Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 4: Chiyambi cha ndandanda (kumasulira)
(SJF Apanso (Yoyipa pa Nthawi Yoyankha)

Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 4: Chiyambi cha ndandanda (kumasulira)
(Round Robin (Zabwino Nthawi Yoyankha)

Avereji ya nthawi yoyankhira ma aligorivimu a RR ndi (0+1+2)/3=1, pomwe ya SJF (0+5+10)/3=5.

Ndizomveka kuganiza kuti zenera la nthawi ndi gawo lofunikira kwambiri la RR; yaying'ono ndi yaying'ono, imakweza nthawi yoyankha. Komabe, simuyenera kuyipanga kukhala yaying'ono kwambiri, chifukwa kusintha kwa nthawi kumathandiziranso magwiridwe antchito onse. Chifukwa chake, nthawi yosankha nthawi yazenera imayikidwa ndi womanga OS ndipo zimadalira ntchito zomwe zakonzedwa kuti zichitike mmenemo. Kusintha mawu si ntchito yokhayo yomwe imawononga nthawi - pulogalamu yothamanga imagwira ntchito pazinthu zina zambiri, mwachitsanzo, ma cache osiyanasiyana, ndipo ndi kusintha kulikonse ndikofunikira kupulumutsa ndikubwezeretsa chilengedwe ichi, chomwe chingatengenso zambiri. nthawi.

RR ndiwokonzekera bwino ngati timangolankhula za nthawi yoyankha. Koma kodi metric yosinthira ntchito ikhala bwanji ndi algorithm iyi? Taganizirani chitsanzo pamwamba, pamene ntchito nthawi A, B, C = 5s ndi kufika nthawi yomweyo. Ntchito A idzatha pa 13, B pa 14, C pa 15s ndipo nthawi yosinthira idzakhala 14s. Chifukwa chake, RR ndiye njira yoyipa kwambiri pazachuma.

Mwachidule, algorithm yamtundu uliwonse wa RR ndi yabwino; imagawa nthawi ya CPU mofanana pakati pa njira zonse. Chifukwa chake, ma metric awa nthawi zonse amatsutsana wina ndi mnzake.

Chifukwa chake, tili ndi ma aligorivimu angapo osiyanitsa ndipo nthawi yomweyo pali malingaliro angapo omwe atsalira - kuti nthawi yantchitoyo imadziwika komanso kuti ntchitoyi imangogwiritsa ntchito CPU.

Kuphatikiza ndi I/O

Choyamba, tiyeni tichotse lingaliro 4 kuti njirayi imangogwiritsa ntchito CPU; mwachilengedwe, izi siziri choncho ndipo njira zimatha kupeza zida zina.

Nthawi yomwe ndondomeko iliyonse ikupempha ntchito ya I / O, ndondomekoyi imalowa m'malo otsekedwa, kuyembekezera kuti I / O imalize. Ngati I / O itumizidwa ku hard drive, ndiye kuti ntchito yotereyi imatha kutenga ma ms angapo kapena kupitilira apo, ndipo purosesa idzakhala yopanda pake pakadali pano. Panthawiyi, wokonza mapulani amatha kukhala ndi purosesa ndi njira ina iliyonse. Chisankho chotsatira chomwe wokonza adzayenera kupanga ndi nthawi yomwe ntchitoyi idzamalize I/O yake. Izi zikachitika, kusokoneza kudzachitika ndipo OS idzayika njira yomwe idatcha I / O kukhala yokonzeka.

Tiyeni tione chitsanzo cha mavuto angapo. Aliyense wa iwo amafuna 50ms ya CPU nthawi. Komabe, woyamba adzapeza I/O pa 10ms iliyonse (yomwe idzachitidwanso 10ms iliyonse). Ndipo ndondomeko B imangogwiritsa ntchito purosesa ya 50ms popanda I/O.

Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 4: Chiyambi cha ndandanda (kumasulira)

Mu chitsanzo ichi tidzagwiritsa ntchito STCF scheduler. Kodi wopangayo azichita bwanji ngati njira ngati A ikhazikitsidwa pamenepo? Adzachita izi: choyamba adzakonza ndondomeko A, ndiyeno B.

Njira Zogwirira Ntchito: Zidutswa Zitatu Zosavuta. Gawo 4: Chiyambi cha ndandanda (kumasulira)

Njira yachikhalidwe yothetsera vutoli ndikutenga gawo lililonse la 10 ms la process A ngati ntchito yosiyana. Choncho, poyambira ndi algorithm ya STJF, kusankha pakati pa ntchito ya 50 ms ndi ntchito ya 10 ms ndizodziwikiratu. Kenako, gawo laling'ono A likamalizidwa, ndondomeko B ndi I/O idzayambika. I / O ikamaliza, idzakhala yachizolowezi kuyambitsanso ndondomeko ya 10ms A kachiwiri m'malo mwa ndondomeko B. Mwanjira iyi, ndizotheka kugwiritsa ntchito kuphatikizika, kumene CPU imagwiritsidwa ntchito ndi ndondomeko ina pamene yoyamba ikuyembekezera. Ine/O. Ndipo chifukwa chake, dongosololi limagwiritsidwa ntchito bwino - panthawi yomwe njira zolumikizirana zikudikirira I / O, njira zina zitha kuchitidwa pa purosesa.

Oracle kulibenso

Tsopano tiyeni tiyese kuchotsa kuganiza kuti nthawi yogwira ntchitoyo imadziwika. Ili ndilo lingaliro loipitsitsa komanso losatheka pa mndandanda wonsewo. M'malo mwake, mu OS wamba, OS palokha nthawi zambiri sadziwa pang'ono za nthawi yogwira ntchito, ndiye mungapangire bwanji ndandanda popanda kudziwa kuti ntchitoyi itenga nthawi yayitali bwanji? Mwina tingagwiritse ntchito mfundo za RR kuthetsa vutoli?

Zotsatira

Tidayang'ana malingaliro oyambira pakukonza ntchito ndikuyang'ana mabanja a 2 a schedulers. Yoyamba imayamba ntchito yayifupi kwambiri ndipo motero imawonjezera nthawi yosinthira, pomwe yachiwiri imang'ambika pakati pa ntchito zonse mofanana, ndikuwonjezera nthawi yoyankha. Ma aligorivimu onse ndi oyipa pomwe ma aligorivimu a banja lina ndiabwino. Tidawonanso momwe kugwiritsa ntchito kofananira kwa CPU ndi I/O kungathandizire magwiridwe antchito, koma sikunathetse vutoli ndi OS clairvoyance. Ndipo m’phunziro lotsatira tiona wokonza mapulani amene amayang’ana m’mbuyo ndi kuyesa kulosera zam’tsogolo. Ndipo imatchedwa mizere ya mayankho osiyanasiyana.

Source: www.habr.com

Kuwonjezera ndemanga