Kas yra MUTEX?

Abipusio išskyrimo objektas arba MUTEX yra objektas, sukurtas naudoti kompiuterių programose. Esminė MUTEX funkcija yra sudaryti galimybę kelioms programos gijomis naudotis vienu ištekliu. Paprastai abipusio išskyrimo objektų funkcija yra leisti naudoti vieną išteklį sukuriant aplinką, kurioje prieiga prie išteklių nuolat perduodama pirmyn ir atgal tarp įvairių programos aspektų.

MUTEX aktyvavimo ir kūrimo procesas vyksta atidarius kompiuterio programos programą. Iš esmės programa sukurs MUTEX ir susies jį su konkrečiu ištekliu, kurio reikia veiksmingai atviros programos funkcijai. Iškviečiant išteklius, operacinė sistema MUTEX priskirs unikalų pavadinimą ir naudos jį procesui identifikuoti tol, kol programa bus atidaryta.

Kai MUTEX yra suaktyvintas ir pavadintas seansui, bet kuri kita programos gija, kuriai reikalingas šis išteklius, gali turėti prieigą, net jei išteklius jau aktyviai naudoja kita gija. Nurodydama resurso poreikį, funkcija MUTEX pradės pakaitomis keisti prieigą prie resurso pirmyn ir atgal tarp gijų. Galutiniam vartotojui šis procesas yra skaidrus. Visais praktiniais tikslais atrodo, kad du vartotojai arba dvi gijos vienu metu leidžia mums naudotis tuo pačiu ištekliu.

Nors prieigos perdavimo greitis yra toks greitas, kad galutinis vartotojas jo net nepastebi, reikia pažymėti, kad kai naudojamas išteklius, jis veiksmingai užrakinamas prie vienos sekos gijos. Kita gija, kuriai reikia naudoti išteklius, pateiks užklausą, kuri pateks į eilę ir liks ten, kol pirmoji gija baigs aktyvų naudojimą. Tuo metu išteklius atrakinamas, o MUTEX funkcija leidžia aktyvią prieigą prie kitos eilės gijos. Jei trečia gija yra aktyvi ir jai reikia išteklių, MUTEX taip pat įtrauks šią giją į eilę ir suteiks prieigą rotacijos principu.