Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
946__8367__946__955.doc
Скачиваний:
120
Добавлен:
27.03.2015
Размер:
1.91 Mб
Скачать

4.1. Сравнительные особенности ядер операционных систем Windows nt и os/2

Ядро Windows NT

"Сердцем" операционной системы Windows NT, работающим в тесной взаимосвязи с HAL, является ядро (или микроядро - microkernel). Ядро осуществляет диспетчеризацию нитей, обработку прерываний и исключительных ситуаций. Если компьютер имеет многопроцессорную архитектуру, ядро повышает производительность системы, синхронизируя работу процессоров. В

мультипроцессорной конфигурации ядро может одновременно выполняться на всех процессорах. Роль ядра заключается в том, чтобы обеспечить оптимальную загрузку всех процессоров и наилучшую производительность системы. Для этого ядро осуществляет диспетчеризацию нитей в соответствии с их приоритетами. Фактически, оно принудительным образом проводит политику диспетчеризации, реализуемую модулем Windows NT Executive. Кроме того, ядро вытесняет (preempt) нити с низким приоритетом в пользу более высокоприоритетных нитей. Оно может принудительным образом выполнять переключения контекста (context switches), давая процессору инструкции прекратить выполнение одной задачи и взяться за другую. Таким образом, код, выполняющийся в такой системе, должен быть реентерабельным (reentrant). Под реентерабельностью кода понимается способность прервать выполнение и быть выгруженным, а также возобновить выполнение без потери информации. Кроме того, реентерабельный код может совместно использоваться несколькими различными нитями, выполняющими различные строки одного и того же кода на различных процессорах.

Ядро является единственной неперемещаемой в памяти (nonpageable) и невыгружаемой (nonpreemptible) частью операционной системы. За редким исключением все остальные нити, работающие в Windows NT 4.0, в том числе и в составе модуля Executive, являются выгружаемыми (preemptible) и полностью реентерабельными. За счет этого достигается максимальная эффективность системы. Наконец, ядро синхронизирует деятельность таких сервисов Windows NT Executive, как Диспетчер ввода/вывода (I/O Manager) и Диспетчер процессов (Process Manager). Кроме того, компоненты Executive используют еще более высокие уровни абстракции, называемые объектами микроядра (microkernel objects), часть из которых экспортируется в пределах интерфейсных вызовов API с пользовательскими приложениями.

Ядро OS/2

Ядро реализовано как единый монитор с одним входом и одним выходом. Ядро системы OS/2 не реализует приоритетного прерывания

обслуживания; если программа выполняется в ядре, то она не будет прервана для выполнения другой программы. Тем не менее, программа может быть прервана, находясь в ядре, с тем чтобы программа прерывания могла выполниться и осуществить функцию, которую необходимо выполнить за относительно малый промежуток времени, такую как очистка буфера В/В. Такая структура ядра обеспечивает простоту реализации и приемлемые характеристики для однопользовательских интерактивных систем типа OS/2, которые, однако, не являются системами реального времени. При подобном подходе существенным является то, что длительность интервала времени, занимаемого при каждом системном вызове в ядре, поддерживается на минимальном уровне.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]