ОС Windows XP

Автор работы: Пользователь скрыл имя, 08 Февраля 2013 в 20:48, курсовая работа

Описание работы

Windows XP (кодовое название при разработке – Whistler; внутренняя версия – Windows NT 5.1) – операционная система (ОС) семейства Windows NT корпорации Microsoft. Она была выпущена 25 октября 2001 года и является развитием Windows 2000 Professional. Название XP происходит от англ. eXPerience (опыт).
В отличие от предыдущей системы Windows 2000, которая поставлялась как в серверном, так и в клиентском вариантах, Windows XP является исключительно клиентской системой. Её серверным аналогом являетсяWindows Server 2003.

Содержание работы

Введение 4
Общая структура операционной системы Windows XP 6
Ядро 15
Процессы 22
Потоки 26
Уровни приоритета 29
Выводы 32
Часть 2. Задача о спящем парикмахере 34
Список использованной литературы 38

Файлы: 1 файл

Копия курсовая.doc

— 548.50 Кб (Скачать файл)

В состав системных сервисов входят следующие модули:

Smss.exe (диспетчер сеансов) – модуль управляет другими сервисами и службами Windows; запускает: Win32 (Csrss) и некоторые системные утилиты, выполняемые на этапе загрузки; реализует графический пользовательский интерфейс и запуск процессов Csrss.exe и WinLogon.exe;

Csrss.exe – модуль предназначен для организации взаимодействия между компьютером и пользователем;

Lsass.exe – служба, запускаемая WinLogon.exe и отвечающая за безопасность системы (предоставляет возможность пользователю зарегистрироваться в системе).

После загрузки операционной системы пользователь должен пройти процедуру аутентификации – ввести собственное регистрационное имя (логин) и пароль. Процедура подключения к системе позволяет определить, обладает ли пользователь правом входа и работы с системой. Эту процедуру выполняет служба WinLogon. При этом в системе происходят следующие события:

  • процесс WinLogon отображает на экране фон рабочего стола и приглашение к вводу пользователем логина и пароля. Введенные данные передаются подсистеме безопасности;
  • подсистема безопасности обращается к базе данных SAM (Security Accounts Manager) и проверяет, обладает ли пользователь полномочиями работы с системой.

Если пользователь является авторизированным пользователем системы, то подсистема безопасности формирует для него идентификатор доступа, который вместе с управлением передает обратно процессу WinLogon. Процесс WinLogon посредством обращения к подсистеме Win32 создает новый процесс для пользователя и прикрепляет ему идентификатор доступа. Каждый процесс, в дальнейшем создаваемый пользователем, отмечается принадлежащим ему идентификатором доступа, поэтому доступ пользователя к ресурсам системы контролируется и отслеживается. Благодаря обязательной процедуре подключения к системе упрощается реализация механизмов: аудит системы и квоты на использование ресурсов. Пользовательский идентификатор доступа содержит идентификатор пользователя, а также идентификаторы всех групп, к которым принадлежит данный пользователь.

Если операционная система не загружается корректно, то при нажатии в процессе загрузки Windows XP клавиши F8 происходит переход в расширенное меню запуска, содержащее пункты:

  • Безопасный режим – загрузка Windows XP с минимальным требуемым количеством системных файлов и драйверов устройств;
  • Безопасный режим с загрузкой сетевых драйверов – загрузка Windows XP с минимальным требуемым количеством системных файлов и драйверов устройств с поддержкой подключения к сети;
  • Безопасный режим с поддержкой командной строки – загрузка Windows XP с минимальным требуемым количеством системных файлов и драйверов устройств с загрузкой режима командной строки;
  • Включить протоколирование загрузки – режим позволяет записать этапы загрузки Windows XP в файл Ntbtlog. txt;
  • Включить режим VGA – режим, загружает драйвер стандартного монитора VGA с разрешением 640 на 480 точек на дюйм и 16 цветами;
  • Загрузка последней удачной конфигурации – режим, восстанавливает последнюю неиспорченную копию реестра Windows XP.

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

 

Ядро

Операционная система Windows XP проектировалась как модульная, многоуровневая архитектура, поддерживающая расширения за счет добавление новых функций. Архитектура позволяет добавлять поддержку новых устройств и новых возможностей, например шифрующей файловой системы (EFS). Архитектура системы позволяет добавлять поддержку приложений, которые основаны на других операционных системах, например OS/2 или POSIX. Конечно, обе эти системы более важны с исторической точки зрения, но они являются хорошим примером мЬдульной расширяемой архитектуры.

На рисунке 2 показана высокоуровневая архитектура Windows NT. Windows NT используется для описания всех версий операционной системы Windows, основанных на технологии NT. В это семейство входят Windows NT 3. x, Windows NT 4.0, Windows 2000, Windows XP и Windows Server 2003.

Рисунок 2. Архитектура Windows NT

Режим ядра содержит все  привилегированные процессы, которые  выполняются на уровне 0 архитектуры Intel х86. Режим ядра Windows NT состоит из трех основных подсистем.

  1. Уровень аппаратных абстракций?
  2. Ядро Windows NT.
  3. Выполняемый модуль Windows NT.

Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL) обеспечивает защиту данных за счет управления доступом к  аппаратным ресурсам. Это единственный модуль операционной системы Windows NT, который содержит код, зависящий от аппаратного обеспечения (или от архитектуры процессора). Кроме того, для написания уровня аппаратных абстракций иногда применяется язык ассемблера. В целом уровень аппаратных абстракций предоставляет дополнительный уровень абстракции компонентам более высокого уровня. Это позволяет создавать высокоуровневые компоненты, не зависящие от аппаратной архитектуры. Ниже описаны функциональные возможности, которые цредоставляет уровень аппаратных абстракций.

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

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

  • Микроядро (Microkernel) – компактный код, можно сказать, сердце системы. В рамках микроядра работают ключевые службы: диспетчер памяти, диспетчер задач и другие.
  • Слой абстрагирования (Hardware Abstraction Layer, HAL). Полностью абстрагирует код системы от конкретного аппаратного оборудования. Использование HAL позволяет обеспечить переносимость 99% кода системы между различным оборудованием.
  • Диспетчер Ввода/Вывода (Input/Output Manager). Полностью контролирует потоки обмена между системой и устройствами. Драйверы устройств работают в контексте I/O Manager. Если драйвер написан с ошибками и может привести к сбою – это вызовет фатальный крах ядра и всей системы. 70% случаев фатальных сбоев ("синий экран") – есть результат некорректного поведения драйверов устройств.
  • Windows XP содержит встроенный механизм контроля драйверов: правильно написанный и тщательно протестированный драйвер поставляется с цифровой подписью (Driver Signing). Правильная настройка системы заключается в запрещении установки драйверов без корректной подписи.
  • Модуль управления объектами (Object Manager), управления виртуальной памятью (Virtual Memory Manager), управления процессами (Process Manager), управления безопасностью (Security Reference Monitor), управления локальными вызовами (Local Procedure Calls Facilities) – важные компоненты ядра системы подробно рассматриваться не будут.

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

  • помощь в синхронизации данных;
  • планирование выполнения потоков и процессов;
  • управление прерываниями и исключениями;
  • восстановление системы после аварийных ситуаций, например после отказа питания.

Данные ядра всегда находятся  в оперативной памяти и никогда  не выгружаются на диск, как это происходит с пользовательскими приложениями. Данные ядра не могут быть вытеснены другими данными. Это значит, что выполнение кода ядра не может быть прервано ради другого кода, если только ядро не выполняет это самостоятельно. Ядро представляет собой объектно- ориентированную систему, в которой используется два класса объектов.

1. Объекты-диспетчеры, которые  позволяют управлять потоками  и процессами и применяются для синхронизации различных потоков/процессов. В число объектов-диспетчеров входят мьютекс-флаги (mutex – это сокращение от «mutual exclusion», т.е. взаимное исключение), семафоры (semaphore) и таймеры (timer). Мьютекс-флаги являются объектами синхронизации и используются для синхронизации данных между двумя компонентами.

2. Объекты управления, например асинхронные вызовы процедур (asynchronous procedure calls – АРС) и процедуры обслуживания прерываний (interrupt service routines – ISR).

Выполняемый модуль обеспечивает работу ключевых функций, включая программные  интерфейсы приложений (API), которые  позволяют потокам из пользовательского режима в Windows NT взаимодействовать с ядром Windows NT для запроса на предоставление услуг. Как и ядро Windows NT, выполняемый модуль не может быть выгружен из памяти. Модуль управляет несколькими операциями, включая ввод-вывод данных, поддержку работы системы безопасности, межпроцессное взаимодействие, управление памятью и процессами, поддержку интерфейса Plug and Play, управление питанием, файловыми системами, объектами и графическими устройствами. Весь выполняемый модуль Windows NT размещен в одном файле – ntoskrnl. exe. Для выполнения задач модуля создается лишь несколько потоков. Обычно системный процесс из пользовательского режима запрашивает запуск службы, и модуль будет выполняться в контексте запросившего процесса. Примером потока, который создается выполняемым модулем, может служить поток сброса страниц на диск.

Выполняемый модуль Windows NT, в свою очередь, содержит следующие компоненты:

  • диспетчер объектов;
  • монитор ссылок безопасности;
  • диспетчер процессов;
  • подсистема Plug and Play;
  • диспетчер энергопитания;
  • диспетчер виртуальной памяти;
  • диспетчер кэша.

Структура Windows XP не отличается оригинальностью: ядро системы (исполняется  на максимально приоритетном уровне процессора) и пользовательские подсистемы (исполняются на минимально приоритетном уровне).

Ядро системы является критичной  частью кода, любые ошибки, происходящие в ядре, приводят к фатальному краху системы – "синему экрану". Фактически – это ошибки типа "Нарушение общей защиты". Как только код ядра начинает обращаться в запрещенные для него области памяти (попытка прочитать или записать данные, исполнить неверную инструкцию, переход на запрещенную область), срабатывает система защиты памяти процессора, и управление передается системному обработчику исключений. Обработчик исключений не может восстановить корректное поведение кода. Все, что он делает – это вывод дампа на синий экран с указанием типа ошибки и содержимого памяти в области, где сработала защита.

Пользовательские подсистемы не столь критично влияют на работу системы в целом, так как они изолированы друг от друга и от ядра средствами управления памятью и собственно процессором. Ошибки, возникающие в приложениях, исполняются на уровне пользователя, то есть на менее привилегированном уровне, нежели ядро. Поэтому, система в состоянии контролировать процесс. При возникновении же ошибки или сбоя управление передается обработчику ошибок, который называется "Doctor Watson". Он принудительно завершит приложение. Ядро системы и остальные подсистемы остаются в целости и сохранности.

Наконец, особое по значению и важности место в ядре системы  занимает модуль графического интерфейса – Win32k.sys. Фактически – это часть подсистемы Win32, отвечающая за прорисовку и управление графическим интерфейсом. Этот модуль расположен в ядре специально для того, чтобы существенно повысить производительность графических операций ввода/вывода. Однако размещение столь критической части в ядре накладывает чрезвычайно строгие требования к корректности его исполнения. Фактически, ошибка в коде Win32k.sys приведет к краху системы. Разработчики Windows уделяют огромное внимание этому модулю, и именно он наиболее тщательно протестирован. Опыт эксплуатации систем Windows показывает, что код Win32k.sys работает абсолютно корректно и не содержит фатальных ошибок. Однако некорректный драйвер видеосистемы может все испортить.

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

Если сравнивать windows xp с UNIX/Linux то ядро UNIX/Linux имеет два вида исключений, которые обычно называют "oops" и "panic". Почти в каждой операционной системе паника происходит в тех случаях, когда ядро обнаруживает серьезную неисправность. Если система каким-либо образом повредила сама себя, ей требуется остановиться немедленно, пока она не произведет необратимых критических изменений (типа уничтожения файловой системы). Везде, где только возможно, UNIX/Linux пытается детектировать проблему и справиться с ней без остановки всей системы. Например, многие ситуации типа "oops" приводят к завершению процесса, который нормально запустился, но потом зациклил систему. Бывают, однако, ситуации, когда все настолько плохо, что полная паника является наилучшим выходом. Считается, что пользователи стабильных версий ядра не должны встречать ни "паник", ни "oops". Но в реальном мире они иногда происходят.

В Unix/Linux графическая система  существует отдельно от ядра и функционирует как обычное приложение. В операционных системах Windows графическая система интегрирована в ядро. В случае использования операционной системы на рабочей станции, особенно при запуске графикоемких приложений, возможно, лучше, когда графическая система входит в ядро – в этом случае она может быстрее работать. А при работе на сервере предпочтительней отделение графической системы от ядра ОС, так как она загружает память и процессор. В случае Unix/Linux графическую систему можно просто отключить, к тому же, если системный администратор ее все-таки хочет использовать, в Linux есть несколько графических оболочек на выбор, некоторые из них (например, WindowMaker) достаточно слабо загружают машину. Эта же особенность Unix-образных операционных систем позволяет запускать эти ОС на машинах с весьма скромными объемами ОЗУ и т.п. В случае Windows же графическая система слишком тесно интегрирована в ОС, поэтому она должна запускаться даже на тех серверах, на которых она вовсе не нужна.

 

Процессы

Структуры данных

Каждый процесс в Windows представлен блоком процесса (EPROCESS), создаваемым исполнительной системой. Кроме многочисленных атрибутов, относящихся к процессу, в блоке EPROCESS  содержатся указатели на некоторые структуры данных.  Так,  у каждого процесса есть один или более потоков,  представляемых блоками потоков исполнительной системы.  Блок EPROCESS  и связанные с ним структуры данных,  за исключением блока переменных окружения процесса (process environment block,  РЕВ) – существуют в системном пространстве.  РЕВ находится в адресном пространстве процесса,  так как содержит данные,  модифицируемые кодом пользовательского режима. Для каждого процесса,  выполняющего Windows-программу,  процесс подсистемы Windows (Csrss)  поддерживает в дополнение к блоку EPROCESS  параллельную структуру данных. Кроме того, часть подсистемы Windows, paботающая в режиме ядра (Win32k.sys),  поддерживает структуру данных для каждого процесса,  которая создается при первом вызове потоком любой функции USER или GDI, реализованной в режиме ядра.

Информация о работе ОС Windows XP