2. Semaphores: Semaphores, resurslarni boshqarishda
ishlatiladigan raqamli
o‘zgaruvchilardir. Ular orqali jarayonlar resurslarga kirish
va chiqishni tartibga
solishadi. Semaphores haqiqiy (binary) va tartiblangan semaphores bo‘lib, ular
mutex algoritmini ham o‘z ichiga olgan holda keng qo‘llaniladilar. Semaphores
algoritmi jarayonlar orasidagi hamkorlikni tuzishda keng qo‘llaniladi.
3. Monitors: Monitor, resurslarni boshqarish uchun ko‘rsatmalar va
ma’lumotlardan iborat o‘ziga xos obyekt. Monitorlarda resurslarga murojaat qilish,
o‘zgartirish va hamkorlikda ishlash uchun maxsus metodlar mavjud bo‘ladi.
Monitorlar jarayonlar orasidagi hamkorlikni boshqarishda yordam beradi va xato
holatlarini oldini olish uchun xavfsizligini ta’minlaydi.
4. Conditional Variables: Shartli o‘zgaruvchilar,
jarayonlar orasidagi
hamkorlikda qo‘llaniladigan xavfsizlik imkoniyatini yaratish uchun ishlatiladi.
Shartli o‘zgaruvchilar orqali jarayonlar izohlangan shartlarga asosan to‘xtalishi,
davom etishi yoki go‘zallik qilishi mumkin. Shartli o‘zgaruvchilar, monitorlar bilan
birga ishlatiladi va jarayonlar orasidagi koordinatsiyani ta’minlaydi.
5. Barrier: Barrier (bar’yer) algoritmi, bir guruhdagi (thread) jarayonlarning
biror amalni bajarishlarini to‘xtatib, hamkorlikda ishlashlarini ta’minlaydi. Barrier
algoritmi, biror jarayonning barcha jarayonlarning bitta nuqtada to‘xtashini kuzatish
uchun ishlatiladi va keyin hamkorlikda ishlashni davom ettiradi.
Ushbu algoritmlar, jarayonlar o‘zaro bog‘lanishini
boshqarishda keng
qo‘llaniladigan usullardan faqat bir nechta namunalar hisoblanadi.
Boshqa
hamkorlik algoritmlari ham mavjud bo‘lishi mumkin, ulardan ba'zilari monitorlar,
spinlocks, event-driven programming va boshqalar bo‘ladi. Algoritmlar
to‘g‘risidagi tanqidiy ma’lumotlar va ulardan foydalanish usullari alohida
tadqiqotlar va tizimlarda mavjud bo‘lgan xususiyatlarga bog‘liJarayonlar o'zaro
bog'lanishi algoritmlari (sinxronlashtirish) har xiljarayonlar
orasidagi resurslarni
yoki ma'lumot almashishni to'xtatish, hamkorlik bilan ishlashni yo'lga qo'yish,
ma'lumot almashish va boshqalar kabi jarayonlarning o'zaro bog'lanishlarini
boshqarishda qo'llaniladi. Bu algoritmlar sinxronlashgan jarayonlar orasidagi
tartibni ta'minlash, xatoliklarni oldini olish va resurslarga to'g'ri murojaat qilishni
ta'minlash maqsadida foydalaniladi. Quyidagi turdagi ba'zi jarayonlar o'zaro
bog'lanish algoritmlaridan mashhur: