Qarama-qarshi vaziyat - Ba'zi operatsion tizimlarda hamkorlikda iashlayotgan jarayonlar mallumotlarni o'qish va yozish uchun ularning har biri uchun mavjud bo'lgan umumiy ma'lumotlar omboridan foydalanishi mumkin.
- Ushbu umumiy saqlash ombori asosiy xotirada (yoki yadro ma'lumotlar tuzilmasida) bo'lishi mumkin yoki umumiy fayl bilan ifodalanishi mumkin.
- Umumiy xotiraning joylashuvi o'zaro ta'sirning tabiatini va natijada yuzaga keladigan muammolarni o'zgartirmaydi.
- Jarayonlarning amalda qanday bog'lanishini ko'rish uchun oddiy, taniqli misol, chop etish spulerini ko'rib chiqaylik. Jarayon faylni chop etishi kerak bo'lganda, u ushbu fayl nomini maxsus spuler katalogga joylashtiradi.
- Printer demoni deb ataladigan yana bir jarayon vaqti-vaqti bilan chop etilishi kerak bo'lgan fayllarni tekshiradi va agar mavjud bo'lsa, ularni chop etadi va ularning nomlarini katalogdan olib tashlaydi.
Qarama-qarshi vaziyatdagi muammo - Ikki jarayon bir vaqtning o'zida umumiy xotiraga kirishni xohlaydi.
- Bir nechta jarayonlar yoki oqimlar parallel ravishda ishlayotgan bo'lsa, umumiy ajratilgan resurslardan foydalanishda ziddiyatlar paydo bo'lishi mumkin. Bunday resurslar kritik deb ataladi.
- Oqimlarni sinxronlashtirishning muhim tushunchasi dasturning "kritik seksiyalar" tushunchasidir.
- Kritik seksiyalar - dasturning bir qismi bo'lib, agar shu qismiga tegishli o'zgaruvchilar qachonki ushbu qism bajarilishi hali tugallanmagan vaqtda boshqa oqimlar tomonidan o'zgartirilsa, uning bajarilish natijasi oldindan aytib bo'lmaydigan darajada o'zgarishi mumkin.
Sinxronizatsiyalash mexanizmlari - Sinxronlash mexanizmi jarayonlarni kritik seksiyaga kirishni kutish va bo'sh siklda jarayonning ancha uzoq aylanishini, ya'ni qimmatli protsessor vaqtini behuda sarflashni oldini olishga qaratiladi.
- Oddiy dasturlash tillari yordamida tuzilgan algoritmlarda boshqa jiddiy kamchiliklar ham mavjud. Masalan, kompyuter tizimida o'zaro munosabatdagi ikkita jarayon mavjud: ulardan biri - H - yuqori ustuvorlikka ega, ikkinchisi - L - past ustuvorlikka ega.
- Rejalashtiruvchi shunday sozlansinki, yuqori ustuvor jarayon ishga tayyor bo'lganda past ustuvor jarayonni o’rnini bir necha bor olib qo’yadi (agar undan yuqoriroq ustuvor jarayon paydo bo'lmasa) va protsessorni CPU burst davomida egallab turadi.
- Shu sababli, agar L jarayoni o'zining kritik sohasida bo'lsa va H jarayoni protsessorni qabul qilib, kritik sohasiga kirishga yaqinlashsa, shu joyda tupik vaziyat paydo bo’ladi.
- H jarayoni kritik sohasiga kira olmay siklga tushib qoladi va L jarayoniga kritik sohadan chiqish boshqaruvi berilmaydi.
Do'stlaringiz bilan baham: |