O`zbekiston respublikasi oliy va o`rta maxsus ta`lim vazirligi qarshi innovatsion ta’lim universiteti


Semafordan foydalanib , biz bo'limni bajarishdan oldin bajarilishi bilan tugaguncha kutishlarini  kafolatlaymiz


Download 0.83 Mb.
bet5/7
Sana07.02.2023
Hajmi0.83 Mb.
#1176087
1   2   3   4   5   6   7
Bog'liq
Semaforalar

Semafordan foydalanib , biz bo'limni bajarishdan oldin bajarilishi bilan tugaguncha kutishlarini  kafolatlaymiz .

5.3. Ishlab chiqaruvchi-iste'molchi muammosi


Keling, taniqli ishlab chiqaruvchi-iste'molchi muammosini ko'rib chiqaylik. Bu muammoda hujayralardan iborat cheklangan bufer mavjud .  Boshqacha qilib aytganda, bufer maksimal  elementlarni saqlashi mumkin. Buferga ikkita jarayon kiradi, xususan:  va  . 
Ushbu muammoni hal qilish uchun biz  to'liq hujayralar sonini ifodalovchi hisoblash semaforidan foydalanamiz:

Dastlab,  . Ishlab chiqaruvchi elementni buferga joylashtirganda, u signal operatsiyasi orqali semaforni oshiradi. Aksincha, iste'molchi biror narsani iste'mol qilganda, kutish operatsiyasi bilan semafor kamayadi.
Iste'molchi buferdagi oxirgi elementdan foydalansa, oxirgi kutish operatsiyasi bilan u uyqu rejimiga o'tkaziladi.

5.4. Chegaralangan bufer ishlab chiqaruvchi-iste'molchi muammosi


Yuqoridagi yechimning ustiga, agar bufer to'lgan bo'lsa, yana ikkita semafor qo'shish orqali ishlab chiqaruvchini uxlashga majburlashimiz mumkin.  Aytaylik, biz buferdagi mavjud hujayralar sonini ifodalovchi semaforni kiritamiz .  Shuningdek, biz buferdagi to'liq hujayralar sonini ifodalovchi semaforni ham kiritamiz . Bunday holda, biz  buferda semafordan foydalanamiz. Shunga qaramay, ishlab chiqaruvchi va iste'molchi jarayoni bir vaqtning o'zida ishlaydi.
Biz ishlab chiqaruvchi va iste'molchi kodini semaforlarni kiritish uchun o'zgartiramiz:

Bu erda hisoblash semafori  to'liq hujayralar sonini, hisoblash semafori  esa cheklangan buferda mavjud bo'lgan hujayralar sonini ifodalaydi. Bundan tashqari, S semafori buferni bir vaqtda kirishdan himoya qiladi.
Keling, avvalo ishlab chiqaruvchining xatti-harakatlarini kuzatamiz:
Agar  semafor 0 ga aylansa, ishlab chiqaruvchi uyquga ketadi, chunki buferda bo'sh hujayralar qolmaydi.
Bundan tashqari, ishlab chiqaruvchi buferga kirishdan oldin semaforda kutadi . Agar boshqa jarayon allaqachon kutilayotgan bo'lsa  , u uyqu rejimiga o'tadi.
Yangi mahsulotni ishlab chiqargandan so'ng, ishlab chiqaruvchi  semaforga signal beradi, shuning uchun har qanday mumkin bo'lgan iste'molchilarni kutish jarayonlarini uyg'otadi.
Xuddi shunday, iste'molchi bir xil semaforlardan foydalanadi:
Agar  semafor nolga teng bo'lsa, buferda hech qanday element kutilmaydi. Iste'molchi uxlaydi.
Kutish operatsiyasi yoqilgan  bo'lsa, buferga ma'lum bir vaqtda faqat bitta jarayon orqali kirishni ta'minlaydi. Shunday qilib, yoqilgan signal  kutayotgan jarayonlarni uyg'otadi.
Va nihoyat,  semafordagi signal buferga qo'yish uchun biror narsaga ega bo'lgan har qanday ishlab chiqaruvchini uyg'otadi. Oxir-oqibat, iste'molchi keyingi mahsulotni iste'mol qilishga tayyor.

Download 0.83 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling