Xotirani boshqarish va undan umumiy foydalanish

95
Xotiradan samarali foydalanishni ta’minlash
uchun operatsion
tizim quyidagi funksiyalarni bajarishi lozim:
Fizik xotirani aniq bir sohasida jarayon manzillar to‘plamini
aks ettirish;
Qarama-qarshi jarayonlar o‘rtasida xotirani taqsimlash;
Jarayonlar manzillar maydoniga ruhsatni boshqarish;
Operativ
xotirada
joy
qolmaganda,
tashqi
xotiraga
jarayonlarni (qisman yoki to‘liq) yuklash;
Bo‘sh va band xotirani hisobga olish.
Bir foydalanuvchili sxema
Dastlabki operatsion tizimlarda xotirani boshqarishning eng
oddiy usullari qo‘llanilgan. Boshida foydalanuvchining har bir
jarayoni asosiy xotiraga ko‘chirilishi kerak bo‘lgan, xotira uzluksiz
maydonini
band qilgan, tizim esa qo‘shimcha foydalanuvchi
jarayonlarga bir vaqtning o‘zida asosiy xotirada joylashib turgunicha
xizmat ko‘rsatadi.
Xotirani taqsimlashning birinchi sxemasi: 3.5-rasmda ko‘rsa-
tilgandek, har bir qayta ishlangan dastur to‘liq xotiraga yuklandi va
unga zarur bo‘lgan xotira maydonini ajratdi. Bu yerda kalit so‘zlar
yaxlitlik va doimiylikdir. Agar dastur juda katta bo‘lsa va mavjud
xotira maydoniga mos kelmasa (xotira maydoni o‘lchami yetarli
bo‘lmasa), uni bajarib bo‘lmaydi. Va
dastlabki kompyuterlar juda
katta bo‘lishiga qaramay, ular juda kam xotiraga ega edilar.
96
3.5- rasm. Bitta dastur bir vaqtning o‘zida xotirada saqlanadi.
Xotiraning qolgan qismi ishlatilmaydi
Bu barcha kompyuterlar uchun sezilarli cheklovni namoyish
etadi – ular faqat cheklangan xotiraga ega va agar dastur xotira
maydoniga mos kelmasa asosiy xotiraning hajmini oshirish kerak yoki
dasturni o‘zgartirish (kichraytirish) kerak. Odatda, uni kichiklashtirish
yoki dastur segmentlarini (dasturga bo‘laklarni) to‘ldirishga imkon
beradigan usullardan foydalanish orqali o‘zgartiriladi. (Qoplash usuli
(overlay) - bu dastur segmentlarini ikkinchi darajali xotiradan asosiy
xotiraga bajarish uchun o‘tkazishdir, shunda
ikki yoki undan ortiq
segmentlar bir xil xotira maydonlarini egallab turgan navbatni egallab
olishlari mumkin.) Overlay - bu tizimda o‘rnatilganidan ko‘ra ko‘proq
xotirani egallaydigan dasturlarni yaratishga imkon beradigan
dasturlash usulidir. Har bir foydalanuvchiga har bir vazifa uchun
mavjud bo‘lgan asosiy xotiradan foydalanish huquqi beriladi va
vazifalar ketma-ket bajariladi. Xotirani taqsimlash uchun operatsion
tizim oddiy algoritmdan foydalanadi (muammoni hal qilish uchun
qadamma-qadam protsedura):
Vazifani bir foydalanuvchi tizimiga yuklash algoritmi
1.
Dastur xotirasini asosiy registrda saqlash (xotirani
himoyasi
uchun)
2.
Dastur hisoblagichini birinchi xotira yacheyasining manziliga
o‘rnatish (u dastur tomonidan ishlatiladigan xotira miqdorini
kuzatadi)
3.
Dasturning birinchi ko‘rsatmasini o‘qish
4.
Dastur hisoblagichini ko‘rsatmadagi baytlar soniga ko‘paytirish
5.
So‘nggi ko‘rsatma berildimi?
agar ha bo‘lsa, dasturni yuklashni to‘xtatish
agar yo‘q bo‘lsa, unda 6-bosqichdan davom etish
6.
Dastur hisoblagichi xotira hajmidan kattaroqmi?
agar ha bo‘lsa, dasturni yuklashni to‘xtatish
agar yo‘q bo‘lsa, unda 7-bosqich bilan davom etish
7.
Ko‘rsatmani xotiraga yuklash
8.
Keyingi dastur ko‘rsatmalarini o‘qish
9.
4-bosqichga o‘tish.
97
E’tibor bering, operatsion tizimning “Xotira menejeri”
tomonidan bajarilgan ishlarning hajmi minimal, funksiyalarni bajarish
kodi sodda va mantiq juda oddiy.
Faqat ikkita qurilma vositasi kerak bo‘ladi: asosiy manzilni
saqlash uchun registr va xotirada o‘qilayotgan
paytda dastur hajmini
kuzatib borish uchun akkumulyator (y ham register).
Dastur xotiraga to‘liq yuklanganidan so‘ng, u odatiy tarzda yoki
operatsion tizimning aralashuvi bilan tugatilmaguncha o‘sha yerda
qoladi.
Ushbu turdagi xotirani taqsimlash sxemasining asosiy
muammolaridan biri shundaki, u ko‘p dasturlash yoki tarmoqni
qo‘llab-quvvatlamaydi, u bir vaqtning o‘zida faqat bitta vazifani
bajara oladi. Bu usul 1940- va 1950- yillardagi tijorat kompyuterlarida
qo‘llanilgan.
Shuning uchun, 1950- yillarning ohiri va 1960-
yillarning boshlarida xotirani boshqarishning yangi sxemasi talab
qilindi, va mustaqil operatsiyalarni takrorlash orqali kompyuter tizimi
resurslaridan foydalanishga imkon beradigan qismlardan foydalanildi.
Xotirani boshqarishning ushbu sxemalari bugungi operatsion
tizimlar tomonidan kam ishlatiladi, ammo o‘rganish juda muhimdir,
chunki har biri xotira boshqaruvini rivojlantirishga yordam beradigan
asosiy tushunchalarni taqdim etadi. Kompyuter tizimi bosh asosiy
masalasi dasturni boshqarishdir. Xotiraning
alohida roli protsessor
dastur ko‘rsatmalarini ular xotirada bo‘lgan taqdirdagina bajarishi
mumkinligi bilan izohlanadi. Dasturlar va ularning murojaat qiladigan
ma’lumotlari, bajarilish jarayonida operativ xotirada (hech bo‘lmasa
qisman) joylashgan bo‘lishi shart. Operatsion tizimga, xotirani,
foydalanuvchi jarayonlari va OT komponentalari orasida taqsimlashga
to‘g‘ri keladi. Operatsion tizimning bu faoliyati xotirani boshqarish
deyiladi. Shunday qilib, xotira sinchiklab boshqarishni
talab etadigan
resursdir. Yaqin kunlargacha xotira eng qimmat resurs hisoblangan.
Operatsion tizimning, xotirani boshqaradigan qismi, xotira menejeri
deyiladi. Xotira amaliy dastur modullari va operatsion tizimning
modullari o‘rtasida ham taqsimlanadi.