O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA
KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Kafedra: AT
Fan: Operatsion tizimlar
Mustaqil ish
Mavzu: “Tupiklar” muammosi va ular bilan kurashish usullari
Bajardi: 219-18- guruh talabasi
Isagaliyev.N
Tekshirdi: Khamroev.A
TOSHKENT 2021
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.
Resurslar qurilmalar va ma'lumotlar bo'lishi mumkin. Ba'zi resurslar jarayonlar orasidagi bo'linishga, ya'ni ajratilgan resurslarga ruxsat beradi. Misol uchun, xotira, protsessor, disklar jarayonlar bilan birgalikda ishlatiladi. Boshqalar esa bo'linishga ruxsat bermaydi, ya'ni ular ajratilgan, masalan, lenta uzatish qurilmasi. Ajratilgan va ajratiladigan resurslardan foydalanish o'zaro blokirovkaga olib kelishi mumkin. Misol uchun, ajratilgan diskdan o'qish bir vaqtning o'zida bir nechta jarayonlarda amalga oshirilishi mumkin, ammo yozuv diskdagi ma'lumotlarga alohida kirishni o'z ichiga oladi. Yozuv sodir bo'lgan diskning bir qismi muayyan jarayonga ajratilgan deb hisoblashimiz mumkin. Shuning uchun, kelajakda biz o'lik uchlari ajratilgan resurslar bilan bog'liq degan taxmindan kelib chiqamiz, ya'ni bu jarayon qurilmalar, fayllar va boshqa resurslarga eksklyuziv kirish huquqi berilganda o'lik holatlar paydo bo'ladi.
Resurs bilan ishlashda an'anaviy hodisalar ketma-ketligi resursni talab qilish, ishlatish va ozod qilishdan iborat. So'rov turi resursning tabiatiga va Osga bog'liq. So'rov aniq bo'lishi mumkin, maxsus qo'ng'iroq talab kabi, yoki yopiq – ochiq faylni ochish uchun. Odatda, agar resurs band bo'lsa va so'rov rad etilsa, so'rov jarayoni kutish holatiga o'tadi.
Bundan tashqari, ushbu ma'ruzada o'lik halokatlarni aniqlash, oldini olish, chetlab o'tish va o'lik halokatdan qutqarish masalalari ko'rib chiqiladi. Odatda, o'lik uchlari bilan kurashish juda qimmat ishdir. Shunga qaramay, bir qator tizimlar uchun, masalan, Real vaqtda tizimlar uchun boshqa chiqish yo'q.
Do'stlaringiz bilan baham: |