Процессы и потоки

Программа - статический объект на диске.

Процесс - контейнер для ресурсов и исходных кодов программ. С каждым процессом программа связывает её адресное пространство, которое содержит стек, данные, набор регистров.

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

Преимущества потоков:

· меньше затрат на создание по сравнению с процессами;

· возможность взаимодействия между собой в пределах одного процесса, не обращаясь к ОС;

· повышение производительности одной программы.

С каждым процессом связывается его адресное пространство. Адресное пространство процесса содержит саму программу, ее данные, стек программы.

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

Три события приводят к созданию процесса:

· загрузка системы;

· уже работающий процесс вызывает запрос на создание процесса;

· запрос пользователя на создание процесса.

Создать процесс означает:

· создать описатель процесса;

· загрузить коды и данные исполняемой программы процесса с диска в оперативную память;

· в многопоточной системе для каждого создаваемого процесса создать как минимум один поток выполнения.

Дескриптор содержит информацию, необходимую в течение всего жизненного цикла процесса, и где содержится информация о состоянии процесса, о расположении его в памяти и на диске, информация о приоритете и пр.

Контекст содержит информацию, которая необходима для возобновления процесса.


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



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