План лекции
Понятие процесса
Понятие процесса
Понятие процесса
Понятие процесса
Понятие процесса
Понятие процесса
Понятие процесса
Предпосылки появления потоков
Предпосылки появления потоков
Понятие потока
Создание процессов
Управляющие структуры процессов
Управляющие структуры процессов
Управляющие структуры процессов
Управляющие структуры процессов
Состояния процесса
Состояния процесса
Состояния процесса
Состояния процесса
Состояния процесса
Состояния процесса
Состояния процесса
Состояния процесса
Состояния процесса
Состояния процесса
Операции над процессами
437.00K
Категория: ПрограммированиеПрограммирование

Лекция процессы

1. План лекции

Процессы и потоки
Понятие
Создание и управляющие структуры
Контекст
Состояния
Операции над процессами
1

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

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

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

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

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

Пример 2: 2 студента пытаются выполнить
идентичные задания, но запущенные в ВС с
некоторым сдвигом во времени - извлечь
квадратный корень из 1.
В то время как 1-ое задание приступило к
печати полученного значения и ждет
окончания операции ввода-вывода, а 2-ое
только начинает исполняться.
4

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

Следовательно, неправомерно говорить
об идентичности заданий внутри ВС, а
термин «задание» («программа») в
пользовательском смысле не следует
применять в подобных случаях для
описания происходящего в ВС – они
больше
подходят
для
описания
статических, неактивных объектов
5

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

Для описания программы (задания) в
процессе
исполнения
следует
применять
другой
термин,
характеризующий
его
динамику
-
процесс
6

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

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

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

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

9. Предпосылки появления потоков

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

10. Предпосылки появления потоков

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

11. Понятие потока

В
простейшем
случае
процесс
состоит из одного потока, а это
означает, что остается только одна
единица
работы
и
потребления
ресурсов – процесс
11

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

Создать процесс – создать описатель процесса
(контекст), в качестве которого выступает одна
или несколько информационно-управляющих
структур, содержащих все сведения о процессе,
необходимые ОС для управления им.
Примеры:
блок управления задачей (Task Control Block –
ТСВ) в OS/360,
управляющий блок процесса (Process Control
Block – РСВ) в OS/2,
дескриптор процесса в UNIX,
объект-процесс (object-process) в Windows NT
12

13. Управляющие структуры процессов

Для
управления
располагать
всей
информацией,
для
процессами
необходимой
чего
ОС
должна
для
каждому
этого
процессу
необходим дескриптор, содержащий (как минимум)
следующие параметры (9 шт.):
1. идентификатор процесса (Process Identifier,
PID);
2. тип (или класс) процесса, который определяет
некоторые правила предоставления ресурсов;13

14. Управляющие структуры процессов

3. приоритет процесса, в соответствии с которым
предоставляются ресурсы (в рамках одного
класса
процессов
в
первую
очередь
обслуживаются более приоритетные процессы);
4. переменную состояния, которая определяет, в
каком состоянии находится процесс (готов к
работе,
исполняется,
ввода-вывода и т.д.);
ожидает
устройства
14

15. Управляющие структуры процессов

5. контекст задачи, т.е. защищенную область
памяти (или адрес такой области), в которой
хранятся
текущие
значения
регистров
процессора, когда процесс прерывается, не
закончив работы;
6. информацию о ресурсах, которыми процесс
владеет и/или имеет право пользоваться
(указатели на открытые файлы, информация о
незавершенных операциях ввода-вывода и др.);
7. место (или его адрес) для организации общения
с другими процессами;
15

16. Управляющие структуры процессов

8. параметры времени запуска (момент времени,
когда процесс должен активизироваться, и
периодичность этой процедуры);
9. адрес задачи на диске (в случае отсутствия
системы управления файлами) в ее исходном
состоянии
и
адрес
на
диске,
куда
она
выгружается из ОП, если ее вытесняет другая
задача.
16

17. Состояния процесса

Выбран для исполнения
Вход
Процесс не исполняется
Процесс исполняется
Выход
Приостановка
Процесс, выбранный для исполнения, может все еще
ждать события, из-за которого он был приостановлен, и
реально быть не готовым к выполнению. Для того чтобы
избежать такой ситуации, разобьем состояние процесс не
исполняется на два новых состояния:
• готовность
• ожидание
17

18. Состояния процесса

Вход
Ожидание
Событие произошло
Готовность
Прерывание
Выбран для
исполнения
Ожидание события
Исполнение
Выход
18

19. Состояния процесса

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

20. Состояния процесса

С учетом состояний рождение и
закончил исполнение модель состояний
может быть представлена более
детально
20

21. Состояния процесса

Ожидание
Рождение
Допуск к
планированию
Событие произошло
Готовность
Прерывание
Выбран для
исполнения
Ожидание события
Исполнение
Приостановлен –
готов (ОСРВ)
Завершение работы
Завершение
21

22. Состояния процесса

рождение –> готовность
Выполняется при готовности ОС к обработке
дополнительных процессов, что позволяет
предотвращать снижение
производительности, которое может
произойти, если будет загружено слишком
много активных процессов
готовность –> исполнение
Осуществляется выбор процесса для
исполнения в соответствие с установленной
дисциплиной обслуживания
22

23. Состояния процесса

исполнение –> готовность
Обычно происходит в результате окончания
выделенного процессу кванта времени
непрерывной работы или в результате
появления процесса с более высоким
приоритетом
ожидание –> готовность
Блокированный процесс переходит в
состояние готовности к выполнению в момент
появления некоторого ожидаемого события
23

24. Состояния процесса

исполнение –> ожидание
Перевод процесса в заблокированное
состояние осуществляется в случае, если
для продолжения его работы требуется
наступление некоторого события
исполнение –> завершение
Если процесс сигнализирует об окончании
своей работы или происходит его аварийное
завершение, ОС прекращает его выполнение
24

25. Состояния процесса

Дополнительное состояние приостановлен-готов
может в некоторых случаях существовать в
ОСРВ:
при пиковой нагрузке вычислительной системы,
когда она не может обеспечить требуемое
быстродействие, при расходах времени на смену
состояний, превышающих полезную работу
при ненадежной работе системы и возможном ее
отказе
в случаях,
когда промежуточные результаты
работы
процесса
вызывают
сомнение
в
правильности работы программы
25

26. Состояния процесса

Следует
помнить,
что
количество
состояний процесса в различных ОС
может быть различно:
в ОС Windows NT – 7 состояний
в ОС Unix – 9 состояний
26

27. Операции над процессами

Изменением состояния процессов занимается ОС,
совершая операции над ними.
Основные операции
над процессами удобно объединить в три пары:
создание
процесса

завершение
процесса
(одноразовые);
запуск процесса (перевод из состояния готовность в
состояние исполнение) - приостановка процесса (перевод
из состояния исполнение в состояние готовность);
блокирование
процесса
(перевод
из
состояния
исполнение в состояние ожидание) – разблокирование
процесса (перевод из состояния ожидание в состояние
готовность).
Существует непарная операция: изменение приоритета
процесса.
27
English     Русский Правила