Operatsion tizimda resurslar cheksiz bo'lmasligi yoki bir vaqtning o'zida bitta jarayon tomonidan ishlatilishi mumkin
Download 85.83 Kb.
|
Операцион тизимда тупик (deadlock) тушунчаси. Режа (1)
MUHAMMAD AL-XORAZIMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNVERSETETI FARG’ONA FILIALI TELEKOMMUNIKATSIYA INJINIRINGI VA KASB TA’LIM FAKULTETI TELEKOMMUNIKATSIYA TEHNOLOGIYALARI YO’NALISHI 631-20 GURUX TALABASI SOBIROVA KAMOLANING “OPERATSION TIZIMLAR”FANIDAN BAJARGAN MUSTAQIL ISHI Bajardi K.Sobirova Qabul qildi M.Sobirov Deadlock nima? Operatsion tizimda resurslar cheksiz bo'lmasligi yoki bir vaqtning o'zida bitta jarayon tomonidan ishlatilishi mumkin. Jarayon tezligini oshirish uchun ba'zilar protsessor davrlarini olishdan oldin resurslarni ushlab turishadi va shuningdek, bajarilayotgan boshqa jarayonga ehtiyoj sezadilar. Ammo bu erda fojiali o'zgarish sodir bo'ladi, agar ijro etilish jarayoni oldingi jarayon tomonidan ushlab turilgan ba'zi bir jarayonga muhtoj bo'lsa-chi. Bu erda biz bir-birini kutish jarayoni va protsessorning ishlamay qolishi o'rtasida yaratilgan qulfni ko'rishimiz mumkin. Bu jarayon ba'zan resurslarni cheksiz ushlab turganda jiddiy muammolarga olib kelishi mumkin, bu esa boshqa jarayonlarni kutishga olib kelishi mumkin. Klassik misolni real hayotda ko'rish mumkin, masalan, transport vositalari har ikki tomondan kelayotgan yo'l harakati, lekin transport vositalari bir vaqtning o'zida ikkala tomondan kelganda, ikkala transport vositasi ham yo'lda tiqilib qoladi va boshqa transport vositalarini to'sib qo'yadi. Hozirgi vaqtda operatsion tizimlar asosiy xotirada bir nechta jarayonlarni saqlashga qodir. Shunday qilib, jarayonlar protsessor sikllarini olishdan oldin o'z resurslarini ushlab turadi, bu esa boshi berk ko'chaga olib kelishi mumkin. Bundan tashqari, jarayonni oldini olishning iloji bo'lmasa, boshi berk ko'chani hal qilish qiyinlashadi. Keling, tizim boshi berk ko'chada yoki yo'qligini aytishimiz mumkin bo'lgan zarur shartni ko'rib chiqaylik. Buni aniqlashning 4 ta usuli mavjud.Operatsion tizimlardagi boshlanish nima? Tugallanishning texnik ta'rifi: Agar to'plamdagi har bir jarayon to'plamdagi faqat boshqa jarayon sabab bo'lishi mumkin bo'lgan hodisani kutayotgan bo'lsa, jarayonlar to'plami boshi berk ko'chada deyiladi. Siz va do'stingiz biror narsa eyishga qaror qilgan stsenariyni ko'rib chiqing. O'zingizga xizmat qilish uchun siz bir piyola tanlaysiz, lekin qoshiq olmadingiz, boshqa tomondan, do'stingiz qoshiq oldi va piyola olmadi. Endi ikkalangizda ham resurs bor (piyola yoki qoshiq) va shirinlikni iste'mol qilish uchun yana bitta manba (qoshiq yoki piyola) kerak. Siz ham, do'stingiz ham o'z manbasini boshqa odamga berishga tayyor emassiz. Shunday qilib, siz ikkalangiz ham bir-biringizni cheksiz kutib turasiz va buni biz boshi berk ko'chada deb ataymiz.Tugallanish - bu ikki yoki undan ortiq jarayon bloklangan holat, chunki har bir jarayon resursni ushlab turadi va boshqa jarayon tomonidan olingan boshqa resursni kutadi. Mahalliy tarmoqda resurslarning ko'p qismi umumiy bo'ladi. Ikki dan ortiq jarayonlar boshi berk ko'chada bo'lsa, u tiqilib qoladi. Har bir turdagi bitta resurs bilan blokirovkani aniqlash Bu oddiy muammo. Keling, ushbu stsenariyda bir nechta jarayonlar va manbalarga misol keltiraylik.Bu holatda beshta jarayon va beshta manba mavjud. Jarayonlar doiralarda, resurslar esa kvadratlarda. Tugallanishni aniqlash uchun, agar barcha resurs turlari faqat bitta misolga ega bo'lsa, biz resurslarni taqsimlash grafigining bir varianti bo'lgan kutish uchun grafik deb nomlangan grafikdan foydalanishimiz mumkin. Bu erda cho'qqilar jarayonlarni ifodalaydi va P1 dan P2 gacha yo'naltirilgan chekka P1 P2 tomonidan ushlab turilgan resursni kutayotganligini ko'rsatadi. Resurslarni taqsimlash grafigi misolida bo'lgani kabi, kutish grafigidagi tsikl ham boshi berk ko'chaga kirib qolganligini ko'rsatadi. Shunday qilib, tizim kutish grafigini saqlab turishi va har qanday blokirovkalarni aniqlash uchun davriy tsikllarni tekshirishi mumkin.Yuqoridagi grafikda istalgan tugunni tanlang va u xuddi shu tugunga qaytib kelishini tekshiring. Masalan, P2 jarayonini tanlaymiz. P2 R5 tomon yo'naltirilgan, ya'ni u ushbu resursga (R5) muhtoj. R5 P4 tomon yo'naltirilgan, ya'ni P4 hozirda R5 resursini ushlab turadi. P4 R2 tomon yo'naltirilgan, ya'ni u R2 resursini kutmoqda. R2 P1 tomonidan ushlab turiladi P1 R1 ni kutmoqda Va nihoyat, R1 bizning boshlang'ich tugunimiz P2 tomonidan ushlab turiladi. Biz dastlabki tugunimizga qaytishga muvaffaq bo'lganimiz sababli, joriy grafik uchun resurslar boshi berk ko'chaga tushib qoladi. Resurs uchun bir nechta misollar mavjud bo'lsa, kutish grafikidan foydalanib bo'lmaydi, chunki tsikl boshi berk ko'chaga olib kelmasligi mumkin. Bunday holatda, blokirovkani aniqlash uchun Banker algoritmiga o'xshash algoritmdan foydalanishimiz mumkin, biz buni keyinroq muhokama qilamiz. O'lik holatini aniqlagandan so'ng, biz undan tiklanishimiz kerak. O'likdan xalos bo'lishning ba'zi usullari quyidagilardir: Jarayonni tugatish: O'liklarni bartaraf etish uchun biz bir yoki bir nechta jarayonlarni o'ldirishimiz mumkin. Buning uchun biz ikkita usuldan foydalanamiz: Tugatish bilan bog'liq barcha jarayonlarni to'xtating Tugallanish bartaraf etilmaguncha bir vaqtning o'zida bir jarayonni to'xtating. Resurslarni oldini olish: Resurslarni oldindan tanlash orqali to'siqlarni bartaraf etish uchun biz ba'zi resurslarni jarayonlardan ozod qilamiz va bu resurslarni boshqa jarayonlarga beramiz. Preemp - bu jarayondan resurslarni olib qo'yishimizni anglatadi. Ushbu usul uchta muammoni keltirib chiqaradi -Jabrlanuvchini tanlash: Biz qaysi manbalar va qaysi jarayonlarni oldini olish kerakligini, shuningdek, xarajatlarni minimallashtirish tartibini aniqlashimiz kerak. Orqaga qaytarish: Resurslar oldindan olinadigan jarayon bilan nima qilish kerakligini aniqlashimiz kerak. Bitta oddiy g'oya butunlay orqaga qaytishdir, ya'ni jarayonni to'xtatib, uni qayta ishga tushiring. Ochlik: Tizimda xuddi shunday jarayon har doim qurbon sifatida tanlanishi mumkin. Natijada, bu jarayon hech qachon belgilangan vazifani bajara olmaydi. Bu holat ochlik deb ataladi va undan qochish kerak.Tugallanishdan qochish O'liklarni oldini olish uchun biz jarayonlar bo'yicha resurslardan foydalanish, jumladan mavjud resurslar, ajratilgan resurslar, kelajakdagi so'rovlar va jarayonlar bo'yicha kelajakdagi nashrlar bo'yicha oldingi bilimlardan foydalanishimiz mumkin. Ko'pchilik boshi berk ko'chadan qochish algoritmlari har bir jarayonga kerak bo'lishi mumkin bo'lgan har bir turdagi resurslarning maksimal sonini oldindan aytib berish uchun kerak. Barcha ma'lumotlarga asoslanib, biz jarayon resursni kutish kerakmi yoki yo'qmi, qaror qabul qilishimiz mumkin va shu bilan aylanma kutish imkoniyatidan qochamiz. Agar tizim allaqachon xavfsiz holatda bo'lsa, biz xavfli holatdan uzoqlashishga va boshi berk ko'chadan qochishga harakat qilishimiz mumkin. Xavfli holatda o'lik blokirovkadan qochib bo'lmaydi. Tizim o'lik holatida bo'lmasa va resurslarni mavjud maksimal darajada taqsimlay olsa, uni xavfsiz holatda deb hisoblash mumkin. Jarayonlarning xavfsiz ketma-ketligi va resurslarni taqsimlash xavfsiz holatni ta'minlaydi. Tugallanishning oldini olish algoritmlari, agar jarayon tizimni xavfli holatga keltirsa, resurslarni jarayonga ajratmaslikka harakat qiladi.Resurslarni taqsimlash grafigi odatda boshi berk ko'chadan qochish uchun ishlatiladi. Agar resurslarni taqsimlash grafigida tsikllar bo'lmasa, u holda hech qanday o'lik yo'q. Agar tsikllar mavjud bo'lsa, o'lik bo'lishi mumkin. Agar har bir resursning faqat bitta nusxasi bo'lsa, tsikl boshi berk ko'chaga kirib qolganligini anglatadi. Resurs blokirovkalaridan qochish uchun bankirning algoritmi Bankerning algoritmi Dijkstra tomonidan yozilgan. Bu rejalashtirish algoritmi va blokirovkani aniqlash algoritmining kengaytmasi hisoblanadi. Bankirning algoritmi qanday ishlaydi?Mijozlarga kredit berib, shahar bo'ylab yurgan bankirni ko'rib chiqing. Agar mijozga kredit berish xavfli holatga olib kelsa, u rad etiladi. Agar mijozga kredit berish xavfsiz holatga olib kelsa, u amalga oshiriladi. Bu o'xshashlikda kredit resurslar soni, mijozlar jarayonlar, bankir esa operatsion tizimdir. Endi bankirda o'nta kredit birligi (10 ta manba) bo'lgan stsenariyni tasavvur qiling. To'rtta mijoz (jarayonlar) mavjud va ularning barchasi kreditning (resurslarning) maksimal talab qilinadigan birliklarini belgilab qo'ygan. Ushbu dastlabki jadvalga qarang.
Download 85.83 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling