Windows NT - OC нового поколения

Ядро осуществляет диспетчеризацию нитей управления (threads, иногда называются подзадачами, ответвлениями или потоками), которые являются основными объектами в планируемой системе .Нити управления определяются в контексте процесса ;процесс включает адресное пространство, набор доступных процессу объектов и совокупность выполняемых в контексте процесса нитей управления. Объектами являются управляемые операционной системой ресурсы.

Ядро производит диспетчеризацию нитей управления таким образом, чтобы максимально загрузить процессоры системы и обеспечить первоочередную обработку нитей с более высоким приоритетом. (Всего существует 32 значения приоритета, которые сгруппированы в два класса приоритетов: real-time и variable).Подобный подход позволяет достичь максимальной эффективности операционной системы.

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

Ядро управляет двумя типами объектов.

  • Объекты диспетчеризации (dispatcher objects) характеризуются сигнальнымсостоянием (signaled или nonsignaled) и управляют диспетчеризацией и синхронизацией системных операций .Эти объекты включают события, мутанты, мутэксы, семафоры, нити управления и таймеры (events, mutants, mutexes, semaphores, threads, timers).
  • Управляющие объекты (control objects) используются для операций управления ядра, но не воздействуют на диспетчеризацию или синхронизацию.

Управляющие объекты включают в себя асинхронные вызовы процедур, прерывания, уведомления и состояния источника питания, процессы и профили (asynhcronous procedure calls, interupts, power notifies, power statuses, processes, profiles).

Исполняющая система Windows NT

Исполняющая система (Executive), в состав которой входит ядро и уровень аппаратных абстракций HAL, обеспечивает общий сервис системы, который могут использовать все подсистемы среды. Каждая группа сервиса находится под управлением одной из отдельных составляющих исполняющей системы:

  • диспетчера объектов (Object Manager);
  • диспетчера виртуальной памяти (Virtual Memory Manager);
  • диспетчера процессов (Process Manager);
  • средства вызова локальных процедур (Local Procedure Call Facility);
  • диспетчера ввода — вывода (E/O Maneger);
  • мониторы безопасности (Security Reference Monitor).

Монитор безопасности совместно с процессором входа в систему (Logon) и защищёнными подсистемами реализует модель безопасности Windows NT.

Верхний уровень исполняющей системы называется системным сервисом (System Services). Показанный на следующем рисунке системный сервис представляет собой интерфейс между подсистемами среды пользовательского режима и привилегированным режимом.

Диспетчер кэша

Архитектура ввода — вывода содержит единственный диспетчер кэша (Cache Manager), который осуществляет кэширование для всей системы ввода — вывода. Кэширование (Caching) — метод, используемый файловой системой для увеличения эффективности. Вместо непосредственной записи и считывания с диска, часто используемые файлы временно сохраняются в кэш-памяти; таким образом, работа с этими файлами выполняется в памяти. Операции с данными, находящимися в памяти, производятся значительно быстрее операций с данными на диске.

Диспетчер кэша использует модель отображения файла, которая интегрированна с диспетчером виртуальной памяти Windows NT. Диспетчер кэша обеспечивает службу кэширования для всех файловых систем и сетевых компонентов, функционирующих под управлением диспетчера ввода — вывода. В зависимости от объёма доступной оперативной памяти диспетчер кэша может динамически увеличивать или уменьшать размер кэша. Когда процесс открывает файл, который уже находился в кэше, диспетчер кэша просто копирует данные из кэша в виртуальное адресное пространство.