Подтвердить что ты не робот

Что такое рабочий набор?

Я запутался с концепцией рабочего набора при чтении кода управления памятью ядра ядра Windows.

4b9b3361

Ответ 1

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

Это обсуждается, потому что CPU автоматически сохранит доступную память в кеше, рядом с процессором. Рабочий набор - отличный способ описать память, которую вы хотите сохранить. Если он достаточно мал, он может все вписываться в кеш, и ваш алгоритм будет работать очень быстро. На уровне ОС ядро ​​должно указать CPU, где найти физическую память, используемую вашим приложением (разрешение виртуальных адресов), каждый раз, когда вы обращаетесь к новой странице (обычно размером 4k), также вы хотите избежать этого удара насколько это возможно.

Смотрите Что каждый программист должен знать о памяти - PDF для графиков производительности алгоритмов и размера рабочего набора (около страницы 23) и большого количества другая интересная информация.

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

Ответ 3

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

Примером может быть, если у вас есть две Firefox Windows, сведенная к минимуму, которую вы не просматривали в течение нескольких часов, и открытую, которую вы просматриваете прямо сейчас. Память, используемая для хранения данных, связанных с открытым окном, будет находиться в рабочем наборе; память, используемая для хранения данных, связанных с незакрытым окном и которые вы не просматривали в течение нескольких часов, не находится в рабочем наборе.

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

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

Ответ 4

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

Ответ 5

Рабочий набор - это набор страниц, физически находящихся в памяти в любой момент времени. Хотя рабочий набор, если он указан и отображается в килобайтах, самый маленький рабочий набор, который у вас есть, - 4k (8K на Itanium), так как размер страницы в Windows.

Чтобы увидеть рабочий набор процесса, посмотрите столбец "Использование памяти" на вкладке "Процессы" диспетчера задач.

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

Ответ 6

Термин "рабочий набор" относится к алгоритму замены страницы рабочего набора (алгоритм очень хорошо объяснен в этой статье Эндрю Таненбаума).

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

Ответ 7

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