Основная концепция виртуальной памяти

Иерархия запоминающих устройств

 

 

Внутренние регистры процессора (объем –десятки байт

время доступа -1-3 нс)

 

Быстродействующая память (10-ки, сотни кбайт

(на основе SRAM) 5-8 нс)

 

Оперативная память ( сотни мегабайт

( на основе DRAM) 10-20 нс)

 

Внешняя память (сотни гигабайт

(жесткий диск) десятки мс)

 

 

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

 

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

Основные функции ОС по управлению памятью следующие:

 

- отслеживание наличия свободной и занятой памяти

- выделение памяти процессам и освобождение памяти после завершения процесса

- если размеры основной памяти недостаточны для размещения в ней всех процессов, то происходит вытеснение кодов и данных процессов из ОП на диск, а также возвращение их в ОП, когда в ней освобождается место

- настройка адресов программ на конкретную область физической памяти

- защита памяти процессов от взаимного вмешательства

 

На разных этапах жизни программы для представления переменных и кодов требуется 3 типа адресов:

 

-Символьные имена. Их присваивает пользователь при написании программы на одном из алгоритмических языков.(идентификаторы).

- виртуальные адреса – это адреса, которые вырабатывает компилятор при переводе программы на машинный язык. Так как во время компиляции в общем случае не известно, в какое место ОП будет загружена программа, то компилятор присваивает переменным и командам условные (виртуальные) адреса.

- физические адреса – номера ячеек физической памяти

 

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

 

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

 

VITUAL MEMORY – виртуальная память

Область дисковой памяти, которая используется в качестве продолжения ОП. Если для хранения открытых приложений реальной ОП не хватает, то программы, не использующиеся в настоящий момент МП, выгружаются на диск. Когда одному из таких приложений передается управление, оно вновь загружается в ОП ( а другое пассивное приложение может быть выгружено из ОП на диск).

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

Реализация виртуальной памяти может быть различной, например, страничной. Виртуальная память процесса разделена на страницы фиксированной длины. Реальная память разделена на страничные кадры той же длины, что и страницы. Любая страница любого процесса потенциально может быть загружена в любой страничный кадр реальной памяти. Отображение страницы в страничный кадр описывается специальной таблицей –PMT-Page Map Table. Для каждого процесса в системе имеется одна PMT, которая используется аппаратурой для преобразования адресов виртуальной памяти в соответствующие адреса реальной памяти.(динамическое преобразование адресов). При создании процесса ОС загружает в ОП несколько его виртуальных страниц. Копия всего виртуального пространства процесса находится на диске. Остальные страницы загружаются в память по мере надобности.

 

 

ОП <à диск

 

Циркуляция приложения и программ

 

 

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