• 1. Operatsion tizimda bankers algoritmi
  • Mutaqil ish




    Download 56,16 Kb.
    Sana18.05.2024
    Hajmi56,16 Kb.
    #241465
    Bog'liq
    Operatsion tizim


    Muhammad Al-Xorazmiynomidagi Toshkent AxborotTexnologiyalariUniversiteti


    AXBOROT TEXNOLOGIYALARINING DASTURIY TA’MINOTI KAFEDRASI

    “Operasion tizimlar” fanidan
    MUTAQIL ISH

    Bajardi: Abdullajonov Firdavs


    Tekshirdi : Ro‘zibayev Ortik

    Mavzu: Bankers algoritmi.


    Reja:

    1. Operatsion tizimda bankers algoritmi

    2. Bankers algoritmi


    3,Bankers algoriyimiga misollar
    4.Xulosa
    5.Foydalanilgan adabyotlar

    Bankir algoritmi - bu Edsger Dijkstra tomonidan ishlab chiqilgan resurslarni taqsimlash va boshi berk ko'chadan qochish algoritmi bo'lib, u barcha resurslarning oldindan belgilangan maksimal mumkin bo'lgan miqdorlarini taqsimlashni simulyatsiya qilish orqali xavfsizlikni sinovdan o'tkazadi, so'ngra boshqa barcha manbalar uchun yuzaga kelishi mumkin bo'lgan o'lik sharoitlarini tekshirish uchun "s-holat" tekshiruvini o'tkazadi. kutilayotgan faoliyatni, ajratishni davom ettirishga ruxsat berish kerakligi haqida qaror qabul qilishdan oldin.


    Algoritm THE operatsion tizimini loyihalash jarayonida ishlab chiqilgan va dastlab (Golland tilida) EWD108 da tasvirlangan.[1] Yangi jarayon tizimga kirganda, u da'vo qilishi mumkin bo'lgan har bir resurs turidagi misollarning maksimal sonini e'lon qilishi kerak; aniqki, bu raqam tizimdagi resurslarning umumiy sonidan oshmasligi kerak. Bundan tashqari, jarayon barcha so'ralgan resurslarni olganida, ularni cheklangan vaqt ichida qaytarishi kerak.
    Resurslar
    Bankerning algoritmi ishlashi uchun u uchta narsani bilishi kerak:
    Har bir jarayon qancha resurs talab qilishi mumkin ("MAX")
    Har bir jarayon hozirda har bir resursning qancha qismini egallab turibdi (“ajratilgan”)
    Tizimda hozirda mavjud bo'lgan har bir resursdan qanchasi ("MAVJIDA")
    Resurslar jarayonga faqat so'ralgan resurslar miqdori mavjud bo'lgan miqdordan kam yoki teng bo'lgan taqdirdagina taqsimlanishi mumkin; aks holda, jarayon resurslar mavjud bo'lguncha kutadi.

    Haqiqiy tizimlarda kuzatiladigan resurslardan ba'zilari xotira, semaforlar va interfeysga kirishdir


    Bankir algoritmi o'z nomini shundan kelib chiqadiki, bu algoritm bank tizimida bank resurslari tugab qolmasligini ta'minlash uchun ishlatilishi mumkin edi, chunki bank hech qachon o'z pullarini boshqa talablarni qondira olmaydigan tarzda taqsimlamaydi. barcha mijozlarining ehtiyojlari.[2] Banker algoritmidan foydalangan holda, bank mijozlar pul so'raganda, bank hech qachon xavfsiz holatdan chiqmasligini ta'minlaydi. Agar mijozning so'rovi bankni xavfsiz holatda qoldirishga olib kelmasa, naqd pul ajratiladi, aks holda mijoz boshqa mijozning omonatlarini etarli darajada kutishi kerak.
    Banker algoritmini amalga oshirish uchun saqlanishi kerak bo'lgan asosiy ma'lumotlar tuzilmalari:]
    Tizimdagi jarayonlar soni n, resurs turlari soni m bo‘lsin. Keyin bizga quyidagi ma'lumotlar tuzilmalari kerak bo'ladi:
    Mavjud: m uzunlikdagi vektor har bir turdagi mavjud resurslar sonini bildiradi. Mavjud[j] = k bo'lsa, Rj tipidagi resursning ta nusxasi mavjud.
    Maks: n × m matritsa har bir jarayonning maksimal talabini belgilaydi. Agar Max[i,j] = k bo'lsa, Pi Rj resurs tipidagi ko'pi bilan k nusxasini so'rashi mumkin.
    Ajratish: n × m matritsa hozirda har bir jarayonga ajratilgan har bir turdagi resurslar sonini belgilaydi. Agar ajratish[i,j] = k bo'lsa, u holda Pi jarayoni hozirda Rj tipidagi resursning k nusxasi ajratilgan.
    Ehtiyoj: n × m matritsa har bir jarayonning qolgan resurslarga bo'lgan ehtiyojini ko'rsatadi. Agar Need[i,j] = k bo'lsa, vazifani bajarish uchun Pi-ga Rj tipidagi resurs turining yana k nusxasi kerak bo'lishi mumkin.
    Eslatma: Need[i,j] = Maks[i,j] - Ajratish[i,j]. n=m-a.
    Agar barcha jarayonlar bajarilishini tugatish (tugatish) mumkin bo'lsa, holat (yuqoridagi misolda bo'lgani kabi) xavfsiz hisoblanadi. Tizim jarayon qachon tugashini yoki shu vaqtgacha qancha resurslarni talab qilishini bila olmaganligi sababli, tizim barcha jarayonlar belgilangan maksimal resurslarni olishga harakat qiladi va tez orada tugatiladi deb taxmin qiladi. Bu ko'p hollarda oqilona taxmindir, chunki tizim har bir jarayon qancha davom etishi bilan bog'liq emas (hech bo'lmaganda boshi berk ko'chadan qochish nuqtai nazaridan emas). Bundan tashqari, agar jarayon maksimal resursga ega bo'lmasdan tugasa, bu tizimni faqat osonlashtiradi. Xavfsiz holat, agar u tayyor navbatni qayta ishlasa, qaror qabul qiluvchi hisoblanadi.
    Ushbu taxminni hisobga olgan holda, algoritm har biriga maksimal resurslarni qo'lga kiritish va keyin tugatish (resurslarini tizimga qaytarish) imkonini beradigan jarayonlar bo'yicha gipotetik so'rovlar to'plamini topishga urinish orqali davlat xavfsiz yoki yo'qligini aniqlaydi. Bunday to'plam mavjud bo'lmagan har qanday shtat xavfli holat hisoblanadi.
    Oldingi misolda keltirilgan holat xavfsiz holat ekanligini har bir jarayon uchun maksimal resurslarga ega bo‘lib, keyin tugatilishi mumkinligini ko‘rsatib ko‘rsatishimiz mumkin.
    P1 maksimalga erishish uchun 2 A, 1 B va 1 D ko'proq resurslarga muhtoj
    [mavjud manba: ⟨3 1 1 2⟩ − ⟨2 1 0 1⟩ = ⟨1 0 1 1⟩]
    Tizimda hali ham 1 A, B yo'q, 1 C va 1 D resurs mavjud
    P1 tugaydi, tizimga 3 A, 3 B, 2 C va 2 D resurslarni qaytaradi
    [mavjud manba: ⟨1 0 1 1⟩ + ⟨3 3 2 2⟩ = ⟨4 3 3 3⟩]
    Endi tizimda 4 A, 3 B, 3 C va 3 D manbalari mavjud
    P2 2 B va 1 D qo'shimcha resurslarga ega bo'ladi, so'ngra barcha resurslarini qaytarib, tugatadi
    [mavjud manba: ⟨4 3 3 3⟩ − ⟨0 2 0 1⟩ + ⟨1 2 3 4⟩ = ⟨5 3 6 6⟩]
    Endi tizimda 5 A, 3 B, 6 C va 6 D manbalari mavjud
    P3 1 B va 4 C resurslarini oladi va tugatadi.
    [mavjud manba: ⟨5 3 6 6⟩ − ⟨0 1 4 0⟩ + ⟨1 3 5 0⟩ = ⟨6 5 7 6⟩]
    Endi tizimda barcha resurslar mavjud: 6 A, 5 B, 7 C va 6 D
    Barcha jarayonlar tugatilishi mumkin bo'lganligi sababli, bu holat xavfsizdir
    Xavfli holat misoli uchun, agar 2-jarayon boshida 1 birlik B resursga ega bo'lsa, nima bo'lishini ko'rib chiqing.
    So'rovlar
    Tizim resurslarga so'rovni qabul qilganda, so'rovni berish xavfsiz yoki yo'qligini aniqlash uchun Bankerning algoritmini ishga tushiradi. Xavfsiz va xavfli holatlar o'rtasidagi farq tushunilgandan so'ng, algoritm juda oddiy.
    So'rovni qondirish mumkinmi?
    Agar yo'q bo'lsa, so'rov imkonsiz va rad etilishi yoki kutish ro'yxatiga qo'yilishi kerak
    Tasavvur qiling, so'rov bajarildi
    Yangi davlat xavfsizmi?
    Agar shunday bo'lsa, so'rovni bajaring
    Agar yo'q bo'lsa, so'rovni rad eting yoki uni kutish ro'yxatiga qo'ying
    Tizim imkonsiz yoki xavfli so'rovni rad etadimi yoki kechiktiradimi - bu operatsion tizimga xos bo'lgan qaror.
    Misol
    Oldingi misol bilan bir xil holatdan boshlab, 1-jarayon 2 birlik C resursini talab qiladi.
    So‘rovni bajarish uchun C resursi yetarli emas
    So‘rov rad etilgan
    Boshqa tomondan, C resursining 1 birligi 3 ta so'rov jarayonini qabul qiling.
    So'rovni qondirish uchun etarli resurslar mavjud
    Tasavvur qiling, so'rov bajarildi
    Tizimning yangi holati quyidagicha bo'ladi:

    Ushbu yangi davlat xavfsiz yoki yo'qligini aniqlang
    P1 2 A, 1 B va 1 D manbalarini olishi va tugatishi mumkin
    Keyin P2 2 B va 1 D manbalarini olishi va tugatishi mumkin
    Nihoyat, P3 1 B va 3 C resurslarini olishi va tugatishi mumkin
    Shuning uchun bu yangi davlat xavfsizdir
    Yangi davlat xavfsiz bo'lgani uchun so'rovni bajaring

    Yakuniy misol: biz boshlagan holatdan, 2 jarayon B resursining 1 birligini talab qiladi deb faraz qilaylik.


    Resurslar yetarli
    Agar so'rov bajarilgan bo'lsa, yangi holat quyidagicha bo'ladi:

    Download 56,16 Kb.




    Download 56,16 Kb.