1-rasm. Virtual manzilni jismoniy manzilga solishtirish
Virtual xotira tizimlari orasida ikkita sinfni ajratish mumkin: bloklangan
o'lchamdagi tizimlar (sahifa tashkiloti) va o'zgaruvchan blok o'lchamiga ega tizimlar
(segment tashkiloti). Odatda ikkala variant ham birlashtiriladi (segmentlangan
sahifani tashkil qilish).
2. Virtual xotirani tashkil qilish
Sahifali tashkil qilish
2-rasmda disk xotirasini tashkillashtirish diagrammasi ko'rsatilgan. Har bir
jarayonning virtual adres maydoni virtual sahifalar deb nomlangan ma'lum bir tizim
uchun o'rnatiladigan bir xil o'lchamdagi qismlarga bo'linadi. Umuman olganda,
virtual manzillar maydonining o'lchami sahifa o'lchamidan ko'p emas, shuning
uchun
har
bir
jarayonning
oxirgi
sahifasi
dummy
maydoni
bilan
to'ldiriladi.Mashinaning butun RAM qismi, shuningdek, jismoniy sahifalar (yoki
bloklar) deb nomlangan bir xil o'lchamdagi qismlarga bo'linadi.Sahifa hajmi odatda
ikkita kuchga teng tanlanadi: 512, 1024, va hokazo, bu bizga manzilni tarjima qilish
mexanizmini soddalashtirishga imkon beradi. Jarayon yuklanganda, uning virtual
sahifalarining bir qismi OXga, qolgan qismi esa diskka joylashtiriladi. Qo'shni
virtual sahifalar qo'shni jismoniy sahifalarda bo'lishi shart emas. Yuklashda
operatsion tizim har bir jarayon uchun axborot tuzilishini yaratadi - operativ xotiraga
yuklangan sahifalar uchun virtual va fizik sahifalar raqamlari o'rtasida yozishmalar
o'rnatilgan sahifa jadvali yoki virtual sahifa diskka tushirilganligi to'g'risida eslatma.
Bundan tashqari virtual xotira mexanizmida foydalaniluvchi, sahifalar jadvalida
nazorat qilish ma'lumotlari, masalan, sahifani o'zgartirish belgisi, yuklab
olinmaydigan belgi (ba'zi sahifalarni tushirish taqiqlangan bo'lishi mumkin),
sahifaga kirish belgisi (ma'lum vaqt davomida xitlar sonini hisoblash uchun
ishlatiladi) va mexanizm tomonidan ishlab chiqarilgan va ishlatilgan boshqa
ma'lumotlar mavjud bo'ladi.
2-rasm. Xotirani sahifali tashkil qilish
Keyingi jarayon faollashtirilganda, ushbu jarayonning sahifa jadvalining
manzili maxsus protsessor registriga yuklanadi.
Xotiraga har bir kirish sahifadagi jadvaldan olingan virtual sahifa haqidagi
ma'lumotlarni o'qiydi. Agar ushbu virtual sahifa RAMda bo'lsa, unda virtual manzil
jismoniy holatga o'tkaziladi. Agar hozirda kerakli virtual sahifa diskka tushirilgan
bo'lsa, u holda sahifani kesish deb ataladi. Ishlayotgan jarayon kutib turiladi va
tayyor navbatdagi boshqa jarayon faollashadi. Shu bilan birga, sahifani kesish bilan
ishlov berish dasturi kerakli virtual sahifani diskdan topadi va uni RAMga yuklashga
harakat qiladi. Agar xotirada bo'sh jismoniy sahifa bo'lsa, u holda yuklash darhol
amalga oshiriladi, lekin agar bo'sh sahifalar bo'lmasa, asosiy xotiradan qaysi sahifani
olib tashlash kerakligi haqida savol tug'iladi.
Bunday vaziyatda juda ko'p turli xil tanlov mezonlaridan foydalanish
mumkin, ularning eng mashhurlari quyidagilar:
• eng uzun ishlatilmagan sahifa,
• paydo bo'lgan birinchi sahifa,
• kamida tashrif buyurilgan sahifa.
Ba'zi tizimlar ishlaydigan sahifalar to'plamining
kontseptsiyasidan
foydalanadi. Ishchi to'plam har bir jarayon uchun aniqlanadi va eng tez-tez
ishlatiladigan sahifalar ro'yxati bo'lib, ular doimo RAMda bo'lishi kerak, shuning
uchun tushirishga to'g'ri kelmaydi.
RAMni tark etishi kerak bo'lgan sahifa tanlanganidan so'ng, uning o'zgartirish
belgisi tahlil qilinadi (sahifa jadvalidan). Agar chiqarilgan sahifa yuklangandan
keyin o'zgartirilgan bo'lsa, unda uning yangi versiyasi diskka qayta yozilishi kerak.
Agar yo'q bo'lsa, u shunchaki yo'q qilinishi mumkin, ya'ni tegishli jismoniy sahifa
bepul e'lon qilinadi.
Plaginli xotira tashkil etilishi bilan virtual manzilni jismoniy manzilga
aylantirish mexanizmini ko'rib chiqing (3-rasm).
Sahifalar uchun virtual manzil juftlik (p, s) shaklida berilishi mumkin, bu erda
p - jarayonning virtual sahifasining raqami (sahifa raqamlanishi 0 dan boshlanadi)
va s - bu virtual sahifadagi ofset. Sahifaning o'lchamlari k darajadagi 2 ga tengligini
hisobga olsak, sintaksisni virtual manzilning ikkilik kiritilishida k ahamiyatli
bo'laklarni ajratish orqali olish mumkin. Qolgan yuqori tartibli bitlar bu p raqami
uchun ikkilik nota.
3-rasm. Xotirani sahifali tashkil qilisjda virtual manzilni fizik manzilga aylantirish
mexanizmi
Har safar xotiraga apparat orqali kirishda quyidagi harakatlar amalga
oshiriladi:
1. sahifa jadvalining boshlang'ich manzili (sahifa jadvalining manzili registr
registrining mazmuni), virtual sahifaning raqami (virtual manzilning yuqori satrlari)
va sahifalar jadvalidagi kirish uzunligi (tizim doimiy) asosida jadvalda kerakli
yozuvning manzili aniqlanadi,
2. jismoniy varaq raqami ushbu yozuvdan olingan,
3. Jismoniy sahifaning raqamiga ofset ilova qilinadi (virtual manzilning
ahamiyatsiz qismi).
Sahifa o'lchamining 2-darajaga teng ekanligi (3) bandidan foydalanish bizga
qo'shimcha manzilni olish vaqtini kamaytiradigan va shu sababli kompyuterning
ishlashini yaxshilaydigan qo'shimcha qo'shimcha operatsiya o'rniga bog'lash
(biriktirish) operatsiyasidan foydalanish imkonini beradi.
Peyj-xotirali tizimning ishlashiga peyj uzilishlarini qayta ishlash va virtual
manzilni jismoniy manzilga aylantirish bilan bog'liq vaqt xarajatlari ta'sir qiladi.
Tez-tez yuz beradigan sahifalarda uzilishlar yuzaga kelganda, tizim ko'p vaqtni
almashtirishga sarflaydi. Sahifalardagi uzilishlar chastotasini kamaytirish uchun siz
sahifaning hajmini oshirishingiz kerak. Bundan tashqari, sahifaning hajmini oshirish
sahifa jadvalining hajmini kamaytiradi va shuning uchun xotira xarajatlarini
kamaytiradi. Boshqa tomondan, agar sahifa katta bo'lsa, unda har bir dasturning
so'nggi virtual sahifasidagi dummy maydoni ham katta. O'rtacha har bir dasturda
sahifa hajmining yarmi yo'qoladi, bu katta hajmdagi sahifalar uchun ahamiyatli
bo'lishi mumkin. Virtual manzilni jismoniy manzilga aylantirish vaqti, asosan,
sahifalar jadvaliga kirish vaqtiga bog'liq. Shu munosabat bilan ular sahifalar
jadvalini "tezkor" saqlash moslamalariga joylashtirishga harakat qilishadi. Bu,
masalan, kirish vaqtini qisqartirish uchun assotsiativ qidirish va keshlashdan
foydalanadigan maxsus registrlar yoki xotiralar to'plami bo'lishi mumkin.
Sahifalarni xotiraga joylashtirish soddalashtirilgan shaklda, sahifalarni diskka
yuklamasdan amalga oshirilishi mumkin. Bunday holda, barcha jarayonlarning
barcha virtual sahifalari doimiy ravishda RAMda bo'ladi. Sahifalarni tashkil
etishning ushbu varianti foydalanuvchiga virtual xotirani taqdim etmasa ham,
dasturni qo'shni bo'lmagan joylarga yuklash mumkinligi va shuningdek, virtual
sahifalarni yuklashda qoldiqlar hosil bo'lmasligi sababli parchalanishni deyarli yo'q
qiladi.
Do'stlaringiz bilan baham: |