5. Многопрограммный режим работы. Организация виртуальной памяти.

Многопрограммный режми работы.

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

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

Отметим следующие варианты защиты при различных операциях с памятью:

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

Если нарушается защита памяти, исполнение программы приостанавливается и вырабатывается запрос прерывания по нарушению защиты памяти.

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

Организация виртуальной памяти

Определения:

Виртуальная память – это механизм отделения пользовательской
логической памяти от физической.

Задачи виртуальной памяти:

  1. Предоставление абстракции большой памяти.
  2. Автоматизация перемещения частей программы между диском и основной памятью.
  3. Возможность изменения размещения программы (relocation).
  4. Защита кода и данных различных процессов.
  5. Защита по привилегиям.
  6. Отображение разделяемых процессами объектов на различные виртуальные адреса (Virtual Address Aliasing).
  7. Отображение разделяемых объектов с разными правами доступа для каждого из процессов (Protection Aliasing).
  8. Энергосбережение.

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

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

Физическая и виртуальная память разбивается на блоки, называемые страницами, содержащими одно и тоже число байт. Страницам виртуальной и физической памяти присваиваются номера. Каждая физическая страница способна хранить одну из виртуальных страниц. Порядок расположения (нумерация) байт в виртуальной и физической страницах сохраняется одним и тем же.