Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры ос 1-50.docx
Скачиваний:
27
Добавлен:
20.04.2019
Размер:
135.15 Кб
Скачать

22. Логическая и физическая память. Связывание адресов.

Логическая память.

Аппаратная организация памяти в виде линейного набора ячеек не соответствует представлениям программиста о том, как организуется хранение программ и данных. Большинство программ представляет собой набор модулей, созданных независимо друг от друга. Иногда все модули, входящие в состав процесса располагаются в памяти один за другим, образуя линейное пространство адресов, чаще всего, однако, модули помещаются в различные области памяти и используются по-разному. Схема управления памятью, поддерживающая этот взгляд пользователя на то, как хранится программа, называется сегментация.

Сегмент – область памяти определенного назначения, внутри которой поддерживается линейная адресация. Сегменты содержат процедуры, массивы, стеки или скалярные величины, но обычно не содержат информацию смешанного типа. Память, таким образом, перестала быть линейной и превратилась в двумерную. Адрес состоит из двух компонентов: номер сегмента и смещение внутри сегмента.

Оказалось удобным размещать в разных сегментах различные компоненты процесса (код программы, данные, стек и т.д.). Контролировать характер работы с конкретным сегментом можно, приписав ему атрибут, например, право доступа или типы операций, которые можно производить с данными, хранящимися в сегменте.

Большинство современных ОС поддерживают сегментную организацию памяти. В некоторых архитектурах, например Intel, сегментация поддерживается оборудованием. Адреса, к которым обращается процесс, отличается от адресов реально существующих в ОП. В каждом конкретном случае, использованные программой адреса могут быть представлены различными способами. Например, адреса в исходных текстах обычно символьные. Компилятор связывает эти символьные адреса с перемещаемыми адресами (такими как n байт от начала модуля).

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

Логическое и физическое адресные пространства ни по организации, ни по размеру не соответствуют друг другу. Максимальный размер логического адресного пространства обычно определяется разрядностью процессора, например 2^32 и в современных системах значительно превышает размер физического адресного пространства. Следовательно, ЦП и ОС должны быть способны отобразить ссылки в ходе программы в реальные физические адреса соответствующие текущему расположению программы в основной памяти.

Такое отображение адресов называют трансляцией адреса (привязкой или связыванием адресов)

Связывание логического адреса, порожденного оператором программы, с физическим, должно быть осуществлено до начала выполнения оператора или в момент его выполнения.

Связь логического и физического адресов при сегментной организации памяти.

Система отображения логических адресов в физические сводится к системе отображения логической страницы в физические и представляет собой таблицу страниц, которая хранится в оперативной памяти.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]