17-mavzu: Virtual xotira. Xavfsizlik tizimi. Xotira himoyasi
Virtual xotira (virtual memory) - asosiy xotira va ikkinchi darajali xotira (masalan, qattiq disk) o'rtasida avtomatik ravishda harakatlanish orqali kompyuteringizda mavjud bo'lganidan ko'proq RAM talab qiladigan dasturlarni ishga tushirishga imkon beradigan kompyuter xotirasini boshqarish usuli [1] [2] [2] ] [3]. Ishlayotgan dastur uchun bu usul mutlaqo shaffof va dasturchi qo'shimcha harakatlarni talab qilmaydi, ammo bu usulni amalga oshirish uchun ham apparat, ham operatsion tizimning qo'llab-quvvatlashi talab etiladi.
Virtual xotiraga ega tizimda virtual manzillar deb nomlangan dasturlar tomonidan ishlatiladigan manzillar kompyuter xotirasida jismoniy manzillarga aylantiriladi. Virtual manzillarni jismoniy manzillarga tarjima qilish xotirani boshqarish birligi deb ataladigan apparat orqali amalga oshiriladi. Dastur uchun asosiy xotira kompyuterning tegishli RAMga ega bo'lishidan qat'i nazar, kirish va doimiy manzillar maydoni yoki doimiy segmentlar to'plamiga o'xshaydi. Virtual manzil maydonlarini boshqarish, jismoniy va virtual xotiraning korrelyatsiyasi, shuningdek asosiy va ikkinchi darajali do'konlar orasidagi xotira qismlarining harakati operatsion tizim tomonidan amalga oshiriladi (sahifani almashtirishni ko'ring).
Virtual xotiradan foydalanish quyidagi imkoniyatlarni beradi:
dasturchini dastur qismlarini xotiraga yuklashni boshqarish va boshqa dasturlar bilan xotiradan foydalanishni muvofiqlashtirish zaruriyatidan ozod qiling.
tizimda jismoniy o'rnatilgandan ko'ra ko'proq xotiraga ega dasturlarni ta'minlang
ko'p tarmoqli tizimlarda ishlaydigan dasturlarni bir-biridan ajratib, ularga ajratilgan manzil maydonlarini ajratib qo'ying (xotira himoyasini ko'ring)
Hozirgi vaqtda virtual xotira ko'plab zamonaviy protsessorlarda apparat bilan ta'minlangan [1]. Shu bilan birga, juda tezkor ishlash talab etiladigan yoki javob berish vaqtiga cheklovlar mavjud bo'lgan mikrokontrolörlarda va maxsus maqsadli tizimlarda virtual xotira nisbatan kam ishlatiladi. Shuningdek, ko'p tizimli va murakkab xotira ierarxiyalari bunday tizimlarda kamroq uchraydi.
Tarixi. 1940 va 1950 yillarda hajmi RAM xotirasi hajmidan oshgan barcha dasturlarda operativ xotira va tashqi xotirani boshqarish mantig'i, masalan, overlay bo'lishi kerak edi. Shu munosabat bilan virtual xotira nafaqat tezkor xotira hajmini oshirish uchun, balki ushbu ko'payishni dasturchilar uchun eng qulay qilish uchun ham joriy qilindi. [4] Ko'pgina erta kompyuter tizimlarida ko'p dasturlash va ko’pmasalalikni qo'llab-quvvatlash uchun, segmentatsiya (masalan, PDP-10 kompyuterlarida) yordamida virtual xotira bo'lmagan bir nechta dasturlar orasida xotira almashildi.
Virtual xotira tushunchasi birinchi marta 1956 yilda nemis fizigi Frits-Rudolf Gyuntsch (Germaniya: Fritz-Rudolf Güntsch) o'zining doktorlik dissertatsiyasida "Bir necha asinxron aylanadigan burg'ulashli raqamli kompyuterning mantiqiy dizayni va tezkor xotirani avtomatik boshqarish" nomli doktorlik dissertatsiyasidan foydalangan. Unda har birining sig'imi 100 so'zdan iborat 6 ta xotira bloklari bo'lgan va har birida 100 so'zdan iborat 1000 blokdan iborat adres maydoni mavjud bo'lgan mashina tasvirlangan. Mashinaning apparati magnit barabanlarda asosiy va tashqi xotira orasidagi bloklarni avtomatik ravishda harakatlantiradi. [5] [6] Sahifalarni taxlash birinchi marta Atlas kompyuterining xotirasini 16000 so'zli magnit yadrolari va 96000 so'zli magnit barabanlarda xotirani birlashtirish orqali xotirani kengaytirish yo'lida amalga oshirildi. Atlas mashinasining birinchi yetkazib berilishi 1962 yilda bo'lib o'tdi, ammo 1959 yilda ishlab chiqarilgan peyjing prototiplari ishlab chiqilgan. [4] [7] [8] 1961 yilda Burroughs korporatsiyasi mustaqil ravishda tijorat uchun mavjud bo'lgan virtual xotira B5000 kompyuterni chiqardi, o'rniga segmentirovkadan foydalanib segmentirovka qildi. [9] [10] 1965 yilda virtual xotira mahalliy BESM-6 mashinasida amalga oshirildi, ammo amalga oshirilgan mexanizm 15-bitli manzil maydonini kengaytirishga imkon bermadi va dasturlash qulayligini chekladi. [11]
Umumiy operatsion tizimlarda virtual xotiradan foydalanishdan oldin bir qator muammolarni hal qilish kerak edi. Dinamik manzilni tarjima qilish qimmatbaho va maxsus uskunalarni ishlab chiqarishni talab qildi. Birinchi amaliyotlar xotiradan foydalanishni sekinlashtirdi. [4] Tashqi xotiradan foydalanadigan yangi tizim algoritmlari ma'lum amaliy dasturlar uchun ilgari ishlatilgan algoritmlarga qaraganda samaraliroq bo'lmaydi degan qo'rquvlar bor edi. 1969 yilga kelib, sanoat kompyuterlari uchun virtual xotira to'g'risida munozaralar tugadi: Devid Sayre boshchiligidagi IBM tadqiqotchilari guruhi ularning virtual xotira tizimi eng yaxshi qo'lda ishlaydigan tizimlardan har jihatdan ustunligini ko'rsatdi. [4] [12] Virtual xotira ishlatilgan birinchi mini-kompyuter Norvegiya NORD-1 edi. 70-yillarda boshqa xotira kompyuterlarda Virtual operatsion tizim paydo bo'ldi, eng mashhuri VMS operatsion tizimida ishlaydigan VAX edi.
X86 arxitekturasidagi virtual xotira 80286 protsessorining himoyalangan rejimining paydo bo'lishi bilan amalga oshirildi, ammo bu holda xotira segmentatsiyasidan foydalanildi va almashtirish segmenti usuli katta segment o'lchamlari uchun yaxshi darajada bo'lmadi. 80386 protsessor, agar boshqa istisnolarni qayta ishlash paytida sahifada xatolik yuzaga kelgan bo'lsa, ikki tomonlama xatolarga olib kelmaydigan peydjing qo'llab-quvvatlashi joriy etildi. Pleyer tizimining tepasida, mavjud xotira segmentatsiyasi mexanizmi ishladi. Biroq, segment deskriptorlarini yuklash juda qimmat ish bo'lib, operatsion tizimni ishlab chiquvchilarni sahifa sahifasi va segmentatsiyasining kombinatsiyasidan ko'ra, faqat sahifani yozib olishga ishonishga majbur qilishdi.
Do'stlaringiz bilan baham: |