Sistemụ arụ ọrụ: Mpekere atọ dị mfe. Akụkụ 1: Okwu mmalite (nsụgharị)

Okwu Mmalite nke Sistemụ Ọrụ

Ndewo, Habr! Ọ ga-amasị m igosi gị usoro isiokwu-nsụgharị nke otu akwụkwọ na-adọrọ mmasị n'echiche m - OSTEP. Nke a ihe onwunwe na-enyocha nnọọ miri ọ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-eme ka a ọgbara 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:
- nke mbụ: ibe.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html
- nke mbụ: github.com/remzi-arpacidusseau/ostep-code
- mmegharị nke onwe m: github.com/bykvaadm/OS/tree/master/ostep

Ị nwekwara ike lelee ọwa m na telegram =)

Ọrụ mmemme

Kedu ihe na-eme mgbe mmemme na-agba ọsọ? Mmemme na-agba ọsọ na-eme otu ihe dị mfe - ọ na-eme ntuziaka. Nkeji nkeji ọ bụla, nde na ọbụna ọtụtụ ijeri ntuziaka na-eweghachite site na processor si RAM, n'aka nke ya, ọ decoded ha (dịka ọmụmaatụ, na-amata ụdị ntụziaka ndị a) ma na-emezu. Nke a nwere ike ịgbakwunye ọnụọgụ abụọ, ịnweta ebe nchekwa, ịlele ọnọdụ, ịwụ elu na ọrụ, na ihe ndị ọzọ. Mgbe ogbugbu nke otu ntụziaka, processor na-aga n'ihu na-egbu nke ọzọ. Ya mere ntụziaka mgbe ntụziaka, ha na-gburu ruo mgbe mmemme agwụ.
A na-ewere ihe atụ a dị ka ọ dị mfe - n'eziokwu, iji mee ka ihe nrụpụta dị ngwa ngwa, ngwaike ọgbara ọhụrụ na-enye gị ohere ịme ntụziaka site na nke ọzọ, gbakọọ ihe ga-esi na ya pụta, mee ntụziaka n'otu oge, na aghụghọ ndị yiri ya.

Ụdị mgbakọ na mwepụ Von Neumann

Ụdị ọrụ dị mfe nke anyị kọwara dị ka ụdị mgbakọ na mwepụ nke Von Neumann. Von Neumann bụ otu n'ime ndị ọsụ ụzọ nke sistemụ kọmputa, ọ bụkwa otu n'ime ndị dere echiche egwuregwu.. Mgbe mmemme ahụ na-agba ọsọ, ọtụtụ ihe omume ndị ọzọ na-eme, ọtụtụ usoro ndị ọzọ na ọrụ mgbagha ndị ọzọ, isi ihe bụ isi bụ ime ka mmalite, ọrụ na mmezi nke usoro ahụ dị mfe.
Enwere otu ngwanrọ nke na-ahụ maka ime ka mmemme dị mfe na-agba ọsọ (ma ọ bụ ọbụna ikwe ka ọtụtụ mmemme na-agba ọsọ n'otu oge), na-enye ohere ka mmemme na-ekerịta otu ebe nchekwa, yana ikwurịta okwu na ngwaọrụ dị iche iche. Ngwanrọ dị otú ahụ (software) bụ nke a na-akpọ sistemụ arụmọrụ yana ọrụ ya gụnyere nlekota na sistemụ na-arụ ọrụ nke ọma na nke ọma, yana ịhụ na ọ dị mfe ijikwa usoro a.

sistemụ

Sistemu eji arụ ọrụ, nke akpọchiri dị ka OS, bụ usoro mmemme nwere njikọ chiri anya emebere iji jikwaa akụrụngwa kọmputa yana hazie mmekọrịta onye ọrụ na kọmpụta..
OS na-enweta irè ya na mbụ, site na usoro kachasị mkpa - usoro virtualization. OS na-emekọrịta ihe na akụrụngwa anụ ahụ (processor, ebe nchekwa, diski, wdg) wee gbanwee ya ka ọ bụrụ ụdị izugbe karịa, dị ike na nke dị mfe iji nke onwe ya. Ya mere, maka nghọta n'ozuzu, ị nwere ike iji sistemu arụ ọrụ tụnyere igwe mebere.
Iji mee ka ndị ọrụ nye iwu maka sistemụ arụmọrụ wee si otú ahụ jiri ike nke igwe mebere (dịka ịme mmemme, inyefe ebe nchekwa, ịnweta faịlụ, na ihe ndị ọzọ), sistemụ arụmọrụ na-enye ụfọdụ interface akpọrọ. API (ngwa mmemme interface) na nke ị nwere ike ịkpọ oku (oku). Ụdị sistemụ arụmọrụ na-enye ohere ka a kpọọ ọtụtụ narị oku sistemụ.
N'ikpeazụ, ebe ọ bụ na virtualization na-enye ohere ka ọtụtụ mmemme na-agba ọsọ (si otú ahụ na-ekerịta CPU), na n'otu oge nweta ntụziaka ha na data (si otú ahụ na-ekekọrịta ebe nchekwa), na ohere disks (ya mere na-ekekọrịta I / O ngwaọrụ). ), arụ ọrụ na-akpọkwa a. njikwa akụ. Ihe nhazi ọ bụla, diski na ebe nchekwa bụ ihe onwunwe nke usoro ahụ, ya mere, otu n'ime ọrụ nke sistemụ arụmọrụ na-aghọ ọrụ nke ijikwa ihe ndị a, na-eme ya nke ọma, n'eziokwu, ma ọ bụ ọzọ, dabere na ọrụ nke sistemụ arụmọrụ a. emebere ya.

CPU virtualization

Tụlee ihe omume a:
(https://www.youtube.com/watch?v=zDwT5fUcki4&feature=youtu.be)

Sistemụ arụ ọrụ: Mpekere atọ dị mfe. Akụkụ 1: Okwu mmalite (nsụgharị)

Ọ naghị arụ ọrụ ọ bụla pụrụ iche, n'eziokwu, naanị ihe ọ na-eme bụ ịkpọ ọrụ atụ ogho(), onye ọrụ ya bụ ịgbagharị na nlele oge wee laghachi mgbe otu sekọnd gafere. Ya mere, ọ na-emegharị eriri nke onye ọrụ gafere dị ka arụmụka ruo mgbe ebighị ebi.
Ka anyị mee mmemme a wee nyefee ya agwa "A" dịka arụmụka. Nsonaazụ abụghị ihe na-adọrọ mmasị karịsịa - sistemụ ahụ na-eme mmemme nke na-egosipụta oge ụfọdụ agwa "A".
Ugbu a, ka anyị nwaa nhọrọ ahụ mgbe ọtụtụ oge nke otu mmemme na-agba ọsọ, mana na-ewepụta mkpụrụedemede dị iche iche iji mee ka ọ dokwuo anya. N'okwu a, nsonaazụ ga-adịtụ iche. N'agbanyeghị eziokwu na anyị nwere otu processor, ihe omume na-gburu n'out oge. Kedu ka o si eme? Ma ọ na-apụta na sistemụ arụmọrụ, ọ bụghị n'enweghị enyemaka nke ike ngwaike, na-emepụta ihe efu. Echiche ahụ na enwere ọtụtụ ndị nrụpụta mebere na sistemụ ahụ, na-atụgharị otu nhazi anụ ahụ ka ọ bụrụ ọnụọgụ na-enweghị ngwụcha wee si otú a na-ekwe ka mmemme yiri ka ọ na-agba ọsọ n'otu oge. A na-akpọ nrọ a CPU virtualization.
Foto a na-ewelite ọtụtụ ajụjụ, dịka ọmụmaatụ, ọ bụrụ na ọtụtụ mmemme chọrọ ịgba ọsọ n'otu oge, kedu nke a ga-amalite? "Iwu" nke OS bụ maka ajụjụ a. A na-eji atumatu eme ihe n'ọtụtụ ebe na OS ma na-aza ajụjụ ndị dị ka nke a, yana usoro ndị bụ isi nke OS na-arụ ọrụ. N'ihi ya, ọrụ nke OS dị ka onye njikwa akụ.

Mebere ebe nchekwa

Ugbu a, ka anyị leba anya na ebe nchekwa. A na-anọchi anya ihe atụ anụ ahụ nke ebe nchekwa na sistemụ ọgbara ọhụrụ dị ka ọtụtụ bytes.. Iji gụọ site na ebe nchekwa, ịkwesịrị ịkọwapụta cell adreesịiji nweta ya. Iji dee ma ọ bụ melite data, ị ga-ezipụtakwa data na adreesị cell ebe ị ga-ede ya.
A na-enweta ebe nchekwa oge niile n'oge mmemme mmemme. Mmemme na-echekwa usoro data ya niile na ebe nchekwa wee nweta ya site na ime ntuziaka dị iche iche. A na-echekwa ntuziaka ahụ, ka ọ dị ugbu a, na ebe nchekwa, ya mere a na-enwetakwa ya maka arịrịọ ọ bụla maka ntụziaka ọzọ.

malloc() oku

Tụlee mmemme na-esonụ, nke na-ekenye mpaghara ebe nchekwa site na iji oku malloc () (https://youtu.be/jnlKRnoT1m0):

Sistemụ arụ ọrụ: Mpekere atọ dị mfe. Akụkụ 1: Okwu mmalite (nsụgharị)

Mmemme na-eme ọtụtụ ihe. Nke mbụ, ọ na-ekenye ụfọdụ ebe nchekwa (akara 7), wee bipụta adreesị cell ekenyela (akara 9), na-ede efu na oghere mbụ nke ebe nchekwa ekenyela. Na-esote, mmemme ahụ na-abanye na akaghị aka nke ọ na-abawanye uru echekwara na ebe nchekwa na adreesị na mgbanwe "p". Ọ na-ebipụtakwa ID usoro n'onwe ya. NJ usoro ahụ pụrụ iche maka usoro ịgba ọsọ ọ bụla. N'ịbụ onye malitere ọtụtụ mbipụta, anyị ga-asụ ngọngọ na nsonaazụ na-adọrọ mmasị: Na nke mbụ, ọ bụrụ na ị na-eme ihe ọ bụla ma na-agba ọsọ ọtụtụ mbipụta, mgbe ahụ adreesị ga-adị iche. Ma nke a adịghị ada n'okpuru anyị tiori! Ọ ziri ezi, ebe ọ bụ na nkesa ọgbara ọhụrụ nwere nrọrọ nke ebe nchekwa nyere site na ndabara. Ọ bụrụ na ọ nwere nkwarụ, anyị ga-enweta nsonaazụ a tụrụ anya ya - adreesị ebe nchekwa nke mmemme abụọ na-agba ọsọ n'otu oge ga-adaba.

Sistemụ arụ ọrụ: Mpekere atọ dị mfe. Akụkụ 1: Okwu mmalite (nsụgharị)

N'ihi ya, ọ na-apụta na mmemme abụọ nọọrọ onwe ha na-arụ ọrụ na oghere adreesị nke onwe ha, nke n'aka nke ya na-esetịpụ sistemụ arụmọrụ na ebe nchekwa anụ ahụ.. Ya mere, iji adreesị ebe nchekwa n'ime otu mmemme agaghị emetụta ndị ọzọ n'ụzọ ọ bụla, ọ dịkwa ka usoro ihe omume ọ bụla nwere ihe nchekwa anụ ahụ nke ya, nyere ya kpamkpam. Otú ọ dị, nke bụ eziokwu bụ na ebe nchekwa anụ ahụ bụ ihe onwunwe nke sistemụ arụmọrụ na-ejikwa.

Nkwenye

Isiokwu ọzọ dị mkpa n'ime sistemụ arụmọrụ bụ - agbanwe agbanwe. A na-eji okwu a eme ihe mgbe ị na-ekwu maka nsogbu na usoro nke nwere ike ime mgbe ị na-arụ ọrụ na ọtụtụ ihe n'otu oge n'ime otu mmemme. Okwu na-agbanwe agbanwe na-ebilite ọbụna n'ime sistemụ arụmọrụ n'onwe ya. N'ihe atụ ndị gara aga na ebe nchekwa na processor virtualization, anyị ghọtara na OS na-achịkwa ọtụtụ ihe n'otu oge - ọ na-amalite usoro mbụ, mgbe ahụ nke abụọ, na na. Dị ka o siri pụta, omume a nwere ike ịkpata nsogbu ụfọdụ. Ya mere, dịka ọmụmaatụ, mmemme multi-threaded nke oge a na-enweta ihe isi ike dị otú ahụ.

Tụlee ihe omume a:

Sistemụ arụ ọrụ: Mpekere atọ dị mfe. Akụkụ 1: Okwu mmalite (nsụgharị)

Mmemme na isi ọrụ na-emepụta eri abụọ site na iji oku phread_create(). N'ihe atụ a, enwere ike iche na eri dị ka ọrụ na-agba ọsọ n'otu ebe nchekwa n'akụkụ ọrụ ndị ọzọ, nke doro anya na ihe karịrị otu ọrụ na-agba ọsọ n'otu oge. N'ihe atụ a, eri ọ bụla na-amalite ma rụọ ọrụ ahụ onye ọrụ () nke n'aka nke ya na-eme ka mgbanwe ahụ dịkwuo elu,.

Ka anyị jiri arụmụka 1000 mee mmemme a. Dịka ị nwere ike chepụta, ihe ga-esi na ya pụta kwesịrị ịbụ 2000 n'ihi na eriri ọ bụla gbakwunyere mgbanwe ugboro 1000. Otú ọ dị, ihe niile adịghị mfe. Ka anyị gbalịa iji usoro nke ịdị ukwuu na-agba ọsọ mmemme.

Sistemụ arụ ọrụ: Mpekere atọ dị mfe. Akụkụ 1: Okwu mmalite (nsụgharị)

Site na ntinye nọmba, dịka ọmụmaatụ, 100000, anyị na-atụ anya ịhụ mmepụta dị ka nọmba 200000. Otú ọ dị, ọ bụrụ na anyị na-agba ọsọ nọmba 100000 ọtụtụ ugboro, anyị agaghị ahụ naanị azịza ziri ezi, ma nweta azịza ezighi ezi dị iche iche. Azịza ya dabeere n'eziokwu na iji mee ka ọnụ ọgụgụ ahụ dịkwuo elu, a chọrọ ọrụ atọ - wepụ nọmba ahụ na ebe nchekwa, na-abawanye, wee dee nọmba ahụ azụ. Ebe ọ bụ na a naghị eme ntuziaka ndị a niile n'ụzọ atọ (ha niile n'otu oge), ihe ndị dị ịtụnanya dị ka nke a nwere ike ime. A na-akpọ nsogbu a na mmemme ọnọdụ agbụrụ. Mgbe ike amaghị na oge amabeghị nwere ike imetụta arụmọrụ nke ọrụ gị ọ bụla.

isi: www.habr.com

Tinye a comment