More Related Content
PDF
Computerin tehnikin undes 1hicheeliin lektsiin huraangui PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
POTX
Similar to Lecture5
PPTX
PDF
PPTX
PDF
PPTX
C++ vndsen oilgolt хичээл 1 PPTX
PDF
PPTX
PPT
DOCX
DOCX
DOCX
PPTX
C++ vndsen oilgolt хичээл 1 PPTX
PDF
Компьютерийн бүтэц, зохион байгуулалт №1-2 PPTX
лекц 1 компьютерийн бүтэц зохион байгуулалт PDF
DOCX
компьютерт мэдээллийг боловсруулах PDF
PDF
More from Muuluu
PPTX
PPTX
PPTX
PPTX
PDF
PPT
PPT
PPT
DOC
PPT
PPT
PDF
PPT
PPTX
PPTX
PDF
PPTX
PPTX
PDF
PDF
Lecture5
- 1.
- 2.
СегментчилэлХэд хэдэн виртуальхаягийн орон зай үүсгэж болно.Компилятор хэд хэдэн хүснэгт үүсгэж болно:Хувьсагчийн нэр, атрибут агуулсан тэмдэгтийн хүснэгт - 3.
- 4.
- 5.
- 6.
- 7.
Программ маш иххувьсагч агуулсан гэе. Тэмдэгтийн хүснэгт дүүргэгдсэн ч өөр хүснэгтийн зай сул байна.Энэ тохиолдолд overlay-г гараад удирдаж мэт өөр хүснэгтийн зайнаас өьч болно. Гэхдээ энэ нь тохиромжтой биш.Иймээс маш олон хамааралгүй хаягийн орон зай үүсгэнэ. Энэ орон зайг сегмент гэнэ.Сегментийн урт ямарч байж болно. Сегмент бүр өөр өөр урттай байж болно. Мөн сегментийн урт программын явцад өөрчлөгдөж болно. - 8.
Сегмент логик элементбөгөөд процедур, массив, стек, скляр хувьсагчийн цуваа агуулж болох ч 1 сегмент 1 л төрлийн өгөгдөл агуулна.Мөн процедур бүр тусдаа сегментэд байрлах тул компиляцлагдаж байгаа процедуруудыг холбоход хялбар болно. n сегментээс процедур дуудан 0 үгэнд хандахад (n,0) хаяг хэрэглэнэ.Хэрэв n сегмент дэх процедурыг өөрчлөн компиляц хийсэн ба бусад процедурт өөрчлөлт хийх шаардлагагүй. Нэг хэмжээст орон зайд процедурууд хойно хойноосоо байрлах ба завсар нь зай байхгүй. Иймээс нэг процедур өөрчлөгдөхөд бусад нь өөрчлөгдөх хэрэгтэй болно.Сегментчилэл ерөнхий процедур болон өгөгдлийг хэдэн программанд салгахад амар (хаягийг хэмнэнэ) болгосон.Сегмент бүр өөр төрлийн хамгаалалттай байж болно. Жишээ нь процелуртай сегментийг зөвхөн “гүйцэтгэх” гэж тодорхойлон унш/бич хорьж болно.... - 9.
- 10.
Сегмент үүсгэхСегментийг 2аргаар үүсгэж болно.1.а. Зайг шахах (гадаад фрагментац)а) 5 сегмэнттэйб) 1-р сегментийг арилган хэмжээгээр бага 7-р сегментийг байранд нь оруулсанв) сегмент 4-г сегмент 5-р солисонг) сегмент 3-г сегмент 6-р солисонд) сегмент ба хоосон зайгаар нь (нүх) ялгасан - 11.
Гадаад фрагментац хийгдэжбайхад (г) сегсент 3-т хандахад хэдийгээр нүх байгаа ч тус тусдаа байгаа ба хэмжээ нь бага тул сегмент 3-г байрлуулж болохгүй. Иймээс аль нэг сегментийг арилгана.Ийм байдлаас гарахын тулд нүх үүсэх бүрд 0 хаяг руу дараагийн сегментийг ойртуулах замаар шилжүүлнэ.1.а. Нүхний хэмжээ сегментүүдийн эзлэх хэмжээнээс их болтол нь хүлээгээд дараа нь нягтруулна. Санах ойг нягтруулах зорилго нь бүх жижиг нүхнүүдийг нэг том нүх болгон сегмент байрлуулж болох зай гарган авах. Энэ аргын дутагдалтай тал нь хугацаа их шаардана. Нүх үүсэх бүрийн дараа нягтруулах нь ашиггүй. - 12.
Хэрэв нягтруулахад иххугаца шаардагдаж байвал тусгай алгоритм хэрэглэн аль нүхийг тухайн сегментийг байрлуулахад хэрэглэхэд тохиромжтойг илрүүлнэ. Үүний тулд бүх хаяг болон нүхний хэмжээтэй list хэрэг болно.Хамгийн түгээмэл хэрэглэгддэг алгоримт – оптималь хөөлт буюу хэрэгтэй сегмент багтах хамгийн бага нүхийг олох. Энэ алгоримтын зорилго нь сегмент байрлуулахын тулд том нүхийг хэсэгчилэн хуваахаас зайлсхийх. Өөр нэг түгээмэл хэрэглэгддэг алгоритм нь бүх нүхний list-ийг шалган хэмжээгээрээ таарах нүхийг илрүүлэх. Энэ нь бүх list-ийг шалган оптималь нүх олохоос бага хугацаа зарцуулна. Мөн бүтээмж ч өндөртэй (оптималь хөөлт хэрэглээгүй жижиг нүхнүүд ихийг үүсгэнэ).Дээрх 2 алгоримт хоёулаа нүхний “дундаж” хэмжээг багасгана. - 13.
Сегментийн хэмжээ нүхнийхэмжээтэй таарах нь ховор тул нүхэнд сегмент байрлуулахад хэмжээ багатай шинэ нүх үүснэ.2. Хуудсанд хуваах – сенмент бүрийг ижил хэмжээтэй хуудсуудад хуваах. Энэ тохиолдолд сегментийн хагас нь санах ойд хагас нь дискэн дээр байрлаж болно. Сегментийг хуудсанд хуваахын тулд тусдаа хуудасны хүснэгт үүсгэнэ.MULTICS (multiplexed information and computing service) – сегментийг хуудсанд хуваах үйлдэлтэй үйлдлийн систем. - 14.
Хаяг нь 2хэсгээс тогтоно: сегментийн хаяг, сегмент доторх хаяг. Процесс бүрд сегментийн дескриптор буюу сегментийг заагч хэсэгтэй. Аппарат хангамжид виртуаль хаяг очиход сегментийн номер хэрэгтэй сегментийн дескрипторыг олох сегмент дескрипторын индекс болно. Дескриптор сегментийг хуудас болгон хуваасан хуудасны хүснэгт рүү заана. Бүтээмжийг нэмэгдүүлэхийн тулд сүүлийн хэрэглэсэн сегмент болон хуудасны комбинацийг 16 элементтэй ассоциатив санах ойд хадгална.MULTICS үйлдлийн систем хэрэглэгдэхээ болисон ч Intel386-гаас эхлэн энэ системтэй ижил болсон. - 15.
PentiumIV-ийн виртуаль санахойPentiumIV нэлээн нүсэр виртуаль санах ойтой ба хуудас хүсэлтээр дуудах, сегмент үүсгэх, сегментийг хуудсанд хуваах үйлдлүүдтэй.Виртуаль санах ой нь 2 төрлийн хүснэгттэй:LDT (Local descriptor table)GDT (Clobal descriptor table)Программ бүр өөрийн local дескрипторын хүснэгттэй ба ганц global дескрипторын хүснэгт бүх программуудад хуваагдана.LDT программ бүрийн local сегментийг (код, өгөгдөл, стек г.м.), харин GDT системийн сегмент болон өгөгдлийн системийг тодорхойлно. - 16.
Сегментэд хандахын тулдсегментийн селекторыг сегментийн регистрүүдийн нэгэнд ачаална. Программ гүйцэтгэгдэж байхад CS регистр кодын сегментийн селекторийг, DS өгөгдлийн сегментийн селекторыг агуулна. Селектор бүр 16 бит тоо байна. Селекторын 1 бит нь сегмент local уу global уу гэдгийг буюу аль хүснэгтэд байгааг харуулна. 13 бит нь дескриторын хүснэгтэд байгаа элементийн номерийг тодорхойлно. Иймээс хүснэгтийн хэмжээ 8К (213)-аа хэтрэхгүй.Үлдсэн 2 бит нь хамгаалалттай холбоотой. - 17.
0 дескриптор хүчингүйба trap-г дуудна. Үүнийг сегментийн регистрт ачаалан сегментийн регистрт хандах боломжгүй байгааг харуулна. Хэрэв 0 дескрипторыг ашиглах гэвэл trap-г дуудна.Сегментийн регистрт селектор ачаалагдахад харгалзах дескриптор дуудагдан санах ойг удирдах контроллерийн дотоод регистрт хадгалагдана. Иймээс хандахад хялбар болно. Дескриптор 8 байтаас тогтох ба сегментийн баазын хаяг, хэмжээ болон бусад мэдээллүүдийг агуулна. - 18.
Селекторын форматыг дескрипторыголоход амар байхаар хялбаршуулсан.Эхлээд бит 2-оор селектор доторх дескрипторын local хүснэгт LDT болон global хүснэгт GDT сонгоно. Дараа нь селекторыг санах ойг удирдах контроллерийн түр регистрт хадгална. Бага 3 бит нь 0 болсны дүнд селекторын 13 бит утгыг 8-аар үржүүлнэ. Эцэст нь энэ үр дүн дээр дескрипторын local хүснэгтээс global хүснэгтээс эсвэл хаяг нэмэгдэн дескриптор заагч бий болно. Жишээ нь селектор 72 GDT+72 хаягтай global хүснэгтийн 9 дэх элементэд хандахад: - 19.
Селектор, шилжилтээс физикхаягт хүрэх дараалал:Аппарат хангамж мегментийн аль регистр ашиглагдаж байгааг тодорхойлмогц дотоод регистрт харгалзах бүтэн дескрипторыг олж чадна. Хэрэв ийм сегмент байхгүй (0 селектор) эсвэл тухайн агшинд санах ойд байрлаагүй (P=0) бол системийн тасалдалт буюу trap дуудагдана. Эхний тохиолдол – программчлалын алдаа, дараагийнх нь хэрэгтэй сегмент дуудахыг үйлдлийн системээс хүснэ.Дараа нь аппарат хангамж шилжилт сегментээс гарч байгаа эсэхийг шалгана. Хэрэв гарч байвал дахин trap дуудна. Дескриптор 32 бит сегментийн хэмжээ тодорхойлох талбартай ч тэнд 20 бит л байх тул өөр схем хэрэглэх шаардлагатай болно.Хэрэв G(granularity) талбар 0 бол LIMIT талбар сегментийн хэмжээг (1Мбайт хүртэл) илэрхийлнэ. Хэрэв G(granularity) талбар 1 бол LIMIT талбар сегментийн хэмжээг байтаар биш хуудсаар идэрхийлнэ. - 20.
PentiumIV-ийн хуудасны хэмжээ4 Кбайт-аас бага байдаггүй тул 232 байт хүртэл сегментийг тодорхойлоход 20 бит хангалттай.Хэрэв сегмент санах ойд байгаа бөгөөд шилжилт нь сегментийн хязгаараас хэтрээгүй бол PentiumIV шилжилттэй дескрипторт 32 бит BASE талбар нэмж шугаман хаягийг гаргаж авна: BASE талбар 3 хэсэгт хуваагдан дескрипторт тархан BASE талбар нь 24 бит байдаг 80286 процессорыг дэмжинэ. Иймээс сегмент бүр 32 бит хаягийн талбарын дурын байрлалаас эхэлж болно. - 21.
Хуудсанд хуваахыг блоклосон(global удирдлагын регистр дэх битээр тодорхойлогдоно) бол шугаман хаяг физик хаяг шиг интерпретацлагдан санах ой руу унш/бич үйлдэл хийхээр илгээгдэнэ. Хуудсанд хуваахыг блоклосон үед сегмент үүсгэх схем буюу сегментийн BASE хаяг дескрипторт өгөгдсөн байна. Дескрипторуудын давхардалт байгаа эсэхийг шалгах нь хугацаа их шаардах тул дескриптор давхардахыг зөвшөөрнө.Нөгөө талаас хуудсанд хуваахыг зөвшөөрөхгүй бол шугаман хаяг виртуаль хаяг шиг интерпретацлагдан хүснэгт ашигласан физик хаягаар дүрслэгдэнэ. Энэ тохиолдолд ганц хүндрэлтэй тал нь 32 бит виртуаль хаягтай 4К сегмент 1 сая хуудас багтааж чадна. Иймээс хуудасны хүснэгтийг багасгах үүднээс 2 шатлалтай дүрслэл хэрэглэнэ. - 22.
Ажиллаж буй программбүр 1024 ш 32 бит элементээс тогтох хуудасны хүснэгттэй байна. Энэ хүснэгтийн хаяг global регистрээр тодорхойлогдоно. Хүснэгтийн элемент бүр хуудасны кадрыг заана.а)DIR, PAGE, OFF талбарт хуваагдсан шугаман хаягб) - 23.
DIR талбар хуудасныдиректор дахь индекс болж хэрэглэгдэх буюу хэрэгтэй хуудасны хүснэгтийг заана.PAGE талбар хуудасны хүснэгт дэх индекс болох буюу хуудасны кадраас физик хаягийг олоход хэрэглэгдэнэ.OFF талбар хуудасны кадрын хаягт нэмэгдэн хэрэгтэй байт болон үгийн физик хаягийг үүсгэнэ.Хуудасны хүснэгтийн элемент бүрийн хэмжээ 32 бит ба үүнээс 20 бит нь хуудасны кадрын дугаар байна. Үлдсэн битүүд access бит, өөрчлөлтийн бит, хамгаалалтын бит г.м. байна.Хуудасны хүснэгт бүр 4К хэмжээтэй 1024 хуудасны кадрын элемент агуулах тул хуудасны хүснэгт 4М байт санах ойтой ажиллана. 4Мбайт-аас богино сегмент 1 элементтэй хуудасны директортой (1 хуудастай тул энэ хуудсыг л заах).Ийм маягаар богино хуудасны бүтээмж бууруулах саатал 2 хуудас л (нэг түвшинт схем шиг сая хуудас биш) л болно.