Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Архитектура и управление процессами в ОС семейства Windows



Рис.1.

Существуют 4 типа пользовательских процессов:

1. Фиксирование процессов (диспетчер сеансов)

2. Процессы сервисов (диспетчер задач)

3. Пользовательские процессы (x64/x32 разрядные)

4. Подсистема окружения (библиотеки)


Компоненты ядра:

1) Исполнительная система Windows. Содержит базовые сервисы ОС, обеспечивающие управление памятью, потоками, ввод вывод и межпроцессное взаимодействие.

2) Ядро. Cодержит низкоуровневые функции ОС. Планирование потоков, диспетчеризацию прерываний и исключений, синхронизацию и т. д.

3) Драйверы устройств. Сюда же входят драйверы сетевые и файловых систем. Одна из особенностей ОС – фильтры файловых систем реализованы в виде драйверов.

4) Уровень абстрагирования от оборудование (HAL). Абстрагирует ядро драйвер и исполнительную систему от специфики оборудования.

5) Подсистема окон и графики. Реализует графическое отображение.

Ядро состоит из набора функций, используемых компонентами исполнительной подсистемы и включающих низкоуровневые, аппаратнозависимые средства поддержки разных процессорных архитектур.

Ядро состоит из набора объектов, реализующих системные механизмы, но не участвующих в принятии решений, связанных с системной политикой.

Основные группы объектов ядра:

1) Управляющие (controlobjects). Включают объект асинхронного и отложного вызова процедур и объекты диспетчера ввода-вывода.

2) Объекты диспетчера (dispatcherobjects). Реализуются средством синхронизации. Поток, семафор, события, таймер входят в состав.

Объект исполнительной подсистемы инкапсулюруют один или более объектов ядра. (высокоуровневые средства)

Уровень абстрагированного оборудования – это загружаемый модуль ядра, представляющий низкоуровневый интерфейс с аппаратной платформой. Обеспечивает переносимость ОС.

Драйверы устройств являются загружаемыми модулями режима ядра и могут выполняться в одном из 3 контекстов:

1) В контексте пользовательского потока, вызвавшего функцию ввода-вывода.

2) В контексте системного потока режима ядра.

3) Как результат прерывания

Типы драйверов устройств:

1) Драйверы аппаратных устройств – управляют через HAL оборудованием.

2) Драйверы файловой системы. Принимают запросы на файловый ввод-вывод и транслируют их запросы ввода-вывода конкретного устройства.

3) Драйверы фильтра файловой системы. Обеспечивают дополнительные функции: зазеркаливание, шифрование дисков и так далее.

4) Сетевые редиректоры – это драйверы файловых систем, передающие запросы на файловый ввод-вывод другим компьютерам в сети и принимающих такие запросы.

5) Драйверы протоколов – реализуют сетевые протоколы

6) Драйверы потоковых фильтров ядра. Действуют по цепочке для обработки потоков данных. Например, при записи или воспроизведении аудио или видео.

В каждой Windows системе выполняются процессы:

1) Idle – включает по одному потоку на процессор для учёта времени его простоя.

2) System – содержит большинство системных потоков в режиме ядра. (kanel-vodel system threads). Какправило. Это потоки, которые всегда функционируют в режиме ядра

3) Smss - диспетчер сеансов. Это порождаемый поток режима ядра, функционирующий в пользовательском режиме. Отвечающий за последний этап инициализации исполнительной системы ядра.Создание доп. Страничных файлов. Также запускает процессы подсистем Csrssи winlogon. А они уже создают остальные системные процессы.

4) Winlogon – процесс входа в систему. Уведомление о запросе пользователя на вход в систему генерируется при комбинации клавиш SAS-SecureAttentionSequence. Защита от перехвата. Нельзя перехватить управление в пользовательском режиме.

5) Диспетчер управления сервисами Services и дочерние процессы сервисов. Например, универсальный процесс хостинга сервисов Svhost.

6) Серверный процесс локальной аутентификации Lsass.


Процесс windows состоит из:

1) Структура данных, содержащая всю информацию о процессе.

2) Адресное пространство.

3) Исполняемые программой данные.

За исполнение кода, содержащегося в адресном пространстве отвечают потоки. В каждом процессе есть минимум один поток. Каждый поток имеет уникальный идентификатор, содержимое набора регистров, отражающих состояние процессора, 2 стека. 1 для выполнения в режиме ядра, другой в пользовательском и закрытую область памяти, называемую локальной памятью потока. Thread local storage TLS.

Реализованная система вытесняющего планирования на основе приоритетов с квантованием по времени. По окончании кванта проверяется наличие готовых потоков с тем же или большим приоритетом. Если таких нет, потоку выделяется ещё 1 квант. Поток с более высоким приоритетом может прерывать выполнение. Квант не измеряется в единицах времени, а выражается целым числом. Для каждого потока хранится текущее значение его кванта (3,6,36..). Выделение кванта означает его установку в начальное значение. Значения можно вручную поменять. По каждому прерыванию таймера из кванта вычитается 3. Частота срабатывания таймера зависит от аппаратной платформы.

Используется 32 уровня приоритета от 0 до 31. 0 – системный уровень, зарезервированный для управления потоком обнуления страниц.

С 1 по 15 экономический уровень приоритета,

с 16 по 31 – уровни реального времени.

При создании процесса ему назначается один из 6 классов приоритетов.

1. RealTimeClass (24).

2. Highclass (13).

3. AboveNormalclass (10).

4. Normal (8).

5. BelowNormal (6).

6. Idle (4).

Приоритет каждого потока складывается из приоритет его процессов и относительного приоритета самого потока.


Есть 7 относительных приоритетов:

1) Normal

2) Above Normal (+1)

3) Below Normal (-1)

4) Highest (+2)

5) Lowest (-2)

6) TimeCritical. ДляReal Time Class 31, дляостальных 13

7) Idle. Для realtime 16, для остальных 1

Если система многопроцессорная, поток по умолчанию выполняется для любого доступного процесса. Может быть выполнена привязка к конкретному процессору через win 32 (64).

Каждому процессу доступны линейные 4 гигобайтное виртуальное адресное пространство. Его верхняя половина резервируется ОС, нижняя доступна процессу. Виртуальное АП доступно всем потокам этого процесса.

Создание процессов осуществляется вызовом функции группы CreateProcess. При этом открывается файл образа exe, который будет выполняться в процессе. Если исполняемый файл не win 32 приложение, то ищется образ поддержки. Создаётся объект процессов. Создаётся первичный поток (стек, контекст, объект потока). Подсистема планирования уведомляется о создании нового процесса и потока. Инициализируется адресное пространство и начинается выполнение.

Завершение процесса происходит, если:

1) Входная функция первичного потока возвратила управление

2) Один из потоков процесса вызвал функцию ExitProcess

3) Поток другого процесса вызвал функцию terminateprocess

Для управления ресурсами используются объекты ядра по их описателю(handle).

Это основные объекты ядра:

AccessTochen (маркер доступа).

Changeotification – уведомление об изменениях на диске.

I/OComplationports – завершениеввода-вывода.

Event – событие.

File – файл.

Filemapping – проекцияфайла.

ob – задание.

Mutex–.

Pipe – канал.

Process – процесс.

Semaphore – семафор.

Thread – поток.

Timer - таймер.





Дата публикования: 2015-10-09; Прочитано: 448 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...