Jump to content

Санах ойн сегментчлэл

Википедиа — Чөлөөт нэвтэрхий толь
(Санах ойн сегмент-с чиглүүлэгдэв)

Санах ойн сегментчлэл нь компьютерийн анхдагч санах ойг сегментүүдэд хуваах үйл ажиллагаа. Сегментчлэл ашигладаг системд санах ойн байрлалын хаяг нь сегмент, тус сегмент дахь байрлал гэсэн хоёр зүйлийг агуулсан байдаг. Компайлдсан програмын объект файлуудыг executable болгон холбож, санах ойд ачааллахад сегментийг мөн ашигладаг.

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

Сегмент бүр өөр төрлийн хамгаалалттай байж болно. Жишээ нь процелуртай сегментийг зөвхөн “гүйцэтгэх” гэж тодорхойлон унш/бич хорьж болно.

Сегментийн хүснэгт

[засварлах | кодоор засварлах]

Segment base буюу сегментийн үндэс нь санах ойд байрлах сегментүүдийг эхлэх физик хаягаар нь агуулж байдаг. Segment limit буюу сегментийн хязгаар нь сегментүүдийнхээ уртыг нь тодорхойлж өгдөг. Логик хаяг нь сегментийн дугаар, сегментийн эх мэдээлэл гэсэн хоёр хэсгээс бүрддэг. Сегментийн дугаарыг сегментийн хүснэтийг гарчигжуулахад ашигладаг.

Логик хаягийн эх нь тэгээс сегментийн хязгаар хоёрын хооронд байрладаг. Хэрвээ дээрх хоёрын хооронд байхгүй бол үйлдийн систем тасалддаг. Сегментийн эх нь санах ойн физик хаягт байрлах шаардлагатай байтуудыг боловсруулж сегментийн үндэст нэмж өгдөг хуультай. Тэгэхээр сегментийн хүснэгт нь голдуу үндсэн болон хязгаарын регистрүүдийн хосолсон жагсаалтыг харуулдаг гэсэн үг юм.Сегментчилэл Хэд хэдэн виртуаль хаягийн орон зай үүсгэж болно.

Компайлер нь хэд хэдэн хүснэгт үүсгэж болно:

  • Хувьсагчийн нэр, атрибут агуулсан тэмдэгтийн хүснэгт
  • Хэвлэхээр хадгалсан эх текст
  • Бүхэл тоон тогтмол ба хөвөгч цэгтэй тогтмол агуулсан хүснэгт
  • Программын синтаксийн анализ агуулсан мод
  • Компилятор потор процедур дуудах стек

Эхний 4 нь компиляцийн явцад өснө. 5 дахь нь таах аргагүйгээр ихсэж багасна.

  • Operating System Concepts