Программное обеспечение операционной системы


Особенности разработки части программного обеспечения операционной системы, управляющей памятью, зависят от ответа на три основныхвопроса.

1. Будет ли использоваться виртуальная память.

2. Будет ли использоваться сегментация, страничная адресация или обе ука­занные технологии.

3. Какие алгоритмы будут использованы для различных аспектов управления памятью.

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

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

Ответ на третий из поставленных в этом разделе вопросов связан с программным обеспечением операционной системы, и именно ему посвящен данный раздел. В табл. 8.3 перечислены основные рассматриваемые в этом разделе стратегии. В каждом случае ключевым вопросом становится производительность: требуется сократить количество прерываний из-за отсутствия страницы в памяти, поскольку их обработ­ка приводит к существенным накладным расходам, которые включают как минимум принятие решения о том, какие резидентные страницы должны быть замещены, и операции ввода-вывода по замене страниц в основной памяти. Кроме того, операци­онная система должна активизировать на время выполнения медленных операций ввода-вывода другой готовый к работе процесс. Ни одна из перечисленных в табл. 8.3 стратегий не является "наилучшей". Задача управления памятью чрезвы­чайно сложна. Кроме того, производительность каждого набора стратегий зависит от размера основной памяти, относительной скорости основной и вторичной памяти, размера и количества конкурирующих за ресурсы процессов и поведения отдельных программ. Последняя характеристика зависит от природы приложения, использо­ванных языка программирования и компилятора, стиля программиста, а для инте­рактивных программ — от динамичности пользователя. Так что читатель не должен ожидать окончательного ответа на поставленные вопросы. Для малых вычислитель­ных систем разработчик операционной системы должен попытаться выбрать такой набор стратегий, который представляется ему наиболее подходящим; в случае ис­пользования больших систем, в частности майнфреймов, операционная система должна быть оснащена инструментами для мониторинга и управления, которые по­зволят администратору настроить ее таким образом, чтобы получить наивысшую производительность для данных физических параметров и решаемых на ней задач.

 

Таблица 8.3. Стратегии операционной системы для виртуальной памяти

Стратегия выборки По требованию Предварительная выборка Стратегия размещения Стратегия замещения Основные алгоритмы Оптимальный Дольше всех неиспользовавшиеся Первым вошел – первым вышел Часовой Буферизация страниц   Управление резидентным множеством Размер резидентного множества Фиксированный Переменный Область видимости Глобальная Локальная   Стратегия очистки По требованию Предварительная очистка   Управление загрузкой Степень многозадачности

 

Стратегия выборки

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

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

Предварительная выборка может применяться либо при первом запуске процесса к страницам, тем или иным способом, указываемым программистом, либо каждый раз при каждом прерывании обращения к странице. Последний случай кажется более предпочтительным, поскольку он прозрачен для программиста. Тем не менее, выгодность использования предварительной выборки не доказана [МАЕК87].

Не следует путать предварительную выборку и свопинг.При выгрузке процесса из памяти и переводе его в приостановленное состояние из основной памяти удаляются все его резидентные страницы. При возобновлении выполнения процесса все его страницы, которые ранее находились в основной памяти, вновь возвращаются в нее.

 



Дата добавления: 2016-06-05; просмотров: 1535;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.