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

65. Виртуальная память (вп). Основные идеи. Выполнение программы с использованием вп. Преимущества вп. Поддержка функционирования вп.

Основные идеи

  • Обращения логическим адресам памяти динамически транслируются в физические адреса во время исполнения

    • Процесс может быть выгружен на диск и вновь загружен в основную память таким образом он может находится в разных местах основной памяти

  • Процесс может быть разбит на несколько блоков (страниц/сегментов), которые не обязательно занимают смежные адреса в основной памяти

  • Нет необходимости загружать в основную память сразу все блоки.

Выполнение программы

  1. Операционная система помещает в основную память несколько блоков (страниц/сегментов) программы

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

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

  2. Операционная система переводит процесс в состояние блокировки.

  3. Блок процесса, которому принадлежит логический адрес помещается (погружается) в основную память

    1. Операционная система инициирует операцию ввода-вывода с диска

    2. К процессору подключается другой процесс (поток) из очереди готовых.

    3. После завершения операции ввода-вывода генерируется прерывание.

    4. Система переводит блокированные процесс в состояние готовности.

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

  • Больше процессов может одновременно находится в основной памяти

    • Загружены только некоторые блоки процессов

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

  • Процесс может быть больше, чем вся основная память.

Поддержка функционирования ВП

  • Аппаратное обеспечение должно поддерживать сегментную, страничную или сегментно-страничную организацию

  • Операционная система должна иметь возможность для переноса страниц и /или сегментов между основной и вторичной памятью.

Не с лекции:

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

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

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

- размещает данные в запоминающих устройствах разного типа, например, часть программы в оперативной памяти, а часть на диске;

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

- преобразует виртуальные адреса в физические.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]