
1_3_Архитектура Windows.ppt
- Количество слайдов: 42
Архитектура Windows
Основные версии операционных систем компании Microsoft для настольных компьютеров
Корень совместимости версий Windows
Клиентские и серверные версии Windows
Базовые компоненты Windows
Уровни программирования. Windows. XP в
Организация режима ядра Windows
HAL (Hardware Abstraction Layer — уровень абстрагирования оборудования) Разница в процессорах влияет на реализацию примитивов синхронизации (таких, как спин-блокировк Различныесемействачипсетовматеринской платы имеют разные приоритеты аппаратных прерываний, способы доступа к регистрам устройств ввода-вывода, управление передачей в режиме DMA, управление таймерамии часами реальноговремени, синхронизацию многопроцессор-ности, работу с BIOS, например с ACPI (Advanced Configuration and усовершенство-ванный Power интерфейс Interface — управления конфигурированием и энергопотреблением) и т. д.
HAL (Hardware Abstraction Layer — уровень абстрагирования оборудования) Задача HAL — представить остальной части операционной системы некоеабстрактное обору-дование, которое скрывает специфичные подробнос-ти (версию процессора, чипсети прочие особенности конфигурации). Эти абстракцииуровня HAL пред-ставлены в форме независимых от компьютераслужб (вызововпроцедур и макросов), которыемогут использоваться драйверамии NTOS. Весь машинозависимый код ОС сконцентрирован в одном месте и цели переноса на другую платформу хорошо определены: реализация всех служб HAL.
HAL (Hardware Abstraction Layer — уровень абстрагирования оборудования) При использовании служб HAL и отсутствии прямых обращений к оборудованию для драйверов и ядра требуется меньше изменений при переносе на новые процессоры — и почти во всех случаях они могут работать без всякой модификациина всех системах с одинаковой архитектурой процессора (несмотря на разные их версии и разные чипсеты). HAL не обеспечивает абстракций или служб для конкретных устройств ввода-вывода, таких как клавиатура, мышь, диски или устройствоуправ-ления памятью. Эти средства разбросаны по компонентам режима ядра.
Некоторые из функций оборудования, которыми управляет HAL
Ядро Windows Уровень ядра предоставляетнабор абстракцийдля управления процессором, отвечает за планиро-ваниеи синхронизацию потоков, а также реализует обработку исключений, ловушки и несколько видов прерываний. Создание и уничтожение структур данных, которые поддерживаютпотоки, реализова-нов исполнительном уровне. Уровень ядра отвечает за то, какие потоки выполняютсяна процессорах системы, сохранение и смену контекстапотоков, переключениевирту-ального адресного пространства процессов.
Ядро Windows Уровень ядра также предоставляет низкоуров-невую поддержкудля двух классов механизмовсинхронизации: объектов управления диспетчер-ских объектов. и Объекты управления (control objects ) — это структуры данныхдля управления процессором, которые уровень ядра предоставляет как абстракции для исполнительного уровня. исполнительным уровнем, но Они выделяются работа-ют с процедуры, предоставляемые уровнем ядра. ними
Ядро Windows Объектыуправления включают: объекты-примитивы для потоков, прерываний, таймеров, синхронизации, профилирования, также два специальных а объектадля реализации DPC и АРС. Объекты. DPC (Deferred. Procedure. Call — отложенный вызовпроцедуры)используются для уменьшениявремени выполнения. ISR (Interrupt. Service Routines — процедура обслуживания прерываний), которая запускается по прерыванию от устройства.
Пример DPC После нажатияклавиши клавиатурная ISR читает из регистра код клавиши, а затем опять разрешает клавиатурное прерывание, но не делает обработку клавишинемедленно. Вместо этого она использует. DPC для постановкиобработкикода клавиши в очередь до того момента, пока все подлежащие обработке прерывания устройства не будут отработаны. Поскольку DPC работают с более низким приоритетом то они не мешают выполнению ISR для , устройств, они мешаютвыполняться но любымпотокам до тех пор, пока все поставленныев очередь DPC не завершатся и уровень приоритета процессора не снизится Драйверы устройств и система не должны. слишком долго выполнять или DPC. ISR
АPC АРС (asynchronous procedurecall— асинхронный вызов процедуры) похож на DPC в том плане, что он откладываютобработку системной процедуры, но в отличие от DPC, который работает в контексте конкретного процессора, АРС выполняется кон-тексте в конкретного потока. Например, АРС режима ядра для завершениявводавыполняется контексте в того потока, который инициировалввод-вывод в режиме ядра, что дает АРС доступ как к буферу режима ядра, так и ко всему адресному пространству пользовательского режима, принадлежащему тому процессу, который содержит данный поток. АРС возможны и в пользовательском режиме.
Диспетчерские объекты Диспетчерскиеобъекты (dispatcher objects — это ) класс обычных объектов исполнительного уровня, который использует общую структуру данных для синхронизации под названием «заголовок диспетче- ризации» . Это могут быть семафоры, мьютексы, события, таймеры ожиданияи прочие объекты, которыхмогут ожидатьпотокидля синхронизации своего выполненияс другими потоками. Сюда также входят объекты, представляющие открытыефайлы, процессы, потокии порты. IPC.
Заголовок объекта диспетчеризации
Диспетчерские объекты Структураданныхдиспетчеризации содержитфлаг, представляющий сигнальное состояние объек-та, а также очередь потоков, ожидающих сигнали-зации объекта. При срабатывании таймера, завершении ввода- вывода в файл, появлениив порту данных, заверше-нии потока или процесса и т. д. соответствующий диспетчерскийобъект сигнализирует, пробуждая все потоки, которые ждут этого события.
Диспетчер объектов ( object manager ) Диспетчер объектов управляет размещением и освобождением памятидля объектов(процессы, потоки, файлы, семафоры, устройства драйверыввода-вывода, и таймеры и др. ), выполняет учет квот, поддержку доступа к объектам при помощи описателей, подсчет ссылок на указатели в режиме ядра и ссылок на описатели, именование объектов в пространстве имен NT, т. е. предоставляет расширяемый механизм для управления жизненным циклом любого объекта.
Диспетчер ввода-вывода O manager I/ ( ) Диспетчерввода-вывода O manger предоставля-ет (I/ ) инфраструктурудля реализации драйверов устройств ввода-вывода и исполнительного обеспечивает несколько уровня конфигурирова-ния для служб устройств, доступак ним и выполнения ними операций. с В Windows драйверы устройств не только управляют физическимиустройствами, они также обеспечивают расширяемость операционной систе-мы. Многиефункции, которые в других системах скомпилированы состав в ядра, в Windwos дина-мически загружаются и связываются том числе стеки сетевых протоколови (в файловые системы).
Диспетчер ввода-вывода O manager I/ ( ) Диспетчерввода-вывода O manger предоставля-ет (I/ ) инфраструктурудля реализации драйверов устройств ввода-вывода и исполнительного обеспечивает несколько уровня конфигурирова-ния для служб устройств, доступак ним и выполнения ними операций. с В Windows драйверы устройств не только управляют физическимиустройствами, они также обеспечивают расширяемость операционной систе-мы. Многиефункции, которые в других системах скомпилированы состав в ядра, в Windwos дина-мически загружаются и связываются том числе стеки сетевых протоколови (в файловые системы).
Диспетчер Plug and- Play Диспетчер Plug -and-Play вступаетв дело тогда, когда в системе обнаруживаютсяновые устрой -ства. Он работает со службой (диспетчером) Plug -and-Play пользовательскогорежима, ищет соответ-ствующий драйвер устройстваи загружаетего в систему. Найти правильный драйвер устройства непросто, иногда для этого нужно выполнить конкретной версии сложное аппа-ратного сопоставление устройства и конкретнойверсии драйвера. Иногда одно устройство поддерживает стандарт-ный интерфейс, который поддерживается множес-твом различных драйверов, написанных разными компаниями.
Диспетчер электропитания (power manager ) Диспетчер электропитания уменьшаетпотреб-ление энергиикомпонентами (когдасистемане используется) — для этого отдельные устройства переключаютсяв состояние резервирования или даже полностью отключаются. Мультипроцессорные системы дельные процессоры (когда они не уменьшать уменьшения отключают отнужны), могут тактовую частоту процессоров (для энергопотребления). Когда процессор бездействует, потребление его энергии уменьша-ется— посколькуему не нужно делать ничего, кроме ожидания возникновения прерывания.
Диспетчер процессов ( process manager ) Диспетчер процессов управляет созданием и завершениемпроцессов и потоков, включаяна-стройку управляющих ими политик и параметров. Однако операционные аспекты потоков определяются уровнем ядра, который управляет планированием и синхронизацией потоков, а также их взаимодействием управляющими с объектами(такими, как АРС).
Диспетчер процессов ( process manager ) Процессысодержатпотоки, адресноепростран-ство, а также таблицу описателей, содержащую те описатели, которые процесс может использоватьдля ссылки на объекты режима ядра. Процессы также содержат информацию, которая нужна планировщику для переключения между адреснымипространствами и для управленияспецифичной для процессовинформацией относительно оборудова-ния.
Диспетчер памяти ( memory manager ) Диспетчер памяти исполнительного уровня реализует архитектурувиртуальнойпамяти с подкач-кой по требованию. Он управляет отображением виртуальныхстраницна физическиефреймы страниц, управляет имеющимися физическими фреймами, а также файлом подкачки на диске, используемым для храненияприватных экземпляров виртуальных страниц, которые уже не загружены в память.
Диспетчер кэширования ( cache man ger) а Диспетчер кэширования оптимизирует производительность ввода-вывода в поддерживая кэш файловой системе, страниц файловой системы в виртуальном адресном пространстве ядра. Управление кэшированиемреализованопри помощи отображенияфайлов в память. Реальное кэширование выполняется диспетчером памяти. Диспетчер кэшированиядолжен заботиться только о принятии решения, какую часть какого файла кэшировать, обеспечиваясвоевременный сброс на диск кэшированных данных и управляя виртуаль-ными адресами ядра, используемыми для отобра-жения кэшированных страниц файлов.
Монитор безопасности (security reference monitor ) Мониторбезопасности обеспечивает работусложных механизмов безопасности поддерживают Windows , международные кото-рые стандарты по компьютерной безопасности, называемые Common Criteria. Монитор безопасности в аутентифицированный вход заполнение нулями ядре в отвечает систему, за аудит, выделенной памяти, проверку доступа и многое другое.
Диспетчер конфигурации (configuration manager )) Диспетчер конфигурации — это компонент исполнительногоуровня, который реализует реестр Windows Реестр содержит конфигурационные. дан-ные для системы в файлах, которые называютсяульями. Каждый улей хранитсяв отдельном файле (в каталоге C: Windows system 32config загрузоч -ного тома) Самым. критическим ульем является SYSTEM который при , загрузке. ОС грузится памятьтой же самойпрограммой в загрузки, котораязагружаетядро и прочие компоненты операционной системы.
Компонент локального вызова процедур ( ) LPC Компонент LPC обеспечиваетвысокоэффектив-ный межпроцессный обмен, используемый между работающими однойсистемепроцессами. на Это один из транспортов данных, используемых стан-дартным средством вызова удаленных процедур (RPC) для реализации клиент-серверноймодели вычислений. RPC используетв качестветранспорта такжеименованные каналы и TCP/ IP.
Оконная и графическая подсистема отвечают за интерфейс пользователя — работу с окнами, элементами управления и графический вывод. Менеджер окон реализует высокоуровневые функции — управляет оконным выводом, обрабатываетввод с клавиатуры мыши, передает приложениям и сообщения пользователя. Интерфейс графических устройств(Graphical. Device Interface, GDI) включает набор базовых аппаратнонезависимых операций графического вывода. Драйверы графических устройств (видеокарт, принтерови др. ) отвечаютза работу с контрол-лерами этих устройств.
Драйверы устройств ( device drivers ) Драйверыустройствв Windows — это динами-чески связываемые библиотеки, которые загружа-ются исполнительным уровнем NTOS. Механизм драйверов устройств используются не только реализации драйверов оборудования, но и как средство расширения режима ядра. Большая часть подсистемы. Win 32 загружаетсякак драйвер. Файловые системы и сетевые протоколы также загружаются как драйвер. Для каждого устройства менеджер ввода-вывода допускает использование нескольких драйверов, организованных в стек.
Драйверы устройств ( device drivers )
Базовые компоненты Windows. XP
Компоненты режима пользователя не имеют прямого доступа к аппаратному обеспечению, их код выполняется изолированном в адресном про-странстве. Большая часть кода режима пользова -теля находится в динамических библиотеках DLL (dynamіc-lіnk lіbrarіes). Для доступа к средствам режима ядра в режиме пользователя необходимо обращаться к функциям библиотеки системного интерфейса (ntdll. dll). Эта библиотека предоставляет наборфункций-переход-ников, каждой из которых отвечает функция режима ядра (системный вызов Приложения, как правило, не ). вызывают такие функции непосред-ственно, за это отвечают подсистемы среды.
Компоненты режима пользователя Подсистемы среды Wіn 32 и POSІХ предостав-ляют приложеним пользователя доступ к службам операционной системы, реализуясоответствующий АРІ. Wіn 32 АРІ является обязательным компонен-том Wіndowsи включает: 1. Процессподсистемы Wіn 32 (csrss. exe), что отвечает, вчастности, за реализацию текстового (консольного) ввода-вывода, создание и уничтожение процессов и потоков. 2. Библиотеки подсистемы Wіn 32, которые предоставляютприкладным программамфункции. Wіn 32 АРІ. Чаще всего используют библиотеки gdі 32. dll (низкоуровневые графические функции, независи-мые от устройства), user 32. dll (функции интер-фейса пользователя) kernel 32. dll и (функции, реализованные в исполнительной службе и ядре).
Служебные (системные процессы) 1. Менеджерсессий(Sessіon. Manager, smss. exe) создается в системе первым. Он запускает другие важные процессы (процесс подсистемы Wіn 32, процесс регистрации системеи т. п. ), а такжеотвечаетза их в повторное выполнение при аварийном завершении. 2. Процесс регистрации в системе (w іnlogon. exe) отвечает за допуск пользователя в систему. Он отображает диалоговое окнодля вводапароля, передает пароль в подсистемубезопасности в случае успешной и его верификациизапускает средства создания сессии пользователя.
Служебные (системные процессы) 3. Менеджер управления службами (Servіce Control Manager, servіces. exe) отвечает за автоматическое выполнение определенных приложений времязагрузки во системы. Приложения, которыебудут выполненыпри этом, называют службами(servіces). Такиеслужбы, как журналсобытий, планировщик задач, менеджерпечати, входятв составсистемы. Кроме того, есть многослужб сторонних разработчиков(серверы баз данных, вебсерверы и т. п. ).
Загрузка. Windows 1. BIOS (Basic Input Output System / ) тестирует аппаратное обеспечение и в случае успеха запус-кает загрузчик ОС, находящийся нулевомсекторесистемного в диска. 2. Программа начальной загрузки запускает программу. Boot. Mgrв корневом каталоге Windows. 3. Программа Boot. Mgr определяет, была ли система ранее переведенав состояниегибернацииили ожидания. Если это так, то Boot. Mgr загружает и выполняет Win. Resumeexe. В противном случае она загружает и. exe выполняет Win. Loadexe для выполнения новой загрузки. .
Загрузка. Windows 4. Win. Load загружает в память загрузочные компоненты системы: • ядро/исполнительный уровень (обычно это ntoskrnl. exe); • HAL (hal ), содержащий улей. dll SYSTEM ; • драйвер. Win 32 k. sys, содержащий части sys режима ядра подсистемы Win 32; • образы любых других драйверов , которые перечислены улье SYSTEM какзагрузочные в драйверы boot drivers ( ).
Загрузка. Windows 5. Управлениепередается коду низкого уровняв NTOS, NTOS которыйинициализирует HAL, ядро и испол-нительный HAL уровень , привязывает образы драйверов, а также обращаеться данным конфигурации улье SYSTEM (и к в обновлет их). 6. После инициализациивсех компонентоврежи-ма ядра создается первый процесс пользователь-ского режима smss. exe, который запускает все остальные exe служебные программы.