Операционная система:
· Для каждого выполняемого приложения ОС создает процесс
· В каждый момент времени ОС работает с множеством процессов
· Одна из главных задач ОС состоит в распределении ресурсов между процессами
· Ресурсы операционная память и процессорное время
Процесс – владелец ресурсов
· Когда ОС создает процесс, то выделяет ему ресурсы
· Процесс не выполняет код приложения, следовательно, время процессора непосредственно процессу не выделяется.
· Код программы выполняют потоки и именно потокам ОС выделяет процессорное время
· При создании процесса ОС создает поток
Процесс
Процесс – абстракция, представляющая программу во время ее выполнения.
Процессу ОС выделяет ресурсы, необходимые для выполнения программы, например:
· Адресное пространство процесса содержит его программы код, данные и стек
· Файлы используются процессом для чтения входных данных и записи выходных
· Устройства ввода-вывода используются в соответствии с их назначением
Процесс – пассивный объект, владелец ресурсов, контейнер для выполнения потоков.
Поток
Поток – абстракция, представлявшая последовательное выполнение команд программы.
§ Процесс может иметь несколько потоков:
· Потоки совместно используют
· Глобальные и статические переменные
· Динамически распределяемую память (кучу)
· Системные ресурсы
§ Каждый поток имеет свои собственные:
· Программный счетчик (IP)
· Значение регистров
· Локальные переменные
Процесс – совокупность взаимодействующих потоков и выделяемых ресурсов
Зачем нужны процессы с несколькими потоками?
Для параллельной обработки нескольких однотипных запросов
Для разделения исполнительных активностей, параллельно решающих различные задачи
§ Обеспечение пользовательского интерфейса
§ Математические вычисления
§ Фоновая печать
§ …
Для создания параллельных программ, эффективно использующих аппаратные ресурсы
Для улучшения структуры программы
Состояния потока в многозадачной ОС
Выполнение – состояние работающего потока – обладающего всеми необходимыми ресурсами, в том числе возможностью использования ЦП
Готов к выполнению – поток обладает всеми необходимыми для выполнения ресурсами за исключением ресурса «Время ЦП»
Ожидается – выполнение потока заблокировано до наступления некоторого внешнего события (например, поступления входных данных или освобождения ресурса)