<<
>>

Структура операционной системы

Как описывалось ранее, операционная система Windows Vista состоит из множества уровней (см. рис. 11.2). В последующих разделах мы погрузимся в самые нижние уровни операционной системы — те, которые работают в режиме ядра.
Центральный уровень — это само ядро NTOS, которое загружается из файла ntoskrnl.exe (при загрузке Windows). NTOS имеет два уровня: исполнительный (executive), в котором содержится большая часть служб, и меньший по размеру уровень, который называется ядром (kernel) и реализует планирование потоков и абстракции синхронизации (ядро внутри ядра?), а также реализует обработчики ловушек, прерывания и прочие аспекты управления процессором.

Деление NTOS на ядро и исполнительную систему отражает общность NT с системой VAX/VMS. Операционная система VMS, которая также была разработана Катлером, имела четыре аппаратно обеспечиваемых уровня: пользовательский, супервизора, исполнительный и уровень ядра (в соответствии с четырьмя режимами защиты, обеспечивавшимися архитектурой процессора VAX).

Процессор Intel также поддерживает четыре кольца защиты, однако в некоторых процессорах (для которых первоначально разрабатывалась NT) этого не было, поэтому уровни ядра и исполнительный представляют собой программную абстракцию и такие функции, которые VMS предоставляет в режиме супервизора (например, очередь печати), в NT реализованы как службы пользовательского режима.

Уровни режима ядра системы NT показаны на рис. 11.4. Уровень ядра NTOS показан над исполнительным уровнем, поскольку он реализует механизмы ловушек и прерываний, которые используются для перехода из пользовательского режима в режим ядра. Верхний уровень — это системная библиотека ntdll.dll, которая фактически работает в пользовательском режиме. Эта системная библиотека содержит некоторые вспомогательные функции для библиотек компилятора (времени исполнения и низкого уровня) аналогично библиотеке libc системы UNIX.

Ntdll.dll содержит также специальные точки входа, используемые ядром для инициализации потоков, а также диспетчеризации исключений и вызовов APC (Asynchronous Procedure Calls — асинхронные вызовы процедур) пользовательского режима. Поскольку системная библиотека так тесно интегрирована в работу ядра, то каждый созданный NTOS процесс пользовательского режима имеет отображение на ntdll по одному и тому же фиксированному адресу. Когда NTOS инициализирует систему, он создает объект-сегмент, который будет использоваться для отображения ntdll, а также записывает адреса точек входа ntdll, используемых ядром.

Ниже уровня ядра и исполнительного уровня NTOS находится программное обеспечение под названием HAL (Hardware Abstraction Layer — уровень абстрагирования оборудования), который абстрагирует низкоуровневые детали оборудования (вроде доступа к регистрам устройств и работы в режиме DMA), а также то, как прошивка материнской платы представляет конфигурационную информацию и работает с различными чипсетами (например, с контроллерами прерываний).

Самым нижним уровнем программного обеспечения является гипервизор, который в Windows называется Hyper-V. Гипервизор является дополнительным средством (на рис. 11.4 не показано). Он доступен на многих версиях Windows, включая профессиональные клиентские версии для настольных систем. Гипервизор перехватывает многие привилегированные операции, выполняемые ядром, и эмулирует их таким образом, чтобы позволить на одной и той же машине одновременно работать нескольким операционным системам. Каждая операционная система работает на собственной виртуальной машине, которая в Windows называется разделом (partition). Гипервизор использует возможности в архитектуре оборудования для защиты физической памяти и обеспечения изолированности разделов друг от друга. Операционная система, запускаемая поверх гипервизора, выполняет потоки и обрабатывает прерывания абстракций физических процессоров, называемых виртуальными процессорами. Гипервизор планирует работу виртуальных процессоров на физических процессорах.

Рис. 11.4. Организация режима ядра Windows

Основная (или корневая — root) операционная система запускается в корневом разделе. Она предоставляет множество служб другим (гостевым) разделам. Некоторые наиболее важные службы обеспечивают интеграцию гостевых разделов с совместно используемыми устройствами, например с сетевыми устройствами и устройствами графического пользовательского интерфейса. Хотя при запуске Hyper-V корневой операционной системой должна быть Windows, в гостевых разделах могут запускаться и другие операционные системы, например Linux. Гостевая операционная система может работать весьма посредственно, пока не будет модифицирована (то есть пара- виртуализирована) для работы с гипервизором.

Например, если ядро гостевой операционной системы, чтобы синхронизировать два виртуальных процесса, использует спин-блокировку и гипервизор перепланирует виртуальный процессор, удерживающий спин-блокировку, время удержания блокировки может увеличиться на несколько порядков, оставляя другие виртуальные процессоры, запущенные в разделе, работать вхолостую очень длительный период времени. Для решения этой проблемы гостевая операционная система информируется, чтобы работать вхолостую лишь короткий период времени перед тем, как вызвать гипервизор, чтобы тот уступил ее физический процессор для запуска другого виртуального процессора.

BIOS поставляет несколько компаний, он интегрируется в энергонезависимую память EEPROM (которая находится на системной плате компьютера).

Другой важный компонент режима ядра — это драйверы устройств. Windows использует драйверы устройств для всех тех компонентов режима ядра, которые не являются частью NTOS или HAL. Сюда входят файловые системы и стеки сетевых протоколов, а также расширения ядра, такие как антивирусы и программное обеспечение DRM (Digital Rights Management — управление цифровыми правами), а также драйверы для управления физическими устройствами, для интерфейсов с системными шинами и т. д.

Компоненты ввода-вывода и виртуальной памяти совместно загружают (и выгружают) драйверы устройств в память ядра и связывают их с уровнями NTOS и HAL. Диспетчер ввода-вывода обеспечивает интерфейсы, которые позволяют обнаруживать устройства, организовывать их и работать с ними, в том числе загружать соответствующий драйвер устройства. Большая часть конфигурационной информации для управления устройствами и драйверами находится в разделе SYSTEM реестра. Компонент Plug-and-Play диспетчера ввода-вывода поддерживает информацию по обнаруженному оборудованию в разделе HARDWARE, который поддерживается в памяти, а не на диске, поскольку он полностью создается заново при каждой загрузке системы.

Теперь мы изучим различные компоненты операционной системы несколько подробнее.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Структура операционной системы:

  1. Э. ТАНЕНБАУМ, А. ВУДХАЛЛ. ОПЕРАЦИОННЫЕ СИСТЕМЫ Разработка и реализация 3-е издание, 2007
  2. В.Е. Карпов К.А. Коньков. Основы операционных систем, 2005
  3. Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ, 2015
  4. 2. Система права та її структура
  5. Структура и состояние системы.
  6. Структура и состояние системы.
  7. Четырехфункциональная схема и структура систем
  8. Никлас Луман: социальные системы между смысловой структурой и управленческой эффициенцией
  9. § 39 Классификация договоров в отдельных видах. – Римская классификация. – Система прусского закона, французского и австрийского кодекса. – Система русского свода. – Система настоящего изложения.
  10. Тема 15 Правова система і система права. Система законодавства та систематизація нормативно-правових актів
  11. Глава 4. Система права и система законодательства
  12. СТРУКТУРА
  13. §5. Система военных судов в РФ как часть системы судов общей юрисдикции
  14. Типы социальных структур
  15. Структура
  16. § 3. О структуре сознания