Процессы и потоки. Планирование и синхронизация
Концепция процессов и потоков
2. Создание и завершение процессов
3. Иерархия процессов
4. Состояния процесса
Граф состояний процесса в многозадачной среде
5. Обработка прерываний
Обработка простого прерывания
IRQ0 - IRQ15 (31) - это аппаратные прерывания
578.50K

Процессы и потоки. Планирование и синхронизация

1. Процессы и потоки. Планирование и синхронизация

1. Концепция процессов и потоков
2. Создание и завершение процессов
3. Иерархия процессов
4. Состояния процесса
5. Обработка прерываний

2. Концепция процессов и потоков

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

3.

Для того чтобы процессы не могли вмешаться в
распределение ресурсов, а также не могли
повредить коды и данные друг друга,
важнейшей задачей ОС является изоляция
одного процесса от другого.
Для этого ОС обеспечивает каждый процесс
отдельным виртуальным адресным
пространством, так что ни один процесс не
может получить прямого доступа к командам и
данным другого процесса.

4.

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

5.

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

6.

Несколько потоков (нитей) могут существовать в
рамках одного и того же процесса и совместно
использовать ресурсы.
Потоки (нити) иногда называют облегченными
процессами или мини-процессами.

7.

Подобно традиционным процессам (состоящим из
одной нити), нити могут находится в одном из
следующих состояний: ВЫПОЛНЕНИЕ,
ОЖИДАНИЕ и ГОТОВНОСТЬ.
Пока одна нить заблокирована, другая нить того
же процесса может выполняться.

8.

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

9. 2. Создание и завершение процессов

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

10.

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

11.

Операционной системе для планирования
процессов требуется дополнительная
информация:
идентификатор процесса,
состояние процесса,
данные о степени привилегированности
процесса,
место нахождения кодового сегмента и другая
информация.
Такую информацию называют дескриптором
процесса.

12.

Процедура завершения процесса:
Процесс удаляется из всех очередей
планирования, т.е. ОС больше не планирует
выделение каких-либо ресурсов процессу.
Сбор статистики о потреблённых процессом
ресурсах с последующим удалением процесса
из памяти.

13.

Причины завершения процесса:
Обычный выход
Выход по исключению или ошибке
Недостаточный объем памяти
Превышение лимита отведённого программе
времени
Выход за пределы отведённой области памяти
Неверная команда (данные интерпретируются
как команды)
Ошибка защиты
Завершение родительского процесса
Ошибка ввода/вывода
Вмешательство оператора

14. 3. Иерархия процессов

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

15.

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

16.

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

17.

По месту развития процессы делятся на
внутренние (реализуются на центральном
процессоре)
внешние (реализуются на внешних
процессорах).
По принадлежности к операционной системе
процессы бывают
системные (исполняют программу из состава
операционной системы) и
пользовательские.

18.

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

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

В многозадачной (многопроцессной) системе
процесс может находиться в одном из трех
основных состояний:
Выполнение
Ожидание
Готовность
ВЫПОЛНЕНИЕ - активное состояние процесса,
во время которого процесс обладает всеми
необходимыми ресурсами и непосредственно
выполняется процессором;

20.

ОЖИДАНИЕ - пассивное состояние процесса,
процесс заблокирован, он не может
выполняться по своим внутренним причинам,
он ждет осуществления некоторого события,
например, завершения операции вводавывода, получения сообщения от другого
процесса, освобождения какого-либо
необходимого ему ресурса;

21.

ГОТОВНОСТЬ - также пассивное состояние
процесса, но в этом случае процесс
заблокирован в связи с внешними по
отношению к нему обстоятельствами: процесс
имеет все требуемые для него ресурсы, он
готов выполняться, однако процессор занят
выполнением другого процесса.

22.

В ходе жизненного цикла каждый процесс
переходит из одного состояния в другое в
соответствии с алгоритмом планирования
процессов, реализуемым в данной
операционной системе.
В состоянии ВЫПОЛНЕНИЕ в однопроцессорной
системе может находиться только один
процесс, а в каждом из состояний ОЖИДАНИЕ
и ГОТОВНОСТЬ - несколько процессов, эти
процессы образуют очереди соответственно
ожидающих и готовых процессов.

23. Граф состояний процесса в многозадачной среде

24. 5. Обработка прерываний

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

25. Обработка простого прерывания

26.

В зависимости от источника возникновения
сигнала прерывания делятся на:
внешние (аппаратные) — события, которые
исходят от внешних источников (например,
периферийных устройств) и могут произойти в
любой произвольный момент. Возникновение в
системе такого прерывания трактуется как
запрос на прерывание (Interrupt request, IRQ);
внутренние — события в самом процессоре как
результат нарушения каких-то условий при
исполнении машинного кода: деление на ноль,
переполнение стека или недопустимый код
операции;
программные (частный случай внутреннего
прерывания, исключения) — инициируются
исполнением специальной инструкции в коде
программы.

27.

Использование прерываний при работе с
медленными внешними устройствами
позволяют совместить ввод/вывод с
обработкой данных в центральном процессоре
и в результате повышает общую
производительность системы.

28.

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

29.

Номер
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
Описание
Ошибка деления.
Прерывание пошагового режима. Используется для отладки программ.
Аппаратное немаскируемое прерывание. Это прерывание может использоваться поразному в разных машинах.
Прерывание для трассировки. Это прерывание обычно используется отладчиками для
установки точки прерывания.
Переполнение. Это прерывание используется для обработки ошибок при выполнении
арифметических операций.
Печать копии экрана. Генерируется при нажатии на клавиатуре клавиши PrtScr.
Неопределенный код операции.
Особый случай отсутствия математического сопроцессора.
IRQ0 - прерывание интервального таймера, возникает 18,2 раза в секунду.
IRQ1 - прерывание от клавиатуры. Используется для чтения данных от клавиатуры.
IRQ2 - используется для каскадирования аппаратных прерываний.
IRQ3 - прерывание асинхронного порта COM2.
IRQ4 - прерывание асинхронного порта COM1.
IRQ5 - прерывание от контроллера жесткого диска .
IRQ6 - прерывание генерируется контроллером флоппи-диска после завершения
операции.
IRQ7 - прерывание принтера. Генерируется принтером, когда он готов к выполнению
очередной операции.
Обслуживание видеоадаптера.
Определение конфигурации устройств в системе.
Определение размера оперативной памяти в системе.
Обслуживание дисковой системы.
Последовательный ввод/вывод.
Расширенный сервис для AT-компьютеров.
Обслуживание клавиатуры.
Обслуживание принтера.
Запуск BASIC в ПЗУ, если он есть.
Загрузка операционной системы.

30.

1A
Обслуживание часов.
1B
Обработчик прерывания Ctrl-Break.
1C
Прерывание возникает 18.2 раза в секунду, вызывается программно обработчиком
прерывания таймера.
1D
Адрес видеотаблицы для контроллера видеоадаптера 6845.
1E
Указатель на таблицу параметров дискеты.
1F
Указатель на графическую таблицу для символов с кодами ASCII 128-255.
20-5F
Используется DOS или зарезервировано для DOS.
60-67
Прерывания, зарезервированные для пользователя.
68-6F
Не используются.
70
IRQ8 - прерывание от часов реального времени.
71
IRQ9 - прерывание от контроллера EGA.
72
IRQ10 - зарезервировано.
73
IRQ11 - зарезервировано.
74
IRQ12 - зарезервировано.
75
IRQ13 - прерывание от математического сопроцессора.
76
IRQ14 - прерывание от контроллера жесткого диска.
77
IRQ15 - зарезервировано.
78 - 7F
Не используются.
80-85
Зарезервированы для BASIC.
86-F0
Используются интерпретатором BASIC.
F1-FF
Не используются.

31.

На современных ПК обработчики основных
аппаратных и программных прерываний
находятся в BIOS.
Современная операционная система, во время
своей загрузки, может заменить эти обработчики
своими.

32. IRQ0 - IRQ15 (31) - это аппаратные прерывания

English     Русский Правила