U. R. Xamdamov, dj. B. Sultanov, S. S. Parsiyev, U. M. Abdullayev


 Xotirani taqsimlash, qayta taqsimlash va jamlash usullari



Yüklə 3,32 Mb.
Pdf görüntüsü
səhifə65/253
tarix07.01.2024
ölçüsü3,32 Mb.
#209072
1   ...   61   62   63   64   65   66   67   68   ...   253
os

3.3. Xotirani taqsimlash, qayta taqsimlash va jamlash usullari 
Belgilangan (statik) qismlar 


98 
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. 
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. 
Qism 1 
Qism 2 
Qism 3 
OT 
Qism 1 
Qism 2 
Qism 3 
OT 


99 
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 


100 
3-qadamdan davom etadi 
3.
Hisoblagichni 1 ga o‘rnatish 
4.
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 
5.
Hozirgi vaqtda bo‘sh qismlar mavjud bo‘lmasa, vazifani 
kutish navbatiga qo‘yish 
6.
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 


101 
Har bir vazifa bajarilib tugatilgach, uning xotira qismining holati 
band holatdan bo‘shga o‘zgaradi, va ushbu qismga kiruvchi boshqa 
vazifani kiritish mumkin.
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 
4-qismda
vazifa 2 (50K) 
2-qismda
vazifa 4 (25K) 
Asosiy xotira 
1-qismda
vazifa 1 (30K) 
Bo‘sh qism 
Ichki
bo‘linish 
Qism 1 = 100K 
Qism 4 = 50K 
Qism 2 = 25K 
Qism 3 = 25K 
Asosiy xotira 

Yüklə 3,32 Mb.

Dostları ilə paylaş:
1   ...   61   62   63   64   65   66   67   68   ...   253




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin