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

Содержание

Слайд 2

Процесс Процесс (Process) – абстракция, описывающая выполняющуюся программу. Операционная система называется

Процесс

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

если в ней реализована возможность параллельной (псевдопараллельной) обработки нескольких процессов. Реальная многозадачность возможна только в распределенной вычислительной системе.
Слайд 3

Типы многозадачности Существует 2 типа многозадачности: Процессорная многозадачность. В таком случае

Типы многозадачности

Существует 2 типа многозадачности:
Процессорная многозадачность. В таком случае наименьшим элементом

управляемого кода, которым может управлять планировщик ОС, является программа (процесс).
Поточная многозадачность. Наименьший элемент управляемого кода - поток (одна программа может выполнять 2 и более задачи одновременно).
Слайд 4

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

Модель процесса

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

команд*, регистров и переменных. Концептуально у каждого процесса есть свой виртуальный процессор, но, на самом деле, реальный ЦП постоянно переключается между программами. Это постоянное переключение между процессами называется мультипрограммированием или многозадачным режимом работы.

* - регистр процессора, содержащий адрес текущей выполняемой команды. В зависимости от архитектуры содержит либо адрес инструкции, которая будет выполняться, либо той, которая выполняется в данный.

Слайд 5

Модель процесса а - четыре программы, работающие в многозадачном режиме; б

Модель процесса

а - четыре программы, работающие в многозадачном режиме;
б - концептуальная

модель четырех независимых друг от друга процессов;
в – в отдельно взятый момент времени активна только одна программа.
Слайд 6

Создание процесса Существует 4 основных события, приводящих к созданию процессов: Инициализация

Создание процесса

Существует 4 основных события, приводящих к созданию процессов:
Инициализация системы.
Выполнение работающим

процессом системного вызова, предназначенного для создания процесса.
Запрос пользователя на создание нового процесса.
Инициализация пакетного задания.
Слайд 7

Завершение процесса Наиболее частые причины завершения процесса: Обычный выход (добровольно). Выход

Завершение процесса

Наиболее частые причины завершения процесса:
Обычный выход (добровольно).
Выход при возникновении ошибки

(добровольно).
Возникновение фатальной ошибки (принудительно).
Уничтожение другим процессом (принудительно).
Слайд 8

Иерархии процессов В некоторых системах, когда процесс порождает другой процесс, родительский

Иерархии процессов

В некоторых системах, когда процесс порождает другой процесс, родительский и

дочерний процессы продолжают оставаться определенным образом связанными. Дочерний процесс может и сам создавать какие-нибудь процессы, формируя иерархию процессов.
В Unix процесс, все его дочерние процессы и более отдаленные потомки образуют группу процессов.
Слайд 9

Пример иерархии процессов в Unix В загрузочном образе UNIX присутствует специальный

Пример иерархии процессов в Unix

В загрузочном образе UNIX присутствует специальный процесс,

называемый init. В начале своей работы init считывает файл, содержащий сведения о количестве терминалов*. Затем он разветвляется, порождая по одном процессу на каждый терминал. Эти процессы ждут, пока кто-нибудь не зарегистрируется в системе.

* - ОС предоставляет пользователю специальный интерфейс – терминал (командную строку), через которую пользователи получают персональную рабочую среду. Несмотря на то, что в современных UNIX-системах широко используются графические пользовательские интерфейсы, командная строка остаётся основным рабочим инструментом администратора системы.

Слайд 10

Пример иерархии процессов в Unix Если регистрация проходит успешно, то процесс

Пример иерархии процессов в Unix

Если регистрация проходит успешно, то процесс регистрации

порождает оболочку для приема команд. Эти команды могут породить другие процессы и т.д. Таким образом, все процессы в UNIX образуют дерево с корнем в init.

* - команды интерпретируются и выполняются специальной программой – командной оболочкой (или «shell», по-английски). Через командную оболочку производится управление пользовательскими процессами.

Слайд 11

Состояния процессов Процесс может находиться в трех состояниях: выполняемый (в данный

Состояния процессов

Процесс может находиться в трех состояниях:
выполняемый (в данный момент использующий

ЦП);
готовый (работоспособный, но временно приостановленный, чтобы дать возможность выполниться другому процессу);
заблокированный (не способный выполняться, пока не возникнет какое-нибудь событие).
Слайд 12

Состояния процессов На рисунке представлен граф состояний процесса

Состояния процессов

На рисунке представлен граф состояний процесса

Слайд 13

Планировщик Самый низший уровень структурированной в виде процессов операционной системы. Он

Планировщик

Самый низший уровень структурированной в виде процессов операционной системы. Он обрабатывает

прерывания и планирует выполнение процессов. Над этим уровнем находятся последовательные процессы.
Слайд 14

Моделирование процесса многозадачности

Моделирование процесса многозадачности

 

Слайд 15

Потоки В традиционных операционных системах у каждого процесса есть адресное пространство

Потоки

В традиционных операционных системах у каждого процесса есть адресное пространство и

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