Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Unix лекции / lection7.ppt
Скачиваний:
12
Добавлен:
20.04.2015
Размер:
339.97 Кб
Скачать

Выгрузка с расширением (brk или естественное увеличение стека)

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

Загрузка (подкачка) процессов

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

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

работу, процесс подкачки приостанавливается; ядро периодически возобновляет его выполнение

Таймер возобновляет работу процесса подкачки

Загрузка (подкачка) процессов

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

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

Выбор выгружаемого процесса

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

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

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

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

Решение о выгрузке процесса принимается ядром на основании его приоритета и продолжительности его пребывания в памяти!

ПОДКАЧКА ПО ЗАПРОСУ

В системах с подкачкой страниц отсутствуют ограничения на размер процесса, связанные с объемом доступной физической памяти. Например, в машинах с объемом физической памяти 1 и 2 Мбайта могут исполняться процессы размером 4 или 5 Мбайт.

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

принцип "локальности" Деннинга - сформулировано понятие рабочего множества процесса как совокупности страниц, использованных процессом в последних n ссылках на адресное пространство памяти; число n называется окном рабочего множества

Структуры данных

Для поддержки функций управления памятью на машинном (низком) уровне и для реализации механизма замещения страниц ядро использует 4 основные струк туры данных:

записи таблицы страниц

дескрипторы дисковых блоков

таблицу содержимого страничных блоков (page frame data table - pfdata)

таблицу использования области подкачки

Запись таблицы страниц

Записи таблицы страниц

Установка бита доступности свидетельствует о правильности содержимого страницы памяти

Бит упоминания устанавливается в том случае, если процесс делает ссылку на страницу

Бит модификации - в том случае, если процесс скорректировал содержимое страницы.

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

"возраст" страницы говорит о продолжительности ее пребывания в составе рабочего множества процесса.

Записи на дисковом блоке

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

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

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

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

Если страница содержится в исполняемом файле, в дескрипторе дискового блока располагается номер логического блока в файле с содержимым страницы; ядро может быстро преобразовать этот номер в адрес на диске.

Соседние файлы в папке Unix лекции