Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Внутреннее устройство процессов. Структуры данных

Читайте также:
  1. Habitus», практики, структуры. П. Бурдье.
  2. I. УСТРОЙСТВО ТОКАРНО-ВИНТОРЕЗНОГО СТАНКА
  3. I. УСТРОЙСТВО ШИРОКОУНИВЕРСАЛЬНОГО ФРЕЗЕРНОГО СТАНКА
  4. II. 12-24. Причина страданий преданных
  5. II. Ввод и редактирование данных
  6. II. Социальная морфология или групповые структуры
  7. III. Социальная статика или структуры коммуникации

Каждый процесс в Windows представлен блоком процесса, создаваемого исполнительной системой, который называется EProcess. В этом блоке содержатся указателя на некоторые другие структуры данных.

Так, у каждого процесса есть один или более обязательных потоков, которые представлены также блоками описания EThread.

Для каждого процесса, выполняющегося в Windows, процесс CSRSS.exe поддерживает в дополнение к блоку EProcess другие параллельные структуры данных, необходимые для подготовки процесса на выполнение.

На слайде 22 показаны основные структуры процесса и соответственно потока, относящегося к процессу.

Содержимое блока EProcess следующее:

1) блок процесса ядра (KProcess) является указателем на список блоков потока ядра KThread, принадлежащих процессу;

2) идентификатор процесса – уникальный идентификатор для данного образа процесса;

3) блок Cloud(???) – ограничение на использование виртуальной памяти – наборы структур данных, которые существуют в процессе для описания частей виртуального пространства;

4) информация о виртуальной памяти – текущий и максимальный размер виртуальной памяти, а также информация о использовании страничного файла, а также каталога страниц процесса и т.д.

5) LPC порт исключений – служит для канала межпроцессной связи;

6) маркер доступа – объект, описывающий профиль защиты данного процесса;

7) таблица описателей (адрес таблицы описателей, принадлежащий процессу);

8) блок переменных окружения процесса – содержит информацию об образе исполняемого файла и информацию о динамически выделяемой памяти – куче процесса;

9) блок процесса подсистемы Windows – содержит информацию о процессе для той части подсистемы Windows, которая работает в ходе выполнения процесса в режиме ядра.

Блок EProcess интересен, его можно посмотреть в Windows Debugger.

В общем случае процесс Windows включает компоненты:

1) закрытое виртуальное адресное пространство – диапазон адресов виртуальной памяти, которыми может пользоваться процесс;

2) исполняемую программу – начальный код и данные, которые проецируются на виртуальное адресное пространство процесса;

3) список открытых описателей различных системных ресурсов – семафоров, коммуникационных портов и других объектов;

4) контекст защиты – маркер доступа, идентифицирующий пользователя и группы безопасности, сопоставляемые с процессом;

5) минимум один поток;

6) идентификатор.

Порядок создания процесса на основе функции CreateProcess. Создание процесса осуществляется в Windows вызовом таких функций, как CreateProcess, CreateProcessUser и т.д. и проходит в течение нескольких этапов с использованием следующих компонент ОС: kernel32.dll, исполнительной системы и процесса подсистемы окружения Windows. Поскольку Windows теоретически включает несколько подсистем окружения, поэтому CreateProcess в зависимости от подсистемы окружения выполняется по-разному.



Укрупненно порядок создания процесса следующий:

1) открывается файл образа процесса (.exe), который будет выполняться в процессе;

2) исполнительная система ОС создает объект «процесс»;

3) создается так называемый первичный поток, который будет выполняться в процессе, включающий контекст – код и данные, стек и описатель объекта «поток»

4) подсистема Windows уведомляется о создании нового процесса с потоком в нем;

5) Windows начинает осуществлять выполнение потока;

6) инициализируется адресное пространство виртуальной ОП, туда загружаются необходимые компоненты для выполнения процесса;

7) сообщение планировщику процессов Windows о готовности процесса к выполнению.

Прежде, чем открыть образ для выполнения, ОС выполняет следующие действия:

1) задается класс приоритета процесса;

2) формируется необходимая информация для взаимодействия с компонентой графического интерфейса. В дальнейшем процесс запускается тогда, когда в зависимости от приоритета до него дойдет очередь.

Более подробно этапы создания процесса показаны на слайде 33.

 


Дата добавления: 2015-07-07; просмотров: 277 | Нарушение авторских прав


Читайте в этой же книге: Подсистема окружения Windows | Исполнительная система Windows | Драйверы устройств в ОС Windows | Виртуальная память | Уровни запросов программных прерываний | Программные прерывания | Диспетчеризация исключений | Необработанные исключения | Глобальные флаги Windows | Трассировка событий ядра |
<== предыдущая страница | следующая страница ==>
Создание процессов| Сущность менеджмента

mybiblioteka.su - 2015-2021 год. (0.007 сек.)