Виртуальная память в ОС: что такое, пейджинг по требованию, преимущества

⚡ Умное резюме

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

  • ???? Определение: Виртуальная память использует часть вторичного хранилища в качестве основной памяти для запуска более крупных процессов.
  • 🎯 Зачем нужно: Эта функция обеспечивает дополнительную память, когда физической оперативной памяти недостаточно, используя файл подкачки на диске.
  • 📥 Пейджинг по запросу: Страницы загружаются с диска в оперативную память только тогда, когда к ним фактически обращаются.
  • 🔁 Замена страницы: Методы FIFO, Optimal и LRU определяют, какую страницу удалить при ошибке страничного доступа.
  • Преимущество: Поддерживает многозадачность и позволяет программам превышать объем физической памяти.
  • ⚠️ недостаток: Она работает медленнее, чем оперативная память, и может снизить общую производительность системы.

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

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

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

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

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

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

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

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

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

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

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

Например

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

  • Затем операционная система выделит 250 МБ виртуальной памяти и будет использовать программу под названием «Менеджер виртуальной памяти» (VMM) для управления этими 250 МБ.
  • В этом случае VMM создаст на жестком диске файл размером 250 МБ для хранения необходимой дополнительной памяти.
  • Теперь операционная система будет обращаться к памяти так, как если бы она рассматривала 300 МБ реальной памяти, хранящейся в ОЗУ, даже если доступно всего 50 МБ пространства.
  • Задача VMM — управлять 300 МБ памяти, даже если доступно всего 50 МБ реального пространства памяти.

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

Пейджинг по запросу

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

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

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

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

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

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

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

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

Особенности

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

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

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

Особенности

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

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

Полное название LRU — Least Recently Used (наименее недавно использованная страница). Этот метод помогает операционной системе отслеживать использование страниц за короткий промежуток времени. Реализация этого алгоритма должна включать присвоение счетчика каждой странице.

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

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

Особенности

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

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

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

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

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

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

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

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

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

Часто задаваемые вопросы (FAQ)

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

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

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

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

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

Подведем итог этой публикации следующим образом: