Kirish Tugatish shartlari Tupiklar muammosiga e'tibor bermaslik Qayta taqsimlanmaslik printsipining buzilishi
Download 42.18 Kb.
|
mustaqil ish
Mavzu: “Tupiklar” muammosi va ular bilan kurashish usullari Reja: Kirish Tugatish shartlari Tupiklar muammosiga e'tibor bermaslik Qayta taqsimlanmaslik printsipining buzilishi. Tupiklarni aniqlash. Kirish. Avvalgi ma'ruzalarda biz jarayonlarni muvaffaqiyatli ishlashga imkon beradigan jarayonlarni sinxronlashtirish usullarini ko'rib chiqdik. Biroq, ba'zi hollarda kutilmagan qiyinchiliklar bo'lishi mumkin. Aytaylik, bir nechta jarayonlar cheklangan miqdordagi resurslarga ega bo'lish uchun raqobatlashadi. Agar talab qilingan resurs mavjud bo'lmasa, OS bu jarayonni kutish holatiga o'tkazadi. Kerakli resurs boshqa kutish jarayoni bilan ushlab turilganda, birinchi jarayon o'z holatini o'zgartira olmaydi. Bu holat o'lik oxiri (deadlock) deb ataladi . Ko'p dasturli tizimda, agar u hech qachon sodir bo'lmagan voqeani kutayotgan bo'lsa, jarayon o'lik holatda. Tizimdagi o'lik holat yoki "tizimni osib qo'yish" bir yoki bir nechta jarayonlarning o'lik holatda bo'lishining natijasidir. Ba'zan bunday holatlar qulflar deb ataladi . Umuman olganda, o'lik uchlari muammosi samarali echimga ega emas. Misol keltiring. Keling, ikkita jarayon lentadan printerga chiqarilishini nazarda tutaylik. Ulardan biri lentani monopollashtirishga muvaffaq bo'ldi va printerni da'vo qildi, ikkinchisi esa aksincha. Shundan so'ng, har ikkala jarayon ham ikkinchi resursni kutish bilan bloklanadi (qarang: shakl. 7.1). Shakl. 7.1. O'lik vaziyatga misol Aniqlash. Agar to'siqdagi har bir jarayon faqatgina ushbu to'plamning boshqa jarayoniga olib kelishi mumkin bo'lgan hodisani kutayotgan bo'lsa, ko'plab jarayonlar o'lik holatda bo'ladi. Barcha jarayonlar biror narsa kutayotganligi sababli, ularning hech biri to'plamning boshqa a'zosini uyg'otadigan va shuning uchun barcha jarayonlar birgalikda uxlaydigan hodisani boshlay olmaydi. Yuqorida ta'kidlangan qurilmalar bilan ishlashda paydo bo'ladigan blokirovkaning misoli keltirilgan. Biroq, o'lik holatlar boshqa holatlarda ham sodir bo'lishi mumkin. Misol uchun, ma'lumotlar bazasini boshqarish tizimlarida yozuvlar poyga holatidan qochish uchun jarayonlar bilan lokalizatsiya qilinishi mumkin (5 "sinxronizatsiya algoritmlari"ga qarang). Bunday holda, jarayonlardan biri boshqa jarayon uchun zarur bo'lgan yozuvlarni to'sib qo'yishi mumkin, aksincha. Shunday qilib, o'lik holatlar apparat va dasturiy ta'minot resurslarida ham bo'lishi mumkin. O'lik holatlar ham dasturiy xatolar tufayli yuzaga kelishi mumkin. Misol uchun, bu jarayon semaforning ochilishini behuda kutishi mumkin, chunki noto'g'ri yozilgan dasturda bu operatsiyani ta'minlash unutildi. Cheksiz kutishning yana bir sababi ba'zi jarayonlarga nisbatan kamsituvchi siyosat bo'lishi mumkin. Biroq, ko'pincha, o'lik holatda bo'lgan jarayonni kutayotgan voqea resursni ozod qilishdir, shuning uchun kelajakda resurs turini bartaraf etish usullari ko'rib chiqiladi.
Download 42.18 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling