102
va belgilangan qismlar uchun xotirani taqsimlash
sxemasining asosiy
kamchiligi hisoblanadi.
103
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.
Dostları ilə paylaş: