MA'LUMOTNI BIR JARAYONDAN BOSHQASIGA UZATISH.
Kanal uchun sxema
Soketlar uchun sxema
Musobaqa holati - bu bir vaqtning o'zida bir nechta jarayonlar ma'lumotlarni (xotiraga yoki faylga) o'qish yoki yozish holatida bo’lishidir.
Ikkita jarayon faylni chop etishga urinayotgan misolni ko'rib chiqamiz. Buning uchun ular fayl nomini chop qilish spuleri (print spooler) bo'sh segmentiga qo'yishlari kerak.
in-keyingi bo'sh segmentni ko'rsatadigan o'zgaruvchi.
out -chop etish uchun keyingi fayl nomini ko'rsatadigan o'zgaruvchi.
Musobaqa holati
Musobaqa uchun misol
Kritik soha - bu umumiy ma'lumotlarga murojaat qiladigan dastur qismidir.
Musobaqa holatidan qochish va jarayonlarning samarali ishlashi uchun qo’yiladigan shartlar:
- Ikki jarayon bir vaqtning o'zida kritik sohalarda bo'lmasligi kerak.
- Kritik sohadan tashqarida bo'lgan jarayon boshqa jarayonlarni bloklab qo'yolmaydi.
- Jarayon kritik sohaga tushib qolishi doimo kutish (qotib qolish) vaziyatida bo’lishi mumkin emas.
Kritik sohalar
Kritik sohalardan foydalangan holda o'zaro istisno qilish
O'zaro istisno qilish usullarini ko'rib chiqamiz.
Uzilishlarni taqiqlash. Jarayon kritik sohaga kirganda barcha uzilishlarni taqiqlashdan iborat.
Ushbu usulning kamchiligi shundaki, agar jarayon muvaffaqiyatsizlikga uchrasa (сбой), u uzilishlarni taqiqlashni olib tashlay olmaydi.
Blokirovka o'zgaruvchilari. Agar ushbu o'zgaruvchining qiymati, masalan, 1 ga teng bo'lsa, u holda resurs boshqa jarayon bilan band bo'ladi va ikkinchi jarayon o'zgaruvchi 0 qiymatini olguncha kutish rejimiga o'tadi (bloklanadi).
Faol kutishli o'zaro istisno qilish
Blokirovka qiluvchi o'zgaruvchilar usuli
Chop qilish jarayonidagi kabi muammo yuzaga kelishi mumkin, ya’ni birinchi jarayon blokirovka o’zgaruvchisi qiymatini 0 deb hisoblangandan so'ng, ikkinchi jarayon ham blokirovka o’zgaruvchisi qiymatini 0 deb hisoblashi va protsessorni egallashi mumkin. Bloklangan jarayon faol kutish rejimida bo'lib, blokirovka o'zgaruvchisi qiymatining o'zgarganligini doimiy ravishda tekshiradi.
Do'stlaringiz bilan baham: |