Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_модуль1.doc
Скачиваний:
11
Добавлен:
25.08.2019
Размер:
276.48 Кб
Скачать

Учет памяти с помощью связных списков

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

  1. Признак занятости (например, P-занят процессом, F-свободен).

  2. Адрес начала области.

  3. Размер области.

  4. Указатель на следующую запись.

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

Виртуальная память

Виртуальная память служит для мнимого увеличения размеров ОП.

Впервые она была реализована в 1959 г. на компьютере "Атлас", разработанном в Манчестерском университете.

ВП – механизм управления памятью. Заключается в использовании внешней памяти (например, HDD) для размещения данных. Необходимость использования ВП заключается в том, что объем адресного пространства процессов часто больше размера основной памяти. Этот процесс называется виртуализацией.

Рассмотрим системы с виртуализацией памяти.

Существует два вида таких систем:

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

  • виртуальная память (virtual memory) – системы, в которых образы процессов перемещаются между ОЗУ и диском частями. Части могут быть сегментами или страницами.

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

  1. при свопинге в принципе невозможно запустить процесс, адресное пространство которого превышает объем свободного ОЗУ. Т.е. большие процессы в таких системах в принципе невыполнимы.

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

Ключевой вопрос организации виртуальной памяти – это способ структуризации виртуального адресного пространства.

Существуют три способа организации систем виртуальная память.

  1. Страничная организация виртуальной памяти (paging). В этом случае перемещение данных между памятью и диском происходит страницами – небольшими частями фиксированного размера.

  2. Сегментная организация виртуальной памяти. Перемещение данных происходит сегментами – частями виртуального пространства произвольного размера, полученными с учетом смыслового значения данных.

  3. Сегментно-страничная виртуальная память. В этом случае происходит двухуровневое деление виртуального адресного пространства: сначала на сегменты, а сегменты делятся на страницы. Единицей перемещения является страница.

Например, в Windows NT все виртуальное адресное пространство разбито на страницы, и каждая страница может находиться в одном из трех состояний:

  1. Свободном.

  2. Зарезервированном.

  3. Фиксированном.

Свободная страница – это страница, ничем не занятая и не используемая (в настоящий момент). Когда процесс запускается, все его страницы – свободные.

Как только на страницу будут отображены программа или данные, она становится фиксированной. Фиксированная страница может находиться или не находиться в оперативной памяти. Если страница находится в ОЗУ, обращение к ней не вызывает страничного прерывания; если не находится – при обращении к ней наступает прерывание.

Зарезервированная страница – это страница, защищенная от записи (от отображения), но не занятая в настоящий момент данными или программой. Например, когда создается новый поток, ОС выделяет 1 Мбайт под стек потока и резервирует его, а реально фиксируется только одна страница из этого пространства. Это делается для того, чтобы стек мог вырасти до 1 Мбайт без опасения, что его пространство будет занято другим потоком.

Фиксированные страницы, которые располагаются на диске, называются теневыми. Они организованы в один или несколько файлов подкачки. В Windows 2000 может быть организовано до 16 файлов подкачки. У каждого файла подкачки есть начальный и максимальный размер. С помощью панели управления можно изменить размер файла подкачки

Следует отметить, что в Windows NT нет сегментации виртуальной памяти, только страничная организация.