Slides 12 Mutex
-
Upload
sweidan-omar -
Category
Documents
-
view
242 -
download
0
Transcript of Slides 12 Mutex
-
8/3/2019 Slides 12 Mutex
1/54
Budapesti Mszaki s Gazdasgtudomnyi Egyetem
Mrstechnika s Informcis Rendszerek Tanszk
Feladatok (task) egyttmkdse
dr. Kovcshzy Tams5. anyagrsz,
Klcsns kizrs, szinkronizci, kommunikci
Opercis rendszerek (vimia219)
-
8/3/2019 Slides 12 Mutex
2/54
BME-MIT 2011, Minden jog fenntartva 2. lap
Feladatok egyttmkdse
Krdsek:
o Erforrsok hasznlata, kzs erforrsok?o Feladatok kommunikcija?
o Feladatok szinkronizcija?
o Architektra fgg krdsek? Mit s hogyan hasznlunk a feladatok megoldsra?
-
8/3/2019 Slides 12 Mutex
3/54
BME-MIT 2011, Minden jog fenntartva 3. lap
Prhuzamos vgrehajthatsg
Bernstein felttele:
o Pi s Pj kt darabja egyprogramnak.
o Pi sszes bemenetivltozja Ii, s az sszes
kimeneti vltozja Oi,ugyan ez Pj-re Ij s Oj.
o A kt programprhuzamosanvgrehajthat (vagyisfggetlen):
0
0
0
OjOi
OjIi
OiIj
-
8/3/2019 Slides 12 Mutex
4/54
BME-MIT 2011, Minden jog fenntartva 4. lap
Egyttmkds lehetsgei
Kzs memrin keresztl (RAM v. PRAM modell):
o Szlak esetn (kzs memria).
zenetekkel:
o Rszletesen beszlnk rla ksbb.
-
8/3/2019 Slides 12 Mutex
5/54
BME-MIT 2011, Minden jog fenntartva 5. lap
RAM modell
Klasszikus Random Access Memory (egy
vgrehajt egysg). RAM-modell szerint mkdik, azaz:
o Trolrekeszekbl ll,
o
Egy dimenziban, rekeszenknt cmezhet, csakrekeszenknt, rs s olvass mveletekkel rhet el,
o Az rs a teljes rekesztartalmat fellrja az elztartalomtl fggetlen j rtkkel,
o Az olvass nem vltoztatja meg a rekesz tartalmt,teht tetszleges szm, egymst kvet olvass azolvassokat megelzen utoljra bert rtket adjavissza.
-
8/3/2019 Slides 12 Mutex
6/54
BME-MIT 2011, Minden jog fenntartva 6. lap
PRAM modell
Parallel Random Access Memory (sok vgrehajt egysg).
Tbb vgrehajt egysg rhatja s olvashatjaprhuzamosan.
Vltozsok a RAM modellhez kpest:o Az olvass-olvass tkzsekor mindkt olvass ugyanazt az
eredmnyt adja, s ez megegyezik a rekesz tartalmval,o Az olvass-rs tkzsekor a rekesz tartalma fellrdik a berni
szndkozott adattal, az olvass eredmnye vagy a rekesz rgi,vagy az j tartalma lesz (versenyhelyzet), ms rtk nem lehet,
o Az rs-rs tkzsekor valamelyik mvelet hatsa rvnyesl, akt berni szndkozott rtk valamelyike rja fell a rekesztartalmt (versenyhelyzet), harmadik rtk nem alakulhat ki.
A gyakorlatban ezt hasznljuk
-
8/3/2019 Slides 12 Mutex
7/54 BME-MIT 2011, Minden jog fenntartva 7. lap
Erforrs
Erforrs (resource)
oMinden olyan eszkz, amire a prhuzamos programnakfutsa kzben szksge van.
o A legfontosabb erforrs a vgrehajt egysg.
o
Memria s annak tartalma (trolt adatstruktrk).o Perifrik.
o Stb.
-
8/3/2019 Slides 12 Mutex
8/54 BME-MIT 2011, Minden jog fenntartva 8. lap
Kzs erforrs Kzs erforrs (shared resource)
o Egy idintervallumban tbb, prhuzamosan fut feladatnak lehetr szksge.
o Az erforrson osztoznak a feladatok.
o Tbbnyire egy idben egy vagy maximum megadott szmfeladat tudja helyesen hasznlni (rs s olvass).
Egy felhasznl: Printer, Asszinkron soros port (UART), sszetettadattpusokbl ltrehozott vltozk (string, tmb, struktra, objektum).
Tbb prhuzamos felhasznl: SCSI vagy SATA NCQ HDD (N parancsoptimalizlt prhuzamos vgrehajtsra kpesek).
o A rendszerterveznek s programoznak a legfontosabb
feladata, hogy felismerje a kzs erforrsokat, s biztostsaazok helyes hasznlatt.
o Az OS szolgltatsokat nyjt a problma megoldsra, de amegolds a programoz kezben van!
-
8/3/2019 Slides 12 Mutex
9/54 BME-MIT 2011, Minden jog fenntartva 9. lap
Plda
sszetett adattpus:o
C struktra vagy tmb tpusvltoz.
Kzs erforrs, ha tbbrszfeladat hasznlja:o
Task1 rja.o Task2 olvassa.
o Task1 fut elszr.
o Task2 futtatsra vlt a rendszer ars kzben (pl. preemptv arendszer).
o Inkonzisztens llapotban olvassa kia vltozt Task2.
o Slyos hiba!
C struct
TASK1TASK1TASK2TASK2TASK2
-
8/3/2019 Slides 12 Mutex
10/54 BME-MIT 2011, Minden jog fenntartva 10. lap
A problma megoldsa Klcsns kizrs (mutual exclusion)
o Annak biztostsa, hogy a kzs erforrst egy idben csak annyi
magban szekvencilis feladat hasznlja, amely mellett a helyesmkdse garantlhat.
o A klcsns kizrst meg kell oldanunk a programban.o Tbbnyire a hasznlt erforrst lock-oljuk (elzrjuk).
Nem engedjk hozzfrni a tbbi rszfeladatot.
A krds az, hogy azt hogyan tudjuk megoldani, s milyen rszletessggelkell megoldanunk azt.
Kritikus szakasz (critical section)o A magban szekvencilis feladatok azon kdrszletei, amely sorn
a klcsns kizrst egy bizonyos kzs erforrsra biztostjuk.o A kritikus szakasz a krdses kzs erforrshoz tartozik.o A kritikus szakaszt a hozz tartoz erforrsra atomi mveletknt
(nem megszakthat mdon) kell vgrehajtanunk.
-
8/3/2019 Slides 12 Mutex
11/54 BME-MIT 2011, Minden jog fenntartva 11. lap
Szemlltets
Task 1 Task 2
Resource A
1 felhasznl
Task 1 kritikusszakasza A-ra
Task 2 kritikus
szakasza A-ra
-
8/3/2019 Slides 12 Mutex
12/54 BME-MIT 2011, Minden jog fenntartva 12. lap
Atomi mvelet Atomi mvelet (atomic operation)
o Nem megszakthat mvelet, amelyet a processzoregyetlen utastsknt hajt vgre.
o Egyprocesszoros rendszerben brmilyen mveletsoratomiv tehet a mveletsor elejn az IT teljestiltsval, majd a mveletsor vgn annak
engedlyezsvel.o TAS, RMW, specilis CPU utastsok az IT
tilts/engedlyezs elkerlsre. Test and Set, Read-Modify-Write, stb.
Elemi adattpusra (8/16/32/64 bit). A modern processzoroknak vannak ilyen utastsai.
o A kzs erforrsok lock-olst, a kritikus szakaszmegvalstst atomi mveletekre vezetjk vissza.
-
8/3/2019 Slides 12 Mutex
13/54 BME-MIT 2011, Minden jog fenntartva 13. lap
Kzs erforrsok vdelme
Mik frhetnek hozz a kzs erforrsokhoz?o ISR (Interrupt service routine).o Feladat (folyamat vagy szl).o DMA.
Lehetsgek:o IT tiltsa s engedlyezse. (specilis esetben lehetsges).o temez tiltsa s engedlyezse. (specilis esetben
lehetsges).o Locking (erforrs specifikus lefoglals majd felolds).
Ms, kutatsi fzisban lv megoldsok:
o Software/hardware transactional memory (STM/HTM).o Software-isolated processes (MS Singularity).
A lock megolds sokak szerint nem j, de jobb mint brmieddig hasznlt megolds, vagyis ez az elfogadottmegolds.
-
8/3/2019 Slides 12 Mutex
14/54 BME-MIT 2011, Minden jog fenntartva 14. lap
Kzs erforrsok vdelme
Mik frhetnek hozz a kzs erforrsokhoz?o ISR (Interrupt service routine).o Feladat (folyamat vagy szl).o DMA.
Lehetsgek:o IT tiltsa s engedlyezse. (specilis esetben lehetsges).o temez tiltsa s engedlyezse. (specilis esetben
lehetsges).o Locking (erforrs specifikus lefoglals majd felolds).
Ms, kutatsi fzisban lv megoldsok:
o Software/hardware transactional memory (STM/HTM).o Software-isolated processes (MS Singularity).
A lock megolds sokak szerint nem j, de jobb mint brmieddig hasznlt megolds, vagyis ez az elfogadottmegolds. Ismers helyzet
Democracy is the worstform of Government exceptall those other forms that
have been tried from time totime.
Sir Winston Churchill
-
8/3/2019 Slides 12 Mutex
15/54 BME-MIT 2011, Minden jog fenntartva 15. lap
jrahvhatsg (reentrancy) A kzs erforrs problmjnak egyfajta kiterjesztett esete egy
fggvnyen/objektumon bell is fellphet, amennyiben ezt a
fggvnyt (metdust) egyszerre tbben is meghvhatjk. Hogyan fordulhat ez el?
o Ugyanazt a fggvnyt hvjuk egy taszkbl is s egy megszakts rutinbl is.
o Az temezs preemptv, s ugyanazt a fggvnyt hvjuk kt taszkbl is.
Az jrahvhatsg felttelei:o Hossz lista...
o Azt kell vizsglni, hogy az jrahvott fggvny/metdusban hasznlt vltozk,perifrik, fggvnyek/metdusok, stb. kzs erforrsnak minslnek, sha azok, akkor azokat kzs erforrsknt megfelelen kezeli-e a fggvny?
Pldk:o PC BIOS hvsok nem jrahvhatak!
o Preemptv opercis rendszer API fggvnyei mindig jrahvhatak.
o Egyb programknyvtrak?
-
8/3/2019 Slides 12 Mutex
16/54
BME-MIT 2011, Minden jog fenntartva 16. lap
Vrakozs kzs erforrsra
A ms feladat ltal hasznlt kzs erforrsra is esemnyrevrakozik llapotban vrakozik a feladat.
Az OS nyjt a kzs erforrsok vdelmre szolgltatsokat.
Futsra ksz(Ready) Fut(Run)
Esemnyrevrakozik(Waiting)
Ltrejn Befejezdik
CPU-t kap
Lemond vagyelveszik a CPU-t
Rendszerhvseredmnyekppenvrakoz llapotbakerl
A vrt esemnybekvetkezik
-
8/3/2019 Slides 12 Mutex
17/54
BME-MIT 2011, Minden jog fenntartva 17. lap
Lock-ols s az temez, szabad erforrs
A kzs erforrst hasznlni kvn feladat meg
prblja szerezni az erforrst egy OS hvssal.o Az erforrs szabad (nem hasznlt):
Az erforrst az OS lefoglalja a feladat szmra.
Visszatr a feladathoz, vagyis az fut vagy futsra kszllapotba kerl (az OS-tl fgg), majd CPU megkapsa utn ahvsbl visszatrve fut tovbb.
o Hasznlja az erforrst.
o A hasznlat vgn felszabadtja azt egy OS hvssal. Lsd kvetkez flia.
-
8/3/2019 Slides 12 Mutex
18/54
BME-MIT 2011, Minden jog fenntartva 18. lap
Lock-ols s az temez, foglalt erforrs
A kzs erforrst hasznlni kvn feladat meg
prblja szerezni az erforrst egy OS hvssal.o Az erforrs foglalt (hasznlatban van):
A feladat az adott erforrsra vr feladatok vrakozsisorba, esemnyre vr llapotba kerl.
Fut az temez a kvetkez fut feladat kivlasztsra.o Ha egy msik feladat ksbb felszabadtja az
erforrst: Fut ismt az temez, s kivlasztja az erforrsra vr
feladatok kzl valamelyiket (pl. FIFO esetn a legrgebbenvrakozt).
Annak szmra lefoglalja az erforrst.
Majd futsra ksz llapotba helyezi azt.
-
8/3/2019 Slides 12 Mutex
19/54
BME-MIT 2011, Minden jog fenntartva 19. lap
Rszletessg
A lock-ols rszletessge (Fine or course grained locking)
o A klcsns kizrs megvalstsa erforrs hasznlattal jr(CPU), minimalizlni kell a hasznlatt.
Tl sok rendszerhvs jelents overhead-del jr.
o Viszont a tl nagy egysgekben vgzett klcsns kizrs is
erforrs pazarlssal jr. A rendszerben nehezebb futsra ksz rszfeladatot tallni.
o Pl. Perifria egy buszon (flvezet hmr I2C buszon) Mkds: mrs indts, 200ms mrsi id, mrsi eredmny kiolvassa.
A teljes mrs idejre megvalstott klcsns kizrs a buszra: Hosszideig nem rhet el a busz ms clra sem.
A mrs indtsra s a mrsi eredmny kiolvassra kln-klnvalstsuk meg a klcsns kizrst a buszon: Sok OS hvs, mivel aklcsns kizrs OS hvst jelent.
-
8/3/2019 Slides 12 Mutex
20/54
BME-MIT 2011, Minden jog fenntartva 20. lap
Hibk 1.
Versenyhelyzet (race condition):
o A prhuzamos program lefutsa sorn a kzs erforrshelytelen hasznlata miatt a kzs erforrs vagy az azthasznl program nem megfelel (hibs) llapotba kerl.
o Ilyen volt a korbbi sszetett adattpusos plda.
o A hibs llapot rszletei ersen fggenek azt hasznlszekvencilis rszfeladatok lefutsi sorrendjtl.
Kiheztets (starvation):
o Ha a prhuzamos rendszer hibs mkdse miatt egy feladat
soha nem jut hozz a mkdshez szksges erforrsokhoz,akkor ki van heztetve (nem tud futni).
o Nem csak a CPU-ra, de ms kzs erforrsokra is felmerlhet.
-
8/3/2019 Slides 12 Mutex
21/54
BME-MIT 2011, Minden jog fenntartva 21. lap
Hibk 2.
Holtpont:
oA kzs erforrsok hibs belltsa vagy hasznlatamiatt a rendszerben a rszfeladatok egymsravrnak.
oNincs futsra ksz folyamat.
oNem jhet ltre bels esemny.oA rendszer nem tud elrelpni.
Livelock:o Plda: Kt kedves ember sszetallkozik az ajtban.o Tbbnyire a hibs holtpont felolds eredmnye.oA rendszer folyamatosan dolgozik, de nem lp elre.
-
8/3/2019 Slides 12 Mutex
22/54
BME-MIT 2011, Minden jog fenntartva 22. lap
Hibk 3. Priorits inverzi
Priorits inverzi (priority inversion):
o Prioritsos temezkben fordulhat el, de az erforrshasznlattal is sszefgg.
o A legegyszerbb esetnek elfordulshoz kell:
3 feladat, klnbz statikus prioritssal,
Egy kzs erforrs, amelyet a 3 feladat kzl a legmagasabb s alegalacsonyabb is hasznlni kvn.
A kzepes priorits feladatnak CPU intenzvnek kell lennie.
o Kedvezbb esetben csak a rendszer teljestmnye cskkent, avlaszidk nnek. Vals idej rendszer????
o Rosszabb esetben kiheztets, vagy akr holtpont is lehet apriorits inverzi eredmnye.
o Klasszikus plda: Mars Pathfinder 1997...
-
8/3/2019 Slides 12 Mutex
23/54
BME-MIT 2011, Minden jog fenntartva 23. lap
Priorits inverzi plda 1.
Lpsek sorozata:o
Task3 magas priorits feladat valamilyen esemnyre vr (denem A erforrs felszabadulsra). Pl. B erforrsra
Task3
Task2
Task1
Resource A Resource B
T3 vr B-re
Task fut
-
8/3/2019 Slides 12 Mutex
24/54
BME-MIT 2011, Minden jog fenntartva 24. lap
Priorits inverzi plda 2.
Lpsek sorozata:o
Task1 alacsony priorits feladat fut, s megszerzi az Aerforrst, s azt hasznlva fut tovbb.
Task3
Task2
Task1
Resource A Resource B
T3 vr B-reT1 megkapja B-t
ld
-
8/3/2019 Slides 12 Mutex
25/54
BME-MIT 2011, Minden jog fenntartva 25. lap
Priorits inverzi plda 3.
Lpsek sorozata:o
Task3 magas priorits feladat ltal vrt esemny megrkezik (Bfelszabadul), futni kezd (preemptv temezs).
Task3
Task2
Task1
Resource A Resource B
T3 felszabadulT1 megkapja B-t
ld
-
8/3/2019 Slides 12 Mutex
26/54
BME-MIT 2011, Minden jog fenntartva 26. lap
Priorits inverzi plda 4.
Lpsek sorozata:o
Task3 fut, majd hasznlni kvnja az A erforrst. Mivel A foglalt,ezrt vrakozni kezd (lnyegben T1-re vr).
Task3
Task2
Task1
Resource A Resource B
T1 megkapja B-t T3 A-ra vr
i i i i ld
-
8/3/2019 Slides 12 Mutex
27/54
BME-MIT 2011, Minden jog fenntartva 27. lap
Priorits inverzi plda 5.
Lpsek sorozata:o
Task1 ismt tud futni (nincs magasabb priorits feladat),hasznlja A-t.
Task3
Task2
Task1
Resource A Resource B
T1 megkapja B-t T3 A-ra vr
P i i i i ld 6
-
8/3/2019 Slides 12 Mutex
28/54
BME-MIT 2011, Minden jog fenntartva 28. lap
Priorits inverzi plda 6.
Lpsek sorozata:o
Task2 kzepes priorits feladat futsra ksz llapotba kerl, smivel magasabb priorits, fut llapotba kerl, s hossz (akrvgtelen) ideig CPU intenzv feladatokat hajt vgre (I/O burstnlkl).
Task3
Task2
Task1
Resource A Resource B
T1 megkapja B-t T3 A-ra vr
P i i i i ld 7
-
8/3/2019 Slides 12 Mutex
29/54
BME-MIT 2011, Minden jog fenntartva 29. lap
Priorits inverzi plda 7.
Eredmny:
o Task3 nem tud tovbblpni, hiszen esemnyre vr (A erforrsfelszabadulsra).
o Task1 nem tud tovbblpni, hiszen CPU-ra vr.
o Task2 (TaskX) nem foglalkozik az A erforrssal, s amg
intenzven hasznlja/hasznljk a CPU-t: Task1 nem tudja befejezni a munkjt s felszabadtani az A erforrst.
Amg A erforrs nem szabadul fel, Task3 nem tud futni, s vgrehajtania magas priorits feladatt.
Task3 magas priorits feladatot alacsonyabb prioritsaknem hagynak futni..., ,,
Ez egy egyszer eset, ennl sszetettebb mdon iselllhat ez a helyzet!
M ld
-
8/3/2019 Slides 12 Mutex
30/54
BME-MIT 2011, Minden jog fenntartva 30. lap
Megolds
Priorits rkls (Priority inheritance, PI):o
Az alacsony priorits feladat megrkli az ltala klcsnskizrssal feltartott feladat prioritst a kritikus szakaszbl valkilpsig.
o Csak rszben oldja meg a problmt.
Priorits plafon (Priority ceiling, PC):o Majdnem ugyan az, de az adott kzs erforrst hasznl
legnagyobb priorits feladat prioritst rkli meg (ami lehetnagyobb mint az ppen feltartott feladat).
o Az adott erforrst mskor hasznl tbbi feladat sem tud futni
(ha esetleg azok is CPU intenzvv vlnak).o Az alacsony priorits feladat akadlyoztats nlkl le tud futni.
Modern begyazott OS-ekben vlaszthatak...o None, PI, PC (ha preemptv temezt vlasztunk)
M ld
-
8/3/2019 Slides 12 Mutex
31/54
BME-MIT 2011, Minden jog fenntartva 31. lap
Megolds Priorits rkls (Priority inheritance):
o Az alacsony priorits rszfeladat megrkli az ltala klcsnskizrssal feltartott rszfeladat prioritst a kritikus szakaszblval kilpsig.
o Csak rszben oldja meg a problmt.
Priorits plafon (Priority ceiling):
o Majdnem ugyan az, de az adott kzs erforrst hasznllegnagyobb priorits rszfeladat prioritst rkli meg (amilehet nagyobb mint az ppen feltartott rszfeladat).
o Az adott erforrst mskor hasznl tbbi rszfeladat sem tudfutni (ha esetleg azok is CPU intenzvv vlnak).
o Az alacsony priorits rszfeladat akadlyoztats nlkl le tudfutni.
Modern begyazott OS-ekben vlaszthatak...o None, PI, PC (ha preemptv temezt vlasztunk)
gy javtottk meg a Mars Pathfinder-t is. Lnyegben a prioritsrklst belltottk , s jrafordtottk az OS-t, aztn letltttk apatch-et (diff) MARS-on lv HW-ba...
Mirt nem hasznltk egybl? : Nem tudtk hogy van ilyen jelensg, a
VxWorks-ben meg nem ez volt a default (overhead-je nagyobb).Mirt nem fedeztk fel tesztels kzben? : Mert soha nem teszteltekvalshoz hasonl terhelsi krlmnyek kztt. A teljes adatgyjts
soha nem ment a fldn, csak rszrendszerek (gratullok).
P i it I i tbl
-
8/3/2019 Slides 12 Mutex
32/54
BME-MIT 2011, Minden jog fenntartva 32. lap
Priorits Inverzi ms szempontbl
Sokak szerint a priorits inverzi alapveten egy
rendszertervezsi hiba eredmnye:o Nem specilis protokollokkal (PI, PC) kell megoldani,
hanem jl meg kell tervezni a rendszert (prioritsokkiosztsa, klcsns kizrs, klcsns kizrsidtartama, stb.).
o "Against Priority Inheritance" by Victor Yodaiken
A RTLinux kitallja s f fejlesztje
http://www.linuxdevices.com/articles/AT7168794919.html
H l k l k
-
8/3/2019 Slides 12 Mutex
33/54
BME-MIT 2011, Minden jog fenntartva 33. lap
Hogyan lock-olunk
Passzv vrakozs az OS szolgltatsainak
felhasznlsval. Aktv vrakozs.
L k f l ld k
-
8/3/2019 Slides 12 Mutex
34/54
BME-MIT 2011, Minden jog fenntartva 34. lap
Lock feloldsra vrakozs passzvan Sleeplock, blocking call, etc.
o temez ltal karbantartott vrakozsi sorok (beszltnk rla).
Ha az erforrs nem lock-olt.
Megkapja az erforrst a feladat lezrva s fut tovbb.
Ha az erforrs lock-olt.
A feladat megy az erforrshoz tartoz vrakozsi sorba, a futsra ksz
feladatok kzl egy fut llapotba kerl. Ha az erforrs felszabadul, akkor az erforrshoz tartoz sor elejn ll
megkapja az erforrst lezrva, s futsra ksz llapotba kerl.
o Erforrs-takarkos, de van overhead-je. OS fut, temezs s kontextus vlts.
o Utna csak futsra ksz sorba kerl a rszfeladat, pontos idztsnehezen megoldhat (a futs kezdete rdekes). Als korltot ad.
o A processzor aludhat, ha nincs feladat: Aztn HW IT-re felbred (bels esemny nem trtnhet).
L k f l ld k kt
-
8/3/2019 Slides 12 Mutex
35/54
BME-MIT 2011, Minden jog fenntartva 35. lap
Lock feloldsra vrakozs aktvan Livelock, spinlock, busy wait, spinning:
o Aktv vrakozs az erforrs felszabadulsra s megszerzsre
(CPU erforrs pazarls). Ha aktvan vr egy rszfeladat, akkor a tbbi rszfeladat hogyan tudja
elidzni a vrakozst megszntet vltozst (esemnyt) a rendszerben?
Nem tudnak futni, az aktvan vrakoz fut!
Kls HW megszakts s/vagy tbb CPU esetn ez nem problma.o Fogyaszts is n, hiszen a CPU folyamatosan fut, nem tud aludni
(ha nincs ppen feladat).
o Compiler optimalizci kiszedheti/eltvolthatja a kdot.
o Fgg a CPU sebessgtl (ha adott idt akarunk vrni): A kd hordozhatsga rossz. Az temez befolysolja, als korlt csak.
Mrjk meg : Linux Bogomips : "bogus" MIPS.
Mi van, ha a CPU vltoztatja az rajelt?
Akk h k k?
-
8/3/2019 Slides 12 Mutex
36/54
BME-MIT 2011, Minden jog fenntartva 36. lap
Akkor hogyan vrakozzunk? Rvididej vrakozshoz a spinlock elkerlhetetlen:
o Garantltan rvid idejklcsns kizrsi problmk kezelsre.
o Perifria kezels sorn, kb. n* 1s vagy az alatti idtartam idztsre. HW Timer is hasznlhat adott idtartam vrakozsra, br
tbbnyire limitlt szm Timer perifria van a MCU-ban.o IT overhead megjelenik.
o Az IT ksleltetsnl csak legalbb egy nagysgrenddel nagyobb vrakozs
indokolhat az overhead miatt.o Ez kombinlhat az aktv vrakozssal (kevsb aktv vrakozs).
Nehz j kompromisszumot tallni. Sleeplock (temez) Dediklt Timer IT spinlock ?
A pontos hatrok sok szemponttl fggenek.
Az temez nem hasznl a feladatok temezse sorn spinlockjelleg hvsokat (egyrtelmen sleeplock alap).
Maga az OS kernel viszont gyakran hasznlhat (Pl. SMP Linux).
Rokon problma Adott idej vrakozs
-
8/3/2019 Slides 12 Mutex
37/54
BME-MIT 2011, Minden jog fenntartva 37. lap
Rokon problma: Adott idej vrakozs
Milyen pontos az OS SW timer?o pl. delay(N), ahol N a vrakozs idtartama ms vagy s-ban.o Hvs s futsra ksz llapotba kerls kztt eltelt idnek a
fels korltjt adja meg tbbnyire. Ezek utn az temeztl fgg a tnyleges vrakozs ideje. Ebben az
rtelemben als korlt.
o Az OS rendszerra ratsnek a felbontsval dolgozik.o Plda: 10 ms-es rats, 40 ms vrakozs
Timerats
delay (40)
3.9 ts
taskDelay (40)
3.1 ts
Rokon problma: Idmrs
-
8/3/2019 Slides 12 Mutex
38/54
BME-MIT 2011, Minden jog fenntartva 38. lap
Rokon problma: Idmrs
Ha az OS timer felbontsa nem elg (1-10-20ms).
Idintervallum mrs kt esemny kztt:o Szabadon fut Timer perifria rtknek lekrdezse, s
klnbsg kpzs. Felbonts programozhat.
Tlcsorduls esetn IT.
o Timestamp counter (pl. Pentium Timestamp Counter): A nagyobb processzorokon megtallhat.
Adott felbonts (CPUclk, vagy CPUclk/2n).
Pl. 64-bit regiszter az x86-os CPU-kon a Pentium csald megjelense ta.
Tlcsorduls nem kerl jelzsre, kis valsznsggel trtnik meg a nagy
bitszm miatt (4 GHz CPU esetn 53375.99 nap, 145.8 szkv)
o Esemnyek kztti id, stb. mrhet vele.
o Idmrs tbbprocesszoros/elosztott rendszerben? Ne menjnk bele, kln trgy lenne (nyitott kutatsi tma)
Eszkzk RAM/PRAM modell esetn
-
8/3/2019 Slides 12 Mutex
39/54
BME-MIT 2011, Minden jog fenntartva 39. lap
Eszkzk RAM/PRAM modell esetn
Klcsns kizrs megoldsra:
o Lock bit,o Szemafor,
o Kritikus szakasz objektum,
o Mutex,
o Stb. (minden OS-ben megvan a megolds).
Minden OS-ban hasonl eszkzket fogunk tallni.
o Persze kicsit ms lesz a nevk s mkdsk, lesznek klnbzverzik, stb., a dokumentci olvassa nem kerlhet el
Tipikus hibk kivdsre s a klcsns kizrsi problmamegoldsra:
o Monitor.
Lock bit
-
8/3/2019 Slides 12 Mutex
40/54
BME-MIT 2011, Minden jog fenntartva 40. lap
Lock bit Legegyszerbb forma.
o A vdend erforrshoz tartozik egy logikai vltoz (Boolean).
Lock bit jelentse:o Lock bit FALSE nem hasznlt az erforrs.o Lock bit TRUE hasznlt az erforrs.
Belps mvelet:o Tesztels, ha
Lock bit == FALSE Lock bit = TRUE Megynk tovbb (belpnk a kritikus szakaszba)
Lock bit == TRUE
Aktv vrakozs, amg nem lesz FALSE Kilps mvelet:
o Lock bit = FALSE
Atomi utastsok
-
8/3/2019 Slides 12 Mutex
41/54
BME-MIT 2011, Minden jog fenntartva 41. lap
Atomi utastsok
A lock bit alkalmazsa sorn egy slyos hiba jelenhet
meg:o IT a lock bit tesztelse sorn:
A kvetkez utasts mr nem fog lefutni (az ISR-re kerl a vezrls),vagyis a kritikus szakaszba lpst nem jelezzk, pedig mr abbanvagyunk.
Az IT-ben vagy az utna fut ms rszfeladatokban az erforrsszabadnak ltszik.
A vdett erforrs inkonzisztens llapotba kerlhet.
Megolds:
o IT tilts a teszt eltt, IT engedlyezs a bellts utn (egy CPUesetn).
o Test and Set (TAS), vagy hasonl atomikus gpi utasts.
Szemafor (Semaphore)
-
8/3/2019 Slides 12 Mutex
42/54
BME-MIT 2011, Minden jog fenntartva 42. lap
Szemafor (Semaphore)
Az els binris
szemaforklcsns kizrsi
problmkmegoldsra
Szemafor
-
8/3/2019 Slides 12 Mutex
43/54
BME-MIT 2011, Minden jog fenntartva 43. lap
Szemafor (EWD tlete, 60-as vek) Binris s counter tpus szemafor
o Binris: egy feladat a kritikus szakaszban.o Counter tpus: tbb feladat a kritikus szakaszban, vagy N
darabos erforrs kszletbl M darab lefoglalsa.
OS hvs, a binris szemafor egy magas szint lock bit.o Implementcitl fggen:
Aktvan vrhat (ma mr nem jellemz). Vrakoz llapotba helyezi a rszfeladatot.
E.W. Dijkstra (EWD 1036?) tallta ki a 60-as vek kzepn. Kt mvelet rtelmezett rajta:
o Belps: P(), Wait(), Pend(), o Kilps: V(), Signal(), Post(), o Sokfle elnevezs, a P()-rl vita van, hogy mit is jelent, a V() a
holland kilps szbl ered.
Pldakd
-
8/3/2019 Slides 12 Mutex
44/54
BME-MIT 2011, Minden jog fenntartva 44. lap
Pldakd...P() {
while (value
-
8/3/2019 Slides 12 Mutex
45/54
BME-MIT 2011, Minden jog fenntartva 45. lap
Szemafor (EWD tlete, 60-as vek) A counter tpus esetn a belps s kilps lehet egy
szmmal paramterezett (hny egysg lp be vagy ki).
Ha 1-nl tbb erforrsra van szksgnk, akkor azokatvagy egyben mind megkapjuk, vagy a tredkeket nemfoglaljuk le (ms feladatnak szksge lehet rjuk).o Ezrt paramterezhet ebben az esetben a belps s a kilps
a szksges erforrsok szmval.o Az egyenknt (pl. for ciklussal lefoglalva ket) N darab erforrs
lefoglalsa knnyen versenyhelyzethez, vagy akr holtponthozvezethet.
Kritikus szakasz objektum s Mutex
-
8/3/2019 Slides 12 Mutex
46/54
BME-MIT 2011, Minden jog fenntartva 46. lap
Kritikus szakasz objektum s Mutex
Lnyegben binris szemafor szeren mkdnek.
Kritikus szakasz objektum.o Hasznlata:
Ltre kell hozni a CriticalSection objektumot.
Enter() metdussal lpnk be a kritikus szakaszba.
Blokkol (sleeplock), ha mr valaki benne van a kritikus szakaszban. Leave() metdussal lpnk ki a kritikus szakaszbl.
Ha szksges a CriticalSection objektum megszntethet.
Mutex: Mutual Exclusion rvidtse.o Hasznlata:
Acquire()/WaitOne() fggvny vagy metdus.
Release() fggvny vagy metdus.
Mirt lock olunk mg?
-
8/3/2019 Slides 12 Mutex
47/54
BME-MIT 2011, Minden jog fenntartva 47. lap
Mirt lock-olunk mg? Klcsns kizrst lezrtuk. Rszfeladatok kztti szinkronizci visszavezetse
klcsns kizrsra:o Nincs vdend objektum igazbl, rszfeladatok
egyttmkdse a cl.
Pl. Randev (rendezvous).o Kt vagy tbb feladat sszehangolt vgrehajtsao Pl. a Coroutine-nl megvalstott termel-fogyaszt problma
megoldhat 2 binris szemaforral is.o Ebben az esetben az opercis rendszer ltal nyjtott
szolgltatsokat hasznlunk, s a feladatok passzvan vrnak
egymsra.o A szemaforok alapesetben foglaltknt vannak inicializlva ebben
az esetben.
Memrin keresztl trtn kommunikci.o A kommunikcira hasznlt memria kzs erforrs.
Ktoldal randev binris szemaforral
-
8/3/2019 Slides 12 Mutex
48/54
BME-MIT 2011, Minden jog fenntartva 48. lap
Ktoldal randev binris szemaforralKtoldal randev szemaforral, B s R foglaltknt inicializlva
(bilateral rendezvous)
.
.
.P (sem_B)
Task 1 Task 2 ......
V (sem_B)..
P (sem_R)
P (sem_B)....
.V (sem_R)
.
.
.
P (sem_R)...
Kommunikci: Vdett memriaterlet
-
8/3/2019 Slides 12 Mutex
49/54
BME-MIT 2011, Minden jog fenntartva 49. lap
Kommunikci: Vdett memriaterlet
Szlak kztti kommunikci sorn:
o Folyamatok gy nem tudnak kommuniklni (MMU).o A UNIX SystemV shared memory nem valdi osztott
memria, valjban OS szolgltats! Folyamatok kztti kommunikcit tesz lehetv.
Tmb, Struktra, Objektum. Egy vagy ktirny kommunikci
o Egyirny: A kld rja, a vev/vevk kiolvassk belle.
o Ktirny: Minden fl rja s olvassa. A klcsns kizrst lock-bit, szemafor, mutex,
kritikus szakasz objektum, stb. oldja meg.
Lock-ols sorn elkvetett tipikus hibk
-
8/3/2019 Slides 12 Mutex
50/54
BME-MIT 2011, Minden jog fenntartva 50. lap
Lock-ols sorn elkvetett tipikus hibk
Belps/Kilps elmaradsa.
Tbbszri be- vagy kilps. Ms erforrs lefoglalsa.
Az erforrs indokolatlanul hosszan trtn
lezrsa.oMinimlis idre kell trekedni.
Priorits inverzi.
o Foglalkoztunk vele.
Deadlock s livelock.
o Kln foglalkozunk vele.
Monitor (hibk elkerlsre)
-
8/3/2019 Slides 12 Mutex
51/54
BME-MIT 2011, Minden jog fenntartva 51. lap
Monitor (hibk elkerlsre)
Lokalizljuk a lock-olssal kapcsolatos feladatokata kzs erforrst krlvev API-valo A lock-ols nem sztszrva trtnik a programban,
hanem egyetlen, a kzs erforrshoz szorosan tartozprogramrszletben.
o A megvalsts lehet automatikus, pldul nyelvi
szinten (pl. JAVA, C#). A compiler valstja meg a klcsns kizrst biztost
konstrukcikat (pl. szemafor vagy mutex tnylegesalkalmazsval).
o
Kzzel is kszthetnk hasonl konstrukcit, pl. egyvdett objektumot hozhatunk ltre, amely a nyilvnosmetdusaiban elvgzi a lock-olst, s elrejti a kzserforrst.
Monitor fejldse
-
8/3/2019 Slides 12 Mutex
52/54
BME-MIT 2011, Minden jog fenntartva 52. lap
Monitor fejldse
Hoare s Mesa szemantika
(mkds/jelents).oCharles Antony Richard Hoare.
tlet s rszletes elmleti alapokkidolgozsa.
oMesa programozsi nyelv.
Xerox PARC (Ethernet, grafikus fellet,lzerprinter, stb.).
Hoare s Mesa szemantika
-
8/3/2019 Slides 12 Mutex
53/54
BME-MIT 2011, Minden jog fenntartva 53. lap
Hoare s Mesa szemantika
Hoare szemantika:o Azonnal az erforrst megszerz rszfeladat fut.
Erforrs ignyes s nehz megvalstani.
Nem kompatibilis a preemptv temezkkel.
Mesa szematika:o A futsra ksz rszfeladatok kz kerl, s ksbb az temez
futtatja.o Vannak vele gondok, de azok megoldhatak (most nem
megynk bele).
o "notifyAll" vagy "broadcast" zenetek kldse is lehetsges.
Minden adott esemnyre vr futsra ksz llapotba kerl.
JAVA plda
-
8/3/2019 Slides 12 Mutex
54/54
JAVA plda A synchronized blokk
synchronized (object) {
// az adott object-re biztostva van
// a klcsns kizrs a blokkon bell
}
A synchronized kulcssz
synchronized void myMethod() {
// A metdushoz tartoz objektumra// biztost klcsns kizrst
}
C# esetn : lock block hasonl