Mekhoa ea ho sebetsa: Likotoana tse tharo tse bonolo. Karolo ea 2: Tlhaloso: Ts'ebetso (phetolelo)

Kenyelletso ea Litsamaiso tsa Ts'ebetso

Hey Habr! Ke kopa ho u hlokomelisa letoto la lihlooho-liphetolelo tsa lingoliloeng tse thahasellisang ka maikutlo a ka - OSTEP. Sengoliloeng sena se tšohla ka botebo mosebetsi oa lits'ebetso tse ts'oanang tsa unix, e leng, ts'ebetso ka lits'ebetso, li-schedule tse fapaneng, memori le likarolo tse ling tse tšoanang tse etsang OS ea sejoale-joale. U ka bona ea mantlha ea lisebelisoa tsohle mona mona. Ka kopo hlokomela hore phetolelo e entsoe ka mokhoa o sa sebetseng (ka bolokolohi), empa ke tšepa hore ke bolokile moelelo o akaretsang.

Mosebetsi oa Lab tabeng ena o ka fumanoa mona:

Likarolo tse ling:

U ka boela ua sheba mocha oa ka ho thelekramo =)

Ha re shebeng taba ea bohlokoa ka ho fetesisa eo OS e fanang ka eona ho basebelisi: ts'ebetso. Tlhaloso ea ts'ebetso e bonolo haholo - ho joalo ho matha lenaneo. Lenaneo ka boeona ke ntho e sa pheleng e fumanehang ka har'a diski - ke sete sa litaelo mme mohlomong le data e sa fetoheng e emetseng ho qala. Ke OS e nkang li-byte tseo ebe e li tsamaisa, e fetola lenaneo hore e be ntho e molemo.
Hangata, basebelisi ba batla ho tsamaisa lenaneo le fetang le le leng ka nako e le 'ngoe, mohlala, u ka tsamaisa sebatli, papali, sebapali sa media, mohlophisi oa mongolo, joalo-joalo ho laptop ea hau. Ha e le hantle, tsamaiso e tloaelehileng e ka tsamaisa mekhoa e mashome kapa makholo ka nako e le 'ngoe. Taba ena e etsa hore sistimi e be bonolo ho e sebelisa, ha ho mohla u lokelang ho tšoenyeha ka hore na CPU e lokolohile, o tsamaisa mananeo feela.

Sena se hlahisa bothata: mokhoa oa ho fana ka thetso ea li-CPU tse ngata? OS e ka theha thetso ea palo e batlang e sa feleng ea li-CPU, leha o na le CPU e le 'ngoe feela ea' mele?

OS e theha leshano lena ka CPU virtualization. Ka ho qala ts'ebetso e le 'ngoe, ebe oa e emisa, ho qala ts'ebetso e' ngoe, joalo-joalo, OS e ka boloka leshano la hore ho na le li-CPU tse ngata tse fumanehang, ha e le hantle ho tla ba le processor e le 'ngoe kapa tse ngata tsa' mele. Mokhoa ona o bitsoa karohano ea lisebelisoa tsa CPU ka nako. Mokhoa ona o lumella basebelisi ho tsamaisa lits'ebetso tse ngata ka nako e le 'ngoe kamoo ba batlang. Litsenyehelo tsa tharollo ena ke ts'ebetso - kaha haeba CPU e arolelanoa ke lits'ebetso tse 'maloa, ts'ebetso e' ngoe le e 'ngoe e tla sebetsoa butle.
Ho kenya ts'ebetsong virtualization ea CPU, 'me haholo-holo ho e etsa hantle, OS e hloka tšehetso ea boemo bo tlaase le bo phahameng. Tšehetso ea boemo bo tlaase e bitsoa mekhoa ke mekhoa kapa liprothokholo tsa boemo bo tlase tse kenyang tšebetsong karolo e hlokahalang ea ts'ebetso. Mohlala oa ts'ebetso e joalo ke phetoho ea moelelo, e fanang ka OS matla a ho emisa lenaneo le le leng le ho tsamaisa lenaneo le leng ho processor. Karohano ea nako ena e kenngoa ts'ebetsong lits'ebetsong tsohle tsa sejoale-joale.
Ka holim'a mekhoa ena ho na le mabaka a mang a hahiloeng ho OS, ka mokhoa oa "maano". leano ke algorithm e itseng ea ho etsa liqeto bakeng sa sistimi e sebetsang. Melao e joalo, mohlala, e etsa qeto ea hore na ke lenaneo lefe le lokelang ho qalisoa (ho tloha lethathamong la litaelo) pele. Kahoo, mohlala, bothata bona bo tla rarolloa ka leano le bitsoang mohlophisi (leano la ho hlophisa) 'me ha u khetha tharollo, e tla tataisoa ke lintlha tse kang: histori ea ho qala (e leng lenaneo le ileng la qalisoa ka nako e telele ka ho fetisisa metsotsong e fetileng), ke mojaro ofe o jereng ts'ebetso ena (ke mefuta efe ea mananeo a qalileng), metrics ea ts'ebetso (ebang ke tsamaiso e ntlafatswa bakeng sa tshebedisano ya kahisano kapa bakeng sa throughput ) jwalojwalo.

Abstraction: ts'ebetso

Ho tlosoa ha lenaneo le sebetsang le etsoang ke sistimi ea ts'ebetso ke seo re se bitsang thulaganyou e. Joalokaha ho boletsoe pejana, ts'ebetso ke feela lenaneo le sebetsang, ka nako efe kapa efe ea hang-hang. Lenaneo leo ka lona re ka fumanang tlhaiso-leseling e akaretsang ho tsoa mehloling e fapaneng ea sistimi eo lenaneo lena le fihlellang kapa le le amang nakong ea ts'ebetso ea lona.
Ho utloisisa likarolo tsa ts'ebetso, o hloka ho utloisisa linaha tsa sistimi: seo lenaneo le ka se balang kapa ho se fetola nakong ea ts'ebetso ea lona. Ka nako efe kapa efe, o hloka ho utloisisa hore na ke likarolo life tsa sistimi tse bohlokoa bakeng sa ts'ebetso ea lenaneo.
E 'ngoe ea lintho tse hlakileng tsa tsamaiso e bolela hore mokhoa ona o kenyelletsa ke mohopolo. Litaelo li fumaneha mohopolong. Lintlha tseo lenaneo le li balang kapa le li ngolang li fumaneha mohopolong. Kahoo, mohopolo oo mokhoa o ka sebetsanang le oona (o bitsoang sebaka sa aterese) ke karolo ea ts'ebetso.
Hape karolo ea boemo ba tsamaiso ke li-rejista. Litaelo tse ngata li reretsoe ho fetola boleng ba li-register kapa ho bala bohlokoa ba tsona, 'me kahoo li-registeri li boetse li fetoha karolo ea bohlokoa ea ts'ebetso ea ts'ebetso.
Hoa lokela ho hlokomeloa hore boemo ba mochine bo boetse bo thehoa ho tsoa libukeng tse ling tse khethehileng. Ka mohlala, IP - sesupa sa litaelo - sesupo sa taeo eo lenaneo le ntseng le e phetha hajoale. Ho boetse ho na le sephutheloana sa stack le tse amanang le eona sesupo sa foreimi, tse sebelisetsoang ho laola: mekhahlelo ea ts'ebetso, mefuta-futa ea sebaka le liaterese tsa ho khutlisa.
Qetellong, hangata mananeo a fihlella ROM (memori ea ho bala feela). Tlhahisoleseding ena ea "I/O" (input/output) e lokela ho kenyelletsa lethathamo la lifaele tse butsoeng hajoale ke ts'ebetso.

Process API

E le ho ntlafatsa kutloisiso ea rona ea hore na ts'ebetso e sebetsa joang, ha re ithuteng mehlala ea mehala ea sistimi e lokelang ho kenyelletsoa ho sehokelo sefe kapa sefe sa sistimi ea ts'ebetso. Li-API tsena li fumaneha ka mofuta o mong kapa o mong ho OS efe kapa efe.

Create (pōpo): OS e tlameha ho kenyelletsa mokhoa o mong o u lumellang hore u thehe mekhoa e mecha. Ha o kenya taelo ho terminal kapa o qala kopo ka ho tobetsa habeli setšoantšong, mohala o romelloa ho OS ho theha ts'ebetso e ncha ebe o qala lenaneo le boletsoeng.
Tlosa: Kaha ho na le sebopeho sa ho theha ts'ebetso, OS e boetse e lokela ho fana ka bokhoni ba ho qobella ho tlosoa ha ts'ebetso. Mananeo a mangata ka tlhaho a tla qala le ho emisa ka botsona ha a ntse a sebetsa. Ho seng joalo mosebelisi a ka rata ho khona ho li bolaea mme ka hona sebopeho sa ho emisa ts'ebetso se ka ba molemo.
lete (ho leta): Ka linako tse ling ho molemo ho emela hore ts'ebetso e phethehe, kahoo ho fanoa ka lihokelo tse ling tse fanang ka bokhoni ba ho ema.
Taolo e fapaneng (taolo e fapaneng): Ntle le ho bolaea le ho emela ts'ebetso, ho boetse ho na le mekhoa e meng e fapaneng ea taolo. Mohlala, litsamaiso tse ngata tsa ts'ebetso li fana ka bokhoni ba ho emisa ts'ebetso (emisa ts'ebetso ea eona ka nako e itseng) ebe e qala hape (tsoela pele ts'ebetso)
boemo (state): Ho na le lihokelo tse fapaneng tsa ho fumana leseli mabapi le boemo ba ts'ebetso, joalo ka hore na ke nako e kae e sebetsa kapa e maemong afe ha joale.

Mekhoa ea ho sebetsa: Likotoana tse tharo tse bonolo. Karolo ea 2: Tlhaloso: Ts'ebetso (phetolelo)

Tlhahiso ea Ts'ebetso: Lintlha

E 'ngoe ea lintho tse khahlisang ke hore na hantle-ntle mananeo a fetoloa joang ho ba lits'ebetso. Haholo-holo kamoo OS e nkang le ho tsamaisa lenaneo. Hantle-ntle mokhoa ona o bōptjoa joang.
Pele ho tsohle, OS e tlameha ho kenya khoutu ea lenaneo le data e tsitsitseng mohopolong (sebakeng sa aterese ea ts'ebetso). Mananeo hangata a fumaneha ho disk kapa solid-state drive ka mokhoa o mong o ka phethisoang. Ka hona, ts'ebetso ea ho kenya lenaneo le data e tsitsitseng mohopolong e hloka hore OS e tsebe ho bala li-byte tseo ho tloha disk le ho li beha kae-kae mohopolong.

Lits'ebetsong tsa pele tsa ts'ebetso, ts'ebetso ea ho kenya e entsoe ka tjantjello, ho bolelang hore khoutu eohle e ne e kentsoe mohopolong pele lenaneo le qala. Sistimi ea sejoale-joale ea ts'ebetso e etsa sena ka botsoa, ​​ke hore, ho kenya likotoana tsa khoutu kapa data feela ha lenaneo le li hloka nakong ea ts'ebetso ea lona.

Hang ha khoutu le data e tsitsitseng li kentsoe mohopolong oa OS, ho na le lintho tse ling tse 'maloa tse lokelang ho etsoa pele ts'ebetso e ka sebetsa. Bongata bo itseng ba memori bo tlameha ho abeloa bakeng sa stack. Mananeo a sebelisa stack bakeng sa mefuta-futa ea lehae, liparamente tsa ts'ebetso, le liaterese tsa ho khutlisa. OS e abela mohopolo ona mme o o fa ts'ebetso. Stack e ka boela ea fanoa ka likhang tse ling, haholo-holo e tlatsa liparamente tsa main() mosebetsi, mohlala ka letoto la argc le argv.

Sistimi ea ts'ebetso e kanna ea fana ka memori e itseng ho qubu ea lenaneo. The qubu e sebelisoa ke mananeo ho kopa ka mokhoa o hlakileng data e abetsoeng ka matla. Mananeo a kopa sebaka sena ka ho letsetsa mosebetsi malloc () le ho e hlakola ka ho hlaka ka ho bitsa tshebetso mahala(). Ho hlokahala qubu bakeng sa meaho ea data joalo ka maqephe a hokahantsoeng, litafole tsa hash, lifate le tse ling. Qalong, mohopolo o monyenyane o abeloa qubu, empa ha nako e ntse e ea, ha lenaneo le ntse le tsoela pele, qubu e ka kopa memori e eketsehileng ka laebrari ea API call malloc (). Sistimi ea ts'ebetso e kenya letsoho tšebetsong ea ho fana ka memori e mengata ho thusa ho khotsofatsa mehala ena.

Sistimi ea ts'ebetso e tla etsa mesebetsi ea ho qala, haholo e amanang le I/O. Mohlala, lits'ebetsong tsa UNIX, ts'ebetso e 'ngoe le e' ngoe ka mokhoa o ikhethileng e na le litlhaloso tse 3 tsa faele tse bulehileng, bakeng sa tlhahiso e tloaelehileng, tlhahiso le phoso. Lits'oants'o tsena li lumella mananeo ho bala lintlha tse tsoang ho terminal hammoho le ho bonts'a tlhahisoleseling skrineng.

Ka hona, ka ho kenya khoutu le data e tsitsitseng mohopolong, ho theha le ho qalisa stack, le ho etsa mosebetsi o mong o amanang le ho etsa mesebetsi ea I / O, OS e lokisetsa sethala bakeng sa ts'ebetso e lokelang ho etsoa. Qetellong, ho na le mosebetsi o le mong oa ho qetela o setseng: ho tsamaisa lenaneo ka ntlha ea lona ea ho kena, e bitsoang main() function. Ka ho etsa ts'ebetso ea mantlha (), OS e fetisetsa taolo ea CPU ts'ebetsong e sa tsoa etsoa, ​​​​ka hona lenaneo le qala ho sebetsa.

Boemo ba ts'ebetso

Kaha joale re na le kutloisiso e itseng ea hore na ts'ebetso ke eng le hore na e bōptjoa joang, ha re thathamiseng mokhoa oo e ka bang ho oona. Ka mokhoa oa eona o bonolo, ts'ebetso e ka ba ho e 'ngoe ea linaha tsena:
matha. Ha o sebetsa, ts'ebetso e sebetsa ho processor. Sena se bolela hore litaelo li ntse li etsoa.
bo itokiselitse. Boemong bo loketseng, ts'ebetso e se e loketse ho sebetsa, empa ka mabaka a itseng OS ha e e phethe ka nako e behiloeng.
E thibiloe. Boemong bo koetsoeng, ts'ebetso e etsa ts'ebetso e thibelang hore e se be malala-a-laotsoe ho fihlela ketsahalo e itseng e etsahala. Mohlala o mong o tloaelehileng ke ha ts'ebetso e qala ts'ebetso ea IO, e ea thibeloa e le hore ts'ebetso e 'ngoe e ka sebelisa processor.

Mekhoa ea ho sebetsa: Likotoana tse tharo tse bonolo. Karolo ea 2: Tlhaloso: Ts'ebetso (phetolelo)

U ka inahanela linaha tsena ka mokhoa oa kerafo. Joalokaha re bona setšoantšong, boemo ba ts'ebetso bo ka fetoha pakeng tsa RUNNING le READY ka khetho ea OS. Ha boemo ba ts'ebetso bo fetoha ho tloha ho READY ho ea ho RUNNING, ho bolela hore ts'ebetso e reriloe. Ka lehlakoreng le leng - ho tlosoa ho tloha ho moralo. Ka motsotsoana ha ts'ebetso e fetoha BLOCKED, ka mohlala, ke qala ts'ebetso ea IO, OS e tla e boloka boemong bona ho fihlela ketsahalo e itseng e etsahala, mohlala ho phethoa ha IO. motsotsong ona phetoho ea ho ea sebakeng sa READY mme mohlomong hang-hang ho ea ho RUNNING state haeba OS e etsa qeto.
Ha re shebeng mohlala oa hore na lits'ebetso tse peli li tsamaea joang libakeng tsena. Ho qala, ha re nahane hore lits'ebetso ka bobeli lia sebetsa, 'me e' ngoe le e 'ngoe e sebelisa CPU feela. Tabeng ena, maemo a bona a tla shebahala tjena.

Mekhoa ea ho sebetsa: Likotoana tse tharo tse bonolo. Karolo ea 2: Tlhaloso: Ts'ebetso (phetolelo)

Mohlala o latelang, ts'ebetso ea pele, ka mor'a nako e itseng e sebetsa, e kopa IO 'me e kene sebakeng se BLOCKED, e lumellang mokhoa o mong hore o sebetse (FIG 1.4). OS e bona hore ts'ebetso 0 ha e sebelise CPU mme e qala ts'ebetso ea 1. Ha ts'ebetso ea 1 e ntse e sebetsa, IO e phethiloe mme boemo ba ts'ebetso 0 bo fetoha READY. Qetellong, ts'ebetso ea 1 e phethiloe, 'me ha e phethoa, ts'ebetso ea 0 e qala, e phethahatse, mme e phethela mosebetsi oa eona.

Mekhoa ea ho sebetsa: Likotoana tse tharo tse bonolo. Karolo ea 2: Tlhaloso: Ts'ebetso (phetolelo)

Sebopeho sa data

OS ka boeona ke lenaneo, 'me joalo ka lenaneo le leng le le leng, e na le likarolo tsa bohlokoa tsa data tse bolokang lintlha tse fapaneng tsa tlhahisoleseding. Ho latela boemo ba ts'ebetso ka 'ngoe, OS e tla tšehetsa tse ling lenane la tshebetso bakeng sa lits'ebetso tsohle tse sebakeng sa READY le lintlha tse ling tsa ho latela lits'ebetso tse ntseng li sebetsa hajoale. Hape, OS e lokela ho shebella lits'ebetso tse koetsoeng. Kamora hore IO e phetheloe, OS e tlameha ho tsosa ts'ebetso e hlokahalang ebe e e beha boemong bo loketseng ho sebetsa.

Ka mohlala, OS e tlameha ho boloka boemo ba li-processor tsa processor. Ha ts'ebetso e emisa, boemo ba lirejista bo bolokoa sebakeng sa aterese ea ts'ebetso, 'me hajoale ts'ebetso ea eona e ntse e tsoela pele, litekanyetso tsa lirekoto li khutlisoa' me ka hona li tsoelapele ts'ebetsong ea ts'ebetso ena.

Ntle le ho itokisa, ho thibetsoe, ho tsamaisa linaha, ho na le linaha tse ling. Ka linako tse ling, nakong ea pōpo, ts'ebetso e ka ba boemong ba INIT. Qetellong, ts'ebetso e ka behoa sebakeng sa HO QETELA ha e se e phethiloe, empa tlhahisoleseding ea eona ha e e-s'o hlakoloe. Lits'ebetsong tsa UNIX boemo bona bo bitsoa ts'ebetso ea zombie. Boemo bona bo na le thuso bakeng sa linyeoe tseo ts'ebetso ea motsoali a batlang ho tseba khoutu ea ho khutla ea ngoana, mohlala, hangata 0 e bontša katleho le 1 phoso, empa baetsi ba mananeo ba ka fana ka likhoutu tse eketsehileng tsa tlhahiso ho bontša mathata a fapaneng. Ha ts'ebetso ea motsoali e emisa, e etsa mohala oa ho qetela oa tsamaiso, joalo ka wait(), ho emela hore ts'ebetso ea ngoana e felisoe le ho bontša OS hore e ka hlakola data efe kapa efe e amanang le ts'ebetso e felisitsoeng.

Mekhoa ea ho sebetsa: Likotoana tse tharo tse bonolo. Karolo ea 2: Tlhaloso: Ts'ebetso (phetolelo)

Lintlha tsa bohlokoa tsa thuto:

thulaganyou e - karolo ea mantlha ea lenaneo le sebetsang ho OS. Ka nako efe kapa efe, ts'ebetso e ka hlalosoa ke boemo ba eona: likahare tsa memori sebakeng sa eona sa aterese, likahare tsa lirekoto tsa processor, ho kenyeletsoa pointer ea litaelo le pointer ea stack, le tlhaiso-leseling ea IO, joalo ka lifaele tse bulehileng tse baloang kapa tse ngotsoeng.
Process API e na le mehala eo mananeo a ka e etsang ho sebetsa. Hangata tsena ke ho etsa, phumula, kapa mehala e meng.
● Ts'ebetso e sebakeng se seng sa linaha tse ngata, ho kenyelletsa le ho matha, ho itokisetsa, ho thibetsoe. Liketsahalo tse fapaneng tse kang ho hlophisa, mekhelo ho tsoa ho kemiso, kapa ho leta li ka fetola boemo ba ts'ebetso ho tloha ho o mong ho ea ho o mong.
Lenane la tšebetso e na le tlhahisoleseling mabapi le lits'ebetso tsohle tsa sistimi. Ntho e 'ngoe le e' ngoe e kenang ho eona e bitsoa thibelo ea ts'ebetso, eo ha e le hantle e leng mohaho o nang le boitsebiso bohle bo hlokahalang mabapi le ts'ebetso e itseng. 

Source: www.habr.com

Eketsa ka tlhaloso