Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: платный | ВУЗ: Санкт-Петербургский государственный университет
Лекция 27:

Обзор архитектуры и возможностей систем Windows 2000/XP/2003/Vista/2008/7

< Лекция 26 || Лекция 27: 123 || Лекция 28 >
Аннотация: В лекции рассмотрены следующие вопросы: история Windows; роль Windows NT; архитектура Windows; ядро; исполнительная подсистема; подсистемы окружения.
Ключевые слова: Windows, мобильное устройство, mobile, прогрессирующее, надежность, архитектура, windows 2000, многозадачность, операционная система, микропроцессор, POSIX, многопроцессорность, расширяемость, интернационализация, MS-DOS, professional, server, advanced, оболочка, DOS, пользовательский интерфейс, workgroup, исполнение, new, technological, OS/2, API, win32, серверная ОС, Unix, windows 9x, windows 95, поддержка, Plug-in, GUI, service pack, выход, драйвер устройства, браузер, параллельное программирование, HPC, perform, Computing, &-параллелизм, отрезок, безопасность, Windows Vista, ядро, системный сервис, язык высокого уровня, DLL, HAL, macintosh, net, механизмы, trustworthy, IEEE, прерывание, NLS, executive, функции безопасности, синхронизация процессов, мьютекс, Профилирование, адресное пространство, связь, поток, статистическая информация, диспетчер, real-time, устройство ввода/вывода, ready, приложение, приоритет потока, межпроцессорный, TLB, IRQ, DPC, ассемблер, x86, spin lock, слежение, parsing, модуль, путь доступа, символическая ссылка, объект, списки управления доступом, процессор, кэш, алиас, менеджер, страничная организация, килобайт, адресное пространство процесса, таблица страниц, трансляция, table entry, фрейм, ссылка, виртуальный адрес, directory entry, page table, Entry, бит, родительский процесс, LPC, серверный процесс, очереди сообщений, графическая подсистема, Си, память, кэширование, операции, файловый ввод/вывод, контроль доступа, время выполнения, монитор, список, права, PCI-X, USB, pnp, драйвер, VDM, менеджер окон, GDI, запись, пароль, доступ, механизм синхронизации, процесс ядра, системный объект, переносимость, hardware, abstraction layer, управляющие, soft, spin, Object, Local, procedure, call, virtual, machinable, Kerberos

Презентацию к данной лекции Вы можете скачать здесь.

Введение

Windows – наиболее распространенное семейство операционных систем для настольных и портативных компьютеров. Имеются также версии Windows для мобильных устройств (Windows Mobile) и для компьютерных кластеров. Можно без преувеличения сказать, что Windows – это тот мир, в котором живут и работают миллионы программистов. Windows в своем развитии бурно прогрессирует. Значительно повысилась надежность системы, значительно возросли ее возможности. В данной и следующей лекциях рассмотрены история, архитектура и возможности Windows. В "Обзор архитектуры и возможностей систем Windows 2000/XP/2003/Vista/2008/7" и "Системные механизмы Windows" рассмотрены следующие вопросы:

  • История
  • Принципы проектирования
  • Компоненты системы
  • Подсистемы окружения
  • Файловая система
  • Работа в сети
  • Программный интерфейс.

Система Windows 2000

Windows 2000 – это 32-битовая многозадачная операционная система для микропроцессоров типа Intel. Windows 2000 продолжает линию развития, начатую в середине 1990-х гг. системой Windows NT.

Основные цели разработки Windows 2000 и последующих новых версий Windows (2003/2008/7):

  • переносимость
  • безопасность
  • соответствие POSIX
  • поддержка многопроцессорности
  • расширяемость
  • поддержка интернационализации
  • совместимость приложений с MS-DOS и ранними версиями Microsoft Windows.

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

Windows 2000 доступна в нескольких версиях - 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 2000, мы фактически рассматриваем архитектуру всех новых ОС семейства Windows.

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

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

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

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

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

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

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

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

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

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

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

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

увеличить изображение
Рис. 27.1. Архитектура Windows 2000.

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

Ядро Windows 2000

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

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

  • Планирование потоков
  • Обработка прерываний и исключений
  • Низкоуровневую синхронизацию процессов
  • Восстановление после отказов электропитания.

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

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

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

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

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

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

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

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

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

< Лекция 26 || Лекция 27: 123 || Лекция 28 >
Гульжан Мурсакимова
Гульжан Мурсакимова
Василий Четвертаков
Василий Четвертаков
Денис Сафронов
Денис Сафронов
Россия
жылдыз насырбекова
жылдыз насырбекова
Киргизия, бишкек