352
9.4- rasm. Linux tizimida xotirani bo‘linishi
Linux da virtual xotira
Linux dagi virtual xotira tizimi har bir jarayonga ko‘rinadigan
manzil maydonni qo‘llab-quvvatlaydi: u talab bo‘yicha virtual
xotiraning sahifalarini tashkil etadi va bu sahifalarni diskka yuklashni,
hamda kerak bo‘lganda diskdan qayta chiqarishni boshqaradi. Virtual
xotiraning menejeri har bir jarayonning manzil maydoniga ikki nuqtai
nazarni qo‘llab-quvvatlaydi:
mantiqiy – manzil maydonini boshqarish buyruqlarini
qo‘llab-quvvatlash; manzil maydoni
kesishmaydigan yondosh
hududlar jamlamasi sifatida qaraladi;
fizik – har bir jarayonning sahifalar jadvali yordamida.
Virtual xotirani boshqarish uchun quyidagilardan foydalaniladi:
mazkur hududga qayerdan sahifalar olinishini tavsiflovchi
qayta chiqarish fayli (backing store);
hududlar odatda fayl tomonidan qo‘llab-quvvatlanadi, yoki
umuman qo‘llab-quvvatlanmaydi (xotira talabiga ko‘ra bekor
qilinadi);
hududni yozuvga javob harakati (sahifalardan birgalikda
foydalanish yoki yozib olish vaqtida nusxa olish - cow).
Yadro ikki vaziyatda yangi virtual manzil maydonni yaratadi:
jarayon exec tizim chaqiruvi bilan yangi dasturni ishga
tushiradi;
fork tizim chaqiruvi bilan yangi jarayonni yaratadi.
353
Yangi dastur
bajarilishida jarayonga yangi, bo‘sh manzil
maydoni tadqim etiladi; dasturlarni yuklash protseduralari bu manzil
maydoni virtual xotiraning hududlari bilan to‘ldiradi. Fork yordamida
yangi jarayonni yaratish amaldagi manzil maydonining to‘liq
nusxasini yaratishni nazarda tutadi. Yadro ona jarayonning virtual
xotirasidan foydalanish
deskriptorlaridan nusxa oladi, keyin farzand
jarayon uchun sahifalar jadvallarining yangi jamlamasini yaratadi.
Ona jarayonning sahifalar jadvallaridan bevosita farzand jarayonning
sahifalar jadvallariga nusxalar olinadi. fork bajarilganidan keyin ona
va farzand jarayonlar o‘z virtual manzili maydonlarida bir xil fizik
sahifalaridan foydalanadi. Agar fizik xotiraning
sahifalarini birorta
boshqa maqsad uchun kerak bo‘lsa, sahifalarni boshqarish tizimi
ularni diskka ko‘chiradi (o‘tkazadi). Sahifalarni boshqarish tizimi ikki
qismga bo‘linadi:
qaysi sahifalarni va qachon diskka ko‘chirishni belgilaydigan
algoritm;
almashtirish
mexanizmi,
kerak
bo‘lgan
hollarda
ma’lumotlarni uzatish va fizik xotiraga qayta ko‘chirishni amalda
bajaradi.
Linux yadrosi har bir jarayonga, uni o‘ziga tegishli ichki
foydalanish
uchun doimiy, hudud arxitekturasiga bog‘liq manzil
maydonni zahiralaydi. Virtual xotiraning bu hududi ikki hududdan
iborat:
statik hudud – tizimdagi xotiraning har bir foydalanadigan
fizik sahifa uchun sahifalar jadvalida havolani saqlaydi,
shuning
uchun yadro kodi bajarilishida fizik manzilni virtual manzilga
translyatsiya qilishda ishlatiladi;
zahiralangan qismning qoldig‘i – birorta boshqa maqsadda
ishlatilmaydi; uning sahifalar jadvalining elementlari o‘zgartirilishi va
xotiraning istalgan sahifalariga yo‘naltirilishi mumkin.
Do'stlaringiz bilan baham: