Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС_ответы.doc
Скачиваний:
36
Добавлен:
27.10.2018
Размер:
21.59 Mб
Скачать

4. Сегментация памяти.

5. Свопинг памяти.

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

6. Организация виртуальной памяти.

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

24. Динамічний розподіл пам’яті. Організація віртуальної пам’яті.

Динамическое распределение памяти

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

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

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

В данном случае используется 2 механизма: сохранение и удаление. Механизм сохранения позволяет освободить части памяти за счет выгрузки сегментов на диск и их последующей загрузки с диска при необходимости. Механизм удаления позволяет удалять из памяти те сегменты, которые не модифицировались(например, сегмент кода). Такие сегменты при необходимости могут быть обратно загружены с диска.

Методы распределения памяти с использованием дискового пространства

Понятие виртуальной памяти

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

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

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

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

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

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

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