Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОС.docx
Скачиваний:
44
Добавлен:
22.09.2019
Размер:
3.18 Mб
Скачать

30. Страничная логическая адресация. Виртуальная память. (Лекция 7)

Виртуальная память (Virtual memory) – механизм, позволяющий процессам использовать собственное адресное пространство требуемого объема. Черты:

  • все обращения к памяти в пределах процесса выполняются с помощью логических адресов.

  • каждому процессу и только ему доступно все множество логических адресов (виртуальное адресное пространство);

  • в физической памяти находится только часть виртуальной памяти процесса (резидентное множество).

  • ОС может выгружать на диск неиспользуемую память, а затем вернуть ее при обращении к ней (подкачка, swapping).

  • ОС выполняет переключение контекста.

  • аппаратное обеспечение обеспечивает связывание - преобразование (translation) логического адреса в физический.

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

При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти, или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объема ОЗУ.

Применение механизма виртуальной памяти позволяет:

  • упростить адресацию памяти клиентским программным обеспечением;

  • рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);

  • изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).

Далее см. вопрос 28.

Принцип локальности обращений – процесс обращается только к сравнительно небольшой части страниц.

Сведения о недавних отображениях «виртуальная память-физическая память» хранятся в аппаратном буфере быстрого преобразования адреса (TLBTranslation Lookaside Buffer). TLB – ассоциативная память, позволяющая не использовать таблицы страниц. Чаще всего используется страничная адресация, система таблиц становится многомерной

31. Управление памятью: Стратегии виртуальной памяти. Замещение страниц. (Лекция 7)

Стратегии – способы управления резидентными множествами.

Стратегия выборки – определение момента передачи страницы в ОЗУ: в момент обращения к ней (on demand) или предварительно (prepaging). Стратегия выборки (fetch policy) - в какой момент следует переписать страницу из вторичной памяти в первичную. Выборка бывает по запросу и с упреждением. Алгоритм выборки вступает в действие в тот момент, когда процесс обращается к не присутствующей странице, содержимое которой в данный момент находится на диске (в своп файле или отображенном файле), и потому является ключевым алгоритмом свопинга. Он обычно заключается в загрузке страницы с диска в свободную физическую страницу и отображении этой физической страницы в то место, куда было произведено обращение, вызвавшее исключительную ситуацию.

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

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

Управление резидентным множеством – определение размера резидентного множества.

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

2 - Алгоритм LRU (Least Recently Userd - страница, не использующаяся дольше всего) – ведется подсчет времени с момента использования. Выталкивание дольше всего не использовавшейся страницы. Ключевое отличие между FIFO и оптимальным алгоритмом в том, что один смотрит назад, а другой вперед. Если использовать прошлое, для аппроксимации будущего, имеет смысл замещать страницу, которая не использовалась в течение долгого времени. Необходимо иметь связанный список всех страниц в памяти, в начале которого будут часто используемые страницы. Причем он должен обновляться при каждой ссылке.

3- Алгоритм FIFO («первым вошел, первым вышел») - ведется подсчет времени с момента выборки в ОЗУ. Каждой странице присваивается временная метка. Реализуется это просто созданием очереди страниц, в конец которой страницы попадают, когда загружаются в физическую память, а из начала берутся, когда требуется освободить память. Для замещения выбирается старейшая страница. 4 - Алгоритм «часы». Чтобы избежать перемещения страниц по списку, можно использовать указатель, который перемещается по списку.