Sistemụ arụ ọrụ: Mpekere atọ dị mfe. Akụkụ 2: Abstraction: Usoro (nsụgharị)

Okwu Mmalite nke Sistemụ Ọrụ

Hey Habr! Ọ ga-amasị m iwetara gị ntị usoro isiokwu-nsụgharị nke otu akwụkwọ na-atọ ụtọ n'uche m - OSTEP. Nke a ihe onwunwe na-atụle nnọọ miri emi ọrụ nke unix-dị ka sistemụ arụmọrụ, ya bụ, na-arụ ọrụ na usoro, dị iche iche schedulers, ebe nchekwa, na ndị ọzọ yiri components na-emejupụta a ọgbara ọhụrụ OS. Ị nwere ike ịhụ mbụ nke ihe niile ebe a ebe a. Biko mara na e mere ntụgharị asụsụ ahụ n'amaghị ama (n'efu), mana enwere m olileanya na m jigidere nkọwa izugbe.

Enwere ike ịchọta ọrụ ụlọ nyocha na isiokwu a ebe a:

Akụkụ ndị ọzọ:

Ị nwekwara ike lelee ọwa m na telegram =)

Ka anyị lelee abstraction kachasị nke OS na-enye ndị ọrụ: usoro a. Nkọwa nke usoro ahụ dị nnọọ mfe - ọ bụ mmemme na-agba ọsọ. Ihe omume ahụ n'onwe ya bụ ihe na-adịghị ndụ dị na diski - ọ bụ usoro ntụziaka na ikekwe ụfọdụ data static na-echere ka ewepụtara ya. Ọ bụ OS na-ewere bytes ndị ahụ ma na-agba ha, na-agbanwe mmemme ahụ ka ọ bụrụ ihe bara uru.
Ọtụtụ mgbe, ndị ọrụ na-achọ ịme ihe karịrị otu mmemme n'otu oge, dịka ọmụmaatụ, ị nwere ike ịme ihe nchọgharị, egwuregwu, ọkpụkpọ mgbasa ozi, editọ ederede na ihe ndị ọzọ na laptọọpụ gị. N'ezie, a ahụkarị usoro nwere ike na-agba ọsọ iri iri ma ọ bụ ọtụtụ narị usoro n'out oge. Eziokwu a na-eme ka usoro ahụ dịkwuo mfe iji, ọ dịghị mgbe ị ga-echegbu onwe gị ma CPU ọ bụ n'efu, naanị ị na-eme mmemme.

Nke a na-ebuli nsogbu ahụ: otu esi enye echiche efu nke ọtụtụ CPU? Kedu ka OS nwere ike isi mepụta echiche efu nke ọnụ ọgụgụ CPU na-enweghị ngwụcha, ọbụlagodi na ị nwere naanị otu CPU anụ ahụ?

The OS na-emepụta echiche a site na CPU virtualization. Site na ịmalite otu usoro, wee kwụsị ya, ịmalite usoro ọzọ, na ihe ndị ọzọ, OS nwere ike ịnọgide na-eche echiche na e nwere ọtụtụ CPU mebere, mgbe n'eziokwu, a ga-enwe otu ma ọ bụ karịa nhazi anụ ahụ. A na-akpọ usoro a nkewa nke akụrụngwa CPU site na oge. Usoro a na-enye ndị ọrụ ohere ịme ọtụtụ usoro n'otu oge dịka ha chọrọ. Ọnụ ego nke ngwọta a bụ arụmọrụ - ebe ọ bụrụ na CPU na-ekerịta site na ọtụtụ usoro, a ga-edozi usoro ọ bụla nke ọma.
Iji mejuputa CPU virtualization, na karịsịa ime ya nke ọma, OS chọrọ ma nkwado dị ala na nke dị elu. A na-akpọ nkwado dị ala usoro bụ ụzọ dị ala ma ọ bụ ụkpụrụ na-emejuputa akụkụ achọrọ nke ọrụ ahụ. Otu ihe atụ nke ọrụ dị otú ahụ bụ ntụgharị gburugburu, nke na-enye OS ikike ịkwụsị otu mmemme ma mee ihe omume ọzọ na processor. A na-emejuputa nkewa oge a na sistemụ arụmọrụ ọgbara ọhụrụ niile.
N'elu usoro ndị a bụ ụfọdụ ezi uche arụnyere n'ime OS, n'ụdị "atụmatụ". iwu bụ ụfọdụ mkpebi mkpebi maka sistemụ arụmọrụ. Iwu ndị dị otú ahụ, dịka ọmụmaatụ, kpebie nke mmemme kwesịrị ịmalite (site na ndepụta iwu) nke mbụ. Yabụ, dịka ọmụmaatụ, a ga-edozi nsogbu a site na amụma akpọrọ usoro ihe omume (usoro nhazi oge) na mgbe ị na-ahọrọ ihe ngwọta, a ga-eduzi ya site na data ndị dị otú ahụ dị ka: mmalite akụkọ ihe mere eme (nke mmemme a malitere nke kachasị ogologo na nkeji ikpeazụ), kedu ibu usoro a na-ebu (ụdị mmemme ewepụtara), metrics arụmọrụ (ma usoro ahụ). bụ nke kachasị maka mmekọrịta mmekọrịta ma ọ bụ maka mmepụta ) na ihe ndị ọzọ.

Abstraction: usoro

Abstraction nke mmemme na-agba ọsọ nke sistemụ arụmọrụ na-arụ bụ ihe anyị na-akpọ usoro. Dịka e kwuru na mbụ, usoro a bụ naanị mmemme na-agba ọsọ, n'oge ọ bụla ozugbo. Mmemme nke anyị nwere ike iji nweta ozi nchịkọta sitere na akụrụngwa sistemụ dị iche iche nke mmemme a na-enweta ma ọ bụ na-emetụta n'oge a na-egbu ya.
Iji ghọta akụkụ nke usoro ahụ, ịkwesịrị ịghọta steeti nke usoro ahụ: ihe mmemme ahụ nwere ike ịgụ ma ọ bụ gbanwee n'oge ọrụ ya. N'oge ọ bụla, ịkwesịrị ịghọta ihe ndị dị na usoro ahụ dị mkpa maka mmezu nke mmemme ahụ.
Otu n'ime ihe doro anya nke usoro ahụ na-ekwu na usoro ahụ gụnyere bụ nchekwa. Ntuziaka dị na ebe nchekwa. Data nke mmemme na-agụ ma ọ bụ dee dịkwa na ebe nchekwa. Ya mere, ebe nchekwa nke usoro nwere ike ileba anya (a na-akpọ oghere adreesị) bụ akụkụ nke usoro ahụ.
Ọzọkwa akụkụ nke usoro steeti bụ ndekọ. Ọtụtụ ntụziaka na-achọ ịgbanwe uru nke ndekọ ma ọ bụ na-agụ uru ha bara, ya mere ndekọ na-aghọkwa akụkụ dị mkpa nke ọrụ nke usoro ahụ.
Ekwesiri ighota na a na-aputakwa steeti igwe site na ndebanye aha di iche iche. Ọmụmaatụ, IP - ntuziaka ntụziaka - ihe ntụzịaka na ntuziaka nke mmemme a na-eme ugbu a. E nwekwara tojupụtara pointer na metụtara ya etiti pointer, nke a na-eji jikwaa: paramita ọrụ, mgbanwe mpaghara na adreesị nloghachi.
N'ikpeazụ, mmemme na-enwetakarị ROM (ebe nchekwa naanị ọgụgụ). Ozi “I/O” (ntinye/mpụta) kwesịrị ịgụnye ndepụta faịlụ meghere ugbu a site na usoro a.

API usoro

Iji meziwanye nghọta anyị ka usoro a si arụ ọrụ, ka anyị mụọ ihe atụ nke oku sistemụ kwesịrị itinye na interface sistemụ arụmọrụ ọ bụla. API ndị a dị n'otu ụdị ma ọ bụ ọzọ na OS ọ bụla.

Mepụta (okike): OS ga-agụnye ụfọdụ usoro na-enye gị ohere ịmepụta usoro ọhụrụ. Mgbe itinyere iwu n'ime ọnụ ma ọ bụ malite ngwa site na ịpị akara ngosi ugboro abụọ, a na-eziga oku na OS ka ịmepụta usoro ọhụrụ wee malite mmemme akọwapụtara.
Hichapụ: Ebe ọ bụ na e nwere interface maka ịmepụta usoro, OS kwesịrị inye ikike ịmanye mwepụ nke usoro. Ọtụtụ mmemme ga-amalite na-akwụsị n'onwe ha ka ha na-agba ọsọ. Ma ọ bụghị ya, onye ọrụ ga-achọ inwe ike igbu ha ma si otú a interface kwụsị usoro ga-aba uru.
chere (na-echere): Mgbe ụfọdụ, ọ bara uru ichere ka usoro mezue, ya mere a na-enye ụfọdụ interfaces nke na-enye ikike ichere.
Njikwa dị iche iche (nchịkwa dị iche iche): Na mgbakwunye na igbu na ichere usoro ahụ, e nwekwara ụzọ nchịkwa ndị ọzọ dị iche iche. Dịka ọmụmaatụ, ọtụtụ sistemụ arụmọrụ na-enye ikike ịkwụsị usoro (kwụsị igbu ya ruo oge ụfọdụ) wee maliteghachi ya (gaa n'ihu na-egbu)
Ọnọdụ (steeti): Enwere oghere dị iche iche maka inweta ụfọdụ ozi gbasara ọnọdụ usoro, dị ka ogologo oge ọ na-agba ma ọ bụ ọnọdụ ọ nọ ugbu a.

Sistemụ arụ ọrụ: Mpekere atọ dị mfe. Akụkụ 2: Abstraction: Usoro (nsụgharị)

Usoro okike: nkọwa

Otu n'ime ihe ndị na-adọrọ mmasị bụ ka esi agbanwe mmemme kpọmkwem n'ime usoro. Karịsịa ka OS si bulie ma na-agba ọsọ mmemme. Kedu ka esi emepụta usoro ahụ kpọmkwem.
Nke mbụ, OS ga-ebunye koodu mmemme na data static n'ime ebe nchekwa (n'ime oghere adreesị usoro). Mmemme na-adịkarị na diski ma ọ bụ draịva steeti siri ike n'ụdị ụfọdụ enwere ike ime ya. N'ihi ya, usoro nke loading mmemme na static data n'ime ebe nchekwa na-achọ ka OS nwee ike ịgụ ndị bytes si disk na-etinye ha ebe na ebe nchekwa.

Na sistemu arụ ọrụ n'oge, a na-eji ịnụ ọkụ n'obi mee usoro nbudata ahụ, nke pụtara na etinyere koodu niile na ebe nchekwa tupu ebido mmemme ahụ. Sistemụ arụ ọrụ ọgbara ọhụrụ na-eme nke a n'ụzọ umengwụ, ya bụ, na-ebunye mpempe koodu ma ọ bụ data naanị mgbe mmemme chọrọ ha n'oge a na-egbu ya.

Ozugbo etinyere koodu na data static n'ime ebe nchekwa OS, enwere ihe ole na ole ọzọ a ga-eme tupu usoro ahụ nwee ike ịgba ọsọ. A ga-ekenye ụfọdụ ebe nchekwa maka ikpokọta. Mmemme na-eji nchịkọta maka mgbanwe mpaghara, paramita ọrụ, na adreesị nloghachi. OS na-ekenye ebe nchekwa a ma nye ya na usoro ahụ. Enwere ike ịkenye nchịkọta ahụ na ụfọdụ arụmụka, kpọmkwem ọ na-ejupụta parampat nke ọrụ isi (), dịka ọmụmaatụ na ọtụtụ argc na argv.

Sistemu arụ ọrụ nwekwara ike ikenye ụfọdụ ebe nchekwa n'obo mmemme. A na-eji obo ahụ eme ihe iji rịọ nke ọma data ekenyere ike. Mmemme na-arịọ ohere a site na ịkpọ ọrụ ahụ malloc () ma kpochapụ ya n'ụzọ doro anya site n'ịkpọ ọrụ ahụ n'efu(). A chọrọ ikpo okwu ahụ maka nhazi data dịka akwụkwọ ejikọtara ọnụ, tebụl hash, osisi na ndị ọzọ. Na mbụ, a na-ekenye obere ebe nchekwa na ikpo, ma ka oge na-aga, ka mmemme ahụ na-agba ọsọ, ikpo ahụ nwere ike ịrịọ ka nchekwa dịkwuo site na API na-akpọ malloc (). Sistemu arụ ọrụ na-etinye aka na nhazi nke ikenye ebe nchekwa karịa iji nyere aka mejuo oku ndị a.

Sistemu arụ ọrụ ga-arụkwa ọrụ mmalite, ọkachasị ndị metụtara I/O. Dịka ọmụmaatụ, na sistemụ UNIX, usoro ọ bụla site na ndabara nwere nkọwa faịlụ 3 mepere emepe, maka ntinye ọkọlọtọ, mmepụta na njehie. Aka ndị a na-enye ohere ka mmemme gụọ ndenye sitere na ọnụ yana gosipụta ozi na ihuenyo.

Ya mere, site n'itinye koodu na data static n'ime ebe nchekwa, ịmepụta na ịmalite nchịkọta, na ịrụ ọrụ ndị ọzọ metụtara ịrụ ọrụ I / O, OS na-akwadebe ogbo maka usoro iji mezuo. N'ikpeazụ, e nwere otu ọrụ ikpeazụ fọdụrụ: na-agba ọsọ mmemme site na ntinye ya, nke a na-akpọ ọrụ isi (). Site n'ịme isi () ọrụ, OS na-enyefe njikwa CPU na usoro emepụtara ọhụrụ, yabụ mmemme ahụ na-amalite ime.

Usoro steeti

Ugbu a anyị nwere nghọta ụfọdụ nke usoro bụ na otu esi emepụta ya, ka anyị depụta usoro a na-ekwu na ọ nwere ike ịdị na ya. N'ụdị ya kachasị mfe, usoro nwere ike ịbụ n'otu n'ime steeti ndị a:
-agba ọsọ. Mgbe ị na-agba ọsọ, usoro a na-arụ na processor. Nke a pụtara na a na-eme iwu.
njikere. Na steeti dị njikere, usoro ahụ dị njikere ịgba ọsọ, mana n'ihi ihe ụfọdụ OS anaghị eme ya n'oge akọwapụtara.
Akwụchiri. Na steeti egbochiri, usoro na-arụ ọrụ ụfọdụ na-egbochi ya ịdị njikere ime ya ruo mgbe ihe omume ga-eme. Otu ihe atụ a na-ahụkarị bụ mgbe usoro na-amalite ọrụ IO, ọ na-egbochi ya ka usoro ọzọ nwee ike iji ihe nhazi.

Sistemụ arụ ọrụ: Mpekere atọ dị mfe. Akụkụ 2: Abstraction: Usoro (nsụgharị)

Ị nwere ike iche n'echiche steeti ndị a n'ụdị eserese. Dị ka anyị nwere ike ịhụ na foto a, usoro usoro nwere ike ịgbanwe n'etiti RUNNING na READY na uche nke OS. Mgbe ọnọdụ usoro na-agbanwe site na READY gaa na-agba ọsọ, ọ pụtara na ahazila usoro ahụ. N'akụkụ nke ọzọ - wepụ ya na nhazi. N'oge a na-egbochi usoro, dịka ọmụmaatụ, m na-amalite ọrụ IO, OS ga-edobe ya na steeti a ruo mgbe ụfọdụ ihe omume mere, dịka ọmụmaatụ njedebe IO. n'oge a mgbanwe gaa na steeti READY na ikekwe ozugbo gaa na steeti na-agba ọsọ ma ọ bụrụ na OS kpebiri otú ahụ.
Ka anyị leba anya n'ihe atụ nke otu usoro abụọ si aga na steeti ndị a. Iji malite, ka anyị were ya na usoro abụọ a na-agba ọsọ, na nke ọ bụla na-eji naanị CPU. N'okwu a, steeti ha ga-adị ka nke a.

Sistemụ arụ ọrụ: Mpekere atọ dị mfe. Akụkụ 2: Abstraction: Usoro (nsụgharị)

N'ihe atụ na-esonụ, usoro mbụ, mgbe oge na-agba ọsọ, na-arịọ IO ma banye na steeti BLOCKED, na-ekwe ka usoro ọzọ na-agba ọsọ (FIG 1.4). OS ahụ na-ahụ na usoro 0 anaghị eji CPU wee malite usoro 1. Mgbe usoro 1 na-agba ọsọ, IO agwụla ma ọnọdụ nke usoro 0 gbanwere na READY. N'ikpeazụ, usoro 1 agwụla, na mgbe emechara, usoro 0 na-amalite, rụọ ọrụ ma rụchaa ọrụ ya.

Sistemụ arụ ọrụ: Mpekere atọ dị mfe. Akụkụ 2: Abstraction: Usoro (nsụgharị)

Ọdịdị data

OS n'onwe ya bụ mmemme, dịkwa ka mmemme ọ bụla ọzọ, o nwere ụfọdụ usoro data isi na-edobe ozi dị iche iche dị mkpa. Iji soro ọnọdụ nke usoro ọ bụla, OS ga-akwado ụfọdụ usoro ndepụta maka usoro niile dị na steeti READY yana ụfọdụ ozi ndị ọzọ iji soro usoro na-aga ugbu a. Ọzọkwa, OS kwesịrị nyochaa usoro egbochiri. Mgbe IO mechara, OS ga-eteta usoro achọrọ wee tinye ya na steeti dị njikere ịgba ọsọ.

Dịka ọmụmaatụ, OS ga-echekwa ọnọdụ ndekọ nhazi. N'oge usoro ahụ kwụsịrị, a na-echekwa ọnọdụ nke ndekọ aha na oghere adreesị nke usoro ahụ, na n'oge ọrụ ya na-aga n'ihu, a na-eweghachi ụkpụrụ nke ndekọ ahụ ma si otú a na-aga n'ihu na-emezu usoro a.

Na mgbakwunye na steeti dị njikere, gbochiri, na-agba ọsọ, enwere steeti ndị ọzọ. Mgbe ụfọdụ, n'oge e kere eke, usoro nwere ike ịdị na steeti INIT. N'ikpeazụ, enwere ike itinye usoro na steeti FINAL mgbe emechara ya, mana ehichapụbeghị ozi ya. Na sistemụ UNIX ka a na-akpọ steeti a usoro zombie. Ọnọdụ a bara uru maka ikpe ebe usoro nne na nna chọrọ ịma koodu nlọghachi nke nwatakịrị, dịka ọmụmaatụ, na-emekarị 0 na-egosi ihe ịga nke ọma na 1 njehie, mana ndị mmemme nwere ike ịnye koodu mmepụta ọzọ iji gosi nsogbu dị iche iche. Mgbe usoro nne na nna kwụsịrị, ọ na-eme oku usoro ikpeazụ, dị ka ichere (), ichere ka usoro nwatakịrị kwụsị ma gosi OS na ọ nwere ike ikpochapụ data ọ bụla metụtara usoro a kwụsịrị.

Sistemụ arụ ọrụ: Mpekere atọ dị mfe. Akụkụ 2: Abstraction: Usoro (nsụgharị)

Isi ihe dị na nkuzi a:

usoro - isi abstraction nke mmemme na-agba ọsọ na OS. N'oge ọ bụla, a nwere ike ịkọwa usoro site na steeti ya: ọdịnaya nke ebe nchekwa na oghere adreesị ya, ọdịnaya nke ndekọ nhazi, gụnyere ntụziaka ntụziaka na stack pointer, na ozi IO, dị ka faịlụ mepere emepe na-agụ ma ọ bụ dee.
API usoro nwere oku mmemme nwere ike ime na nhazi. Ndị a na-emepụta, ihichapụ, ma ọ bụ oku ndị ọzọ.
● Usoro a dị n'otu n'ime ọtụtụ steeti, gụnyere ịgba ọsọ, dị njikere, egbochiri. Ihe omume dị iche iche dị ka nhazi oge, ewepu na nhazi oge, ma ọ bụ ichere nwere ike ịgbanwe ọnọdụ usoro site na otu gaa na nke ọzọ.
Ndepụta usoro nwere ozi gbasara usoro niile dị na sistemụ. Ntinye ọ bụla n'ime ya ka a na-akpọ ngọngọ njikwa usoro, nke n'ezie bụ nhazi nke nwere ozi niile dị mkpa gbasara otu usoro. 

isi: www.habr.com

Tinye a comment