Sistèm operasyon: Twa moso fasil. Pati 2: Abstraksyon: Pwosesis (tradiksyon)

Entwodiksyon nan sistèm operasyon yo

Bonjou, Habr! Mwen ta renmen prezante nan atansyon w yon seri atik-tradiksyon yon sèl literati ki enteresan nan opinyon mwen - OSTEP. Materyèl sa a egzamine byen pwofondman travay sistèm operasyon UNIX, sètadi travay ak pwosesis, pwogramasyon divès kalite, memwa ak lòt konpozan ki sanble ak yon sistèm 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:

Lòt pati:

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

Ann gade nan abstraksyon ki pi fondamantal ke eksplwatasyon an bay itilizatè yo: pwosesis la. Definisyon an nan pwosesis la se byen senp - li se kouri pwogram. Pwogram nan tèt li se yon bagay san vi ki sitiye sou disk la - li se yon seri enstriksyon ak pètèt kèk done estatik k ap tann yo dwe lanse. Se eksplwatasyon an ki pran byte sa yo epi kouri yo, transfòme pwogram nan nan yon bagay itil.
Pi souvan, itilizatè yo vle kouri plis pase yon pwogram an menm tan, pou egzanp, ou ka kouri yon navigatè, jwèt, jwè medya, editè tèks, ak tankou sou laptop ou. An reyalite, yon sistèm tipik ka kouri plizyè dizèn oswa dè santèn de pwosesis ansanm. Reyalite sa a fè sistèm nan pi fasil yo sèvi ak, ou pa janm gen enkyete sou si CPU a gratis, ou jis kouri pwogram yo.

Sa a soulve pwoblèm nan: ki jan yo bay ilizyon an nan CPU anpil? Ki jan eksplwatasyon an ka kreye ilizyon nan yon kantite prèske enfini nan CPU, menm si ou gen sèlman yon CPU fizik?

OS la kreye ilizyon sa a atravè Virtualization CPU. Lè w kòmanse yon pwosesis, Lè sa a, sispann li, kòmanse yon lòt pwosesis, ak sou sa, OS la ka kenbe ilizyon an ke gen anpil CPU vityèl, lè an reyalite pral gen youn oswa plis processeur fizik. Teknik sa a rele divizyon resous CPU pa tan. Teknik sa a pèmèt itilizatè yo kouri anpil pwosesis konkouran jan yo vle. Pri a nan solisyon sa a se pèfòmans - depi si CPU a pataje pa plizyè pwosesis, chak pwosesis yo pral trete pi dousman.
Pou aplike Virtualization CPU, epi espesyalman pou fè li byen, OS la bezwen sipò tou de nivo ki ba ak wo nivo. Ba nivo sipò yo rele mekanism se metòd ki ba nivo oswa pwotokòl ki aplike pati ki nesesè nan fonksyonalite a. Yon egzanp fonksyonalite sa yo se chanje kontèks, ki bay eksplwatasyon an kapasite pou sispann yon pwogram epi kouri yon lòt pwogram sou processeur a. Se divizyon tan sa a aplike nan tout sistèm opere modèn.
Sou tèt mekanis sa yo gen kèk lojik ki te bati nan OS la, nan fòm "politik". Policy se yon sèten algorithm pou pran desizyon pou sistèm operasyon an. Règ sa yo, pou egzanp, deside ki pwogram yo ta dwe lanse (nan yon lis kòmandman) an premye. Se konsa, pou egzanp, pwoblèm sa a pral rezoud pa yon politik ki rele orè (politik orè) epi lè w ap chwazi yon solisyon, li pral gide pa done tankou: istwa demaraj (ki pwogram ki te lanse pi long nan dènye minit yo), ki chaj pwosesis sa a pote (ki kalite pwogram yo te lanse), mezi pèfòmans (si sistèm nan). se optimize pou entèraksyon entèaktif oswa pou debi) ak sou sa.

Abstraksyon: pwosesis

Abstraksyon nan yon pwogram kouri egzekite pa sistèm nan opere se sa nou rele pwosesis. Kòm mansyone pi bonè, yon pwosesis se tou senpleman yon pwogram kouri, nan nenpòt peryòd tan enstantane. Yon pwogram ak ki nou ka jwenn enfòmasyon rezime nan divès resous sistèm ke pwogram sa a aksè oswa afekte pandan ekzekisyon li.
Pou konprann eleman yo nan pwosesis la, ou bezwen konprann eta yo nan sistèm nan: sa pwogram nan ka li oswa chanje pandan operasyon li yo. A nenpòt ki lè, ou bezwen konprann ki eleman nan sistèm nan ki enpòtan pou ekzekisyon pwogram nan.
Youn nan eleman evidan nan eta a sistèm ke pwosesis la gen ladann se memwa. Enstriksyon yo sitiye nan memwa. Done yo ke pwogram nan li oswa ekri yo sitiye tou nan memwa. Kidonk, memwa ke yon pwosesis ka adrese (yo rele espas adrès) se yon pati nan pwosesis la.
Epitou yon pati nan eta a sistèm yo se rejis. Anpil enstriksyon yo vize chanje valè rejis yo oswa lekti valè yo, e konsa rejis yo tou vin yon pati enpòtan nan operasyon an nan pwosesis la.
Li ta dwe remake ke eta a machin tou fòme nan kèk rejis espesyal. Pa egzanp, IP - konsèy enstriksyon — yon konsèy sou enstriksyon ke pwogram nan ap egzekite kounye a. Genyen tou chemine konsèy ak ki gen rapò ak li konsèy ankadreman, ki itilize pou jere: paramèt fonksyon, varyab lokal ak adrès retounen.
Finalman, pwogram yo souvan jwenn aksè nan ROM (lekti sèlman memwa). Enfòmasyon sa a "I/O" (antre/sòti) ta dwe gen ladan yon lis dosye kounye a louvri pa pwosesis la.

Pwosesis API

Pou nou kapab amelyore konpreyansyon nou sou fason pwosesis la fonksyone, ann etidye egzanp apèl sistèm ki ta dwe enkli nan nenpòt koòdone sistèm opere. API sa yo disponib sou yon fòm oswa yon lòt sou nenpòt OS.

Kreye (kreyasyon): OS la dwe genyen kèk metòd ki pèmèt ou kreye nouvo pwosesis. Lè w antre yon kòmandman nan tèminal la oswa lanse yon aplikasyon pa doub-klike sou yon icon, yo voye yon apèl nan eksplwatasyon an pou kreye yon nouvo pwosesis ak Lè sa a, lanse pwogram nan espesifye.
Deletion: Depi gen yon koòdone pou kreye yon pwosesis, eksplwatasyon an ta dwe tou bay kapasite pou fòse retire yon pwosesis. Pifò pwogram yo pral natirèlman kòmanse epi fini poukont yo pandan y ap kouri. Sinon itilizatè a ta renmen kapab touye yo e konsa yon koòdone yo sispann pwosesis la ta itil.
Rete tann (ap tann): Pafwa li itil pou tann yon pwosesis fini, kidonk kèk interfaces yo bay ki bay kapasite pou tann.
Kontwòl divès (divès kalite kontwòl): Anplis de sa nan touye ak ap tann pou pwosesis la, gen tou lòt metòd kontwòl divès kalite. Pou egzanp, pifò sistèm operasyon yo bay kapasite pou friz yon pwosesis (sispann ekzekisyon li pou yon sèten peryòd) epi apre sa rekòmanse li (kontinye ekzekisyon)
Ki dènye nouvèl (eta): Gen plizyè koòdone pou jwenn kèk enfòmasyon sou estati yon pwosesis, tankou konbyen tan li te kouri oswa nan ki eta li ye kounye a.

Sistèm operasyon: Twa moso fasil. Pati 2: Abstraksyon: Pwosesis (tradiksyon)

Kreyasyon Pwosesis: Detay

Youn nan bagay ki enteresan yo se ki jan egzakteman pwogram yo transfòme nan pwosesis. Espesyalman ki jan eksplwatasyon an chwazi epi kouri pwogram nan. Ki jan egzakteman pwosesis la kreye.
Premye a tout, eksplwatasyon an dwe chaje kòd pwogram lan ak done estatik nan memwa (nan espas adrès pwosesis la). Anjeneral, pwogram yo sitiye sou yon disk oswa kondwi solid-state nan kèk fòma ègzekutabl. Kidonk, pwosesis la nan chaje pwogram ak done estatik nan memwa mande pou eksplwatasyon an kapab li bytes sa yo nan disk epi mete yo yon kote nan memwa.

Nan sistèm operasyon byen bonè, pwosesis chaje a te fè anvi, ki vle di ke tout kòd la te chaje nan memwa anvan pwogram lan te lanse. Sistèm opere modèn fè sa a parese, se sa ki chaje moso kòd oswa done sèlman lè pwogram nan mande pou yo pandan ekzekisyon li.

Yon fwa ke kòd la ak done estatik yo chaje nan memwa OS, gen kèk lòt bagay ki bezwen fè anvan pwosesis la ka kouri. Gen kèk kantite memwa dwe resevwa lajan pou chemine a. Pwogram yo itilize pile a pou varyab lokal yo, paramèt fonksyon, ak adrès retounen yo. OS la asiyen memwa sa a epi li bay pwosesis la. Pile a kapab tou resevwa lajan ak kèk agiman, espesyalman li ranpli paramèt yo nan fonksyon prensipal la (), pou egzanp ak yon etalaj de argc ak argv.

Sistèm operasyon an ka tou asiyen kèk memwa nan pil pwogram nan. Pwogram yo itilize pil la pou mande eksplisitman done ki afekte dinamik. Pwogram yo mande espas sa a lè yo rele fonksyon an malok () epi efase li klèman lè w rele fonksyon an gratis (). Pikèt la nesesè pou estrikti done tankou fèy lye, tab hash, pye bwa ak lòt moun. Okòmansman, yon ti kantite memwa atribye ba pil la, men apre yon sèten tan, pandan pwogram nan ap kouri, pil la ka mande plis memwa atravè API bibliyotèk rele malloc(). Sistèm operasyon an patisipe nan pwosesis pou repati plis memwa pou ede satisfè apèl sa yo.

Sistèm operasyon an pral fè tou travay inisyalizasyon, sitou sa ki gen rapò ak I/O. Pou egzanp, sou sistèm UNIX, chak pwosesis pa default gen 3 deskriptè dosye ouvè, pou opinyon estanda, pwodiksyon, ak erè. Manch sa yo pèmèt pwogram yo li opinyon ki soti nan tèminal la epi montre enfòmasyon sou ekran an.

Kidonk, lè w chaje kòd ak done estatik nan memwa, kreye ak inisyalize pile a, epi fè lòt travay ki gen rapò ak fè travay I/O, eksplwatasyon an prepare etap pou pwosesis la egzekite. Finalman, gen yon dènye travay ki rete: kouri pwogram nan nan pwen antre li yo, yo rele fonksyon prensipal la. Lè yo egzekite fonksyon prensipal la (), OS la transfere kontwòl CPU nan pwosesis la ki fèk kreye, konsa pwogram nan kòmanse egzekite.

Eta pwosesis

Kounye a ke nou gen kèk konpreyansyon sou sa yon pwosesis se ak ki jan li kreye, an n lis eta pwosesis yo li ka nan. Nan fòm ki pi senp li yo, yon pwosesis ka nan youn nan eta sa yo:
kouri. Lè w ap kouri, pwosesis la kouri sou processeur a. Sa vle di ke enstriksyon yo ap egzekite.
Pare. Nan eta a pare, pwosesis la pare pou kouri, men pou kèk rezon eksplwatasyon an pa egzekite li nan moman espesifye a.
Bloke. Nan eta a bloke, yon pwosesis fè kèk operasyon ki anpeche li pare pou egzekite jiskaske yon evènman rive. Yon egzanp komen se lè yon pwosesis inisye yon operasyon IO, li vin bloke pou kèk lòt pwosesis ka itilize processeur a.

Sistèm operasyon: Twa moso fasil. Pati 2: Abstraksyon: Pwosesis (tradiksyon)

Ou ka imajine eta sa yo sou fòm yon graf. Kòm nou ka wè nan foto a, eta pwosesis la ka chanje ant RUNNING ak READY nan diskresyon OS la. Lè eta a nan yon pwosesis chanje soti nan READY to RUNNING, sa vle di ke pwosesis la te pwograme. Nan direksyon opoze a - retire nan Layout la. Nan moman sa a lè yon pwosesis vin BLOKE, pou egzanp, mwen kòmanse yon operasyon IO, OS la ap kenbe li nan eta sa a jiskaske kèk evènman rive, pou egzanp fini IO. nan moman sa a tranzisyon an nan eta a READY epi pètèt imedyatman nan eta a KOURI si OS a deside sa.
Ann gade yon egzanp sou fason de pwosesis deplase nan eta sa yo. Pou kòmanse, ann imajine ke tou de pwosesis yo ap kouri, epi chak ap itilize sèlman CPU a. Nan ka sa a, eta yo pral sanble sa a.

Sistèm operasyon: Twa moso fasil. Pati 2: Abstraksyon: Pwosesis (tradiksyon)

Nan egzanp sa a, premye pwosesis la, apre kèk tan ap kouri, mande IO epi antre nan eta BLOKE, ki pèmèt yon lòt pwosesis kouri (FIG 1.4). OS la wè ke pwosesis 0 pa itilize CPU a epi li kòmanse pwosesis 1. Pandan pwosesis 1 ap kouri, IO fini ak estati pwosesis 0 a chanje nan READY. Finalman, pwosesis 1 a fini, epi apre li fini, pwosesis 0 kòmanse, egzekite, epi fini travay li.

Sistèm operasyon: Twa moso fasil. Pati 2: Abstraksyon: Pwosesis (tradiksyon)

Estrikti done

OS nan tèt li se yon pwogram, epi jis tankou nenpòt lòt pwogram, li gen kèk estrikti done kle ki kenbe tras nan divès kalite enfòmasyon ki enpòtan. Pou swiv eta a nan chak pwosesis, eksplwatasyon an pral sipòte kèk lis pwosesis pou tout pwosesis ki nan eta READY ak kèk enfòmasyon adisyonèl pou swiv pwosesis k ap kouri kounye a. Epitou, eksplwatasyon an ta dwe kontwole pwosesis bloke. Apre IO fini, OS la dwe reveye pwosesis ki nesesè a epi mete l nan yon eta pare pou kouri.

Pou egzanp, eksplwatasyon an dwe prezève eta a nan rejis processeur yo. Nan moman sa a pwosesis la sispann, eta a nan rejis yo estoke nan espas adrès la nan pwosesis la, ak nan moman sa a operasyon li yo ap kontinye, valè yo nan rejis yo retabli e konsa kontinye ekzekisyon an nan pwosesis sa a.

Anplis de eta pare, bloke, kouri, gen kèk lòt eta. Pafwa, nan moman kreyasyon an, yon pwosesis ka nan eta INIT la. Finalman, yon pwosesis ka mete nan eta FINAL la lè li te deja fini, men enfòmasyon li yo poko otorize. Sou sistèm UNIX yo rele eta sa a pwosesis zonbi. Eta sa a itil pou ka kote yon pwosesis paran vle konnen kòd retounen yon timoun, pou egzanp, anjeneral 0 siyal yon siksè ak 1 yon erè, men pwogramasyon yo ka bay kòd pwodiksyon adisyonèl pou siyal pwoblèm diferan. Lè pwosesis paran an fini, li fè yon apèl sistèm final, tankou wait(), pou tann pou pwosesis pitit la fini ak siyal OS la ke li ka efase nenpòt done ki asosye ak pwosesis la sispann.

Sistèm operasyon: Twa moso fasil. Pati 2: Abstraksyon: Pwosesis (tradiksyon)

Pwen kle nan konferans la:

pwosesis — abstraksyon prensipal la nan yon pwogram kouri nan eksplwatasyon an. Nan nenpòt ki lè, yon pwosesis ka dekri pa eta li: sa ki nan memwa nan espas adrès li yo, sa ki nan rejis processeur, ki gen ladan konsèy enstriksyon ak konsèy chemine, ak enfòmasyon IO, tankou dosye louvri yo li oswa ekri.
Pwosesis API konsiste de apèl ke pwogram yo ka fè nan pwosesis yo. Tipikman sa yo se kreye, efase, oswa lòt apèl.
● Pwosesis la nan youn nan anpil eta, tankou kouri, pare, bloke. Evènman divès tankou orè, eksepsyon nan orè, oswa datant ka chanje eta a nan yon pwosesis soti nan youn nan yon lòt.
Lis pwosesis gen enfòmasyon sou tout pwosesis nan sistèm nan. Chak antre nan li yo rele yon blòk kontwòl pwosesis, ki an reyalite se yon estrikti ki gen tout enfòmasyon ki nesesè sou yon pwosesis espesifik. 

Sous: www.habr.com

Add nouvo kòmantè