1 / 23

Laiksakritīgie procesi(1)

Laiksakritīgie procesi(1). Laiksakritība ir vairāku procesu (programmu) paralēla izpilde. Programma – instrukciju kopa, kas nosaka operāciju statisko secību, ko izpilda dators datu apstrādes procesā.

wayde
Download Presentation

Laiksakritīgie procesi(1)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Laiksakritīgie procesi(1) Laiksakritība ir vairāku procesu (programmu) paralēla izpilde. Programma – instrukciju kopa, kas nosaka operāciju statisko secību, ko izpilda dators datu apstrādes procesā. Process – sistemātiska operāciju izpilde kāda noteikta rezultāta iegūšanai. Tas ir dinamisks objekts, programma izpildes stadijā.

  2. Laiksakritīgie procesi(2) Procesa stāvokļu diagramma: 1.Izpildīšana 2.Gatavība 2 3 3.Sabloķēšana 4.Apturēts-gatavs 1 5.Apturēts-sabloķēts Apturēšana Apturēšana Ap 4 44 5

  3. Laiksakritīgie procesi(3) Laiksakritīgie procesi var izpildīties neatkarīgi viņš no otra, bet var arī izpildītie asinhronā režīmā, kas nozīme, ka periodiski procesiem vajag sadarboties un sinhronizēties. Asinhronais režīms – datu apstrādes vai pārraides veids, kad katras konkrētas operācijas izpilde sākas pēc iepriekšējas operācijas beigu signāla saņemšanas. Sinhronizācija – darbība, kas nodrošina noteiktu notikumu sakrišanu laikā divu vai vairāku asinhronu procedūru izpildes gaitā. Procesi vienmēr konkurē lai izmantotu sistēmas ierobežotus resursus, tādus kā atmiņa, centrālais procesors, faili.

  4. Laiksakritīgie procesi(4) Procesu sadarbošanās un konkurences par sistēmas resursiem sfēras izvirza problēmas, kurus obligāti jāatrisina: • savstarpēja izslēgšana (Mutual Exclusion); • sinhronizācija (Synchronisation); • strupceļš (Deadlock). OS izmanto semaforus un citus līdzekļus šo problēmu risināšanai.

  5. Laiksakritīgie procesi(5) Savstarpējas izslēgšanas problēma – nodrošināt pieeju koplietojamiem resursiem tikai vienam procesam katrā momentā. Koplietojamie resursi (Shareable resources) ir tādas, kas vienlaicīgi var izmantot vairāki procesi. Kad process griežas pie koplietojamiem resursiem, uzskata, ka process atrodas savā kritiskā apgabalā (Critical section). Ja procesi sadarbojas, izmantojot kopīgus mainīgus un viens no procesiem atrodas savā kritiskā apgabalā, tad pārējiem procesiem tiek aizliegta iespēja ieiet savos kritiskos apgabalos.

  6. Laiksakritīgie procesi(6) Sinhronizācija – procesu sadarbība atsevišķos punktos (process nevar turpināt savas darbības, kamēr cits process nesasniegs kādu noteiktu punktu vai nepabeigs savu darbu). OS ir atbildīgas par tāda veida sinhronizāciju. Strupceļš – situācija, kad vairāki procesi pieprasa vienus un tos pašus resursus, neatbrīvo paturētus resursus un rezultātā bloķē viņš otru. Novērst šādas situācijas vai samazināt to negatīvu ietekmi ir viena no OS funkcijām. 1. resurss Process B Process A 2. resurss Resursa pieprasījums Resurss piešķirts

  7. Laiksakritīgie procesi(7) Semafors ir īpašs datu tips, ko izmanto, lai sinhronizētu vairākus procesus, kas izpildās vienlaicīgi. Semafors ir aizsargāts mainīgs, kura vērtību var nolasīt un nomainīt, izmantojot specialas operācijas waitun signalun semafora inicializēšanas komandas.

  8. Laiksakritīgie procesi(8) 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 turpināt darbu) ELSEval(S):=val(S)+1 Kur: • S – semafora vārds, • Val(S) – semafora vērtība (vesela tipa skaitlis)

  9. Laiksakritīgie procesi(9) Var redzēt, ka katra operācija signalpalielina semafora vērtību uz “1”, bet katra veiksmīga operācijawaitpazemina semafora vērtību uz “1”. Tātad, semafora vērtība tiek noteikta ar sekojošo izteiksmi: Val(S) = C(S) + ns(S) - nw(S), kur Val(S)– semafora S vērtība C(S) – semafora S inicializētā vērtība ns(S) – operāciju signal skaits ws(S) - operāciju wait skaits

  10. Laiksakritīgie procesi(10) Izmantojot semafora koncepciju var atrisināt savstarpējas izslēgšanas problēmu ar vienkāršo paņēmienu – katru procesa kritisku apgabalu ielenkt ar operācijām wait un signal uz vienīga semafora ar sākuma vērtību “1”. Wait(mutex); critical section; Signal(mutex); kur mutex – semafora vārds

  11. Laiksakritīgie procesi(11) Semafora koncepciju var izmantot sinhronizācijas mehānisma realizēšanai: viens process bloķē pats sevi, izpildot operāciju WAIT uz semafora P ar sākuma stāvokli 0 lai sagaidītu kāda notikuma pienākšanu; cits process konstatē, ka gaidīts notikums ir noticis un atbrīvo sabloķētu procesu ar operācijas SIGNAL palīdzību. Process AProcess B … … L1: wait(P); … … L2: signal(P); … … Šajā piemērā sinhronizācija ir asimetriskā, jo procesa A izpildīšana regulē process B.

  12. Laiksakritīgie procesi(12) Piemērs, kur katrs no procesiem regulē cita procesa izpildi, ir klasiskā problēma “ražotājs – patērētājs”(“producer-consumer”).(“Ražotājs” sadarbojas ar “patērētāju” izmantojot buferu, kurā “ražotājs” ievieto kādu elementu un no kura “patērētājs” izņem šo elementu. Bufera ietilpība – N elementi.) Var redzēt, ka šeit eksistē divas sinhronizācijas problēmas un viena savstarpējas izslēgšanas problēma: • “ražotājs” nevar ievietot elementu buferī, ja tas ir aizpildīts (var izmantot semaforu SPACE ar sākuma stāvokli N); • “patērētājs” nevar izņemt elementu, ja buferis ir tukšs (var izmantot semaforu ITEM ar sākuma stāvokli 0); • kamēr “ražotājs” izmanto buferi, “patērētājs” gaida un otrādi (var izmantot semaforu BUFFER ar sākuma stāvokli 1).

  13. Laiksakritīgie procesi(13) 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

  14. Laiksakritīgie procesi (14) Strupceļš – situācija, kad divi procesi, kas pieprasa vienus un tos pašus resursus, bloķē viens otru. Ir formulēti strupceļu izcelšanas četri nepieciešamie nosacījumi: • Savstarpējas izslēgšanas nosacījums (procesi prasa piešķirt tiesības uz resursu monopolu vadību); • Resursu gaidīšanas nosacījums (procesi patur jau izdalītus viņu rīcībā resursus un gaida papildus resursus); • Resursu pārdalīš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); • Riņķveida gaidīšanas nosacījums (eksistē procesu virkne, kurā procesi patur resursus, kas ir nepieciešami nākamam virknes procesam).

  15. Laiksakritīgie procesi (15) Novērst strupceļu situācijas vai samazināt to negatīvo ietekmi ir OS funkcija, kuras realizēšanai izmanto dažādas politikas: • novērst strupceļus, • automātiski atklāt strupceļus, • likvidēt strupceļus ar operatora palīdzību.

  16. Laiksakritīgie procesi (16) “Baņķiera algoritms” – pamats strupceļu novēršanas algoritmiem: n – procesu skaits sistēmā; t –konkrētā resursa skaits sistēmā; m(i) – procesa (i) maksimāla 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 tekoša vajadzība pēc resursa; a=t-Σl(i) – resursu skaits, kas vel ir pieejams sadalīšanai (i=1,2,…,n).

  17. Laiksakritīgie procesi (17) “Baņķiera” algoritmanosacījumi: • Ja sistēma var nodrošināt procesam resursa maksimāli vajadzīgo skaitu, process izmanto visus resursus, atgriež tās sistēmai un beidz savu darbu; • Sistēmas stāvoklis ir drošs, ja OS var nodrošināt visu procesu pabeigšanu; • Izdalīt resursu procesam var tikai tad, ja pēc izdalīšanas sistēmas stāvoklis paliek drošs; • Nedrošs sistēmas stāvoklis nozīme, ka nelabvēlīgas darbību secības gadījumā strupceļš ir iespējams.

  18. Laiksakritīgie procesi (18) “Baņķiera” algoritmapiemērs: Drošs stāvoklis Nedrošs stāvoklis

  19. Laiksakritīgie procesi (19) “Baņķiera” algoritmaierobežojumi: • Sadalāmo resursu fiksēts skaits; • Izpildāmo procesu fiksēts un pastāvīgs skaits; • Maksimāla vajadzība pēc resursiem ir zināma katram procesam; • Sistēma garantē, ka resursu pieprasījumi būs nodrošināti pārskatāmā laika intervālā (kādā?); • Procesi atgriež resursus sistēmai arī pārskatāmā laika intervālā (kādā?). Algoritmam ir teorētiskā nozīme un to var uzskatīt par pamatu pieejamo algoritmu izstrādei.

  20. Laiksakritīgie procesi (20)

  21. Laiksakritīgie procesi(7) Savstarpēja izslēgšana – darbība, kas nodrošina pieeju koplietojamiem resursiem tikai vienam procesam. Ja process griežas pie koplietojamiem resursiem viņš atrodas savā kritiskā apgabalā. Šo apgabalu var ielenkt ar operācijām wait un signal uz vienīga semafora ar sākuma vērtību 1. Wait (mutex); Critical section; Signal (mutex); kur mutex – semafora vārds

  22. Laiksakritīgie procesi(8) Sinhronizācija – darbība, kas nodrošina noteiktu notikumu sakrišanu laikā divu vai vairāku asinhronu procedūru izpildes gaitā. Sinhronizācijas problēmas atrisināšanai var izmantot semaforu ar sākuma stāvokli 0. Viens process bloķē pats sevi ar operāciju wait lai sagaidītu kādu notikumu. Cits process konstatē šā notikuma pienākšanu un pamodina sabloķētu procesu ar operāciju signal. Process A Process B … … L1: wait (proceed); L2:signal (proceed); … … kur proceed – semafora vārds.

  23. Laiksakritīgie procesi(14) Monitors – programma, kura datu apstrādes sistēmā kontrolē, vada un pārbauda operāciju izpildi. Monitors ir procedūru un informatīvo struktūru kopa, kuru procesi izmanto laikdalības režīmā un kuru katra momentā var izmantot tikai viens process.

More Related