Рабочее множество


Рабочее множество (англ. working set) — понятие в информатике, определяющее количество памяти, требующееся процессу в заданный интервал времени.

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

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

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

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

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