Know-how, előadás, szinkronizációs algoritmusok
Kivonat: A folyamatok helyes kölcsönhatása érdekében az operációs rendszer egy szervezeti erőfeszítése nem elegendő. Bizonyos belső változások szükségesek a folyamatok viselkedésében. Ez az előadás foglalkozik az ilyen változásokkal kapcsolatos kérdésekkel, programozási algoritmusokat biztosít az interakciós folyamatok helyes szervezéséhez.
Az előző előadásban az operációs rendszer részeként a folyamatok interakciójának szervezésével kapcsolatos külső problémákról beszéltünk. Tegyük fel, hogy megbízható folyamatkapcsolatot szervezünk, és képesek információt cserélni. További lépéseket kell tennünk annak érdekében, hogy a probléma helyes megoldását az egymással kölcsönhatásban lévő folyamatokkal szervezzük? Meg kell változtatnom a belső viselkedést? Ez az előadás a kérdések magyarázata.
Az interleaving, a versenykörülmények és a kölcsönös kizárás
Átmenetileg szünetet tartsunk az operációs rendszerekről, a folyamatokról és a végrehajtás meneteiről, és beszéljünk néhány "tevékenységről". A tevékenységek keretében meg fogjuk érteni a konkrét cél elérését célzó számos intézkedés következetes végrehajtását. A tevékenységek programokban és hardvereszközökben játszhatók le, az emberek és az állatok rendes tevékenysége során. A tevékenységet feloszthatjuk valamilyen oszthatatlanná vagy atomra. műveleteket. Például a "szendvics készítése" tevékenységét a következő atomi műveletekre lehet bontani:
- Vágjon egy szelet kenyeret.
- Vágjon egy szelet kolbászt.
- Kenje meg egy szelet kenyeret vajjal.
- Tegyen egy szelet kolbászt egy kész szelet kenyérre.
Az oszthatatlan műveletek belső láthatatlan cselekvésekkel rendelkezhetnek (vegyen egy kenyeret a bal kézben, vegyen késsel a jobb kezébe, vágja ki). Nevezzük oszthatatlannak, mert úgy gondoljuk, hogy egyszerre hajtjuk végre, anélkül, hogy megszakítanánk a tevékenységet.
Legyen két tevékenység