HPUNIX Сайт о ОС и не только!

Режим, место и контекст

7 сентября 2010 - unix
Режим, пространство и контекст
Для способности функционирования системы UNIX аппаратная часть компьютера должна поддерживать по последней мере два режима выполнения: более привилегированный режим ядра и наименее привилегированный режим задачки.
Режим, пространство и контекст
Как и следовало ждать, прикладные программки работают в режиме задачки, а функции ядра производятся в режиме ядра. Ядро защищает часть адресного места от доступа в режиме задачки. Более того, более привилегированные машинные аннотации могут производиться исключительно в режиме ядра.
Рекоммендуем также взять на заметку коттеджный поселок Петровский для выбора наилучшей недвижимости.
В почти всех аппаратных архитектура поддерживается более 2-ух режимов выполнения. К примеру, архитектура Intel 80x86' поддерживает четыре уровня выполнения, самым привилегированным из которых является нулевой. UNIX употребляет только два из их. Главной предпосылкой возникновения разных режимов выполнения является безопасность. Если пользовательские процессы производятся в наименее привилегированном режиме, то они не могут случаем либо специально разрушить другой процесс либо ядро системы. Последствия, вызванные ошибками в программке, носят локальный нрав и обычно не оказывают влияние на выполнение других действий либо процессов.
Большая часть реализаций UNIX употребляют виртуальную память. В системе виртуальной памяти адреса, выделенные программке, не ссылаются конкретно на физическое размещение в памяти. Каждому процессу предоставляется собственное виртуальное адресное место, а ссылки на виртуальные адреса памяти транслируются в их фактическое нахождение в физической памяти с помощью набора карт трансляции адресов. Многие системы реализуют такие карты как таблицы страничек, с одной записью для каждой странички адресного места процесса (страничка — это выделенный и защищенный блок памяти фиксированного размера).
Режим, пространство и контекст
Аппаратно реализованный блок управления памятью (memory management unit, MMU) обычно обладает определенным набором регистров для определения карт трансляции адресов процесса, выполняющегося на этот момент времени (также именуемого текущим). Когда текущий процесс уступает процессорное время другому процессу (переключение контекста), ядро располагает в этих регистрах указатели на карты трансляции адресов нового процесса. Регистры MMU являются привилегированными и могут быть доступны исключительно в режиме ядра. Это дает гарантию того, что процесс будет ссылаться на адреса памяти только собственного адресного места и не имеет доступа либо способности конфигурации адресного места другого процесса.

1. Кроме Восемь тыщ восемьдесят 6 и 80186. — Прим. ред.
2. Еще их именуют уровнями льгот либо защищенности. — Прим. ред.

Определенная часть виртуального адресного места каждого процесса отображается на код и структуры данных ядра. Эта часть именуется системным местом либо местом ядра и может быть доступна исключительно в режиме ядра. В системе может сразу производиться только одна копия ядра, как следует, все процессы показываются в единое адресное место ядра. В ядре содержатся глобальные структуры и информация, дающая возможность ему иметь доступ к адресному месту хоть какого процесса. Ядро может обращаться к адресному месту текущего процесса впрямую, потому что регистры MMU хранят всю нужную для этого информацию. Время от времени ядру требуется обратиться к адресному месту, не являющемуся на этот момент текущим.
Режим, пространство и контекст
В данном случае воззвание происходит не конкретно, а с помощью специального временного отображения.
В то время как ядро вместе употребляется всеми процессами, системное место защищается от доступа в режиме задачки. Процессы не могут впрямую обращаться к ядру и должны использовать для этого интерфейс системных вызовов. После того как процесс производит системный вызов, запускается особая последовательность команд (именуемая переключателем режимов), переводящая систему в режим ядра, а управление передается ядру, которое и обрабатывает операцию от имени процесса. После окончания обработки системного вызова ядро вызывает другую последовательность команд, возвращающую систему назад в режим задачки (делается очередное переключение режима), и опять передает управление текущему процессу. Интерфейс системных вызовов описан подробнее в разделе 2.4.1.
Есть два принципиальных для хоть какого процесса объекта, которые управляются ядром. Они обычно реализуются как часть адресного места процесса. Это область и (u-агеа, Либо user-area) и стек ядра (kernel stack). Область и является структурой данных, содержащей подходящую ядру информацию о процессе, такую как таблицу файлов, открытых процессом, данные для идентификации, также сохраненные значения регистров процесса, пока процесс не является текущим. Процесс не может произвольно изменять эту информацию — и, как следует, область и является защищенной от доступа в режиме задачки (некие реализации ОС позволяют процессу считывать эту информацию, но не изменять ее).
Ядро системы UNIX является иноперабельным, другими словами к ядру могут обращаться сразу несколько процессов. Практически они могут делать одни и те же последовательности инструкций параллельно. (Очевидно, в один миг времени производится только один процесс, другие при всем этом заблокированы либо находятся в режиме ожидания1.) Таким макаром, каждому процессу нужен свой стек ядра для хранения данных,

Презентабельностью именуется возможность единовременного воззвания разных процессов к одному и тому же машинному коду, загруженному в память компьютера в единственном экземпляре. — Прим. ред.
применяемых последовательностью функций ядра, инициированной вызовом из процесса.
Режим, пространство и контекст
Многие реализации UNIX располагают стек ядра в адрес¬ном пространстве каждого процесса, но при всем этом воспрещают к нему доступ в режиме задачки. Концептуально область и и стек ядра хоть и создаются для каждого процесса раздельно и хранятся в его адресном пространстве, они, все же, являются собственностью ядра.
Еще одним принципиальным понятием является контекст выполнения. Функции ядра могут производиться исключительно в контексте процесса либо в системном кон¬тексте. В контексте процесса ядро работает от имени текущего процесса (к примеру, пока обрабатывает системный вызов) и может иметь доступ и изменять адресное место, область и и стек ядра этого процесса. Более того, ядро может заблокировать текущий процесс, если тому нужно ждать освобождения ресурса либо реакции устройства.

Ядро также должно делать глобальные задачки, такие как сервис прерываний устройств и пересчет ценностей процессов. Такие задачки не зависят от какого-нибудь определенного процесса и, как следует, обрабатываются в системном контексте (также именуемом контекстом прерываний). Если ядро работает в системном контексте, то оно не обязано иметь доступа к адресному месту, области и и стеку ядра текущего процесса. Ядро также не должно в этом режиме перекрыть процессы, потому что это приведет к блокировке «невинного» процесса.

Мы отметили главные различия меж режимами задачки и ядра, местом процесса и системы, контекстом процесса и системы. На рис. 2.2 проиллюстрированы все эти определения. Код приложения производится в режиме задачки и контексте процесса и может иметь доступ только к месту процесса. Системные вызовы и исключения обрабатываются в режиме ядра, но в контексте процесса, но эти задачки могут иметь доступ к месту процесса и системы. Прерывания обрабатываются в режиме ядра и системном контексте и могут иметь доступ только к месту системы.

Похожие статьи

    Технология- Depeche Modы из СССР 1991 год -Часть 10.

  • Контроль за внедрением памяти и дискового места

    Особо пытливые мозги всегда тревожила неувязка использования памяти и дискового места. Команда df возвращает перечень всех присоединенных разделов, также сведения об применяемом и свобод...

  • Определение процесса

    Так что все-таки такое процесс в системе UNIX? Более распространенный ответ на этот вопрос такой: «Процесс — это экземпляр выполняемой программы». Но такое определение является поверхностным,...

  • Ядро и процессы

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

  • Возможности юзера

    Каждый юзер системы имеет собственный уникальный номер, именуемый идентификатором юзера (user ID, либо UID). Сисадмин обычно также делает несколько разных групп пользова...

  • Работа в режиме командной строчки

    Чтоб убить человека, компьютер сводит его сума....

Теги: ос,
Рейтинг: 0 Голосов: 92 1470 просмотров
Комментарии (0)

Нет комментариев. Ваш будет первым!

Найти на сайте: параметры поиска

Windows 7

Среда Windows 7 на первых порах кажется весьма непривычной для многих.

Windows 8

Если резюмировать все выступления Microsoft на конференции Build 2013.

Windows XP

Если Windows не может корректно завершить работу, в большинстве случаев это

Windows Vista

Если к вашему компьютеру подключено сразу несколько мониторов, и вы регулярно...