Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Обзор архитектуры
Обобщенная схема архитектуры ОС Windows представлена на слайде 7. Замечание: не все компоненты. Особенность: разделение всех исполняемых процессов на пользовательские и ядра. Потоки пользовательских процессов выполняются в защищенных адресных пространствах процессов и могут получать доступ к системному пространству с помощью сервисов ОС. Кроме того, процессы системы также имеют свое адресное пространство. В ОС Windows можно выделить следующие четыре типа пользовательских процессов: 1) фиксированные процессы поддержки системы (System Support Processes) – процессы, не являющиеся сервисами Windows (не запускаются диспетчером сервисов); 2) процессы сервисов (Service Processes) – выполняют задачи Windows сервисов; 3) пользовательские приложения (User Applications) – на момент написания книги различалось шесть типов: а) 32-ращзрядный Windows; б) 64-разрядный Windows; в) 16-разрядный Windows 3.1; г) 16-разрядный MSDOS. д) 32-разрядный POSIX; е) 32-разрядный OS/2; 4) процессы подсистемы окружения (Environment subsystem processes) – реализованы для поддержки пользователей по обращению к функциям ОС. Изначально Windows поставлялась с тремя подсистемами окружения: Windows, POSIX, OS/2. OS/2 была изъята в Windows 2000. В Windows XP поддерживается только подсистемы Windows, а поддержка POSIX реализована в продукте Services for Unix (можно найти на майкрософте). 5) DLL подсистемы. Пользовательские приложения, работающие в ОС Windows не могут вызывать некоторые сервисы ОС напрямую. DLL подсистемы являются посредником для обращения к выполнению функций ОС, т.е. трансляция API во внутренние вызовы системных сервисов ОС Windows. Компоненты режима ядра: 1) исполнительная система (Executive system) содержит базовые сервисы ОС (управление процессами, потоками, памятью, вводом-выводом и другими ресурсами). Включает ядро (Kernel). Выполняет низкоуровневые функции ОС (планирование потоков, диспетчеризация прерываний исключений, синхронизация и др.). Предоставляет набор процедур и объектов более высокому уровню. 2) Драйверы устройств – драйверы аппаратной части ЭВМ. 3) Уровень абстрагирования от оборудования HAL (Hardware Abstraction Level) – изолирует ядро, драйверы и всю исполнительную систему в целом от специфики аппаратуры. Замечание: особенностью ОС Windows является то, что подсистема поддержки окон и графики выполняется в режиме ядра. Основные системные файлы Windows изображены на слайде 8. NT SYS Kernel –, расширенная поддержка адресации памяти (до 64 ГБ). Переносимость. Изначально Windows проектировалась на платформы фирмы Intel и платформы Risk-систем. Первоначально поддерживались платформы X86 (Intel) и MIPS (Risk). Впоследствии была введена поддержка Alpha Dec. В Windows NT 3.51 была введена поддержка четвертой платформы, которая называлась PowerPC. Использование той или иной версии платформы мониторилось в связи с той или иной конъюнктурой рынка. Поэтому MIPS, Aplha и PowerPC были сняты. В Windows 2000 осталась поддержка только X86 (Intel Architecture 32). В дальнейшем в Windows XP и Windows 2003 Server была добавлена поддержка 64-разрядных процессоров: IA-64, AMD-64, EM64T (расширенная Intel Architecture). Замечание: различие поддерживаемых платформ заключалось в следующем: различный набор машинных команд, различное количество регистров и другой внутрипроцессорной аппаратуры. Переносимость Windows обеспечивается следующими способами: 1) ОС имеет многоуровневую архитектуру: низкоуровневые части ОС вынесены в отдельные модули, высокоуровневая часть ОС таким образом не зависит от специфики аппаратной части. Ключевые компоненты, обеспечивающие переносимость – ядро (ntoskrnl.exe) и HAL (hal.dll). Функции, которые отличаются в зависимости от аппаратуры, реализованы в HAL. Функции, не зависящие от аппаратуры (переключение контекста потоков, диспетчеризация) реализованы в ядре. 2) язык ассемблера применяется, как правило, для той части, которая непосредственно связана с оборудованием. Примечание: ассемблерный код также имеется в некоторых других частях ОС.
|