Virtual xotira tushunchasi, tashqi xotira va ularning turlari. RAID massivlar
Virual xotira.
Dastlabki kompyuterlarda xotira juda kichik va narxi baland bo’lgan. 1950-yillarning oxiridagi eng yaxshi kompyuter IBM-650 ning xotirasi 2000 ta so’zga ega bo’lgan. ALGOL ning 60 ta kompilyatori 1024 so’z xotirali kompyuterlar uchun ishlab chiilgan. U davr dasturchilari o’z dasturini xotiraga joylashtirishni eng asosiy muammo deb bilganlar va bunga juda ko’p vaqtlarini sarflaganlar. Ko’pincha tezkor algoritmning o’rniga sekinroq algoritmlarni ishlatishgan, chunki tezkor algoritm xotirada ko’p joy egallagan.
Bu muammoni hal qilishda asosan tashqi xotiralarga suyanilgan. Dasturchi dasturni overley deb nomlanuvchi bir necha qismlarga bo’lib, xotiraga joylashtirgan. Dasturni to’liq ishlatish uchun dastlab 1-overley ishlatilgan, u ishini yakunlagach, 2-overlay va h.k. dasturchi dasturni overleylarga bo’lish masalasini va qaysi overley yordamchi xotiraning qaysi qismida joylashihsi masalasini hal qilgan, yana asosiy va tashqi xotira o’rtasida overleylar almashinishini nazorat qilgan, umuman, bu jarayonni kompyuter ishtirokisiz o’zi bajargan.
Bunday texnologiya juda murakkab bo’lishiga qaramasdan ancha vaqt davomida qo’llab kelingan. 1961-yilda bir guruh olimlar (Manchester, Angliya) bu jarayonni avtomatik bajarilish uslubini taqdim etgan. Hozirgi kunda virtual xotira deb nomlanuvchi bu metod 1960-yillarda ishlab chiqarilgan kompyuterlarda qo’llanilgan. 1970-yillardan keyin esa barcha kompyuterlarda joriy qilingan.
Xotiraning sahifali tashkil qilinishi.
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.
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: |