3. Virtual xotirani boshqarish usullari
Jarayonlarga chiziqli mantiqiy manzil maydoni ajratiladi. Protsessor xotirasini boshqarish moslamasi mantiqiy manzillarni jismoniy manzillarga aylantiradi. Agar siz 4 Gb xotirani 4kB sahifalarga ajratsangiz, 1 million sahifaga ega bo'lasiz. Ushbu million sahifalarga kirish uchun protsessor ikki o'lchovli strukturadan foydalanadi. Buni 1024x1024 matritsasi sifatida tasavvur qilish mumkin. Birinchi o'lchov Sahifalar katalogi, ikkinchisi Sahifalar jadvali deb ataladi. Ushbu struktura yordamida siz 1024 yozuvdan iborat sahifa katalogini yaratishingiz mumkin va har bir kirish sahifa jadvaliga ishora qiladi. O'z navbatida har bir sahifa jadvalida 1024 ta yozuv mavjud, ularning har biri 4kB sahifaning jismoniy manziliga ishora qiladi. Katalogdagi va sahifalar jadvalidagi har bir yozuvning uzunligi 4 baytni tashkil etadi, shuning uchun 4 Gb manzil maydonini sahifaning 4 kB ga bo'lish uchun 4x1024x1024 = 4MB tuzilishi kerak. Xotira manzillari uzunligi 32 bit, shundan 20 bit (har bir varaq uchun 10 bit + har bir jadval uchun 10 bit) - bu sahifaning fizik manzili, 12 bit - tanlangan sahifadagi indeks.
Windows muhitida har bir jarayon o'z sahifasi katalogiga va sahifalar jadvaliga ega, buning uchun OS 4MB bo'sh joy ajratadi. Jarayon yaratilganda, sahifalar katalogidagi har bir yozuv sahifalar jadvalining jismoniy manzilini o'z ichiga oladi. Sahifalar jadvalidagi yozuvlar haqiqiy yoki noto'g'ri bo'lishi mumkin. To'g'ri yozuvlar 4kB sahifalarning jismoniy manzillarini o'z ichiga oladi. Jarayon jismoniy manzillar haqida hech narsa bilmaydi va kirishda faqat virtual manzillardan foydalanadi. Virtual manzilni jismoniy manzilga aylantirish Windows xotira menejeri va protsessor tomonidan amalga oshiriladi. Sahifalar katalogi jismoniy xotirada joylashgan manzil Sahifalar katalogi bazasi manzili deb nomlanadi. Ushbu manzil CR3 protsessorlarining maxsus reyestrida qayd etilgan (x86 protsessorlarida). Kontekstni almashtirishda, Windows yangi jarayonni eski sahifa katalogi manziliga yo'naltirish uchun CR3 registriga yangi qiymatni yuklaydi.
Ushbu texnologiyadan foydalanish jarayonga 4GB mantiqiy (virtual) manzil maydonidan foydalanishga imkon beradi. Jarayonlarning mantiqiy manzillari oralig'i bir-biriga zid kelmaydi va bitta jarayonning mantiqiy manzili boshqasining fizik manzilini ko'rsatolmaydi. Bu virtual manzillar maydoni deb nomlanadi, chunki jarayon 4GB virtual manzil maydoniga ega bo'lsa ham, u faqat ajratilgan darajada xotiradan foydalanishi mumkin. Bir vaqtning o'zida barcha jarayonlar egallab turgan xotiraning umumiy hajmi asosiy xotira va sahifalar faylining yig'indisidan oshmasligi kerak. Bu majburiyat chegarasi deb ataladi. Agar jarayon ko'proq xotirani talab qilsa (Tasdiqlash), unda OS bo'sh xotira mavjudligini tekshiradi va agar mavjud bo'lsa, uni jarayonga ajratadi. Shu tarzda, OT, jismoniy yoki ommaviy xotira maydonida bo'lishidan qat'i nazar, jarayonning aslida ajratilgan xotira bo'lishini ta'minlaydi. Barcha jarayonlarga ajratilgan barcha virtual xotira miqdori joriy Commit Charge deb nomlanadi. O'zgartirish faylining eng maqbul hajmini aniqlash uchun, aslida, virtual jarayonlar haqiqatda qancha joy egallashini bilishingiz kerak. Buni amalga oshirish uchun siz ajratilgan xotiraning yuqori cho'qqisini topishingiz kerak (Peak Commit Charge), masalan, barcha jarayonlar bir vaqtning o'zida ishlayotganda, ajratilgan xotiraning eng yuqori cho'qqisini kuzatib borish va kompyuterning jismoniy xotirasi miqdorini olingan qiymatdan olib tashlash. Olingan farq almashtirish faylining hajmi bo'ladi.
Do'stlaringiz bilan baham: |