Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСС.docx
Скачиваний:
8
Добавлен:
01.09.2019
Размер:
79.62 Кб
Скачать

Вопрос 24. Разделение памяти разделами переменной величины

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

Задачами ОС при реализации метода управления памятью является следующие:

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

  2. При поступлении нового процесса: описание процесса, выбор раздела размер которого достаточен для размещения процесса.

  3. Загрузка процесса в выделенный раздел и корректировка таблиц свободных и занятых областей.

  4. После завершения процесса, корректировка пустых и занятых областей.

Выбор раздела для вновь поступившего процесса мет осуществляться по разным правилам, например: «первый попавшийся раздел достаточного размера»

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

В дополнение к функциям, которые выполняет ОС при распределении памяти переменными разделами, в данном случае она должна еще время от времени копировать содержимое разделов из одного места памяти в другое, корректируя таблицы свободных и занятых областей. Эта процедура называется «сжатием». Сжатие может выполняться либо при каждом завершении процесса, либо только тогда, когда для вновь поступившего процесса нет свободного раздела достаточного размера. В первом случае требуется меньше вычислительной работы при корректировке таблиц, а во втором – реже выполняется процедура сжатия. Так как процессы перемещаются по оперативной памяти в ходе своего выполнения, то преобразование адресов из виртуальной формы в физическую должно выполняться динамическим способом. Хотя процедура сжатия и приводит к более эффективному использованию памяти, она может потребовать значительного времени, что часто является тем недостатком, который преобладает над преимуществами данного метода.

Вопрос 25. Виртуальная память. Задачи

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

Таким образом, виртуальная память – это совокупность программно-аппаратных средств, позволяющих пользователям писать программы, которые для своей реализации требуют такие объемы памяти, которые превосходят реально существующие объемы оперативной памяти ВМ. Для этого виртуальная память решает следующие задачи:

1) размещает процессы в запоминающих устройствах разного типа, например, часть – в оперативной памяти, а часть – на диске;

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

3) преобразует виртуальные адреса в физические.

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

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