...

Как работает виртуальная память компьютера

Виртуальная память

Аннотация: В лекции рассмотрены следующие вопросы: концепция виртуальной памяти; страничная организация виртуальной памяти; обработка отсутствия страницы в памяти (page fault); обработка страниц по требованию; совместное использование страниц процессами; файлы, отображаемые в память (memory-mapped files); стратегии замещения страниц; алгоритмы FIFO и LRU; алгоритм “второго шанса”; алгоритмы со счетчиком; выделение фреймов – фиксированное и с приоритетами; thrashing; страничная организация в Windows NT и Solaris.

Презентацию к данной лекции Вы можете скачать здесь.

Введение

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

  • Мотивировка концепции виртуальной памяти;
  • Потребность в страничной организации ;
  • Создание процесса и его пространства виртуальной памяти;
  • Замена страницы;
  • Размещение фреймов;
  • Thrashing ;
  • Примеры организации виртуальной памяти в различных ОС.

Мотивировка концепции виртуальной памяти

Концепция виртуальной памяти основана на идеях отделения логической памяти пользователя от физической памяти и расширения логической памяти путем хранения ее образа на диске.

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

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

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

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

  • страничной организации по требованию (paging on demand);
  • сегментной организации по требованию (segmentation on demand).

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

Принцип управления виртуальной памятью иллюстрируется рис. 18.1.

Виртуальная память и физическая память.

увеличить изображение
Рис. 18.1. Виртуальная память и физическая память.

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

Страничная организация по требованию

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

Преимущества данного подхода:

  • Меньший объем ввода-вывода: В память подкачивается только минимально необходимый объем данных (например, одна страница большого массива, а не весь многостраничный массив);
  • Меньший объем памяти: При данном способе расходуется минимально необходимый объем физической памяти;
  • Более быстрая реакция системы: Поскольку объем пересылаемых данных меньше, система в среднем быстрее реагирует на каждый запрос к памяти;
  • Система может обслуживать большее число пользователей: Ввиду экономии физической памяти и времени обращения, система в состоянии при данном подходе обслуживать большее число пользовательских процессов .

Основные принципы страничной организации по требованию:

  1. Если страница требуется программе, на нее имеется ссылка из программы.
  2. Если ссылка на страницу неверна (например, страницы с данным номером не существует), происходит прерывание.
  3. Если требуемая страница отсутствует в памяти, то она подкачивается в память. Механизм подкачки реализуется через прерывание (page fault – отказ страницы).

рис. 18.2 иллюстрирует размещение виртуальной памяти на диске и ее откачку и подкачку.

Преобразование страничной памяти в непрерывное дисковое пространство.

Рис. 18.2. Преобразование страничной памяти в непрерывное дисковое пространство.

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

С каждым элементом таблицы страниц связывается бит “valid/invalid”,однако, в отличие от организации логической памяти, он играет несколько иную роль – он указывает на присутствие или отсутствие страницы в основной памяти. Значение бита равно 1, если страница в памяти, и 0, если страница отсутствует в памяти.

Первоначально для всех элементов таблицы страниц бит valid / invalid полагается равным 0.

Если в процессе трансляции адреса бит ” valid / invalid ” в таблице страниц оказыется равным 0, то происходит прерывание по отсутствию страницы в памяти (page fault).

На рис. 18.3 приведен пример таблицы страниц , в которой не все страницы присутствуют в основной памяти.

Пример таблицы страниц, в которой не все страницы в памяти.

Рис. 18.3. Пример таблицы страниц, в которой не все страницы в памяти.

На схеме логическия память процесса состоит из 6 страниц с номерами от 0 до 5. Однако только страницы 0, 2, 5 размещены в основной памяти ( бит valid / invalid имеет значение v = 1). Страницы 1, 3, 4 в основной памяти отсутствуют ( бит valid / invalid равен i = 0).

28) Виртуальная память в ОС

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

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

Из этого руководства по операционной системе вы узнаете:

  • Что такое виртуальная память?
  • Как работает виртуальная память?
  • Что такое пейджинг по требованию?
  • Типы методов замены страниц
  • Замена страницы FIFO
  • Оптимальный алгоритм
  • Замена страницы LRU
  • Преимущества виртуальной памяти
  • Недостатки виртуальной памяти

Зачем нужна виртуальная память?

Вот причины использования виртуальной памяти:

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

Как работает виртуальная память?

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

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

Давайте разберемся с управлением виртуальной памятью с помощью одного примера.

Например:

Давайте предположим, что ОС требуется 300 МБ памяти для хранения всех запущенных программ. Однако в настоящее время в оперативной памяти хранится только 50 МБ доступной физической памяти.

  • Затем ОС установит 250 МБ виртуальной памяти и будет использовать программу, называемую Virtual Memory Manager (VMM), для управления этими 250 МБ.
  • Таким образом, в этом случае VMM создаст на жестком диске файл размером 250 МБ для хранения дополнительной необходимой памяти.
  • Теперь ОС перейдет к адресной памяти, поскольку она считает 300 МБ реальной памяти, хранящейся в ОЗУ, даже если доступно только 50 МБ.
  • Работа VMM заключается в управлении 300 МБ памяти, даже если доступно только 50 МБ реальной памяти.

Что такое пейджинг по требованию?

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

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

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

Типы методов замены страниц

Вот несколько важных методов замены страниц

  • ФИФО
  • Оптимальный алгоритм
  • Замена страницы LRU

Замена страницы FIFO

FIFO («первым пришел – первым вышел») – это простой метод реализации. В этом методе память выбирает страницу для замены, которая долгое время находилась в виртуальном адресе памяти.

Особенности:

  • Всякий раз, когда загружается новая страница, страница, которая недавно появилась в памяти, удаляется. Таким образом, легко решить, какую страницу необходимо удалить, поскольку ее идентификационный номер всегда находится в стеке FIFO.
  • Самая старая страница в основной памяти – та, которая должна быть выбрана для замены первой.

Оптимальный алгоритм

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

Особенности:

  • Оптимальный алгоритм приводит к наименьшему количеству ошибок страниц. Этот алгоритм сложно реализовать.
  • Оптимальный метод алгоритма замены страниц имеет наименьшую частоту ошибок страниц среди всех алгоритмов. Этот алгоритм существует и который должен называться MIN или OPT.
  • Замените страницу, которую не хотите использовать в течение более длительного периода времени. Используется только время, когда страница должна быть использована.

Замена страницы LRU

Полной формой LRU является страница «Наименее недавно использованные». Этот метод помогает ОС найти страницу за короткий промежуток времени. Этот алгоритм должен быть реализован путем связывания счетчика с четной страницей.

Как это работает?

  • Страница, которая долгое время не использовалась в основной памяти, будет выбрана для замены.
  • Легко реализовать, вести список, заменять страницы, оглядываясь в прошлое.

Особенности:

  • Метод замены LRU имеет наибольшее количество. Этот счетчик также называется регистрами старения, которые указывают их возраст и количество ссылок на связанные страницы.
  • Страница, которая долгое время не использовалась в основной памяти, должна быть выбрана для замены.
  • Он также ведет список и заменяет страницы, оглядываясь назад во времени.

Частота отказов

Частота отказов – это частота, с которой отказывает разработанная система или компонент. Это выражается в сбоях за единицу времени. Обозначается греческой буквой λ (лямбда).

Преимущества виртуальной памяти

Вот преимущества / преимущества использования виртуальной памяти:

  • Виртуальная память помогает набирать скорость, когда для выполнения программы требуется только определенный сегмент программы.
  • Это очень полезно при реализации многопрограммной среды.
  • Это позволяет вам запускать больше приложений одновременно.
  • Это поможет вам встроить множество больших программ в небольшие.
  • Общие данные или код могут совместно использоваться памятью.
  • Процесс может стать даже больше, чем вся физическая память.
  • Данные / код следует читать с диска всякий раз, когда это необходимо.
  • Код может быть размещен в любом месте физической памяти, не требуя перемещения.
  • В основной памяти должно поддерживаться больше процессов, что увеличивает эффективное использование процессора.
  • Каждая страница хранится на диске до тех пор, пока она не потребуется, после чего она будет удалена.
  • Это позволяет одновременно запускать больше приложений.
  • Нет конкретного ограничения на степень мультипрограммирования.
  • Большие программы должны быть написаны, так как доступное виртуальное адресное пространство больше по сравнению с физической памятью.

Недостатки виртуальной памяти

Вот недостатки / недостатки использования виртуальной памяти:

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

Резюме:

  • Виртуальная память – это механизм хранения, который предлагает пользователю иллюзию наличия очень большой основной памяти.
  • Виртуальная память необходима, когда на вашем компьютере нет места в физической памяти.
  • Механизм подкачки по требованию очень похож на систему подкачки с подкачкой, где процессы, хранящиеся во вторичной памяти и страницах, загружаются только по требованию, а не заранее.
  • Важные методы замены страницы: 1) FIFO 2) Оптимальный алгоритм 3) Замена страницы LRU.
  • В методе FIFO (первым пришел-первым обслужен) память выбирает страницу для замены, которая долгое время находилась в виртуальном адресе памяти.
  • Оптимальный метод замены страницы выбирает эту страницу для замены, для которой время до следующей ссылки самое большое.
  • Метод LRU помогает ОС находить использование страницы за короткий промежуток времени.
  • Виртуальная память помогает набирать скорость, когда для выполнения программы требуется только определенный сегмент программы.
  • Приложения могут работать медленнее, если система использует виртуальную память.

39. Виртуальная память. Механизм реализации виртуальной памяти. Стратегия подкачки страниц. Программная поддержка сегментной модели памяти компьютера. Основы функционирования менеджера памяти.

1)Виртуальная память – это совокупность программно-аппаратных средств, позволяющих пользователям писать программы, размер которых превосходит имеющуюся оперативную память; для этого виртуальная память решает следующие задачи:

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

14.11.2019 167.94 Кб 1 Чертыков_Проектир_МАП.doc

01.08.2019 119.54 Кб 3 ЧЕТЫРЕХПОЛЮСНИКИ И ФИЛЬТРЫ кор.docx

27.11.2018 237.57 Кб 17 ЧМЭ3 тормоза новый.doc

01.12.2018 227.45 Кб 12 чс военного времени.docx

15.03.2016 198.63 Кб 105 Шпоры OS 12-23.docx

15.03.2016 89.19 Кб 98 Шпоры OS_34-44.docx

26.09.2019 96.57 Кб 0 шпоры по философии.docx

09.04.2015 322.56 Кб 19 ЭАиС.doc

15.03.2016 308.22 Кб 18 ЭАиС.doc

15.03.2016 148.48 Кб 3 ЭАиСЛ_программа 2011.doc

09.04.2015 12.99 Кб 13 ЭЖД 2 курс задания по практике.docx

Ограничение

Для продолжения скачивания необходимо пройти капчу:

При подготовке материала использовались источники:
https://intuit.ru/studies/courses/641/497/lecture/11300
https://coderlessons.com/tutorials/akademicheskii/osnovy-operatsionnykh-sistem/28-virtualnaia-pamiat-v-os
https://studfile.net/preview/5906751/page:4/