Awọn ọna ṣiṣe: Awọn nkan Rọrun mẹta. Apakan 1: Ibere ​​(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 iru miiran ti o jẹ OS igbalode. 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:
atilẹba: pages.cs.wisc.edu/~remzi/OSTEP/Aṣeti ile/iṣẹ amurele.html
atilẹba: github.com/remzi-arpacidusseau/ostep-code
- aṣamubadọgba ti ara ẹni: github.com/bykvaadm/OS/tree/master/ostep

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

Isẹ eto

Kini yoo ṣẹlẹ nigbati eto kan nṣiṣẹ? Eto ṣiṣe kan ṣe ohun kan ti o rọrun - o ṣiṣẹ awọn ilana. Ni gbogbo iṣẹju-aaya, awọn miliọnu ati paapaa awọn ọkẹ àìmọye awọn ilana ni a gba pada nipasẹ ero isise lati Ramu, ni titan o pinnu wọn (fun apẹẹrẹ, o mọ iru iru awọn ilana wọnyi jẹ) ati ṣiṣẹ wọn. Eyi le jẹ fifi awọn nọmba meji kun, iraye si iranti, ṣayẹwo ipo kan, fo si iṣẹ kan, ati bẹbẹ lọ. Lẹhin ipaniyan ti itọnisọna kan, ero isise naa tẹsiwaju si ipaniyan miiran. Ati nitorinaa itọnisọna lẹhin itọnisọna, wọn ti ṣiṣẹ titi ti eto yoo fi pari.
Apeere yii ni a ka ni irọrun nipa ti ara - ni otitọ, lati yara ero isise naa, ohun elo ode oni ngbanilaaye lati ṣiṣẹ awọn ilana ni titan, ṣe iṣiro awọn abajade ti o ṣeeṣe, ṣiṣẹ awọn ilana ni nigbakannaa, ati awọn ẹtan ti o jọra.

Von Neumann awoṣe ti iṣiro

Fọọmu iṣẹ ti o rọrun ti a ṣalaye nipasẹ wa jẹ iru si awoṣe Von Neumann ti iṣiro. Von Neumann jẹ ọkan ninu awọn aṣáájú-ọnà ti awọn eto kọmputa, o tun jẹ ọkan ninu awọn onkọwe ti ilana ere.. Lakoko ti eto naa n ṣiṣẹ, opo kan ti awọn iṣẹlẹ miiran waye, ọpọlọpọ awọn ilana miiran ati iṣẹ ọgbọn ẹni-kẹta, idi akọkọ ti eyiti o jẹ irọrun ifilọlẹ, iṣẹ ati itọju eto naa.
Eto sọfitiwia kan wa ti o jẹ iduro fun ṣiṣe awọn eto rọrun lati ṣiṣẹ (tabi paapaa gbigba awọn eto pupọ laaye lati ṣiṣẹ ni akoko kanna), ti o gba awọn eto laaye lati pin iranti kanna, ati lati ṣe ibaraẹnisọrọ pẹlu awọn ẹrọ oriṣiriṣi. Iru eto sọfitiwia (software) ni pataki ni a pe ni ẹrọ ṣiṣe ati awọn iṣẹ ṣiṣe rẹ pẹlu ibojuwo pe eto naa ṣiṣẹ ni deede ati daradara, ati rii daju irọrun iṣakoso ti eto yii.

ẹrọ

Ẹ̀rọ ìṣiṣẹ́ kan, tí a gégé bí OS, jẹ́ àtòpọ̀ àwọn ètò ìsopọ̀ṣọ̀kan tí a ṣe láti ṣàkóso àwọn ohun àmúṣọrọ̀ kọ̀ǹpútà àti láti ṣètò ìbáṣepọ̀ oníṣe pẹ̀lú kọ̀ǹpútà kan..
OS ṣe aṣeyọri imunadoko rẹ ni aaye akọkọ, nipasẹ ilana pataki julọ - ilana naa ipadaju. OS naa ṣe ajọṣepọ pẹlu awọn orisun ti ara (isise, iranti, disk, ati bẹbẹ lọ) ati yi pada si gbogbogbo diẹ sii, agbara diẹ sii, ati irọrun-lati-lo ti ararẹ. Nitorinaa, fun oye gbogbogbo, o le ṣe afiwe ẹrọ ṣiṣe ni aijọju pẹlu ẹrọ foju kan.
Lati gba awọn olumulo laaye lati fun awọn aṣẹ si ẹrọ ṣiṣe ati nitorinaa lo awọn agbara ti ẹrọ foju (gẹgẹbi ṣiṣiṣẹ eto kan, pinpin iranti, iwọle si faili kan, ati bẹbẹ lọ), ẹrọ ṣiṣe n pese diẹ ninu wiwo ti a pe API (ni wiwo siseto ohun elo) ati eyiti o le ṣe awọn ipe (ipe). Eto iṣẹ aṣoju jẹ ki awọn ọgọọgọrun awọn ipe eto ṣe.
Lakotan, niwọn igba ti agbara agbara ngbanilaaye awọn eto lọpọlọpọ lati ṣiṣẹ (nitorinaa pinpin Sipiyu), ati wọle si awọn ilana wọn ati data nigbakanna (bii iranti pinpin), ati awọn disiki iwọle (bayi pinpin awọn ẹrọ I/O)), ẹrọ ṣiṣe tun pe ni a oluṣakoso awọn oluşewadi. Oluṣeto kọọkan, disk ati iranti jẹ orisun ti eto naa, ati nitorinaa ọkan ninu awọn ipa ti ẹrọ ṣiṣe di iṣẹ ṣiṣe ti iṣakoso awọn orisun wọnyi, ṣiṣe daradara, nitootọ, tabi ni idakeji, da lori iṣẹ ṣiṣe eyiti ẹrọ ṣiṣe yii. ti ṣe apẹrẹ.

Sipiyu agbara

Wo eto atẹle yii:
(https://www.youtube.com/watch?v=zDwT5fUcki4&feature=youtu.be)

Awọn ọna ṣiṣe: Awọn nkan Rọrun mẹta. Apakan 1: Ibere ​​(itumọ)

Ko ṣe awọn iṣe pataki eyikeyi, ni otitọ, gbogbo ohun ti o ṣe ni pe iṣẹ kan omo(), ẹniti iṣẹ-ṣiṣe rẹ ni lati yiyipo nipasẹ ayẹwo akoko ati pada lẹhin iṣẹju-aaya kan ti kọja. Nitorinaa, o tun ṣe lainidi okun ti olumulo kọja bi ariyanjiyan.
Jẹ ki a ṣiṣẹ eto yii ki o ṣe ohun kikọ “A” gẹgẹbi ariyanjiyan. Abajade kii ṣe iyanilenu paapaa - eto naa kan ṣiṣẹ eto kan ti o ṣafihan ohun kikọ “A” lorekore.
Bayi jẹ ki a gbiyanju aṣayan nigbati ọpọlọpọ awọn iṣẹlẹ ti eto kanna n ṣiṣẹ, ṣugbọn titọjade awọn lẹta oriṣiriṣi lati jẹ ki o ṣe alaye. Ni idi eyi, abajade yoo jẹ iyatọ diẹ. Bíótilẹ o daju wipe a ni ọkan isise, awọn eto ti wa ni ṣiṣẹ ni nigbakannaa. Bawo ni o ṣe ṣẹlẹ? Ṣugbọn o wa ni pe ẹrọ ṣiṣe, kii ṣe laisi iranlọwọ ti awọn agbara ohun elo, ṣẹda iruju. Irora pe eto naa ni awọn olutọsọna foju pupọ, titan ero isise ti ara kan sinu nọmba ailopin ti imọ-jinlẹ ati nitorinaa gbigba awọn eto ti o dabi ẹnipe lati ṣiṣẹ ni nigbakannaa. Iro yi ni a npe ni Sipiyu agbara.
Aworan yii gbe ọpọlọpọ awọn ibeere dide, fun apẹẹrẹ, ti ọpọlọpọ awọn eto ba fẹ ṣiṣẹ ni akoko kanna, ewo ni yoo ṣe ifilọlẹ? Awọn “awọn ilana” ti OS jẹ iduro fun ibeere yii. Awọn eto imulo ni a lo ni ọpọlọpọ awọn aaye ni OS ati dahun awọn ibeere bii eyi, ati pe o jẹ awọn ilana ipilẹ ti OS ṣe. Nitorinaa ipa ti OS bi oluṣakoso orisun.

Agbara iranti

Bayi jẹ ki a wo iranti. Awoṣe ti ara ti iranti ni awọn ọna ṣiṣe ode oni jẹ aṣoju bi titobi ti awọn baiti.. Lati ka lati iranti, o nilo lati pato cell adirẹsilati wọle si o. Lati kọ tabi ṣe imudojuiwọn data, o gbọdọ tun pato data ati adirẹsi sẹẹli nibiti o ti kọ.
Iranti wa ni iwọle nigbagbogbo lakoko ipaniyan eto. Eto kan tọju gbogbo eto data rẹ sinu iranti ati wọle si nipasẹ ṣiṣe awọn ilana pupọ. Awọn ilana naa, nibayi, tun wa ni ipamọ ni iranti, nitorinaa o tun wọle si ibeere kọọkan fun itọnisọna atẹle.

malloc () ipe

Wo eto atẹle yii, eyiti o pin agbegbe ti iranti ni lilo ipe naa malloc () (https://youtu.be/jnlKRnoT1m0):

Awọn ọna ṣiṣe: Awọn nkan Rọrun mẹta. Apakan 1: Ibere ​​(itumọ)

Eto naa ṣe awọn nkan pupọ. Ni akọkọ, o pin diẹ ninu iranti (ila 7), lẹhinna tẹ adirẹsi ti sẹẹli ti a pin (ila 9), kọ odo si aaye akọkọ ti iranti ti a pin. Nigbamii ti, eto naa wọ inu lupu kan ninu eyiti o ṣe afikun iye ti o fipamọ sinu iranti ni adirẹsi ni oniyipada “p”. O tun tẹjade ID ilana funrararẹ. ID ilana jẹ alailẹgbẹ fun ilana ṣiṣe kọọkan. Lẹhin ti ṣe ifilọlẹ ọpọlọpọ awọn adakọ, a yoo kọsẹ lori abajade ti o nifẹ: Ni ọran akọkọ, ti o ko ba ṣe nkankan ati ṣiṣe awọn adakọ pupọ, lẹhinna awọn adirẹsi yoo yatọ. Ṣugbọn eyi ko ṣubu labẹ imọran wa! Ti o tọ, niwọn igba ti awọn pinpin ode oni ti ni aileto iranti ṣiṣẹ nipasẹ aiyipada. Ti o ba jẹ alaabo, a gba abajade ti a nireti - awọn adirẹsi iranti ti awọn eto ṣiṣe nigbakanna meji yoo baramu.

Awọn ọna ṣiṣe: Awọn nkan Rọrun mẹta. Apakan 1: Ibere ​​(itumọ)

Bi abajade, o han pe awọn eto ominira meji ṣiṣẹ pẹlu awọn aaye adirẹsi ikọkọ ti ara wọn, eyiti o jẹ ya aworan nipasẹ ẹrọ ṣiṣe ni iranti ti ara.. Nitorinaa, lilo awọn adirẹsi iranti laarin eto kan kii yoo ni ipa lori awọn miiran ni eyikeyi ọna, ati pe o dabi si eto kọọkan pe o ni nkan ti ara ti ara ti ara, ti a fun ni patapata. Otitọ, sibẹsibẹ, ni pe iranti ti ara jẹ orisun pinpin ti iṣakoso nipasẹ ẹrọ ṣiṣe.

Iduroṣinṣin

Omiiran ti awọn koko pataki laarin awọn ọna ṣiṣe jẹ - aitasera. Oro yii ni a lo nigbati o ba sọrọ nipa awọn iṣoro ninu eto ti o le waye nigbati o ba ṣiṣẹ pẹlu ọpọlọpọ awọn ohun ni akoko kanna laarin eto kanna. Awọn ọran aitasera dide paapaa laarin ẹrọ ṣiṣe funrararẹ. Ninu iranti ti tẹlẹ ati awọn apẹẹrẹ agbara agbara ero isise, a rii pe OS n ṣakoso ọpọlọpọ awọn nkan ni akoko kanna - o bẹrẹ ilana akọkọ, lẹhinna keji, ati bẹbẹ lọ. Bi o ti wa ni jade, iwa yii le ja si awọn iṣoro diẹ. Nitorinaa, fun apẹẹrẹ, awọn eto olona-asapo igbalode ni iriri iru awọn iṣoro bẹ.

Wo eto atẹle yii:

Awọn ọna ṣiṣe: Awọn nkan Rọrun mẹta. Apakan 1: Ibere ​​(itumọ)

Eto naa ni iṣẹ akọkọ ṣẹda awọn okun meji nipa lilo ipe naa phread_ṣẹda(). Ni apẹẹrẹ yii, okùn kan le ronu bi iṣẹ ti n ṣiṣẹ ni aaye iranti kanna lẹgbẹẹ awọn iṣẹ miiran, pẹlu kedere diẹ sii ju iṣẹ kan nṣiṣẹ ni akoko kanna. Ni apẹẹrẹ yii, okun kọọkan bẹrẹ ati ṣiṣe iṣẹ naa osise () eyi ti o ni Tan nìkan mu oniyipada,.

Jẹ ki a ṣiṣẹ eto yii pẹlu ariyanjiyan ti 1000. Bi o ṣe le ti gboju, abajade yẹ ki o jẹ 2000 nitori okun kọọkan ṣe alekun oniyipada ni igba 1000. Sibẹsibẹ, ohun gbogbo ni ko ki o rọrun. Jẹ ki a gbiyanju lati ṣiṣe eto naa pẹlu aṣẹ titobi diẹ sii awọn atunwi.

Awọn ọna ṣiṣe: Awọn nkan Rọrun mẹta. Apakan 1: Ibere ​​(itumọ)

Nipa titẹ sii nọmba kan, fun apẹẹrẹ, 100000, a nireti lati wo abajade bi nọmba 200000. Sibẹsibẹ, ti a ba ṣiṣẹ nọmba 100000 ni ọpọlọpọ igba, a kii yoo ri idahun ti o pe nikan, ṣugbọn tun gba awọn idahun ti ko tọ. Idahun si wa ni otitọ pe lati mu nọmba naa pọ si, awọn iṣẹ ṣiṣe mẹta nilo - yiyo nọmba naa lati iranti, pọsi, ati lẹhinna kikọ nọmba naa pada. Niwọn igba ti gbogbo awọn ilana wọnyi ko ṣe ni atomically (gbogbo ni akoko kanna), awọn nkan ajeji bii eyi le ṣẹlẹ. Iṣoro yii ni a pe ni siseto ije ipo. Nigbati awọn ipa aimọ ni akoko aimọ le ni ipa lori iṣẹ eyikeyi awọn iṣẹ ṣiṣe rẹ.

orisun: www.habr.com

Fi ọrọìwòye kun