Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы построения операционных систем.doc
Скачиваний:
50
Добавлен:
07.11.2018
Размер:
5.07 Mб
Скачать

3.2.4. Своппинг

Рассматривая внешнюю память как расширение оперативной, можно повысить эффективность использования последней как в случае простого распределения, так и в случае распределения с несколькими разделами. Тогда при перемещении процесса из одного раздела в другой его можно не копировать непосредственно, а записывать сначала во внешнюю память. Такое действие называется откачкой, а соответствующая загрузка процесса из внешней памяти в оперативную называется подкачкой, которая обычно требует специальных аппаратных средств настройки. Совокупность действия по откачке и подкачке составляет своппинг (swopping - перекачку), при этом можно считать, что либо один процесс меняет разделы, либо один раздел используется несколькими процессами. Для организации своппинга необходима не только внешняя память для хранения неактивных процессов, но также требуется планировщик памяти, который следит за тем, где какой процесс находится.

Своппинг полезен тем, что он позволяет заново распределять память для процесса, не запуская его с самого начала. Такое повторное распределение ранее выделенных и еще находящихся в использовании ресурсов называется перераспределением. Потребность в перераспределении памяти может возникать по нескольким причинам. Главной из них является то, что появляется возможность выполнять больше малоактивных процессов, чем может одновременно разместиться в памяти. Такая ситуация возникает в том случае, ког­да пользователи, сидящие за терминалами, тратят много времени на обдумывание и формулирование запроса, для выполнения которого требуются миллисекунды. Второй причиной является то, что перераспределение позволяет освободить память, занимаемую процессом, который требует вмешательства оператора (например, установки магнитной ленты или диска). Третьей причиной является то, что оно позволяет более эффективно использовать другие ресурсы, отличные от оперативной памяти. Например, если в памяти ЭВМ присутствует несколько чисто вычислительных процессов, и система ввода-вывода оказалась незагруженной, то появление процесса с большим объемом операций ввода-вывода может служить оправданием для откачки какого-либо вычислительного процесса и освобождения места для вновь поступившего, поскольку при этом увеличивается производительность системы в целом. Еще одной причиной, требующей своппинга, является освобождение памяти для процесса с более высоким приоритетом. При своппинге могут возникнуть те же самые проблемы, что и при перемещении разделов, т. е. установка значений адресов в регистрах, незавершенные операции ввода-вывода, незакончившиеся подпрограммы, вспомогательные задачи и т. п.

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

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