В. Столлингс - Операционные системы (1114679), страница 77
Текст из файла (страница 77)
Ответы на первые два вопроса тесно связаны с используемой апп формой. Так, ранние реализации 11Ы1Х не использовали виртуаль , поскольку процессоры, на которых работали эти операционные с )ддерживали ни сегментации, ни страничной организации, а без апп аблица 8.3. Стратегии операционной системы для виртуальной памяти третегия выборки По требованию Предварительная выборке Управление резидентным множеством Размер резидентного множестве Фиксированный Переменный Область видимости замещения с ретегия Размещения Глобальная Локальная Ст ретегия замещения г 8 ванм 8 комбинированной системе защита и совместное использование обычно реализоа уровне сегментов.
Эти вопросы будут рассматриваться в следующей главе. поддержки преобразонания адресов ни сегментация, ни страничная организация никакой практической ценности не представляют. Приведем два небольших замечания по поводу первых двух вопросов из и сдставленного списка. Во-первых, за исключением операционных систем типа ьгс пЮЯ для некоторых старых персональных компьютеров и специализирован- систем, все важные операционные системы используют виртуальную паять, Во-вторых, "чистая" сегментация становится очень редким явлением.
При омбинации сегментации и страничной организации основная масса вопросов ,правления памятью, с которыми сталкивается разработчик операционной сисемы, лежит в области страничной организации.4 Таким образом, мы сосредоточим свое внимание на вопросах, связанных со страничной организацией памяти. Ответ на третий из поставленных в этом разделе вопросов связан с программным обеспечением операционной системы, и именно ему посвящен данный раздел. В теол, 3,3 перечислены основные рассматриваемые в этом разделе стратегии. В каждом случае ключевым вопросом становится производительность: требуется сократить количество прерываний из-за отсутствия страницы в памяти, поскольку их обработка приводит к существенным накладным расходам, которые включают как минимум принятие решения о том, какие резидентные страницы должны быть замещены„и операции ввода-вывода по замене страниц в основной памяти.
Кроме того, операционная система должна активизировать на время ныполнения медленных операций ввода-вывода другой готовый к работе процесс. Ни одна из перечисленных в табл. 8.3 стратегий не является "наилучшей"'. Задача управления памятью чрезвычайно сложна. Кроме того, производительность каждого набора стратегий зависит от размера основной памяти, относительной скорости основной и вторичной памяти, размера и количества конкурирующих за ресурсы процессов и поведения отдельных программ. Последняя характеристика зависит от природы приложения, использованных языка программирования и компилятора, стиля программиста, а для интерактивных программ — от динамичности пользователя.
Так что читатель не должен ожидать окончательного ответа на поставленные вопросы. Для малых вычислительных систем разработчик операционной системы должен попытаться выбрать такой набор стратегий, который представляется ему наиболее подходящим; в случае использования больших 'систем, в частности мейнфреймов, операционная система Должна быть оснащена инструментами для мониторинга и управления, которые позволят администратору настроить ее таким образом, чтобы получить наивысшую производительность для данных физических параметров и решаемых на ней задач. ; ааа 8. Виртуальная память 413 Окончание глВ' аяыг алгоритмы атимальи~ гй ольпю всех неиснольаозавшиеся срвым вошел — первым вышел асоаой уферизаиия странна Стратегия очистки По требованию Предварительная очистка Управление загрузкой Степень многозадачности гегия размещения 'Ратегия размещения определяет, где именно в физической памяти агаться части процесса.
В случае "чистой" сегментации стратегия является весьма важным вопросом, решения которого в виде стр; ~ подходящего, очередного подходящего и других рассматривались 7 У' Ъправление памятью". Однако для систем, использующих только"'.:,, гегия Выборки гратегия выборки определяет, когда страница должна быть переданв-- . э память. Два основных варианта — по требованию и предвар выборке по требованию страница передается в основную память то згда выполняется обращение к ячейке памяти, расположенной н®=.: це.
Если все прочие элементы системы управления памятью работ" то должно произойти следующее. Когда процесс только запускав поток прерываний обращений к странице, но далее срабатывает пр"' ' ~зации, и все большее количество обращений выполняется к нед ~ным страницам, Соответственно, количество прерываний из-за о цы снижается до весьма низкого уровня. и случае предварительной выборки загружается не только страниц'.. ~я прерывание обращения. Предварительная выборка использует хв ' :и болыпинства устройств вторичной памяти, таких, как диски, у я время поиска и задержка, связанная с вращением диска.
Если стр са расположены во вторичной памяти последовательно, то горазда ."инной будет загрузка в основную память нескольких последова ц за один раз, чем загрузка этих же страниц по одной в течение нек иежутка времени. Естественно, эта стратегия не дает никакого вы ~ращения к дополнительно загруженным страницам не происходит. Редварительная выборка может применяться либо при первом запуске раницам, тем или иным способом указываемым программистом, либо ., т каждом прерывании обращения к странице. Последний случай к 'дпочтительным, поскольку он прозрачен для программиста. Тем не .ь использования предварительной выборки не доказана РзАЕК87). 4 а следует путать предварительную выборку и свопинг. При выгруз ~з памяти и переводе его в приостановленное состояние из основной, ляются все его резидентные страницы. При возобновлении выпо са все его страницы, которые ранее находились в основной памяти.
:цаются в нее, ~ичную ую организацию или страничную организацию в сочетании с сегментацией, стратег тегия размещения обычно не так важна, поскольку аппаратная трансляция ядре~~ са и аппаратное обращение к памяти одинаково результативны при любых четаниях страница — кадр. В так называемых многопроцессорных системах с неоднородным доступом к памяти яти (попипНогт гнешогу ассезз — ЯШМА) размещение является довольно цным вопросом, требующим всестороннего исследования. Обратиться к расправе деленной совместно используемой памяти может любой процессор, однако на время мя доступа к определенному Физическому адресу влияет расстояние между проне цессором и модулем памяти.
Таким образом, суммарная производительность и ~громной степени зависит от того„насколько близко к процессору размещены обрабатываемые им данные ~1.АКО92, ВО1 089, СОХ891. В системах с неоднородным ым доступом к памяти в соответствии со стратегией автоматического размещения страницы должны размещаться в модулях памяти, обеспечивающих наибольшую производительность., Стратегия замещения В большинстве публикаций, посвященных операционным системам, рассмотрение управления памятью включает в себя раздел, озаглавленный "Стратегия замещения"', в котором говорится о выборе страниц в основной памяти для замещения их загружаемыми из вторичной памяти страницами.
Эта тема достаточно сложна методологически, поскольку включает ряд взаимосвязанных вопросов. ° Какое количество кадров должно быть выделено каждому активному процессу. а Должно ли множество страниц, которые потенциально могут быть замещены загружаемыми страницами, ограничиваться одним процессом или в качестве кандидатов на замещение могут рассматриваться все кадры страниц основной памяти. Какие именно страницы из рассматриваемого множества следует выбрать для замещения.
Перные два воп1юса — из области управления резидентным множеством, о чем мы поговорим в следующем подразделе; термин же "стратегия замещения" мы будем использовать для обозначения третьего вопроса. Вопросы стратегии замещения представляют собой, пожалуй, наиболее полно изученный за последние 20 лет аспект управления памятью. Когда все кадры ~~нонной памяти заняты и нам требуется разместить новую страницу в процессе обработки прерывания из-за отсутствия страницы, стратегия замещения опредекакая из находящихся в настоящее время в основной памяти страниц "олжна быть выгружена, чтобы освободить кадр для загружаемой страницы. Все стратегии направлены на то, чтобы выгрузить страницу, обращений к которой в лижайшем будущем не последует. В соответствии с принципом локализации част асто наблюдается сильная корреляция между множеством страниц, к котоРым в и последнее время были обращения, и множеством страниц, к которым будут Ращения в ближайшее время.
Таким образом, большинство стратегий пытаются о ~пределять будущее поведение программы на основе ее прошлого иоведения. П и Р ~ Рассмотрении разных стратегий следует учитывать, что чем более совер- 'Часть 3. ,. лава 8. Виртуальная память енный и интеллектуальный алгоритм использует стратегия тем вып| ~кладные расходы при его реализации.
Блокировка кадров Перед рассмотрением различных алгоритмов следует упомянуть об раничении: некоторые кадры основной памяти могут быть заблокиро о ода' аокировка кадра означает, что страница, хранящаяся в данный момен о ент в ~дре, не может быть замещена. Большинство ядер операционных систем ттся в заблокированных кадрах, так же, как и основные управляющие ры. Кроме того, в заблокированных кадрах основной памяти могут огут р тьс буФера ввод .Ывода и дру ..
крит, е по о ошению ко о вреМ' ,ступа данные и код. Блокировка осуществляется путем установки соо '' -:4 ющего бита у каждого кадра. Этот бит может находиться как в табл а лице в, так и быть включенным в текущую таблицу страниц. Основные алгоритмы Независимо от стратегии управления резидентным множеством им меетсгэ' новных алгоритмов, используемых для выбора замещаемой страницы: ° оптимальный алгоритм „ алгоритм дольше всех неиспользовавшегося; ю алгоритм "первым вошел — первым вышел"; часовой алгоритм.
Оптимальная стратегия состоит в выборе для замещения той страница~" щение к которой будет через наибольший промежуток времени по сра всеми остальными страницами. Можно показать, что этот алгоритм при$йг' минимальному количеству прерываний из-за отсутствия страницы 1ВЕ; ~нятно, что реализовать такой алгоритм невозможно„ поскольку для это ае требуется знать все будущие события.