Pūnaha Whakahaere: E toru nga waahanga ngawari. Wāhanga 1: Intro (whakamaori)

He Kupu Whakataki ki nga Pūnaha Whakahaere

Hei Habr! E hiahia ana ahau ki te kawe mai ki a koe he raupapa tuhinga-whakamaoritanga o tetahi tuhinga whakamere ki taku whakaaro - OSTEP. Ka tino matapakihia e tenei rauemi nga mahi a nga punaha whakahaere rite-unix, ara, te mahi me nga tikanga, nga momo kaiwhakariterite, mahara me etahi atu waahanga rite e hanga ana i te OS hou. Ka taea e koe te kite i te taketake o nga rawa katoa i konei konei. Kia mahara ko te whakamaoritanga he mea kore noa (he tino kore noa), engari ko taku tumanako ka mau tonu te tikanga whanui.

Ko nga mahi taiwhanga mo tenei kaupapa ka kitea i konei:
- taketake: pages.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html
- taketake: github.com/remzi-arpacidusseau/ostep-code
- taku urutau whaiaro: github.com/bykvaadm/OS/tree/master/ostep

Ka taea hoki e koe te tirotiro i taku hongere i waea waea =)

Te whakahaeretanga o te hōtaka

He aha te mea ka rere ana te kaupapa? Ko te kaupapa whakahaere he mahi ngawari - ka mahia nga tohutohu. Ia hekona, he miriona me te piriona pea o nga tohutohu ka tikina mai e te kaitukatuka mai i te RAM, na te mea ka wetewetehia e ia (hei tauira, ka mohio he aha te momo o enei tohutohu) ka mahia. Ka taea te taapiri i nga nama e rua, te uru ki te mahara, te tirotiro i tetahi ahuatanga, te peke ki tetahi mahi, me era atu. I muri i te whakatinanatanga o tetahi tohutohu, ka haere te tukatuka ki te mahi i tetahi atu. Na ko nga tohutohu i muri i nga tohutohu, ka mahia kia mutu ra ano te kaupapa.
Ko tenei tauira ka kiia he ngawari - inaa, ki te tere ake i te tukatuka, ka taea e nga taputapu hou te mahi i nga tohutohu mai i te hurihanga, te tatau i nga hua ka taea, te whakahaere i nga tohutohu i te wa kotahi, me nga mahi tinihanga.

Ko te tauira a Von Neumann mo te tatauranga

Ko te ahua ngawari o te mahi i whakaahuahia e matou he rite ki te tauira a Von Neumann o te tatauranga. Ko Von Neumann tetahi o nga pionia o nga punaha rorohiko, ko ia ano tetahi o nga kaituhi o te ariā keemu. I te wa e rere ana te kaupapa, he maha atu nga huihuinga ka puta, he maha atu nga tukanga me nga mahi arorau tuatoru, ko te kaupapa matua ko te whakamaarama i te whakarewatanga, te whakahaere me te tiaki i te punaha.
He huinga rorohiko kei te kawe i nga kaupapa kia ngawari ki te whakahaere (me te tuku ranei i nga kaupapa maha kia rere i te wa kotahi), ka taea e nga papatono te tiri i te mahara kotahi, me te whakawhiti korero ki nga taputapu rereke. Ko taua huinga rorohiko (rorohiko) e kiia ana ko te punaha whakahaere me ona mahi ko te tirotiro kei te mahi tika te punaha, me te whakarite kia ngawari te whakahaere o tenei punaha.

pūnaha whakahaere

Ko te punaha whakahaere, ka whakapotohia hei OS, he huinga kaupapa honohono i hangaia hei whakahaere i nga rauemi rorohiko me te whakarite i te taunekeneke a te kaiwhakamahi me te rorohiko..
Ka whakatutukihia e te OS tona whai hua i te tuatahi, na roto i te tikanga tino nui - te tikanga mariko. Ka mahi tahi te OS me tetahi rauemi tinana (tukatuka, mahara, kōpae, me etahi atu) ka huri hei ahua whanui ake, kaha ake, me te ngawari ki te whakamahi. Na reira, mo te maarama whanui, ka taea e koe te whakataurite i te punaha whakahaere me te miihini mariko.
Kia taea ai e nga kaiwhakamahi te tuku whakahau ki te punaha whakahaere me te whakamahi i nga kaha o te miihini mariko (penei i te whakahaere i tetahi papatono, te tohatoha mahara, te uru ki te konae, me era atu), ka whakaratohia e te punaha whakahaere etahi atanga e kiia nei. API (atanga papatono tono) ka taea e koe te waea (waea). He punaha whakahaere angamaheni ka taea e nga rau o nga waea punaha te mahi.
Ka mutu, i te mea ka taea e te marikotanga te whakahaere i nga kaupapa maha (na te tiri i te PTM), me te uru atu ki o raatau tohutohu me o raatau raraunga (na reira te tiritiri mahara), me te uru atu ki nga kopae (na reira ko te tiri i nga taputapu I/O). ), ka kiia hoki te punaha whakahaere he kaiwhakahaere rauemi. Ko ia pūtukatuka, kōpae me te pūmahara he rauemi o te punaha, na reira ko tetahi o nga mahi o te punaha whakahaere ka riro hei mahi whakahaere i enei rauemi, ma te mahi tika, ma te pono, ma te tika ranei, i runga ano i te mahi a tenei punaha whakahaere. kua hoahoatia.

Mariko CPU

Whakaarohia te kaupapa e whai ake nei:
(https://www.youtube.com/watch?v=zDwT5fUcki4&feature=youtu.be)

Pūnaha Whakahaere: E toru nga waahanga ngawari. Wāhanga 1: Intro (whakamaori)

Kaore e mahia e ia etahi mahi motuhake, inaa, ko nga mea katoa ka kiia he mahi miro(), ko tana mahi ko te huri haere i te tirotiro wa me te hoki mai i muri i te paahitanga o te hekona kotahi. Na, ka tukurua tonu te aho i tukuna e te kaiwhakamahi hei tohenga.
Me whakahaere tenei hotaka ka tukuna te tohu "A" hei tohenga. Ko te hua kaore i te tino pai - ka mahia noa e te punaha he papatono e whakaatu ana i te ahua "A".
Inaianei me whakamatau te whiringa ina he maha nga ahuatanga o te kaupapa kotahi e rere ana, engari ka whakaputa i nga reta rereke kia marama ake ai. I tenei keehi, ka rereke te hua. Ahakoa te meka he kotahi te tukatuka, ka mahia te kaupapa i te wa kotahi. Me pehea te tupu? Engari ka puta ko te punaha whakahaere, kaore i te awhina o nga kaha taputapu, ka hanga he pohehe. Ko te pohehe he maha nga kaitukatuka mariko o te punaha, ka huri i te kaitukatuka tinana kotahi ki te tau kore mutunga me te tuku i nga kaupapa ki te whakahaere i te wa kotahi. Ka kiia tenei pohehe Mariko CPU.
He maha nga patai ka whakaarahia e tenei pikitia, hei tauira, mena he maha nga hotaka e hiahia ana kia haere i te wa kotahi, ko wai ka whakarewahia? Ko nga "kaupapa here" o te OS te kawenga mo tenei patai. Ka whakamahia nga kaupapa here ki nga waahi maha i roto i te OS me te whakautu i nga paatai ​​penei, a ko nga tikanga taketake ka mahia e te OS. No reira te mahi a te OS hei kaiwhakahaere rauemi.

Mariko mariko

Inaianei ka titiro tatou ki te mahara. Ko te tauira tinana o te mahara i roto i nga punaha hou e whakaatuhia ana hei huinga paita.. Hei panui mai i te mahara, me tohu koe wāhitau pūtauki te uru atu. Ki te tuhi, ki te whakahou ranei i nga raraunga, me tohu ano te raraunga me te wahitau o te pūtau hei tuhi.
Ka uru atu te mahara i nga wa katoa e mahia ana te kaupapa. Ka penapenahia e tetahi papatono tona hanganga raraunga katoa ki roto i te mahara ka uru atu ma te whakahaere i nga momo tohutohu. Ko nga tohutohu, i tenei wa, kei te rongoa ano ki te mahara, no reira ka uru atu mo ia tono mo te ako ka whai ake.

malloc() karanga

Whakaarohia te kaupapa e whai ake nei, e tohatoha ana i te rohe mahara ma te waea malloc () (https://youtu.be/jnlKRnoT1m0):

Pūnaha Whakahaere: E toru nga waahanga ngawari. Wāhanga 1: Intro (whakamaori)

He maha nga mahi a te hotaka. Tuatahi, ka tohatohahia etahi mahara (raina 7), ka taia te wahitau o te pūtau kua tohaina (raina 9), ka tuhi kore ki te mokamoka tuatahi o te mahara kua tohatohahia. Muri iho, ka uru te hotaka ki roto i te kopikopiko e whakanui ana i te uara kua rongoa ki roto i te mahara ki te wahitau o te taurangi "p". Ka tāngia hoki te ID hātepe mōna ake. He ahurei te ID tukanga mo ia tukanga whakahaere. He maha nga kape kua whakarewahia, ka tutuki matou ki tetahi hua whakamere: I te keehi tuatahi, ki te kore koe e mahi me te whakahaere noa i etahi kape, ka rereke nga wahitau. Engari kaore tenei e taka ki raro i to maatau ariā! Tika, i te mea ko nga tuari hou kua whakaaheihia te matapōkere mahara ma te taunoa. Mena kua monoa, ka whiwhi tatou i te hua e tumanakohia ana - ka rite nga wahitau mahara o nga kaupapa e rua e whakahaere ana i te wa kotahi.

Pūnaha Whakahaere: E toru nga waahanga ngawari. Wāhanga 1: Intro (whakamaori)

Ko te mutunga mai, ka kitea e rua nga kaupapa motuhake e mahi tahi ana me o raatau ake mokowā wāhitau tūmataiti, ka mapihia e te punaha whakahaere i roto i te mahara tinana.. Na reira, ko te whakamahi i nga wahitau mahara i roto i te kaupapa kotahi e kore e pa ki etahi atu, me te ahua o ia papatono kei a ia ake te waahanga o te mahara tinana, kua hoatu katoa ki a ia. Ko te mea pono, ko te mahara tinana he rauemi tiritahi e whakahaerehia ana e te punaha whakahaere.

Te riterite

Ko tetahi o nga kaupapa nui i roto i nga punaha whakahaere ko − riterite. Ka whakamahia tenei kupu i te wa e korero ana mo nga raru o te punaha ka puta i te wa e mahi ana me nga mea maha i te wa kotahi i roto i te kaupapa kotahi. Ka puta nga take riterite ahakoa i roto i te punaha whakahaere. I roto i nga tauira o mua o te mahara me te tukatuka mariko, i mohio matou he maha nga mea e whakahaerehia ana e te OS i te wa kotahi - ka timata te tukanga tuatahi, ka tuarua, me era atu. I te mea i puta mai, ko tenei whanonga ka arahi ki etahi raruraru. Na, hei tauira, ko nga hotaka miro-maha o enei ra ka pa ki enei uauatanga.

Whakaarohia te kaupapa e whai ake nei:

Pūnaha Whakahaere: E toru nga waahanga ngawari. Wāhanga 1: Intro (whakamaori)

Ko te kaupapa i roto i te mahi matua ka hanga i nga miro e rua ma te whakamahi i te piiraa pthread_create(). I roto i tenei tauira, ka taea te whakaaro he miro he mahi e rere ana i roto i te mokowā mahara kotahi ki te taha o etahi atu mahi, me te marama neke atu i te kotahi mahi i te wa kotahi. I tenei tauira, ka timata ia miro ka mahia te mahi worker() ka piki noa te taurangi,.

Me whakahaere tenei papatono me te tohenga o te 1000. I whakaaro pea koe, me 2000 te hua na te mea he 1000 nga wa i piki ai ia miro i te taurangi. Engari, ehara i te mea ngawari nga mea katoa. Me ngana ki te whakahaere i te hotaka me te raupapa o te nui o nga tukurua.

Pūnaha Whakahaere: E toru nga waahanga ngawari. Wāhanga 1: Intro (whakamaori)

Ma te whakauru i tetahi nama, hei tauira, 100000, ka tumanako tatou ka kite i te putanga ko te nama 200000. Heoi, ki te rere tatou i te nama 100000 he maha nga wa, kaore e kite i te whakautu tika, engari ka whiwhi ano i nga whakautu he rereke. Ko te whakautu ko te mea hei whakanui ake i te tau, e toru nga mahi e hiahiatia ana - te tango i te tau mai i te mahara, te piki haere, katahi ka tuhia te nama ki muri. I te mea karekau enei tohutohu katoa i mahia ma te ngota (katoa i te wa kotahi), ka puta nga mea rereke penei. Ko tenei raruraru e kiia ana ko te kaupapa huru iwi. I te wa e kore e mohiotia e nga ope kaore e mohiotia ka pa ki te mahi o tetahi o o mahi.

Source: will.com

Tāpiri i te kōrero