Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системное программное обеспечение.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
373.25 Кб
Скачать

Тема 2.8 Виртуальное адресное пространство

Понятие виртуального адресного пространства

Методические рекомендации

Все прикладные программы и подавляющее большинство системных программ являются перемещаемыми. Это значит, что в программе, подготовленной к выполнению (в том образе программы, который хранится на внешней памяти), обращения к памяти настроены на виртуальные адреса, не привязанные к адресам реальной памяти. Исходя из вышесказанного, для идентификации переменных и команд на разных этапах жизненного цикла программы используются.

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

Совокупность виртуальных адресов процесса называется виртуальным адресным пространством. Каждый процесс имеет собственное виртуальное адресное пространство. Совпадение виртуальных адресов переменных и команд различных процессов не приводит к конфликтам, потому что в случае одновременного присутствия переменных в памяти операционная система отображает их на разные физические адреса. При необходимости совместного доступа нескольких процессов к одному и тому же участку памяти операционная система использует специальный механизм для решения этой задачи, а общий участок памяти в этом случае называется разделяемой памятью (разделяемым сегментом памяти). Максимальный размер виртуального адресного пространства ограничивается разрядностью адреса, присущей данной архитектуре компьютера, и, как правило, не совпадает с объемом физической памяти, имеющимся в компьютере. В разных операционных системах используются разные способы структуризации виртуального адресного пространства. В одних операционных системах виртуальное адресное пространство представляется в виде непрерывной линейной последовательности адресов. Такую структуру адресного пространства называют плоской (flat) Виртуальным адресом является единственное число, представляющее собой смещение относительно начала виртуального адресного пространства, которое называется линейным виртуальным адресом. В других операционных системах виртуальное адресное пространство делится на части, называемые сегментами (секциями, областями). В этом случае помимо линейного адреса может быть использован виртуальный адрес, представляющий собой пору чисел (n, m), где n определяет сегмент, а m – смещение внутри сегмента. Существуют и более сложные способы структуризации виртуального адресного пространства, когда виртуальный адрес образуется тремя и более числами.

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

Литература [1]

Вопросы для самоконтроля

1 Дайте определение виртуального адресного пространства

2 К чему приводит совпадение виртуальных адресов переменных и команд различных процессов?