Автор работы: Пользователь скрыл имя, 01 Мая 2016 в 14:38, реферат
В разных ОС процессы реализованы по-разному. Они различаются своим представлением (структурами данных), способами именования и защиты, а также отношениями между собой. Базовые процессы Windows имеют ряд характеристик, отличающих их от процессов других ОС:
процессы реализованы как объекты, и доступ к ним осуществляется посредством объектных сервисов;
в адресном пространстве процесса может исполняться несколько потоков;
объект-процесс и объект-поток имеют встроенные возможности синхронизации.
Введение……………………………………………………………
Структура ОС Windows…………………………………………………
Подсистема Win32………………………………………………………
Объекты ядра…………………………………………………………
Процессы и потоки в ОС Windows………………………………………..
Заключение…………………………………………………………………
Список литературы………………………………………………………
на тему: «Процессы и потоки в ОС Windows»
2016 г.
Содержание
Введение…………………………………………………………
Заключение……………………………………………………
Список литературы……………………………………………………
Введение
Рис 1. Структура ОС Windows
Первые версии системы имели микроядерный дизайн, основанный на микроядре Mach, которое было разработано в университете Каренги-Меллона. Архитектура более поздних версий системы микроядерной уже не является.
Большой объем системного кода (управление системными вызовами и экранная графика) был перемещен из адресного пространства пользователя в пространство ядра и работает в привилегированном режиме.
Рис 2. Структура ОС Windows
В результате в ядре ОС Windows переплетены элементы микроядерной архитектуры и элементы монолитного ядра (комбинированная система). Основные компоненты ядра Windows располагаются в вытесняемой памяти и взаимодействуют друг с другом путем передачи сообщений (микроядерна архитектура). В тоже время все компоненты ядра работают в одном адресном пространстве и активно используют общие структуры данных, что свойственно операционным системам с монолитным ядром.[3]
Рис 3. Подсистема Win32
Основные компоненты Win 32:
При вызове приложением одной из win32 –функций может возникнуть одна из трех ситуаций:
Для работы с важными системными ресурсами ОС Windows создает объекты, управление которыми осуществляет менеджер объектов.
- ядро поддерживает базовые объекты двух типов: объекты диспетчера (события, мьютексы, семафоры, потоки ядра, таймеры и др.) и управляющие (DPC, APC, прерывания, процессы, профили и др.)
- Над объектами ядра находятся
объекты исполнительной
Процесс является динамическим объектом, описывающим выполнение программы. Процессу выделяются системные ресурсы: закрытое адресное пространство, семафоры, коммуникационные порты, файлы и т.д. Процесс характеризуется текущим состоянием (выполнение, ожидание, готовность и т.д.).
Задача ОС состоит в том, чтобы организовать их поддержку, которая подразумевает, что каждый процесс получит все необходимые ему ресурсы.
Независимые процессы не должны влиять друг на друга, а процессы, которым необходимо обмениваться информацией, должны иметь возможность сделать это путем межпроцессного взаимодействия.
В Windows процесс – это объект, создаваемый и уничтожаемый менеджером объектов. Процесс содержит потоки, учетную информацию и ссылки на ресурсы, которые обобществляются всеми потоками процесса.
Процесс в Windows состоит из следующих компонентов:
- структура данных, содержащая
всю информацию о процессе, в
том числе список открытых
дескрипторов различных
- адресное пространство - диапазон адресов виртуальной памяти, которым может пользоваться процесс;
- исполняемая программа и
Поток — некая сущность внутри процесса, получающая процессорное время для выполнения. Без потока программа процесса не может выполняться. Поток включает следующие наиболее важные элементы:
- содержимое набора регистров процессора, отражающих состояние процессора;
- два стека, один из которых
используется потоком при
- закрытую область памяти, называемую локальной памятью потока и используемую подсистемами, библиотеками исполняющих систем и DLL;
- уникальный идентификатор
- иногда потоки обладают своим
контекстом защиты, который обычно
используется многопоточными
Выбор текущего потока из нескольких активных потоков, пытающихся получить доступ к процессору называется планированием.
Выбранный для выполнения поток работает в течение некоего периода, называемого квантом, по истечении которого поток вытесняется. Предполагается, что поток не знает, в какой момент он будет вытеснен. Поток также может быть вытеснен даже, если его квант еще не истек.
Процедура планирования обычно связана с весьма затратной процедурой диспетчеризации - переключением процессора на новый поток, поэтому планировщик должен заботиться об эффективном использовании процессора. Принадлежность потоков к процессу при планировании не учитывается, то есть единицей планирования в ОС Windows является именно поток.[2]
Создание процессов
Создание Win32 процесса осуществляется вызовом одной из таких функций, как CreateProcess, CreateProcessAsUser и CreateProcessWithLogonW и происходит в несколько этапов:
- Открывается файл образа (EXE), который
будет выполняться в процессе.
Если исполняемый файл не
- Создается объект Win32 «процесс».
- Создается первичная нить (стек, контекст и объект «нить»).
- Подсистема Win32 уведомляется о создании нового процесса и нити.
- Начинается выполнение
- В контексте нового процесса
и потока инициализируется
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
| |
| |
| |
| |
|
Процесс завершается если:
- Входная функция первичной нити возвратила управление.
- Одна из нитей процесса
- Нить другого процесса вызвала функцию TerminateProcess.
Когда процесс завершается, все User- и GDI_объекты, созданные процессом, уничтожаются, объекты ядра закрываются (если их не использует другой процесс), адресное пространство процесса уничтожается.[5]