Tudd Intuíció, előadás szervezés számítástechnikai eljárás
5.6. Kölcsönhatás és szinkronizálását folyamatok és szálak
A párhuzamosan futó egyprocesszoros rendszerben alternatív eljárások hatékony végrehajtásának biztosítása a programok. A többprocesszoros rendszerek nem csak csíkozás. de egymást átfedő folyamatokat. Mindkét technológia, amely lehet tekinteni, mint példát párhuzamos számítási generálni ugyanaz a probléma. Aki egy többszörös programozásról környezetben, folyamatok és szálak mindig aszinkron jellegű - lehetetlen megjósolni a relatív teljesítményét folyamatokat. Moment áramlás megszakítása, míg ezek a sorok a megosztott erőforrás, a kiválasztás sorrendjében szálak végrehajtásra - ezek az események az eredménye egy összefolyásánál sok tényező véletlen, ez igaz mind azokra az áramlás egy folyamat végrehajtására szolgáló közös kód, és ezzel összefüggésben a patakok különböző folyamatok, amelyek mindegyike hordozza saját programot.
Methods kölcsönhatás folyamatokban (szálak) sorolható a mértéke a figyelmet a létezését egy másik folyamat [10].
- Folyamatok nem ismeri a egymás jelenlétében (például különböző folyamatok vagy feladatok a különböző felhasználók). Ezek egymástól független folyamatok, amelyek nem tervezték, hogy együtt. Bár ezek a folyamatok nem működnek együtt, az operációs rendszereket az olyan problémák kezelésére versenyképes a források felhasználását. Például két független alkalmazások hozzáférést kérhetnek ugyanazon a lemezen vagy a nyomtató. OS szabályozza az ilyen kezelés.
- Folyamatok közvetve tisztában egymás jelenlétében (például, egy feladatot folyamatok). Ezek a folyamatok nem kell tisztában egymás jelenlétében akár a folyamat azonosítóját, de közös a hozzáférést egy tárgy, például az input-output puffer, fájl vagy tárol. Ezek a folyamatok mutatnak együttműködést a távolságot a megosztott objektum.
- Folyamatok közvetlenül tisztában egymás jelenlétében (például, a futó folyamatokat egymást követően vagy váltakozva ugyanabban a munkát). Az ilyen eljárások képesek kommunikálni egymással a folyamat azonosítókat és eredetileg tervezték, hogy együtt dolgozni. Ezek a folyamatok is mutatnak együttműködés működését.
Így kapcsolatos potenciális problémákat a kölcsönhatás és szinkronizálását folyamatok és szálak, leírható az alábbi táblázat.
majd végrehajtása P és Q meghatározzuk.
Ha ezek a feltételek nem teljesülnek, akkor lehetséges, hogy a párhuzamos végrehajtás a P és Q határozzuk, de lehet, hogy nem. Az ügy a két folyamat természetes módon általánosítható nagyobb részük.
Feltételek Bernstein informatív, de túl merev. Sőt, szükség szinte nem kölcsönható folyamatokat. Azonban szeretném beállítani alakult determinisztikus folyamatokat, megosztása és az információcsere. Ehhez szükségünk van, hogy korlátozza a számos lehetséges váltakozás az atomi műveleteket, kivéve néhány interleavelő végrehajtásával szoftver szinkronizációs mechanizmusokra, és ezáltal biztosítva rendezett hozzáférését bizonyos adatokat.
A nem-determinisztikus programok halmaza azt mondják, hogy van egy versenyhelyzet (az állam a verseny. Race feltétel). A fenti példában a folyamatok versenyezni számítási változók értékeit x és y.
A feladat a rendezett hozzáférést a megosztott adatok (megszüntetése faji feltétel), abban az esetben, hogy nem érdekel az ő következő eldöntheti, ha minden folyamat kizárólagos hozzáférést biztosítanak az adatokhoz. Minden folyamat, amely hozzáfér a megosztott erőforrások, kizár minden egyéb folyamatok, képes egyszerre kommunikálni velük ezekkel az eszközökkel, ha azt eredményezheti, nem-determinisztikus viselkedés egy sor folyamatokat. Ezt hívják mutexek (kölcsönös kizárás). Ha a kiemelt hozzáférést a megosztott erőforrások fontos, hogy a megfelelő eredményt, akkor az egyik a kölcsönös kizárás nem elég.
Az együttműködésben a különböző kommunikációs folyamatok játszódnak le a teljes működését, ami összeköti őket. Kommunikáció teszi lehetővé a szinkronizálást vagy koordináció a különböző cselekvési folyamatokat. Általában azt lehet feltételezni, hogy a kapcsolat áll egy üzenetet valamilyen. Primitívek a üzenetek küldésére és fogadására lehet biztosítani, hogy a programozási nyelv, vagy az operációs rendszer kernel.
Mivel a kommunikációs folyamat nem fordul elő az erőforrások megosztását, a kölcsönös kizárás nem szükséges, de a probléma a holtpont és az éhezés is érvényesek. Példaként a holtpont eredményezhet olyan helyzetet, amelyben a két folyamat blokkolt vár egy üzenetet egy másik folyamat. Böjtölés lehet következőképpen illusztrálható. Tegyük fel, hogy van három eljárások P1. P2. P3. és azok viszont. megpróbálja felvenni a kapcsolatot a P1 folyamat. Lehet olyan helyzet, amelyben a P1 és P2 folyamatosan kommunikálnak egymással, és P3 blokkolt, várva kapcsolatban P1 folyamat.