Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 2: Okufingqiwe: Inqubo (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 =)

Ake sibheke i-abstraction ebaluleke kakhulu i-OS enikeza abasebenzisi: inqubo. Incazelo yenqubo ilula kakhulu - injalo uhlelo olusebenzayo. Uhlelo ngokwalo luyinto engaphili etholakala kudiski - luyiqoqo lemiyalo futhi mhlawumbe nedatha ethile emile elinde ukwethulwa. Yi-OS ethatha lawo mabhayithi iwaqhube, iguqule uhlelo lube into ewusizo.
Ngokuvamile, abasebenzisi bafuna ukusebenzisa uhlelo olungaphezu kolulodwa ngesikhathi esisodwa, isibonelo, ungasebenzisa isiphequluli, umdlalo, isidlali semidiya, umhleli wombhalo, nokunye okunjalo kukhompuyutha yakho ephathekayo. Eqinisweni, uhlelo olujwayelekile lungasebenzisa amashumi noma amakhulu ezinqubo ngesikhathi esisodwa. Leli qiniso lenza uhlelo lusebenziseke kalula, awudingi ukukhathazeka ngokuthi i-CPU imahhala, uvele uqhube izinhlelo.

Lokhu kuphakamisa inkinga: kanjani ukunikeza inkohliso yama-CPU amaningi? I-OS ingadala kanjani inkohliso yenombolo ecishe ingapheli yama-CPU, noma ngabe une-CPU eyodwa kuphela ebonakalayo?

I-OS idala le nkohliso ngokusebenzisa i-CPU virtualization. Ngokuqala inqubo eyodwa, bese uyimisa, ukuqala enye inqubo, njalonjalo, i-OS ingagcina inkohliso yokuthi kukhona ama-CPU amaningi we-virtual, lapho empeleni kuzoba neprosesa eyodwa noma ngaphezulu ngokomzimba. Le nqubo ibizwa ngokuthi ukuhlukaniswa kwezinsiza ze-CPU ngesikhathi. Le nqubo ivumela abasebenzisi ukuthi baqhube izinqubo eziningi ngesikhathi esisodwa njengoba befisa. Izindleko zalesi sixazululo ukusebenza - njengoba uma i-CPU yabelwa izinqubo ezimbalwa, inqubo ngayinye izocutshungulwa kancane kancane.
Ukuze usebenzise i-CPU virtualization, futhi ikakhulukazi ukuyenza kahle, i-OS idinga kokubili ukwesekwa kwezinga eliphansi kanye nezinga eliphezulu. Ukwesekwa kwezinga eliphansi kubizwa izindlela izindlela ezisezingeni eliphansi noma izivumelwano ezisebenzisa ingxenye edingekayo yomsebenzi. Isibonelo somsebenzi onjalo ukushintsha umongo, okunikeza i-OS ikhono lokumisa uhlelo olulodwa bese iqhuba olunye uhlelo kumprosesa. Lesi sigaba sesikhathi sisetshenziswa kuzo zonke izinhlelo zokusebenza zesimanje.
Phezu kwalezi zindlela kunomqondo othile owakhelwe ku-OS, ngendlela “yezinqubomgomo”. inqubomgomo i-algorithm ethile yokwenza izinqumo yesistimu yokusebenza. Izinqubomgomo ezinjalo, isibonelo, zinquma ukuthi yiluphi uhlelo okufanele luqaliswe (kusuka ohlwini lwemiyalo) kuqala. Ngakho-ke, isibonelo, le nkinga izoxazululwa ngenqubomgomo ebizwa ngokuthi umhleli (inqubomgomo yokuhlela) futhi lapho kukhethwa isixazululo, sizoqondiswa idatha efana nalena: umlando wokuqalisa (uluphi uhlelo olwaqalwa isikhathi eside kakhulu emizuzwini yokugcina), imuphi umthwalo othwalwa yile nqubo (iziphi izinhlobo zezinhlelo ezaqaliswa), amamethrikhi okusebenza (noma ngabe isistimu ithuthukiselwe ukusebenzisana okusebenzisanayo noma i-output ) nokunye.

Abstraction: inqubo

Ukukhishwa kohlelo olusebenzayo olwenziwa isistimu yokusebenza yilokho esikubiza inqubo. Njengoba kushiwo ngaphambili, inqubo imane nje iwuhlelo olusebenzayo, nganoma yisiphi isikhathi esisheshayo. Uhlelo esingathola ngalo ulwazi olufingqiwe oluvela ezinsizeni ezihlukene zesistimu lolu hlelo olufinyelela kuzo noma oluzithintayo phakathi nokusetshenziswa kwalo.
Ukuze uqonde izingxenye zenqubo, udinga ukuqonda izifunda zesistimu: lokho uhlelo olungayifunda noma lushintshe ngesikhathi sokusebenza kwalo. Nganoma yisiphi isikhathi, udinga ukuqonda ukuthi yiziphi izici zesistimu ezibalulekile ekusebenzeni kohlelo.
Esinye sezici ezisobala zohlelo luthi inqubo ihlanganisa inkumbulo. Imiyalo itholakala enkumbulweni. Idatha efundwa uhlelo noma ebhalwayo nayo itholakala kumemori. Ngakho, inkumbulo inqubo engabhekana nayo (ebizwa ngokuthi indawo yekheli) iyingxenye yenqubo.
Futhi ingxenye yesimo sesistimu amarejista. Imiyalo eminingi ihloselwe ukushintsha inani lamarejista noma ukufunda inani lawo, futhi ngaleyo ndlela amarejista nawo abe yingxenye ebalulekile yokusebenza kwenqubo.
Kumele kuqashelwe ukuthi isimo somshini sibuye sakhiwe kusuka kwamanye amarejista akhethekile. Ngokwesibonelo, IP - isikhombisi semiyalo - isikhombi somyalo owenziwe uhlelo okwamanje. Kukhona futhi isitaki sesitaki futhi ehlobene nayo isikhombi sohlaka, ezisetshenziselwa ukuphatha: imingcele yokusebenza, okuguquguqukayo kwendawo namakheli okubuyisela.
Okokugcina, izinhlelo zivame ukufinyelela i-ROM (inkumbulo efundwayo kuphela). Lolu lwazi lwe-“I/O” (okokufaka/okukhiphayo) kufanele luhlanganise uhlu lwamafayela avuliwe okwamanje yinqubo.

I-Process API

Ukuze sithuthukise ukuqonda kwethu ukuthi le nqubo isebenza kanjani, masifunde izibonelo zamakholi wesistimu okufanele afakwe kunoma iyiphi i-interface yesistimu yokusebenza. Lawa ma-API atholakala ngendlela eyodwa noma enye kunoma iyiphi i-OS.

Dala (ukudala): I-OS kufanele ifake indlela ethile ekuvumela ukuthi udale izinqubo ezintsha. Uma ufaka umyalo kutheminali noma uvula uhlelo lokusebenza ngokuchofoza kabili kusithonjana, ucingo luthunyelwa ku-OS ukuze kwakheka inqubo entsha bese wethula uhlelo olushiwo.
Susa: Njengoba kunesixhumi esibonakalayo sokudala inqubo, i-OS kufanele futhi inikeze amandla okuphoqa ukususwa kwenqubo. Izinhlelo eziningi ngokwemvelo zizoqala futhi ziziqedele ngokwazo njengoba zisebenza. Uma kungenjalo umsebenzisi angathanda ukukwazi ukubabulala futhi ngaleyo ndlela isixhumi esibonakalayo sokumisa inqubo singaba usizo.
Linda (kulindiwe): Kwesinye isikhathi kuyasiza ukulinda ukuthi inqubo iphele, ngakho-ke ezinye izixhumi ezibonakalayo zinikezwa ezinikeza amandla okulinda.
Ukulawula Okuxubile (ukulawula okuhlukahlukene): Ngaphezu kokubulala nokulinda inqubo, zikhona nezinye izindlela zokulawula ezihlukahlukene. Isibonelo, amasistimu amaningi okusebenza anikeza amandla okumisa inqubo (ukumisa ukusebenza kwayo isikhathi esithile) bese iqalisa kabusha (qhubeka nokwenza)
Isimo (isimo): Kukhona ukuxhumana okuhlukahlukene kokuthola ulwazi oluthile mayelana nesimo senqubo, njengokuthi isebenze isikhathi eside kangakanani noma ikusiphi isimo njengamanje.

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 2: Okufingqiwe: Inqubo (ukuhumusha)

Ukudalwa Kwenqubo: Imininingwane

Enye yezinto ezithokozisayo ukuthi izinhlelo ziguqulwa kanjani zibe izinqubo. Ikakhulukazi ukuthi i-OS ithatha futhi iluqhube kanjani uhlelo. Ukuthi inqubo yenziwa kanjani kahle.
Okokuqala, i-OS kufanele ilayishe ikhodi yohlelo kanye nedatha emile enkumbulweni (esikhaleni sekheli lenqubo). Izinhlelo zivame ukutholakala kudiski noma idrayivu yesimo esiqinile ngefomethi ethile esebenzisekayo. Ngakho-ke, inqubo yokulayisha uhlelo kanye nedatha emile enkumbulweni idinga i-OS ukuthi ikwazi ukufunda lawo mabhayithi kudiski futhi iwabeke endaweni ethile enkumbulweni.

Ezinhlelweni zokusebenza zakuqala, inqubo yokulayisha yenziwa ngokulangazela, okusho ukuthi yonke ikhodi yalayishwa enkumbulweni ngaphambi kokuba uhlelo luqaliswe. Izinhlelo zokusebenza zesimanje zenza lokhu ngobuvila, okungukuthi, ukulayisha izingcezu zekhodi noma idatha kuphela lapho uhlelo luzidinga ngesikhathi sokwenziwa kwalo.

Uma ikhodi nedatha emile kulayishwe kumemori ye-OS, kunezinto ezimbalwa ezengeziwe okudingeka zenziwe ngaphambi kokuthi inqubo iqale. Inani elithile lememori kufanele labelwe isitaki. Izinhlelo zisebenzisa isitaki ezintweni eziguquguqukayo zendawo, imingcele yokusebenza, namakheli okubuyisela. I-OS yabela le nkumbulo futhi iyinikeze inqubo. Isitaki singaphinda sinikezwe namanye ama-agumenti, ikakhulukazi sigcwalisa imingcele yomsebenzi omkhulu(), isibonelo ngohlelo lwe-argc ne-argv.

Isistimu yokusebenza ingase futhi yabele inkumbulo ethile enqwabeni yohlelo. Inqwaba isetshenziswa izinhlelo ukucela ngokusobala idatha eyabiwe ngokuguquguqukayo. Izinhlelo zicela lesi sikhala ngokushayela umsebenzi i-malloc () futhi iyisuse ngokucacile ngokubiza umsebenzi khulula(). Inqwaba iyadingeka kuzakhiwo zedatha ezifana namashidi axhunyiwe, amathebula e-hashi, izihlahla nokunye. Ekuqaleni, inani elincane lememori labelwa inqwaba, kodwa ngokuhamba kwesikhathi, njengoba uhlelo luqhubeka, inqwaba ingacela inkumbulo eyengeziwe ngokusebenzisa umtapo wezincwadi we-API call malloc(). Isistimu yokusebenza ibandakanyeka enqubweni yokunikeza inkumbulo eyengeziwe ukusiza ukwanelisa lezi zingcingo.

Uhlelo lokusebenza futhi luzokwenza imisebenzi yokuqalisa, ikakhulukazi leyo ehlobene ne-I/O. Isibonelo, ezinhlelweni ze-UNIX, inqubo ngayinye ngokuzenzakalelayo inezincazelo zefayela ezi-3 ezivulekile, okokufaka okujwayelekile, okukhiphayo, kanye nephutha. Lezi zibambo zivumela izinhlelo ukuthi zifunde okokufaka okuvela kutheminali kanye nokubonisa ulwazi esikrinini.

Ngakho, ngokulayisha ikhodi nedatha emile enkumbulweni, ukudala nokuqalisa isitaki, nokwenza omunye umsebenzi ohlobene nokwenza imisebenzi ye-I/O, i-OS ilungiselela isiteji ukuze inqubo iqhutshwe. Ekugcineni, kunomsebenzi wokugcina osele: ukusebenzisa uhlelo endaweni yalo yokungena, ebizwa ngokuthi main() function. Ngokwenza umsebenzi oyinhloko (), i-OS idlulisela ukulawula kwe-CPU kunqubo esanda kwakhiwa, ngaleyo ndlela uhlelo luqala ukusebenza.

Isimo sokucubungula

Manje njengoba sesinokuqonda okuthile kokuthi iyini inqubo nokuthi idalwe kanjani, ake sibhale uhlu lwenqubo ethi ingaba kuyo. Ngendlela yayo elula, inqubo ingaba kwesinye salezi zifundazwe:
Running. Lapho isebenza, inqubo isebenza ku-processor. Lokhu kusho ukuthi imiyalelo iyasetshenziswa.
Ready. Esimeni esilungile, inqubo isilungele ukusebenza, kodwa ngesizathu esithile i-OS ayikwenzi ngesikhathi esibekiwe.
Uvinjiwe. Esimeni sokuvinjwa, inqubo yenza imisebenzi ethile eyivimbela ukuthi ilungele ukuqaliswa kuze kwenzeke umcimbi othile. Isibonelo esisodwa esijwayelekile lapho inqubo iqala ukusebenza kwe-IO, iyavinjwa ukuze enye inqubo isebenzise iphrosesa.

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 2: Okufingqiwe: Inqubo (ukuhumusha)

Ungacabanga lezi zimo ngendlela yegrafu. Njengoba sibona esithombeni, isimo senqubo singashintsha phakathi kwe-RUNNING kanye READY ngokubona kwe-OS. Uma isimo senqubo sishintsha sisuka kokuthi READY to RUNNING, kusho ukuthi inqubo ihleliwe. Ngakolunye uhlangothi - kukhishwe kusakhiwo. Okwamanje lapho inqubo IVIMBIWE, isibonelo, ngiqala ukusebenza kwe-IO, i-OS izoyigcina ikulesi simo kuze kube yilapho kwenzeka umcimbi othile, isibonelo ukuqedwa kwe-IO. ngalo mzuzu ukushintshela esimweni esithi READY futhi ngokunokwenzeka ngokushesha kuya ku-RUNNING state uma i-OS inquma kanjalo.
Ake sibheke isibonelo sokuthi izinqubo ezimbili zihamba kanjani kulezi zifundazwe. Okokuqala, ake sicabange ukuthi zombili izinqubo ziyasebenza, futhi ngayinye isebenzisa i-CPU kuphela. Kulokhu, izimo zabo zizobukeka kanje.

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 2: Okufingqiwe: Inqubo (ukuhumusha)

Esibonelweni esilandelayo, inqubo yokuqala, ngemva kwesikhathi esithile isebenza, icela i-IO futhi ingena esimweni ESIVInjiwe, ivumela enye inqubo ukuthi isebenze (FIG 1.4). I-OS ibona ukuthi inqubo 0 ayisebenzisi i-CPU futhi iqala inqubo 1. Ngenkathi inqubo 1 isebenza, i-IO iyaqedwa futhi isimo senqubo 0 sishintsha sibe READY. Ekugcineni, inqubo 1 isiqedile, futhi lapho kuqedwa, inqubo 0 iqala, ikhiphe, futhi iqede umsebenzi wayo.

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 2: Okufingqiwe: Inqubo (ukuhumusha)

Isakhiwo sedatha

I-OS ngokwayo iwuhlelo, futhi njenganoma yiluphi olunye uhlelo, inezakhiwo zedatha ezibalulekile ezigcina umkhondo wezingxenye ezihlukahlukene zolwazi ezifanele. Ukulandelela isimo senqubo ngayinye, i-OS izosekela ezinye uhlu lwenqubo kuzo zonke izinqubo eziku-READY state kanye nolunye ulwazi olwengeziwe lokulandelela izinqubo ezisebenzayo njengamanje. Futhi, i-OS kufanele iqaphe izinqubo ezivinjiwe. Ngemuva kokuthi i-IO isiqediwe, i-OS kufanele ivuse inqubo edingekayo futhi iyibeke esimweni esilungele ukusebenza.

Isibonelo, i-OS kufanele igcine isimo samarejista okucubungula. Okwamanje inqubo ima, isimo samarejista sigcinwa endaweni yekheli lenqubo, futhi okwamanje ukusebenza kwayo kuqhubeka, amanani amarejista ayabuyiselwa futhi ngaleyo ndlela aqhubeke nokuqhutshwa kwale nqubo.

Ngaphezu kwezifunda ezilungile, ezivinjiwe, ezisebenzayo, kunezinye izifundazwe. Kwesinye isikhathi, ngesikhathi sokudala, inqubo ingase ibe sesimeni se-INIT. Okokugcina, inqubo ingafakwa kusimo SOKUGCINA lapho isivele iqediwe, kodwa ulwazi lwayo alukasulwa. Kuzinhlelo ze-UNIX lesi simo sibizwa inqubo ye-zombie. Lesi simo siwusizo ezimeni lapho inqubo yomzali ifuna ukwazi ikhodi yokubuyisela yengane, ngokwesibonelo, ngokuvamile u-0 ubonisa impumelelo futhi 1 iphutha, kodwa abahleli bezinhlelo bangakhipha amakhodi okukhiphayo engeziwe ukuze babonise izinkinga ezihlukahlukene. Lapho inqubo yomzali inqanyulwa, yenza ikholi yesistimu yokugcina, njengokuthi wait(), ukulinda inqubo yengane ukuthi inqamule futhi isayine ku-OS ukuthi ingasula noma iyiphi idatha ehlotshaniswa nenqubo enqanyuliwe.

Amasistimu Okusebenza: Izingcezu Ezintathu Ezilula. Ingxenye 2: Okufingqiwe: Inqubo (ukuhumusha)

Amaphuzu abalulekile enkulumo:

Inqubo - ukucaphuna okuyinhloko kohlelo olusebenzayo ku-OS. Nganoma isiphi isikhathi, inqubo ingachazwa ngesimo sayo: okuqukethwe yinkumbulo endaweni yayo yekheli, okuqukethwe kumarejista okucubungula, okuhlanganisa isikhombi semiyalo nesikhombi sesitaki, kanye nolwazi lwe-IO, njengamafayela avuliwe afundwayo noma abhalwayo.
I-Process API iqukethe izingcingo izinhlelo ezingazenza ukuze zicutshungulwe. Ngokuvamile lezi ukudala, ukususa, noma ezinye izingcingo.
● Inqubo ikwesinye sezimo eziningi, okuhlanganisa ukusebenza, ukulungela, ukuvinjwa. Imicimbi eyahlukahlukene njengokushejula, okuhlukile ekushejuleni, noma ukulinda kungashintsha isimo senqubo sisuke kwesinye siye kwesinye.
Uhlu lwenqubo iqukethe ulwazi mayelana nazo zonke izinqubo ohlelweni. Ukungena ngakunye kuwo kubizwa ngokuthi i-block control block, empeleni isakhiwo esiqukethe lonke ulwazi oludingekayo mayelana nenqubo ethile. 

Source: www.habr.com

Engeza amazwana