В. Столлингс - Операционные системы (1114679), страница 81
Текст из файла (страница 81)
Зтот алгоритм требует наличия у каждой страницы в основной памяти бита использования, устанавливаемого равным 1 при обращении к странице. Когда возникает прерывание обращения к странице, операционная система замечает виртуальное время с момента последней генерации прерывания из-за отсутствия страницы данным процессом; это осуществляется посредством счетчика обращений к страницам.
Если прошедшее с момента последнего прерывания время меньше определенного порога Р. то страница добавляется к резидентному множеству процесса, В противном случае все страницы с битом использования, равным О, сбрасываются, и, соответственно, уменьшается резйдентное множество процесса. В этот же момент битам использования всех оставшихся страниц присваивается нулевое значение, Стратегия может быть усовершенствована с помощью двух пороговых значений — верхнего поРога, используемого для роста резидентного множества, и нижнего, по достижении которого резидентное множество уменьшается. Промежутки времени между прерываниями обращения к странице соответстзутот частоте генерации прерываний.
Хотя лучшим методом представляется и меднение средней частоты генерации прерываний обращения к странице, измеРентте промежутков времени между ними представляет собой вполне разумный комп оми Ромисс, позволяющий принимать решения о размере резидентного множества. П и При использовании такой стратегии совместно с буферизацией страниц должны получаться неплохие результаты.
Тем не ем не менее этот подход имеет один существенный недостаток, заключающийся в его в его неработоспособности в момент перехода процесса из одного локализованного со т го состояния в другое. В этот момент частота генерации прерываний обРащенття к ст а я к страницам резко возрастает, что, в соответствии с рассмотренным алгоритмом, выз м. вызывает резкое увеличение размера резидентного множества и хтожет и нве пинг привести к таким нежелательным результатам, как деактивация и сво"з" других процессов.
Обойти ь йтись небольшими накладными расходами в переходные периоды пр звана ст стратегия рабочего множества с переменным пробным интервалом (тгагтаце-' -1п1егха! затпр1ес( тчогЫпд зе$ — ЧЯ%'Я) (гЕВВ83). Эта стратегия вычис- Часть 3. Т : лава 8. Виртуальная память размер ра очего б множества процесса по пробным образцам на осн "- уго виртуального Вре н о времени. В начале пробного интервала бит испол резидентных етр аниц процесса сбрасывается; н конце интервала бит д ия установлен тол лько у тех страниц, к которым н этом интервале бн~" %.; ,ние, Эти страницы ос ы остаюте..я в резидентном множестве н течение еле ятернала вРемени; ост и остальные страницы сбрасываются.
Таким образом"„' . резидентного мн ножества может уменьшатьея только в конце рвала. течен , Б чение интервала страницы, вызвавшие ошибку обращен ' яются к резидентному тному множеству (таким образом, н это время размер ного множества не убывает). Стратегия 1~Я%'Я руководствуется тремя параметрами: - минимальная продолжительность пробного интервала; максимальная продолжительность пробного интервала; допустимое количество прерываний обращения к странице, которые гут произойти между пробными интервалами.
Стратегия УЯЮЯ работает следующим образом. Если виртуальный промежуток времени с момента последнего проб тервала достиг, про е Х. ц сс приостанавливается и выполняется скани битов использования. Если до истечения виртуального времени Ь произошло Ю прерына щения„то: а) если виртуальное нре время с момента последнего пробного интервала' ше М, мы ожидаем, пока не пройдет этот промежуток времени,". приступить к сканированию битов использования; б) если же зто время не меньше М, процесс приостанавливается и н, ется сканирование битов использования, Значения параметров выбираются такими, чтоб чтобы обычно процесс снФ.
~я запускался по достижении Я-го прерывания р щ об а ения к стран ейные дна параметра служат граничными значен . д ч ннями ля исключ ~вий. С помощью стратегии уяЖя делается попытка снизить пиковые", яя к памяти, вызываемые переходами процесса от од от о ной локализации путем сброса неиспользуемых страниц при учащен ении генерации прер ',, ~щения. Опыт использования этои стратегии в о р ц в опе ационной систе нфреймов ОСОЯ 8 показывает, что стратегия ЧяЪуя столь же проста В-: яи, как и стратегия РРЕ, но при этом более эффектна тинна ',Р1ЕЕ891. з ратегин очистки Стратегия очистки является противоположностью Р стью ст атегии выбор,' измененная страница д ача состоит в определении момента, когда измен 'ь записана но вторичную память. Дна основных ых ее метода — очисти бованию н предварительная очистка.
При очистке р стке по т ебованию с,: ог а когда она выбИ.,. записывается во вторичную память только то д, - д мо ифициро замещения. Предварительная очистка записывает м д ф аницы до того, как потребуются занимаемые ими кадры, так Ч. аницы могут записываться пакетами. Часть 3. Имеется опасность прямолинейного следования любой из стратегий. При днарительной очистке записанная страница остается в основной памяти до пор, пока ее не удалит оттуда алгоритм замещения.
Предварительная очистпозноляет записывать страницы пакетами, но не имеет смысла записывать тни или тысячи страниц только для того, чтобы убедиться, что до замещения ни вновь успели модифицироваться. Пропускная способность вторичной памяти грэнпчена и не должна заеорятьея излишними операциями очистки.
С другой стороны, при очистке по требованию запись модифицированной тряпицы сопровождается чтением новой страницы, так что несмотря на миниизацпю записей страниц прерывание обращения может вызывать пересылку втх страниц между основной и вторичной памятью и тем самым снижать эффективность использования процессора. Улучшенный подход включает буферизацию страниц, что позволяет принять следующую стратегию: очищать только замещаемые страницы, но при этом Разделить операции очистки и замещения, При использовании буферизации страниц замещаемые страницы могут находиться и двух списках: модифицированных и немоднфициронанных страниц. Страницы из списка модифицированных могут периодически записываться пакетами и переноситься в список немодифицированных. Страница из списка немодифицированных страниц может либо быть удалена из него при обращении к ней, либо потеряна при загрузке в ее кадр новой страницы. Управление загрузкои Управление загрузкой' — это определение количества процессов, которые будут резидентными в основной памяти.
Стратегия управления загрузкой представляет собой критическую часть эффективно работающей системы управления памятью. Если одновременно резидентны толькц несколько процессов, то очень часто будет возникать ситуация, когда все процессы будут оказываться заблокированными, и системе придется тратить излишнее время на осуществление свопинга. С другой стороны, если разместить н основной памяти очень много процессов, то в среднем размер резидентного множества каждого процесса окажется довольно малым, что приведет к слишком частой генерации ошибки обращения и снижению пропускной способности системы. Уровень многозадачности Снижение пропускной способности проиллюстрировано на рис. 8.20.
При возрастании уровня многозадачности от малых значений эффективность использования пое Р цеееора возрастает в связи с уменьшением вероятности одновременного блокирования ания всех процессов. Однако через некоторое время достигается состояние, когда средний размер резидентного множества становится неадекватным. Это приводит к существенному росту количества прерываний обращений к странице и, как следствие. : к снижению эффективности использовании процессора. Имеется ряд вариантов решения этой проблемы.
Алгоритмы рабочего множества тна или частоты генерации прерываний неявным образом включают управление ие загрузкой. Выполняться могут только те процессы, резидентные множества ко которых достаточно велики. Обеспечивая для каждого активного процесса треб Р буемый размер резидентного множества, используемая стратегия автоматически и (н динамически) определяет количество активных программ. . лава 3. Виртуальная память Степень многозадачности Рис. 8.20. Влияние иооаня многозадачности на стс лень иснользооания щюцессора "е Еще один подход, известный под названием критерий 1, = Я, был и '" ~ожен Деннингом (Оепп)пй) и его коллегами 1ЮЕМХ80Ь1.
При этом под 'ровень многозадачности настраивается таким образом, чтобы среднее в ~ежду прерываниями равнялось среднему времени, требующемуся для ~отки прерывания. В результате исследований сделан вывод, что этот 1ень многозадачности обеспечивает максимальную производительность 1ессора. Использование стратегии с аналогичным эффектом, предложенк, 1ЕКО761 и известной как критерий Б0%, способствует поддержке степ, тспользования устройства хранения страниц на уровне 60%.
Исследов юказывают, что прн этом также достигается максимальная степень испювания процессора. Еще один подход состоит в адаптации часового алгоритма замещв. ~писанного ранее (см. Рис. 8.16). В 1САВВ841 описана методика с испол'„' танием глобальной области видимости, которая включает отслеживание -, "оты сканирования циклического буфера кадров. Если частота меньше топределенного нижнего порога, это указывает на то, что возникла одна :ледующих ситуаций. 1. ГенеРируется малое количество прерываний из-за отсутствия страницы пРиводит к малому количеству перемещений указателя. 2.
Среднее количество сканируемых для каждого запроса кадров мало; это зорит о том, что в системе много резидентных страниц, к которым не обращений и которые могут быть немедленно замещены. В обоих случаях уровень многозадачности может быть благополучно чен- С другой стороны, если частота сканирования превышает верхний и ето указывает либо на большое количество прерываний из-за отсутствия с цы, либо на сложность обнаружения страниц для замещения, что свидетел ет о слишком высоком уровне многозадачности.
Приостановка процессов При снижении степени многозадачности один или несколько резидентных в настоящее время процессов должны быть приостановлены (выгружены во вто Винную память). В 1САККЯ41 перечислены шесть возможностей. Процесс с наименыпим приоритетом. Так реализована стратегия плани- Ровщика, не имеющая отношения к вопросам производительности. Процесс, вызывакицнй прерывания. Данный выбор основан на большой ве Роятности того, что у процесса, генерирующего прерывания из-за отсутствия страницы, рабочее множество не резидентно, и суммарная производительность системы не пострадает при приостановке данного процесса, Кроме того, при таком выборе блокируется процесс, который и так практически все время находится в заблокированном состоянии, так что его приостановка приводит к снижению накладных расходов, связанных с замещением страниц и операциями ввода-вывода.