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.
Dostları ilə paylaş: