És azt szinkronizálásához interakciós folyamatok - studopediya

Probléma helyzet: elképzelni két diák, akiknek szükségük van, hogy működjön együtt az azonos könyv kapható a könyvtár egyetlen példányban. Mindketten jöttek a könyvtárba, de egyikük előbb a olvasóterem, és figyelembe véve a csak az üres helyet, elmentem a könyvesbolt, a másik - éppen ellenkezőleg, azzal kezdte, hogy megkapta a könyvet, és aztán az olvasóteremben, hogy megtalálja a helyét. Ennek eredményeként, egyikük sem tudja ezt a munkát, mert erre nem rendelkeznek a szükséges forrásokat. Feltételezhetjük, hogy ebben az esetben nem volt egy holtpont, vagy más szavakkal, szegecs? Válasz: Nem, ebben az esetben mi nem foglalkozunk a szegecs, és a sorban. Valóban, egy diák várta az olvasóteremben lehet „feloldani” a megjelenése bármely más helyen az olvasóteremben, aztán végezte a munkáját, és halad a könyv „feloldja” egy másik diák vár egy könyvesbolt. Ahhoz, hogy a helyzet nevezhetnénk szegecs, ki kell egészíteni azzal a feladattal, a másik feltétel, az olvasóteremben csak egy munka.

A folyamat az úgynevezett párhuzamos ha léteznek egyszerre. Párhuzamos folyamatokat lehet osztani a következő két csoportra:

· Önálló (nem kell kölcsönhatásba egymással) folyamatok;

· Aszinkron (kölcsönhatásban és igénylő időszakos szin chronization) folyamatok.

Folyamat szinkronizáció - a különleges atomi opera-lítása során az inter-process kommunikációt.

Folyamatok gyakran kell kommunikálni egymással, például egy folyamat továbbítja az adatokat egy másik folyamat vagy több folyamat képes feldolgozni az adatokat egy általános file. Mindezekben az esetekben van egy probléma a szinkronizálás a folyamatok, amelyeket meg lehet oldani a felfüggesztés és aktiválási folyamatok, sorban állás, blokkoló és források felszabadításában.

A elhanyagolása szinkronizálását futó folyamatokat párhuzamosan futó állapotban hibás működéshez vezethet, vagy akár a rendszer összeomlik. Vegyük például (1. ábra), nyomja meg a program files (nyomtatószerver). Ez a program kinyomtatja egyenként az összes fájlt, akiknek a neve egymás után a beérkezés sorrendjében rögzítjük egy speciális állami file „megrendelések” egyéb programok. Különleges változó a következő, szintén mindenki számára hozzáférhető kliens folyamat számát tartalmazza az első szabad írni a fájl pozíció a fájl nevét a „rend”. Folyamatok kliens olvassa ezt a változót rögzítjük a megfelelő „Order” file pozíciójának fájlnév és a növekvő NEXT jegyre jutó. Tegyük fel, hogy egy bizonyos ponton a folyamat R döntött, hogy nyomtatni egy fájlt, mert ezt olvassuk le a NEXT, amelynek értéke a határozottságát tegyük fel, hogy 4. Eljárás emlékezni ezt az értéket, de tegye a fájl nevét még nem volt ideje, mert annak végrehajtása megszakadt (például következtében a kimerültség egy foton). A következő eljárás az S, aki ki akar nyomtatni egy fájlt, ugyanazt tartalmazza, mint az érték a NEXT elhelyezett, a negyedik helyre a nevét a fájlt, és építeni a változó értékét eggyel. Kapott az előző iteráció, írja a fájl nevét a 4. pozícióban, a tetején a folyamat fájlnév S. amikor ismét a folyamat vezérlés visszakerül R, akkor folytatódik a végrehajtás, teljes összhangban az aktuális értéket a szabad helyzet

Így a folyamat S nem látja a nyomtatási fájl. A komplexitás a szinkronizációs probléma a szabálytalanság helyzetekben: az előző példában is képviselteti magát, és egyéb fejlesztések: a fájlok már elvesztette néhány folyamatok, vagy éppen ellenkezőleg, sem vesztett fájlokat. Ebben az esetben az összes folyamat meghatározott kölcsönös sebesség és pillanatok megszakítás. Ezért hibakereső kölcsönható folyamatok kihívást jelent.

Hasonló helyzetek, amikor két vagy több folyamat kezelni a megosztott adatok és a végeredmény attól függ, hogy a folyamat sebesség arányt nevezzük versenyzést.

Kritikus erőforrás - az erőforrás, amely képes kiszolgálni egyetlen folyamat egy időben. Ha több folyamat szeretné használni a kritikus iroda erőforrás-megosztás mód, meg kell szinkronizálni tevékenységüket egy erőforrás mindig is a birtokában legfeljebb ódákat-CIÓ őket.

Kritikus területek - részei a folyamat, ahol van egy hivatkozás a Cree-matic erőforrás. Kritikus területeken kell egymást kölcsönösen kizáró, azaz a. E. Minden alkalommal legfeljebb egy folyamat lehet elfoglalt végrehajtó kritikus tekintetében az erőforrás-lan ka. Rendelkezés (támogatási mechanizmus) a kölcsönös kizárás - a kulcs a karaván a párhuzamos programozás.

Lock - Execution Prevention senkinek semmit. A folyamat a zárolást előtt a kritikus szakasz, és távolítsa el a kibocsátás után. Természetesen, ha a helyén van tiltva, a Dru-goy folyamatot kell várni kinyit.

1. ábra. Példa szükséges szinkronizáció

Egy tipikus példa a megosztott erőforrás kritikus változásokat Nye összefoglalja bizonyos értéket (nevezzük számláló). Kritikus szakaszok folyamatok azután tartalmazza az alábbi kódot:

Counter: = Counter + 1.

Racing - helyzetet, amikor két vagy több folyamat mye kezelt elválasztja adatok és a végeredmény attól függ, hogy a sebesség aránya azok végrehajtását.

Egy fontos fogalom a szinkronizálási folyamat a „kritikus szakasz” A program (CS).

Kritikus szakasz - része egy olyan program, amely hozzáférést biztosít a megosztott adatok.

Hogy kizárja a rassz hatását kapcsolatban némi erőforrást biztosítani kell, hogy minden pillanatban a kritikus szakaszban, a kapcsolódó erőforrás, ez volt a maximum egy folyamat. Ezt a technikát nevezik mutexek. A legegyszerűbb módja annak, hogy a kölcsönös kizárás - lehetővé teszi a folyamatot, amely a kritikus szakaszban, letiltja az összes megszakítást. Ez a módszer azonban nem alkalmas, mert veszélyes bízni a menedzsment a rendszer a felhasználó számára folyamatot; ez hosszú időt vesz igénybe a processzor és az összeomlás a folyamat a kritikus területen az összeomlás az egész rendszer fog szenvedni, mert a megszakítás soha nem lesz megoldott.

Egy másik módja az, hogy a blokk a változókat. Minden megosztott erőforrás kapcsolódó bináris változó, amelynek az értéke 1, ha az erőforrás rendelkezésre áll (azaz nincs folyamat jelenleg egy kritikus szakasz társított folyamat), és a értéke 0, ha az erőforrás foglalt. A 2. ábra egy részét a folyamat algoritmus végrehajtásához alkalmazott kölcsönös kizárási hozzáférés egy megosztott erőforrás D blokkoló változó F (D). folyamat ellenőrzéseket, mielőtt a kritikus szakaszban, ha a forrás szabadon D. Ha foglalt, akkor az ellenőrző ciklikusan ismétlődik, ha rendelkezésre áll, az értéke F (D) beállítása 0, és a folyamat belép a kritikus szakaszt. Miután a folyamat lépéseit elvégezni az összes megosztott erőforrás D, a változó értéke F (D) van beállítva, hogy ismét az 1.

Ha minden process vannak írva a fenti megállapodások, a kölcsönös kizárás garantált. Meg kell jegyezni, hogy ellenőrzése és változó beállításával blokkoló művelet az oszthatatlan. Hadd magyarázzuk ezt. Hagyja, hogy a szkennelési folyamat változó határozza meg, hogy az erőforrás áll rendelkezésre, de rögtön azután, hogy mivel nem adja a változónak 0, megszakadt. Az ő felfüggesztés folyamat zajlott egy másik forrás, hogy belépett a kritikus szakaszban, hanem megszakadt, de nem fejezték a munkát a megosztott erőforrás.

És azt szinkronizálásához interakciós folyamatok - studopediya
Amikor az ellenőrzési került vissza az első eljárás, azt feltételezve, szabad forrás, ez határozza meg a jele, a foglalkoztatás és elkezdte feladataik kritikus szakasz. Így volt törve a kölcsönös kizárás, ami potenciálisan vezethet a kívánt eredményeket. Annak érdekében, hogy az ilyen helyzetek irányító rendszer a gép, kívánatos, hogy egy egységes parancs „check-telepítés”, vagy rendszer végrehajtására révén megfelelő szoftver primitívek, amely tiltja megszakítás az egész művelet, és a telepítés tesztelés.

Végrehajtása kritikus szakaszok segítségével blokk változók jelentős hátránya: idején, amikor a folyamat a kritikus szakaszban, egy másik folyamat, amely ugyanazt az erőforrást fog rutinszerű cselekvések egy szavazást a blokkoló változó hulladék CPU idő.

A 3. ábra időzítési diagramja egy parancs végrehajtását a „Check for és telepítése.”

Kapcsolódó cikkek