Tupiklar muammosiga e'tibor bermaslik
Eng oddiy yondashuv o'lik uchlari muammosini sezmaslikdir. Bunday qaror qabul qilish uchun o'zaro blokirovkaning yuzaga kelish ehtimolini baholash va uni apparat va dasturiy ta'minotning boshqa kamchiliklariga zarar etkazish ehtimoli bilan taqqoslash kerak. Dizaynerlar, odatda, tizimning ishlashi yoki foydalanuvchilarning qulayligi bilan murakkab va qimmatbaho o'lik oqibatlarga qarshi kurashish vositalarini joriy etishni istamaydilar.
Yadroda bir qator sobit o'lchamli massivlarga ega bo'lgan har qanday OS, ular aniqlanmasa ham, o'lik oqibatlarga olib kelishi mumkin. Ochiq fayllar jadvali, jarayonlar jadvali, aslida har bir jadval cheklangan resurslardir. Jarayon jadvalining barcha yozuvlarini to'ldirish jarayonni yaratish uchun navbatdagi so'rovni rad etishga olib kelishi mumkin. Vaziyatlarning noqulay birlashuvi bilan bir nechta jarayonlar bir vaqtning o'zida bunday so'rovni berishi va o'lik holatda bo'lishi mumkin. Ushbu muammoni hal qilish uchun createprocess chaqiruvidan voz kechishim kerakmi?
Eng mashhur OS (Unix, Windows va boshq.) yondashuv boshqacha tasodifiy o'lik oxiri hokazo jarayonlar, ochiq fayllar sonini cheklash foydalanuvchilarni majbur bema'ni qoidalariga ko'ra afzal, deb taxmin bu muammoni e'tiborsizlik va. n. zo'ravonlik va qulaylik o'rtasidagi kiruvchi tanlash bilan duch, u har bir mos bir yechim topish qiyin.
tupiklarning oldini olish usullari.
To'xtashlarni oldini olishning maqsadi-o'lik holatlar yuzaga kelishi mumkin bo'lgan sharoitlarni ta'minlashdir. Ko'pgina usullar blokirovkaning paydo bo'lishi shartlaridan birining oldini olish bilan bog'liq.
Jarayonni o'z ichiga olgan resursni taqdim etadigan tizim xavfsiz yoki yo'qligini hal qilishi kerak. Savol tug'iladi: har doim to'siqlardan qochish va to'g'ri tanlovni amalga oshirishga yordam beradigan algoritm bormi? Javob: ha, biz o'lik narsalardan qochishimiz mumkin, ammo faqat ma'lum bir ma'lumot oldindan ma'lum bo'lsa.
Do'stlaringiz bilan baham: |