Your SlideShare is downloading. ×
Lecture 15, 16
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Lecture 15, 16

2,389
views

Published on


0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,389
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Санах ойн хуудас Лекц 15, 16
  • 2. Виртуаль санах ой Гүйцэтгэх программ санах ойгоос их хэмжээтэй бол overlay гэж нэрлэгдэх арга хэрэглэдэг байсан. Энэ аргыг программист удирддаг байсан. 1961 онд автоматаар нэмэх арга буюу виртуаль санах ой хэрэглэх арга гарч ирсэн.
  • 3. Санах ойн хуудсан зохион байгуулалт 4096 санах ойн үгтэй, 16 бит командын хаягийн талбартай компьютер 65536 (216=65536) санах ойн үгэнд хандана. Виртуаль санах ой гарахаас өмнө санах ойн талбар ба санах ойн хаяг ялгаатай биш байсан. Дурын агшинд 0-4095 үгэнд хандаж болох ч энэ үгнүүд санах ойн 0-4095 хаягт харгалзах албагүй.
  • 4.  8192-12287 хаягт хандахад:1. 4096-8191 дэх үгнүүд дискэнд хадгалагдана.2. 8192-12287 үгнүүд үндсэн санах ойд хадгалагдана.3. Хаягийн байрлал өөрчлөгдөнө: одоо 8192-12287 дахь хаяг 0- 4095 хаягтай санах ойн cell-д харгалзана.4. Программ үргэлжлэн гүйцэтгэгдэнэ.Ингэж автоматаар нэмэхийг хуудсан зохион байгуулалт гэх ба дискнээс уншигдаж байгаа хэсгийг хуудас гэнэ.Өөр нэг арга: программ хандаж болох хаягийг виртуаль хаяг гэж нэрлээд санах ойн бодит хаягийг физик хаяг гэж нэрлэх. Санах ой ба хуудасны хүснэгтийг тусгаарлах нь виртуаль хаяг ба физик хаягийг салгахтай харгалзана. Энэ тохиолдолд дискэн дээр виртуаль хаягийг багтаах хангалттай зай бий гэж үзнэ.
  • 5. Санах ойн хуудас үүсгэх Виртуаль санах ойд программ болон өгөгдөл хадгалах диск хэрэгтэй. Виртуаль санах ойг 512-64Кбайт хүртэл ижил хэмжээтэй хуудсуудад хуваана. Заримдаа 4Мбайт ч байна. а) 64К хуудас – 4К б) 32К хуудас – 4К
  • 6.  32бит виртуаль хаяг → физик хаяг MMU (memory management unit)- Процессорын микросхемдээр эсвэл хажууд ньбайрлана.
  • 7. - 32 бит хаягийг 20 бит виртуаль хуудасны хаяг, 12 бит хуудас доторх шилжилтэд (хуудас олох индекс) хуваана.- MMU хэрэгтэй хуудас санах ойд байгаа эсэхийг шалгана. 220 виртуаль хуудас ба 8 хуудасны кадр байгаа тул бүх хуудас санах ойд байж чадахгүй. Контроллер хуудасны хүснэгтийн элементэд бит присутствия-г шалгана.- Сонгосон элементээс мөрний кадрын утгыг авч 15бит гаралтын регистрийн ахлах 3 битэд хуулна.- Дээрхтэй параллелиар виртуал хаягийн бага 12 бит нь гаралтын регистрийн бага 12 битэд хуулагдана.- Үүссэн 15бит хаягийг кэш эсвэл үндсэн санах ойд илгээнэ.
  • 8.  16 бит виртуал хуудсыг 8 хуудасны кадртай үндсэн санах ойд дүрслэх
  • 9. Хуудас дуудах ба ажлын олонлог Үндсэн санах ойд виртуаль хуудас байхгүй үед энэ хуудсыг дуудахад алдаа гарна. Ийм алдаа гарахад үйлдлийн систем дискнээс хуудсыг уншиж хуудасны хүснэгтэд шинэ физик хаяг нэмээд командыг давтана.Виртуаль санах ойтой машин программын нэг ч хэсэг нь үндсэн санах ойд байхгүй байхад уг программыг ачаалж чадна.Энэ тохиолдолд хуудасны хүснэгт бүх виртуаль хуудас туслах санах ойд байгаа гэдгийг заах ѐстой. Төв процессор эхний командыг дуудах гэж оролдоод хуудас байхгүй гэсэн алдааны хариуг авахад эхний командыг агуулсан хуудас санах ойд ачаалагдан хүснэгтэд бичигдэнэ. Үүний дараа эхний команд гүйцэтгэгдэнэ. Хэрэв эхний команд 2 хаяг агуулаад энэ 2 хаяг нь командтай хуудсанд байхгүй ба өөр өөр хуудсанд байгаа бол хаягтай 2 хуудас команд гүйцэтгэгдэж дуусахаас өмнө үндсэн санах ойд ачаалагдана.
  • 10.  Дараагийн команд ахин нэлээн хэдэн алдаа үүсгэж болно. Виртуаль санах ойтой ингэж ажиллахыг хүсэлтээр дуудах гэнэ. Арай өөрөөр хандах арга бас бий. Хугацааны t момент бүрд сүүлийн k удаа ашиглагдсан хуудастай багц байна. Энэ багцыг ажлын олонлог гэнэ. Ажлын олонлог маш удаан өөрчлөгдөх тул дараагийн программ ачаалахад ямар хуудаснууд ачаалагдахыг урьдчилан тааварлаж болно. Иймээс урьдаас хуудсуудыг ачаална.
  • 11. Хуудас өөрчлөх Ажлын олонлогийг урьдчилан санах ойд хадгалсан ч программист ямар хуудас санах ойд байгааг мэдэхгүй. Иймээс үйлдлийн систем дахин дахин энэ олонлогийг харуулж байх хэрэгтэй болно. Программ санах ойд байхгүй хуудаст хандахад дискнээс дуудна. Гэхдээ энэ хуудсыг ачаалахын тулд өөр нэг хуудсыг буцаана. Иймээс аль хуудсыг буцаахыг тодорхойлох алгоритм хэрэгтэй болно. Хамгийн эхэнд хэрэглэгдсэн хуудаснуудыг нэг нэгээр нь буцаана. Энэ алгоритмыг LRU (least recently used) гэнэ. Энэ алгоритмын ажиллагаанд заримдаа алдаа гарна. Жишээ нь 9 хуудас циклтэй программыг ажиллуулахад 8 хуудас л үндсэн санах ойд байрлах боломжтой байг.
  • 12.  7-р хуудас дуудагдахад 0-7 хуудаснууд санах ойд хуулагдсан байна. 8-р виртуаль хуудас дуудагдахад 0-р хуудсыг хамгийн эхэнд хэрэглэгдсэн болохоор устган 8-р хуудсыг хуулна. 8-р хуудаснаас команд гүйцэтгэсний дараа циклийн эхэнд (0 хуудас) очих бол энэ алхам алдаа заана. LRU алгоритмаар 1-р хуудсыг арилган 0 хуудсыг дахин бичнэ. Хэсэг хугацааны дараа 1-р хуудсанд дахин хандахад ахиад л алдаа заана.... LRU алгоритм энэ тохиолдолд таарахгүй тул FIFO (first-in first- out) алгоримт хэрэглэнэ. Энэ алгоримт хуудасны кадртай холбоотой тоолууртай ба тоолуур эхлээд 0 байна. Хуудас байхгүй алдаа гарахад тоолуурын утга 1-ээр нэмэгдэн дуудагдсан хуудас 0 дугаартай болно. Хуудас арилгахдаа хамгийн их дугаартайгаас арилгана.
  • 13. Хуудасны хэмжээ ба фрагментчилах Хэрэв программ ба өгөгдөл ижил бүхэл тоон хуудас дүүргэх бол санах ойд ачаалагдсаны дараа сул зай үлдэхгүй. Харин ижил бүхэл тоон хуудас дүүргэхгүй бол ашиглагдаагүй зай үлдэнэ. Жишээ нь:Программ ба өгөгдөл 4096 байт хуудастай машин дээр 26000 байт зай эзлэх бол эхний 6 хуудас дүүрэхэд 6-4096байт болно. 7-р хуудас 2600-24576=1424 байт ачаалагдаж 2672 байт сул үлдэнэ.Санах ойд 7-р хуудас ачаалагдсан байхад энэ сул байт ачаалагдсан байх ч ямар ч функц гүйцэтгэхгүй. Энэ проблемийг дотоод фрагментац гэнэ.Хэрэв хуудасны хэмжээ n байт, сул байт ачаалагдсан зай n/2 бол бага хэмжээтэй хуудас хэрэглэх шаардлага гарна. Нөгөө талаа бага хэмжээтэй хуудас ашиглахад хуудасны тоо олон байх хэрэгтэй болж хуудасны хүснэгт томорно.
  • 14.  Хуудасны хүснэгт аппарат хангамжид байрлах бол их олон тооны регистр шаардлагатай болно. Мөн ачаалах болон зогсооход хугацаа их шаардана. Мөн жижиг хуудас дискний нэвтрүүлэх чадварыг багасгана. Дискнээс мэдээлэл дамжуулахад 10мс хүлээх шаардлагатай тул (search+seek) мэдээллийг их хэмжээгээр дамжуулах нь ашигтай. Гэхдээ жижиг хуудас өөрийн давуу талтай. Ажлын олонлог хол хол байрлах виртуаль санах ойн жижиг мужуудаас тогтох бол thrashing (бут ниргэх) гарахгүй.
  • 15. Сегментчилэл Хэд хэдэн виртуаль хаягийн орон зай үүсгэж болно. Компилятор хэд хэдэн хүснэгт үүсгэж болно:- Хувьсагчийн нэр, атрибут агуулсан тэмдэгтийн хүснэгт- Хэвлэхээр хадгалсан эх текст- Бүхэл тоон тогтмол ба хөвөгч цэгтэй тогтмол агуулсан хүснэгт- Программын синтаксийн анализ агуулсан мод- Компилятор потор процедур дуудах стекЭхний 4 нь компиляцийн явцад өснө. 5 дахь нь таахаргагүйгээр ихсэж багасна.
  • 16.  Программ маш их хувьсагч агуулсан гэе. Тэмдэгтийн хүснэгт дүүргэгдсэн ч өөр хүснэгтийн зай сул байна. Энэ тохиолдолд overlay-г гараад удирдаж мэт өөр хүснэгтийн зайнаас өгч болно. Гэхдээ энэ нь тохиромжтой биш. Иймээс маш олон хамааралгүй хаягийн орон зай үүсгэнэ. Энэ орон зайг сегмент гэнэ. Сегментийн урт ямарч байж болно. Сегмент бүр өөр өөр урттай байж болно. Мөн сегментийн урт программын явцад өөрчлөгдөж болно.
  • 17.  Сегмент логик элемент бөгөөд процедур, массив, стек, скляр хувьсагчийн цуваа агуулж болох ч 1 сегмент 1 л төрлийн өгөгдөл агуулна. Мөн процедур бүр тусдаа сегментэд байрлах тул компиляцлагдаж байгаа процедуруудыг холбоход хялбар болно. n сегментээс процедур дуудан 0 үгэнд хандахад (n,0) хаяг хэрэглэнэ. Хэрэв n сегмент дэх процедурыг өөрчлөн компиляц хийсэн ба бусад процедурт өөрчлөлт хийх шаардлагагүй. Нэг хэмжээст орон зайд процедурууд хойно хойноосоо байрлах ба завсар нь зай байхгүй. Иймээс нэг процедур өөрчлөгдөхөд бусад нь өөрчлөгдөх хэрэгтэй болно. Сегментчилэл ерөнхий процедур болон өгөгдлийг хэдэн программанд салгахад амар (хаягийг хэмнэнэ) болгосон. Сегмент бүр өөр төрлийн хамгаалалттай байж болно. Жишээ нь процедуртай сегментийг зөвхөн “гүйцэтгэх” гэж тодорхойлон унш/бич хорьж болно....
  • 18.  Хуудсан болон сегментэн санах ойн зохион байгуулалтыг харьцуулбал:
  • 19. Сегмент үүсгэх Сегментийг 2 аргаар үүсгэж болно.1.а. Зайг шахах (гадаад фрагментац)а) 5 сегмэнттэйб) 1-р сегментийг арилган хэмжээгээр бага 7-р сегментийг байранд нь оруулсанв) сегмент 4-г сегмент 5-р солисонг) сегмент 3-г сегмент 6-р солисонд) сегмент ба хоосон зайгаар нь (нүх) ялгасан
  • 20.  Гадаад фрагментац хийгдэж байхад (г) сегмент 3-т хандахад хэдийгээр нүх байгаа ч тус тусдаа байгаа ба хэмжээ нь бага тул сегмент 3-г байрлуулж болохгүй. Иймээс аль нэг сегментийг арилгана. Ийм байдлаас гарахын тулд нүх үүсэх бүрд 0 хаяг руу дараагийн сегментийг ойртуулах замаар шилжүүлнэ.1.а. Нүхний хэмжээ сегментүүдийн эзлэх хэмжээнээс их болтол нь хүлээгээд дараа нь нягтруулна. Санах ойг нягтруулах зорилго нь бүх жижиг нүхнүүдийг нэг том нүх болгон сегмент байрлуулж болох зай гарган авах. Энэ аргын дутагдалтай тал нь хугацаа их шаардана. Нүх үүсэх бүрийн дараа нягтруулах нь ашиггүй.
  • 21. Хэрэв нягтруулахад их хугацаа шаардагдаж байвал тусгай алгоритм хэрэглэн аль нүхийг тухайн сегментийг байрлуулахад хэрэглэхэд тохиромжтойг илрүүлнэ. Үүний тулд бүх хаяг болон нүхний хэмжээтэй list хэрэг болно.Хамгийн түгээмэл хэрэглэгддэг алгоримт – оптималь хөөлт буюу хэрэгтэй сегмент багтах хамгийн бага нүхийг олох. Энэ алгоримтын зорилго нь сегмент байрлуулахын тулд том нүхийг хэсэгчилэн хуваахаас зайлсхийх.Өөр нэг түгээмэл хэрэглэгддэг алгоритм нь бүх нүхний list-ийг шалган хэмжээгээрээ таарах нүхийг илрүүлэх. Энэ нь бүх list- ийг шалган оптималь нүх олохоос бага хугацаа зарцуулна. Мөн бүтээмж ч өндөртэй (оптималь хөөлт хэрэглээгүй жижиг нүхнүүд ихийг үүсгэнэ).Дээрх 2 алгоримт хоѐулаа нүхний “дундаж” хэмжээг багасгана.
  • 22.  Сегментийн хэмжээ нүхний хэмжээтэй таарах нь ховор тул нүхэнд сегмент байрлуулахад хэмжээ багатай шинэ нүх үүснэ.2. Хуудсанд хуваах – сегмент бүрийг ижил хэмжээтэй хуудсуудад хуваах. Энэ тохиолдолд сегментийн хагас нь санах ойд хагас нь дискэн дээр байрлаж болно. Сегментийг хуудсанд хуваахын тулд тусдаа хуудасны хүснэгт үүсгэнэ.MULTICS (multiplexed information and computing service) – сегментийг хуудсанд хуваах үйлдэлтэй үйлдлийн систем.
  • 23.  Хаяг нь 2 хэсгээс тогтоно: сегментийн хаяг, сегмент доторх хаяг.Процесс бүрд сегментийн дескриптор буюу сегментийг заагч хэсэгтэй. Аппарат хангамжид виртуаль хаяг очиход сегментийн номер хэрэгтэй сегментийн дескрипторыг олох сегмент дескрипторын индекс болно. Дескриптор сегментийг хуудас болгон хуваасан хуудасны хүснэгт рүү заана. Бүтээмжийг нэмэгдүүлэхийн тулд сүүлийн хэрэглэсэн сегмент болон хуудасны комбинацийг 16 элементтэй ассоциатив санах ойд хадгална.MULTICS үйлдлийн систем хэрэглэгдэхээ болисон ч Intel386-гаас эхлэн энэ системтэй ижил болсон.
  • 24. Pentium IV-ийн виртуаль санах ой Pentium IV нэлээн нүсэр виртуаль санах ойтой ба хуудас хүсэлтээр дуудах, сегмент үүсгэх, сегментийг хуудсанд хуваах үйлдлүүдтэй. Виртуаль санах ой нь 2 төрлийн хүснэгттэй:  LDT (Local descriptor table)  GDT (Clobal descriptor table) Программ бүр өөрийн local дескрипторын хүснэгттэй ба ганц global дескрипторын хүснэгт бүх программуудад хуваагдана. LDT программ бүрийн local сегментийг (код, өгөгдөл, стек г.м.), харин GDT системийн сегмент болон өгөгдлийн системийг тодорхойлно.
  • 25.  Сегментэд хандахын тулд сегментийн селекторыг сегментийн регистрүүдийн нэгэнд ачаална. Программ гүйцэтгэгдэж байхад CS регистр кодын сегментийн селекторийг, DS өгөгдлийн сегментийн селекторыг агуулна. Селектор бүр 16 бит тоо байна. Селекторын 1 бит нь сегмент local уу global уу гэдгийг буюу аль хүснэгтэд байгааг харуулна. 13 бит нь дескриторын хүснэгтэд байгаа элементийн номерийг тодорхойлно. Иймээс хүснэгтийн хэмжээ 8К (213)-аа хэтрэхгүй. Үлдсэн 2 бит нь хамгаалалттай холбоотй.
  • 26.  0 дескриптор хүчингүй ба trap-г дуудна. Үүнийг сегментийн регистрт ачаалан сегментийн регистрт хандах боломжгүй байгааг харуулна. Хэрэв 0 дескрипторыг ашиглах гэвэл trap-г дуудна. Сегментийн регистрт селектор ачаалагдахад харгалзах дескриптор дуудагдан санах ойг удирдах контроллерийн дотоод регистрт хадгалагдана. Иймээс хандахад хялбар болно. Дескриптор 8 байтаас тогтох ба сегментийн баазын хаяг, хэмжээ болон бусад мэдээллүүдийг агуулна.
  • 27.  Селекторын форматыг дескрипторыг олоход амар байхаар хялбаршуулсан. Эхлээд бит 2-оор селектор доторх дескрипторын local хүснэгт LDT болон global хүснэгт GDT сонгоно. Дараа нь селекторыг санах ойг удирдах контроллерийн түр регистрт хадгална. Бага 3 бит нь 0 болсны дүнд селекторын 13 бит утгыг 8-аар үржүүлнэ. Эцэст нь энэ үр дүн дээр дескрипторын local хүснэгтээс global хүснэгтээс эсвэл хаяг нэмэгдэн дескриптор заагч бий болно. Жишээ нь селектор 72 GDT+72 хаягтай global хүснэгтийн 9 дэх элементэд хандахад:
  • 28.  Селектор, шилжилтээс физик хаягт хүрэх дараалал:Аппарат хангамж мегментийн аль регистр ашиглагдаж байгааг тодорхойлмогц дотоод регистрт харгалзах бүтэн дескрипторыг олж чадна. Хэрэв ийм сегмент байхгүй (0 селектор) эсвэл тухайн агшинд санах ойд байрлаагүй (P=0) бол системийн тасалдалт буюу trap дуудагдана.Эхний тохиолдол – программчлалын алдаа, дараагийнх нь хэрэгтэй сегмент дуудахыг үйлдлийн системээс хүснэ.Дараа нь аппарат хангамж шилжилт сегментээс гарч байгаа эсэхийг шалгана. Хэрэв гарч байвал дахин trap дуудна. Дескриптор 32 бит сегментийн хэмжээ тодорхойлох талбартай ч тэнд 20 бит л байх тул өөр схем хэрэглэх шаардлагатай болно.Хэрэв G (granularity) талбар 0 бол LIMIT талбар сегментийн хэмжээг (1Мбайт хүртэл) илэрхийлнэ.Хэрэв G (granularity) талбар 1 бол LIMIT талбар сегментийн хэмжээг байтаар биш хуудсаар идэрхийлнэ.
  • 29.  Pentium IV-ийн хуудасны хэмжээ 4 Кбайт-аас бага байдаггүй тул 232 байт хүртэл сегментийг тодорхойлоход 20 бит хангалттай. Хэрэв сегмент санах ойд байгаа бөгөөд шилжилт нь сегментийн хязгаараас хэтрээгүй бол Pentium IV шилжилттэй дескрипторт 32 бит BASE талбар нэмж шугаман хаягийг гаргаж авна: BASE талбар 3 хэсэгт хуваагдан дескрипторт тархан BASE талбар нь 24 бит байдаг 80286 процессорыг дэмжинэ. Иймээс сегмент бүр 32 бит хаягийн талбарын дурын байрлалаас эхэлж болно.
  • 30.  Хуудсанд хуваахыг блоклосон (global удирдлагын регистр дэх битээр тодорхойлогдоно) бол шугаман хаяг физик хаяг шиг интерпретацлагдан санах ой руу унш/бич үйлдэл хийхээр илгээгдэнэ. Хуудсанд хуваахыг блоклосон үед сегмент үүсгэх схем буюу сегментийн BASE хаяг дескрипторт өгөгдсөн байна. Дескрипторуудын давхардалт байгаа эсэхийг шалгах нь хугацаа их шаардах тул дескриптор давхардахыг зөвшөөрнө. Нөгөө талаас хуудсанд хуваахыг зөвшөөрөхгүй бол шугаман хаяг виртуаль хаяг шиг интерпретацлагдан хүснэгт ашигласан физик хаягаар дүрслэгдэнэ. Энэ тохиолдолд ганц хүндрэлтэй тал нь 32 бит виртуаль хаягтай 4К сегмент 1 сая хуудас багтааж чадна. Иймээс хуудасны хүснэгтийг багасгах үүднээс 2 шатлалтай дүрслэл хэрэглэнэ.
  • 31.  Ажиллаж буй программ бүр 1024 ш 32 бит элементээс тогтох хуудасны хүснэгттэй байна. Энэ хүснэгтийн хаяг global регистрээр тодорхойлогдоно. Хүснэгтийн элемент бүр хуудасны кадрыг заана. а) DIR, PAGE, OFF талбарт хуваагдсан шугаман хаяг б)
  • 32.  DIR талбар хуудасны директор дахь индекс болж хэрэглэгдэх буюу хэрэгтэй хуудасны хүснэгтийг заана. PAGE талбар хуудасны хүснэгт дэх индекс болох буюу хуудасны кадраас физик хаягийг олоход хэрэглэгдэнэ. OFF талбар хуудасны кадрын хаягт нэмэгдэн хэрэгтэй байт болон үгийн физик хаягийг үүсгэнэ. Хуудасны хүснэгтийн элемент бүрийн хэмжээ 32 бит ба үүнээс 20 бит нь хуудасны кадрын дугаар байна. Үлдсэн битүүд access бит, өөрчлөлтийн бит, хамгаалалтын бит г.м. байна. Хуудасны хүснэгт бүр 4К хэмжээтэй 1024 хуудасны кадрын элемент агуулах тул хуудасны хүснэгт 4М байт санах ойтой ажиллана. 4Мбайт-аас богино сегмент 1 элементтэй хуудасны директортой (1 хуудастай тул энэ хуудсыг л заах). Ийм маягаар богино хуудасны бүтээмж бууруулах саатал 2 хуудас л (нэг түвшинт схем шиг сая хуудас биш) л болно.
  • 33.  Санах ойд дахин хандахгүйн тулд Pentium IV-ийн санах ойг удирдах төхөөрөмж сүүлд хэрэглэгдсэн DIR-PAGE комбинацийг илрүүлж тэдгээрийн физик хаягийг харгалзах хуудасны кадрт дүрслэх аппарат хангамжтай. Хуудсанд хуваах үед дескрипторт BASE талбарын утга 0 байж болно. BASE талбар хэрэглэж байгаа шалтгаан нь бага зэрэг шилжилт үүсгэн хуудасны директорын гол дахь элементүүдийг ашиглах. Цэвэр сегментчилэл үүсгэхийн тулд болон 80286-г дэмждэг байлгах гэж л BASE талбарыг дескрипторт байрлуулна. Ямар нэгэн хэрэглээнд сеегмент үүсгэх шаардлага байхгүй хуудасны зохион байгуулалттай 32 бит хаяг хангалттай бол хаялбархан үүсгэж болно. Бүх сегментийн регистрийг дескриптор дахь BASE талбарын утга нь 0 байх 1 ижил селектороор дүүргэн LIMIT талбарт хасгийн их утгыг өгнө. Командын шилжилт 1 хаягийн талбартай шугаман байх ѐстой буюу уламжлалт хуудсан хуваалт байна.
  • 34.  Pentium IV хамгаалалтын 4 түвшинтэй:0 түвшин – хамгийн их дээд, 3- нь хамгийн доод.Момент бүрд ажиллаж багаа программ хамгаалалтын аль нэг түвшинд байх ба энэ түвшинг аппарат хангамжийн регистр дэх 2 бит PSW (program status word) тодорхойлно. Энэ бит нөхцлийн код болон төлөвийн бит агуулна.Түүнээс гадна сегсент бүр системд тодорхой түвшинд байрлана.
  • 35.  Программ өөрийнхөө түвшний сегмент ашиглаж байхад бүх зүйл хэвийн байна. Мөн дээд түвшинд хандахыг ч зөвшөөрнө. Харин доод түвшинд хандахыг хориглоно. Энэ тохиолдолд системийн тасалдалт trap үүснэ. Дээд болон доод түвшний процедур дуудах боломжтой ч энэ үед маш хатуу хяналт хэрэгтэй. Өөр түвшнээс процедур дуудахад CALL команд хаягийн оронд селектор агуулах ѐстой. Энэ селектор хэрэгтэй процедурын хаягийг өгөх дискрипторыг заана. Ийм маягаар дурын сегментийн гол руу өөр түвшингөөс шилжихгүй. Зөвхөн зөвшөөрөгдсөн оролтыг л ашиглана. 0 түвшин буюу үйлдлийн системийн цөм оролт-гаралтын процесс болон санах ойн ажиллагааг удирдана. 1 түвшинд системийн дуудалт байрлана. Хэрэглэгчийн программ энэ түвшингөөс хатуу тогтоогдсон процедурыг л дуудаж болно.
  • 36.  2 түвшин библиотекийн процедур агуулах ба энэ процедуруудыг хэд хэдэн программ зэрэг ашиглаж болно. Хэрэглэгчийн программ эдгээр процедурыг дуудаж болох ч өөрчлөлт хийхгүй. 3 түвшинд хэрэглэгчийн программ ажиллах ба хамгаалалтын зэрэг хамгийн багатай. Pentium IV-ийн хамгаалалтын схем MULTICS системийн санааг хадгалсан. Trap болон тасалдалт дескрипторт хандах ч абсолют хаяганд хандахгүй. Энэ дескрипторууд гүйцэтгэх шаардлагатай процедурыг заана. FIELD талбар кодын сегмент, өгөгдлийн сегмент болон логик элементүүдийг ялгах зориулалттай.
  • 37. 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Мбайт. Виртуаль санах ойн хэмжээ их тул жирийн хуудасны хүснэгт хэрэглэх нь тохиромжгүй.
  • 38.  Ultra SPARC III арай өөр арга хэрэглэнэ. Санах ойг удирдах төхөөрөмж TBL (translation lookaside buffer) хүснэгтэй. Энэ хүснэгт физик хуудасны хүснэгт дэх виртуаль хуудасны дугаарыг заана. 8К хэмжээтэй хуудсанд 231 виртуаль хуудасны номер (2 миллиардаас их) харгалзана. Иймээс бүгдийг нь дүрслэх боломжгүй. TBL хүснэгт хамгийн сүүлд хэрэглэгдсэн виртуаль хуудасны дугаарыг л агуулна. Командын хуудас болон өгөгдлийн хуудас тусдаа ба тус бүрээс хамгийн сүүлийн 64 виртуаль хуудасны дугаарыг TBL хүснэгт агуулна.
  • 39.  TBL буферийн элемент бүр виртуаль хуудасны дугаар ба харгалзах физик хуудасны дугаарыг агуулна. Процессын дугаар гэж нэрлэгдэх контекст болон виртуаль хаяг санах ойн диспетчерт очиход диспетчер тусгай схемийн тусламжтай виртуаль хуудасны дугаарыг TBL буферийн элемент бүртэй харьцуулна.
  • 40.  Хэрэв давхцал гарч ирвэл буферийн элемент дэх хуудасны кадрын дугаар виртуаль хаягаас авсан шилжилттэй нэгдэн 41 бит физик хаяг бий болж flag-ийг (хамгаалалтын бит г.м.) боловсруулна. Хэрэв давхцал гарч ирээгүй бол TBL-ийн алдаа гарч үйлдлийн системд trap дуудна. Алдааг үйлдлийн систем боловсруулна. Энэ алдаа хуудас байхгүй үед үүсэх алдаанаас ялгаатай. TBL- ийн алдаа хэрэгтэй хуудас санах ойд байхад ч гарч болно. Онолын хувьд үйлдлийн систем TBL буферээс виртуаль хуудсанд хэрэгтэй элементийг ачаалж чадна. Гэхдээ энэ процессийг хурдасгахын тулд аппарат хангамжийг ашиглан программ хангамж хамтарч ажиллана. Үйлдлийн систем хамгийн их хэрэглэгддэг TBL буферийн элементүүдийг TSB (translation storage buffer) гэж нэрлэгдэх хүснэгтэд хадгална. Энэ хүснэгт L-1 түвшний кэш шиг зохион байгуулалттай.
  • 41.  TSB хүснэгтийн 16 байт элемент бүр нэг виртуаль хуудсыг заах ба үнэн зөвийн бит, контекстийн дугаар, виртуаль хаягийн тег, хуудасны физик дугаар болон флаг битүүд агуулна. Хэрэв кэшийн хэмжээ 8192 элемент гэвэл бага 13 бит нь 0 байх бүх виртуль хуудас хүснэгтийн 0 байрлал дахь элемент болох боломжтой. Хүснэгтийн хэмжээг программаар тодорхойлон санах ойг удирдах контроллерт үйлдлийн систем л хандах эрхтэй тусгай регистрээр дамжуулан өгнө. Хөрвүүлэлт хадгалах буфер алдаа заахад үйлдлийн систем TLB буферийн элемент хэрэгтэй виртуаль хуудсыг агуулж байгаа эсэхийг шалгана. Санах ойг удирдах контроллер энэ элементийн хаягийг тодорхойлон өөрийн дотоод регистрт (үйлдлийн систем л хандана) хадгална.
  • 42.  Хэрэв хэрэгтэй элемент хөрвүүлэлт хадгалах буферт байгаа бол TLB буферээс аль нэг элементийг арилган харгалзах хөрвүүлэлт хадгалах буферийн элементийг хуулна. Аппарат хангамж LRU алгоритмаар аль элементийг арилгахыг тодорхойлно. Хэрэв виртуаль хуудас кэшэд байхгүй бол үйлдлийн систем өөр хүснэгт ашиглан хуудасны мэдээллийг хайна. Энэ хайлтад хэрэглэх хүснэгтийг хөрвүүлэгч хүснэгт гэнэ. Аппарат хангамж хайлтад оролцохгүй тул үйлдлийн систем ямар ч формат ашиглан хайлт хийж болно. Жишээ нь: виртуаль хуудасны хаягийг дурын р тоонд хуваан кэшлэн үлдэгдлийг хүснэгтийн заагч индекс болгож болно. Энэ элементүүд нь хуудас биш TSB-гийн элементүүд байна. Хэрэв хайлт хэрэгтэй хуудсыг олоогүй бол кэш санах ойн TSB элемент шинэчлэгдэнэ. Хайлтын дүнд хэрэгтэй хуудас санах ойд байхгүй бол стандарт алдаа гарна.
  • 43. Цэвэр Хуудсанд Сегментчилэ Алдаа сегментчилэл хуваах л ба хуудсанд хуваахPentium IV + + + Аппарат хангамж ашиглан TLB буферийн элементийг дахин ачаалнаUltra SPARC + ҮйлдлийнIII системд удирдлагыг дамжуулна
  • 44. Виртуаль санах ой ба кэшлэлт Виртуаль санах ой ба кэшлэлт хоорондоо холбоогүй ч хоорондоо төстэй. Виртуаль санах ойтой үед программ дискэн дээр хадгалагдан тогтсон хэмжээтэй хуудаснуудад хуваагдана. Энэ хуудаснуудын нэг хэсэг нь үндсэн санах ойд хадгалагдана. Хэрэв программ санах ойгоос хуудас ашиглаж байгаа бол хуудас байхгүйгээс үүсэх алдаа гарахгүй тул программ хурдан ажиллана. Кэшлэхэд бүх программ үндсэн санах ойд хадгалагдан тодорхой хэмжээтэй блокод хуваагдана. Энэ блокуудын зарим нь кэшэнд хадгалагдана. Хэрэв программ кэшийн блокууд ашиглаж байгаа бол кэшд хандах алдаа бараг гарахгүй тул программ хурдан ажиллана. Иймээс виртуаль санах ой ба кэш ижил бөгөөд иерархийн өөр өөр түвшинд ажиллаж байна.
  • 45.  Ялгаатай тал:Кэш санах ойн промах гарахад аппарат хангамж боловсруулалт хийх бол хуудас байхгүйгээс үүсэх алдааг үйлдлийн систем боловсруулна.Кэш санах ойн блок хуудаснаас бага хэмжээтэйХуудасны хүснэгт виртуаль хаягийн ахлах битээр индеклэгдэх бол кэш санах ой санах ойн хаягийн бага битээр индекслэгдэнэ.