• Dinamik qismlar
  • Xotirani taqsimlashning umumiy vazifasi va uni hal qilish strategiyalari
  • Xotirani taqsimlash, qayta taqsimlash va jamlash usullari




    Download 4,88 Mb.
    bet33/129
    Sana18.11.2023
    Hajmi4,88 Mb.
    #100808
    1   ...   29   30   31   32   33   34   35   36   ...   129
    Bog'liq
    a12b69867f018f785135aa04d3624799 Operatsion tizimlar грифли 100 шт

    Xotirani taqsimlash, qayta taqsimlash va jamlash usullari




    Belgilangan (statik) qismlar


    Tezkor xotirani boshqarishning eng oddiy yo‘li uni oldindan (ishga tushurish bosqichida yoki tizim yuklanishi vaqtida) bir qancha belgilangan (statik) o‘lchamdagi qismlarga bo‘lishdan iboratdir. Kelib tushayotgan jarayonlar u yoki bu qismga joylashtiriladi. Shu sababli fizik manzillar maydonining shartli bo‘linishi yuzaga keladi. Jarayonning mantiqiy va fizik manzillari bog‘lanishi uni aniq bir qismga yuklash vaqtida yoki bazan kompilatsiya vaqtida yuzaga keladi.
    Har bir qism o‘zining jarayonlar navbatiga ega, yoki hamma qismlar uchun jarayonlar global navbati mavjud bo‘lishi mumkin. Bu sxema IBM OS/360 (MFT), DES RSX-11 va shunga yaqin boshqa tizimlarda qo‘llanilgan. Xotirani boshqarish tizimi jarayonni hajmini baholaydi, unga mos keluvchi qismni tanlaydi, jarayonni bu qismga yuklaydi va manzillarni sozlaydi.
    3.6- rasmda belgilangan qismli sxemalar ko‘rsatilgan: (a) navbati umumiy bo‘lgan jarayonlar, (b) alohida navbatli jarayonlar.
    Bu sxemaning kamchiligi ko‘rinib turibdiki, bir vaqtda bajariladigan jarayonlar soni qismlar soni bilan cheklangan. Boshqa muhim kamchiligi shundan iboratki, taklif qilinayotgan sxema, ichki fragmentlashdan, yani jarayonga ajratilgan, ammo ishlatilmagan xotira qismini yo‘qotish bilan qattiq zararlanadi. Fragmentatsiya, jarayon o‘ziga ajratilgan qismni to‘liq band qilmasligi yoki bazi qismlar, bajariladigan foydalanuvchi dasturlari uchun kichik bo‘lganligidan kelib chiqadi.






    Qism 1




    Qism 2




    Qism 3




    OT








    Qism 1

    Qism 2




    Qism 3

    OT




    3.6- rasm. Overleyli (qoplangan) tuzilish


    Jarayon mantiqiy manzillar maydoni hajmi, unga ajratilgan qism hajmidan katta (yoki eng katta hajmdan ham katta) bo‘lgan holatlarda, ba’zan overley nomli (yoki qoplanadigan tuzilishli) tashkil etadigan texnikadan foydalaniladi.


    Asosiy g‘oya – faqat ayni vaqtda kerak bo‘lgan dastur ko‘rsatmalarini xotirada saqlab turishdir. Overley tuzilishning tavsifini yozish uchun odatda maxsus sodda (overley description language) tildan foydalaniladi.
    Asosiy xotirada qo‘llanilgan belgilangan qismlar (statik qismlar deb ham ataladi) multidasturlashga imkon beradigan birinchi urinishdir – har bir vazifa uchun bitta qism. Har bir qismning o‘lchami tizim ishga tushurilganda belgilanganligi sababli, har bir qism faqat kompyuter tizimi o‘chirilgan, qayta konfiguratsiya qilingan va qayta ishga tushirilganida qayta tuzilishi mumkin edi. Shunday qilib, tizimni ishga tushirgandan so‘ng, qism o‘lchamlari o‘zgarishsiz qoldi. Ushbu sxemada muhim omil paydo bo‘ldi: vazifa xotirasi maydonini himoya qilish. Qismga vazifa berilgandan so‘ng, boshqa vazifalarga unga tasodifan yoki qasddan kirishga ruhsat berilmagan. Qismlarga kirishning bu usuli bir foydalanuvchili tizimga qaraganda har bir qismni himoya qilishni nazarda tutadi. Chunki bir foydalanuvchilik tizimda istalgan vaqtda faqat bitta ish asosiy xotirada bo‘lgan, shuning uchun operatsion tizimning asosiy xotirada joylashgan qismi himoya qilinishi kerak edi. Shu bilan birga, belgilangan qismni taqsimlash sxemalari uchun asosiy xotirada mavjud bo‘lgan har bir qism uchun himoya majburiy edi. Odatda bu kompyuter qurilmalari va operatsion tizimning birgalikdagi javobgarligi edi. Vazifalarni xotirada saqlash uchun ishlatiladigan algoritm bir foydalanuvchi tizimida ishlatilgandan ko‘ra bir necha marotaba ko‘proq qadamlarni talab qiladi, chunki vazifa hajmi to‘liq mos kelishiga ishonch hosil qilish uchun bo‘lim hajmiga mos kelishi kerak. Keyin, yetarlicha kattalikdagi blok aniqlanganda, uning mavjudligini tekshirish uchun qismning holatini tekshirish kerak. Har bir qism faqat bitta dastur tomonidan ishlatilishi mumkin. Har bir qismning o‘lchamini kompyuter operatori oldindan belgilab qo‘ygan, shuning uchun tizimni qayta ishga tushurmasdan hajmni o‘zgartirish mumkin emas.
    Vazifani belgilangan qismlarga yuklash algoritmi

    1. Vazifa talab qilgan xotira hajmini aniqlash

    2. Agar vazifa hajmi > qism hajmidan katta bo‘lsa Unda, vazifani rad etadi

    Operatorga kerakli xabarni chop etadi
    Navbatdagi vazifani bajarish uchun 1-qadamga o‘tish Aks holda
    3-qadamdan davom etadi

    1. Hisoblagichni 1 ga o‘rnatish

    2. Hisoblagich o‘rnatilganda xotiradagi bo‘limlar soni katta yoki teng bo‘lganda bajarish

    Agar vazifa hajmi xotira qismi hajmidan (hisoblagich) katta bo‘lsa
    Unda hisoblagich = hisoblagich + 1 Aks holda
    Agar xotira qismi hajmi (hisoblagich) = “bo‘sh” bo‘lsa Unda xotira qismiga (hisoblagich) vazifani yuklash Xotira qismi holatini (hisoblagich) “band” ga o‘zgartirish Aks holda
    Hisoblagich = hisoblagich + 1 Bajarishni tugatish

    1. Hozirgi vaqtda bo‘sh qismlar mavjud bo‘lmasa, vazifani kutish navbatiga qo‘yish

    2. Navbatda turgan vazifani bajarish uchun 1-qadamga o‘tish.

    Ushbu taqsimlash sxemasi bir foydalanuvchi tizimiga qaraganda ancha moslashuvchan, chunki u bir vaqtning o‘zida bir nechta dasturlarni xotirada saqlashga imkon beradi. Biroq, bu hali ham dasturni doimiy ravishda va bajarilishning boshidan oxirigacha xotirada saqlashni talab qiladi. Vazifa uchun xotira maydonini taqsimlash uchun operatsion tizimning xotira menejeri har bir xotira qismining o‘lchamini, uning manzili, kirish cheklovlari va tizimning joriy holatini (bo‘sh yoki band) ko‘rsatadigan jadvalni (3.1- jadval) saqlashi kerak.


    3.1- jadval

    Qism hajmi

    Xotira manzili

    Ruxsat

    Qism holati

    100 K

    200 K

    Vazifa 1

    Band

    25 K

    300 K

    Vazifa 4

    Band

    25 K

    325 K




    Bo‘sh

    50 K

    350 K

    Vazifa 2

    Band

    Har bir vazifa bajarilib tugatilgach, uning xotira qismining holati band holatdan bo‘shga o‘zgaradi, va ushbu qismga kiruvchi boshqa vazifani kiritish mumkin.


    Qism 1 = 100K

    Qism 2 = 25K

    Qism 3 = 25K

    Qism 4 = 50K



    Vazifalar ro‘yxati Vazifa 1 = 30K Vazifa 2 = 50K
    Vazifa 3 = 30K (kutmoqda) Vazifa 4 = 25K
    Asosiy xotira



    1-qismda vazifa 1 (30K)
    200K
    mavjud
    Asosiy xotira



    2-qismda vazifa 4 (25K)
    Ichki bo‘linish



    4-qismda vazifa 2 (50K)
    Bo‘sh qism

    3.7- rasm. Asosiy xotiradan qismlarga ajratilgan holda foydalanish


    Asosiy xotiradan qismlarga ajratilgan holda foydalanish 3.1- jadvalda keltirilgan. Vazifa 1 mavjud 100 Kbayt xotiraning atigi 30 Kbaytini oladi, vazifa 3 qismlarni bo‘shashini kutishi kerak, hatto 1- qismda 70K bo‘sh joy mavjud bo‘lsa ham. Vazifalarga “kerakli hajmdagi birinchi mavjud qism” asosida bo‘sh joy ajratilgan.


    Agar tizimda bajariladigan barcha vazifalar bir xil o‘lchamli bo‘lsa yoki o‘lchamlari oldindan ma’lum bo‘lsa va konfiguratsiyaga qarab o‘zgarmasa, belgilangan qismlar sxemasi yaxshi ishlaydi. Ideal holda, bu tizimda yaqin soatlarda, kunlarda yoki haftalarda bajariladigan barcha vazifalar to‘g‘risida aniq ma’lumot talab qiladi. Ammo, agar operator kelajakni aniq taxmin qila olmasa, qismlarning o‘lchamlari tasodifiy ravishda belgilanadi va ularning o‘lchami kiruvchi vazifalar uchun juda kichik yoki juda katta bo‘lishi mumkin. Qismning o‘lchamlari juda kichik bo‘lsa, jiddiy oqibatlarga olib keladi. Boshqa tomondan, agar qismlar juda katta bo‘lsa, xotira behuda sarflanadi. Agar vazifa to‘liq qismni egallamasa, qismda foydalanilmagan xotira bo‘sh qoladi, uni boshqa vazifaga o‘tkazish mumkin emas, chunki har bir qism bir vaqtning o‘zida bitta vazifaga beriladi. Bu ajralmas birlikdir. 3.7- rasmda shunday vaziyatlardan biri ko‘rsatilgan. Ruxsat etilgan qismlardan qisman foydalanish va bir vaqtning o‘zida qism ichida foydalanilmagan bo‘shliqlarni yaratishning bu hodisasi ichki bo‘linish (fragmentatsiya) deb ataladi

    va belgilangan qismlar uchun xotirani taqsimlash sxemasining asosiy kamchiligi hisoblanadi.

    Dinamik qismlar


    Dinamik qismlarda mavjud xotira qo‘shni bloklarda saqlanadi, lekin vazifalarga yuklanish vaqtida qancha xotira maydoni kerak bo‘lsa, shuncha xotira maydoni taqdim qilinadi. Bu belgilangan qismlarga nisbatan sezilarli yaxshilanish bo‘lsada, bu muammoni to‘liq hal qilmaydi. 3.8- rasmda ko‘rsatilgandek, dinamik qismlarni taqsimlash sxemasi birinchi vazifalarni yuklashda xotiradan to‘liq foydalanadi.
    Ammo tizimga yangi vazifalar kiritilganda, vazifaning kattaligi bo‘shagan xotirani hajmiga to‘g‘ri kelmasa, ular bo‘sh joyga ustuvorlik (prioritet) tartibida joylashtiriladi. 3.8- rasmda “birinchi kelganga - birinchi xizmat” ustuvorligi ko‘rsatilgan. Shunday qilib, keyingi xotirani taqsimlash, taqsimlangan xotira bloklari o‘rtasida bo‘sh xotiraning bo‘laklarini (fragmentlarini) yaratadi. Ushbu muammo tashqi bo‘linish deb nomlanadi va ichki bo‘linish singari, xotirani yo‘qotishga imkon beradi. 3.8- rasmda (e) uchta bo‘sh qism mavjud 5 KB, 10 KB va 20 KB jami 35 KB, 8- vazifani bajarish uchun atigi 30 KB kerak bo‘ladi. Biroq, ular bir-biriga qo‘shni emasligi va vazifalar doimiy ravishda yuklanganligi sababli, ushbu sxema 8- vazifani kutishga majbur qiladi. Asosiy xotirani taqsimlashda dinamik qismlardan foydalanish. Quyidagi 5 ta rasmda (a-e) asosiy xotiraga qayta ishlash uchun 8 ta vazifa yuborildi va “birinchi kelganga - birinchi xizmat” algoritmi asosida xotira maydoni ajratilgan. Hatto qismlar orasida yetarli bo‘sh xotira bo‘lsa ham, 8 vazifa (e) kutishi kerak.

    Xotirani taqsimlashning umumiy vazifasi va uni hal qilish strategiyalari


    Umuman olganda, operatsion tizimlarda bir nechta qo‘shni hududlarda qo‘shni xotirani taqsimlash qo‘llanilishi mumkin. Bo‘sh maydon – bu bo‘sh xotiraning qo‘shni blokidir. Bo‘sh maydonlar tasodifiy ravishda xotiradan tarqalishi mumkin. Jarayonni yuklashda, uni joylashtirish uchun yetarlicha katta bo‘lgan har qanday bo‘sh qo‘shni hududdan xotira taqdim etiladi. Shu bilan birga operatsion tizim bo‘sh xotira maydonlari ro‘yhati va band xotira maydonlari ro‘yhatini saqlaydi. Ushbu maydonlarning barchasi tasodifiy xotirada joylashgan bo‘lishi mumkin va turli uzunliklarga ega.

    Download 4,88 Mb.
    1   ...   29   30   31   32   33   34   35   36   ...   129




    Download 4,88 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Xotirani taqsimlash, qayta taqsimlash va jamlash usullari

    Download 4,88 Mb.