Методы управления памятью
Память является важнейшим ресурсом, требующим тщательного управления со стороны операционной системы. Распределению подлежит вся оперативная память, не занятая операционной системой. Обычно ОС располагается в самых младших адресах, однако может занимать и самые старшие адреса. Функциями ОС по управлению памятью являются:
1) отслеживание свободной и занятой памяти,
2) выделение памяти процессам и освобождение памяти при завершении процессов,
3) вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти не достаточны для размещения в ней всех процессов, и возвращение их в оперативную память, когда в ней освобождается место,
4) настройка адресов программы на конкретную область физической памяти.
Для идентификации переменных и команд используются символьные имена, виртуальные адреса и физические адреса (рис.4.2).
Рис. 4.2. Типы адресов
Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.
Виртуальные адреса вырабатывает транслятор, переводящий программу на машинный язык. Так как во время трансляции не известно, в какое место оперативной памяти будет загружена программа, то транслятор присваивает переменным и командам виртуальные (условные) адреса. Совокупность виртуальных адресов процесса называется виртуальным адресным пространством. Каждый процесс имеет собственное виртуальное адресное пространство. Максимальный размер виртуального адресного пространства ограничивается разрядностью адреса, присущей данной архитектуре компьютера.
Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности расположены переменные и команды.
Переход от виртуальных адресов к физическим может осуществляться двумя способами.
1-й способ: Замену виртуальных адресов на физические делает специальная системная программа - перемещающий загрузчик. Перемещающий загрузчик на основании имеющихся у него исходных данных выполняет загрузку программы. При этом виртуальные адреса замещаются физическими.
Достоинство: уменьшение времени выполнения программы, так как преобразование каждого виртуального адреса происходит только один раз во время загрузки,
Недостаток: перемещающий загрузчик жестко привязывает программу к первоначально выделенному ей участку памяти, поэтому память используется не эффективно.
2-й способ: программа загружается в память в неизмененном виде - ввиде виртуальных адресов. При этом операционная система фиксирует смещение действительного расположения программного кода относительно виртуального адресного пространства.
Достоинство: Данный способ является более гибким, так как он допускает перемещение программы во время ее выполнения и этим самым эффективно использует оперативную память.
Недостаток: Во время выполнения программы при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический, что замедляет выполнение программы.
Дата добавления: 2020-02-05; просмотров: 631;