Awọn ọna ṣiṣe: Awọn nkan Rọrun mẹta. Apa 2: Abstraction: Ilana (itumọ)

Ifihan si Awọn ọna ṣiṣe

Hey Habr! Emi yoo fẹ lati mu si akiyesi rẹ lẹsẹsẹ awọn nkan-awọn itumọ ti awọn iwe ti o nifẹ ninu ero mi - OSTEP. Ohun elo yii n jiroro ni jinna iṣẹ ti awọn ọna ṣiṣe bi unix, eyun, ṣiṣẹ pẹlu awọn ilana, awọn oluṣeto oriṣiriṣi, iranti, ati awọn paati ti o jọra miiran ti o jẹ OS ode oni. O le wo atilẹba ti gbogbo awọn ohun elo nibi nibi. Jọwọ ṣakiyesi pe a ṣe itumọ naa lainiṣiṣẹ (ni ọfẹ), ṣugbọn Mo nireti pe MO ni itumọ gbogbogbo mọ.

Iṣẹ lab lori koko yii le ṣee ri nibi:

Awọn ẹya miiran:

O tun le ṣayẹwo ikanni mi ni telegram =)

Jẹ ki a wo abstraction pataki julọ ti OS pese fun awọn olumulo: ilana naa. Awọn definition ti awọn ilana jẹ ohun rọrun - o jẹ nṣiṣẹ eto. Eto naa funrararẹ jẹ ohun ti ko ni igbesi aye ti o wa lori disiki - o jẹ eto awọn ilana ati o ṣee ṣe diẹ ninu awọn data aimi ti nduro lati ṣe ifilọlẹ. O jẹ OS ti o gba awọn baiti wọnyẹn ati ṣiṣe wọn, yi eto naa pada si nkan ti o wulo.
Ni ọpọlọpọ igba, awọn olumulo fẹ lati ṣiṣe eto diẹ sii ju ọkan lọ ni akoko kanna, fun apẹẹrẹ, o le ṣiṣe ẹrọ aṣawakiri kan, ere, ẹrọ orin media, olootu ọrọ, ati bii lori kọǹpútà alágbèéká rẹ. Ni otitọ, eto aṣoju le ṣiṣe awọn mewa tabi awọn ọgọọgọrun ti awọn ilana ni nigbakannaa. Otitọ yii jẹ ki eto rọrun lati lo, iwọ ko ni lati ṣe aniyan boya Sipiyu jẹ ọfẹ, o kan ṣiṣe awọn eto.

Eleyi ji isoro: bi o si pese awọn iruju ti ọpọlọpọ awọn CPUs? Bawo ni OS ṣe le ṣẹda iruju ti nọmba ailopin ti awọn CPUs, paapaa ti o ba ni Sipiyu ti ara kan nikan?

OS ṣẹda iruju yii nipasẹ agbara agbara Sipiyu. Nipa bẹrẹ ilana kan, lẹhinna da duro, bẹrẹ ilana miiran, ati bẹbẹ lọ, OS le ṣetọju iruju pe ọpọlọpọ awọn CPUs foju wa, nigbati ni otitọ yoo jẹ ọkan tabi diẹ sii awọn ilana ti ara. Ilana yii ni a npe ni pipin ti Sipiyu oro nipa akoko. Ilana yii ngbanilaaye awọn olumulo lati ṣiṣẹ bi ọpọlọpọ awọn ilana nigbakanna bi wọn ṣe fẹ. Iye idiyele ojutu yii jẹ iṣẹ - nitori ti Sipiyu ba pin nipasẹ awọn ilana pupọ, ilana kọọkan yoo ni ilọsiwaju diẹ sii laiyara.
Lati ṣe adaṣe agbara Sipiyu, ati ni pataki lati ṣe daradara, OS nilo mejeeji ipele kekere ati atilẹyin ipele giga. Atilẹyin ipele kekere ni a pe awọn ilana jẹ awọn ọna ipele-kekere tabi awọn ilana ti o ṣe apakan ti a beere fun iṣẹ ṣiṣe. Apeere ti iru iṣẹ bẹ jẹ iyipada ipo, eyiti o fun OS ni agbara lati da eto kan duro ati ṣiṣe eto miiran lori ero isise naa. Pipin akoko yii ni imuse ni gbogbo awọn ọna ṣiṣe igbalode.
Lori oke awọn ilana wọnyi ni diẹ ninu awọn ọgbọn ti a ṣe sinu OS, ni irisi “awọn ilana”. imulo jẹ algorithm ṣiṣe ipinnu kan fun ẹrọ ṣiṣe. Iru awọn eto imulo, fun apẹẹrẹ, pinnu iru eto yẹ ki o ṣe ifilọlẹ (lati atokọ ti awọn aṣẹ) ni akọkọ. Nitorinaa, fun apẹẹrẹ, iṣoro yii yoo yanju nipasẹ eto imulo ti a pe oluṣeto (ilana eto eto) ati nigbati o ba yan ojutu kan, yoo jẹ itọsọna nipasẹ iru data bii: itan ibẹrẹ (eyi ti a ṣe ifilọlẹ eto to gun julọ ni awọn iṣẹju to kẹhin), kini fifuye ilana yii (iru awọn eto ti a ṣe ifilọlẹ), awọn metiriki iṣẹ (boya eto naa jẹ iṣapeye fun ibaraenisepo ibaraenisepo tabi fun iṣelọpọ) ati bẹbẹ lọ.

Abstraction: ilana

Awọn abstraction ti a nṣiṣẹ eto ṣiṣe nipasẹ awọn ẹrọ eto ni ohun ti a npe ni Ọna asopọ. Gẹgẹbi a ti sọ tẹlẹ, ilana kan jẹ eto ṣiṣe lasan, ni eyikeyi akoko lẹsẹkẹsẹ. Eto kan pẹlu eyiti a le gba alaye akojọpọ lati oriṣiriṣi awọn orisun eto ti eto yii wọle tabi ni ipa lakoko ipaniyan rẹ.
Lati loye awọn paati ti ilana naa, o nilo lati ni oye awọn ipinlẹ ti eto naa: kini eto naa le ka tabi yipada lakoko iṣẹ rẹ. Ni akoko eyikeyi, o nilo lati ni oye iru awọn eroja ti eto naa ṣe pataki fun ipaniyan eto naa.
Ọkan ninu awọn eroja ti o han gbangba ti eto naa sọ pe ilana naa pẹlu ni iranti. Awọn ilana wa ni iranti. Awọn data ti eto naa ka tabi kọ tun wa ni iranti. Bayi, iranti ti ilana kan le koju (ti a npe ni aaye adirẹsi) jẹ apakan ti ilana naa.
Bakannaa apakan ti ipinle eto jẹ awọn iforukọsilẹ. Ọpọlọpọ awọn ilana ni ifọkansi lati yi iye awọn iforukọsilẹ pada tabi kika iye wọn, ati nitorinaa awọn iforukọsilẹ tun di apakan pataki ti iṣẹ ti ilana naa.
O yẹ ki o ṣe akiyesi pe ipo ẹrọ naa tun ṣẹda lati diẹ ninu awọn iforukọsilẹ pataki. Fun apere, IP - itọnisọna ijuboluwole - itọka si itọnisọna ti eto naa n ṣiṣẹ lọwọlọwọ. O tun wa akopọ ijuboluwole ati ki o jẹmọ si atọka fireemu, eyiti a lo lati ṣakoso: awọn paramita iṣẹ, awọn oniyipada agbegbe ati awọn adirẹsi pada.
Nikẹhin, awọn eto nigbagbogbo wọle si ROM (iranti kika-nikan). Alaye “I/O” (titẹwọle/jade) yẹ ki o pẹlu atokọ awọn faili ti o ṣii lọwọlọwọ nipasẹ ilana naa.

API ilana

Lati le ni ilọsiwaju oye wa ti bii ilana naa ṣe n ṣiṣẹ, jẹ ki a ṣe iwadi awọn apẹẹrẹ ti awọn ipe eto ti o yẹ ki o wa pẹlu wiwo ẹrọ iṣẹ eyikeyi. Awọn API wọnyi wa ni fọọmu kan tabi omiiran lori OS eyikeyi.

ṣẹda (ẹda): OS gbọdọ ni diẹ ninu awọn ọna ti o fun laaye lati ṣẹda titun lakọkọ. Nigbati o ba tẹ aṣẹ sii sinu ebute tabi ṣe ifilọlẹ ohun elo kan nipa titẹ lẹẹmeji lori aami kan, ipe kan yoo ranṣẹ si OS lati ṣẹda ilana tuntun ati lẹhinna ṣe ifilọlẹ eto ti a sọ.
Paarẹ: Niwọn igba ti o wa ni wiwo fun ṣiṣẹda ilana kan, OS yẹ ki o tun pese agbara lati fi ipa mu yiyọ ilana kan kuro. Pupọ julọ awọn eto yoo bẹrẹ nipa ti ara ati fopin si ara wọn bi wọn ṣe nṣiṣẹ. Bibẹẹkọ olumulo yoo fẹ lati ni anfani lati pa wọn ati nitorinaa wiwo lati da ilana naa duro yoo wulo.
Duro (nduro): Nigba miiran o wulo lati duro fun ilana kan lati pari, nitorinaa diẹ ninu awọn atọkun ti pese ti o pese agbara lati duro.
Iṣakoso Oriṣiriṣi (Iṣakoso oriṣiriṣi): Ni afikun si pipa ati nduro fun ilana naa, awọn ọna iṣakoso oriṣiriṣi miiran tun wa. Fun apẹẹrẹ, pupọ julọ awọn ọna ṣiṣe n pese agbara lati di ilana kan duro (da ipaniyan rẹ duro fun akoko kan) ati lẹhinna tun bẹrẹ (tẹsiwaju ipaniyan)
Ipo (ipinle): Awọn atọkun oriṣiriṣi wa fun gbigba alaye diẹ nipa ipo ilana kan, bii bii igba ti o ti n ṣiṣẹ tabi iru ipo ti o wa lọwọlọwọ.

Awọn ọna ṣiṣe: Awọn nkan Rọrun mẹta. Apa 2: Abstraction: Ilana (itumọ)

Ṣiṣẹda ilana: Awọn alaye

Ọkan ninu awọn nkan ti o nifẹ si ni bii awọn eto gangan ṣe yipada si awọn ilana. Paapa bi OS ṣe gbe soke ati ṣiṣe eto naa. Bawo ni pato ilana ti wa ni da.
Ni akọkọ, OS gbọdọ gbe koodu eto ati data aimi sinu iranti (sinu aaye adirẹsi ilana). Awọn eto maa n wa lori disiki tabi wara-ipinle ti o lagbara ni diẹ ninu ọna kika ṣiṣe. Nitorinaa, ilana ikojọpọ eto ati data aimi sinu iranti nilo OS lati ni anfani lati ka awọn baiti wọnyẹn lati disiki ati gbe wọn si ibikan ni iranti.

Ni awọn ọna ṣiṣe ni kutukutu, ilana ikojọpọ ti ṣe ni itara, eyiti o tumọ si pe gbogbo koodu ti kojọpọ sinu iranti ṣaaju ifilọlẹ eto naa. Awọn ọna ṣiṣe ti ode oni ṣe eyi ni ọlẹ, iyẹn ni, ikojọpọ awọn ege koodu tabi data nikan nigbati eto naa nilo wọn lakoko ipaniyan rẹ.

Ni kete ti koodu ati data aimi ti wa ni ikojọpọ sinu iranti OS, awọn nkan diẹ diẹ wa ti o nilo lati ṣee ṣaaju ilana naa le ṣiṣẹ. Diẹ ninu awọn iye ti iranti gbọdọ wa ni soto fun akopọ. Awọn eto lo akopọ fun awọn oniyipada agbegbe, awọn paramita iṣẹ, ati awọn adirẹsi pada. OS naa pin iranti yii o si fun ni ilana naa. A le pin akopọ pẹlu diẹ ninu awọn ariyanjiyan, ni pataki o kun awọn aye ti iṣẹ akọkọ (), fun apẹẹrẹ pẹlu titobi ti argc ati argv.

Ẹrọ iṣẹ le tun pin iranti diẹ si okiti eto. Okiti naa jẹ lilo nipasẹ awọn eto lati beere alaye ti o pin ni agbara ni gbangba. Awọn eto beere aaye yii nipa pipe iṣẹ naa malloc () ati pe o sọ di mimọ nipa pipe iṣẹ naa ofe(). Okiti naa nilo fun awọn ẹya data gẹgẹbi awọn iwe ti a ti sopọ, awọn tabili hash, awọn igi ati awọn omiiran. Ni akọkọ, iye kekere ti iranti ni a pin si okiti, ṣugbọn lẹhin akoko, bi eto naa ti n ṣiṣẹ, okiti le beere iranti diẹ sii nipasẹ ile-ikawe API ipe malloc (). Awọn ẹrọ nṣiṣẹ lowo ninu ilana ti ipinfunni iranti diẹ sii lati ṣe iranlọwọ ni itẹlọrun awọn ipe wọnyi.

Eto ẹrọ naa yoo tun ṣe awọn iṣẹ ṣiṣe ipilẹṣẹ, paapaa awọn ti o ni ibatan si I/O. Fun apẹẹrẹ, lori awọn eto UNIX, ilana kọọkan nipasẹ aiyipada ni awọn apejuwe faili ṣiṣi 3, fun titẹ sii boṣewa, iṣelọpọ, ati aṣiṣe. Awọn imudani wọnyi gba awọn eto laaye lati ka igbewọle lati ebute bi daradara bi alaye ifihan loju iboju.

Nitorinaa, nipa ikojọpọ koodu ati data aimi sinu iranti, ṣiṣẹda ati ipilẹṣẹ akopọ, ati ṣiṣe awọn iṣẹ miiran ti o ni ibatan si ṣiṣe awọn iṣẹ-ṣiṣe I / O, OS ngbaradi ipele fun ilana lati ṣiṣẹ. Nikẹhin, iṣẹ-ṣiṣe ikẹhin kan wa: ṣiṣe eto naa nipasẹ aaye titẹsi rẹ, ti a pe ni iṣẹ akọkọ (). Nipa ṣiṣe iṣẹ akọkọ (), OS n gbe iṣakoso Sipiyu lọ si ilana tuntun ti a ṣẹda, nitorinaa eto naa bẹrẹ lati ṣiṣẹ.

Ipo ilana

Ni bayi pe a ni oye diẹ ti kini ilana kan jẹ ati bii o ṣe ṣẹda, jẹ ki a ṣe atokọ awọn ipinlẹ ilana ti o le wa ninu. Ni ọna ti o rọrun julọ, ilana kan le wa ni ọkan ninu awọn ipinlẹ wọnyi:
nṣiṣẹ. Nigbati o ba n ṣiṣẹ, ilana naa nṣiṣẹ lori ero isise naa. Eyi tumọ si pe awọn ilana ti wa ni ṣiṣe.
setan. Ni ipo ti o ti ṣetan, ilana naa ti ṣetan lati ṣiṣẹ, ṣugbọn fun idi kan OS ko ṣiṣẹ ni akoko ti a sọ.
Ti dina mọ. Ni ipo dina, ilana kan ṣe diẹ ninu awọn iṣẹ ṣiṣe ti o ṣe idiwọ lati mura lati ṣiṣẹ titi iṣẹlẹ kan yoo fi waye. Apeere ti o wọpọ ni nigbati ilana kan ba bẹrẹ iṣẹ IO kan, o di idinamọ ki ilana miiran le lo ero isise naa.

Awọn ọna ṣiṣe: Awọn nkan Rọrun mẹta. Apa 2: Abstraction: Ilana (itumọ)

O le fojuinu awọn ipinlẹ wọnyi ni irisi iwọn. Gẹgẹbi a ti le rii ninu aworan, ipo ilana le yipada laarin RUNNING ati READY ni lakaye ti OS. Nigbati ipo ilana ba yipada lati READY si RUNNING, o tumọ si pe a ti ṣeto ilana naa. Ni idakeji - kuro lati awọn ifilelẹ. Ni akoko ti ilana kan ba di dina, fun apẹẹrẹ, Mo bẹrẹ iṣẹ IO kan, OS yoo tọju rẹ ni ipo yii titi iṣẹlẹ kan yoo fi waye, fun apẹẹrẹ ipari IO. ni akoko yii iyipada si ipo READY ati o ṣee ṣe lẹsẹkẹsẹ si ipo RUNNING ti OS ba pinnu bẹ.
Jẹ ki a wo apẹẹrẹ ti bii awọn ilana meji ṣe lọ nipasẹ awọn ipinlẹ wọnyi. Lati bẹrẹ pẹlu, jẹ ki a fojuinu pe awọn ilana mejeeji nṣiṣẹ, ati pe ọkọọkan nlo Sipiyu nikan. Ni idi eyi, awọn ipinlẹ wọn yoo dabi eyi.

Awọn ọna ṣiṣe: Awọn nkan Rọrun mẹta. Apa 2: Abstraction: Ilana (itumọ)

Ni apẹẹrẹ atẹle, ilana akọkọ, lẹhin igba diẹ nṣiṣẹ, beere IO ati ki o wọ inu ipo BLOCKED, gbigba ilana miiran lati ṣiṣẹ (FIG 1.4). OS naa rii pe ilana 0 kii ṣe lilo Sipiyu ati bẹrẹ ilana 1. Lakoko ti ilana 1 nṣiṣẹ, IO ti pari ati ipo ilana 0 yipada si READY. Ni ipari, ilana 1 ti pari, ati lẹhin ipari, ilana 0 bẹrẹ, ṣiṣẹ, ati pari iṣẹ rẹ.

Awọn ọna ṣiṣe: Awọn nkan Rọrun mẹta. Apa 2: Abstraction: Ilana (itumọ)

Ilana data

OS funrararẹ jẹ eto kan, ati gẹgẹ bi eyikeyi eto miiran, o ni diẹ ninu awọn ẹya data bọtini ti o tọju abala awọn oriṣiriṣi awọn ege alaye ti o yẹ. Lati tọpinpin ipo ilana kọọkan, OS yoo ṣe atilẹyin diẹ ninu ilana akojọ fun gbogbo awọn ilana ni ipinle READY ati diẹ ninu awọn afikun alaye lati tọpa awọn ilana ti o nṣiṣẹ lọwọlọwọ. Pẹlupẹlu, OS yẹ ki o ṣe atẹle awọn ilana ti dina. Lẹhin ti IO ti pari, OS gbọdọ ji ilana ti o nilo ki o fi sii ni ipo ti o ṣetan lati ṣiṣẹ.

Fun apẹẹrẹ, OS gbọdọ ṣetọju ipo ti awọn iforukọsilẹ ero isise. Ni akoko ti ilana naa duro, ipo awọn iforukọsilẹ ti wa ni ipamọ ni aaye adirẹsi ti ilana naa, ati ni akoko ti iṣẹ rẹ tẹsiwaju, awọn iye ti awọn iforukọsilẹ ti tun pada ati nitorinaa tẹsiwaju ipaniyan ti ilana yii.

Ni afikun si setan, dina, nṣiṣẹ ipinle, nibẹ ni o wa diẹ ninu awọn miiran ipinle. Nigba miiran, ni akoko ẹda, ilana kan le wa ni ipo INIT. Lakotan, ilana kan le gbe si ipo FINAL nigbati o ba ti pari tẹlẹ, ṣugbọn alaye rẹ ko tii nu. Lori awọn eto UNIX ni a npe ni ipinle yii Zombie ilana. Ipinle yii jẹ iwulo fun awọn ọran nibiti ilana obi kan fẹ lati mọ koodu ipadabọ ti ọmọde, fun apẹẹrẹ, nigbagbogbo 0 ṣe afihan aṣeyọri ati 1 aṣiṣe, ṣugbọn awọn olutẹpa le fun awọn koodu abajade afikun fun ifihan awọn iṣoro oriṣiriṣi. Nigbati ilana obi ba pari, o ṣe ipe eto ipari, gẹgẹbi idaduro (), lati duro fun ilana ọmọ lati fopin si ati ifihan si OS pe o le nu eyikeyi data ti o ni nkan ṣe pẹlu ilana ti o pari.

Awọn ọna ṣiṣe: Awọn nkan Rọrun mẹta. Apa 2: Abstraction: Ilana (itumọ)

Awọn koko pataki ti ikẹkọ:

Ilana - abstraction akọkọ ti eto nṣiṣẹ ni OS. Ni eyikeyi akoko, ilana le ṣe apejuwe nipasẹ ipo rẹ: awọn akoonu ti iranti ni aaye adirẹsi rẹ, awọn akoonu ti awọn iforukọsilẹ ero isise, pẹlu itọka itọnisọna ati itọka akopọ, ati alaye IO, gẹgẹbi awọn faili ṣiṣi ti n ka tabi kọ.
API ilana ni awọn ipe ti awọn eto le ṣe si awọn ilana. Ni deede iwọnyi jẹ ṣẹda, paarẹ, tabi awọn ipe miiran.
● Ilana naa wa ni ọkan ninu ọpọlọpọ awọn ipinle, pẹlu nṣiṣẹ, setan, dina. Awọn iṣẹlẹ oriṣiriṣi gẹgẹbi ṣiṣe eto, awọn imukuro lati ṣiṣe eto, tabi awọn idaduro le yi ipo ilana kan pada lati ọkan si ekeji.
Akojọ ilana ni alaye nipa gbogbo awọn ilana ninu eto. Titẹ sii kọọkan ninu rẹ ni a pe ni bulọọki iṣakoso ilana, eyiti o jẹ pe o jẹ eto ti o ni gbogbo alaye pataki nipa ilana kan pato. 

orisun: www.habr.com

Fi ọrọìwòye kun