Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты_ОС_full.doc
Скачиваний:
185
Добавлен:
10.05.2015
Размер:
525.82 Кб
Скачать

33. Память, как ресурс операционной системы

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

Но, при всей желательности такого исхода, так не получается. Не получается по ряду причин (которые мы рассмотрим ниже), поэтому скрыть операционной системе сам факт того, что она поддерживает виртуальную память – невозможно. И соответствующий интерфейс управления самым нижним слоем системной абстракции, называемой "виртуальное адресное пространство процесса" система вынуждена программе пользователя обеспечивать, а программа пользователя совершенно законно может им воспользоваться. Над этим слоем абстракций можно надстроить и другие – например, "кучу динамической памяти", поэтому всякая программа и не обязана непременно управлять "своей виртуальной памятью", но может положиться на другие "абстракции памяти", тоже реализованные самой операционной системой. Тем не менее, все они начинаются с абстракции данной – виртуального адресного пространства процесса, ниже которой доступных программе пользователя абстракций нет. Рассмотрим её.

Традиционно "адресное пространство процесса" определяется как "диапазон доступных процессу адресов памяти". Не утверждается, что все эти адреса доступны безусловно. Возможно, что для корректного доступа к каким-то из них требуется некая специальная процедура (выделение памяти). Не утверждается также и того, что обращение по любому из них обязательно должно быть успешно – возможно, попытка обратиться по адресу Х приведёт к немедленному прерыванию программы (примером такого "доступного и некорректного" адреса является 0x00000000 ), но важно, что программа потенциально может использовать этот диапазон, т.е. породить адрес. Операционная же система предоставляет программе пользователя некий набор элементов в виде которых это "пространство" процессу видимо и им используемо.

34. Аппаратная поддержка виртуальной памяти

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

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

35. Стратегии управления страничной памятью: Стратегия выборки определяет в какой момент следует переписать страницу из вторичной памяти в первичную. Существуют 2 основных варианта выборки: по запросу и с упреждением.

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

2) Алгоритм выборки с упреждением осуществляет опережающее чтение, т.е кроме страницы, вызвавшей исключительную ситуацию в памяти, также загружается несколько страниц окружающих её. Такой алгоритм призван уменьшить накладные расходы, связанные с большим количеством исключительных ситуаций, возникших при работе со значительными объемами данных или кода. Кроме того, оптимизируется работа с диском.

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

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