MAVZU: Virtual xotirani sahifali tashkil qilish
Manchesterlik olimlar adres maydoni va xotira adresi tushunchalarini alohidalashni taklif qilishgan. Masalan, 16 bitli adres maydonli 4096 so’zli xotiraga ega mashinani qaraymiz. Bu kompyuterda ishlovchi dastur xotiraning 65 536 ta so’ziga murojaat qilishi mumkin (216=65 536). E’tibor bering: adreslanadigan so’zlar soni adres bitlari soniga bog’liq bo’lib, xotiradagi real so’zlar soniga esa bog’liq emas. Bu xotiraning adres maydoni 0, 1, 2, 3, …, 65535 dan iborat. Xotira esa faqat 4096 so’zni saqlay oladi xolos.
Bu yerda 4095 gacha va 4096 dan keyingi adreslar orasida keskin farqlanish yuzaga kelgan. 4095 gacha foydali adres makoni, 4096 dan keyingilari foydasiz adres makoni deyilgan. Chunki 4096 dan keyingi adreslar xotiraning real adreslariga mos kelmagan. Adres maydoni va xotira adresi orasida farqlanish mavjud bo’lmagan, chunki ular orasida o’zaro birxillik munosabati mavjud deb tushunilgan.
Adres maydoni va xotira adresini alohidalash g’oyasi quyidagicha tushuntiriladi. Har bir joriy vaqtda xotiraning 4096 ta so’ziga bevosita murojaat qilish mumkin. Bu esa ushbu so’zlar 0 dan 4095 gacha adresda joylashishi shart degani emas. Masalan, 4096-adresga murojaat qilinganda xotiraning 0-adresidagi so’z ishlatilishi, 4097-adresga murojaat qilinganda xotiraning 1-adresidagi so’z ishlatilishi, …, 8191-adresga murojaat qilinganda xotiradagi 4095-so’z ishlatilishi lozim va h.k. Boshqacha aytganda adresli maydonni haqiqiy xotira maydonida akslanishi kuzatiladi.
S layd
Agar dastur 8192 adresdan 12287 adresga o’tishna bajarsa nima bo’ladi? Virtual xotirasiz mashinalarda xatolik sodir bo’ladi, ekranda “Mavjud bo’lmagan xotira adresi” yozuvi chiqadi. Virtual xotirali mashinada esa quyidagilar bajariladi:
1) 4096 dan 8191 gacha so’zlar diskda joylashadi
2) 8192 dan 12287 gacha so’zlar asosiy xotiraga yuklanadi.
3) Adreslarni akslanishi o’zgaradi. Endi 8192 dan 12287 gacha adreslar asosy xotiradagi 0 dan 4095 gacha yacheykalarga moslanadi.
4) Dasturning bajarilishi davom etadi.
Adreslasrni bunday avtomatik yoyish texnologiyasi xotirani sahifali tashkil qilinishi deyiladi, diskdan o’qiladigan dastur qismlari esa sahifalar deyiladi.
Adreslarni adres maydonidan xotiraning real adreslariga akslantirishining yana boshqa murakkabroq usuli ham mavjud. Dastur murojaat qilishi mumkin bo’lgan adreslarni virtuall adres muhiti deyiladi, xotiradagi real adreslarni esa fizik adres muhiti deymiz. Xotirani taqsimlash sxemasi va sahifalar jadvali virtual adres va fizik adreslarni o’zaro moslashtiradi. Diskda to’liq virtual adres muhitini saqlash uchun joy yetrali deb hisoblanadi (juda bo’lmaganda joriy vaqtda bajarilib turgan qismini).
Dasturlar virtual adres muhitidan so’zlarni o’qishi va/yoki virtual adres muhitiga yozishi mumkin, aslida fizik xotira muhitida bunga joy bo’lmasa ham. Virtual xotira kompyuterning xotirasi katta ekanligi haqida tasavvur uyg’otadi xolos. Aslida kompyuterning fizik xotirasi ancha kichik bo’ladi. Katta hajmli xotira tasavvuri xotiraning sahifli tashkil qilinishidan kelib chiqqanligini dasturiy vositalar bilan aniqlab bo’lmatdi. Xohlagan adresga xohlagan vaqtda murojaat qilinsa, ma’lumotlar yoki komandalar chiqib kelaveradi. Bu mexanizm shaffof mexanizm deyiladi.
Do'stlaringiz bilan baham: |