“up” operatsiyasi semafor qiymatini 1 ga oshiradi yoki kutish holatidagi jarayonni blokdan chiqaradi.
“down” operatsiyasi semafor qiymatini 1 ga kamaytiradi yoki semafor =0 bo'lsa, jarayonni bloklaydi.
Semaforlar
Buning uchun uchta semafor qo'llaniladi:
- full - to'ldirilgan segmentlarni hisoblash (boshida “full = 0”).
- empty - bo'sh segmentlarni hisoblash (boshida “empty = segmentlar soni”)
- mutex - ikkita jarayonning bir vaqtning o'zida buferga murojaat qilishini istisno qilish (oldini olish) (boshida “mutex = 1”).
Semafor yordamida bufer to’lib toshish muammosini hal qilish.
Myuteks (mutex) - semaforaning soddalashtirilgan versiyasi, u resursga murojaat qilishini boshqaradi. Resurs bloklanganmi yoki yo'qligini ko'rsatadi
Semafor yordamida bufer to’lib toshish muammosini hal qilish
Kirish/chiqish qurilmalari uchun semafor nolga teng. Boshqarish jarayonini ishga tushirgandan so'ng, “down” amalga oshiriladi va semafor nolga teng bo'lgani uchun jarayon bloklanadi. Boshqarish jarayonini faollashtirish kerak bo'lganda, “up” amalga oshiriladi.
Kiritish/chiqarish qurilmalari uchun semaforlardan foydalanish
Do'stlaringiz bilan baham: |