Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspect.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
112 Кб
Скачать
☆

Подкачка.

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

1)своппинг или обычная подкачка. Каждый процесс полностью переносиццо в память или на диск.

2) Виртуальная память - позволяет процессам работать даже если в памяти они находятся частично.

#

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

#

В результате подкачки появляется множество маленьких неиспользуемых фрагментов. Их можно объединить, передвинув все процессы в сторону младших адресов. Такая операция называется уплотнением памяти. Недостаток: занимает много процесорного времени.

#

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

#

Управление памятью с помощью видовых массивов.

Если память определяется динамически этим процессом должна выполнять О.С. При работе с видовым массивом, память разделяется на единичные блоки. В битовой карте каждому блоку соответствует 1 бит. 0 - свободен, 1 - занят.

#

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

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

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

#

В данном случае список отсортирован по адресам. Приемущества: когда процесс завершается или скачивается на диск то изменение списка представляет собой несложную операцию, преводящую к 4м комбинациям.

#

для комбинации 3 и 4 удобнее было бы иметь список с 2мя связями.

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

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

3) самый подходящий участок - выполняется поиск по всему списку и выбирается наименьший по размеру участок. Этот алгоритм медленнее первого подходящего и нерационально использует память, поскольку заполняет его очень маленькими бесполезными областями, т.е. фрагментирует память. Был разработан самый неподходящий участок, он выбирает самый большой свободный участок. После рыхления остается область достаточно большого размера но результат хуже чем у первого подходящего. Все 4 алг можно ускорить если поддержывать отдельные списки для процессов и свободных областей. Скорость предоставления памяти увеличиться но скорость освобождения замедлится. Если список свободных фрагментов отсортировать по размеру и поиск начинать от самого маленького то ускорится аглоритм - самый подходящий. При поддержке двух списков вместо создания для свободных участков можно использовать сами свободные области.

5) Быстрый подходящий - поддерживаются отдельные списки для некоторых наиболее часто запрашиваемых размеров.

#