Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ос_ЛЕКЦИИ_для _методички_.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
821.76 Кб
Скачать

Обработка прерываний.

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

Все прерывания делятся на 3 группы:

1. Прерывания, которые требуют выполнения CP системных функций: прерывания от реальных устройств ввода-вывода, прерывания от средств службы времени, прерывания страничного обмена и т.п.

2. Прерывания, которые приводят к моделированию реальных ресурсов для ВМ : прерывания для предоставления кванта реального ЦП, прерывания для подкачки одной виртуальной страницы ВМ и т.п.

3. Прерывания, которые относятся к ОС виртуальной машины:

- прерывания от виртуальных устройств ввода-вывода (ВМ запустила операцию ввода-вывода, CP спланировала, выполнила и отразила прерывание об окончании ввода-вывода в виртуальную машину);

- программное прерывание в ОС или прикладной среде, выполняемой в ВМ (ошибки программирования);

- внешние прерывания. ОС виртуальной машины поддерживает свою службу времени и в свою очередь может предоставлять пользователям ОС виртуальные кванты, которые потом отражаются квантами реального ЦП, когда ВМ получит его ресурсы;

- прерывания по выполнению системных функций ОС ВМ. При предоставлении кванта ВМ работа ВМ на реальном ЦП начинается с адреса, указанного в виртуальном текущем PSW. Виртуальное текущее PSW хранится в Vmblock ВМ. Когда ВМ теряет управление по какой-либо причине, адрес последней выполняемой команды ВМ заносится в поле текущего PSW Vmblock. Функционирование модулей CP не квантируется, т.е. управляющая программа не по квантам работает. CP работает в режиме ядра, ВМ в режиме пользовательский процесс или задача.

Управление памятью.

Задачи по управлению памятью следующие:

- управление реальной памятью;

- управление виртуальной памятью CP;

- управление виртуальной памятью ВМ;

- управление страничным обменом.

Управление реальной памятью.

Вся реальная память описывается таблицей CORTable. Для каждой рамки реальной ОП строится 16-ти битный элемент описания. Все рамки делятся на типы:

- распределенные рамки (принадлежат активным ВМ, принадлежат CP);

- зафиксированные рамки (т.е. в ней находится страница активной ВМ);

- зарезервированные рамки (она планируется для страничного обмена ВМ);

- разделяемые рамки (совместно используемые несколькими ВМ).

В описателе зарезервированных рамок есть ссылка на Vmblock виртуальной машины.

Рамки, доступные для распределения. Каждая рамка, описываемая в CORTable, может находится в одном из трех состояний:

- доступная для распределения (свободная) (свободные рамки реальной ОП или принадлежащие неактивным ВМ, описываются также в списке FreeList, а принадлежащие неактивным ВМ FlashList)

Когда ВМ вновь становится активной, возникает ситуация, когда возможно отсутствие нужной ее виртуальной страницы в реальной ОП. CP пытается восстановить страницу и если она вдруг находится в реальной ОП и не вытеснена, то данная страница используется. Если изменена, то выполняется страничный обмен.

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

Выполнение запроса на размещение страницы в реальной ОП.

Когда ВМ предоставляется квант времени, CP пытается поместить рамку виртуальной ОП в реальную ОП. После того, как виртуальной странице выделена рамка и управление передано коду, он начинает выполняться. После каждой команды, находящейся в виртуальной ОП или до каждой команды выполняется команда ассемблера LRA(load real adres), которая представляет собой однократное выполнение механизма преобразования адресов для одного виртуального адреса. По результатам LRA вырабатывается признак -- признак результата.

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

2) Признак результата равен 1 -- недоступность сегмента

а) в данном сегменте РОП нет ни одной страницы для данной ВМ, то есть, таблица страниц для данного сегмента не сформирована -- строится таблица страниц и сегмент объявляется доступным

б)к сегменту не было обращения для распределения его для ВМ. Сегмент делается доступным.

3) Признак результата равен 2 -- недоступные страницы в сегменте.

а) страница является распределенной для другой ВМ, либо разделяется с другой ВМ

б) страница находится в режиме ввода в real frame. Если frame находится в списке free list, осуществляется распределение данной рамки за данной ВМ и происходит загрузка в эту рамку реальной ОП страницы виртуальной ОП ВМ. Если frame находится во flush list, то есть принадлежит какой-то ВМ, котрую CP вывел из списка активных ВМ, то, если страница изменялась, она выводится во внешнюю память, а на ее место загружается требуемая виртуальная страница.