ВУЗ:
Составители:
Для поддержки эффективных механизмов управления памятью в многоза-
дачной среде каждая страница сопровождается специальным описанием, хра-
нящемся в регистре описания страницы РОС. Этот регистр имеет формат:
РОС[0] = 0;
РОС[2..1] - поле контроля доступа:
00,10 - запрет обращения;
01 - страница доступна только для чтения;
11 - страница доступна для чтиния и записи;
РОС[3] - направление расширения страницы:
0 - расширение в сторону увеличения адресов;
1 - расширение в сторону уменьшение адресов(стек);
РОС[5..4] = 00;
РОС[6] - контроль записи: 0 - записи не было, 1 - запись в страницу была;
это поле позволяет избежать вывода во внешний накопитель тех страниц, кото-
рые играют роль буфера ввода-вывода и немодифицированы;
РОС[7] = 0;
РОС[14..8] - размер страницы в блоках по 64 байта.
При работе диспетчера памяти выделяются 2 режима работы: системный
(код 00) и пользовательский (код 11). В диспетчере памяти имеются 2 комплекта
РАС и РОС: один для системного, другой для пользовательского режима. Бла-
годаря этому переключение в системный режим, часто используемое приклад-
ной программой для запуска функций операционной системы (ввод, вывод,
служба времени, запрос дополнительной памяти и т.п.), выполняется без допол-
нительных затрат времени на модификацию содержимого РАС и РОС. Проблема
обмена данными между ОС и прикладными программами решается с помощью
двух специальных команд и включения в состав процессора дополнительного
указателя стека R12. Команда MFPI (код 0065SS) пересылает 16-разрядный
операнд-источник, адресуемый полями DD, в стек текущего режима, адресуемый
через R12. Команда MTPI (код 0066DD) пересылает слово из стека текущего ре-
жима, адресуемого через R12, по адресу операнда-приемника предыдущего ре-
жима.
В формате PSW ЭВМ, поддерживающей эти режимы, используется стар-
ший байт, 4 старших бита которых хранят коды текущего (PSW[15..14]) и преды-
дущего режимов (PSW[13..12]).
Регистр состояния RS0 обеспечивает включение диспетчера (RS[0] = 1) со
стороны операционной системы и анализ причины прерывания:
RS0[3..1] - номер РАС, при обращении по которому возникло прерывание;
RS0[13] - прерывание возникло при попытке записи в страницу, досупную
только для чтения;
RS0[14] - прерывание возникло при нарушении длины страницы;
RS0[15] - прерывание возникло при обращении к неактивной странице.
За диспетчером памяти закреплен вектор прерывания с адресом 250. В ре-
гистре состояния RS2 содержится EA, во время обработки которого возникло
это прерывание.
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »