Córais Oibriúcháin: Trí Phíosa Éasca. Cuid 2: Astarraingt: Próiseas (aistriúchán)

Réamhrá ar Chórais Oibriúcháin

Hey Habr! Ba mhaith liom d’aird a thabhairt ar shraith alt—aistriúcháin ar litríocht shuimiúil amháin i mo thuairim – OSTEP. Pléann an t-ábhar seo go domhain obair na gcóras oibriúcháin atá cosúil le unix, eadhon, obair le próisis, sceidealóirí éagsúla, cuimhne, agus comhpháirteanna eile dá samhail a chomhdhéanann OS nua-aimseartha. Is féidir leat bunchóip na n-ábhar go léir a fheiceáil anseo anseo. Tabhair faoi deara go ndearnadh an t-aistriúchán go neamhghairmiúil (go leor faoi shaoirse), ach tá súil agam gur choinnigh mé an bhrí ghinearálta.

Is féidir obair saotharlainne ar an ábhar seo a fháil anseo:

Páirteanna eile:

Is féidir leat mo chainéal a sheiceáil freisin ag teileagram =)

Breathnaímid ar an astarraingt is bunúsaí a sholáthraíonn an OS d'úsáideoirí: an próiseas. Is é an sainmhíniú ar an bpróiseas simplí go leor - tá sé clár reatha. Is rud gan saol é an clár féin atá suite ar an diosca - is sraith treoracha é agus b'fhéidir roinnt sonraí statacha ag fanacht le seoladh. Is é an OS a thógann na bearta sin agus a ritheann iad, ag athrú an chláir go rud úsáideach.
Is minic a bhíonn úsáideoirí ag iarraidh níos mó ná clár amháin a reáchtáil ag an am céanna, mar shampla, is féidir leat brabhsálaí, cluiche, seinnteoir meáin, eagarthóir téacs, agus a leithéidí a reáchtáil ar do ríomhaire glúine. Go deimhin, is féidir le gnáthchóras na deich nó na céadta próiseas a rith ag an am céanna. Déanann an bhfíric seo an córas níos éasca le húsáid, ní gá duit a bheith buartha faoi cibé an bhfuil an LAP saor in aisce, tá tú díreach a reáchtáil cláir.

Ardaíonn sé seo an fhadhb: conas a chur ar fáil ar an illusion go leor LAP? Conas is féidir leis an OS an illusion de líon beagnach gan teorainn de LAP a chruthú, fiú mura bhfuil agat ach LAP fisiciúil amháin?

Cruthaíonn an OS an illusion seo trí fhíorúlú LAP. Trí phróiseas amháin a thosú, ansin é a stopadh, próiseas eile a thosú, agus mar sin de, is féidir leis an OS a choinneáil ar an illusion go bhfuil go leor CPUanna fíorúla ann, nuair a bheidh próiseálaí fisiceacha amháin nó níos mó ann i ndáiríre. Tugtar an teicníc seo roinnt acmhainní LAP de réir ama. Ligeann an teicníocht seo d'úsáideoirí an oiread próisis chomhthráthacha agus is mian leo a rith. Is é costas an réitigh seo ná feidhmíocht - ós rud é má roinntear an LAP ag próisis éagsúla, déanfar gach próiseas a phróiseáil níos moille.
Chun fíorúlú LAP a chur i bhfeidhm, agus go háirithe chun é a dhéanamh go maith, tá tacaíocht ísealleibhéil agus ardleibhéil ag teastáil ón OS. Tugtar tacaíocht leibhéal íseal meicníochtaí is modhanna nó prótacail ísealleibhéil iad a chuireann an chuid riachtanach den fheidhmiúlacht i bhfeidhm. Sampla d’fheidhmiúlacht den sórt sin is ea athrú comhthéacs, rud a thugann an cumas don OS clár amháin a stopadh agus clár eile a rith ar an bpróiseálaí. Cuirtear an roinnt ama seo i bhfeidhm i ngach córas oibriúcháin nua-aimseartha.
Anuas ar na meicníochtaí seo tá roinnt loighic ionsuite san OS, i bhfoirm “beartais”. Polasaí is algartam cinnteoireachta áirithe é don chóras oibriúcháin. Socraíonn beartais dá leithéid, mar shampla, cén clár ar cheart a sheoladh (ó liosta orduithe) ar dtús. Mar sin, mar shampla, déanfar an fhadhb seo a réiteach le polasaí ar a dtugtar sceidealóir (polasaí sceidealaithe) agus nuair a roghnaítear réiteach, beidh sé á threorú ag sonraí mar: stair tosaithe (cén clár a seoladh an ceann is faide sna nóiméid dheireanacha), cén t-ualach a iompraíonn an próiseas seo (cén cineál clár a seoladh), méadracht feidhmíochta (cibé an córas é atá optamaithe le haghaidh idirghníomhú idirghníomhach nó le haghaidh tréchur ) agus mar sin de.

Astarraingt: próiseas

Is é astarraingt clár reatha arna chur i gcrích ag an gcóras oibriúcháin an rud a dtugaimid phróiseas. Mar a luadh níos luaithe, níl sa phróiseas ach clár reatha, ag aon tréimhse ama mheandarach. Clár lena bhféadfaimid faisnéis achomair a fháil ó acmhainní córais éagsúla a bhfuil rochtain ag an gclár seo orthu nó a mbíonn tionchar acu le linn a fhorghníomhaithe.
Chun comhpháirteanna an phróisis a thuiscint, ní mór duit staid an chórais a thuiscint: cad is féidir leis an gclár a léamh nó a athrú le linn a oibriú. Ag aon am ar leith, ní mór duit a thuiscint cad iad na gnéithe den chóras atá tábhachtach chun an clár a chur i gcrích.
Ceann de na gnéithe soiléire den chóras a deir go bhfuil an próiseas san áireamh cuimhne. Tá treoracha suite sa chuimhne. Tá na sonraí a léann nó a scríobhann an clár suite sa chuimhne freisin. Mar sin, is cuid den phróiseas í an chuimhne ar féidir le próiseas aghaidh a thabhairt uirthi (ar a dtugtar spás seoltaí).
Tá cláir mar chuid de stát an chórais freisin. Tá go leor treoracha dírithe ar luach na gclár a athrú nó a luach a léamh, agus mar sin bíonn cláir ina gcuid thábhachtach d'fheidhmiú an phróisis.
Ba chóir a thabhairt faoi deara go bhfuil an stát meaisín déanta freisin ó roinnt cláir speisialta. Mar shampla, IP - pointeoir treorach — pointeoir don treoir atá á chur i gcrích ag an gclár faoi láthair. Tá freisin pointeoir cruachta agus a bhaineann leis pointeoir fráma, a úsáidtear chun: paraiméadair feidhme, athróga áitiúla agus seoltaí tuairisceáin a bhainistiú.
Ar deireadh, is minic a fhaigheann cláir rochtain ar ROM (cuimhne inléite amháin). Ba cheart go n-áireofaí san fhaisnéis “I/O” (ionchur/aschur) liosta de na comhaid atá oscailte faoin bpróiseas faoi láthair.

Próiseáil API

D'fhonn feabhas a chur ar ár dtuiscint ar an gcaoi a n-oibríonn an próiseas, déanaimis staidéar ar shamplaí de ghlaonna córais ba cheart a áireamh in aon chomhéadan córais oibriúcháin. Tá na APIanna seo ar fáil i bhfoirm amháin nó i bhfoirm eile ar aon OS.

Cruthaigh (cruthú): Ní mór modh éigin a chur san áireamh san OS a ligeann duit próisis nua a chruthú. Nuair a chuireann tú ordú isteach sa chríochfort nó nuair a sheolann tú feidhmchlár trí chliceáil faoi dhó ar dheilbhín, seoltar glao chuig an OS chun próiseas nua a chruthú agus ansin an clár sonraithe a sheoladh.
Scrios: Ós rud é go bhfuil comhéadan ann le haghaidh próiseas a chruthú, ba cheart don OS an cumas a chur ar fáil freisin chun iallach a chur ar phróiseas a bhaint. Tosóidh agus críochnóidh formhór na gclár ina n-aonar de réir mar a ritheann siad. Seachas sin ba mhaith leis an úsáideoir a bheith in ann iad a mharú agus dá bhrí sin bheadh ​​comhéadan chun stop a chur leis an bpróiseas a bheith úsáideach.
Fan (ag fanacht): Uaireanta tá sé úsáideach fanacht le próiseas a chur i gcrích, mar sin soláthraítear roinnt comhéadain a sholáthraíonn an cumas fanacht.
Rialú Ilghnéitheach (rialú éagsúla): Chomh maith le marú agus ag fanacht leis an bpróiseas, tá modhanna rialaithe éagsúla eile ann freisin. Mar shampla, soláthraíonn an chuid is mó de na córais oibriúcháin an cumas próiseas a reo (stop a chur i gcrích ar feadh tréimhse áirithe) agus ansin é a atosú (leanúint leis an bhforghníomhú)
stádas (luaigh): Tá comhéadain éagsúla ann chun roinnt faisnéise a fháil faoi stádas próisis, mar shampla cé chomh fada agus atá sé ar siúl nó cén staid ina bhfuil sé faoi láthair.

Córais Oibriúcháin: Trí Phíosa Éasca. Cuid 2: Astarraingt: Próiseas (aistriúchán)

Cruthú Próisis: Sonraí

Ceann de na rudaí suimiúla ná conas go díreach a dhéantar cláir a chlaochlú ina bpróisis. Go háirithe conas a phiocann an OS suas agus a ritheann an clár. Conas go díreach a chruthaítear an próiseas.
Ar an gcéad dul síos, ní mór don OS cód an chláir agus na sonraí statacha a luchtú isteach sa chuimhne (i spás seoladh an phróisis). Is iondúil go mbíonn cláir suite ar dhiosca nó ar thiomáint soladstaide i bhformáid inrite éigin. Mar sin, éilíonn an próiseas a bhaineann le sonraí cláir agus statacha a luchtú isteach sa chuimhne go mbeidh an OS in ann na bearta sin a léamh ón diosca agus iad a chur in áit éigin sa chuimhne.

I gcórais oibriúcháin luatha, rinneadh an próiseas luchtaithe go fonnmhar, rud a chiallaíonn go ndearnadh an cód iomlán a luchtú i gcuimhne sular seoladh an clár. Déanann córais oibriúcháin nua-aimseartha é seo go leisciúil, is é sin, píosaí cód nó sonraí a luchtú ach amháin nuair a éilíonn an clár iad le linn a fhorghníomhaithe.

Nuair a bheidh an cód agus na sonraí statacha luchtaithe isteach i gcuimhne OS, tá roinnt rudaí eile nach mór a dhéanamh sular féidir an próiseas a reáchtáil. Ní mór méid áirithe cuimhne a leithdháileadh don chruach. Úsáideann cláir an stack le haghaidh athróga áitiúla, paraiméadair feidhme, agus seoltaí fillte. Leithdháileann an OS an chuimhne seo agus tugann sé don phróiseas é. Is féidir an chruach a leithdháileadh freisin le roinnt argóintí, go sonrach líonann sé paraiméadair na príomhfheidhme, mar shampla le sraith argc agus argv.

Féadfaidh an córas oibriúcháin roinnt cuimhne a leithdháileadh ar an gcarn cláir freisin. Úsáideann cláir an carn chun sonraí a leithdháileadh go dinimiciúil a iarraidh go sainráite. Iarrann cláir an spás seo trí ghlaoch a chur ar an bhfeidhm malloc () agus glanann sé go sainráite é trí ghlaoch a chur ar an bhfeidhm saor(). Tá gá leis an gcarn le haghaidh struchtúir sonraí ar nós bileoga nasctha, táblaí hash, crainn agus eile. Ar dtús, leithdháiltear méid beag cuimhne ar an gcarn, ach le himeacht ama, de réir mar a ritheann an clár, is féidir leis an gcarn níos mó cuimhne a iarraidh trí API na leabharlainne call malloc(). Tá baint ag an gcóras oibriúcháin leis an bpróiseas chun níos mó cuimhne a leithdháileadh chun cabhrú leis na glaonna seo a shásamh.

Déanfaidh an córas oibriúcháin tascanna tosaithe freisin, go háirithe iad siúd a bhaineann le I/O. Mar shampla, ar chórais UNIX, tá 3 thuairisceoir comhaid oscailte ag gach próiseas de réir réamhshocraithe, le haghaidh ionchur caighdeánach, aschur agus earráid. Ligeann na lámha seo do chláir ionchur a léamh ón teirminéal chomh maith le faisnéis a thaispeáint ar an scáileán.

Mar sin, trí chód agus sonraí statacha a lódáil sa chuimhne, an chairn a chruthú agus a thúsú, agus obair eile a dhéanamh a bhaineann le tascanna I/O a chomhlíonadh, ullmhaíonn an OS an chéim chun an próiseas a chur i gcrích. Ar deireadh, tá tasc deireanach amháin fágtha: an clár a rith trína phointe iontrála, ar a dtugtar an phríomhfheidhm (). Tríd an bpríomhfheidhm () a fhorghníomhú, aistríonn an OS rialú LAP chuig an bpróiseas nuachruthaithe, agus mar sin tosaíonn an clár a fhorghníomhú.

Staid próisis

Anois go bhfuil tuiscint éigin againn ar cad is próiseas ann agus conas a chruthaítear é, déanaimis liosta de na stáit próisis inar féidir leis a bheith ann. San fhoirm is simplí, is féidir le próiseas a bheith i gceann de na stáit seo:
Rith. Nuair a bhíonn sé ag rith, ritheann an próiseas ar an bpróiseálaí. Ciallaíonn sé seo go bhfuil treoracha á bhforghníomhú.
Réidh. Sa stát réidh, tá an próiseas réidh le rith, ach ar chúis éigin ní dhéanann an OS é a fhorghníomhú ag an am sonraithe.
Bactha. Sa staid bhlocáilte, déanann próiseas roinnt oibríochtaí a chuireann cosc ​​​​air a bheith réidh le forghníomhú go dtí go dtarlaíonn teagmhas éigin. Sampla coitianta amháin is ea nuair a chuireann próiseas tús le hoibríocht IO, cuirtear bac air ionas gur féidir le próiseas éigin eile an próiseálaí a úsáid.

Córais Oibriúcháin: Trí Phíosa Éasca. Cuid 2: Astarraingt: Próiseas (aistriúchán)

Is féidir na stáit seo a shamhlú i bhfoirm graif. Mar is féidir linn a fheiceáil sa phictiúr, is féidir staid an phróisis a athrú idir RUNNING agus READY de rogha an OS. Nuair a athraíonn staid próisis ó READY go RUNNING, ciallaíonn sé go bhfuil an próiseas sceidealta. Sa treo eile - a bhaint as an leagan amach. I láthair na huaire nuair a thagann BLOCKED próiseas, mar shampla, cuirim tús le hoibríocht IO, coimeádfaidh an OS sa stát seo é go dtí go dtarlaíonn imeacht éigin, mar shampla críochnú IO. ag an nóiméad seo an t-aistriú go dtí an stát READY agus b'fhéidir láithreach chuig an stát RUNNING má chinneann an OS amhlaidh.
Breathnaímid ar shampla den chaoi a ngluaiseann dhá phróiseas trí na stáit seo. Ar dtús, déanaimis a shamhlú go bhfuil an dá phróiseas ar siúl, agus nach bhfuil ach an LAP á úsáid ag gach ceann acu. Sa chás seo, beidh a gcuid stáit cuma mar seo.

Córais Oibriúcháin: Trí Phíosa Éasca. Cuid 2: Astarraingt: Próiseas (aistriúchán)

Sa sampla seo a leanas, iarrann an chéad phróiseas, tar éis roinnt ama a rith, IO agus téann sé isteach sa stát BLOCKED, rud a ligeann do phróiseas eile a reáchtáil (FIG 1.4). Feiceann an OS nach bhfuil próiseas 0 ag baint úsáide as an LAP agus tosaíonn sé próiseas 1. Cé go bhfuil próiseas 1 ar siúl, tá IO críochnaithe agus athraíonn stádas phróiseas 0 go READY. Ar deireadh, tá próiseas 1 críochnaithe, agus nuair a bheidh sé críochnaithe, cuirtear tús le próiseas 0, cuireann sé i gcrích agus críochnaíonn sé a chuid oibre.

Córais Oibriúcháin: Trí Phíosa Éasca. Cuid 2: Astarraingt: Próiseas (aistriúchán)

Struchtúr sonraí

Is clár é an OS féin, agus díreach cosúil le haon chlár eile, tá roinnt príomhstruchtúir sonraí aige a choimeádann súil ar phíosaí ábhartha éagsúla faisnéise. Chun staid gach próiseas a rianú, tacóidh an OS le roinnt liosta próisis do gach próiseas sa stát READY agus roinnt faisnéise breise chun próisis atá ar siúl faoi láthair a rianú. Chomh maith leis sin, ba cheart don OS monatóireacht a dhéanamh ar phróisis bhlocáilte. Tar éis IO a bheith críochnaithe, caithfidh an OS an próiseas riachtanach a mhúscailt agus é a chur i stát réidh le rith.

Mar shampla, ní mór don OS staid na gclár próiseálaithe a chaomhnú. Faoi láthair stopann an próiseas, stóráiltear staid an chláir i spás seoladh an phróisis, agus faoi láthair leanann a oibriú, athchóirítear luachanna na gclár agus mar sin leanúint ar aghaidh le cur i gcrích an phróisis seo.

Chomh maith le stáit réidh, bactha, reatha, tá roinnt stát eile ann. Uaireanta, tráth an chruthaithe, féadfaidh próiseas a bheith i stát INIT. Ar deireadh, is féidir próiseas a chur sa staid CRÍOCHNAITHEACH nuair a bheidh sé críochnaithe cheana féin, ach níl a chuid faisnéise imréiteach fós. Ar chórais UNIX tugtar an stát seo Próiseas zombie. Tá an stát seo úsáideach i gcásanna ina dteastaíonn ó phróiseas tuismitheora eolas a fháil ar chód tuairisceáin an linbh, mar shampla, de ghnáth comharthaíonn 0 go n-éireoidh leis agus 1 earráid, ach is féidir le ríomhchláraitheoirí cóid aschuir bhreise a eisiúint chun fadhbanna éagsúla a chur in iúl. Nuair a thagann deireadh leis an bpróiseas tuismitheora, déanann sé glao deiridh ar an gcóras, ar nós wait(), chun fanacht leis an bpróiseas linbh a fhoirceannadh agus a chur in iúl don OS gur féidir leis aon sonraí a bhaineann leis an bpróiseas foirceanta a ghlanadh.

Córais Oibriúcháin: Trí Phíosa Éasca. Cuid 2: Astarraingt: Próiseas (aistriúchán)

Príomhphointí na léachta:

Процесс — an príomh-astarraingt de chlár reatha san OS. Ag aon am ar leith, is féidir cur síos a dhéanamh ar phróiseas trína stát: an t-ábhar cuimhne ina spás seoltaí, inneachar na gclár próiseálaithe, lena n-áirítear pointeoir treorach agus pointeoir cruachta, agus faisnéis IO, mar chomhaid oscailte á léamh nó á scríobh.
Próiseáil API comhdhéanta de ghlaonna is féidir le cláir a dhéanamh ar phróisis. De ghnáth is glaonna cruthaithe, scriosta nó glaonna eile iad seo.
● Tá an próiseas i gceann de go leor stát, lena n-áirítear reáchtáil, réidh, bac. Is féidir le himeachtaí éagsúla cosúil le sceidealú, eisceachtaí ó sceidealú, nó feithimh staid an phróisis a athrú ó cheann go chéile.
Liosta próiseas ina bhfuil faisnéis faoi gach próiseas sa chóras. Tugtar bloc rialaithe próisis ar gach iontráil ann, ar struchtúr é i ndáiríre ina bhfuil an fhaisnéis riachtanach ar fad faoi phróiseas ar leith. 

Foinse: will.com

Add a comment