Подсистемы окруженияСуществует три типа компонентов, работающих в режиме пользователя: динамические библиотеки DLL, подсистемы окружения и служебные процессы. Эти компоненты работают вместе, предоставляя каждому пользовательскому процессу интерфейс, отличный от интерфейса системных вызовов Windows. Операционной системой Windows 2000 поддерживаются три различных документированных интерфейса прикладного программирования API: Win32, POSIX и OS/2. У каждого из этих интерфейсов есть список библиотек DLL (Dynamic Link Library – динамически подключаемая библиотека) и подсистем окружения заключается в том, чтобы реализовать функциональные возможности опубликованного интерфейса, тем самым, скрывая истинный интерфейс системных вызовов от прикладных программ. На рисунке 5.4 представлены некоторые ключевые и наиболее важные файлы динамических библиотек. В каталоге \winnt\system32 содержится более 800 отдельных файлов DLL общим объемом в 130 (Win XP 1260 объектов 260 Мб).
Рисунок 5.4 – Файлы динамических библиотек
Aрхитектура процессора Intel определяет 4 уровня привилегий для защиты кода и данных системы от случайного или намеренного изменения со стороны менее привилегированного кода. Такой метод выполнения кода называется моделью защиты Intel. Рассмотрим уровни привилегий: 1 Уровень приложения; 2 Уровень DLL(функция ОС); 3 Системный; 4 Аппаратного обеспечения
Уровни 1 и 3 объединяются в кольцо 3, а уровни 2 и 4 в кольцо 0 (ОС семейства Windows используют только кольца 0 и 3): Кольцо 0 – это режим ядра, он максимальный. Кольцо 3 – это режим пользователя, он минимальный, т.е. получает меньший доступ к процессору.
Режим ядра – это наиболее привилегированный режим. Программное обеспечение, выполняющееся в режиме ядра имеет: 1 прямой доступ к аппаратному обеспечению; 2 доступ ко всей памяти ПК; 3 не могут быть вытеснены в файл на жестком диске; 4 выполняется с большим приоритетом, чем процессы режима пользователя.
Режиму пользователя предоставляется меньше привилегий. В процессе режима пользователя характеризуются следующими особенностями: 1 не имеет прямого доступа к аппаратному обеспечению в целях защиты системы от неисправных приложений, или несанкционированного доступа; 2 ограничены выделенным или адресным пространством, таким образом ОС обеспечивает свою целостность, процессу выделяется определенная область и выходить за пределы этой области запрещено; 3 для вызова системных сервисов используется интерфейс с прикладного программирования -API.
Windows использует 2 класса приоритетов: 1 класс реального времени (приоритеты от 16 до 31) – используются для выполнения основных функций ОС и обычно не применяется для приложений; 2 класс переменного приоритета (от 0 до 15) – определяет процессорный приоритет приложений.
Процессам могут быть присвоены следующие базовые уровни приоритетов: 1 низкий – запускает приложения с уровнем приоритета 4; 2 обычный – запускает приложения с уровнем приоритета 7; 3 высокий – 13; 4 реально во времени – уровень приоритета 24. Не запускайте приложения с классом приоритета – реально во времени!
|