Виртуальная память в ОС: что такое, пейджинг по требованию, преимущества
Что такое виртуальная память?
Виртуальная память — это механизм хранения, который дает пользователю иллюзию наличия очень большого объема основной памяти. Это делается путем рассмотрения части вторичной памяти как основной памяти. В виртуальной памяти пользователь может хранить процессы большего размера, чем доступная основная память.
Поэтому вместо загрузки одного длинного процесса в основную память ОС загружает различные части более чем одного процесса в основную память. Виртуальная память в основном реализуется с помощью подкачки и сегментации спроса.
Зачем нужна виртуальная память?
Вот причины использования виртуальной памяти:
- Всякий раз, когда вашему компьютеру не хватает места в физической памяти, он записывает то, что ему нужно запомнить, на жесткий диск в файле подкачки в качестве виртуальной памяти.
- Если компьютер работает Windows требуется больше памяти/ОЗУ, поэтому при установке в систему он использует для этой цели небольшую часть жесткого диска.
Как работает виртуальная память?
В современном мире виртуальная память стала довольно распространенной. Он используется всякий раз, когда некоторые страницы необходимо загрузить в основную память для выполнения, а память недоступна для этих многих страниц.
Таким образом, в этом случае, вместо того, чтобы предотвращать попадание страниц в основную память, ОС ищет пространство ОЗУ, которое минимально используется в последнее время или которое не используется во вторичной памяти, чтобы освободить место для новых страниц в памяти. основная память.
Давайте разберемся управление виртуальной памятью с помощью одного примера.
Например
Предположим, что ОС требуется 300 МБ памяти для хранения всех запущенных программ. Однако в настоящее время в оперативной памяти хранится только 50 МБ доступной физической памяти.
- Затем ОС установит 250 МБ виртуальной памяти и будет использовать программу под названием Virtual Memory Manager (VMM) для управления этими 250 МБ.
- Итак, в этом случае VMM создаст на жестком диске файл размером 250 МБ для хранения необходимой дополнительной памяти.
- Теперь ОС перейдет к адресной памяти, поскольку она учитывает 300 МБ реальной памяти, хранящейся в ОЗУ, даже если доступно только 50 МБ.
- Задача VMM — управлять 300 МБ памяти, даже если доступно всего 50 МБ реального пространства памяти.
Что такое пейджинг по требованию?
Механизм пейджинга по требованию очень похож на пейджинговая система с подкачкой, при которой процессы хранятся во вторичной памяти, а страницы загружаются только по требованию, а не заранее.
Таким образом, когда происходит переключение контекста, ОС никогда не копирует страницы старой программы с диска или страницы новой программы в основную память. Вместо этого он начнет выполнение новой программы после загрузки первой страницы и выберет страницы программы, на которые имеются ссылки.
Если во время выполнения программы программа ссылается на страницу, которая может быть недоступна в основной памяти из-за ее замены, процессор считает это недопустимой ссылкой на память. Это происходит потому, что ошибка страницы и передача отправляют управление обратно из программы в ОС, которая требует сохранить страницу обратно в память.
Типы методов замены страниц
Вот несколько важных методов замены страниц.
- FIFO
- Оптимальный алгоритм
- Замена страницы LRU
Замена страницы FIFO
FIFO (первым пришел — первым обслужен) — это простой метод реализации. В этом методе память выбирает для замены страницу, которая находилась в виртуальном адресе памяти дольше всего.
Особенности
- Всякий раз, когда загружается новая страница, страница, недавно поступившая в память, удаляется. Таким образом, легко решить, какую страницу необходимо удалить, поскольку ее идентификационный номер всегда находится в стеке FIFO.
- Самая старая страница в основной памяти — это та, которую следует выбрать для замены в первую очередь.
Оптимальный алгоритм
Оптимальный метод замены страницы выбирает ту страницу для замены, для которой время до следующего обращения является самым продолжительным.
Особенности
- Оптимальный алгоритм приводит к наименьшему количеству ошибок страниц. Этот алгоритм сложно реализовать.
- Метод оптимального алгоритма замены страниц имеет самую низкую частоту ошибок страниц среди всех алгоритмов. Этот алгоритм существует, и его следует называть MIN или OPT.
- Замените страницу, которая в отличие от использования в течение более длительного периода времени. Он использует только время, когда необходимо использовать страницу.
Замена страницы LRU
Полная форма LRU — это страница «Наименее недавно использованная». Этот метод помогает ОС определить использование страницы за короткий период времени. Этот алгоритм следует реализовать путем связывания счетчика с четной страницей.
Как это работает?
- Для замены будет выбрана страница, которая дольше всего не использовалась в основной памяти.
- Легко реализовать, вести список, заменять страницы, оглядываясь назад во времени.
Особенности
- Метод замены LRU имеет наибольшее количество. Этот счетчик также называется регистрами старения, которые указывают их возраст и то, сколько связанных с ними страниц также следует ссылаться.
- Для замены следует выбрать ту страницу, которая дольше всего не использовалась в основной памяти.
- Он также ведет список и заменяет страницы, оглядываясь назад во времени.
Частота отказов
Частота отказов — это частота, с которой спроектированная система или компонент выходит из строя. Выражается в отказах в единицу времени. Обозначается греческой буквой? (лямбда).
Преимущества виртуальной памяти
Вот плюсы/преимущества использования виртуальной памяти:
- Виртуальная память помогает набрать скорость, когда для выполнения программы требуется только определенный сегмент программы.
- Это очень полезно при реализации мультипрограммной среды.
- Это позволяет запускать больше приложений одновременно.
- Это поможет вам объединить множество больших программ в программы меньшего размера.
- Общие данные или код могут совместно использоваться памятью.
- Процесс может стать даже больше, чем вся физическая память.
- Данные/код следует считывать с диска всякий раз, когда это необходимо.
- Код можно разместить в любом месте физической памяти, не требуя перемещения.
- В основной памяти должно поддерживаться больше процессов, что повышает эффективность использования ЦП.
- Каждая страница хранится на диске до тех пор, пока она не понадобится, после этого она будет удалена.
- Это позволяет одновременно запускать больше приложений.
- Конкретного ограничения на степень мультипрограммирования не существует.
- Необходимо писать большие программы, поскольку доступное виртуальное адресное пространство больше по сравнению с физической памятью.
Недостатки виртуальной памяти
Вот недостатки/минусы использования виртуальной памяти:
- Приложения могут работать медленнее, если система использует виртуальную память.
- Скорее всего, переключение между приложениями займет больше времени.
- Предлагает меньше места на жестком диске для вашего использования.
- Это снижает стабильность системы.
- Это позволяет более крупным приложениям запускаться в системах, которые не имеют достаточного количества физической оперативной памяти для их запуска.
- Он не обеспечивает такой же производительности, как ОЗУ.
- Это негативно влияет на общую производительность системы.
- Займите место для хранения, которое в противном случае можно использовать для долгосрочного хранения данных.
Итого
- Виртуальная память — это механизм хранения, который дает пользователю иллюзию наличия очень большой основной памяти.
- Виртуальная память необходима всякий раз, когда на вашем компьютере недостаточно места в физической памяти.
- Механизм подкачки по требованию очень похож на систему подкачки с подкачкой, где процессы хранятся во вторичной памяти, а страницы загружаются только по требованию, а не заранее.
- Важные методы замены страниц: 1) FIFO 2) оптимальный алгоритм 3) замена страницы LRU.
- В методе FIFO (первым пришел — первым вышел) память выбирает для замены страницу, которая находилась в виртуальном адресе памяти дольше всего.
- Оптимальный метод замены страницы выбирает ту страницу для замены, для которой время до следующего обращения является самым продолжительным.
- Метод LRU помогает ОС определить использование страницы за короткий период времени.
- Виртуальная память помогает набрать скорость, когда для выполнения программы требуется только определенный сегмент программы.
- Приложения могут работать медленнее, если система использует виртуальную память.