Sistèm operasyon: Twa moso fasil. Pati 1: Entwodiksyon (tradiksyon)

Entwodiksyon nan sistèm operasyon yo

Hey Habr! Mwen ta renmen pote atansyon w yon seri atik-tradiksyon yon literati enteresan nan opinyon mwen - OSTEP. Materyèl sa a diskite byen pwofondman travay la nan sistèm operasyon UNIX, sètadi, travay ak pwosesis, pwogramasyon divès kalite, memwa ak lòt konpozan ki sanble ki fè moute yon eksplwatasyon modèn. Ou ka wè orijinal la nan tout materyèl isit la isit la. Tanpri sonje ke tradiksyon an te fèt san pwofesyonèl (byen lib), men mwen espere ke mwen te kenbe siyifikasyon jeneral la.

Ou ka jwenn travay laboratwa sou sijè sa a isit la:
- orijinal: pages.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html
- orijinal: github.com/remzi-arpacidusseau/ostep-code
- adaptasyon pèsonèl mwen: github.com/bykvaadm/OS/tree/master/ostep

Ou ka tcheke tou chèn mwen an nan telegram =)

Operasyon pwogram lan

Kisa k ap pase lè yon pwogram ap kouri? Yon pwogram kouri fè yon bagay senp - li egzekite enstriksyon yo. Chak segonn, plizyè milyon e menm pètèt dè milya de enstriksyon yo rekipere pa processeur a soti nan RAM, nan vire li dekode yo (pa egzanp, li rekonèt ki kalite enstriksyon sa yo fè pati) epi egzekite yo. Sa a ta ka ajoute de nimewo, aksè memwa, tcheke yon kondisyon, sote nan yon fonksyon, ak sou sa. Apre egzekisyon an nan yon enstriksyon, processeur a kontinye nan ekzekisyon an nan yon lòt. Se konsa, enstriksyon apre enstriksyon, yo egzekite jiskaske pwogram nan fini.
Egzanp sa a natirèlman konsidere kòm senplifye - an reyalite, akselere processeur a, pyès ki nan konpitè modèn pèmèt ou egzekite enstriksyon soti nan vire, kalkile rezilta posib, egzekite enstriksyon ansanm, ak ke trik nouvèl menm jan an.

Von Neumann modèl kalkil

Fòm senplifye travay nou dekri a sanble ak modèl kalkil Von Neumann. Von Neumann se youn nan pyonye yo nan sistèm òdinatè, li se tou youn nan otè yo nan teyori jwèt.. Pandan ke pwogram nan ap kouri, yon pakèt lòt evènman pran plas, anpil lòt pwosesis ak travay lojik twazyèm pati, objektif prensipal la nan ki se senplifye lansman, operasyon ak antretyen nan sistèm nan.
Gen yon seri lojisyèl ki responsab pou fè pwogram yo fasil pou kouri (oswa menm pèmèt plizyè pwogram yo kouri an menm tan), ki pèmèt pwogram yo pataje menm memwa a, epi yo kominike ak aparèy diferan. Yon seri lojisyèl konsa (lojisyèl) esansyèlman rele sistèm operasyon an ak travay li yo genyen ladan yo siveyans ke sistèm nan travay kòrèkteman ak efikasite, osi byen ke asire fasilite nan jesyon nan sistèm sa a.

Fonksyònman sistèm

Yon sistèm opere, ki abreje kòm yon OS, se yon seri pwogram ki gen rapò ki fèt pou jere resous òdinatè yo epi òganize entèraksyon itilizatè yo ak yon òdinatè..
OS la reyalize efikasite li an premye, atravè teknik ki pi enpòtan an - teknik la Virtualization. OS la reyaji ak yon resous fizik (prosesè, memwa, disk, elatriye) epi transfòme li nan yon fòm pi jeneral, pi pwisan, ak pi fasil-a-itilize nan tèt li. Se poutèt sa, pou yon konpreyansyon jeneral, ou ka trè apeprè konpare sistèm operasyon an ak yon machin vityèl.
Yo nan lòd yo pèmèt itilizatè yo bay kòmandman nan sistèm operasyon an epi konsa sèvi ak kapasite yo nan machin vityèl la (tankou kouri yon pwogram, allocation memwa, aksè nan yon dosye, ak sou sa), sistèm opere a bay kèk koòdone yo rele API (koòdone pwogramasyon aplikasyon) ak kote ou ka fè apèl (rele). Yon sistèm operasyon tipik pèmèt dè santèn de apèl sistèm yo dwe fè.
Finalman, piske Virtualization pèmèt plizyè pwogram yo kouri (kidonk pataje CPU a), epi an menm tan jwenn aksè nan enstriksyon yo ak done yo (konsa pataje memwa), ak aksè disk (konsa pataje I/O aparèy). ), yo rele sistèm operasyon an tou yon manadjè resous. Chak processeur, disk ak memwa se yon resous nan sistèm nan, epi konsa youn nan wòl yo nan sistèm operasyon an vin travay la nan jere resous sa yo, fè li avèk efikasite, onètman, oswa vis vèrsa, tou depann de travay la pou ki sistèm operasyon sa a. se fèt.

Virtualization CPU

Konsidere pwogram sa a:
(https://www.youtube.com/watch?v=zDwT5fUcki4&feature=youtu.be)

Sistèm operasyon: Twa moso fasil. Pati 1: Entwodiksyon (tradiksyon)

Li pa fè okenn aksyon espesyal, an reyalite, tout sa li fè se rele yon fonksyon vire(), ki gen travay se fè sik nan chèk tan an epi retounen apre yon segonn pase. Kidonk, li repete endefiniman fisèl ke itilizatè a te pase kòm yon agiman.
Ann kouri pwogram sa a epi pase li karaktè "A" kòm yon agiman. Rezilta a pa patikilyèman enteresan - sistèm nan tou senpleman egzekite yon pwogram ki detanzantan montre karaktè "A".
Koulye a, ann eseye opsyon a lè anpil sikonstans nan menm pwogram nan ap kouri, men pwodiksyon lèt diferan pou fè li pi klè. Nan ka sa a, rezilta a pral yon ti jan diferan. Malgre lefèt ke nou gen yon sèl processeur, pwogram nan egzekite an menm tan. Ki jan sa rive? Men, li sanble ke sistèm nan fonksyone, pa san èd nan kapasite pyès ki nan konpitè, kreye yon ilizyon. Illusion ke sistèm nan gen plizyè processeur vityèl, vire yon sèl processeur fizik nan yon nimewo teyorikman enfini epi kidonk pèmèt pwogram w pèdi yo kouri ansanm. Yo rele ilizyon sa a Virtualization CPU.
Foto sa a soulve anpil kesyon, pa egzanp, si plizyè pwogram vle kouri an menm tan, kiyès ki pral lanse? "Politik" OS yo responsab kesyon sa a. Politik yo itilize nan anpil kote nan eksplwatasyon an epi reponn kesyon tankou sa a, epi yo se mekanis debaz yo ke OS la aplike. Pakonsekan wòl OS la kòm yon manadjè resous.

Virtualization memwa

Koulye a, ann gade nan memwa. Modèl fizik memwa nan sistèm modèn yo reprezante kòm yon etalaj de bytes.. Pou li nan memwa, ou bezwen presize adrès selilèpou jwenn li. Pou ekri oswa mete ajou done yo, ou dwe tou presize done yo ak adrès selil la kote yo ekri li.
Yo jwenn aksè nan memwa toujou pandan ekzekisyon pwogram lan. Yon pwogram estoke tout estrikti done li yo nan memwa epi jwenn aksè nan li pa egzekite enstriksyon divès kalite. Enstriksyon yo, pandan se tan, yo tou estoke nan memwa, kidonk li jwenn aksè tou pou chak demann pou pwochen enstriksyon an.

malloc() rele

Konsidere pwogram sa a, ki asiyen yon rejyon nan memwa lè l sèvi avèk apèl la malok () (https://youtu.be/jnlKRnoT1m0):

Sistèm operasyon: Twa moso fasil. Pati 1: Entwodiksyon (tradiksyon)

Pwogram nan fè plizyè bagay. Premyèman, li asiyen kèk memwa (liy 7), Lè sa a, enprime adrès selil la atribye ba yo (liy 9), ekri zewo nan premye plas nan memwa atribye ba a. Apre sa, pwogram nan antre nan yon bouk kote li ogmante valè ki estoke nan memwa nan adrès la nan varyab "p". Li tou enprime ID pwosesis la nan tèt li. ID pwosesis la inik pou chak pwosesis k ap kouri. Èske w gen lanse plizyè kopi, nou pral bite sou yon rezilta enteresan: Nan premye ka a, si ou pa fè anyen epi jis kouri plizyè kopi, Lè sa a, adrès yo pral diferan. Men, sa a pa tonbe anba teyori nou an! Kòrèk, depi distribisyon modèn yo gen owaza memwa pèmèt pa default. Si li enfim, nou jwenn rezilta espere - adrès memwa de pwogram ki ap kouri ansanm ap matche.

Sistèm operasyon: Twa moso fasil. Pati 1: Entwodiksyon (tradiksyon)

Kòm yon rezilta, li sanble ke de pwogram endepandan travay ak pwòp espas adrès prive yo, ki nan vire yo trase pa sistèm operasyon an nan memwa fizik.. Se poutèt sa, itilizasyon adrès memwa nan yon pwogram pa pral afekte lòt moun nan okenn fason, epi li sanble nan chak pwogram ke li gen pwòp moso memwa fizik li yo, antyèman bay li. Reyalite a, sepandan, se ke memwa fizik se yon resous pataje jere pa sistèm nan fonksyone.

Konsistans

Yon lòt nan sijè enpòtan nan sistèm opere se - konsistans. Yo itilize tèm sa a lè w ap pale de pwoblèm nan sistèm nan ki ka rive lè w ap travay ak anpil bagay an menm tan nan menm pwogram nan. Pwoblèm konsistans rive menm nan sistèm operasyon an tèt li. Nan egzanp yo anvan memwa ak processeur Virtualization, nou reyalize ke eksplwatasyon an jere anpil bagay an menm tan an - li kòmanse pwosesis la premye, Lè sa a, dezyèm lan, ak sou sa. Kòm li te tounen soti, konpòtman sa a ka mennen nan kèk pwoblèm. Se konsa, pou egzanp, modèn pwogram milti-threaded eksperyans difikilte sa yo.

Konsidere pwogram sa a:

Sistèm operasyon: Twa moso fasil. Pati 1: Entwodiksyon (tradiksyon)

Pwogram nan nan fonksyon prensipal la kreye de fil lè l sèvi avèk apèl la pthread_create(). Nan egzanp sa a, yon fil ka konsidere kòm yon fonksyon ki kouri nan menm espas memwa a ansanm ak lòt fonksyon, ak klèman plis pase yon fonksyon kouri an menm tan. Nan egzanp sa a, chak fil kòmanse ak egzekite fonksyon an worker() ki an vire tou senpleman ogmante varyab la,.

Ann kouri pwogram sa a ak yon agiman 1000. Kòm ou ta ka devine, rezilta a ta dwe 2000 paske chak fil ogmante varyab la 1000 fwa. Sepandan, tout bagay se pa tèlman senp. Ann eseye kouri pwogram nan ak yon lòd de grandè plis repetisyon.

Sistèm operasyon: Twa moso fasil. Pati 1: Entwodiksyon (tradiksyon)

Lè nou antre yon nimewo, pou egzanp, 100000, nou espere wè pwodiksyon an kòm nimewo a 200000. Sepandan, si nou kouri nimewo a 100000 plizyè fwa, nou pa pral sèlman pa wè repons ki kòrèk la, men tou, nou pral jwenn diferan repons kòrèk. Repons lan manti nan lefèt ke pou ogmante nimewo a, twa operasyon yo nesesè - ekstrè nimewo a nan memwa, enkreman, ak Lè sa a, ekri nimewo a tounen. Depi tout enstriksyon sa yo pa egzekite atomikman (tout an menm tan an), bagay etranj tankou sa a ka rive. Pwoblèm sa a rele nan pwogramasyon kondisyon ras. Lè fòs enkoni nan yon moman enkoni ka afekte pèfòmans nenpòt nan operasyon ou yo.

Sous: www.habr.com

Add nouvo kòmantè