Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu 2: Abstraction: Maitiro (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 =)

Ngatitarisei iyo inonyanya kukosha yekubvisa iyo OS inopa kune vashandisi: maitiro. Tsanangudzo yemaitiro iri nyore - ndizvo inomhanya purogiramu. Iyo purogiramu pachayo chinhu chisina hupenyu chiri pa diski - iyo seti yemirairo uye pamwe imwe static data yakamirira kutangwa. Ndiyo OS inotora iwo mabheti uye oamhanyisa, ichishandura chirongwa kuita chimwe chinhu chinobatsira.
Kazhinji, vashandisi vanoda kumhanyisa anopfuura chirongwa chimwe panguva imwe chete, semuenzaniso, unogona kumhanya browser, mutambo, midhiya inoridza, mameseji edhita, uye nezvimwe palaptop yako. Muchokwadi, yakajairika system inogona kumhanya makumi kana mazana emaitiro panguva imwe chete. Ichi chokwadi chinoita kuti sisitimu ive nyore kushandisa, haufanirwe kunetseka nezvekuti CPU ndeyemahara, unongomhanyisa zvirongwa.

Izvi zvinomutsa dambudziko: nzira yekupa kunyengera kweakawanda maCPU? Iyo OS ingagadzira sei manyepo ehuwandu husingaverengeki hweCPU, kunyangwe iwe uchingove neCPU imwechete yemuviri?

Iyo OS inogadzira fungidziro iyi kuburikidza neCPU virtualization. Nokutanga imwe nzira, wozoimisa, kutanga imwe nzira, uye zvichingodaro, OS inogona kuchengetedza fungidziro yekuti kune akawanda maCPU chaiwo, apo pachange paine imwe kana akawanda emuviri processors. Iyi nzira inodaidzwa kupatsanurwa kweCPU zviwanikwa nenguva. Iyi nzira inobvumira vashandisi kuti vamhanye akawanda panguva imwe chete maitiro sezvavanoda. Mutengo wemhinduro iyi kuita - sezvo kana CPU ikagovaniswa nemaitiro akati wandei, maitiro ega ega anozogadziriswa zvishoma nezvishoma.
Kushandisa CPU virtualization, uye kunyanya kuzviita nemazvo, OS inoda zvese zvakaderera-chikamu uye chepamusoro-chikamu rutsigiro. Rutsigiro rwepasi pasi runodanwa michina inzira dzakaderera-nhanho kana maprotocol anoshandisa chikamu chinodiwa chekushanda. Muenzaniso wekushanda kwakadaro kushanduka kwemamiriro ezvinhu, izvo zvinopa OS kukwanisa kumisa imwe purogiramu uye kushandisa imwe purogiramu pane processor. Iyi nguva kupatsanurwa kunoitwa mune ese emazuva ano masisitimu ekushandisa.
Pamusoro pemaitiro aya pane imwe pfungwa yakavakirwa muOS, muchimiro che "mitemo". urongwa ndiyo imwe sarudzo-yekuita algorithm yeiyo inoshanda sisitimu. Mitemo yakadai, semuenzaniso, sarudza kuti chirongwa chipi chinofanira kutangwa (kubva pane rondedzero yemirairo) kutanga. Saka, semuenzaniso, dambudziko iri richagadziriswa nemutemo unonzi scheduler (kuronga mutemo) uye pakusarudza mhinduro, inotungamirwa nedata rakadai se: nhoroondo yekutanga (iyo chirongwa chakatangwa kureba mumaminetsi ekupedzisira), inotakura mutoro wei (imhando dzipi dzezvirongwa zvakatangwa), maitiro ekuita (ingave iyo system yakagadziridzwa kuitira kudyidzana kana kuti throughput ) zvichingodaro.

Abstraction: maitiro

Kubviswa kwechirongwa chinomhanya chinoitwa neiyo sisitimu yekushandisa ndiyo yatinodaidza maitiro. Sezvambotaurwa, chirongwa chinongova chirongwa chinomhanya, chero nguva yenguva. Chirongwa chatinogona kuwana ruzivo rwechipfupi kubva kune akasiyana masisitimu zviwanikwa izvo chirongwa ichi chinowana kana kukanganisa panguva yekuitwa kwayo.
Kuti unzwisise zvikamu zvemaitiro, unofanirwa kunzwisisa nyika dzehurongwa: izvo chirongwa chinogona kuverenga kana kuchinja panguva yekushanda kwayo. Panguva ipi neipi, iwe unofanirwa kunzwisisa kuti ndezvipi zvinhu zvehurongwa zvakakosha pakuitwa kwechirongwa.
Chimwe chezvinhu zviri pachena zvehurongwa hunotaura kuti maitiro anosanganisira ndeye ndangariro. Mirayiridzo iri mundangariro. Iyo data iyo purogiramu inoverenga kana kunyora inowanikwawo mundangariro. Saka, chiyeuchidzo chinogona kugadzirisa (chinonzi nzvimbo yekero) chikamu chemaitiro.
Zvakare chikamu cheiyo system state marejista. Mirayiridzo yakawanda inotarisirwa kuchinja kukosha kwezvinyorwa kana kuverenga kukosha kwavo, uye naizvozvo zvinyorwa zvinovawo chikamu chinokosha chekushanda kwemaitiro.
Izvo zvinofanirwa kucherechedzwa kuti mamiriro emuchina anoumbwa zvakare kubva kune mamwe akakosha marejista. Semuyenzaniso, IP - chinongedzo chekuraira - chinongedzo kune rairo iyo chirongwa chiri kuita parizvino. Kune zvakare stack pointer uye zvinoenderana nazvo frame pointer, iyo inoshandiswa kubata: maparameter ebasa, mabhii emunharaunda uye kero dzekudzorera.
Pakupedzisira, zvirongwa zvinowanzowana ROM (yekuverenga-chete ndangariro). Iyi "I/O" (yekupinza/inobuda) ruzivo runofanira kusanganisira runyoro rwemafaira akavhurwa parizvino nemaitiro.

Purogiramu inonzi Process

Kuti tivandudze manzwisisiro edu ekuti maitirwo acho anoshanda sei, ngatidzidzei mienzaniso yenharembozha inofanirwa kuverengerwa mune chero inoshanda sisitimu interface. Aya maAPI anowanikwa mune imwe fomu kana imwe pane chero OS.

● sika (kusikwa): Iyo OS inofanirwa kusanganisira imwe nzira inobvumidza iwe kugadzira maitiro matsva. Paunoisa murairo muchiteshi kana kuvhura application nekudzvanya-kaviri pane icon, runhare rwunotumirwa kuOS kuti ugadzire maitiro matsva uye wobva watanga chirongwa chakataurwa.
● Delete: Sezvo paine interface yekugadzira maitiro, iyo OS inofanirwa kupawo kugona kumanikidza kubviswa kwemaitiro. Mapurogiramu mazhinji anongotanga nekugumira ega paanenge achimhanya. Zvikasadaro mushandisi angade kukwanisa kuvauraya uye nekudaro interface yekumisa maitiro angave anobatsira.
● mira (kumirira): Dzimwe nguva zvinobatsira kumirira kuti chirongwa chipere, saka mamwe mainterface anopihwa anopa kugona kumirira.
● Misc Control (Kudzora kwakasiyana): Pamusoro pekuuraya nekumirira maitiro, kune zvakare dzimwe nzira dzakasiyana dzekudzora. Semuenzaniso, mazhinji masisitimu anoshanda anopa kugona kuomesa maitiro (kumisa kuurayiwa kwayo kweimwe nguva) uye wobva watangazve (enderera mberi)
● chinzvimbo (nyika): Kune akasiyana mainterface ekuwana rumwe ruzivo nezve chimiro chemaitiro, senge kuti yave nenguva yakareba sei ichishanda kana kuti inzvimbo ipi parizvino.

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu 2: Abstraction: Maitiro (shanduro)

Kugadzira Maitiro: Details

Chimwe chezvinhu zvinonakidza ndechekuti chaizvo zvirongwa zvinoshandurwa kuita maitiro. Kunyanya nzira iyo OS inotora uye inomhanyisa chirongwa. Iyo nzira inogadzirwa sei chaizvo.
Chekutanga pane zvese, iyo OS inofanirwa kurodha kodhi yepurogiramu uye static data mundangariro (munzvimbo yekero kero). Zvirongwa zvinowanzowanikwa pane dhisiki kana solid-state drive mune imwe nzira inogoneka. Nekudaro, maitiro ekurodha chirongwa uye static data mundangariro inoda kuti OS ikwanise kuverenga iwo mabhayiti kubva kudhisiki uye woaisa kumwe kundangariro.

Mukutanga masisitimu ekushandisa, iyo yekurodha yakaitwa nechido, izvo zvinoreva kuti iyo kodhi yese yakatakurwa mundangariro chirongwa chisati chatangwa. Mazuvano anoshanda masisitimu anoita izvi nehusimbe, ndiko kuti, kurodha zvimedu zvekodhi kana data chete kana chirongwa ichichida ivo panguva yekuitwa kwayo.

Kana iyo kodhi uye static data yaiswa muOS memory, pane zvimwe zvinhu zvishoma zvinoda kuitwa maitiro asati atanga. Humwe huwandu hwendangariro hunofanirwa kugoverwa kune stack. Zvirongwa zvinoshandisa stack yezvakasiyana-siyana zvemunharaunda, maparamita ebasa, uye kero dzekudzorera. Iyo OS inogovera iyi ndangariro uye inopa iyo maitiro. Iyo stack inogonawo kugoverwa nedzimwe nharo, kunyanya inozadza maparameter ehombe () basa, semuenzaniso nehurongwa hwe argc uye argv.

Iyo inoshanda sisitimu inogona zvakare kugovera imwe ndangariro kumurwi wechirongwa. Murwi unoshandiswa nemapurogiramu kukumbira zvakajeka data yakagovaniswa. Zvirongwa zvinokumbira nzvimbo iyi nekufonera basa malloc () uye inoibvisa zvakajeka nekudaidza basa racho mahara (). Murwi unodiwa kune zvimiro zvedata zvakaita semashiti akabatanidzwa, matafura ehashi, miti nezvimwe. Pakutanga, chikamu chidiki chendangariro chakagoverwa kumurwi, asi nekufamba kwenguva, sezvo chirongwa ichi chichimhanya, murwi unogona kukumbira imwe ndangariro kuburikidza neraibhurari API call malloc (). Iyo inoshanda sisitimu inobatanidzwa mukuita kwekugovera ndangariro dzakawanda kubatsira kugutsa idzi mafoni.

Iyo inoshanda sisitimu ichaitawo mabasa ekutanga, kunyanya ayo ane hukama neI/O. Semuenzaniso, paUNIX masisitimu, maitiro ega ega nekusagadzika ane matatu akavhurika faira anotsanangura, kune yakajairwa kupinza, kubuda, uye kukanganisa. Aya mabati anobvumira zvirongwa kuverenga zvinopinda kubva kune terminal pamwe nekuratidza ruzivo pachiratidziri.

Nekudaro, nekurodha kodhi uye static data mundangariro, kugadzira uye kutanga iyo stack, uye kuita rimwe basa rine chekuita nekuita I / O mabasa, iyo OS inogadzirira nhanho yekuti maitiro aitwe. Pakupedzisira, pane basa rekupedzisira rasara: kumhanyisa chirongwa kuburikidza nenzvimbo yayo yekupinda, inonzi main () basa. Nekuita main () basa, iyo OS inotamisa CPU kutonga kune ichangobva kugadzirwa maitiro, saka chirongwa chinotanga kuita.

Process state

Zvino zvatava nenzwisiso yekuti chirongwa chii uye kuti chinogadzirwa sei, ngatinyorei maitiro anoti anogona kunge ari mazviri. Muchimiro chayo chakareruka, maitiro anogona kuve mune imwe yeiyi matunhu:
● kumhanya. Paunenge uchimhanya, maitiro anomhanya pane processor. Izvi zvinoreva kuti mirayiridzo iri kuitwa.
● gadzirira. Mumamiriro akagadzirira, maitiro akagadzirira kumhanya, asi nekuda kwechimwe chikonzero OS haiite panguva yakatarwa.
● Yakadziviswa. Munzvimbo yakavharwa, maitiro anoita mamwe maoparesheni anoidzivirira kubva pakugadzirira kuita kusvika chimwe chiitiko chaitika. Mumwe muenzaniso wakajairika ndewekuti kana maitiro atanga kushanda kweIO, inovharika kuitira kuti imwe nzira ishandise processor.

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu 2: Abstraction: Maitiro (shanduro)

Iwe unogona kufungidzira idzi nyika muchimiro chegirafu. Sezvatinoona pamufananidzo, mamiriro ekuita anogona kuchinja pakati peKUTIZA uye KUGADZIRA pakufunga kweOS. Kana mamiriro ehurongwa achinja kubva READY kuenda kuRUNNING, zvinoreva kuti maitiro akarongwa. Mukupesana - kubviswa kubva pakurongeka. Panguva iyo nzira inove YAKABVA, semuenzaniso, ini ndinotanga IO oparesheni, iyo OS inoichengeta iri munzvimbo iyi kusvika chimwe chiitiko chaitika, semuenzaniso kupedzwa kweIO. panguva ino shanduko kuenda ku READY state uye pamwe nekukasika kuenda kuRUNNING state kana OS yafunga kudaro.
Ngatitarisei muenzaniso wekuti nzira mbiri dzinofamba sei mumatunhu aya. Kutanga, ngatimbofungidzira kuti ese ari maviri maitiro ari kushanda, uye imwe neimwe iri kushandisa chete CPU. Muchiitiko ichi, nyika dzavo dzichaita seizvi.

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu 2: Abstraction: Maitiro (shanduro)

Mumuenzaniso unotevera, maitiro ekutanga, mushure mechinguva achimhanya, anokumbira IO uye anopinda muBLOCKED state, achibvumira imwe nzira kuti iite (FIG 1.4). Iyo OS inoona kuti maitiro 0 haasi kushandisa CPU uye anotanga maitiro 1. Nepo maitiro 1 ari kushanda, IO inopedzwa uye chimiro chemaitiro 0 chinoshanduka kuita READY. Pakupedzisira, maitiro 1 apera, uye pakupera, maitiro 0 anotanga, anoita, uye anopedza basa rayo.

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu 2: Abstraction: Maitiro (shanduro)

Data chimiro

Iyo OS pachayo ichirongwa, uye sezvimwe chero chirongwa, ine mamwe makiyi data maumbirwo anochengeta akasiyana siyana akakodzera zvidimbu zveruzivo. Kuteedzera mamiriro ega ega maitiro, iyo OS inotsigira zvimwe process list kune ese maitirwo ari READY state uye nerumwe ruzivo rwekutevera maitirwo arikuitwa. Zvakare, iyo OS inofanirwa kutarisa yakavharika maitiro. Mushure mekunge IO yapera, OS inofanirwa kumutsa maitiro anodiwa uye kuiisa munzvimbo yakagadzirira kumhanya.

Semuenzaniso, iyo OS inofanirwa kuchengetedza mamiriro eiyo processor marejista. Parizvino maitiro akamira, iyo marejista inochengetwa munzvimbo yekero yemaitiro, uye panguva iyo basa rayo richienderera mberi, hunhu hwemarejista hunodzoreredzwa uye nekudaro kuenderera mberi nekuita kweichi chiitiko.

Kuwedzera kune yakagadzirira, yakavharika, inomhanya nyika, kune dzimwe nyika. Dzimwe nguva, panguva yekusika, maitiro anogona kunge ari muINIT state. Pakupedzisira, chirongwa chinogona kuiswa munharaunda yeFINAL kana yatopedza, asi ruzivo rwayo haruna kubviswa. PaUNIX system iyi inonzi zombie process. Iyi mamiriro anobatsira kune zviitiko apo mubereki maitiro anoda kuziva kodhi yekudzoka kwemwana, semuenzaniso, kazhinji 0 inoratidza budiriro uye 1 kukanganisa, asi vanogadzira mapurogiramu vanogona kuburitsa mamwe macode ekubuda kuratidza matambudziko akasiyana. Kana maitiro emubereki apera, anoita yekufona kwekupedzisira system, sekumirira (), kumirira kuti mwana agumise uye aratidze kuOS kuti inogona kujekesa chero data rine chekuita nekugumiswa.

Operating Systems: Zvidimbu Zvitatu Zviri Nyore. Chikamu 2: Abstraction: Maitiro (shanduro)

Pfungwa huru dzehurukuro:

● gadzira -Kubvisa kukuru kwechirongwa chiri kushanda muOS. Panguva ipi neipi, maitiro anogona kutsanangurwa nemamiriro ayo: zviri mukati mendangariro munzvimbo yayo yekero, zviri mukati me processor marejista, zvinosanganisira rairo pointer uye stack pointer, uye IO ruzivo, senge mafaera akavhurika ari kuverengwa kana kunyorwa.
● Purogiramu inonzi Process ine mafoni ayo mapurogiramu anogona kuita kune maitiro. Kazhinji izvi zvinogadzira, kudzima, kana mamwe mafoni.
● Iyo nzira iri mune imwe yenyika dzakawanda, kusanganisira kumhanya, kugadzirira, kuvharwa. Zviitiko zvakasiyana-siyana senge kuronga, kunze kwekuronga, kana kumirira zvinogona kushandura mamiriro ehurongwa kubva pane imwe kuenda kune imwe.
● Process list ine ruzivo rwezvese maitiro muhurongwa. Imwe neimwe inopinda mairi inonzi process control block, iyo muchokwadi chimiro chine ruzivo rwese rwakakosha nezve chaiyo hurongwa. 

Source: www.habr.com

Voeg