SlideShare uma empresa Scribd logo
1 de 45
Санах ойн хуудас

             Лекц 15, 16
Виртуаль санах ой
 Гүйцэтгэх программ санах ойгоос их хэмжээтэй бол overlay гэж
  нэрлэгдэх арга хэрэглэдэг байсан. Энэ аргыг программист
  удирддаг байсан.
 1961 онд автоматаар нэмэх арга буюу виртуаль санах ой
  хэрэглэх арга гарч ирсэн.
Санах ойн хуудсан зохион байгуулалт
 4096 санах ойн үгтэй, 16 бит командын хаягийн талбартай
  компьютер 65536 (216=65536) санах ойн үгэнд хандана.
 Виртуаль санах ой гарахаас өмнө санах ойн талбар ба санах
  ойн хаяг ялгаатай биш байсан.
 Дурын агшинд 0-4095 үгэнд хандаж болох ч энэ үгнүүд санах
  ойн 0-4095 хаягт харгалзах албагүй.
 8192-12287 хаягт хандахад:
1. 4096-8191 дэх үгнүүд дискэнд хадгалагдана.
2. 8192-12287 үгнүүд үндсэн санах ойд хадгалагдана.
3. Хаягийн байрлал өөрчлөгдөнө: одоо 8192-12287 дахь хаяг 0-
   4095 хаягтай санах ойн cell-д харгалзана.
4. Программ үргэлжлэн гүйцэтгэгдэнэ.


Ингэж автоматаар нэмэхийг хуудсан зохион байгуулалт гэх ба
   дискнээс уншигдаж байгаа хэсгийг хуудас гэнэ.

Өөр нэг арга: программ хандаж болох хаягийг виртуаль хаяг гэж
   нэрлээд санах ойн бодит хаягийг физик хаяг гэж нэрлэх. Санах
   ой ба хуудасны хүснэгтийг тусгаарлах нь виртуаль хаяг ба
   физик хаягийг салгахтай харгалзана. Энэ тохиолдолд дискэн
   дээр виртуаль хаягийг багтаах хангалттай зай бий гэж үзнэ.
Санах ойн хуудас үүсгэх
 Виртуаль санах ойд программ болон өгөгдөл хадгалах диск
  хэрэгтэй.
 Виртуаль санах ойг 512-64Кбайт хүртэл ижил хэмжээтэй
  хуудсуудад хуваана. Заримдаа 4Мбайт ч байна.

 а) 64К   хуудас – 4К
 б) 32К   хуудас – 4К
 32бит виртуаль хаяг → физик хаяг


 MMU (memory
 management unit)
- Процессорын микросхем
дээр эсвэл хажууд нь
байрлана.
- 32 бит хаягийг 20 бит виртуаль хуудасны хаяг, 12 бит хуудас
   доторх шилжилтэд (хуудас олох индекс) хуваана.
- MMU хэрэгтэй хуудас санах ойд байгаа эсэхийг шалгана. 220
   виртуаль хуудас ба 8 хуудасны кадр байгаа тул бүх хуудас санах
   ойд байж чадахгүй. Контроллер хуудасны хүснэгтийн
   элементэд бит присутствия-г шалгана.
- Сонгосон элементээс мөрний кадрын утгыг авч 15бит гаралтын
   регистрийн ахлах 3 битэд хуулна.
- Дээрхтэй параллелиар виртуал хаягийн бага 12 бит нь гаралтын
   регистрийн бага 12 битэд хуулагдана.
- Үүссэн 15бит хаягийг кэш эсвэл үндсэн санах ойд илгээнэ.
 16 бит виртуал хуудсыг 8 хуудасны кадртай үндсэн санах
 ойд дүрслэх
Хуудас дуудах ба ажлын олонлог
 Үндсэн санах ойд виртуаль хуудас байхгүй үед энэ хуудсыг
  дуудахад алдаа гарна.
 Ийм алдаа гарахад үйлдлийн систем дискнээс хуудсыг уншиж
  хуудасны хүснэгтэд шинэ физик хаяг нэмээд командыг давтана.
Виртуаль санах ойтой машин программын нэг ч хэсэг нь үндсэн
  санах ойд байхгүй байхад уг программыг ачаалж чадна.
Энэ тохиолдолд хуудасны хүснэгт бүх виртуаль хуудас туслах
  санах ойд байгаа гэдгийг заах ѐстой. Төв процессор эхний
  командыг дуудах гэж оролдоод хуудас байхгүй гэсэн алдааны
  хариуг авахад эхний командыг агуулсан хуудас санах ойд
  ачаалагдан хүснэгтэд бичигдэнэ. Үүний дараа эхний команд
  гүйцэтгэгдэнэ. Хэрэв эхний команд 2 хаяг агуулаад энэ 2 хаяг
  нь командтай хуудсанд байхгүй ба өөр өөр хуудсанд байгаа бол
  хаягтай 2 хуудас команд гүйцэтгэгдэж дуусахаас өмнө үндсэн
  санах ойд ачаалагдана.
 Дараагийн команд ахин нэлээн хэдэн алдаа үүсгэж болно.
  Виртуаль санах ойтой ингэж ажиллахыг хүсэлтээр дуудах гэнэ.
 Арай өөрөөр хандах арга бас бий. Хугацааны t момент бүрд
  сүүлийн k удаа ашиглагдсан хуудастай багц байна. Энэ багцыг
  ажлын олонлог гэнэ. Ажлын олонлог маш удаан өөрчлөгдөх
  тул дараагийн программ ачаалахад ямар хуудаснууд
  ачаалагдахыг урьдчилан тааварлаж болно. Иймээс урьдаас
  хуудсуудыг ачаална.
Хуудас өөрчлөх
 Ажлын олонлогийг урьдчилан санах ойд хадгалсан ч
    программист ямар хуудас санах ойд байгааг мэдэхгүй. Иймээс
    үйлдлийн систем дахин дахин энэ олонлогийг харуулж байх
    хэрэгтэй болно.
   Программ санах ойд байхгүй хуудаст хандахад дискнээс
    дуудна. Гэхдээ энэ хуудсыг ачаалахын тулд өөр нэг хуудсыг
    буцаана. Иймээс аль хуудсыг буцаахыг тодорхойлох алгоритм
    хэрэгтэй болно.
   Хамгийн эхэнд хэрэглэгдсэн хуудаснуудыг нэг нэгээр нь
    буцаана. Энэ алгоритмыг LRU (least recently used) гэнэ.
   Энэ алгоритмын ажиллагаанд заримдаа алдаа гарна.
   Жишээ нь 9 хуудас циклтэй программыг ажиллуулахад 8 хуудас
    л үндсэн санах ойд байрлах боломжтой байг.
 7-р хуудас дуудагдахад 0-7 хуудаснууд санах ойд хуулагдсан
  байна.
 8-р виртуаль хуудас дуудагдахад 0-р хуудсыг хамгийн эхэнд
  хэрэглэгдсэн болохоор устган 8-р хуудсыг хуулна. 8-р
  хуудаснаас команд гүйцэтгэсний дараа циклийн эхэнд (0
  хуудас) очих бол энэ алхам алдаа заана. LRU алгоритмаар 1-р
  хуудсыг арилган 0 хуудсыг дахин бичнэ. Хэсэг хугацааны дараа
  1-р хуудсанд дахин хандахад ахиад л алдаа заана....
 LRU алгоритм энэ тохиолдолд таарахгүй тул FIFO (first-in first-
  out) алгоримт хэрэглэнэ. Энэ алгоримт хуудасны кадртай
  холбоотой тоолууртай ба тоолуур эхлээд 0 байна. Хуудас
  байхгүй алдаа гарахад тоолуурын утга 1-ээр нэмэгдэн
  дуудагдсан хуудас 0 дугаартай болно. Хуудас арилгахдаа
  хамгийн их дугаартайгаас арилгана.
Хуудасны хэмжээ ба фрагментчилах
 Хэрэв программ ба өгөгдөл ижил бүхэл тоон хуудас дүүргэх бол
  санах ойд ачаалагдсаны дараа сул зай үлдэхгүй.
 Харин ижил бүхэл тоон хуудас дүүргэхгүй бол ашиглагдаагүй
  зай үлдэнэ. Жишээ нь:
Программ ба өгөгдөл 4096 байт хуудастай машин дээр 26000 байт
  зай эзлэх бол эхний 6 хуудас дүүрэхэд 6-4096байт болно. 7-р
  хуудас 2600-24576=1424 байт ачаалагдаж 2672 байт сул үлдэнэ.
Санах ойд 7-р хуудас ачаалагдсан байхад энэ сул байт ачаалагдсан
  байх ч ямар ч функц гүйцэтгэхгүй. Энэ проблемийг дотоод
  фрагментац гэнэ.
Хэрэв хуудасны хэмжээ n байт, сул байт ачаалагдсан зай n/2 бол
  бага хэмжээтэй хуудас хэрэглэх шаардлага гарна. Нөгөө талаа
  бага хэмжээтэй хуудас ашиглахад хуудасны тоо олон байх
  хэрэгтэй болж хуудасны хүснэгт томорно.
 Хуудасны хүснэгт аппарат хангамжид байрлах бол их олон
  тооны регистр шаардлагатай болно. Мөн ачаалах болон
  зогсооход хугацаа их шаардана.
 Мөн жижиг хуудас дискний нэвтрүүлэх чадварыг багасгана.
  Дискнээс мэдээлэл дамжуулахад 10мс хүлээх шаардлагатай тул
  (search+seek) мэдээллийг их хэмжээгээр дамжуулах нь
  ашигтай.
 Гэхдээ жижиг хуудас өөрийн давуу талтай. Ажлын олонлог хол
  хол байрлах виртуаль санах ойн жижиг мужуудаас тогтох бол
  thrashing (бут ниргэх) гарахгүй.
Сегментчилэл
 Хэд хэдэн виртуаль хаягийн орон зай үүсгэж болно.
 Компилятор хэд хэдэн хүснэгт үүсгэж болно:
- Хувьсагчийн нэр, атрибут агуулсан тэмдэгтийн хүснэгт
- Хэвлэхээр хадгалсан эх текст
- Бүхэл тоон тогтмол ба хөвөгч цэгтэй тогтмол агуулсан хүснэгт
- Программын синтаксийн анализ агуулсан мод
- Компилятор потор процедур дуудах стек




Эхний 4 нь компиляцийн явцад
 өснө. 5 дахь нь таах
аргагүйгээр ихсэж багасна.
 Программ маш их хувьсагч агуулсан гэе. Тэмдэгтийн хүснэгт
  дүүргэгдсэн ч өөр хүснэгтийн зай сул байна.
 Энэ тохиолдолд overlay-г гараад удирдаж мэт өөр хүснэгтийн
  зайнаас өгч болно. Гэхдээ энэ нь тохиромжтой биш.
 Иймээс маш олон хамааралгүй хаягийн орон зай үүсгэнэ. Энэ
  орон зайг сегмент гэнэ.




 Сегментийн урт ямарч байж болно. Сегмент бүр өөр өөр урттай
 байж болно. Мөн сегментийн урт программын явцад
 өөрчлөгдөж болно.
 Сегмент логик элемент бөгөөд процедур, массив, стек, скляр
    хувьсагчийн цуваа агуулж болох ч 1 сегмент 1 л төрлийн
    өгөгдөл агуулна.
   Мөн процедур бүр тусдаа сегментэд байрлах тул
    компиляцлагдаж байгаа процедуруудыг холбоход хялбар болно.
    n сегментээс процедур дуудан 0 үгэнд хандахад (n,0) хаяг
    хэрэглэнэ.
   Хэрэв n сегмент дэх процедурыг өөрчлөн компиляц хийсэн ба
    бусад процедурт өөрчлөлт хийх шаардлагагүй. Нэг хэмжээст
    орон зайд процедурууд хойно хойноосоо байрлах ба завсар нь
    зай байхгүй. Иймээс нэг процедур өөрчлөгдөхөд бусад нь
    өөрчлөгдөх хэрэгтэй болно.
   Сегментчилэл ерөнхий процедур болон өгөгдлийг хэдэн
    программанд салгахад амар (хаягийг хэмнэнэ) болгосон.
   Сегмент бүр өөр төрлийн хамгаалалттай байж болно. Жишээ нь
    процедуртай сегментийг зөвхөн “гүйцэтгэх” гэж тодорхойлон
    унш/бич хорьж болно....
 Хуудсан болон сегментэн санах ойн зохион байгуулалтыг
 харьцуулбал:
Сегмент үүсгэх
 Сегментийг 2 аргаар үүсгэж болно.
1.а. Зайг шахах (гадаад фрагментац)




а) 5 сегмэнттэй
б) 1-р сегментийг арилган хэмжээгээр бага 7-р сегментийг байранд нь оруулсан
в) сегмент 4-г сегмент 5-р солисон
г) сегмент 3-г сегмент 6-р солисон
д) сегмент ба хоосон зайгаар нь (нүх) ялгасан
 Гадаад фрагментац хийгдэж байхад (г) сегмент 3-т хандахад
  хэдийгээр нүх байгаа ч тус тусдаа байгаа ба хэмжээ нь бага тул
  сегмент 3-г байрлуулж болохгүй. Иймээс аль нэг сегментийг
  арилгана.
 Ийм байдлаас гарахын тулд нүх үүсэх бүрд 0 хаяг руу
  дараагийн сегментийг ойртуулах замаар шилжүүлнэ.

1.а. Нүхний хэмжээ сегментүүдийн эзлэх хэмжээнээс их болтол
  нь хүлээгээд дараа нь нягтруулна. Санах ойг нягтруулах
  зорилго нь бүх жижиг нүхнүүдийг нэг том нүх болгон сегмент
  байрлуулж болох зай гарган авах. Энэ аргын дутагдалтай тал
  нь хугацаа их шаардана. Нүх үүсэх бүрийн дараа нягтруулах нь
  ашиггүй.
Хэрэв нягтруулахад их хугацаа шаардагдаж байвал тусгай
  алгоритм хэрэглэн аль нүхийг тухайн сегментийг байрлуулахад
  хэрэглэхэд тохиромжтойг илрүүлнэ. Үүний тулд бүх хаяг болон
  нүхний хэмжээтэй list хэрэг болно.
Хамгийн түгээмэл хэрэглэгддэг алгоримт – оптималь хөөлт буюу
  хэрэгтэй сегмент багтах хамгийн бага нүхийг олох. Энэ
  алгоримтын зорилго нь сегмент байрлуулахын тулд том нүхийг
  хэсэгчилэн хуваахаас зайлсхийх.
Өөр нэг түгээмэл хэрэглэгддэг алгоритм нь бүх нүхний list-ийг
  шалган хэмжээгээрээ таарах нүхийг илрүүлэх. Энэ нь бүх list-
  ийг шалган оптималь нүх олохоос бага хугацаа зарцуулна. Мөн
  бүтээмж ч өндөртэй (оптималь хөөлт хэрэглээгүй жижиг
  нүхнүүд ихийг үүсгэнэ).
Дээрх 2 алгоримт хоѐулаа нүхний “дундаж” хэмжээг багасгана.
 Сегментийн хэмжээ нүхний хэмжээтэй таарах нь ховор тул
  нүхэнд сегмент байрлуулахад хэмжээ багатай шинэ нүх үүснэ.

2. Хуудсанд хуваах – сегмент бүрийг ижил хэмжээтэй хуудсуудад
   хуваах. Энэ тохиолдолд сегментийн хагас нь санах ойд хагас нь
   дискэн дээр байрлаж болно. Сегментийг хуудсанд хуваахын
   тулд тусдаа хуудасны хүснэгт үүсгэнэ.
MULTICS (multiplexed information and computing service) –
   сегментийг хуудсанд хуваах үйлдэлтэй үйлдлийн систем.
 Хаяг нь 2 хэсгээс тогтоно: сегментийн хаяг, сегмент доторх
 хаяг.
Процесс бүрд сегментийн дескриптор буюу сегментийг заагч
 хэсэгтэй. Аппарат хангамжид виртуаль хаяг очиход сегментийн
 номер хэрэгтэй сегментийн дескрипторыг олох сегмент
 дескрипторын индекс болно. Дескриптор сегментийг хуудас
 болгон хуваасан хуудасны хүснэгт рүү заана. Бүтээмжийг
 нэмэгдүүлэхийн тулд сүүлийн хэрэглэсэн сегмент болон
 хуудасны комбинацийг 16 элементтэй ассоциатив санах ойд
 хадгална.
MULTICS үйлдлийн систем хэрэглэгдэхээ болисон ч Intel386-гаас
 эхлэн энэ системтэй ижил болсон.
Pentium IV-ийн виртуаль санах ой
 Pentium IV нэлээн нүсэр виртуаль санах ойтой ба хуудас
  хүсэлтээр дуудах, сегмент үүсгэх, сегментийг хуудсанд хуваах
  үйлдлүүдтэй.
 Виртуаль санах ой нь 2 төрлийн хүснэгттэй:
   LDT (Local descriptor table)
   GDT (Clobal descriptor table)
 Программ бүр өөрийн local дескрипторын хүснэгттэй ба ганц
  global дескрипторын хүснэгт бүх программуудад хуваагдана.
 LDT программ бүрийн local сегментийг (код, өгөгдөл, стек
  г.м.), харин GDT системийн сегмент болон өгөгдлийн
  системийг тодорхойлно.
 Сегментэд хандахын тулд сегментийн селекторыг сегментийн
  регистрүүдийн нэгэнд ачаална. Программ гүйцэтгэгдэж байхад
  CS регистр кодын сегментийн селекторийг, DS өгөгдлийн
  сегментийн селекторыг агуулна. Селектор бүр 16 бит тоо байна.




 Селекторын 1 бит нь сегмент local уу global уу гэдгийг буюу
  аль хүснэгтэд байгааг харуулна.
 13 бит нь дескриторын хүснэгтэд байгаа элементийн номерийг
  тодорхойлно. Иймээс хүснэгтийн хэмжээ 8К (213)-аа хэтрэхгүй.
 Үлдсэн 2 бит нь хамгаалалттай холбоотй.
 0 дескриптор хүчингүй ба trap-г дуудна. Үүнийг сегментийн
  регистрт ачаалан сегментийн регистрт хандах боломжгүй
  байгааг харуулна. Хэрэв 0 дескрипторыг ашиглах гэвэл trap-г
  дуудна.
 Сегментийн регистрт селектор ачаалагдахад харгалзах
  дескриптор дуудагдан санах ойг удирдах контроллерийн
  дотоод регистрт хадгалагдана. Иймээс хандахад хялбар болно.
  Дескриптор 8 байтаас тогтох ба сегментийн баазын
  хаяг, хэмжээ болон бусад мэдээллүүдийг агуулна.
 Селекторын форматыг дескрипторыг олоход амар байхаар
  хялбаршуулсан.
 Эхлээд бит 2-оор селектор доторх дескрипторын local хүснэгт
  LDT болон global хүснэгт GDT сонгоно. Дараа нь селекторыг
  санах ойг удирдах контроллерийн түр регистрт хадгална. Бага 3
  бит нь 0 болсны дүнд селекторын 13 бит утгыг 8-аар үржүүлнэ.
  Эцэст нь энэ үр дүн дээр дескрипторын local хүснэгтээс global
  хүснэгтээс эсвэл хаяг нэмэгдэн дескриптор заагч бий болно.
  Жишээ нь селектор 72 GDT+72 хаягтай global хүснэгтийн 9 дэх
  элементэд хандахад:

 Селектор, шилжилтээс физик хаягт хүрэх дараалал:
Аппарат хангамж мегментийн аль регистр ашиглагдаж байгааг
 тодорхойлмогц дотоод регистрт харгалзах бүтэн дескрипторыг
 олж чадна. Хэрэв ийм сегмент байхгүй (0 селектор) эсвэл
 тухайн агшинд санах ойд байрлаагүй (P=0) бол системийн
 тасалдалт буюу trap дуудагдана.
Эхний тохиолдол – программчлалын алдаа, дараагийнх нь
 хэрэгтэй сегмент дуудахыг үйлдлийн системээс хүснэ.
Дараа нь аппарат хангамж шилжилт сегментээс гарч байгаа
 эсэхийг шалгана. Хэрэв гарч байвал дахин trap дуудна.
 Дескриптор 32 бит сегментийн хэмжээ тодорхойлох талбартай
 ч тэнд 20 бит л байх тул өөр схем хэрэглэх шаардлагатай болно.
Хэрэв G (granularity) талбар 0 бол LIMIT талбар сегментийн
 хэмжээг (1Мбайт хүртэл) илэрхийлнэ.
Хэрэв G (granularity) талбар 1 бол LIMIT талбар сегментийн
 хэмжээг байтаар биш хуудсаар идэрхийлнэ.
 Pentium IV-ийн хуудасны хэмжээ 4 Кбайт-аас бага байдаггүй
  тул 232 байт хүртэл сегментийг тодорхойлоход 20 бит
  хангалттай.
 Хэрэв сегмент санах ойд байгаа бөгөөд шилжилт нь сегментийн
  хязгаараас хэтрээгүй бол Pentium IV шилжилттэй дескрипторт
  32 бит BASE талбар нэмж шугаман хаягийг гаргаж авна:




 BASE талбар 3 хэсэгт хуваагдан дескрипторт тархан BASE
 талбар нь 24 бит байдаг 80286 процессорыг дэмжинэ. Иймээс
 сегмент бүр 32 бит хаягийн талбарын дурын байрлалаас эхэлж
 болно.
 Хуудсанд хуваахыг блоклосон (global удирдлагын регистр дэх
  битээр тодорхойлогдоно) бол шугаман хаяг физик хаяг шиг
  интерпретацлагдан санах ой руу унш/бич үйлдэл хийхээр
  илгээгдэнэ. Хуудсанд хуваахыг блоклосон үед сегмент үүсгэх
  схем буюу сегментийн BASE хаяг дескрипторт өгөгдсөн байна.
  Дескрипторуудын давхардалт байгаа эсэхийг шалгах нь хугацаа
  их шаардах тул дескриптор давхардахыг зөвшөөрнө.
 Нөгөө талаас хуудсанд хуваахыг зөвшөөрөхгүй бол шугаман
  хаяг виртуаль хаяг шиг интерпретацлагдан хүснэгт ашигласан
  физик хаягаар дүрслэгдэнэ. Энэ тохиолдолд ганц хүндрэлтэй
  тал нь 32 бит виртуаль хаягтай 4К сегмент 1 сая хуудас багтааж
  чадна. Иймээс хуудасны хүснэгтийг багасгах үүднээс 2
  шатлалтай дүрслэл хэрэглэнэ.
 Ажиллаж буй программ бүр 1024 ш 32 бит элементээс тогтох
  хуудасны хүснэгттэй байна. Энэ хүснэгтийн хаяг global
  регистрээр тодорхойлогдоно. Хүснэгтийн элемент бүр хуудасны
  кадрыг заана.




 а) DIR, PAGE, OFF талбарт хуваагдсан шугаман хаяг
 б)
 DIR талбар хуудасны директор дахь индекс болж хэрэглэгдэх
    буюу хэрэгтэй хуудасны хүснэгтийг заана.
   PAGE талбар хуудасны хүснэгт дэх индекс болох буюу
    хуудасны кадраас физик хаягийг олоход хэрэглэгдэнэ.
   OFF талбар хуудасны кадрын хаягт нэмэгдэн хэрэгтэй байт
    болон үгийн физик хаягийг үүсгэнэ.
   Хуудасны хүснэгтийн элемент бүрийн хэмжээ 32 бит ба үүнээс
    20 бит нь хуудасны кадрын дугаар байна. Үлдсэн битүүд access
    бит, өөрчлөлтийн бит, хамгаалалтын бит г.м. байна.
   Хуудасны хүснэгт бүр 4К хэмжээтэй 1024 хуудасны кадрын
    элемент агуулах тул хуудасны хүснэгт 4М байт санах ойтой
    ажиллана. 4Мбайт-аас богино сегмент 1 элементтэй хуудасны
    директортой (1 хуудастай тул энэ хуудсыг л заах).
   Ийм маягаар богино хуудасны бүтээмж бууруулах саатал 2
    хуудас л (нэг түвшинт схем шиг сая хуудас биш) л болно.
 Санах ойд дахин хандахгүйн тулд Pentium IV-ийн санах ойг
  удирдах төхөөрөмж сүүлд хэрэглэгдсэн DIR-PAGE
  комбинацийг илрүүлж тэдгээрийн физик хаягийг харгалзах
  хуудасны кадрт дүрслэх аппарат хангамжтай.
 Хуудсанд хуваах үед дескрипторт BASE талбарын утга 0 байж
  болно. BASE талбар хэрэглэж байгаа шалтгаан нь бага зэрэг
  шилжилт үүсгэн хуудасны директорын гол дахь элементүүдийг
  ашиглах.
 Цэвэр сегментчилэл үүсгэхийн тулд болон 80286-г дэмждэг
  байлгах гэж л BASE талбарыг дескрипторт байрлуулна.
 Ямар нэгэн хэрэглээнд сеегмент үүсгэх шаардлага байхгүй
  хуудасны зохион байгуулалттай 32 бит хаяг хангалттай бол
  хаялбархан үүсгэж болно. Бүх сегментийн регистрийг
  дескриптор дахь BASE талбарын утга нь 0 байх 1 ижил
  селектороор дүүргэн LIMIT талбарт хасгийн их утгыг өгнө.
  Командын шилжилт 1 хаягийн талбартай шугаман байх ѐстой
  буюу уламжлалт хуудсан хуваалт байна.
 Pentium IV хамгаалалтын 4 түвшинтэй:
0 түвшин – хамгийн их дээд, 3- нь хамгийн доод.




Момент бүрд ажиллаж багаа программ хамгаалалтын аль нэг
  түвшинд байх ба энэ түвшинг аппарат хангамжийн регистр дэх
  2 бит PSW (program status word) тодорхойлно. Энэ бит
  нөхцлийн код болон төлөвийн бит агуулна.
Түүнээс гадна сегсент бүр системд тодорхой түвшинд байрлана.
 Программ өөрийнхөө түвшний сегмент ашиглаж байхад бүх
  зүйл хэвийн байна. Мөн дээд түвшинд хандахыг ч зөвшөөрнө.
  Харин доод түвшинд хандахыг хориглоно. Энэ тохиолдолд
  системийн тасалдалт trap үүснэ.
 Дээд болон доод түвшний процедур дуудах боломжтой ч энэ
  үед маш хатуу хяналт хэрэгтэй. Өөр түвшнээс процедур
  дуудахад CALL команд хаягийн оронд селектор агуулах ѐстой.
  Энэ селектор хэрэгтэй процедурын хаягийг өгөх дискрипторыг
  заана. Ийм маягаар дурын сегментийн гол руу өөр түвшингөөс
  шилжихгүй. Зөвхөн зөвшөөрөгдсөн оролтыг л ашиглана.
 0 түвшин буюу үйлдлийн системийн цөм оролт-гаралтын
  процесс болон санах ойн ажиллагааг удирдана.
 1 түвшинд системийн дуудалт байрлана. Хэрэглэгчийн
  программ энэ түвшингөөс хатуу тогтоогдсон процедурыг л
  дуудаж болно.
 2 түвшин библиотекийн процедур агуулах ба энэ
    процедуруудыг хэд хэдэн программ зэрэг ашиглаж болно.
    Хэрэглэгчийн программ эдгээр процедурыг дуудаж болох ч
    өөрчлөлт хийхгүй.
   3 түвшинд хэрэглэгчийн программ ажиллах ба хамгаалалтын
    зэрэг хамгийн багатай.
   Pentium IV-ийн хамгаалалтын схем MULTICS системийн санааг
    хадгалсан.
   Trap болон тасалдалт дескрипторт хандах ч абсолют хаяганд
    хандахгүй. Энэ дескрипторууд гүйцэтгэх шаардлагатай
    процедурыг заана.
   FIELD талбар кодын сегмент, өгөгдлийн сегмент болон логик
    элементүүдийг ялгах зориулалттай.
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Мбайт.
 Виртуаль санах ойн хэмжээ их тул жирийн хуудасны хүснэгт
  хэрэглэх нь тохиромжгүй.
 Ultra SPARC III арай өөр арга хэрэглэнэ. Санах ойг удирдах
  төхөөрөмж TBL (translation lookaside buffer) хүснэгтэй. Энэ
  хүснэгт физик хуудасны хүснэгт дэх виртуаль хуудасны
  дугаарыг заана. 8К хэмжээтэй хуудсанд 231 виртуаль хуудасны
  номер (2 миллиардаас их) харгалзана. Иймээс бүгдийг нь
  дүрслэх боломжгүй.
 TBL хүснэгт хамгийн сүүлд хэрэглэгдсэн виртуаль хуудасны
  дугаарыг л агуулна. Командын хуудас болон өгөгдлийн хуудас
  тусдаа ба тус бүрээс хамгийн сүүлийн 64 виртуаль хуудасны
  дугаарыг TBL хүснэгт агуулна.
 TBL буферийн элемент бүр виртуаль хуудасны дугаар ба
 харгалзах физик хуудасны дугаарыг агуулна. Процессын дугаар
 гэж нэрлэгдэх контекст болон виртуаль хаяг санах ойн
 диспетчерт очиход диспетчер тусгай схемийн тусламжтай
 виртуаль хуудасны дугаарыг TBL буферийн элемент бүртэй
 харьцуулна.
 Хэрэв давхцал гарч ирвэл буферийн элемент дэх хуудасны
  кадрын дугаар виртуаль хаягаас авсан шилжилттэй нэгдэн 41
  бит физик хаяг бий болж flag-ийг (хамгаалалтын бит г.м.)
  боловсруулна.
 Хэрэв давхцал гарч ирээгүй бол TBL-ийн алдаа гарч үйлдлийн
  системд trap дуудна. Алдааг үйлдлийн систем боловсруулна.
  Энэ алдаа хуудас байхгүй үед үүсэх алдаанаас ялгаатай. TBL-
  ийн алдаа хэрэгтэй хуудас санах ойд байхад ч гарч болно.
  Онолын хувьд үйлдлийн систем TBL буферээс виртуаль
  хуудсанд хэрэгтэй элементийг ачаалж чадна. Гэхдээ энэ
  процессийг хурдасгахын тулд аппарат хангамжийг ашиглан
  программ хангамж хамтарч ажиллана.
 Үйлдлийн систем хамгийн их хэрэглэгддэг TBL буферийн
  элементүүдийг TSB (translation storage buffer) гэж нэрлэгдэх
  хүснэгтэд хадгална.
 Энэ хүснэгт L-1 түвшний кэш шиг зохион байгуулалттай.
 TSB хүснэгтийн 16 байт элемент бүр нэг виртуаль хуудсыг заах
  ба үнэн зөвийн бит, контекстийн дугаар, виртуаль хаягийн
  тег, хуудасны физик дугаар болон флаг битүүд агуулна.
 Хэрэв кэшийн хэмжээ 8192 элемент гэвэл бага 13 бит нь 0 байх
  бүх виртуль хуудас хүснэгтийн 0 байрлал дахь элемент болох
  боломжтой.
 Хүснэгтийн хэмжээг программаар тодорхойлон санах ойг
  удирдах контроллерт үйлдлийн систем л хандах эрхтэй тусгай
  регистрээр дамжуулан өгнө.
 Хөрвүүлэлт хадгалах буфер алдаа заахад үйлдлийн систем TLB
  буферийн элемент хэрэгтэй виртуаль хуудсыг агуулж байгаа
  эсэхийг шалгана. Санах ойг удирдах контроллер энэ
  элементийн хаягийг тодорхойлон өөрийн дотоод регистрт
  (үйлдлийн систем л хандана) хадгална.
 Хэрэв хэрэгтэй элемент хөрвүүлэлт хадгалах буферт байгаа бол
  TLB буферээс аль нэг элементийг арилган харгалзах хөрвүүлэлт
  хадгалах буферийн элементийг хуулна. Аппарат хангамж LRU
  алгоритмаар аль элементийг арилгахыг тодорхойлно.
 Хэрэв виртуаль хуудас кэшэд байхгүй бол үйлдлийн систем өөр
  хүснэгт ашиглан хуудасны мэдээллийг хайна. Энэ хайлтад
  хэрэглэх хүснэгтийг хөрвүүлэгч хүснэгт гэнэ. Аппарат хангамж
  хайлтад оролцохгүй тул үйлдлийн систем ямар ч формат
  ашиглан хайлт хийж болно.
 Жишээ нь: виртуаль хуудасны хаягийг дурын р тоонд хуваан
  кэшлэн үлдэгдлийг хүснэгтийн заагч индекс болгож болно. Энэ
  элементүүд нь хуудас биш TSB-гийн элементүүд байна. Хэрэв
  хайлт хэрэгтэй хуудсыг олоогүй бол кэш санах ойн TSB
  элемент шинэчлэгдэнэ. Хайлтын дүнд хэрэгтэй хуудас санах
  ойд байхгүй бол стандарт алдаа гарна.
Цэвэр        Хуудсанд   Сегментчилэ     Алдаа
              сегментчилэл хуваах     л ба хуудсанд
                                      хуваах
Pentium IV    +            +          +               Аппарат
                                                      хангамж
                                                      ашиглан TLB
                                                      буферийн
                                                      элементийг
                                                      дахин ачаална
Ultra SPARC                +                          Үйлдлийн
III                                                   системд
                                                      удирдлагыг
                                                      дамжуулна
Виртуаль санах ой ба кэшлэлт
 Виртуаль санах ой ба кэшлэлт хоорондоо холбоогүй ч
  хоорондоо төстэй.
 Виртуаль санах ойтой үед программ дискэн дээр хадгалагдан
  тогтсон хэмжээтэй хуудаснуудад хуваагдана. Энэ хуудаснуудын
  нэг хэсэг нь үндсэн санах ойд хадгалагдана. Хэрэв программ
  санах ойгоос хуудас ашиглаж байгаа бол хуудас байхгүйгээс
  үүсэх алдаа гарахгүй тул программ хурдан ажиллана.
 Кэшлэхэд бүх программ үндсэн санах ойд хадгалагдан тодорхой
  хэмжээтэй блокод хуваагдана. Энэ блокуудын зарим нь кэшэнд
  хадгалагдана. Хэрэв программ кэшийн блокууд ашиглаж байгаа
  бол кэшд хандах алдаа бараг гарахгүй тул программ хурдан
  ажиллана.
 Иймээс виртуаль санах ой ба кэш ижил бөгөөд иерархийн өөр
  өөр түвшинд ажиллаж байна.
 Ялгаатай тал:
Кэш санах ойн промах гарахад аппарат хангамж боловсруулалт
  хийх бол хуудас байхгүйгээс үүсэх алдааг үйлдлийн систем
  боловсруулна.
Кэш санах ойн блок хуудаснаас бага хэмжээтэй
Хуудасны хүснэгт виртуаль хаягийн ахлах битээр индеклэгдэх бол
  кэш санах ой санах ойн хаягийн бага битээр индекслэгдэнэ.

Mais conteúdo relacionado

Destaque

өгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэсөгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэсБямбаа Авирмэд
 
гимнастик1
гимнастик1 гимнастик1
гимнастик1 Dalaijargal
 
техник хангамж ба програм хангамж
техник хангамж ба програм хангамжтехник хангамж ба програм хангамж
техник хангамж ба програм хангамжdenkhee68
 
өгөгдлийн сан
өгөгдлийн санөгөгдлийн сан
өгөгдлийн санOnon Tuul
 
эх хавтан гэж юу вэ
эх хавтан гэж юу вээх хавтан гэж юу вэ
эх хавтан гэж юу вэOyuka Oyuk
 
E-Views програм
E-Views програмE-Views програм
E-Views програмoz
 
Gosexem asuult 09
Gosexem asuult 09Gosexem asuult 09
Gosexem asuult 09dorjoooo
 
гимнастик цахим хичээл 1 галаа
гимнастик цахим хичээл 1 галаагимнастик цахим хичээл 1 галаа
гимнастик цахим хичээл 1 галааschool14
 
алтанзул 4р анги
алтанзул 4р ангиалтанзул 4р анги
алтанзул 4р ангиzaanaa79
 
Microsoft access 2007
Microsoft access 2007Microsoft access 2007
Microsoft access 2007Akhyt
 
компьютерийн техник хангамж
компьютерийн техник хангамжкомпьютерийн техник хангамж
компьютерийн техник хангамжBaaya Badrakh
 

Destaque (20)

өгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэсөгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэс
 
Lec01 intro (1) (2)
Lec01 intro (1) (2)Lec01 intro (1) (2)
Lec01 intro (1) (2)
 
C lects (7)
C lects (7)C lects (7)
C lects (7)
 
Diplom udirdamj
Diplom udirdamjDiplom udirdamj
Diplom udirdamj
 
Presentation1
Presentation1Presentation1
Presentation1
 
гимнастик1
гимнастик1 гимнастик1
гимнастик1
 
техник хангамж ба програм хангамж
техник хангамж ба програм хангамжтехник хангамж ба програм хангамж
техник хангамж ба програм хангамж
 
өгөгдлийн сан
өгөгдлийн санөгөгдлийн сан
өгөгдлийн сан
 
эх хавтан гэж юу вэ
эх хавтан гэж юу вээх хавтан гэж юу вэ
эх хавтан гэж юу вэ
 
E-Views програм
E-Views програмE-Views програм
E-Views програм
 
гэрлийн дифракц
гэрлийн дифракцгэрлийн дифракц
гэрлийн дифракц
 
Gosexem asuult 09
Gosexem asuult 09Gosexem asuult 09
Gosexem asuult 09
 
It101-3
It101-3It101-3
It101-3
 
гимнастик цахим хичээл 1 галаа
гимнастик цахим хичээл 1 галаагимнастик цахим хичээл 1 галаа
гимнастик цахим хичээл 1 галаа
 
зөвлөгөө 1
зөвлөгөө 1зөвлөгөө 1
зөвлөгөө 1
 
алтанзул 4р анги
алтанзул 4р ангиалтанзул 4р анги
алтанзул 4р анги
 
Microsoft access 2007
Microsoft access 2007Microsoft access 2007
Microsoft access 2007
 
Naraa
NaraaNaraa
Naraa
 
5гимнастик
5гимнастик5гимнастик
5гимнастик
 
компьютерийн техник хангамж
компьютерийн техник хангамжкомпьютерийн техник хангамж
компьютерийн техник хангамж
 

Semelhante a Lecture 15, 16 (13)

Lecture 5 os
Lecture 5 osLecture 5 os
Lecture 5 os
 
Lecture16
Lecture16Lecture16
Lecture16
 
Computer hereglee
Computer heregleeComputer hereglee
Computer hereglee
 
Lec12 translation
Lec12 translationLec12 translation
Lec12 translation
 
Lecture 7, 8
Lecture 7, 8Lecture 7, 8
Lecture 7, 8
 
Lecture 8
Lecture 8Lecture 8
Lecture 8
 
Lec16 io
Lec16 ioLec16 io
Lec16 io
 
Mtms1 intro
Mtms1   introMtms1   intro
Mtms1 intro
 
Instruction sets
Instruction setsInstruction sets
Instruction sets
 
Computer hereglee2 lekts
Computer hereglee2 lektsComputer hereglee2 lekts
Computer hereglee2 lekts
 
Komp vndes
Komp vndesKomp vndes
Komp vndes
 
Bie daalt-niit-sedev1-1
Bie daalt-niit-sedev1-1Bie daalt-niit-sedev1-1
Bie daalt-niit-sedev1-1
 
лекц.янжмаа
лекц.янжмаалекц.янжмаа
лекц.янжмаа
 

Mais de Muuluu

Lecture 2
Lecture 2Lecture 2
Lecture 2Muuluu
 
Lecture 5
Lecture 5Lecture 5
Lecture 5Muuluu
 
Lecture 3
Lecture 3Lecture 3
Lecture 3Muuluu
 
Өгөгдлийн бүтэц
Өгөгдлийн бүтэцӨгөгдлийн бүтэц
Өгөгдлийн бүтэцMuuluu
 
Basic software
Basic software Basic software
Basic software Muuluu
 
Wide area networks
Wide area networksWide area networks
Wide area networksMuuluu
 
NAT and PAT
NAT and PATNAT and PAT
NAT and PATMuuluu
 
Spanning tree protocol
Spanning tree protocolSpanning tree protocol
Spanning tree protocolMuuluu
 
Firewall
FirewallFirewall
FirewallMuuluu
 
User practical
User practicalUser practical
User practicalMuuluu
 
Active directory
Active directoryActive directory
Active directoryMuuluu
 
Hardware
HardwareHardware
HardwareMuuluu
 
windows server 2003
 windows server 2003 windows server 2003
windows server 2003Muuluu
 
Процессорын архитектур
Процессорын архитектурПроцессорын архитектур
Процессорын архитектурMuuluu
 
6 network devices
6 network devices6 network devices
6 network devicesMuuluu
 
Бие даалт
Бие даалтБие даалт
Бие даалтMuuluu
 
Лекц 15
Лекц 15Лекц 15
Лекц 15Muuluu
 
Лекц 14
Лекц 14Лекц 14
Лекц 14Muuluu
 
Лекц 16
Лекц 16Лекц 16
Лекц 16Muuluu
 
Лекц 15
Лекц 15Лекц 15
Лекц 15Muuluu
 

Mais de Muuluu (20)

Lecture 2
Lecture 2Lecture 2
Lecture 2
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
 
Lecture 3
Lecture 3Lecture 3
Lecture 3
 
Өгөгдлийн бүтэц
Өгөгдлийн бүтэцӨгөгдлийн бүтэц
Өгөгдлийн бүтэц
 
Basic software
Basic software Basic software
Basic software
 
Wide area networks
Wide area networksWide area networks
Wide area networks
 
NAT and PAT
NAT and PATNAT and PAT
NAT and PAT
 
Spanning tree protocol
Spanning tree protocolSpanning tree protocol
Spanning tree protocol
 
Firewall
FirewallFirewall
Firewall
 
User practical
User practicalUser practical
User practical
 
Active directory
Active directoryActive directory
Active directory
 
Hardware
HardwareHardware
Hardware
 
windows server 2003
 windows server 2003 windows server 2003
windows server 2003
 
Процессорын архитектур
Процессорын архитектурПроцессорын архитектур
Процессорын архитектур
 
6 network devices
6 network devices6 network devices
6 network devices
 
Бие даалт
Бие даалтБие даалт
Бие даалт
 
Лекц 15
Лекц 15Лекц 15
Лекц 15
 
Лекц 14
Лекц 14Лекц 14
Лекц 14
 
Лекц 16
Лекц 16Лекц 16
Лекц 16
 
Лекц 15
Лекц 15Лекц 15
Лекц 15
 

Lecture 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.  Ялгаатай тал: Кэш санах ойн промах гарахад аппарат хангамж боловсруулалт хийх бол хуудас байхгүйгээс үүсэх алдааг үйлдлийн систем боловсруулна. Кэш санах ойн блок хуудаснаас бага хэмжээтэй Хуудасны хүснэгт виртуаль хаягийн ахлах битээр индеклэгдэх бол кэш санах ой санах ойн хаягийн бага битээр индекслэгдэнэ.