Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тюмгу / ЭВМ ответы на вопросы .docx
Скачиваний:
93
Добавлен:
08.12.2019
Размер:
255.75 Кб
Скачать

16. Схема адресации памяти. Сегментная организация памяти. Модели памяти.

Адресация — осуществление ссылки (обращение) к устройству или элементу данных по его адресу[1]; установление соответствия между множеством однотипных объектов и множеством их адресов; метод идентификации местоположения объекта

Сегментная адресация памяти — схема логической адресации памяти компьютера в архитектуре x86. Линейный адрес конкретной ячейки памяти, который в некоторых режимах работы процессора будет совпадать с физическим адресом, делится на две части: сегмент и смещениеСегментом называется условно выделенная область адресного пространства определённого размера, а смещением — адрес ячейки памяти относительно начала сегмента. Базой сегмента называется линейный адрес (адрес относительно всего объёма памяти), который указывает на начало сегмента в адресном пространстве. В результате получается сегментный (логический) адрес, который соответствует линейному адресу база сегмента+смещение и который выставляется процессором на шину адреса.

Модель памяти — это способ объединения кода, данных и стека программы в один или несколько физических сегментов.

В операционных системах, работающих в реальном режиме (фактически это MS DOS и её клоны), были определены следующие модели памяти:

  • крошечная (tiny) — код, данные и стек объединены в один физический сегмент, максимальный размер которого не мог превышать 64 Кбайта без 256 байтов (последние требовались для создания префикса программного сегмента (PSP) — специфической структуры данных MS DOS. Крошечную модель памяти использовали все COM-программы. По сути она является плоской моделью памяти, предназначенной для реального режима;

  • малая (small) — код и данные находятся в разных физических сегментах, размер каждого из которых не может превосходить 64 Кбайта. Строгой спецификации относительно размещения сегмента стека и PSP для этой и других моделей памяти нет;

  • средняя (medium) — код размещается в нескольких сегментах, каждый из которых имеет размер до 64 Кбайт; данные размещаются в одном сегменте длиной до 64 Кбайт;

  • компактная (compact) — код занимает один сегмент размером до 64 Кбайт, данные размещаются в нескольких сегментах, каждый из которых может иметь размер до 64 Кбайт;

  • большая (large) — код и данные занимают несколько физических сегментов каждый.

Разновидностью большой модели является гигантская (huge), отличающаяся представлением указателей на объекты (смещение всегда должно быть минимально возможным, а базовый адрес сегмента, соответственно, максимально возможным).

В операционных системах защищённого режима технически можно организовать те же самые модели памяти, что и в реальном режиме. Однако на практике наиболее распространённые ОС, в том числе Microsoft Windows и Linux, применяют только плоскую (flat) модель. Суть её заключается в том, что код, данные и стек программы объединяются в один физический сегмент размером 4 Гбайта (хотя собственно программе пользователя отводится меньший объём — чуть меньше 2 Гбайт в большинстве версий Windows и около 3 Гбайт в Linux).

Наконец, в 64-разрядном режиме может использоваться только плоская модель, поскольку механизм сегментации в нём не предусмотрен.

Соседние файлы в папке тюмгу