Коды защиты для различных
Таблица 5.1. Коды защиты для различных режимов доступа процессора VAX. Цитируется по [Прохоров, 1990]
Код | Kernel | Executive | Supervisor | User |
0000 | - | - | - | - |
0001 | Не предсказуем | |||
0010 | RW | - | - | - |
0011 | R | - | - | - |
0100 | RW | RW | RW | RW |
0101 | RW | RW | - | - |
0110 | RW | R | - | - |
0111 | R | R | - | - |
1000 | RW | RW | RW | - |
1001 | RW | RW | R | - |
1010 | RW | R | R | - |
1011 | R | R | R | - |
1100 | RW | RW | RW | R |
1101 | RW | RW | R | RW |
1110 | RW | R | R | R |
1111 | R | R | R | R |
R — право чтения, W — право записи,------отсутствие прав.
32-битное адресное пространство процессора VAX разбито на четыре части, каждая объемом по гигабайту. Первый гигабайт адресов предназначен для кода и данных пользовательской программы, второй — для пользовательского стека, третий — для системы, четвертый не используется (Рисунок 5.7). Каждая из частей имеет собственный указатель на таблицу дескрипторов страниц. Важно отметить, что деление адресного пространства на таблицы не обязательно связано с правами доступа на отдельные страницы — в системной таблице могут быть страницы, доступные для записи из пользовательского режима (на практике этого никогда не бывает, но на уровне диспетчера памяти контроля за этим не реализовано), а в пользовательской — страницы, доступные только ядру.