Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
202110_3DB25_otvety_k_gosudarstven-HkWCt.doc
Скачиваний:
12
Добавлен:
06.09.2019
Размер:
2.85 Mб
Скачать

Типы адресов

Для идентификации переменных и команд на разных этапах жизненного цикла программы используются разные имена:

  1. Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.

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

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

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

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

Символьные адреса

Идентификация переменных в программе на алгоритмическом языке

транслятор

Виртуальные адреса

Условные адреса, вырабатываемые транслятором

1) перемещающий загрузчик – статическое преобразование

2) динамическое преобразование аппаратными средствами

Физические адреса

Номера ячеек физической памяти

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

Совокупность виртуальных адресов процесса называется виртуальным адресным пространством.

Виртуальные

Виртуальное адресное пространство процесса 1

адреса

ВАП процесса 2

Подпрограмма F1

ВАП процесса 3

Переменная а2

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

Необходимо различать максимально возможное виртуальное адресное пространство процесса n, назначенное (выделенное) процессу виртуальное адресное пространство. В первом случае речь идет о максимальном размере виртуального адресного пространства, определенного архитектурой компьютера, на котором работает ОС, и, в частности, разрядностью его схем адресации (32 битная, 64 битная и т.п.). Например, на компьютерах с 32-х разрядными процессорами Intel Pentium ОС может предоставлять каждому процессу виртуально-адресное пространство до 4 Гбайт (232). Однако это значение представляет собой только потенциально возможный размер виртуального адресного пространства. Процесс, использующий только часть доступного ему виртуально-адресного пространства.

Назначение виртуально-адресного пространства представляет собой набор виртуальных адресов, действительно нужных процессу для работы. Эти адреса назначаются программами во время трансляции. Затем при создании процесса ОС фиксирует назначение виртуально-адресных пространств в своих системных таблицах. В ходе своего выполнения процесс может увеличивать размер первоначального назначенного ему виртуально-адресного пространства, запросив у ОС создания дополнительных сегментов или увеличение размера существующих.

Максимальный размер виртуально-адресного пространства ограничивается только разрядностью адреса, присущей данной архитектуре компьютера, и, как правило, не совпадает с объемом физической памяти, имеющейся в компьютере.

Операционная система для хранения данных виртуально-адресного пространства процесса, не помещающихся в оперативную память, использует внешнюю память, которая в современных компьютерах представлена жесткими дисками.

Вп2

ОП

Вп1

Рис.2 Соотношение объемов ВАПр-ва и физической памяти : ВАПр-ва превосходят объёмы физической памяти

ДИСКОВАЯ ПАМЯТЬ

Однако соотношение объемов виртуальной и физической памяти может быть и обратным.

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

Обычно виртуально-адресное пространство процесса делится на две непрерывные части: системную и пользовательскую. В некоторых ОС ( например, Windows NT ) эти части имеют одинаковый размер по 2 Гбайт, но деление может быть и другим. Часть виртуально-адресного пространства каждого процесса, отведенная под сегменты ОС, является идентичной для всех процессов. Поэтому при смене активного процесса заменяется только вторая часть виртуального адресного пространства, содержащая его индивидуальные сегменты (коды и данные прикладной программы).

ВП3

ВПn

Индивидуальные части виртуальных адресных пространств

ВП2

ВП1

Общая часть виртуальных адресных пространств

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