Студопедия

Главная страница Случайная страница

Разделы сайта

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






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






Каждый процесс в 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.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.