Что такое символьные имена, виртуальные и физические адреса, перемещающий загрузчик.

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

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

1. Замену делает специальная системная программа – перемещающий загрузчик.

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

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