http://npc-news.ru/

Сегментация. Физические и логические адреса

Пространство памяти (memory space) предназначено для хранения кодов инструкций
и данных. Память может логически организовываться в виде одного или множества
сегментов произвольной длины (в реальном режиме — фиксированной).

Помимо сегментации в защищенном режиме возможно (при страничной трансляции адресов)
разбиение логической памяти на страницы размером 4 Кбайт, каждая из которых
может отображаться на любую область физической памяти. Начиная с 5-го поколения
появилась возможность увеличения размера страницы до 4 Мбайт. Сегментация и
страничная трансляция адресов могут применяться совместно и по отдельности.
Сегментация является средством организации логической памяти на прикладном
уровне. Страничная трансляция адресов применяется на системном уровне для
управления физической памятью. Сегменты и страницы могут выгружаться из
физической оперативной памяти на диск и по мере необходимости подкачиваться
с него обратно в физическую память. Таким образом реализуется виртуальная память.

Применительно к памяти различают три адресных пространства: логическое, линейное и физическое. По сочетанию сегментации и страничной трансляции различают две модели памяти:

В сегментной модели памяти приложение использует несколько сегментов памяти (для кода, данных, стека) и может переключать используемые сегменты. В этой модели приложение оперирует логическими адресами.
Логический адрес состоит из селектора сегмента Seg и эффективного адреса, называемого также смещением (offset). Логический адрес обозначается в форме Seg:Offset. Селектор сегмента хранится в старших 14 битах сегментного регистра

Преобразование логического адреса в физический для 32-битных процессоров
Блок сегментации транслирует логическое адресное пространство в 32-битное
пространство линейных адресов.

Линейный адрес образуется сложением базового адреса сегмента с эффективным адресом.


Добавить комментарий

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>