Рабочий набор


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

Питер Деннинг (1968) определяет «рабочий набор информации о процессе во времени как совокупность информации, на которую ссылается процесс в течение временного интервала процесса ». [1] Обычно рассматриваемые единицы информации считаются страницами памяти . Предполагается, что это приблизительный набор страниц, к которым процесс будет обращаться в будущем (скажем, в течение следующих единиц времени), и, более конкретно, предполагается, что это указание на то, какие страницы следует хранить в основной памяти, чтобы позволить наибольший прогресс в выполнении этого процесса.

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

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

Часто на сильно загруженном компьютере стоит в очереди так много процессов, что, если бы всем процессам было разрешено работать в течение одного временного отрезка планирования , они ссылались бы на большее количество страниц, чем имеется ОЗУ, что привело бы к « зависанию » компьютера.

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