Working Set

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Рабочее множество — это концепция в информатике, которая определяет, сколько памяти требуется процессу в определенный интервал времени.

Определение[править | править вики-текст]

Питер Деннинг (1968) определят «рабочий набор информации W(t, \tau) процесса в момент времени t, как совокупность информации, на которую ссылается процесс в течение интервала времени (t - \tau, t)». Обычно за единицу информации берётся страница памяти. Такая аппроксимация наборов страниц предложена для того, чтобы процесс имел к ним доступ в будущем (скажем, в течение следующих единиц времени); более конкретно — это признак того, что страницу следует сохранить в основной памяти, чтобы этот процесс выполнялся быстрее.

Обоснование[править | править вики-текст]

Значение выбора какую страницу сохранить в основной памяти (в отличие от выгруженной в вспомогательную память) важно: если слишком много страниц процесса сохранить в основную память то меньшее количество процессов будет выполнено к определенному времени. Если слишком мало страниц процесса сохранить в основную память, то частота ошибок страниц будет сильно увеличиваться и число активных (не висящих) процессов будет стремиться к нулю.

Модель рабочего набора состоит в том, что процесс может быть в ОЗУ тогда и только тогда, когда все страницы, которые используются в настоящее время (часто аппроксимируются наиболее часто используемые страницы) могут быть в ОЗУ. Это модель «всё или ничего». Смысл в том, что если страница увеличивается и нет свободного места в ОЗУ, процесс выгружает ее из памяти, освобождая память для других процессов.

Часто сильно загруженные компьютеры имеют столько процессов в очереди, что если позволить им запуститься в одно и тоже запланированное время, они будут ссылаться на количество памяти большее чем есть в ОЗУ, вследствие чего компьютер зависнет. В результате, выгружая некоторые процессы из памяти – даже те процессы которые временно удалены из памяти- работа завершается гораздо раньше, чем если бы компьютер попытался запустить все процессы одновременно. Работа также завершается гораздо раньше чем если бы компьютер запускал один процесс до полного завершения, так как это дает возможность другим процессам выполняться в течении того времени когда первый ждет жесткий диск или другие глобальные ресурсы. Другими словами, стратегия рабочего множества предотвращает зависание компьютера, сохраняя при этом степень мультипрограммирования как можно выше. Таким образом, оптимизируя использование CPU и пропускную способность.

Реализация[править | править вики-текст]

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

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

Рабочее множество — это не алгоритм замены страниц, но алгоритм замены страниц может быть разработан только так, чтобы не удалить страницы из рабочего множества конкретного процесса. Один из примеров — модификация версии алгоритма часов называемая WSClock.

См. Также[править | править вики-текст]

Ссылки[править | править вики-текст]