Mekhoa ea ho sebetsa: Likotoana tse tharo tse bonolo. Karolo ea 1: Selelekela (phetolelo)

Kenyelletso ea Litsamaiso tsa Ts'ebetso

Lumela, Habr! Ke kopa ho u tsebisa letoto la lihlooho-liphetolelo tsa lingoliloeng tse thahasellisang ka maikutlo a ka - OSTEP. Boitsebiso bona bo hlahloba ka botebo mosebetsi oa litsamaiso tse sebetsang tse kang unix, e leng, ho sebetsa ka mekhoa, li-schedule tse fapa-fapaneng, mohopolo le likarolo tse ling tse tšoanang tse etsang OS ea morao-rao. 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:
- ea mantlha: pages.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html
- ea mantlha: github.com/remzi-arpacidusseau/ostep-code
- ho ikamahanya le maemo a ka: github.com/bykvaadm/OS/tree/master/ostep

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

Ts'ebetso ea lenaneo

Ho etsahala'ng ha lenaneo le ntse le sebetsa? Lenaneo le sebetsang le etsa ntho e le 'ngoe e bonolo - le etsa litaelo. Motsotsoana o mong le o mong, limilione kapa esita le libilione tsa litaelo li khutlisoa ke processor ho tsoa ho RAM, ebe e li khetha (mohlala, e hlokomela hore na litaelo tsena ke tsa mofuta ofe) ebe oa li phethahatsa. Sena e ka ba ho eketsa linomoro tse peli, ho fihlella mohopolong, ho sheba boemo, ho tlolela tšebetsong, joalo-joalo. Ka mor'a ho phethahatsa taelo e le 'ngoe, processor e tsoela pele ho phethahatsa e' ngoe. Kahoo taeo ka mor'a taeo, e phethisoa ho fihlela lenaneo le fela.
Mohlala ona ka tlhaho o nkuoa o nolofalitsoe - ha e le hantle, ho potlakisa processor, lisebelisoa tsa sejoale-joale li u lumella ho etsa litaelo ka nako, ho bala liphetho tse ka khonehang, ho etsa litaelo ka nako e le 'ngoe, le maqheka a tšoanang.

Von Neumann ea mohlala oa computation

Mokhoa o nolofalitsoeng oa mosebetsi oo re o hlalosang o tšoana le oa Von Neumann oa computation. Von Neumann ke e mong oa bo-pula-maliboho ba tsamaiso ea lik'homphieutha, hape ke e mong oa bangoli ba khopolo ea papali. Ha lenaneo le ntse le tsoela pele, ho etsahala liketsahalo tse ling tse ngata, lits'ebetso tse ling tse ngata le mosebetsi oa logic oa motho oa boraro, sepheo sa ona e leng ho nolofatsa ho qala, ts'ebetso le tlhokomelo ea sistimi.
Ho na le sete ea software e ikarabellang bakeng sa ho etsa hore mananeo a sebetse habonolo (kapa esita le ho lumella mananeo a mangata ho sebetsa ka nako e le 'ngoe), ho lumella mananeo ho arolelana mohopolo o tšoanang, hammoho le ho buisana le lisebelisoa tse fapaneng. Seteishene se joalo sa software (software) ha e le hantle se bitsoa sistimi e sebetsang mme mesebetsi ea eona e kenyelletsa ho lekola hore sistimi e sebetsa ka nepo le ka bokhabane, hammoho le ho netefatsa taolo ea sistimi ena habonolo.

tshebetso ya ho sebetsa

Sistimi ea ts'ebetso, e khutsufalitsoeng joalo ka OS, ke sete sa mananeo a hokahaneng a etselitsoeng ho laola lisebelisoa tsa komporo le ho hlophisa tšebelisano ea basebelisi le komporo..
OS e finyella katleho ea eona pele, ka mokhoa oa bohlokoa ka ho fetisisa - mokhoa ho etsa bonnete. OS e sebelisana le sesebelisoa sa 'mele (processor, memori, disk, joalo-joalo) ebe e e fetola ka mokhoa o akaretsang, o matla haholoanyane, le o bonolo ho o sebelisa. Ka hona, bakeng sa kutloisiso e akaretsang, o ka bapisa sistimi e sebetsang le mochini o hlakileng haholo.
E le ho lumella basebelisi ho fana ka litaelo ho sistimi ea ts'ebetso mme ka hona ba sebelise bokhoni ba mochini o hlakileng (joalo ka ho tsamaisa lenaneo, ho fana ka mohopolo, ho fihlella faele, joalo-joalo), sistimi e sebetsang e fana ka sebopeho se itseng se bitsoang. API (sebopeho sa lenaneo la kopo) le seo u ka se letsetsang (call). Sistimi e tloaelehileng ea ts'ebetso e lumella makholo a mehala ea sistimi hore e etsoe.
Qetellong, kaha virtualization e lumella mananeo a mangata ho sebetsa (ka hona ho arolelana CPU), 'me ka nako e le' ngoe ho fihlella litaelo le data ea bona (ka hona ho arolelana mohopolo), le ho fihlella li-disks (ka hona ho arolelana lisebelisoa tsa I / O). ), tsamaiso ea ts'ebetso e boetse e bitsoa " mookameli oa lisebelisoa. E 'ngoe le e' ngoe ea processor, disk le memori ke mohloli oa tsamaiso, 'me kahoo e' ngoe ea likarolo tsa tsamaiso ea ts'ebetso e fetoha mosebetsi oa ho laola lisebelisoa tsena, ho li etsa ka katleho, ka botšepehi, kapa ka tsela e fapaneng, ho itšetlehile ka mosebetsi oo tsamaiso ena e sebetsang ka eona. e entsoe.

CPU virtualization

Nahana ka lenaneo le latelang:
(https://www.youtube.com/watch?v=zDwT5fUcki4&feature=youtu.be)

Mekhoa ea ho sebetsa: Likotoana tse tharo tse bonolo. Karolo ea 1: Selelekela (phetolelo)

Ha e etse liketso tse khethehileng, ha e le hantle, sohle seo e se etsang ke ho bitsa mosebetsi ho ohla(), eo mosebetsi oa hae e leng ho potoloha cheke ea nako le ho khutla kamora motsotsoana o le mong. Kahoo, e pheta ka ho sa feleng khoele eo mosebedisi a e fetisitseng e le khang.
Ha re tsamaiseng lenaneo lena 'me re le fetise sebopeho "A" e le khang. Sephetho ha se thahaselle haholo - sistimi e etsa feela lenaneo le bonts'ang sebapali "A".
Joale ha re leke khetho ha ho na le maemo a mangata a lenaneo le ts'oanang, empa ho hlahisa litlhaku tse fapaneng ho hlakisa haholoanyane. Tabeng ena, phello e tla ba e fapaneng. Ho sa tsotellehe taba ea hore re na le processor e le 'ngoe, lenaneo le etsoa ka nako e le' ngoe. E etsahala joang? Empa hoa etsahala hore tsamaiso ea ts'ebetso, ntle le thuso ea lisebelisoa tsa hardware, e baka leshano. Maikutlo a hore sistimi e na le li-processor tse ngata, e fetolang processor e le 'ngoe hore e be palo e sa feleng, ka hona e lumella mananeo a bonahalang hore a sebetse ka nako e le 'ngoe. Thetso ena e bitsoa CPU virtualization.
Setšoantšo sena se hlahisa lipotso tse ngata, mohlala, haeba mananeo a 'maloa a batla ho sebetsa ka nako e le' ngoe, ke efe e tla qalisoa? "Maano" a OS a ikarabella bakeng sa potso ena. Melao e sebelisoa libakeng tse ngata ho OS mme e araba lipotso tse kang tsena, 'me ke mekhoa ea motheo eo OS e e sebelisang. Kahoo karolo ea OS e le mookameli oa lisebelisoa.

memori ea virtualization

Joale ha re shebeng mohopolo. Mohlala oa 'mele oa mohopolo litsamaisong tsa sejoale-joale o emeloa e le letoto la li-byte.. Ho bala ho tsoa mohopolong, o hloka ho hlakisa aterese ea selefounoho e fumana. Ho ngola kapa ho apdeita data, o tlameha hape ho bolela datha le aterese ea sele moo o li ngollang teng.
Memori e fumanoa kamehla nakong ea ts'ebetso ea lenaneo. Lenaneo le boloka sebopeho sa data kaofela mohopolong mme le fihlella ho eona ka ho etsa litaelo tse fapaneng. Litaelo, ha ho le joalo, li bolokiloe mohopolong, kahoo e fumaneha hape bakeng sa kopo e 'ngoe le e' ngoe bakeng sa taelo e latelang.

malloc() letsetsa

Nahana ka lenaneo le latelang, le abelang sebaka sa memori ho sebelisa mohala malloc () (https://youtu.be/jnlKRnoT1m0):

Mekhoa ea ho sebetsa: Likotoana tse tharo tse bonolo. Karolo ea 1: Selelekela (phetolelo)

Lenaneo le etsa lintho tse 'maloa. Ntlha ea pele, e fana ka mohopolo o itseng (mola oa 7), ebe e hatisa aterese ea sele e fanoeng (mola oa 9), e ngola zero sebakeng sa pele sa mohopolo o fanoeng. Ka mor'a moo, lenaneo le kenya loop eo ho eona e eketsang boleng bo bolokiloeng mohopolong atereseng ea "p" e fapaneng. E boetse e hatisa ID ea tšebetso ka boeona. ID ea ts'ebetso e ikhethile bakeng sa ts'ebetso e 'ngoe le e' ngoe e sebetsang. Ha re se re hlahisitse likopi tse 'maloa, re tla khoptjoa ke sephetho se thahasellisang: Tabeng ea pele, haeba u sa etse letho' me u tsamaisa likopi tse 'maloa, joale liaterese li tla fapana. Empa sena ha se oele tlas'a khopolo ea rona! E nepahetse, kaha liphatlalatso tsa sejoale-joale li na le memori ea randomization e nolofalitsoeng ke kamehla. Haeba e holofetse, re fumana sephetho se lebelletsoeng - liaterese tsa memori tsa mananeo a mabeli a sebetsang ka nako e le 'ngoe li tla tšoana.

Mekhoa ea ho sebetsa: Likotoana tse tharo tse bonolo. Karolo ea 1: Selelekela (phetolelo)

Ka lebaka leo, hoa etsahala hore mananeo a mabeli a ikemetseng a sebetsa le libaka tsa bona tsa aterese tsa poraefete, tseo le tsona li hlophisitsoeng ke sistimi e sebetsang mohopolong oa 'mele.. Ka hona, tšebeliso ea liaterese tsa memori ka har'a lenaneo le le leng e ke ke ea ama ba bang ka tsela leha e le efe, 'me ho bonahala lenaneong le leng le le leng le na le karolo ea eona ea mohopolo oa' mele, e fanoeng ka ho feletseng ho eona. 'Nete, leha ho le joalo, ke hore mohopolo oa' mele ke sesebelisoa se arolelanoang se laoloang ke sistimi e sebetsang.

Ho lumellana

Taba e 'ngoe ea bohlokoa ka har'a sistimi ea ts'ebetso ke - tsitsinyeho. Lentsoe lena le sebelisoa ha ho buuoa ka mathata a tsamaiso a ka hlahang ha ho sebetsa le lintho tse ngata ka nako e le 'ngoe ka har'a lenaneo le le leng. Litaba tsa ho lumellana li hlaha esita le ka har'a tsamaiso ea ts'ebetso ka boeona. Mehlala e fetileng ea memori le processor virtualization, re hlokometse hore OS e laola lintho tse ngata ka nako e le 'ngoe - e qala ts'ebetso ea pele, ebe ea bobeli, joalo-joalo. Kamoo ho bonahalang kateng, boitšoaro bona bo ka baka mathata a mang. Kahoo, mohlala, mananeo a sejoale-joale a nang le likhoele tse ngata a na le mathata a joalo.

Nahana ka lenaneo le latelang:

Mekhoa ea ho sebetsa: Likotoana tse tharo tse bonolo. Karolo ea 1: Selelekela (phetolelo)

Lenaneo ts'ebetsong e kholo le theha likhoele tse peli ho sebelisa mohala pthread_create(). Mohlaleng ona, khoele e ka nkoa e le mosebetsi o sebetsang sebakeng se le seng sa memori hammoho le mesebetsi e meng, ka ho hlaka hore ho na le mesebetsi e fetang e le 'ngoe e sebetsang ka nako e le' ngoe. Mohlaleng ona, khoele e 'ngoe le e 'ngoe e qala ebe e etsa mosebetsi worker() eo le eona e eketsang phapang,.

Ha re tsamaise lenaneo lena ka khang ea 1000. Joalo ka ha u ka be u nahanne, sephetho e lokela ho ba 2000 hobane khoele e 'ngoe le e 'ngoe e ekelitse phapang ka makhetlo a 1000. Leha ho le joalo, ntho e 'ngoe le e' ngoe ha e bonolo hakaalo. Ha re leke ho tsamaisa lenaneo ka tatellano ea ho pheta-pheta ho eketsehileng.

Mekhoa ea ho sebetsa: Likotoana tse tharo tse bonolo. Karolo ea 1: Selelekela (phetolelo)

Ka ho kenya palo, mohlala, 100000, re lebeletse ho bona tlhahiso e le palo ea 200000. Leha ho le joalo, haeba re matha palo ea 100000 ka makhetlo a 'maloa, re ke ke ra bona feela karabo e nepahetseng, empa hape re tla fumana likarabo tse fapaneng tse fosahetseng. Karabo e teng tabeng ea hore ho eketsa palo, ho hlokahala lits'ebetso tse tharo - ho ntša nomoro ho tloha mohopolong, ho eketsa, ebe o ngola nomoro hape. Kaha litaelo tsena kaofela ha li phethoe ka atomo (kaofela ka nako e le 'ngoe), lintho tse makatsang tse kang tsena li ka etsahala. Bothata bona bo bitsoa ho mananeo boemo ba morabe. Ha matla a sa tsejoeng ka nako e sa tsejoeng a ka ama ts'ebetso ea ts'ebetso efe kapa efe ea hau.

Source: www.habr.com

Eketsa ka tlhaloso