Архитектура Windows Основные версии операционных систем компании Microsoft

Скачать презентацию Архитектура Windows Основные версии операционных систем компании Microsoft Скачать презентацию Архитектура Windows Основные версии операционных систем компании Microsoft

22676-1_3_arhitektura_windows.ppt

  • Количество слайдов: 42

>Архитектура Windows Архитектура Windows

>Основные версии операционных систем компании Microsoft для настольных компьютеров Основные версии операционных систем компании Microsoft для настольных компьютеров

>Корень совместимости версий Windows Корень совместимости версий Windows

>Клиентские и серверные версии Windows Клиентские и серверные версии Windows

>Базовые компоненты Windows Базовые компоненты Windows

>Уровни программирования в Windows XP Уровни программирования в Windows XP

>Организация режима ядра Windows Организация режима ядра Windows

>HAL (Hardware Abstraction Layer —  уровень абстрагирования оборудования)   Разница в процессорах HAL (Hardware Abstraction Layer — уровень абстрагирования оборудования) Разница в процессорах влияет на реализацию примитивов синхронизации (таких, как спин-блокировка). Различные семейства чипсетов материнской платы имеют разные приоритеты аппаратных прерываний, способы доступа к регистрам устройств ввода-вывода, управление передачей в режиме DMA, управление таймерами и часами реального времени, синхронизацию многопроцессор-ности, работу с BIOS, например с ACPI (Advanced Configuration and Power Interface — усовершенство-ванный интерфейс управления конфигурированием и энергопотреблением) и т. д.

>HAL (Hardware Abstraction Layer —  уровень абстрагирования оборудования)   Задача HAL — HAL (Hardware Abstraction Layer — уровень абстрагирования оборудования) Задача HAL — представить остальной части операционной системы некое абстрактное обору-дование, которое скрывает специфичные подробнос-ти (версию процессора, чипсет и прочие особенности конфигурации). Эти абстракции уровня HAL пред-ставлены в форме независимых от компьютера служб (вызовов процедур и макросов), которые могут использоваться драйверами и NTOS. Весь машинозависимый код ОС сконцентрирован в одном месте и цели переноса на другую платформу хорошо определены: реализация всех служб HAL.

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

>Некоторые из функций оборудования, которыми управляет HAL Некоторые из функций оборудования, которыми управляет HAL

>Ядро Windows    Уровень ядра предоставляет набор абстракций для управления процессором, отвечает Ядро Windows Уровень ядра предоставляет набор абстракций для управления процессором, отвечает за планиро-вание и синхронизацию потоков, а также реализует обработку исключений, ловушки и несколько видов прерываний. Создание и уничтожение структур данных, которые поддерживают потоки, реализова-но в исполнительном уровне. Уровень ядра отвечает за то, какие потоки выполняются на процессорах системы, сохранение и смену контекста потоков, переключение вирту-ального адресного пространства процессов.

>Ядро Windows    Уровень ядра также предоставляет низкоуров-невую поддержку для двух классов Ядро Windows Уровень ядра также предоставляет низкоуров-невую поддержку для двух классов механизмов синхронизации: объектов управления и диспетчер-ских объектов. Объекты управления (control objects) — это структуры данных для управления процессором, которые уровень ядра предоставляет как абстракции для исполнительного уровня. Они выделяются исполнительным уровнем, но работа-ют с ними процедуры, предоставляемые уровнем ядра.

>Ядро Windows    Объекты управления включают: объекты-примитивы для потоков, прерываний, таймеров, синхронизации, Ядро Windows Объекты управления включают: объекты-примитивы для потоков, прерываний, таймеров, синхронизации, профилирования, а также два специальных объекта для реализации DPC и АРС. Объекты DPC (Deferred Procedure Call — отложенный вызов процедуры) используются для уменьшения времени выполнения ISR (Interrupt Service Routines — процедура обслуживания прерываний), которая запускается по прерыванию от устройства.

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

>АPC    АРС (asynchronous procedure call — асинхронный вызов процедуры) похож на АPC АРС (asynchronous procedure call — асинхронный вызов процедуры) похож на DPC в том плане, что он откладывают обработку системной процедуры, но в отличие от DPC, который работает в контексте конкретного процессора, АРС выполняется в кон-тексте конкретного потока. Например, АРС режима ядра для завершения ввода-вывода выполняется в контексте того потока, который инициировал ввод-вывод в режиме ядра, что дает АРС доступ как к буферу режима ядра, так и ко всему адресному пространству пользовательского режима, принадлежащему тому процессу, который содержит данный поток. АРС возможны и в пользовательском режиме.

>Диспетчерские объекты     Диспетчерские объекты (dispatcher objects) — это класс обычных Диспетчерские объекты Диспетчерские объекты (dispatcher objects) — это класс обычных объектов исполнительного уровня, который использует общую структуру данных для синхронизации под названием «заголовок диспетче-ризации» . Это могут быть семафоры, мьютексы, события, таймеры ожидания и прочие объекты, которых могут ожидать потоки для синхронизации своего выполнения с другими потоками. Сюда также входят объекты, представляющие открытые файлы, процессы, потоки и порты IPC.

>Заголовок объекта диспетчеризации Заголовок объекта диспетчеризации

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

>Диспетчер объектов (object manager)      Диспетчер объектов управляет размещением и Диспетчер объектов (object manager) Диспетчер объектов управляет размещением и освобождением памяти для объектов (процессы, потоки, файлы, семафоры, устройства и драйверы ввода-вывода, таймеры и др.), выполняет учет квот, поддержку доступа к объектам при помощи описателей, подсчет ссылок на указатели в режиме ядра и ссылок на описатели, именование объектов в пространстве имен NT, т.е. предоставляет расширяемый механизм для управления жизненным циклом любого объекта.

>Диспетчер ввода-вывода (I/O manager)     Диспетчер ввода-вывода (I/O manger) предоставля-ет инфраструктуру Диспетчер ввода-вывода (I/O manager) Диспетчер ввода-вывода (I/O manger) предоставля-ет инфраструктуру для реализации драйверов устройств ввода-вывода и обеспечивает несколько служб исполнительного уровня для конфигурирова-ния устройств, доступа к ним и выполнения с ними операций. В Windows драйверы устройств не только управляют физическими устройствами, они также обеспечивают расширяемость операционной систе-мы. Многие функции, которые в других системах скомпилированы в состав ядра, в Windwos дина-мически загружаются и связываются (в том числе стеки сетевых протоколов и файловые системы).

>Диспетчер ввода-вывода (I/O manager)     Диспетчер ввода-вывода (I/O manger) предоставля-ет инфраструктуру Диспетчер ввода-вывода (I/O manager) Диспетчер ввода-вывода (I/O manger) предоставля-ет инфраструктуру для реализации драйверов устройств ввода-вывода и обеспечивает несколько служб исполнительного уровня для конфигурирова-ния устройств, доступа к ним и выполнения с ними операций. В Windows драйверы устройств не только управляют физическими устройствами, они также обеспечивают расширяемость операционной систе-мы. Многие функции, которые в других системах скомпилированы в состав ядра, в Windwos дина-мически загружаются и связываются (в том числе стеки сетевых протоколов и файловые системы).

>Диспетчер Plug-and-Play      Диспетчер Plug-and-Play вступает в дело тогда, когда Диспетчер Plug-and-Play Диспетчер Plug-and-Play вступает в дело тогда, когда в системе обнаруживаются новые устрой-ства. Он работает со службой (диспетчером) Plug-and-Play пользовательского режима, ищет соответ-ствующий драйвер устройства и загружает его в систему. Найти правильный драйвер устройства непросто, иногда для этого нужно выполнить сложное сопоставление конкретной версии аппа-ратного устройства и конкретной версии драйвера. Иногда одно устройство поддерживает стандарт-ный интерфейс, который поддерживается множес-твом различных драйверов, написанных разными компаниями.

>Диспетчер электропитания  (power manager)     Диспетчер электропитания уменьшает потреб-ление энергии Диспетчер электропитания (power manager) Диспетчер электропитания уменьшает потреб-ление энергии компонентами (когда система не используется) — для этого отдельные устройства переключаются в состояние резервирования или даже полностью отключаются. Мультипроцессорные системы отключают от-дельные процессоры (когда они не нужны), могут уменьшать тактовую частоту процессоров (для уменьшения энергопотребления). Когда процессор бездействует, его потребление энергии уменьша-ется — поскольку ему не нужно делать ничего, кроме ожидания возникновения прерывания.

>Диспетчер процессов (process manager)     Диспетчер процессов управляет созданием и завершением Диспетчер процессов (process manager) Диспетчер процессов управляет созданием и завершением процессов и потоков, включая на-стройку управляющих ими политик и параметров. Однако операционные аспекты потоков опреде-ляются уровнем ядра, который управляет планиро-ванием и синхронизацией потоков, а также их взаимодействием с управляющими объектами (такими, как АРС).

>Диспетчер процессов (process manager)     Процессы содержат потоки, адресное простран-ство, а Диспетчер процессов (process manager) Процессы содержат потоки, адресное простран-ство, а также таблицу описателей, содержащую те описатели, которые процесс может использовать для ссылки на объекты режима ядра. Процессы также содержат информацию, которая нужна планировщику для переключения между адресными пространствами и для управления специфичной для процессов информацией относительно оборудова-ния.

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

>Диспетчер кэширования (cache manаger)      Диспетчер кэширования оптимизирует произво-дительность ввода-вывода Диспетчер кэширования (cache manаger) Диспетчер кэширования оптимизирует произво-дительность ввода-вывода в файловой системе, поддерживая кэш страниц файловой системы в виртуальном адресном пространстве ядра. Управление кэшированием реализовано при помощи отображения файлов в память. Реальное кэширование выполняется диспетчером памяти. Диспетчер кэширования должен заботиться только о принятии решения, какую часть какого файла кэшировать, обеспечивая своевременный сброс на диск кэшированных данных и управляя виртуаль-ными адресами ядра, используемыми для отобра-жения кэшированных страниц файлов.

>Монитор безопасности  (security reference monitor)     Монитор безопасности обеспечивает работу Монитор безопасности (security reference monitor) Монитор безопасности обеспечивает работу сложных механизмов безопасности Windows, кото-рые поддерживают международные стандарты по компьютерной безопасности, называемые Common Criteria. Монитор безопасности в ядре отвечает за аутентифицированный вход в систему, аудит, заполнение нулями выделенной памяти, проверку доступа и многое другое.

>Диспетчер конфигурации  (configuration manager) )     Диспетчер конфигурации — это Диспетчер конфигурации (configuration manager) ) Диспетчер конфигурации — это компонент исполнительного уровня, который реализует реестр Windows. Реестр содержит конфигурационные дан-ные для системы в файлах, которые называются ульями. Каждый улей хранится в отдельном файле (в каталоге C:\Windows\system32\config\ загрузоч-ного тома). Самым критическим ульем является SYSTEM, который при загрузке ОС грузится в память той же самой программой загрузки, которая загружает ядро и прочие компоненты операционной системы.

>Компонент  локального вызова процедур (LPC )     Компонент LPC обеспечивает Компонент локального вызова процедур (LPC ) Компонент LPC обеспечивает высокоэффектив-ный межпроцессный обмен, используемый между работающими на одной системе процессами. Это один из транспортов данных, используемых стан-дартным средством вызова удаленных процедур (RPC) для реализации клиент-серверной модели вычислений. RPC использует в качестве транспорта также именованные каналы и TCP/IP.

>Оконная и графическая подсистема   Оконная и графическая подсистема отвечают за интерфейс пользователя Оконная и графическая подсистема Оконная и графическая подсистема отвечают за интерфейс пользователя — работу с окнами, элементами управления и графический вывод. Менеджер окон реализует высокоуровневые функции — управляет оконным выводом, обрабатывает ввод с клавиатуры и мыши, передает приложениям сообщения пользователя. Интерфейс графических устройств (Graphical Device Interface, GDI) включает набор базовых аппаратно-независимых операций графического вывода. Драйверы графических устройств (видеокарт, принтеров и др.) отвечают за работу с контрол-лерами этих устройств.

>Драйверы устройств (device drivers)   Драйверы устройств в Windows — это динами-чески связываемые Драйверы устройств (device drivers) Драйверы устройств в Windows — это динами-чески связываемые библиотеки, которые загружа-ются исполнительным уровнем NTOS. Механизм драйверов устройств используются не только реализации драйверов оборудования, но и как средство расширения режима ядра. Большая часть подсистемы Win32 загружается как драйвер. Файловые системы и сетевые протоколы также загружаются как драйвер. Для каждого устройства менеджер ввода-вывода допускает использование нескольких драйверов, организованных в стек.

>Драйверы устройств (device drivers) Драйверы устройств (device drivers)

>Базовые компоненты Windows XP Базовые компоненты Windows XP

>Компоненты режима пользователя    Компоненты режима пользователя не имеют прямого доступа к Компоненты режима пользователя Компоненты режима пользователя не имеют прямого доступа к аппаратному обеспечению, их код выполняется в изолированном адресном про-странстве. Большая часть кода режима пользова-теля находится в динамических библиотеках DLL (dynamіc-lіnk lіbrarіes). Для доступа к средствам режима ядра в режиме пользователя необходимо обращаться к функциям библиотеки системного интерфейса (ntdll.dll). Эта библиотека предоставляет набор функций-переход-ников, каждой из которых отвечает функция режима ядра (системный вызов). Приложения, как правило, не вызывают такие функции непосред-ственно, за это отвечают подсистемы среды.

>Компоненты режима пользователя   Подсистемы среды Wіn32 и POSІХ предостав-ляют приложеним пользователя доступ Компоненты режима пользователя Подсистемы среды Wіn32 и POSІХ предостав-ляют приложеним пользователя доступ к службам операционной системы, реализуя соответствующий АРІ. Wіn32 АРІ является обязательным компонен-том Wіndows и включает: Процесс подсистемы Wіn32 (csrss.exe), что отвечает, вчастности, за реализацию текстового (консольного) ввода-вывода, создание и уничтожение процессов и потоков. Библиотеки подсистемы Wіn32, которые предос-тавляют прикладным программам функции Wіn32 АРІ. Чаще всего используют библиотеки gdі32.dll (низкоуровневые графические функции, независи-мые от устройства), user32.dll (функции интер-фейса пользователя) и kernel32.dll (функции, реализованные в исполнительной службе и ядре).

>Служебные (системные процессы)   Менеджер сессий (Sessіon Manager, smss.exe) создается в системе первым. Служебные (системные процессы) Менеджер сессий (Sessіon Manager, smss.exe) создается в системе первым. Он запускает другие важные процессы (процесс подсистемы Wіn32, процесс регистрации в системе и т.п.), а также отвечает за их повторное выполнение при аварийном завершении. Процесс регистрации в системе (wіnlogon.exe) отвечает за допуск пользователя в систему. Он отображает диалоговое окно для ввода пароля, передает пароль в подсистему безопасности и в случае успешной его верификации запускает средства создания сессии пользователя.

>Служебные (системные процессы)   3. Менеджер управления службами (Servіce Control Manager, servіces.exe) отвечает Служебные (системные процессы) 3. Менеджер управления службами (Servіce Control Manager, servіces.exe) отвечает за автоматическое выполнение определенных приложений во время загрузки системы. Приложения, которые будут выполнены при этом, называют службами (servіces). Такие службы, как журнал событий, планировщик задач, менеджер печати, входят в состав системы. Кроме того, есть много служб сторонних разработчиков (серверы баз данных, веб-серверы и т.п.).

>Загрузка Windows   1. BIOS (Basic Input/Output System) тестирует аппаратное обеспечение и в Загрузка Windows 1. BIOS (Basic Input/Output System) тестирует аппаратное обеспечение и в случае успеха запус-кает загрузчик ОС, находящийся в нулевом секторе системного диска. 2. Программа начальной загрузки запускает программу BootMgr в корневом каталоге Windows. 3. Программа BootMgr определяет, была ли система ранее переведена в состояние гибернации или ожидания. Если это так, то BootMgr загружает и выполняет WinResume.exe. В противном случае она загружает и выполняет WinLoad.exe для выполнения новой загрузки.

>Загрузка Windows   4. WinLoad загружает в память загрузочные компоненты системы: ядро/исполнительный уровень Загрузка Windows 4. WinLoad загружает в память загрузочные компоненты системы: ядро/исполнительный уровень (обычно это ntoskrnl.exe); HAL (hal.dll), содержащий улей SYSTEM; драйвер Win32k.sys, содержащий части режима ядра подсистемы Win32; образы любых других драйверов, которые перечислены в улье SYSTEM как загрузочные драйверы (boot drivers).

>Загрузка Windows   5. Управление передается коду низкого уровня в NTOS, который инициализирует Загрузка Windows 5. Управление передается коду низкого уровня в NTOS, который инициализирует HAL, ядро и испол-нительный уровень, привязывает образы драйверов, а также обращаеться к данным конфигурации в улье SYSTEM (и обновлет их). 6. После инициализации всех компонентов режи-ма ядра создается первый процесс пользователь-ского режима smss.exe, который запускает все остальные служебные программы.