Medsebojna izključitev (Mutex)

Avtor: Lewis Jackson
Datum Ustvarjanja: 8 Maj 2021
Datum Posodobitve: 15 Maj 2024
Anonim
Medsebojna izključitev (Mutex) - Tehnologija
Medsebojna izključitev (Mutex) - Tehnologija

Vsebina

Opredelitev - Kaj pomeni medsebojna izključitev (Mutex)?

Medsebojna izključitev (mutex) je programski objekt, ki preprečuje hkratni dostop do skupnega vira. Ta koncept se uporablja pri sočasnem programiranju s kritičnim odsekom, delom kode, v katerem procesi ali niti dostopajo do skupnega vira. Naenkrat ima mutex le en nit, zato se mutex z edinstvenim imenom ustvari ob zagonu programa. Ko nit vsebuje vir, mora zakleniti mutex iz drugih niti, da prepreči sočasni dostop do vira. Po sprostitvi vira nit odklene mutex.


Uvod v Microsoft Azure in Microsoft Cloud | V tem priročniku boste spoznali, kaj sploh pomeni računalništvo v oblaku in kako vam lahko Microsoft Azure pomaga preseliti in voditi vaše podjetje iz oblaka.

Tehopedija razlaga vzajemno izključenost (Mutex)

Mutex pride v sliko, ko dve niti hkrati delujeta na istih podatkih. Deluje kot ključavnica in je najosnovnejše orodje za sinhronizacijo. Ko nit poskusi pridobiti mutex, pridobi mutex, če je na voljo, sicer je nit nastavljena v stanje mirovanja. Medsebojna izključitev zmanjšuje zamude in čaka zaseden z uporabo čakalnih vrst in stikal. Mutex je mogoče uveljaviti tako na ravni strojne kot programske opreme.

Onemogočanje prekinitev za najmanjše število navodil je najboljši način za uveljavitev mutexa na ravni jedra in preprečevanje poškodb skupnih podatkovnih struktur. Če več procesorjev deli isti pomnilnik, se nastavi zastavica, ki omogoči in onemogoči pridobivanje virov glede na razpoložljivost. Mehanizem zasedenega čakanja uveljavi mutex na področjih programske opreme. To je opremljeno z algoritmi, kot so algoritem Dekkers, algoritem črno-bele pekarne, algoritem Szymanskis, algoritem Petersons in algoritem pekarne Lamports.


Za učinkovito izvajanje mutexa je mogoče določiti medsebojno izključujoče bralnike in brati / pisati kode razreda mutex.