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


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

Основными требованиями этих режимов являлись:

· независимость подготовки программ,

· исключение взаимных помех.

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

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

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

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

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

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

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

Вопросы для самопроверки:

1. Требование независимости подготовки программ.

2. Требование исключения взаимных помех.

3. Проблема переадресации программ.

4. Проблема свопинга.



Дата добавления: 2021-01-26; просмотров: 518;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.