Faiga Fa'agaoioi: Tolu Fa'a Faigofie. Vaega 1: Folasaga (fa'aliliuga)

Folasaga i Faiga Fa'agaioiga

Ei Habr! Ou te fia faailoa atu ia te outou se faasologa o tala-faaliliuga o se tasi tusitusiga manaia i loʻu manatu - OSTEP. O lenei mea o loʻo faʻatalanoaina loloto le galuega o faiga faʻaogaina e pei o le unix, e pei o, galue ma faiga, faʻasologa eseese, manatua ma isi vaega tutusa e fausia ai se OS faʻaonaponei. E mafai ona e va'ai i le mea muamua o mea uma iinei iinei. Fa'amolemole maitau o le fa'aliliuga sa faia e le'o fa'apolofesa (sa'oloto lava), ae ou te fa'amoemoe o lo'o tumau pea le uiga lautele.

Ole su'esu'ega ile mataupu e mafai ona maua iinei:
- ulua'i: pages.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html
- ulua'i: github.com/remzi-arpacidusseau/ostep-code
- la'u fetuunaiga patino: github.com/bykvaadm/OS/tree/master/ostep

E mafai fo'i ona e va'ai i la'u auala ile telegram =)

Fa'agaioiga polokalame

O le a le mea e tupu pe a fa'agasolo se polokalame? O se polokalame fa'agasolo e tasi lava le mea faigofie - e fa'atino ai fa'atonuga. O sekone taʻitasi, e faitau miliona ma ono piliona o faʻatonuga e maua mai e le processor mai le RAM, i le isi itu na te faʻaaogaina (mo se faʻataʻitaʻiga, e iloa ai le ituaiga o nei faatonuga) ma faʻatinoina. E mafai ona fa'aopoopoina ni numera se lua, fa'aoga manatua, siaki se tulaga, oso i se galuega, ma isi. A maeʻa le faʻatinoina o le tasi faʻatonuga, e faʻagasolo atu le processor i le faʻatinoina o le isi. Ma o lea faatonuga ma lea faatonuga, e faʻataunuʻuina seia maeʻa le polokalama.
O lenei faʻataʻitaʻiga e masani lava ona faʻafaigofie - o le mea moni, e faʻavave le faagasologa, meafaigaluega faʻaonaponei e mafai ai ona e faʻatinoina faʻatonuga mai le taimi, fuafua iʻuga talafeagai, faʻatino faatonuga i le taimi e tasi, ma togafiti tutusa.

Von Neumann faʻataʻitaʻiga o faʻasologa

O le fa'afaigofieina o galuega fa'amatala e matou e tutusa ma le Von Neumann fa'ata'ita'iga o fa'atusatusaga. Von Neumann o se tasi o paionia o faiga komepiuta, o ia foi o se tasi o tusitala o le taaloga teori. Aʻo faʻagasolo le polokalame, o le tele o isi mea e tutupu, o le tele o isi faʻagasologa ma galuega faʻavae lona tolu, o le autu autu o le faʻafaigofieina o le faʻalauiloaina, faʻagaioiga ma le tausiga o le faiga.
O loʻo i ai se seti o polokalama faʻapipiʻi e nafa ma le faʻafaigofieina o polokalama (poʻo le faʻatagaina foi o le tele o polokalama e taʻavale i le taimi e tasi), e mafai ai e polokalame ona faʻasoa le manatua tutusa, ma fesoʻotaʻi ma masini eseese. O sea seti o polokalama (software) e taua tele o le faiga faʻaogaina ma o ana galuega e aofia ai le mataʻituina o le faiga o loʻo galue lelei ma lelei, faʻapea foʻi ma le faʻamautinoaina o le faigofie o le puleaina o lenei faiga.

faiga faagaoioia

O se faiga fa'aogaina, fa'apu'upu'u o se OS, o se seti o polokalame feso'ota'i fa'atulagaina e fa'atautaia ai punaoa faakomepiuta ma fa'atulaga fegalegaleaiga fa'aoga ma se komepiuta..
O le OS e ausia lona aoga i le mea muamua, e ala i le auala sili ona taua - o le metotia virtualization. O le OS e fegalegaleai ma se punaoa faʻaletino (processor, memory, disk, etc.) ma faʻaliliuina i se tulaga lautele, sili atu le malosi, ma faigofie ona faʻaaogaina. O le mea lea, mo se malamalamaaga lautele, e mafai ona e faʻatusatusaina le faiga faʻaogaina ma se masini masini.
Ina ia faʻatagaina tagata faʻaoga e tuʻuina atu faʻatonuga i le faiga faʻaogaina ma faʻaogaina ai le gafatia o le masini masini (e pei o le faʻatinoina o se polokalama, tuʻufaʻatasia o mafaufauga, faʻaogaina o se faila, ma isi), o le faiga faʻaogaina e maua ai se atinaʻe e taʻua. API (faʻaoga polokalame faʻaoga) ma e mafai ona e faia ai telefoni (valaau). O se faiga fa'aoga masani e mafai ai ona fai le fiaselau o telefoni fa'aoga.
Ma le mea mulimuli, talu ai ona o le virtualization e mafai ai e le tele o polokalama ona faʻatautaia (faʻasoaina le PPU), ma faʻafeiloaʻi a latou faʻatonuga ma faʻamaumauga (faʻapea le fefaʻasoaaʻi manatua), ma maua faʻasalalauga (ma faʻasoa ai masini I / O). pule o punaoa. O processor taʻitasi, disk ma manatua o se punaoa o le faiga, ma o se tasi o matafaioi a le faiga faʻaogaina e avea ma galuega o le puleaina o nei punaoa, faia lelei, faʻamaoni, poʻo le isi itu, e faʻatatau i le galuega o loʻo faʻaogaina ai lenei faiga faʻaogaina. ua mamanuina.

fa'amasani o le CPU

Mafaufau i le polokalame lenei:
(https://www.youtube.com/watch?v=zDwT5fUcki4&feature=youtu.be)

Faiga Fa'agaoioi: Tolu Fa'a Faigofie. Vaega 1: Folasaga (fa'aliliuga)

E le faia ni gaioiga faʻapitoa, o le mea moni, o mea uma e fai o le taʻua o se galuega vili(), o lana galuega o le taamilosaga i le siaki taimi ma toe foi mai pe a mavae le tasi sekone. O le mea lea, e toe fai ai le manoa na pasia e le tagata faʻaoga e fai ma finauga.
Se'i o tatou fa'agasolo lenei polokalame ma pasi atu le uiga "A" e fai ma finauga. O le taunuuga e le o se mea e sili ona manaia - o le faiga e naʻo le faʻatinoina o se polokalame e faʻaalia i lea taimi ma lea taimi le uiga "A".
Sei o tatou taumafai le filifiliga pe a tele taimi o le polokalame lava e tasi o loʻo tamoʻe, ae faʻapipiʻi mataitusi eseese e faʻamalamalama atili ai. I lenei tulaga, o le taunuuga o le a fai si ese. E ui lava i le mea moni o loʻo i ai le matou processor, o le polokalame e faʻatinoina i le taimi e tasi. E faapefea ona tupu? Ae e foliga mai o le faiga faʻaogaina, e le aunoa ma le fesoasoani a meafaigaluega faʻapitoa, e fatuina ai se faʻalavelave. O le faʻasesega o le faiga e tele masini komepiuta, faʻaliliuina se masini faʻapitoa e tasi i se numera e le iʻu ma faʻatagaina ai polokalama e foliga mai e taʻavale i le taimi e tasi. Ua ta'ua lea faafoliga fa'ata'ita'iina o le CPU.
O lenei ata e laga ai le tele o fesili, mo se faʻataʻitaʻiga, afai e tele polokalame e manaʻo e taʻavale i le taimi e tasi, o le fea o le a faʻalauiloa? O "faiga faavae" a le OS e nafa ma lenei fesili. O faiga fa'avae e fa'aoga i le tele o nofoaga i le OS ma tali fesili fa'apenei, ma o faiga fa'avae ia e fa'atino e le OS. O le mea lea o le matafaioi a le OS o se pule o punaoa.

Fa'ata'ita'iina o le mafaufau

Se'i o tatou tilotilo nei i le manatua. O le faʻataʻitaʻiga faʻaletino o le manatua i faiga faʻaonaponei o loʻo faʻatusalia o se faʻasologa o bytes.. Ina ia faitau mai le manatua, e tatau ona e faʻamaonia tuatusi selae maua ai. Ina ia tusia pe fa'afou fa'amaumauga, e tatau fo'i ona e fa'ama'oti fa'amaumauga ma le tuatusi o le sela e tusi ai.
E maua i taimi uma le avanoa e manatua ai le polokalame. E teuina e se polokalame lona fausaga atoa o fa'amaumauga i le manatua ma maua ai e ala i le fa'atinoina o fa'atonuga eseese. O faatonuga, i le taimi nei, o loʻo teuina foi i le mafaufau, o lea e mafai ai foi ona maua mo talosaga taʻitasi mo le isi faʻatonuga.

malloc() valaau

Mafaufau i le polokalame o loʻo i lalo, lea e tuʻufaʻatasia ai se vaega o le manatua e faʻaaoga ai le telefoni malloc () (https://youtu.be/jnlKRnoT1m0):

Faiga Fa'agaoioi: Tolu Fa'a Faigofie. Vaega 1: Folasaga (fa'aliliuga)

E tele mea e faia e le polokalame. Muamua, na te tuʻuina atu sina manatua (laina 7), ona lolomi lea o le tuatusi o le cell tuʻufaʻatasia (laina 9), tusi le zero i le avanoa muamua o le manatua na tuʻuina atu. O le isi, e ulufale le polokalame i se matasele lea e faʻaopoopoina ai le tau o loʻo teuina i le mafaufau i le tuatusi i le "p" fesuiaiga. E lolomi fo'i le ID fa'agasologa o ia lava. O le ID ID e tulaga ese mo faʻagasologa taʻitasi taʻitasi. I le faʻalauiloaina o ni kopi, o le a tatou tautevateva i luga o se taunuuga manaia: I le tulaga muamua, afai e te le faia se mea ma naʻo le tele o kopi, ona ese lea o tuatusi. Ae e le pa'u i lalo o la tatou talitonuga! Sa'o, talu ai o tufatufaga fa'aonaponei e iai le fa'avasegaina o manatua e mafai ona fa'aletonu. Afai e le atoatoa, matou te maua le faʻamoemoega faʻamoemoeina - o tuatusi manatua o polokalame e lua o loʻo faʻaogaina i le taimi e tasi e fetaui.

Faiga Fa'agaoioi: Tolu Fa'a Faigofie. Vaega 1: Folasaga (fa'aliliuga)

O le iʻuga, e foliga mai e lua polokalame tutoʻatasi e galulue ma a latou lava tuatusi tuatusi avanoa, lea e faʻapipiʻiina e le faiga faʻaogaina i le mafaufau faaletino.. O le mea lea, o le faʻaaogaina o tuatusi manatua i totonu o le tasi polokalama o le a le afaina ai isi i soʻo se auala, ma e foliga mai i polokalama taʻitasi e iai lana lava vaega o le mafaufau faaletino, e tuʻuina atu i ai. O le mea moni, e ui i lea, o le manatua faaletino o se punaoa faʻasoa e pulea e le faiga faʻaogaina.

Fa'atasi

O le isi mataupu taua i totonu o faiga fa'aogaina o le − tumau. O lenei faaupuga e faʻaaogaina pe a talanoa e uiga i faʻafitauli i le faiga e mafai ona tupu pe a galue i le tele o mea i le taimi e tasi i totonu o le polokalama lava e tasi. O fa'afitauli fa'atasi e tula'i mai e o'o lava i totonu ole faiga fa'agaioiga lava ia. I le faʻataʻitaʻiga muamua ma faʻataʻitaʻiga faʻataʻitaʻiga, na matou iloa ai o le OS e pulea le tele o mea i le taimi e tasi - e amata ai le faagasologa muamua, sosoo ai ma le lona lua, ma isi. E pei ona aliali mai, o lenei amioga e mafai ona oʻo atu ai i nisi o faʻafitauli. O lea la, mo se faʻataʻitaʻiga, o polokalame faʻaonaponei faʻaonaponei e tele filo e feagai ma ia faigata.

Mafaufau i le polokalame lenei:

Faiga Fa'agaoioi: Tolu Fa'a Faigofie. Vaega 1: Folasaga (fa'aliliuga)

O le polokalame i le galuega autu e fatuina ni filo se lua e faʻaaoga ai le valaau pthread_create(). I lenei faʻataʻitaʻiga, o se filo e mafai ona mafaufauina o se galuega o loʻo taʻavale i le avanoa e tasi e manatua ai faʻatasi ma isi galuega, ma e manino le sili atu ma le tasi galuega o loʻo tamoe i le taimi e tasi. I lenei faʻataʻitaʻiga, o filo taʻitasi e amata ma faʻatino le galuega worker() lea e faʻaopoopoina le fesuiaiga,.

Sei o tatou fa'agasolo lenei polokalame ma se finauga o le 1000. E pei ona e mateina, o le taunuuga e tatau ona 2000 aua o filo ta'itasi na fa'aopoopoina le fesuiaiga 1000 taimi. Ae peitai, e le faigofie mea uma. Se'i o tatou taumafai e fa'agasolo le polokalame ma se fa'asologa o le tele o fa'auiga.

Faiga Fa'agaoioi: Tolu Fa'a Faigofie. Vaega 1: Folasaga (fa'aliliuga)

E ala i le faʻaofiina o se numera, mo se faʻataʻitaʻiga, 100000, matou te faʻamoemoe e vaʻai i le gaioiga e pei o le numera 200000. Ae peitaʻi, afai matou te faʻatautaia le numera 100000 i le tele o taimi, o le a le gata ina matou le vaʻai i le tali saʻo, ae maua foi ni tali sese eseese. O le tali o loʻo taoto i le mea moni e faʻapea e faʻateleina le numera, e tolu gaioiga e manaʻomia - aveese le numera mai le manatua, faʻaopoopo, ona toe tusi lea o le numera. Talu ai o nei faʻatonuga uma e leʻo faʻatinoina i le atomically (uma i le taimi e tasi), o mea uiga ese e mafai ona tupu. O lenei faʻafitauli e taʻua i le polokalame tulaga tuuga. Pe a le iloa malosi i se taimi le iloa e mafai ona afaina ai le faatinoga o soʻo se au gaioiga.

puna: www.habr.com

Faaopoopo i ai se faamatalaga