|
Berkliklarga ishlov berish usullari
|
bet | 51/222 | Sana | 15.05.2024 | Hajmi | 5,84 Mb. | | #236377 |
Nazariy jihatdan quyidagi berkliklarga ishlov berish usullari bo‘lishi mumkin:
Tizim hech qachon berklik holatiga kirmasligiga amin bo‘ling;
Tizim berklik holatiga kirishi mumkinligini olish, lekin berklikdan keyin qayta tiklanish imkoniyatini ko‘zda tutish.
Afsuski, amalda ko‘plab OTlarda (shu jumladan, UNIXda) berkliklar bilan kurashishning uchinchi “usuli” ham ishlatiladi. Berkliklar muammosi inkor qilinadi, lekin OT mualliflari hech bir asoslarsiz tizimda berkliklar mumkin emasligiga da’vo qilishadi.
Berkliklarning oldini olish qanday usullarining mumkinligini tahlil qilamiz. Asosiy g‘oya jarayonlar tomonidan resurslarga so‘rovlar usullarini cheklash hisoblanadi. Resurslarga ega bo‘lishni o‘zaro inkor qilish (berklikning birinchi sharti) imkoniyatini cheklash uchun u barcha resurslar uchun ham talab qilinmasligini ta’kidlash zarur.
Bo‘linadigan resurslar (masalan, konstantlar, kodlar, fayllari massivlari) uchun u talab qilinmaydi. Saqlash va kutish imkoniyatini cheklash (berklikning ikkinchi sharti) uchun qandaydir resursni so‘raydign jarayon boshqa hech qanday resurslarga ega bo‘lmasligini talab qilish mumkin.
Muqobil variant barcha jarayonlar ularning haqiqiy bajarilishini boshlanishigacha barcha zarur resurslarga ega bo‘lishi talabi hisoblanadi. Afsuski, har ikkala talablarning bajarilishi resurslardan foydalanishning yetishmasligi va “och qolish”ga (starvation) olib keladi.
Jarayon resursni har bir kutishida resurslarni qayta taqsimlash algoritmi ma’qulroq hisoblanadi. Agar jarayon qandaydir A resursga ega bo‘lsa va unga darhol ajratilishi mumkin bo‘lmagan boshqa B resursni so‘rasa, u holda jarayon kutishi kerak. Bunda jarayon egallagan A resurs darhol bo‘shatilishi kerak. A resurs jarayon kutayotgan resurslar ro‘yxatiga kirtiladi.
Jarayon faqat agar unga bir vaqtda u ega bo‘lgan barcha eski resurslar va u kutayotgan yangi resurslar ajratilishi mumkin bo‘lsa, qayta tiklanishi mumkin.
Siklli kutish vaziyatining oldini olish uchun eng oddiy yechim barcha resurslar turlari raqamlari bo‘yicha tartiblashtirishni kiritish va jarayon resurslarni faqat ularning raqamlarini ortib borishi tartibida so‘rashi talabini kiritish hisoblanadi.
Amalda bunday yechimni qo‘llanishi va qulay bo‘lishi ehtimoli kam, chunki iste’mol qilinadigan va talab qilinadigan resurslar turlarining o‘ziga xosligi barcha bo‘lishi mumkin raqamlashlarga hech qanday bog‘liq emas va istalgan raqamli resursga ehtiyoj zarurati bo‘yicha vujudga kelishi mumkin.
|
| |