Contenu connexe
Similaire à Lecture6 (20)
Lecture6
- 2. Ultra SPARC III-ийн виртуаль санах ой Ultra SPARC III 64 бит виртуаль хаягтай хуудастай 64 битийн машин. Гэсэн хэдий ч 64 бит виртуаль санах ойн орон зай ашиглаж чаддаггүй. Зөвхөн 64 битийг л дэмжих тул программ 1,8×1013 байтаас хэтрэхгүй. Хандаж болох виртуаль санах ой 243 байт хэсжээтэй 2 бүсэд хуваагдах ба нэг нь виртуаль санах ойн дээд хэсэгт нөгөө нь доод хэсэгт байрлана. Эдгээрийн хооронд хэрэглэгдээгүй хаягууд бүхий нүх байрлана. Нүх хэрэглэх оролдлого алдаа дуудна. Ultra SPARC III-ийн max физик санах ой 241 байт (2200Гбайт) байна. Хуудасны 4 төрлийн хэмжээтэй: 8Кбайт, 64Кбайт, 512Кбайт ба 4Мбайт. Виртуаль санах ойн хэмжээ их тул жирийн хуудасны хүснэгт хэрэглэх нь тохиромжгүй.
- 3. Ultra SPARC III арай өөр арга хэрэглэнэ. Санах ойг удирдах төхөөрөмж TBL (translation lookaside buffer) хүснэгтэй. Энэ хүснэгт физик хуудасны хүснэгт дэх виртуаль хуудасны дугаарыг заана. 8К хэмжээтэй хуудсанд 231 виртуаль хуудасны номер (2 миллиардаас их) харгалзана. Иймээс бүгдийг нь дүрслэх боломжгүй. TBL хүснэгт хамгийн сүүлд хэрэглэгдсэн виртуаль хуудасны дугаарыг л агуулна. Командын хуудас болон өгөгдлийн хуудас тусдаа ба тус бүрээс хамгийн сүүлийн 64 виртуаль хуудасны дугаарыг TBL хүснэгт агуулна.
- 4. TBL буферийн элемент бүр виртуаль хуудасны дугаар ба харгалзах физик хуудасны дугаарыг агуулна. Процессын дугаар гэж нэрлэгдэх контекст болон виртуаль хаяг санах ойн диспетчерт очиход диспетчер тусгай схемийн тусламжтай виртуаль хуудасны дугаарыг TBL буферийн элемент бүртэй харьцуулна.
- 5. Хэрэв давхцал гарч ирвэл буферийн элемент дэх хуудасны кадрын дугаар виртуаль хаягаас авсан шилжилттэй нэгдэн 41 бит физик хаяг бий болж flag-ийг (хамгаалалтын бит г.м.) боловсруулна. Хэрэв давхцал гарч ирээгүй бол TBL-ийн алдаа гарч үйлдлийн системд trap дуудна. Алдааг үйлдлийн систем боловсруулна. Энэ алдаа хуудас байхгүй үед үүсэх алдаанаас ялгаатай. TBL-ийн алдаа хэрэгтэй хуудас санах ойд байхад ч гарч болно. Онолын хувьд үйлдлийн систем TBL буферээс виртуаль хуудсанд хэрэгтэй элементийг ачаалж чадна. Гэхдээ энэ процессийг хурдасгахын тулд аппарат хангамжийг ашиглан программ хангамж хамтарч ажиллана. Үйлдлийн систем хамгийн их хэрэглэгддэг TBL буферийн элементүүдийг TSB (translation storage buffer) гэж нэрлэгдэх хүснэгтэд хадгална. Энэ хүснэгт L-1 түвшний кэш шиг зохион байгуулалттай.
- 6. TSB хүснэгтийн 16 байт элемент бүр нэг виртуаль хуудсыг заах ба үнэн зөвийн бит, контекстийн дугаар, виртуаль хаягийн тег, хуудасны физик дугаар болон флаг битүүд агуулна. Хэрэв кэшийн хэмжээ 8192 элемент гэвэл бага 13 бит нь 0 байх бүх виртуль хуудас хүснэгтийн 0 байрлал дахь элемент болох боломжтой. Хүснэгтийн хэмжээг программаар тодорхойлон санах ойг удирдах контроллерт үйлдлийн систем л хандах эрхтэй тусгай регистрээр дамжуулан өгнө. Хөрвүүлэлт хадгалах буфер алдаа заахад үйлдлийн систем TLB буферийн элемент хэрэгтэй виртуаль хуудсыг агуулж байгаа эсэхийг шалгана. Санах ойг удирдах контроллер энэ элементийн хаягийг тодорхойлон өөрийн дотоод регистрт (үйлдлийн систем л хандана) хадгална.
- 7. TSB хүснэгтийн 16 байт элемент бүр нэг виртуаль хуудсыг заах ба үнэн зөвийн бит, контекстийн дугаар, виртуаль хаягийн тег, хуудасны физик дугаар болон флаг битүүд агуулна. Хэрэв кэшийн хэмжээ 8192 элемент гэвэл бага 13 бит нь 0 байх бүх виртуль хуудас хүснэгтийн 0 байрлал дахь элемент болох боломжтой. Хүснэгтийн хэмжээг программаар тодорхойлон санах ойг удирдах контроллерт үйлдлийн систем л хандах эрхтэй тусгай регистрээр дамжуулан өгнө. Хөрвүүлэлт хадгалах буфер алдаа заахад үйлдлийн систем TLB буферийн элемент хэрэгтэй виртуаль хуудсыг агуулж байгаа эсэхийг шалгана. Санах ойг удирдах контроллер энэ элементийн хаягийг тодорхойлон өөрийн дотоод регистрт (үйлдлийн систем л хандана) хадгална.
- 9. Виртуаль санах ой ба кэшлэлт Виртуаль санах ой ба кэшлэлт хоорондоо холбоогүй ч хоорондоо төстэй. Виртуаль санах ойтой үед программ дискэн дээр хадгалагдан тогтсон хэмжээтэй хуудаснуудад хуваагдана. Энэ хуудаснуудын нэг хэсэг нь үндсэн санах ойд хадгалагдана. Хэрэв программ санах ойгоос хуудас ашиглаж байгаа бол хуудас байхгүйгээс үүсэх алдаа гарахгүй тул программ хурдан ажиллана. Кэшлэхэд бүх программ үндсэн санах ойд хадгалагдан тодорхой хэмжээтэй блокод хуваагдана. Энэ блокуудын зарим нь кэшэнд хадгалагдана. Хэрэв программ кэшийн блокууд ашиглаж байгаа бол кэшд хандах алдаа бараг гарахгүй тул программ хурдан ажиллана. Иймээс виртуаль санах ой ба кэш ижил бөгөөд иерархийн өөр өөр түвшинд ажиллаж байна.
- 10. Ялгаатай тал: Кэш санах ойн промах гарахад аппарат хангамж боловсруулалт хийх бол хуудас байхгүйгээс үүсэх алдааг үйлдлийн систем боловсруулна. Кэш санах ойн блок хуудаснаас бага хэмжээтэй Хуудасны хүснэгт виртуаль хаягийн ахлах битээр индеклэгдэх бол кэш санах ой санах ойн хаягийн бага битээр индекслэгдэнэ.
- 17. Бичсэний дараа шалгахад гарах алдаа Дээрх алдаануудын нэг нь гарахад төхөөрөмжийн регистрт харгалзах битүүд тогтоогдоно. Файл Виртуаль оролт/гаралт үүсгэх нэг арга нь файл гэж нэрлэгдэх ойлголт хэрэглэх. Файл – оролт/гаралтын төхөөрөмжид бичсэн файлуудын дараалал. Хэрэв оролт/гаралтын төхөөрөмж мэдээлэл хадгадах зориулалттай бол файлыг буцаан уншиж болно.
- 20. Унших байтын тооИйм системийн дуудлага хэрэгтэй өгөгдлийг буферт хадгална. Ихэвчлэн уншигдсан байтуудын тоог буцаана. Энэ тоо анхны хүссэн тооноос бага байж болно.
- 21. Нээлттэй файлтай дараагийн унших байтуудыг заагч холбоотой байна. Read командын дараа заагч уншсан байтын тоогоор нэмэгдэх тул дараалсан read команд дараалсан блокуудыг файлаас уншина. Программ файлыг уншаад дуусмагц үйлдлийн системд мэдэгдсэнээр үйлдлийн систем хүснэгт доторх энэ файлын зайг чөлөөлнө. Универсаль тооцоолох машины файл арай нүсэр бүтэцтэй ба тодорхой бүтэцтэй логик бичлэгийн дараалал байж болно.
- 22. Оролт/гаралтын виртуаль команд бичлэгийг хэрэгтэй файлаас уншин үндсэн санах ойд тодорхой хаягнаас эхлүүлэн байрлуулна. Энэ үйлдлийг гүйцэтгэхийн тулд аль файлыг хаанаас уншин хааш нь бичих нь тодорхой байна.
- 23. Виртуаль оролт-гаралтын команд үүсгэх Оролт/гаралтын виртуаль команд яаж үүсэхийг ойлгохын тулд файл ямар зохион байгуулалттай, яаж хадгалдагддаг зэргийг мэдэх шаардлагатай. Санах ойн нэгж блок нь дискний сектор байх ба хэд хэдэн дараалсан сектороос тогтож болно. a) CD(дараалсан 5 сектор) б) hard Файл дараалсан секторт хадгалагдаж байна уу гэдэг нь чухал.
- 24. Программист файлыг шугаман дарааллатай байтууд эсвэл логик бичлэг гэж үзнэ. Үйлдлийн систем – дискэн дээрх эмхлэгдсэн нэгж блокуудын багц гэж үзнэ. Файл дараалсан блокуудаас тогтох бол үйлдлийн систем файл эхлэх байрлалыг л мэдэхэд хангалттай. Файл дараалсан блокуудаас тогтоогүй бол дурын байтыг олохын тулд хүснэгт (файлын индекс) ашиглан нэгж блокны дискэн дээрх физик хаягийг олно. Файлын индекс дискэн дээрх хаяг болон шилжилтийг агуулсан хаягийн блокийн list(UNIX) эсвэл логик бичлэгийн list хэлбэртэй байна. Заримдаа логик бичлэг түлхүүртэй байх ба программ энэбичлэгийн хаяганд биш түлхүүрт хандана. Энэ тохиолдолд хүснэгтийн элемент бүр дискэн дээрх бичлэгний байрлалын мэдээллээс гадна түлхүүрийг агуулна.
- 25. Файлын блок олох өөр нэг арга нь – холбоостой list маягаар файлыг үүсгэх. Энэ тохиолдолд үндсэн санах ойд дараагийн бүх хаягуудтай хүснэгт байрлуулна. Дараалан байрласан файлуудыг удирдахад амар ч файлын max хэмжээг урьдчилан мэдэхгүй бол энэ технологийг хэрэглэж болохгүй. Хэрэв файл j сектороос эхлэн дараалсан секторт байрлах бол сектор дахь өөр файлтай давхцан өргөтгөх боломжгүй болно. Файл дараалаагүй бол ийм асуудал үүсэхгүй. Хэрэв диск эцсийн хэмжээ нь мэдэгдэхгүй өргөтгөх файлуудтай бол дараалсан секторт бичихэд төвөгтэй. Нөгөө талаас эцсийн хэмжээ нь мэдэгдэж байвал программ урьдчилан файлын урттай ижил секторуудыг үүсгэн байрлуулна. Эхний сектор нь мэдэгдэж байгаа тул дурын файлын дурын хэсгийн олоход ч амар байна.
- 26. Дискэн дээр файлын хэмжээг бий болгохын тулд үйлдлийн систем аль блок дүүрсэн аль нь сул байгааг үргэлж хянана. Бүх нүхний жагсаалтыг хадгалах ба энэ жагсаалтыг чөлөөтэй санах ойн жагсаалт (a) гэнэ. Өөр нэг арга нь (б) нэгж блокийг илэрхийлэх бит (1-дүүрсэн, 0- хоосон)
- 27. а) тодорхой урттай нүхнийг амархан олох ч файл устахад жагсаалтын хэмжээ өөрчлөгдөнө б) тогтмол хэмжээтэй ба нэгж битийн статусыг өөрчлөхөд нэг л битийг өөрчлөнө Search болон seek хугацаа дискэнд хандах хандалтыг удаашруулна. Хэрэв блокын эхлэлийг олоход 10мс хэрэгтэй бол 8Кбайтыг 1Кбайт 8 блок мэт унших нь (1мс) 1Кбайтыг уншихаас (1.25мс) үр дүнтэй. Бүтээмжийг нэмэгдүүлэхийн тулд нэгж блокыг томсгоно. Нэгж блокын нэмжээ хэр бага байна тоо нь ихсэнэ. Иймээс файлын индекс урт болж санах ой хүснэгт томроно. Жижиг блокууд өөрийн давуу талтай.