154
Ko'pgina zamonaviy operatsion tizimlarda virtual
xotira sahifa manzilini
ishlatish bilan tashkil etiladi. RAM sahifalarga bo'linadi: qattiq xotira maydoni
(masalan, 4096 bayt [13]), ajratilgan xotiraning eng kichik birligi (ya'ni, ilovadan 1
bayt uchun so'rov xotira sahifasini joylashtirishga olib keladi). Foydalanuvchi
tomonidan olib boriladigan protsessorli xotira xotira xotirasiga virtual xotira
manzilini
kiritish imkonini beradi, u sahifa raqami bo'yicha bo'linadi va sahifada
ofsetlanadi. Protsessor virtual sahifa raqamini mos keladigan jismoniy sahifaning
manziliga assotsiativ tarjima tamponini (TLB) ishlatib o'zgartiradi.
Agar u buni qila olmasa, protsessorning o'zi yoki operatsion tizim (arxitektura
turiga qarab) bajarishi mumkin bo'lgan sahifa stoliga ("Sahifa yurishi" deb
ataladigan) murojaat qilish orqali buferni to'ldirish kerak. Agar sahifa RAMdan
tushirilsa, operatsion tizim sahifani sahifa xatosini ko'rib
chiqish vaqtida sahifani
qattiq diskdan o'giradi (almashtirish, sahifani paging-ga qarang). Xotirani ajratishni
talab qilganda, operatsion tizim uzoq vaqt davomida foydalanilmaydigan sahifalarni
"tozalash" mumkin. Muhim ma'lumotlar (masalan, ishlaydigan va ishlaydigan dastur
kodi, tizim yadrosi kodi va xotirasi) odatda RAMda (istisnolar mavjud, lekin ular
apparatdagi ishlamay qo'yish, sahifa jadvali bilan ishlash va disk xotira faylini
ishlatish uchun mas'ul bo'lgan qismlarga nisbatan qo'llanilmaydi).
Virtual xotira segmenti tashkiloti
Virtual xotira tashkil etilish mexanizmi, unda virtual bo'shliq ixtiyoriy
o'lchamdagi qismlarga bo'linadi - segmentlar.
Bu mexanizm, masalan, ajratish
jarayoni ma'lumotlarini mantiqiy bloklarga kiritishga imkon beradi [15]. Har bir
segment uchun, shuningdek, sahifa uchun
unga foydalanuvchi va uning
jarayonlaridan foydalanish huquqi berilishi mumkin. Jarayon yuklanganida,
segmentlarning bir qismi RAMga o'rnatiladi (bu segmentlarning har biri uchun
operatsion tizim muvofiq bo'sh xotira maydonini qidiradi) va ba'zi qismlar disk
xotirasida joylashgan. Bitta dasturning segmentlari RAMda qo'shni bo'lmagan
joylarni egallashi mumkin.
155
Yuklash vaqtida tizim har bir segment
uchun RAMdagi segmentning
boshlang'ich jismoniy manzili, segmentning kattaligi, kirish qoidalari, o'zgarish
belgisi, oxirgi marta ushbu segmentga kirishning alomatlari va boshqa ba'zi
ma'lumotlar ko'rsatiluvchi (sahifa jadvali kabi) jarayon
segmentlarini jadvalini
yaratadi . Agar bir nechta jarayonlarning virtual manzillari bir xil segmentni o'z
ichiga oladigan bo'lsa, ushbu jarayonlarning segmentlari jadvallari ushbu segment
bir nusxada yuklangan RAMning bir qismiga havola qiladi. Segmental
tashkilotlarga ega bo'lgan tizim, xotira tashkil etuvchi tizimga o'xshash vazifalarni
bajaradi: kerak bo'lganda ba'zi segmentlar tushiriladi va har safar xotiraga kirishda
virtual manzil jismoniy manzilga aylanadi. Bundan tashqari, xotiraga kirishda,
kerakli turdagi ushbu segmentga kirishga ruxsat berilishi tekshiriladi.
Xotirani segmentirovkalashda virtual manzil juftlik (g, s)
bilan ifodalanishi
mumkin, bu erda g - segmentning soni, va s segmentdagi ofset. Jismoniy manzil
segmentning jadvalida g sonida va ofset s-da joylashgan segmentning dastlabki
jismoniy manzilini qo'shib olinadi.
Xotirani ajratishning ushbu uslubining kamchiliklari
segment darajasida
parchalanish va pagingdan ko'ra sekin manzillarni konvertatsiya qilishdir.
Virtual xotira hibrli sahifa-segmentli tashkilot mavjud [16].