Segment va segment-sahifa xotirasini tashkil etish
Download 64.91 Kb.
|
Muzaffar
Segment va segment-sahifa xotirasini tashkil etish Virtual xotirani tashkil qilishning yana ikkita sxemasi mavjud: segment va segment-sahifa. Segmentatsiya g'oyalari oldingi bobning kirish qismida tasvirlangan. Segmentni tashkil qilishda virtual manzil hali ham ikki o'lchovli bo'lib, ikkita maydondan iborat - segment raqami va segment ichidagi ofset. E'tibor bering, OT nuqtai nazaridan segmentlar mantiqiy ob'ektlardir va ularning asosiy maqsadi bir hil ma'lumotlarni (kod, ma'lumotlar va boshqalar) saqlash va himoya qilishdir. Foydalanuvchi nuqtai nazaridan, jarayon odatda baytlarning chiziqli massivi sifatida emas, balki o'zgaruvchan o'lchamdagi segmentlar to'plami (ma'lumotlar, kod, stek) sifatida ifodalanadi. Segmentatsiya - bu foydalanuvchi ko'rinishini qo'llab-quvvatlaydigan xotirani boshqarish sxemasi. Segmentlar protseduralar, massivlar, steklar yoki skalerlarni o'z ichiga oladi, lekin odatda aralash turdagi ma'lumotlarni o'z ichiga olmaydi. Past darajadagi tillarda yozuvchi dasturchilar segment registrlarining qiymatlarini aniq o'zgartirish orqali segmentni tashkil qilish haqida tasavvurga ega bo'lishlari kerak (bu Assemblerda yozilgan dasturlar matnlarida aniq ko'rinadi). Mantiqiy manzil maydoni segmentlar to'plamidir. Har bir segment nomi, hajmi va boshqa parametrlariga ega (imtiyoz darajasi, ruxsat etilgan kirish turlari, mavjudligi bayroqlari). Foydalanuvchi har bir manzilni ikkita qiymat bilan belgilaydi: segment nomi va ofset. (Peyging sxemasidan farqli o'laroq, foydalanuvchi faqat bitta manzilni belgilaydi, u apparat tomonidan sahifa raqami va ofsetga bo'linadi, dasturchi uchun shaffof bo'ladi). Har bir segment 0 dan maksimalgacha bo'lgan manzillarning chiziqli ketma-ketligidir. Turli segmentlar turli uzunliklarga ega bo'lishi mumkin, ular dinamik ravishda o'zgarishi mumkin (masalan, stek segmenti). Segment boshining fizik manziliga qo'shimcha ravishda (agar virtual segment asosiy xotirada bo'lsa), segmentlar jadvalining elementi segment uzunligini o'z ichiga oladi. Agar virtual manzildagi ofset hajmi segment hajmidan oshsa, uzilish sodir bo'ladi. Mantiqiy manzil tartiblangan juft v=(s,d), segment raqami va segment ichidagi ofsetdir. Segmentlar apparatda qo'llab-quvvatlanadigan tizimlarda bu parametrlar odatda segment identifikatorlari jadvalida saqlanadi va dastur bu identifikatorlarga selektor raqamlari orqali kiradi . Shu bilan birga, har bir jarayonning kontekstida kodning joriy segmentlari, stek, ma'lumotlar va boshqalarning selektorlarini o'z ichiga olgan va har xil turdagi xotiraga kirish uchun qaysi segmentlar ishlatilishini aniqlaydigan segment registrlari to'plami kiradi . Bu protsessorga apparat darajasida xotiraga kirishning haqiqiyligini aniqlash imkonini beradi, axborotni shikastlanishdan va ruxsatsiz kirishdan himoyalashni amalga oshirishni soddalashtiradi. Guruch. 9.2 Xotirani segmental tashkil etishda mantiqiy manzilni konvertatsiya qilish. Segmentlar uchun apparat ta'minoti nisbatan kam uchraydi (asosan Intel arxitektura protsessorlarida) va har bir kontekstli kalitda va turli segmentlar orasidagi har bir o'tishda bajariladigan segment registrlariga selektorlarning juda sekin yuklanishi bilan tavsiflanadi. Sof peyjingli xotira tashkilotiga ega tizimlarda segmentlar to'plami bo'lgan odatiy jarayon manzil maydonini tavsiflash uchun segmentatsiya apparatdan mustaqil darajada amalga oshiriladi. Katta segmentlarni xotirada saqlash noqulay bo'lishi mumkin. Ularning peyjinglash g'oyasi paydo bo'ladi. Virtual xotiraning segment-sahifali tashkil etilishi bilan virtual manzilning jismoniy manzilga ikki darajali tarjimasi sodir bo'ladi. Bu holda virtual manzil uchta maydondan iborat: virtual xotira segmenti raqami, segment ichidagi sahifa raqami va sahifa ichidagi ofset. Shunga ko'ra, ikkita xaritalash jadvali qo'llaniladi - segment raqamini sahifa jadvaliga bog'laydigan segment jadvali va har bir segment uchun alohida sahifa jadvali. Guruch. 9.3 Xotirani segment-sahifa tashkil etishda fizik manzilni shakllantirish. Virtual xotiraning segment-sahifali tashkil etilishi turli vazifalarning virtual xotirasida ma'lumotlarning bir xil segmentlari va dastur kodlarini almashish imkonini berdi (har bir virtual xotira uchun alohida segmentlar jadvali mavjud edi, lekin umumiy segmentlar uchun umumiy sahifa jadvallari saqlangan) . Sahifa jadvali Sahifa jadvalini tashkil qilish peyjing va segment-sahifani o'zgartirish mexanizmlarining asosiy elementlaridan biridir. Keling, sahifalar jadvalining tuzilishini batafsil ko'rib chiqaylik. Demak, virtual manzil virtual sahifa raqami (yuqori tartibli bitlar) va ofsetdan (past tartibli bitlar) iborat. Virtual sahifa raqami virtual sahifaga kirishni topish uchun sahifalar jadvalida indeks sifatida ishlatiladi. Sahifa jadvalidagi ushbu yozuvdan ramka raqami (sahifa freym raqami) topiladi, keyin ofset qo'shiladi va fizik manzil shakllanadi. Bundan tashqari, sahifa jadvali yozuvi xavfsizlik bitlari kabi sahifa atributlari haqidagi ma'lumotlarni o'z ichiga oladi. Sahifalar jadvalini samarali amalga oshirishning asosiy muammosi zamonaviy kompyuterlarning virtual manzil maydonlarining katta o'lchamlari bo'lib, ular odatda protsessor arxitekturasining bitligi bilan belgilanadi. Bugungi kunda eng keng tarqalgani 32-bitli protsessorlar bo'lib, ular sizga ushbu o'lchamdagi 4 GB virtual manzil bo'shliqlarini yaratishga imkon beradi (64 bitli kompyuterlar uchun bu qiymat 2**64b). Keling, sahifa jadvalining taxminiy hajmini hisoblaylik. Sahifa o'lchami 4K (Intel) bo'lgan 32 bitli manzil maydonida biz 1 million sahifani olamiz va 64 bitli sahifada undan ham ko'proq. Bu. jadvalda 1M satr (kirish) bo'lishi kerak va qatordagi yozuv bir necha baytdan iborat. E'tibor bering, har bir jarayon uchun o'z sahifa jadvali kerak (va segment-sahifa sxemasi bo'lsa, har bir segment uchun bittadan). Shunday qilib, bu holda, sahifa jadvali juda katta bo'lishi mumkin . Bundan tashqari, displey tez bo'lishi kerak . Displey tez bo'lishi kerak. u deyarli har bir mashina ko'rsatmasida uchraydigan har bir xotiraga kirish bilan amalga oshiriladi. Bu muammo asosan assotsiativ xotirani amalga oshirish orqali hal qilinadi ( keyingi bo'limga qarang ). Har doim xotirada katta jadvalga ega bo'lish va uning faqat bir nechta qismlarini saqlash zaruratining oldini olish uchun (bu yana mahalliy xususiyat tufayli mumkin!), Ko'pgina kompyuterlar ko'p darajali sahifa jadvalidan foydalanadilar . Sahifa jadvalidagi darajalar soni ma'lum arxitekturaga bog'liq. Siz bir darajali (DEC PDP-11), ikki darajali (Intel, DEC VAX), uch darajali (Sun SPARC, DEC Alpha) peyjingni, shuningdek, belgilangan darajalar soni bilan peyjingni amalga oshirishga misollar keltirishingiz mumkin. (Motorola). MIPS R2000 RISC protsessorining ishlashi umuman sahifalar jadvalisiz amalga oshiriladi. Bu erda kerakli sahifani qidirish, agar ushbu sahifa assotsiativ xotirada bo'lmasa, operatsion tizim (nol darajadagi peyjing deb ataladi) tomonidan qabul qilinishi kerak. Download 64.91 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling