Mutex attribútum objektum használata

A legérdekesebb a mutexhez társított attribútum telepítése: privát vagy megosztott. A lezárt mutexek azonos folyamatokban vannak elrendezve. Ön kijelölheti a mutex globális elemeit, vagy megszervezheti egy leíró leírását a szálak között. A megosztott mutexeket olyan szálak használják, amelyek hozzáférnek ahhoz a memóriához, amelyben a mutexet leképezik. Egy ilyen mutex képes megosztani a különböző folyamatok áramlását. A zárt és megosztott mutexek működési elve az 1. ábrán látható. 5.5. Ha el kell különíteni a mutexet a különböző folyamatok meneteitől, azt el kell helyezni a memóriába, ami közös a folyamatokhoz. A POSIX könyvtár számos funkciót határoz meg a memória leképezésére használt memóriák közötti memóriaelosztás és a megosztott memória objektumok használatával. A folyamatokban a mutexek felhasználhatók olyan kritikus partíciók védelmére, amelyek hozzáférnek a fájlokhoz, csatornákhoz, megosztott memóriához és külső eszközökhöz.

Mutex szemaforák használata a kritikus szakaszok kezelésére

A mutexeket a folyamatok és szálak kritikus szakaszainak kezelésére használják a "verseny" feltételek előfordulásának megakadályozására. A mutexek megakadályozzák a "versenyzés" feltételeit, biztosítva ezzel a kritikus részhez való konzisztens hozzáférést. Vegye figyelembe a kódot az 5.1. Két szálat mutat be. A kritikus partíciók védelme érdekében mutexeket használnak.

// Listing 5.1. A mutexek védelme

// a szálak kritikus része

pthread_t ThreadA, ThreadB; pthread_mutex_t Mutex, -pthread_mutexattr_t MutexAttr;

void * feladat1 (void * X)

pthread_mutex_lock (Mutex); // A kód kritikus része.

void * feladat2 (void * X)

// A kód kritikus része.

pthread_mutex_unlos (Mu t ex); visszatérés (0);