![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Структура адреса, или модель адресации определяется в совокупности компилятором, операционной системой и аппаратным обеспечением. Компилятор должен обеспечить простоту работы с адресом, но с минимальным разрывом между программистом и ОС. Поэтому в языке программирования отображается та модель, которая используется в ОС. Эта модель, в свою очередь, определяется заложенной в ОС идеей адресации с учетом необходимости реализации этой идеи на конкретной аппаратной платформе. Таким образом, ОС «сверху» должна обеспечить достаточно простую модель адресации для компилятора, а «снизу» уметь преобразовать эту модель в модель, навязанную аппаратурой.
Рассмотрим две наиболее характерных модели структуризации адресного пространства - плоскую и двухуровневую модель «сегмент-смещение». Эти модели представлены на рис. 3.2.
Плоская структура. Виртуальное адресное пространство представлено в виде непрерывной линейной последовательности адресов. Линейный виртуальный адрес - число, представляющее собой смещение относительно начала виртуального адресного пространства (обычно это нулевое значение).
Сегментированная структура. Виртуальное адресное пространство представляется разделенным на сегменты, а адрес любого объекта в памяти определяется номером сегмента и смещением относительно начала этого сегмента, т.е. парой сегмент-смещение.
Рисунок 3.2 - Типы виртуальных адресных пространств: плоское (а), сегментированное (б)
Более конкретно способы структуризации виртуального адресного пространства рассмотрены в п. 4 темы в связи с механизмами виртуальной памяти.
Важно отметить следующее.
Использование и реализация универсального принципа сегментирования структуры адресного пространства в разные периоды развития вычислительной техники были принципиально различными и менялись по крайней мере трижды.
В современных ОС понятие «сегмент» приобрело иной смысл и используется как средство виртуализации памяти (см. ниже). Сегмент - это некоторая функционально осмысленная часть кода или данных, которая может помещаться в оперативную память или выгружаться из нее как единое целое. Элементы сегмента адресуются внутри него смещением относительно начала. При этом механизм структуризации адресного пространства прозрачен и для пользователя, и для процесса и осуществляется аппаратно-программными средствами ОС.
Для программы адресное пространство представляется плоским.
Дата публикования: 2015-10-09; Прочитано: 1299 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!