O’rnatilgan operatsion tizimlarda semaforlar
Dasturlash tillarida, ayniqsa Unixga asoslangan tizimlarda bir necha jarayonlarning bitta zahira uchun raqobatini koordinatsiyalaydigan yoki sinxronlaydigan harakatlar texnikalari semaforlar deb ataladi. Semafor operatsion tizim (yoki yadro) omborining (xranilishe) aniq joyi qiymati bo’lib, har bir jarayon uning qiymnatini tekshirishi va o’zgartirishi mumkin. Topilgan qiymatga bog’liq holda jarayon zahiradan foydalanishi yoki agar zahira band bo’lsa, undan takror foydalanishga urinish uchun biror vaqt kutib turadi. Semaforlar binar qiymatli (0 yoki 1) yoki qo’shimcha qiymatli bo’lishi mumkin. Qoida bo’yicha, semafordan foydalanayotgan jarayon qiymatni tekshiradi, so’ngra agar u zahiradan foydalanayotgan bo’lsa, buni navbatdagi jarayonga bildirish uchun uning qiymatini o’zgartiradi.
Semafor qiymati har xil jarayonlar uchun ochiq bo'lishi kerak. Shuning uchun semafora jarayonning manzil maydonida emas, balki yadroning manzil maydonida hisoblanadi. Semafora qiymatini tekshirish va o'zgartirish amaliyoti boshqa jarayonlarga nisbatan (ya'ni boshqa jarayonlar bilan uzluksiz) bitta atom operatsiyasi sifatida amalga oshirilishi zarur hisoblanadi. Aks holda, semafora qiymatini tekshirgandan so'ng, jarayon boshqa jarayon bilan uzilib qolsa, bu o'z navbatida semaforni tekshirib, uning qiymatini o'zgartirib yuborishi mumkin.
Semaforlar odatda ikki maqsadda qo’llaniladi: umumiy xotira maydonidan birgalikda foydalanish uchun yoki fayllarga birgalikda murojaat qilish uchun. Semaforlar jarayonlararo o’zaro harakati (interprocess communication - IPC) usullaridan biri hisoblanadi. C dastirlash tili semaforlarni boshqarish uchun interfeyslar yoki funksiyalar to’plamini taklif etadi.
Biz semaforlardan foydalanishni oddiy misol bilan tushuntiramiz. Aytaylik, ba'zi bir umumiy resurs mavjud (masalan, fayl). Muayyan jarayon resursda operatsiyani bajarganda (masalan, faylga yozadi), boshqa jarayonlar uchun manbaga kirishga taqiq qo`yilsin. Buning uchun ma'lum bir butun qiymatni ushbu resurs bilan bog'laymiz - barcha jarayonlar uchun mavjud hisoblagichning 1 qiymati manbaning mavjudligini, 0 - uning mavjud emasligini anglatadi. Keyin, resurs bilan ishlashni boshlashdan oldin, jarayon hisoblagich qiymatini tekshirishi kerak.
O`rnatilgan tizimlarda navbat masalalarini ishlashi uchun sinxronlangan semaforlardan foydalaniladi. Quyidagi 9.3-rasmda semafora tasvirlangan
10.3-rasm. OT semofora
Dostları ilə paylaş: |