CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
Laiksakritība ir vairaku procesu (programmu) paralēla izpilde.
Programma instrukciju kopa, kas nosaka operaciju statisko secību, ko izpilda dators datu apstrades procesa.
Process sistematiska operaciju izpilde kada noteikta rezultata iegūanai. Tas ir dinamisks objekts, programma izpildes stadija.
Eksistēanas gaita process var atrasties daados stavokļos un mainīt tas. Procesa stavokļu diagramma ir paradīta 1.attēla.
1.att. Procesa stavokļu diagramma
Process atrodas izpildīanas stavokli, ja procesors tiek iedalīts procesam un atrodas procesa rīcība.
Process atrodas gatavības stavokli, ja varētu izpildīties uzreiz pēc procesora nodoanas viņa rīcība.
Process atrodas sabloķēanas stavokli, ja viņ gaida, kad notiks kaut kads notikums lai būtu iespējams turpinat savu darbu.
Parējas starp iem stavokļiem var raksturot sekojoi:
1.2. process tiek parcelts gatavības stavokli, ja ir beidzies procesam iedalītais laika kvants līdz tam momentam, kad process brīvpratīgi atbrīvo procesoru.
1.3. process tiek parcelts sabloķēanas stavokli, ja viņ inicializē ievades vai izvades procedūras un gaida to pabeiganu (vai arī gaida kada cita notikuma beigas).
3.2. process tiek parcelts gatavības stavokli, kad ir noticis notikums, kura pabeiganu process gaidīja.
2.1. process sak izpildīties, kad dispečers izdala viņam procesoru.
Lai varētu efektīvi regulēt datora resursu slodzi, OS var apturēt un atjaunot procesus. Apturēanu izmanto, lai uz neilgu laiku izslēgtu procesu, kad sistēma ir parslogota. Ja apturēana ir paredzēta uz ilgaku laiku, procesam jaatbrīvo sistēmas resursi. Atjaunoana ir operacija, kura sagatavo procesu atkartotai palaianai no ta paa punkta, kura process bija apturēts. Parēja 3.5. ir vajadzīga lai varētu atrak aktivizēt sabloķēto procesu, jo apturēanas operacijai ir augstaka prioritate.
Procesu vadībai OS izmanto procesa vadības bloku (PCB - Process Control Block), kura tiek saglabata visa informacija par procesu, piem., tekoais stavoklis, prioritate, izdalītie resursi, utt.
OS tiek realizēti mehanismi, kuri ļauj izpildīt daadas procesa operacijas, tadas ka procesa izvietoana, iznicinaana, prioritates noteikana un mainīana, procesa palaiana, utt.
Laiksakritīgie procesi var izpildīties neatkarīgi viens no otra, bet var arī izpildītie asinhrona reīma, kas nozīme, ka periodiski procesiem vajag sadarboties un sinhronizēties.
Asinhronais reīms datu apstrades vai parraides veids, kad katras konkrētas operacijas izpilde sakas pēc iepriekējas operacijas beigu signala saņemanas.
Sinhronizacija darbība, kas nodroina noteiktu notikumu sakrianu laika divu vai vairaku asinhronu procedūru izpildes gaita.
Procesi vienmēr konkurē lai izmantotu sistēmas ierobeotus resursus, tadus ka atmiņa, centralais procesors, faili.
Procesu sadarboanas un konkurences par sistēmas resursiem sfēras izvirza problēmas, kurus obligati jaatrisina:
savstarpēja izslēgana (Mutual Exclusion);
sinhronizacija (Synchronisation);
strupceļ (Deadlock).
o problēmu risinaanai OS izmanto semaforus un citus līdzekļus (slēdzeni, nosacījuma mainīgie, barjeras, notikumi, monitori).
Savstarpējas izslēganas problēma nodroinat pieeju koplietojamiem resursiem tikai vienam procesam katra momenta.
Koplietojamie resursi (Shareable resources) ir tadas, kas vienlaicīgi var izmantot vairaki procesi.
Kad process grieas pie koplietojamiem resursiem, uzskata, ka process atrodas sava kritiska apgabala (Critical section). Ja procesi sadarbojas, izmantojot kopīgus mainīgus un viens no procesiem atrodas sava kritiska apgabala, tad parējiem procesiem tiek aizliegta iespēja ieiet savos kritiskos apgabalos.
Sinhronizacija procesu sadarbība atseviķos punktos (process nevar turpinat savas darbības, kamēr cits process nesasniegs kadu noteiktu punktu vai nepabeigs savu darbu). OS ir atbildīgas par tada veida sinhronizaciju.
Strupceļ situacija, kad vairaki procesi pieprasa vienus un tos paus resursus, neatbrīvo paturētus resursus un rezultata bloķē viņ otru (2.att.). Novērst adas situacijas vai samazinat to negatīvu ietekmi ir viena no OS funkcijam.
2.att. Strupceļa situacija
Semafors ir īpas datu tips, ko izmanto, lai sinhronizētu vairakus procesus, kas izpildas vienlaicīgi. Semafors ir aizsargats mainīgs, kura vērtību var nolasīt un nomainīt, izmantojot specialas operacijas wait un signal un semafora inicializēanas komandas.
wait(S) IF val(S)>0 THEN val(S):=val(S)-1 ELSE (gaid t uz S)
signal(S) IF (process gaida uz S) THEN (atļaut procesam turpinat darbu) ELSE val(S):=val(S)+1
Kur:
S semafora vards,
Val(S) semafora vērtība (vesela tipa skaitlis)
Var redzēt, ka katra operacija signal palielina semafora vērtību uz 1, bet katra veiksmīga operacija wait pazemina semafora vērtību uz 1. Tatad, semafora vērtība tiek noteikta ar sekojoo izteiksmi:
Val(S) = C(S) + ns(S) - nw(S), kur
Val(S) semafora S vērtība
C(S) semafora S inicializēta vērtība
ns(S) operaciju signal skaits
ws(S) - operaciju wait skaits
Izmantojot semafora koncepciju var atrisinat savstarpējas izslēganas problēmu ar vienkaro paņēmienu katru procesa kritisku apgabalu ielenkt ar operacijam wait un signal uz vienīga semafora ar sakuma vērtību 1.
Wait(mutex);
critical section;
Signal(mutex);
kur mutex semafora vards.
Semafora koncepciju var izmantot sinhronizacijas mehanisma realizēanai: viens process bloķē pats sevi, izpildot operaciju WAIT uz semafora P ar sakuma stavokli 0 lai sagaidītu kada notikuma pienakanu; cits process konstatē, ka gaidīts notikums ir noticis un atbrīvo sabloķētu procesu ar operacijas SIGNAL palīdzību.
Process A Process B
L1: wait(P);
L2: signal(P);
aja piemēra sinhronizacija ir asimetriska, jo procesa A izpildīanu regulē process B.
Piemērs, kur katrs no procesiem regulē cita procesa izpildi, ir klasiska problēma raotajs patērētajs (producer-consumer). (Raotajs sadarbojas ar patērētaju izmantojot buferu, kura raotajs ievieto kadu elementu un no kura patērētajs izņem o elementu. Bufera ietilpība N elementi.)
Var redzēt, ka eit eksistē divas sinhronizacijas problēmas un viena savstarpējas izslēganas problēma:
raotajs nevar ievietot elementu buferī, ja tas ir aizpildīts (var izmantot semaforu SPACE ar sakuma stavokli N);
patērētajs nevar izņemt elementu, ja buferis ir tuks (var izmantot semaforu ITEM ar sakuma stavokli 0);
kamēr raotajs izmanto buferi, patērētajs gaida un otradi (var izmantot semaforu BUFFER ar sakuma stavokli 1).
Producer program Consumer program
repeat indefinitely repeat indefinitely
begin produce item;begin wait(ITEM);
wait(SPACE); wait(BUFFER);
wait(BUFFER);extract item from buffer;
deposit item in buffer; signal(BUFFER);
signal(BUFFER); signal(SPACE);
signal(ITEM) consume item
end end
Monitors ir programma, kura sistēma kontrole, vada un parbauda operaciju izpildi. Monitors ir procedūru un informatīvo struktūru kopa, kuru procesi izmanto laika dalības reīma un kuru katra momenta var izmantot tikai viens process.
Salīdzinoi ar semaforiem, monitoriem ir sekojoas priekrocības:
Monitors ir loti elastīgs līdzeklis, ar kura palīdzību var realizēt gan semaforus, gan citus sinhronizacijas līdzekļus.
Visu sadalamo mainīgo lokalizēanu monitora ļauj atbrīvoties no sareģītam konstrukcijam sinhronizējoos procesos.
Monitori ļauj procesiem kopīgi izmantot programmu, kura pēc būtības ir kritisks apgabals.
Monitora piemērs ir programma-planotajs, kas sadala kaut kadus resursus. Katru reizi, kad process grib saņemt sava rīcība resursa daļu tas grieas pie planotaja. o planotaju izmanto visi procesi un katram no procesiem jebkura momenta var rasties nepiecieamība griezties pie planotaja, bet planotajs nevar apkalpot vienlaicīgi vairak ka vienu procesu. Ir situacijas, kad monitoram vajag apturēt procesu, kur grieas pie ta, piem., ja process pieprasa resursu, kuru jau izmanto cits process. aja gadījuma monitors var sabloķēt o procesu, kamēr resurss nebūs atbrīvots. Procesu sabloķēanai izmanto operacijas wait un signal. Kad sabloķē procesu, jauzrada arī nosacījums, kad process varēs turpinat darbu, piem., resurss brīvs. Kad nosacījums tiek izpildīts, monitors izstrada signalu signal un pasludina, ka
nosacījums ir izpildīts. Ja kaut kadi procesi gaida a nosacījuma izpildi, tad viens no tiem pamostas un saņem atļauju turpinaties.
Monitors ir viena vai vairakas procedūras ar statiskam, globalam, informatīvam struktūram. Kad pie monitora grieas pirmo reizi visi mainīgie saņem savas sakuma vērtības; kad vēlak - tiek izmantotas mainīgo vērtības, kas palika no iepriekējas grieanas. Mainīgie ar tipu condition nav līdzīgi parastajiem mainīgajiem. Kad tiek definēts tads mainīgais, tas nozīme, ka tiek organizēta rinda. Process, kas izpilda wait komandu tiek ievietots aja rinaa. Wait process, kas izpildīja operaciju signal ļauj citam procesam, kas gaidīja, iziet no rindas un ieiet monitora.
Monitora piemērs ir paradīts zemak:
monitor resursu_planotajs
var resurss_aiznemts:boolean;
resurss_brivs:boolean;
procedure pakert_resursu
begin
if resurss_aiznemts then
wait(resurss_brivs);
resurss_aiznemts:=true;
end;
procedure atdot_resursu
begin
resurss_ainemts:=false;
signal(resurs_brivs);
end;
begin
resurs_aiznemts:=false;
end;
Strupceļ situacija, kad divi procesi, kas pieprasa vienus un tos paus resursus, bloķē viens otru.
Ir formulēti strupceļu izcelanas četri nepiecieamie nosacījumi
1. Savstarpējas izslēganas nosacījums (procesi prasa pieķirt tiesības uz resursu monopolu vadību);
2. Resursu gaidīanas nosacījums (procesi patur jau izdalītus viņu rīcība resursus un gaida papildus resursus);
3. Resursu pardalīanas no jauna neiespējamības nosacījums (nevar atņemt resursus no procesa, kamēr tie nebūs izmantoti lai process pabeigtu savu izpildi);
4. Riņķveida gaidīanas nosacījums (eksistē procesu virkne, kura procesi patur resursus, kas ir nepiecieami nakamam virknes procesam).
Novērst strupceļu situacijas vai samazinat to negatīvo ietekmi ir OS funkcija, kuras realizēanai izmanto daadas politikas:
novērst strupceļus,
automatiski atklat strupceļus,
likvidēt strupceļus ar operatora palīdzību.
1. Novērst strupceļus ideja balstas uz ta, ka sistēma nedrīkst nonakt
strupceļa stavoklī. Tapēc, kad kaut kads process izstrada pieprasījumu,
kas var novest sistēmu pie strupceļa, sistēma veic pasakumus, lai izvairītos no bīstama stavokļa vai nu neapmierina pieprasījumu, vai atņem resursu no cita procesa. Metodes priekrocība strupceļ vienmēr tiek novērsts. Trūkumi neefektīvi tiek izmantoti sistēmas resursi un dargi var izmaksat algoritms, kas realizē o pieeju.
2. Automatiski atrast pieļauj, lai sistēma nokļūtu strupceļa situacija. Kad
tas reali notiek, sistēma ar specialas programmas palīdzību atrod strupceļu un pēc tam var atņem resursus no daadiem procesiem, lai citi varētu izkustēties no vietas. ī metode ļauj izmantot resursus efektīvak un ja reali strupceļa situacijas paradas diezgan reti, tad resursu noslogojuma palielinaana sedz izdevumus strupceļa atklaanai un izejai no tas.
3. Likvidēt ar operatora palīdzību paredz, ka strupceļa situacija rodas ļoti reti, lai par to uztrauktos. Ja tomēr strupceļ rodas, tad sistēmu vienkari palai no jauna. Bet var gadīties, ka sistēmas palaiana no jauna var izmaksat loti dargi.
Baņķiera algoritms pamats strupceļu novēranas algoritmiem:
n procesu skaits sistēma;
t konkrēta resursa skaits sistēma;
m(i) procesa (i) maksimala vajadzība pēc resursa (m(i) ≤ t );
l(i) procesam izdalītais resursu skaits ( l(i) ≤ m(i) );
c(i)=m(i)-l(i) procesa tekoa vajadzība pēc resursa;
a = t-Σl(i) resursu skaits, kas vel ir pieejams sadalīanai (i=1,2, ,n).
Baņķiera algoritma nosacījumi:
Ja sistēma var nodroinat procesam resursa maksimali vajadzīgo skaitu, process izmanto visus resursus, atgrie tas sistēmai un beidz savu darbu;
Sistēmas stavoklis ir dros, ja OS var nodroinat visu procesu pabeiganu;
Izdalīt resursu procesam var tikai tad, ja pēc izdalīanas sistēmas stavoklis paliek dros;
Nedros sistēmas stavoklis nozīme, ka nelabvēlīgas darbību secības gadījuma strupceļ ir iespējams.
Baņķiera algoritma piemērs:
Baņķiera algoritma ierobeojumi:
Sadalamo resursu fiksēts skaits;
Izpildamo procesu fiksēts un pastavīgs skaits;
Maksimala vajadzība pēc resursiem ir zinama katram procesam;
Sistēma garantē, ka resursu pieprasījumi būs nodroinati parskatama laika intervala (kada?);
Procesi atgrie resursus sistēmai arī parskatama laika intervala (kada?).
Algoritmam ir teorētiska nozīme un to var uzskatīt par pamatu pieejamo algoritmu izstradei.
Procesa koncepciju raksturo divi parametri:
1. Resursu parvaldīana (resource ownership)
2. Planoana/izpilde (scheduling/execution)
Visas OS abi ie raksturojumi kopa nosaka procesa būtību. Bet OS var uzskatīt os raksturojumus atseviķi vienu no otra un aja gadījuma dispečerizacijas vienību (2.) sauc par pavedienu (thread) un resursu vadības vienību (1.) sauc par procesu (process) vai uzdevumu (task).
Daudz pavedienu reīms (daudz plūsmu) ir OS spēja uzturēt vairaku pavedienu izpildīanu viena procesa ietvaros (3.att.).
Daudz pavedienu vidē ar procesu ir saistīti adi elementi:
1. Virtuala adreu platība, kura ir izvietots process.
2. Aizsargata pieeja pie procesoriem, failiem, ievades un izvades resursiem, citiem procesiem.
Daudz pavedienu vidē ar pavedienu ir saistīti adi elementi:
1. Pavediena stavoklis (izpildas, gatavs, bloķēts ).
2. Neizpildama pavediena konteksta saglabaana.
3. Izpildīanas steks.
4. Statiska atmiņa, kas tiek iedalīta pavediena lokaliem mainīgiem.
5. Pieeja pie procesa atmiņas un resursiem. o pieeju sadala visi procesa pavedieni.
3.Att. Pavedienu konstrukcija
Visi procesa pavedieni sadala sev starpa procesa resursus, atrodas viena adreu platība un var izmantot pieeju vieniem un tiem paiem datiem. Ja viens pavediens maina kadus datus atmiņa, tad citi pavedieni savas pieejas laika jau var vērot izmaiņas. Ja viens pavediens atver failu lasīanai, o failu var lasīt arī citi procesa pavedieni.No raīguma viedokļa pavedienu izmantoanai ir adas priekrocības:
1. Jauna pavediena izveidoana esoa procesa ietvaros prasa mazaku laiku neka jauna procesa izveidoana.
2. Pavedienu var pabeigt atrak, neka procesu.
3. Parslēgana starp pavedieniem notiek atrak neka starp procesiem.
4. Tiek paaugstinata informacijas apmaiņas efektivitate.
1. Process ir
2. Laiksakritība ir
3. Procesa izpildīanas stavoklis ir
4. Procesa gatavības stavoklis ir
5. Procesa sabloķēanas stavoklis ir
6. Procesa vadības bloks ir
7. Datu apstrades asinhronais reīms ir
8. Sinhronizacija datu apstradē ir
9. Procesu sadarboanas un konkurences problēmas - ir
10.Savstarpēja izslēgana ir
11.Koplietojamie resursi ir
12.Kritiskais apgabals ir
13.Procesu sinhronizacija ir
14.Strupceļ ir
15.Semafors ir
16.Operacija SIGNAL(S) ir
17.Operacija WAIT(S) ir
18.Savstarpējas problēmas atrisinaana ar semafora izmantoanu
19.Asimetriska procesu sinhronizēana ar semafora izmantoanu
20.Simetriska procesu sinhronizēana ar semafora izmantoanu
21.Monitors ir
22.Strupceļu izcelanas nepiecieamie nosacījumi
23.Strupceļu novēranas politikas
24.Baņkiera algoritma galvena ideja un realizēanas ierobeojumi
25.Pavediens (thread) ir
27.Daudzpavedienu (daudzu plūsmu) reīms ir
28.Daudzpavedienu reīma priekrocības
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 195
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved