Задачи виртуальной памяти
Виртуализация оперативной памяти осуществляется совокупностью программных модулей ОС и аппаратных схем процессора и включает решение следующих задач:
· Размещение данных в запоминающих устройствах различного типа, например часть кодов программы – в оперативной памяти, а часть – на диске;
· Выбор образов процессов или их частей для перемещения из оперативной памяти на диск и обратно;
· Перемещение по мере необходимости данных между памятью и диском;
· Преобразование виртуальных адресов в физические.
Очень важно то, что все действия по организации совместного использования диска и оперативной памяти – выделение места для перемещаемых фрагментов, настройка адресов, выбор кандидатов на загрузку и выгрузку – осуществляются ОС и аппаратурой процессора автоматически, без участия программиста, и никак не сказывается на логике работы приложения.
Свопинг
Виртуализация памяти может быть осуществлена на двух различных подходов:
· свопинг(swapping)-образы процессов выгружаются на диск и возвращаются в оперативную память целиком;
· виртуальная память(virtual memory)-между оперативной памятью и диском перемещаются части (сегменты, страницы и т.п.) образов процессов.
Свопинг представляет собой частный случай виртуальной памяти и, следовательно, более простой в реализации способ совместного использования оперативной памяти и диска. Однако подкачке свойственна избыточность: когда ОС решает активизировать процесс, для его выполнения, как правило, не требуется загружать в оперативную память все его сегменты полностью - достаточно загрузить небольшую часть кодового сегмента с подлежащей выполнению инструкций и частью сегментов данных, с которыми работает эта инструкция, а также отвести место под сегмент стека. Аналогично при освобождении памяти для загрузки нового процесса очень часто вовсе не требуется выгружать другой процесс на диск целиком, достаточно вытеснить на диск только часть его образа. Перемещение избыточной информации замедляет работу системы, а также приводит к неэффективному использованию памяти. Кроме того, системы, поддерживающие свопинг, имеют еще очень существенный недостаток: они не способны загрузить для выполнения процесс, виртуальное пространство которого превышает имеющуюся в наличии свободную память.
Именно из-за указанных недостатков свопинг как основной механизм управления памятью почти не используется в современных ОС. На смену ему пришел более совершенный механизм виртуальной памяти, который, как уже было сказано, заключается в том, что при нехватке места в оперативной памяти на диск выгружаются только части образов процессов.
Дата добавления: 2016-06-05; просмотров: 4432;