Принципы проектирования Windows – расширяемость, переносимость, надежность, безопасность, совместимость, производительность, поддержка интернационализации и локализации.

ТЕМА 7. РАБОТА С ОПЕРАЦИОННЫМИ СИСТЕМАМИ. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ

Лекция 5. Обзор архитектуры и возможностей систем Windows

План занятия:

1. История Windows.

2. Принципы проектирования Windows.

3. Архитектура Windows.

4. Ядро Windows.

5. Обработка прерываний в ядре.

6. Исполнительная подсистема (executive) ОС Windows.

7. Подсистемы окружения в Windows

Windows – наиболее распространенное семейство операционных систем для настольных и портативных компьютеров. Имеются также версии Windows для мобильных устройств (Windows Phone) и для компьютерных кластеров. Можно без преувеличения сказать, что Windows – это тот мир, в котором живут и работают миллионы программистов. Windows в своем развитии бурно прогрессирует. Значительно повысилась надежность системы, значительно возросли ее возможности. В данной и следующей лекциях рассмотрены история, архитектура и возможности Windows.

Система Windows

Основные цели разработки Windows:

· переносимость

· безопасность

· соответствие POSIX

· поддержка многопроцессорности

· расширяемость

· поддержка интернационализации

· совместимость приложений с MS-DOS и ранними версиями Microsoft Windows.

Новые версии Windows используют архитектуру микроядра.

Windows доступна в нескольких версиях - Professional, Server, Advanced Server, National Server.

История Windows

Для большинства отечественных пользователей, включая автора, Windows стала доступной впервые в конце 1980-х гг. как графическая оболочка, запускаемая в среде операционной системы MS DOS командой win. Уже тогда были ощутимы основные характерные черты Windows, хотя она еще не была операционной системой, - удобный многооконный (как тогда называли) графический пользовательский интерфейс.

Затем появились наиболее известные в те годы версии - Windows 3.0, Windows 3.11, Windows for Workgroups (Windows для рабочих групп). Все они поддерживали исполнение приложений под управлением графической многооконной оболочки.

В 1988 Microsoft приняла решение о разработке переносимой ОС "new technology" (NT), которая поддерживала бы и OS/2, и POSIX API.

Первоначально Windows NT должна была использовать OS/2 API как свое естественное окружение, однако в процессе разработки NT была изменена и стала использовать Win32 API, что отражает популярностьWindows 3.0.

Именно Windows NT, появившаяся к середине 1990-х гг., сыграла решающую роль в изменении отношения пользователей к Windows. До ее появления на рынке существовала точка зрения о недостаточной надежности Windows и невозможности ее использования как серверной ОС, вследствие чего в качестве серверных ОС многие предпочитали использовать Solaris или другие версии UNIX. Однако Windows NT Server, с ее передовой надежной архитектурой, расширенной поддержкой сети, поддержкой совместимости снизу вверх для приложений, разработанных для предшествующих ОС, изменила ситуацию на рынке до такой степени, что к середине 1990-х гг. лицензий на Windows NT было продано больше, чем на UNIX.

Весьма важной линией развития Windows стало семейство клиентских ОС - Windows 9xWindows 95 и Windows 98, затем – Windows Millennium. В этих операционных системах были реализованы расширенные мультимедийные возможности, поддержка драйверов самых разнообразных устройств (в том числе – механизм Plug-and-Play автоматического распознавания новых устройств и установки их драйверов), а также кодеки для обработки мультимедийной информации. Пользовательский интерфейс Windows 95 (с его "летающими листками" и характерным дизайном окон) стал эталоном для разработчиков GUI. Не случайно Microsoft значительно продлила срок поддержки Windows 98 для пользователей. Автору, так же как и миллионам других разработчиков, не хотелось "расставаться" с комфортным интерфейсом Windows 95 / 98.

Значительным рубежом в развитии ОС стал выпуск в 2001 г. ОС Windows XP, которая и в настоящее время, почти через 10 лет (дополненная Service Packs 1, 2 и 3), является одной из наиболее широко используемых ОС в мире. Кодовое название Windows XP – whistler (свистулька),по-видимому, из-за характерной мелодии, сопровождающей вход в системы и выход их системы. Windows XP популярна среди пользователей, благодаря удобному инсталлятору, повышенной надежности, удобному и эстетичному пользовательскому интерфейсу, расширенной поддержке драйверов устройств (начиная с Windows XP, практически никаких проблем с драйверами при установке новых устройств пользователи Windows не испытывают).

ОС Windows 2003 Server характерна прежде всего своей повышенной безопасностью – например, браузер в этой системе явным образом запрашивает у пользователя подтверждение надежности каждого конкретного нового сайта.

ОС Windows 2008 – серверная ОС с удобными средствами конфигурирования, удобной поддержкой сети, поддержкой параллельного программирования. Выпущена также ее специальная версия Windows 2008 HPC– High Performance Computing, с расширенной поддержкой параллелизма.

Недавно на рынке ОС появилась Windows 7 – клиентская ОС, по отзывам пользователей, весьма надежная и удобная.

Таков лишь очень краткий перечень уникальных результатов фирмы Microsoft в области операционных систем – за небольшой отрезок времени разработано более десятка клиентских и серверных ОС семействаWindows, значительно повышена их надежность и безопасность, расширены пользовательские возможности.

Наиболее значительной представляется линия развития ОС Windows NT – Windows 2000Windows XP – Windows 2003 – Windows Vista - Windows 2008 – Windows 7. Это семейство ОС использует общие принципы архитектуры и общую кодовую базу (код ядра). Поэтому в дальнейшем в данной и следующей лекциях мы фактически рассматриваем архитектуру всех новых ОС семейства Windows.

Принципы проектирования Windows – расширяемость, переносимость, надежность, безопасность, совместимость, производительность, поддержка интернационализации и локализации.

Расширяемость. Windows имеет многоуровневую архитектуру. Ядро и его исполнительная подсистема (executive),исполняемое в защищенном режиме, обеспечивает базовые системные сервисы. Поверх ядра реализованы несколько серверных подсистем, работающих в пользовательском режиме. Модульная структура позволяет добавлять новые подсистемы окружения без модификации ядра.

Переносимость.Благодаря своим принципам проектирования и архитектуры, Windows может быть перенесена с одной аппаратной платформы на другую со сравнительно небольшими изменениями. Система написана на языках высокого уровня - C и C++. Код, зависящий от процессора, изолирован в динамически линкуемую библиотеку (DLL), называемую уровень абстрагирования от аппаратуры - hardware abstraction layer (HAL).Идея HAL была реализована фирмой Microsoft, по признанию ее менеджеров, гораздо раньше – при разработке в 1980-х гг. пакета Microsoft Office для различных аппаратных платформ, включая Macintosh / MacOS (ОС Windows тогда еще не было). Эта же идея была использована и в Windows, и еще позднее – при реализации академической версии .NET – SSCLI (Rotor), работающей на трех различных платформах.

Надежность. Windows использует аппаратную защиту для виртуальной памяти и программные защитные механизмы для ресурсов ОС.

Безопасность. Как уже было сказано в предыдущих лекциях, именно с улучшения безопасности Windows была начата инициатива trustworthy computing, и с тех пор в каждой новой ОС Microsoft уделяет особое внимание безопасности.

Совместимость. Приложения, которые разработаны с учетом требований стандарта IEEE 1003.1 (POSIX), могут компилироваться для Windows без изменений в исходном коде и исполняться в среде Windows .

Производительность. Подсистемы Windows могут взаимодействовать друг с другом с помощью высокопроизводительной передачи сообщений. Прерывание низкоприоритетных потоков позволяет системе быстро реагировать на внешние события. Windows спроектирована для поддержки симметричного мультипроцессирования.

Поддержка интернационализации (i18n) и локализации (l10n).Windows поддерживает различные языки и культурные среды (locales)с помощью специализированных библиотек - NLS API.

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

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

Схема архитектуры Windows приведена на рис.1.

Рис. 1.Архитектура Windows .

 

В последующей части лекции рассмотрим подробнее основные компоненты архитектуры Windows .

Ядро Windows

Ядро в системе является основой функционирования исполнительной подсистемы (executive)и подсистем, выполняемых в пользовательском режиме. Отказы страниц в ядре исключены. Его исполнениеникогда не прерывается.

Ядро выполняет следующие основные функции:

· Планирование потоков

· Обработка прерываний и исключений

· Низкоуровневую синхронизацию процессов

· Восстановление после отказов электропитания.

Особенно важной и принципиально новой в операционных системах особенностью является то, что ядро системы Windows - объектно-ориентированное. Ядро использует два набора объектов:

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

· Управляющие объекты- асинхронные вызовы процедур, обработчики прерываний, объекты нотификации об электропитании, объекты состояния электропитания, объекты профилирования.

Поддержка потоков и процессов в ядре.Процесс имеет адресное пространство в виртуальной памяти, информацию (например, базовый приоритет) и тесную связь с одним или несколькими процессами. Потоки – единицы исполнения, планируемые диспетчером ядра. Каждый поток имеет свое собственное состояние, включая приоритет, связь с процессором и статистическую информацию. Поток может быть в следующих состояниях: ready, standby, running, waiting, transitionи terminated.

Планирование в ядре.Диспетчер использует 32-уровневую схему приоритетов для определения порядка выполнения потоков. Приоритеты разбиты на два класса:

· Класс real-time содержит потоки с приоритетами от 16 до 31.

· Класс variable содержит потоки с приоритетами от 0 до 15.

Характерными чертами стратегии приоритетов Windows являются следующие:

· Хорошее время ответа для потоков, использующих мышь и окна.

· Предоставление возможности потокам, связанным с вводом-выводом, обеспечивать занятость устройств ввода-вывода.

Планирование выполняется, когда поток переходит в состояние ready или wait, когда поток завершается, либо когда приложение изменяет приоритет потока или связь с процессором.

Потокам реального времени отдается предпочтение при выделении процессора; но ОС не гарантирует, что поток начнет выполняться в течение какого-либо определенного интервала времени (такой подход известен как soft real-time ).