Virtual xotira tushunchasi Dasturiy ta'minot ishlab chiquvchilari ko'pincha mavjud bo'lgan RAM miqdoridan kattaroq katta dasturlarni xotirada joylashtirish muammosini hal qilishlari kerak. Ushbu muammoni hal qilish uchun variantlardan biri - bir-biriga o'xshash tuzilmalarni tashkil qilish-oldingi ma'ruzada ko'rib chiqilgan. Shu bilan birga, dasturchining dasturning bir-biriga o'xshash qismlarini shakllantirish jarayonida faol ishtiroki nazarda tutilgan. Kompyuter arxitekturasining rivojlanishi va xotira boshqaruvining operatsion tizimining imkoniyatlarini kengaytirish ushbu muammoni kompyuterga o'tkazish imkonini berdi. Asosiy yutuqlardan biri virtual xotira (virtual xotira) ning paydo bo'lishi edi. Birinchi marta 1959 yilda Manchester universitetida ishlab chiqilgan "Atlas" kompyuterida amalga oshirildi.
Virtual xotira kontseptsiyasining mohiyati quyidagicha. Faol jarayon ishlaydigan ma'lumotlar RAMda joylashgan bo'lishi kerak. Virtual xotira sxemalarida jarayon asosiy xotirada zarur bo'lgan barcha ma'lumotlarning mavjudligini tasavvur qiladi. Buning uchun, birinchi navbatda, jarayon bilan shug'ullanadigan xotira bir necha qismlarga bo'linadi, masalan, sahifalar. Ikkinchidan, jarayonga kiradigan mantiqiy manzil (mantiqiy sahifa) dinamik ravishda jismoniy manzilga (jismoniy sahifaga) uzatiladi. Va nihoyat, jarayonga kiradigan sahifa jismoniy xotirada bo'lmagan hollarda, uni diskdan almashtirishni tashkil qilish kerak. Sahifaning mavjudligini nazorat qilish uchun xotirada sahifa jadvalidagi sahifa atributlarining bir qismi bo'lgan maxsus bit mavjud.
Shunday qilib, asosiy xotirada jarayonning barcha tarkibiy qismlari mavjudligida hech qanday ehtiyoj yo'q. Bunday tashkilotning muhim natijasi shundaki, jarayon bilan shug'ullanadigan xotira miqdori RAM hajmidan kattaroq bo'lishi mumkin. Mahalliylik printsipi ushbu sxemani kerakli samaradorlikni ta'minlaydi.
Faqat qisman xotirada bo'lgan dasturni bajarish qobiliyati bir qator aniq afzalliklarga ega:
* Dastur jismoniy xotira miqdori bilan chegaralanmaydi. Dasturlarni ishlab chiqish soddalashtirildi, chunki siz foydalanadigan xotira miqdori haqida qayg'urmasdan katta virtual bo'shliqlardan foydalanishingiz mumkin.
* Dasturni (jarayonni) xotiraga qisman joylashtirish va dasturlar o'rtasida xotirani moslashuvchan qayta taqsimlash imkoniyati mavjudligi sababli, protsessor yukini va tizim tarmoqli kengligini oshiradigan xotiraga ko'proq dasturlarni qo'yish mumkin.
* Dasturning bir qismini diskka tushirish uchun i / u hajmi klassik almashtirish variantidan kamroq bo'lishi mumkin, natijada har bir dastur tezroq ishlaydi.
Shunday qilib, "görünürlük" dasturi uchun (operatsion tizim tomonidan qo'llab-quvvatlanadigan) ta'minlash imkoniyati deyarli cheksiz (32 - bit me'morchiligi uchun xarakterli hajmi 232 = 4 Gbayt) foydalanuvchi xotirasi (mantiqiy manzil maydoni) asosiy xotira sezilarli darajada kichikroq bo'lsa (jismoniy manzil maydoni) - juda muhim jihat.
Biroq, virtual xotira joriy etilishi alohida xotira segmentlariga kirishni nazorat qilish va ayniqsa, foydalanuvchi dasturlarini bir - biridan himoya qilish va Osni foydalanuvchi dasturlaridan himoya qilish kabi boshqa muhim muammolarni hal qilish imkonini beradi. Har bir jarayon o'zining virtual manzillari bilan ishlaydi, uning efirga uzatilishi kompyuterning apparatida amalga oshiriladi. Shunday qilib, foydalanuvchi jarayoni boshqa jarayonlarga taalluqli ma'lumotlar bilan band bo'lgan asosiy xotira sahifalariga bevosita murojaat qilish imkoniyatidan mahrum.
Misol uchun, 16-bit kompyuter PDP-11/70 64 kb mantiqiy xotira bilan 2 Mb RAM qadar bo'lishi mumkin. Ushbu kompyuterning operatsion tizimi, asosiy xotirani foydalanuvchi jarayonlari o'rtasida himoya qilish va qayta taqsimlashni ta'minlaydigan virtual xotirani qo'llab-quvvatladi.
Eslatib o'tamiz, virtual xotiraga ega bo'lgan tizimlarda dastur (mantiqiy manzillar) ishlab chiqaradigan manzillar virtual deb ataladi va ular virtual manzil maydonini tashkil qiladi. "Virtual xotira" atamasi dasturchi haqiqiy xotiradan boshqa xotira bilan shug'ullanadi, uning hajmi RAM hajmidan kattaroq bo'lishi mumkin.
Virtual xotiraning aniq dasturiy ilovalari ma'lum bo'lsa-da, bu yo'nalish tegishli apparatni qo'llab-quvvatlashdan so'ng eng keng tarqalgan rivojlanishga erishdi.
Shuni ta'kidlash kerakki, kompyuter uskunalari deyarli barcha xotira boshqaruv sxemalarida manzilni efirga uzatishda ishtirok etadi. Biroq, virtual xotira holatida, bu ekranning uzilishi va mantiqiy manzil maydonining ko'p o'lchovli bo'lishi tufayli yanada murakkablashadi. Ehtimol, ta'riflangan sxemani amalga oshirishda apparaturaning eng muhim hissasi-xotirada kerakli sahifalar bo'lmagan taqdirda (page fault) istisno holatlarning avtomatik ishlab chiqarilishi.
Oldindan ko'rib chiqilgan uchta xotira boshqaruv sxemasining har biri - sahifa, segment va segment-sahifa-virtual xotirani tashkil qilish uchun javob beradi. Eng ko'p ishlatiladigan segment-sahifa modeli va segmentatsiya g'oyasining sintezi bo'lgan ahamiyatsiz model. Bundan tashqari, segmentlar apparat tomonidan qo'llab - quvvatlanmaydigan arxitektura uchun ularni amalga oshirish xotira boshqaruvining arxitektura-mustaqil komponentining vazifasidir.
Segmentli tashkilot sof shaklda kam uchraydi.
Shubhasiz, butunlay kompyuter-mustaqil virtual xotira boshqaruv komponentini yaratish mumkin emas. Boshqa tomondan, virtual xotira boshqaruvi bilan bog'liq dasturiy ta'minotning muhim qismlari mavjud bo'lib, ular uchun apparat dasturlarining tafsilotlari juda muhim emas. Zamonaviy operatsion tizimning yutuqlaridan biri virtual xotira boshqaruvining apparat-mustaqil va apparat-ga bog'liq qismlarini to'g'ri va samarali ravishda ajratishdir. Virtual xotira boshqaruv quyi tizimining apparat-qaram qismiga nima va qanday kirganini qisqacha ko'rib chiqing. Apparat-mustaqil quyi tizimining tarkibiy qismlari quyidagi ma'ruzada ko'rib chiqiladi.
Eng keng tarqalgan holatda, katta virtual manzil maydonini jismoniy manzil maydoniga sezilarli darajada kichikroq hajmda ko'rsatish kerak. Foydalanuvchi jarayoni yoki OS virtual manzilda yozishni amalga oshirishi kerak va Osning vazifasi-saqlangan ma'lumotlarning jismoniy xotirada bo'lishini ta'minlash (keyinchalik RAM etishmasligi bilan tashqi xotiraga ko'chirilishi mumkin). Virtual xotira bo'lsa, manzillarni efirga uzatish bilan bir qatorda manzillarni ko'rsatish tizimi hozirgi vaqtda jismoniy xotirada va qaerda joylashganligini ko'rsatadigan jadvallarni saqlashni o'z ichiga olishi kerak.
Sahifa virtual xotirasi
Oddiy sahifa tashkilotida bo'lgani kabi, sahifali virtual xotira va jismoniy xotira bir xil o'lchamdagi bloklar yoki sahifalar to'plamlaridan iborat. Virtual manzillar sahifalarga bo'linadi (sahifa), jismoniy xotiradagi tegishli birliklar sahifa ramkalarini (sahifa ramkalarini) tashkil qiladi va umuman, sahifa virtual xotirasini qo'llab-quvvatlash tizimi paging (paging) deb ataladi. Xotira va disk o'rtasidagi ma'lumotlarni uzatish har doim butun sahifalar tomonidan amalga oshiriladi.
Virtual manzil xotirasi boshqaruvi tomonidan sahifalarga bo'linib bo'lgach, virtual manzil buyurtma qilingan juftlikka (p, d) aylanadi, bu erda p virtual xotiradagi sahifa raqami, ad - manzil elementi joylashtirilgan p sahifasining bir qismi sifatida ofset. Agar uning joriy sahifasi ramda bo'lsa, jarayon amalga oshirilishi mumkin. Agar asosiy xotirada mavjud sahifa bo'lmasa, u tashqi xotiradan qayta yozilishi kerak (pompalanadi). Qabul qilingan sahifa har qanday bepul sahifa ramkasiga joylashtirilishi mumkin.
Virtual sahifalar soni katta bo'lgani uchun, sahifa jadvali o'ziga xos ko'rinishga ega ("sahifa jadvali tuzilishi" bo'limiga qarang), yozuvlar tuzilishi yanada murakkablashadi, sahifaning atributlari orasida mavjudlik, o'zgartirishlar va boshqa boshqaruv bitlari mavjud.
Buyruqni bajarish jarayonida xotirada sahifa mavjud bo'lmaganda, sahifani buzish (Page fault) yoki sahifani rad etish deb ataladigan alohida holat paydo bo'ladi. Sahifa buzilishini qayta ishlash, buyruqni bajarish to'xtatilganligi, talab qilingan sahifa ikkinchi darajali xotira joyidan jismoniy xotiraning bepul sahifali ramkasiga pompalanadi va buyruqni bajarishga urinish takrorlanadi. Bepul sahifali ramkalar bo'lmasa, kamdan-kam ishlatiladigan sahifa diskka tushiriladi. Sahifalarni almashtirish va sahifa tartibsizliklarini qayta ishlash muammolari quyidagi ma'ruzada ko'rib chiqiladi.
Jismoniy xotirani boshqarish uchun OS ramka jadvali tuzilishini qo'llab-quvvatlaydi. Uning holatini ko'rsatadigan har bir jismoniy ramka uchun bitta yozuv bor.
Asosiy xotirada sahifa tashkil etadigan zamonaviy kompyuterlarning ko'pchiligida sahifa jadvalining faqat bir qismi saqlanadi va hozirgi virtual xotira jadvalining elementlariga kirish tezligi protsessor keshida joylashtirilgan super tezkor xotiradan foydalanish orqali quyida ko'rsatilganidek erishiladi.
E’tiboringiz uchun tashakkur!!!