1. Понятие процесса. Содержание

1. Понятие процесса. 3

2.Типы приложений под Windows 4

3.Описатель экземпляра процесса_ 5

4.Описатель предыдущего экземпляра процесса_ 6

5.Командная строка процесса_ 6

6.Переменные окружения_ 6

7.Текущие диск и каталог для процесса_ 8

8.Текущие каталоги для процесса_ 8

9.Создание процесса - функция CreateProcess 9

9.1. Параметры pszApplicationName и pszCommandLine 10

9.2. Параметры psaProcess, psaThread и blnheritHandles 11

9.3. Параметр fdwCreate 12

9.4. Параметр pvEnvironment 14

9.5.Параметр pszCurDir 15

9.6. Параметр psiStartlnfo _ 15

9.7. Параметр ppiProclnfo _ 18

10. Завершение процесса_ 20

10.1. Возврат управления входной функцией первичного потока _ 20

10.2. Функция ExitProcess 20

10.3. Функция TerminateProcess 21

10.4.Завершение всех процессов потока _ 22

11. Порядок завершения процесса_ 22

14. Дочерние процессы_ 23

15. Запуск обособленных дочерних процессов_ 24

16. Порядок выполнения работы_ 24

17. Контрольные вопросы_ 25


1. Понятие процесса.

Процесс обычно определяют как экземпляр выполняемой программы, и он состоит из двух компонентов

  • объекта ядра, через который операционная система управляет процессом. Там же хранится статистическая информация о процессе,
  • адресного пространства, в котором содержится код и данные всех EXE- и DLL модулей. Именно в нем находятся области памяти, динамически распределяемой для стеков потоков и других нужд.

Рис. 1.1 Операционная система выделяет потокам кванты времени по принципу карусели

Процессы инертны. Чтобы процесс что-нибудь выполнил, в нем нужно создать поток. Именно потоки отвечаю за исполнение кода, содержащегося в адресном пространстве процесса. В принципе, один процесс может владеть несколькими потоками, и тогда они "одновременно" исполняют код в адресном пространстве процесса.

Для этого каждый поток должен располагать собственным набором регистров процессора и собственным стеком. В каждом процессе есть минимум один поток. Если бы у процесса не было ни одного потока, ему нечего было бы делать на этом свете, и система автоматически уничтожила бы его вместе с выделенным ему адресным пространством.

Чтобы все эти потоки работали, операционная система отводит каждому из них определенное процессорное время. Выделяя потокам отрезки времени (называемые квантами) по принципу карусели, она создает тем самым иллюзию одновременного выполнения потоков. Рисунок 1.1. иллюстрирует распределение процессорного времени между потоками па машине с одним процессором. Если в машине установлено более одного процессора, алгоритм работы операционной системы значительно усложняется (в этом случае система стремится сбалансировать нагрузку между процессорами).

При создании процесса первый (точнее, первичный) поток создается системой автоматически. Далее этот поток может породить другие потоки, те в свою очередь — новые и т. д.

Замечание:
Windows 2000 в полной мере использует возможности машин с несколькими процессорами. Ядро Windows 2000 полностью поддерживает распределение процессорного времени между потоками и управление ими на таких системах.

Windows 98 работает только с одним процессором. Даже если у компьютера несколько процессоров, под управлением Windows 98 действует лишь один из них — остальные простаивают.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: