Управление процессами.

Подсистема управления процессами непосредственно влияет на функционирование вычислительной системы. Для каждой выполняемой программы ОС организует один или более процессов. Каждый такой процесс представляется в ОС информационной структурой (таблицей, дескриптором, контекстом процессора), содержащей данные о потребностях процесса в ресурсах, а также о фактически выделенных ему ресурсах (область оперативной памяти, количество процессорного времени, файлы, устройства ввода-вывода и др.). Кроме того, в этой информационной структуре хранятся данные, характеризующие историю пребывания процесса в системе: текущее состояние (активное или заблокированное), приоритет, состояние регистров, программного счетчика и др.

В современных мультипрограммных ОС может существовать одновременно несколько процессов, порожденных по инициативе пользователей и их приложений, а также инициированных ОС для выполнения своих функций (системные процессы). Поскольку процессы могут одновременно претендовать на одни и те же ресурсы, подсистема управления процессами планирует очередность выполнения процессов, обеспечивает их необходимыми ресурсами, обеспечивает взаимодействие и синхронизацию процессов.

 

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

В Windows процесс включает в себя следующее:

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

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

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

4 Контекст защиты (security context), называемый маркером доступа (access token) Он идентифицирует пользователя, группу безопасности и привилегии, Определяет полномочия процесса

5 Уникальный идентификатор процесса (во внутрисистемной терминологии называемый идентификатором клиента)

6 Минимум один поток

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

1 Содержимое набора регистров процессора, отражаюшее его состояние

2 Два стека для пользовательского режима и режима ядра, соответственно

3 Закрытая область памяти – локальная память потока

4 Уникальный идентификатор потока (ид клиента)

Иногда имеют контекст защиты

Набор регистров, стеки и лок память – контекст потока. Контекст потока – структура данных, единственно зависящая от аппаратуры