Xabarlar navbati
Ko’p hollarda xabar bu ma’lumotni o’z ichiga olgan bufer ko’rsatkichidir.
Shuni e’tiborga olish kerakki, xabar navbatga yuboriladi, masalaga emas, bundan tashqari xabarlar masaladan emas, xabarlar navbatidan olinadi. Shuningdek, ko’plab loyihalarda qaysi masalalar xabarni yuborayotganligi va qabul qilayotganligi aniq bo’ladi, ammo boshqa loyihalarda bu masala bajarilayotganda aniqlanishi mumkin.
Xabarlar navbatidan foydalanish
Xabarlar navbatidan ISR (Interrupt Service Routine – uzilaishlarni qayta ishlovchi - UQI) dan yoki masaladan masalaga xabarlar yuborish uchun foydalaniladi. Bu “otish va unutish” amaliga o’xshash. Yuborish masalasi yoki UQI xabarni yuboradi va boshqa masala uni keyinroq qabul qilib olishadi deb faraz qilinadi. Xabarlar navbati masalalar sinxronizatsiyasini shunday o’z ichiga oladiki, masala xabarni yuborganida va xabarni navbatdan kutayotgan masala mavjud bo’lsa, bu masala xabarni oladi, so’ngra blokdan chiqariladi. Shuning uchun qabul qiluvchi masalaga boshqa biror yo’l bilan bu haqda xabar berish shart emas.
Xabarlar navbatidan foydalanish
OT xabar tarkibida nima borligini bilishi shart emas, u shunchaki xabarni o’z buferlaridan biriga ko’chiradi va masala xabarni olishi kerak bo’lganda, u holda xabar qabul qilinuvchi masala buferiga nisxalanadi. Shu usulda xabarda har qanday ma’lumot turi bo’lishi mumkin, ba’zan shunchaki boshqa masalani blokdan chiqarish uchun fiksirlangan xabar bo’lishi ham mumkin.
Xabarlar navbatini loyihalashga misollar
Eng keng tarqalgan dizayn quyidagicha: bir masala (ishlab chiqaruvchi masala) navbatga xabar yuboradi, boshqa masala (talabgor masala) xabarni qabul qiladi.
Ba’zan ishlab chiqaruvchi masalasi talabgor masalasidan qandaydir javob kutadi, masalan, talab qiluvchi masalasiga ba’zi hisoblashlarni bajarishi yoki biror ma’lumotlarni formatlash taklif qilinishi mumkin. So’ngra ikkinchi navbat qo’shiladi, unga talabgor masalasi javob berishi mumkin, bu javobni esa ishlab chiqaruvchi masalasi o’qishi mumkin.
Agar talab qiluvchi masala ishlab chiqaruvchi masalasi haqida faqat signal berishi kerak bo’lsa, ya’ni unga biror ma’lumot yuborish kerak emas, balki unga keyingi xabar uchun tayyor ekanligini bildirish kerak bo’lsa, u holda ikkinchi navbat semafor bilan almashtirilishi mumkin .
Bitta navbatdan xabarni oladigan bir nechta masala bo’lishi mumkin. Xabar talab qilayotgan masalalar yagona masalaning ekzemplyarlari hisoblanadi, shuning uchun aslida qaysi vazifa xabarni olishi muhim emas.
Albatta, bir nechta masalalar bitta navbatga xabar yuborishi va bunda bu navbatdan qabul qiluvchi bitta masala bo’lish ehtimoli ham mavjud.
Bir necha masalalar bitta navbatga xabar yuborishi mumkin, masalan mijozlarga javob kerak bo’lmaganda mijoz-server modeli
http://fayllar.org
Do'stlaringiz bilan baham: |