Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_модуль1.doc
Скачиваний:
21
Добавлен:
25.08.2019
Размер:
276.48 Кб
Скачать

Режим ядра и пользовательский режим

Чтобы ОС была надежной, ее ядро должно быть защищено от сбоев в пользовательских программах. Ядро ОС должно работать в привилегированном режиме по сравнению с приложениями.

Различные режимы выполнения программ обеспечиваются на аппаратном уровне. Аппаратура современных компьютеров поддерживает как минимум два режима работы программ:

  • привилегированный режим работы, называемый режимом ядра (kernel mode) или режимом супервизора (supervisor mode);

  • пользовательский режим (user mode).

При работе операционной системы ее ядро работает в режиме ядра, а остальные части ОС и приложения – в режиме пользователя.

Режим ядра – это режим работы компьютера, в котором доступны все его возможности, разрешен доступ ко всем устройствам и разрешены все команды компьютера.

В пользовательском режиме разрешены только некоторые команды.

Например, могут быть доступны следующие команды доступа к аппаратуре компьютера:

  • команды инициации прерываний процессора;

  • команды доступа к механизмам распределения и защиты памяти;

  • команды управления устройствами ввода-вывода.

Количество различных уровней привилегий, поддерживаемых аппаратно, на различных процессорах различно. Например, на процессорах фирмы Intel таких уровней четыре. При этом различные ОС организуют различное количество уровней привилегий на одних и тех же процессорах. Таким образом, нет прямого соответствия количества уровней привилегий, которые реализуются аппаратно, и которые организует ОС. В самых распространенных ОС (Windows NT, UNIX) два уровня привилегий. Это режим ядра и режим пользователя.

Если аппаратура поддерживает хотя бы два уровня привилегий, ОС программно может создать любое их количество.

Механизм выполнения системного вызова в прикладной программе всегда один и тот же: при выполнении системного вызова программа переходит в режим ядра, а при возврате в программу – обратное переключение процессора в режим пользователя. Т.е. при обработке системного вызова происходит два переключения процессора с одного режима на другой. Это замедляет выполнение программ, что является платой за повышенную надежность и защищенность ядра. Из этого делаем вывод:

Наличие уровней привилегий повышает устойчивость ОС. Но, увеличение числа уровней снижает производительность ОС вследствие потерь на переключение процессора между режимами пользователя ядра.

Аппаратная зависимость и переносимость ОС

Любая ОС для реализации некоторых своих функций использует аппаратную поддержку, т.е. особенности архитектуры конкретного компьютера. Однако к современным ОС предъявляются требования переносимости, т.е. работы на различных аппаратных платформах. Поэтому разработчики ОС стараются сделать так, чтобы машинно-зависимый слой ОС был как можно компактнее, а всё остальное работало бы на любой аппаратной платформе.

Типовые средства аппаратной поддержки ос

Сейчас мы будем говорить о средствах поддержки ОС со стороны аппаратуры.

Решение о том, какие функции ОС будут выполняться программно, а какие аппаратно, принимается разработчиками компьютеров и операционных систем.

Однако практически все современные аппаратные платформы имеют некоторый типичный набор средств аппаратной поддержки ОС.

Аппаратные средства поддержки ОС:

  1. средства поддержки привилегированного режима (параметры слова состояния процессора, содержащие указания на текущий режим привилегий);

  2. средства преобразования адресов (для преобразования виртуальных адресов программ в адреса физической памяти и обратно);

  3. средства переключения процессов (предназначены для быстрого сохранения состояния приостанавливаемого процесса);

  4. система прерываний;

  5. системный таймер;

  6. средства защиты областей памяти (проверка на аппаратном уровне возможности данной программы работать с определенной областью памяти и выполнять заданные операции).