Synchronizácia a komunikácia procesov

Agenda Synchronizácia procesov Interakcie procesov Kritériávzájomného vylúčenia Návrhy na dosiahnutie vzájomného vylúčenia Komunikácia medzi procesmi Klasicképroblémy koordinácie procesov Synchronizácia procesov •Príklad: palacinkáreň •procesy: objednávač, servírka, kuchár, pokladňa •kritickésekcie: objednávky, stôl, výdajňa •komunikačnéprostriedky: zdieľanésekcie Existencia súbežnosti procesov OS musíbyťschopný spravovaťrôzne aktívne procesy OS musíprideľovať, uvoľňovaťrôzne prostriedky každému aktívnemu procesu OS musíchrániťdáta, fyzicképrostriedky každého procesu pred neúmyselným záśahomod iného procesu výsledky procesu musia byťnezávisléod rýchlosti vykonávania relatívne k rýchlosti ostatných súbežných procesov 6
Interakcie procesov Kritériávzájomného vylúčenia Žiadne dva procesy nemôžu byťsúčasne vo svojich kritických úsekoch spojených s tým istým zdieľaným prostriedkom. Pokiaľproces do kritického úseku vstúpi, v konečnom čase z neho vystúpi. Ak nie je proces v kritickom úseku, nebráni iným procesom do neho vstúpiť. Každý s procesov žiadajúci vstup do kritického úseku bude uspokojený v konečnom čase. Nie súžiadne predpoklady o relatívnej rýchlosti procesov alebo počte procesov. Návrhy na dosiahnutie vzájomného vylúčenia hardvérovériešenia znemožnenie prerušenia TSL softvérovériešenia uzamykaciepremenné striktnéstriedanie Dekker–Petersonriešenie Riešenia s podporou OS sleep&wakeup semafory monitory Petersonovoriešenie Pred vstupom do kritického úseku oba procesy volajúenter_region, ukladajúdo turn, ten čo to urobíneskôr, čaká Semafóry 1965, E.W.Dijkstra, type semaphore celočíselný counter frontaprocesov Operácie(atomické) downak counter> 0, tak–1, inakprocesdo frontyS upaknejaképrocesy čakajúvo fronte –prvý wakeup, inak counter-1 initcounter= 1, frontasa vyprázdni operácie upa downsúnedeliteľné, atomické inithodnota countersemaforu determinuje koľko procesov môže zdieľať muttex–binárny semafor (0,1)
7
Monitory 1974 Hoare, 1975 BrinchHansen Structuralsynchronizationresouce=monito r Množina procedúr, premenných, dátových štruktúr zjednotených do špeciálneho druhu modulu, balíka operácie: wait(q) delayscallingprocessin queueq signal(q) resumesfirstprocesswhichisstoredin queueq Komunikácia medzi procesmi Posielanie správ: asynchrónne synchrónne primitívy(systémovévolania) send(cieľ, &správa) receive(zdroj, &správa) Posielanie správ Synchronizácia send: blokovaný, neblokovaný receive: blokovaný, neblokovaný, test na prítomnosťsprávy Adresovanie priame: symetrické, nesymetrické nepriame: statické, dynamické, vlastníctvo Formát obsah dĺžka: fixná, variabilná Spôsob zaraďovania do fronty FIFO priorita Klasicképroblémy koordinácie procesov problém obedujúcich filozofov problém čitateľov a zapisovateľov producent -konzument Problém producenta a konzumenta
8
= problém ohraničeného buffra dva procesy zdieľajúohraničenúpamäť(buffer) 1.producent –vkladádoňinformácie 2.konzument –vyberáinformácie Problémy: bufferplný –producent nemôže vkladať bufferprázdny –konzument nemáčo vyberať