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


Ushbu yechim prodyuserning buferda bo'sh joy qolguncha uxlashini ta'minlaydi. Aksincha, iste'molchi iste'mol qilinadigan narsalar qolguncha uxlaydi


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

Ushbu yechim prodyuserning buferda bo'sh joy qolguncha uxlashini ta'minlaydi. Aksincha, iste'molchi iste'mol qilinadigan narsalar qolguncha uxlaydi.

5.5. O'quvchilar va yozuvchilar muammosi


Bu muammo bir xil ma'lumotlar to'plamida ishlaydigan bir nechta  va .  Jarayonlar  faqat ma'lumotlar to'plamini o'qiydi; ular hech qanday yangilanishlarni amalga oshirmaydi. Holbuki,  jarayonlar ham o'qishi, ham yozishi mumkin.
Bizda mavjud sinxronizatsiya muammosi istalgan vaqtda ma'lumotlar to'plamiga kirish uchun faqat bitta yozuvchiga ruxsat berishdir. Biz bir vaqtning o'zida bir nechta o'quvchilarga muammosiz o'qishga ruxsat berishimiz mumkin.
Bizda ma'lumotlar to'plamida qulf bor deb taxmin qiling. Birinchisi  ma'lumotlar to'plamini qulflashi kerak,  keyin esa davom etishi va o'qishni boshlashi mumkin. Oxirgisi  o'qishni tugatgandan so'ng qulfni bo'shatishi kerak.
A  o'qishni boshlaganda yoki o'qishni to'xtatganda, u boshqa  va uchun ma'lumotlar to'plamini bloklashi/qulfini ochishi kerak  .
Ushbu muammoda jarayonni sinxronlashtirishni yoqish uchun biz butun son va ikkita semafordan foydalanishimiz mumkin.
Faylga kirish  sonini bildiruvchi butun sonni nolga tenglashtiramiz.  Bu semafor emas, faqat butun son.
Shuningdek, keling, semaforni  1 ga ishga tushiramiz, bu  o'zgaruvchini bir nechta jarayonlar tomonidan yangilanishidan himoya qiladi.
Nihoyat, keling, semaforni  1 ga ishga tushiramiz deb faraz qilaylik, bu ma'lumotlar to'plamiga bir vaqtning o'zida bir nechta tomonidan kirishdan himoya qiladi  . Shunday qilib, psevdokod  va  jarayonlar:

Bunday holda,  semaforda faqat kutish va signallar  . Agar u  semaforni qo'lga kirita olsa, u davom etishi mumkin. Aks holda, kutish operatsiyasi uni bloklaydi.
Yozish jarayoni tugashi bilan yozuvchi semaforga signal beradi  . Shunday qilib, boshqa jarayonlar ma'lumotlar to'plamiga kirishi mumkin.

A  ning ish jarayoni ancha murakkab. U qiladigan birinchi narsa - ni oshirish  . Buning uchun qiymatni o'zgartirish uchun  semaforga ega bo'lish , unga bir vaqtning o'zida bir nechta jarayonlar tomonidan kirmasligiga ishonch hosil qilish kerak.
Agar  hozirda ma'lumotlar to'plamiga boshqa hech  kim kirmasa, o'sish operatsiyasidan keyin bitta bo'ladi. Bunday holda, hech qanday yozuvchi kirmasligiga ishonch hosil qilish uchun ma'lumotlar to'plamiga kirishdan oldin semaforda kutiladi  .
Semaforni bo'shatgandan so'ng  ,  davom etadi va o'qish operatsiyasini bajaradi.
Nihoyat  , ma'lumotlar to'plami bilan ishlash tugagach, u  qiymatni kamaytirishi kerak. Yana, u semaforni oladi,  o'zgaruvchini  o'zgartiradi va nihoyat semaforni chiqaradi  .

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