ПредишенСледващото

Сегмент от ЕВРОВОК е структура от данни в паметта, която разказва на процесора размера и местоположението в паметта на сегмент, както и контрол на информацията, както и информация за състояние на сегмента. Дескрипторите обикновено са създадени от компилатори, свръзки, товарни машини или операционна система, но не и приложения. Фигура 5-8 показва две общи ЕВРОВОК формат. Сегмент система Descriptor е разгледана по-подробно в глава 6. Всички видове системни описания имат един от следните формати.

Дескрипторите използвани за сегменти на код и данни приложение:

Дескриптори, използвани за специални системи сегменти:

Гранична. Определя размера на сегмента. Процесор поставя следващите две поле сегмент границите, заедно се образува единна стойност 20-битов. Процесорът интерпретира границата на един от двата sluduet начини, в зависимост от настройката на бита гранулиране:

  1. Ако гранулиране малко се изчиства, границата може да отнеме стойности от 1 байт до 1 мегабайта стъпки от един байт.
  2. Ако битът е настроен на гранулиране, на границата може да отнеме стойности от 4 килобайта до 4 гигабайта, на стъпки от 4 KB.

Bit S. Определя дали този сегмент система сегмент, или сегмент на код или данни. Ако малко S е зададен, сегментът е сегмент от код или сегмент данни. Ако това малко се изчиства, сегментът е сегмент на системата.

Type. Тълкуването на това поле зависи от това дали дръжката се отнася до прилагането или система за сегментиране. Системни сегменти имат малко по-различен от ЕВРОВОК формат, се разглежда в глава 6. поле памет тип ЕВРОВОК определя типа на достъп разрешено да сегмента, както и посоката, в която сегмента се увеличава (вж. Таблица 5-1).

Таблица 5-1. Начини на приложение сегменти ----------------------------------------------- ------------------ брой | E | W | A | въведете | Описание | | | | Дръжка | ----------------------------------------------- ------------------ 0 0 0 0 четене само данни 1 0 0 1 данни само за четене, достъп се прави 0 2 1 0 данни четене / писане 3 0 1 1 четене на данни / влизане достъп от 4 1 0 0 данни само за четене, разширителни ниски 5 1 0 1 данни само за четене, удължаване надолу, се прави достъп 6 1 1 0 данните четене / запис, разширява надолу 7 1 1 1 на данните четене / запис, разширява надолу предоставен ------------------------------------------------ ----------------- брой | С | R | A | въведете | Описание | | | | Дръжка | ----------------------------------------------- ------------------ 8 0 0 0 изпълнение на код само 9 0 0 едно изпълнение на код само достъп е 1 10 0 0 код изпълнение / четене 11 0 1 1 код Vapolnenie / четене, предоставена януари 12 0 0 Референтен изпълнява само конформална януари 13 0 1 Референтен само изпълнява конформална, предоставени 14 януари 1 0 Референтен изпълнение / само за четене конформална 15 януари 1 1 изпълнение на код / ​​само за четене конформална, достъпен от -------------------------------------------------- ---------------

За сегмент данни три-малко значими бита от типа на полето може да се тълкува като разширение надолу признаци (Е), напиши позволи (W) и че се образува достъпа (А) на сегмент. Код сегменти за три-малко значими бита от типа на полето може да се тълкува като индикация за съответствие (С), прочетен Активиране на (R) и конфигурирани за достъп (А).

сегменти код могат да бъдат или конформна или не-конформна. Отивате изпълнява по-привилегирован конформална сегмент ще се запази сегашното ниво на привилегия. Daylight извършване на не-конформална сегмент с различно ниво на привилегия изключение ще генерира общ защита на не се използва, ако проблемът с шлюз (виж дискусионни мултитаскинг средства. В Глава 6). Системни инструменти, от които не се котират на средства за защита, като например функциите за излъчване на данни (например, транскодиране EBCDIC / ASCII, кодиране / декодиране на метод Хъфман, библиотека на математически функции), както и някои видове изключения (например деление на нула грешка, препълване на откритите чрез в върза излишък гама) може да бъде зареден в конформални код сегменти.

са също съобщава, Вид поле, което имаше в е предоставена този сегмент. Първоначално дескрипторите на сегмента са съобщили, че достъпът до сегмента беше. Ако в полето Type е след това се постави на стойност показва, че достъпът до сегмента не е изпълнено, то той ще се възстанови стойността ако настъпили достъп до сегмента. Почистете и инспектира най-маловажният областта битов тип, софтуерът може да контролира използването на сегмента (LSB тип поле, се нарича също малко Access).

Процесорът може да актуализира полето Тип при достъп сегмент, дори ако всичко това се е случило в цикъла четиво. Ако таблици ЕВРОВОК били поставени в ROM, хардуера може да се наложи да изключите връзката с автобус ROM данни по време на цикъл за запис. Това може да се изисква да върне ГОТОВ процесор # сигнал в записа на контур в ROM; в противен случай тя няма да се случи завършване на този цикъл. Тези средства хардуер строителство изисква за ROM-резидент ЕВРОВОК маси 386 DX, която винаги поставя бита за достъп при зареждане на сегмент от ЕВРОВОК. Въпреки това, i486 процесор, само ако не е вече инсталиран. Опитите да се избегне запис в таблицата на ROM ЕВРОВОК да определят бита за достъп в всеки дескриптор.

DPL (ЕВРОВОК ниво привилегия): Определя сегмент ниво привилегия. Използва се за контрол на достъпа до сегмента се използва механизмът за защита, описани в глава 6.

Сегмент присъствие малко. Ако това малко се изчиства, а след това на процесора, когато заредени в един сегмент регистър на селектора хвърля сегмент изключение ЕВРОВОК "не е налице." Този имот се използва за откриване на опити за достъп до сегментите, които са станали недостъпни. Сегментът може да стане недостъпен, когато системата е необходимо да се създаде свободна памет. Памет елементи като символни шрифтове, или драйвери на устройства, в случаите, когато те не се използват в момента, отменя разпределение на паметта. разпределение памет Отказ като елемент се извършва, като сегмент обозначени като "не представлява" (това се извършва чрез изчистване малко присъствие сегмент). След това, на паметта, заета от сегмента на данни могат да бъдат разпределени за други цели. Когато даден елемент, за който е отменен разпределение на паметта, ще се наложи следващия път изключение "сегмент не е налице" показва, че трябва да изтеглите този сегмент в паметта отново. Ако този тип организация на паметта се извършва по начин, който не се вижда от приложението, то се нарича "виртуална памет". Системата може да работи с обща площ от виртуалната памет е много по-голям от физическата памет, което се дължи на факта, че както в физическа памет е налична само на няколко сегмента.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!