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


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

4.3. Prioritet inversiyasi


Semaforlardan samarasiz foydalanish natijasida yuzaga kelishi mumkin bo'lgan yana bir muammo bu ustuvor inversiyadir. Prioritet inversiyasi pastroq ustuvor ish yuqoriroq vazifaga nisbatan ustunlik qilganda sodir bo'ladi.
Tasavvur qilaylik, past ustuvor jarayon semaforni ushlab turishdir, bu esa yuqoriroq ustuvor jarayon uchun zarurdir. Bundan tashqari, rejalashtiruvchi navbatda o'rtacha ustuvor jarayon kutmoqda deb taxmin qiling:

Bunday holda, yadro yuqori ustuvorlikni bloklaydigan past ustuvor jarayonni rejalashtirmaydi. Buning o'rniga, yadro o'rtacha ustuvor vazifani bajaradi, bu esa yuqori ustuvor vazifani kutishda davom etadi.
Mumkin yechim semaforlarda ustuvor merosdan foydalanishdir.

5. Semaforlar harakatda


Endi biz semafor nima ekanligini aniqlaganimizdan so'ng, keling, semaforlardan foydalanish holatlarini ko'rib chiqamiz.

5.1. Kritik bo'lim muammosi


Muhim bo'lim dastur kodining bir qismi bo'lib, biz bir vaqtning o'zida kirishni oldini olishni xohlaymiz. Kritik bo'lim masalasini hal qilish uchun ikkilik semafordan foydalanishimiz mumkin. Bunday holda, semaforning boshlang'ich qiymati yadroda 1 ga teng:

Yuqoridagi misolda biz muhim bo'limga kirishda o'zaro istisno qilishni kafolatlaymiz.
Kutish bilan band bo'lish o'rniga, kutish jarayoni uxlamoqda, chunki u muhim bo'limda o'z navbatini kutmoqda.
Keyin signal operatsiyasi amalga oshiriladi, yadro tayyor navbatga uyqu jarayonini qo'shadi. Agar yadro jarayonni bajarishga qaror qilsa, u muhim bo'limda davom etadi. 
Shunday qilib, biz istalgan vaqtda faqat bitta jarayon muhim qismda bo'lishini ta'minlaymiz.

5.2. Buyurtmani bajarishda 


Faraz qilaylik, biz kod fragmentini  dan oldin bajarmoqchimiz  . Boshqacha qilib aytadigan bo'lsak, biz bajarilishini tugatguncha  kutishni xohlaymiz :

Biz bu muammoni dastlabki qiymati 0 ga o'rnatilgan semafor yordamida osonlikcha engib o'tishimiz mumkin. Keling, kodni o'zgartiramiz:


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