Книга: Архитектура операционной системы UNIX
6.2.3 Размещение ядра
6.2.3 Размещение ядра
Несмотря на то, что ядро работает в контексте процесса, отображение виртуальных адресов, связанных с ядром, осуществляется независимо от всех процессов. Программы и структуры данных ядра резидентны в системе и совместно используются всеми процессами. При запуске системы происходит загрузка программ ядра в память с установкой соответствующих таблиц и регистров для отображения виртуальных адресов ядра в физические. Таблицы страниц для ядра имеют структуру, аналогичную структуре таблицы страниц, связанной с процессом, а механизмы отображения виртуальных адресов ядра похожи на механизмы, используемые для отображения пользовательских адресов. На многих машинах виртуальное адресное пространство процесса разбивается на несколько классов, в том числе системный и пользовательский, и каждый класс имеет свои собственные таблицы страниц. При работе в режиме ядра система разрешает доступ к адресам ядра, при работе же в режиме задачи такого рода доступ запрещен. Поэтому, когда в результате прерывания или выполнения системной функции происходит переход из режима задачи в режим ядра, операционная система по договоренности с техническими средствами разрешает ссылки на адреса ядра, а при возврате в режим ядра эти ссылки уже запрещены. В других машинах можно менять преобразование виртуальных адресов, загружая специальные регистры во время работы в режиме ядра.
На Рисунке 6.6 приведен пример, в котором виртуальные адреса от 0 до 4М-1 принадлежат ядру, а начиная с 4М — процессу. Имеются две группы регистров управления памятью, одна для адресов ядра и одна для адресов процесса, причем каждой группе соответствует таблица страниц, хранящая номера физических страниц со ссылкой на адреса виртуальных страниц. Адресные ссылки с использованием группы регистров ядра допускаются системой только в режиме ядра; следовательно, для перехода между режимом ядра и режимом задачи требуется только, чтобы система разрешила или запретила адресные ссылки с использованием группы регистров ядра.
В некоторых системах ядро загружается в память таким образом, что большая часть виртуальных адресов ядра совпадает с физическими адресами и функция преобразования виртуальных адресов в физические превращается в функцию тождественности. Работа с пространством процесса, тем не менее, требует, чтобы преобразование виртуальных адресов в физические производилось ядром.
Рисунок 6.6. Переключение режима работы с непривилегированного (режима задачи) на привилегированный (режим ядра)
- 6.1 СОСТОЯНИЯ ПРОЦЕССА И ПЕРЕХОДЫ МЕЖДУ НИМИ
- 6.2 ФОРМАТ ПАМЯТИ СИСТЕМЫ
- 6.2.2 Страницы и таблицы страниц
- 6.2.3 Размещение ядра
- 6.2.4 Пространство процесса
- 6.3 КОНТЕКСТ ПРОЦЕССА
- 6.4 СОХРАНЕНИЕ КОНТЕКСТА ПРОЦЕССА
- 6.5 УПРАВЛЕНИЕ АДРЕСНЫМ ПРОСТРАНСТВОМ ПРОЦЕССА
- 6.6 ПРИОСТАНОВКА ВЫПОЛНЕНИЯ
- 6.7 ВЫВОДЫ
- 6.8 УПРАЖНЕНИЯ
- Размещение исходного кoдa в пpoeктe
- Как выбрать сетевое размещение?
- Размещение публикаций в сетевых СМИ
- 1.1 Режимы ядра и пользователя Windows
- 3.8. Обновление ядра
- 3.8.2. Обновление ядра из RPM-пакета
- 3.8.3. Компиляция ядра
- 14.1.8. Патчинг ядра
- 14.11.1. Параметры ядра
- Компиляция ядра
- База данных диспетчера ядра
- Размещение пресс-релизов