2 S n)epuuunr, S Coc)onnue coc)nsunun, S suuiouckenun, S Ycouun epnu)enu, S Hporpuiinue uropu)iu oprunusuuuu usuuioaec)uun npoueccou. 3 S Hoa uk)uunoc)niu nonuiue)cn noceaouu)eunoe uunonenue neko)opux aec)uu, nunpuuennux nu aoc)uenue onpeaeenno ueu. S A)oiupnue onepuuuu neaeuiue onepuuuu, us ko)opux ioe) coc)on)u uk)uunoc)u. 4 S Hpuiep u)oiupnue onepuuuu uk)uunoc)u npuro)ouenue 6v)ep6poau: . O)pesu)u oi)uk xe6u. z. O)pesu)u oi)uk ko6ucu. . Huiusu)u oi)uk xe6u iucoi. i. Hoou)u oi)uk ko6ucu nu noaro)ouennu oi)uk xe6u. 5 S Heaeuiue onepuuuu iorv) uie)u neko)opue unv)pennue neuuauiue aec)uun: usn)u 6u)on xe6u u euv pvkv, usn)u no u npuuv pvkv, co6c)uenno npousuec)u o)pesunue S u nusuuuei ux uepenummmuno)oiv, )o cu)uei oanui ueui, uunonneiuiu su pus, 6es npepuuunun aen)eunoc)u. 6 SHvc)u uiee)cn aue uk)uunoc)u P: u, b, c. O: d, e, f. rae u, b, c, d, e, f u)oiupnue onepuuuu. Hpu noceaouu)eunoi uunonenuu uk)uunoc)e iu novuei ceavuv noceaouu)eunoc)u u)oiupnux aec)uu: SPO: u b c d e f 7 S Ak)uunoc)u iorv) puccou)ucn nu neaeuiue onepuuuu c pusunui ux epeaouunuei, nu unruckoi nsuke lnLerleuvlng osionue uupuun)u epeaouunun: u b c d e f u b d c e f u b d e c f u b d e f c u d b c e f ...... d e f u b c 8 S Hu6op uk)uunoc)e (nunpuiep, nporpuii) ae)epiunupouun, ecu ucnku pus npu nceuaonupueunoi ucnonenuu an oanoro u )oro e nu6opu uxoanux aunnux on aue) oaunukouue uuxoanue aunnue. S npo)uunoi cvue on neae)epiunupouun. S e)epiunupouunnu nu6op uk)uunoc)e iono uunonn)u u peuie pusaeenun upeienu. S n neae)epiunupouunnoro nu6opu )ukoe ucnonenue neeu)euno. 9 S iee)cn aue uk)uunoc)u, P u O, coc)onuue us auvx u)oiupnux onepuuu kuaun: S ukui 6vae) pesvu)u) ux nceuaonupueunoro uunonenun, ecu nepeiennue x u v nun)cn o6uuiu an uk)uunoc)e? S osionu e)upe pusnux nu6opu snuenu an nupu (x, v): (, i), (z, ), (z, ) u (, z). P: x=2 Q: x=3 y=x-1 y=x+1 10 S ono u ao novenun pesvu)u)ou, supunee, onpeaeu)u nune)cn u nu6op uk)uunoc)e ae)epiunupouunnui uu ne)? S n 5)oro cvuec)uv) aoc)u)onue vcouun epnu)enu. 11 S Onpeaeui nu6opu nepeiennux uuoau u uuuoau nporpuiiu: . Hu6op R nepeiennux uuoau nporpuiiu (o) couu reud) an ucex ee neaeuiux aec)uu. z. Hu6op Wnepeiennux uuuoau nporpuiiu (o) couu wrlLe) an ucex ee neaeuiux aec)uu. 12 Ycouun epnu)enu: S cu an auvx aunnux uk)uunoc)e P u O: . nepeceenue W(P) u W(O) nvc)o, z. nepeceenue W(P) c R(O) nvc)o, . nepeceenue R(P) u W(O) nvc)o, )o uunonenue P u O ae)epiunupouuno. S cu 5)u vcouun ne co6aenu, uosiono, )o nupueunoe uunonenue P u Oae)epiunupouuno, no uosiono, )o u ne). 13 S Hpo neae)epiunupouunnu nu6op nporpuii (u uk)uunoc)e uoo6ue) rouopn), )o on nuxoau)cn u ruce condlLlon (coc)onnue ronku, coc)nsunun). S npuueaennoi uuue npuiepe npoueccu coc)nsu)cn su uuucenue snuenu nepeiennux x u v. 14 S uau npouecc, o6puuuuucn k pusaeneiui pecvpcui, uckue) an ucex apvrux npoueccou uosionoc)u oanoupeiennoro c nui o6uenun c 5)uiu pecvpcuiu, ecu 5)o ioe) npuuec)u k neae)epiunupouunnoiv noueaenu nu6opu npoueccou. S 1uko npuei nusuuue)cn usuuiouckenuei (muLuul excluslon). S cu uunu eue u oepeanoc)u aoc)vnu k pusaeneiui pecvpcui, )o u iexunusiu usuuiouckenu c)unouu)cn neaoc)u)ono. 15 S pu)ueckun cekuun - 5)o uc)u nporpuiiu, ucnonenue ko)opo ioe) npuuec)u k uosnuknouenu ruce condlLlon. S )o6u ucku)u ruce condlLlon no o)nouenu k neko)opoiv pecvpcv, neo6xoauio, )o6u u kuau ioien) upeienu )ouko oaun npouecc ior nuxoau)ucn u cuoe kpu)uecko cekuuu, cunsunno c 5)ui pecvpcoi. S nuiu couuiu, neo6xoauio o6ecneu)u peuusuuu usuuiouckenun an kpu)ueckux cekuu nporpuii. 16 S euusuuun usuuiouckenun an kpu)ueckux cekuu nporpuii osnuue), )o no o)nouenu k apvrui npoueccui, vuc)uvuui uo usuuioaec)uuu, kpu)ueckun cekuun nuunue) uunonn)ucn kuk u)oiupnun onepuuun. S nuiu couuiu, neo6xoauio o6ecneu)u peuusuuu usuuiouckenun an kpu)ueckux cekuu nporpuii. "# "1 "2 "3 17-05 """"" 17-07 """" 17-09 """ 17-11 """"" 17-13 """" 17-15 """ 17-17 """"" 17-19 """" 17-21 """ 17-23 """ 17-25 """2""" 17-27 """ 17-29 """ 17-31 """2""" 17-33 """ 17-35 """ 17-37 """2""" 17-39 """ 17-41 "#"""" 17-47 "#"""" 17-53 "#"""" 18 S aecu kpu)uecku vuc)ok an kuaoro npoueccu o) onepuuuu O6nupvuuue), )o xe6u ne) ao onepuuuu osupuuue)cn u koinu)v uku)euno. S pesvu)u)e o)cv)c)uun usuuiouckenun c)vaen)u us cu)vuuuu ne) xe6u nonuau) u cu)vuuu cuukoi inoro xe6u. S cu 6u kpu)uecku vuc)ok aoc)ue) z 6u)onu xe6u uunonncn kuk u)oiupnun onepuuun, )o npo6eiu o6pusouunun usuukou 6uu 6u cnn)u. 19 "# "1 "2 "3 17-05 """"" 17-07 """" 17-43 """"" 17-47 """"" 20 S pu)uecku vuc)ok aoen conpouoau)ucn npooroi(enLrv secLlon) sukpu)u auepu usnv)pu nu sucou, 5nuoroi (exlL secLlon) o)oauunv)u sucou. S o upein uunonenun npooru npouecc aoen, u uc)noc)u, novu)u puspeuenue nu uxoa u kpu)uecku vuc)ok, u uo upein uunonenun 5nuoru - coo6uu)u apvrui npoueccui, )o on nokunv kpu)ueckv cekuu. 21 S o6uei cvue c)pvk)vpu npoueccu ioe) 6u)u npeac)uuenu ceavuui o6pusoi: while (some condition) { entry section //pr critical section //preca ce exit section //r remainder section } S Hoa remulnder secLlon nonuiu)cn uce u)oiupnue onepuuuu, ne uxoanuue u kpu)ueckv cekuu. 22 S uLuul excluslon, progress u bound wulLlng: . unonenue vcouun usuuiouckenun, z. unonenue vcouun nporpeccu, . unonenue vcouun orpunuennoro ouaunun. 23 S cu neku npouecc P ucnonne)cn u cuoe kpu)uecko cekuuu, )o apvrue npoueccu ne iorv) ucnonn)ucn u cuoux kpu)ueckux cekuunx. 24 S Hpoueccu, ko)opue nuxoan)cn une cuoux kpu)ueckux vuc)kou u ne co6upu)cn uxoau)u u nux, ne iorv) npenn)c)uouu)u apvrui npoueccuiuxoau)u u ux co6c)uennue kpu)ueckue vuc)ku. S cu ne) npoueccou u kpu)ueckux cekuunx, u uie)cn npoueccu, euuue uo)u u nux, )o )ouko )e npoueccu, ko)opue ne ucnonn)cn u remulnder secLlon, aonu npunuiu)u peuenue o )oi, kuko npouecc uoae) u cuo kpu)ueckv cekuu. S 1ukoe peuenue ne aono npunuiu)ucn 6eckoneno aoro. 25 S He aono uosnuku)u 6eckonenoro ouaunun an uxoau npoueccu u cuo kpu)uecku vuc)ok. S O) )oro ioien)u, korau npouecc sunpocu puspeuenue nu uxoa u kpu)ueckv cekuu, u ao )oro ioien)u, korau on 5)o puspeuenue novu, apvrue npoueccu iorv) npo)u epes cuou kpu)ueckue vuc)ku uuu orpunuennoe uco pus. 27 S Huu6oee npoc)ui peuenuei noc)uuenno suauu nune)cn ceavuun oprunusuuun npooru u 5nuoru: while (some condition) { aperr sce pepsa critical section paper sce pepsa remainder section } S Oanuko )ukoe peuenue peuu)o noceac)uuniu, nockoukv puspeuue) npoueccv nousouu)en puspeuu)u u sunpeuu)u npepuuunun uo uce uuucu)euno cuc)eie. 28 S onvc)ui, )o u pesvu)u)e ouu6ku uu soro viucu nousouu)eu sunpe)u npepuuunun u cuc)eie u suuuku uu suuepuu cuo npouecc. es nepesurpvsku cuc)eiu u )uko cu)vuuuu ne o6o)ucu. S 1ei ne ienee, sunpe) u puspeuenue npepuuunu uc)o npuienn)cn kuk npoor u 5nuor k kpu)ueckui cekuuni unv)pu cuio onepuuuonno cuc)eiu, nunpuiep, npu o6nouenuu coaepuioro PC8. 29 S Hpouecc ioe) uo)u u kpu)ueckv cekuu )ouko )orau, korau snuenue nepeienno-suiku puuno , oanoupeienno usiennn ee snuenue nu sukpuuun suiok. Hpu uuxoae us kpu)uecko cekuuu npouecc c6pucuuue) ee snuenue u suiok o)kpuuue)cn. shared int lock = 0; while (some condition) { while(lock); lock = 1; critical section; lock = 0; remainder section } S couenu, )ukoe peuenue, ne vaoue)uopne) vcouu usuuiouckenun, )uk kuk aec)uue whlle(lock), lock = , ne nune)cn u)oiupnui. 30 S onvc)ui, )o npouecc npo)ec)upouu snuenue nepeienno lock u npunn peuenue auuru)ucn auuue. S 5)o) ioien), eue po npucoauoauun nepemeuuo |ock auaneuun , nunupouuuk nepeau vnpuuenue npoueccv . S On )oe usvue) coaepuioe nepeienno lock u )oe npunuiue) peuenue uo)u u kpu)uecku vuc)ok. S u novuei auu npoueccu oanoupeienno uunonnuux cuou kpu)ueckue cekuuu. 31 S O6uun an auvx npoueccou nepeiennun c nuuunui snuenuei nuno vkusuuue), k)o ioe) ceavuui uo)u u kpu)uecku vuc)ok. n l-ro npoueccu 5)o uurnau) )uk: shared int turn = 0; while (some condition) { while(turn != i); critical section turn = 1-i; remainder section } S suuiouckenue rupun)upve)cn, npoueccu uxoan) u kpu)ueckv cekuu c)poro no oepeau: P, P, P, P, P, ... no uropu)i ne vaoue)uopne) vcouu nporpeccu. Hunpuiep, ecu snuenue Lurn puuno u npouecc P ro)ou uo)u u kpu)uecku vuc)ok, on ne ioe) caeu)u 5)oro, aue ecu npouecc P nuxoau)cn u remulnder secLlon. 32 S uu npoueccu uie) pusaeneiu iuccuu urou ro)ounoc)u uxoau npoueccou u kpu)uecku vuc)ok: shared int ready[2] = {0, 0}; S orau l - npouecc ro)ou uo)u u kpu)ueckv cekuu, on npucuuuuue) 5eien)v iuccuuu reudv[ l ] snuenue puunoe . Hoce uuxoau us kpu)uecko cekuuu on c6pucuuue) 5)o snuenue u . while (some condition) { ready[i] = 1; while(ready[1-i]); critical section ready[i] = 0; remainder section } 33 S Aropu)i uce puuno nupvuue) vcouue nporpeccu: Hvc)u npoueccu oanoupeienno noaouu k uunonenu npooru. Hoce uunonenun npucuuuuunun reudv[] = nunupouuuk nepeau npoueccop o) npoueccu npoueccv , ko)opu )uke uunonu npucuuuuunue reudv[] = Hoce 5)oro o6u npoueccu 6eckoneno aoro av) apvr apvru nu uxoae u kpu)ueckv cekuu. osnukue) )vnukouun cu)vuuun (deudlock). 34 S roav He)epcon (PeLerson) npeaou 6oee usnunoe peuenue. Hvc)u o6u npoueccu uie) aoc)vn k iuccuuv urou ro)ounoc)u u k nepeienno oepeanoc)u. 35 S cu o6u npoueccu noaouu k npoorv npuk)uecku oanoupeienno, )o onu o6u: o6nun) o cuoe ro)ounoc)u npeaou) uunonn)ucn apvr apvrv. S Hpu 5)oi oano us npeaoenu ucerau noceave) noce apvroro. u6o)v u kpu)ueckoi vuc)ke npoaou) npouecc, ko)opoiv 6uo caeuno noceanee npeaoenue. 36 S Hpuiep peruc)pu)vpu u noukunuke: uau unouu npu6uuuuu kuen) (on e npouecc) novue) )uonuk nu o6cvuuunue c noiepoi. uen) c nuuienuuui noiepoi nu )uonuke o6cvuuue)cn ceavuui. S s-su neu)oiupnoc)u onepuuuu uuucenun ceavuero noiepu uropu)i 6vono ne rupun)upve), )o v ucex npoueccou 6vav) )uonuku c pusnuiu noiepuiu. S cvue puuenc)uu noiepou nu )uonukux v auvx uu 6oee kuen)ou nepuui o6cvuuue)cn kuen) c ienuuui snuenuei uienu (uienu iono cpuunuuu)u u ekcukorpuueckoi nopnake).