Слайд 1Процессы и потоки. Планирование и синхронизация
1. Концепция процессов и потоков
2.
Создание и завершение процессов
3. Иерархия процессов
4. Состояния процесса
5. Обработка прерываний
Слайд 2Концепция процессов и потоков
Под процессом понимают последовательность операций при выполнении
программы (задачи) или ее части в совокупности с используемыми данными.
В общем случае процесс и программа представляют собой разные понятия. Программа – это план действий, а процесс – это само действие.
Понятие процесса включает программный код, данные, содержимое стека, содержимое адресного и других регистров процессора.
Для выполнения одной программы могут быть созданы несколько процессов.
Слайд 3Для того чтобы процессы не могли вмешаться в распределение ресурсов,
а также не могли повредить коды и данные друг друга,
важнейшей задачей ОС является изоляция одного процесса от другого.
Для этого ОС обеспечивает каждый процесс отдельным виртуальным адресным пространством, так что ни один процесс не может получить прямого доступа к командам и данным другого процесса.
Слайд 4Многопоточностью (multithreading) называется способность операционной системы поддерживать в рамках одного
процесса выполнение нескольких потоков.
Традиционный подход, при котором каждый процесс
представляет собой единый поток выполнения, называется однопоточным подходом.
Слайд 5Многопоточная (многонитевая) обработка повышает эффективность работы системы по сравнению с
многозадачной (многопроцессной) обработкой.
Задача, оформленная в виде нескольких потоков в рамках
одного процесса, может быть выполнена быстрее за счет псевдопараллель-ного (или параллельного в мультипроцес-сорной системе) выполнения ее отдельных частей.
Слайд 6Несколько потоков (нитей) могут существовать в рамках одного и того
же процесса и совместно использовать ресурсы.
Потоки (нити) иногда называют облегченными
процессами или мини-процессами.
Слайд 7Подобно традиционным процессам (состоящим из одной нити), нити могут находится
в одном из следующих состояний: ВЫПОЛНЕНИЕ, ОЖИДАНИЕ и ГОТОВНОСТЬ.
Пока
одна нить заблокирована, другая нить того же процесса может выполняться.
Слайд 8Нити имеют собственные:
программный счетчик,
стек,
регистры,
нити-потомки,
состояние.
Нити
разделяют:
адресное пространство,
глобальные переменные,
открытые файлы,
таймеры,
семафоры,
статистическую
информацию.
Слайд 92. Создание и завершение процессов
Программный код только тогда начнет выполняться,
когда для него операционной системой будет создан процесс. Создать процесс
- это значит:
создать информационные структуры, описывающие данный процесс, то есть его дескриптор и контекст;
включить дескриптор нового процесса в очередь готовых процессов;
загрузить кодовый сегмент процесса в оперативную память или в область свопинга.
Слайд 10На протяжении существования процесса его выполнение может быть многократно прервано
и продолжено.
Для того, чтобы возобновить выполнение процесса, необходимо восстановить
состояние его операционной среды.
Состояние операционной среды отображается состоянием регистров, программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях ввода-вывода и т.д. Эта информация называется контекстом процесса.
Слайд 11Операционной системе для планирования процессов требуется дополнительная информация:
идентификатор процесса,
состояние процесса,
данные о степени привилегированности процесса,
место нахождения кодового
сегмента и другая информация.
Такую информацию называют дескриптором процесса.
Слайд 12Процедура завершения процесса:
Процесс удаляется из всех очередей планирования, т.е. ОС
больше не планирует выделение каких-либо ресурсов процессу.
Сбор статистики о потреблённых
процессом ресурсах с последующим удалением процесса из памяти.
Слайд 13Причины завершения процесса:
Обычный выход
Выход по исключению или ошибке
Недостаточный объем памяти
Превышение
лимита отведённого программе времени
Выход за пределы отведённой области памяти
Неверная команда
(данные интерпретируются как команды)
Ошибка защиты
Завершение родительского процесса
Ошибка ввода/вывода
Вмешательство оператора
Слайд 143. Иерархия процессов
По временным характеристикам различают
интерактивные процессы
пакетные процессы
процессы
реального времени.
По генеалогическому признаку различают
порождающие
порожденные процессы.
Слайд 15По результативности различают
эквивалентные (могут реализовываться как на одном, так
и на многих процессорах по одному или разным алгоритмам, то
есть они имеют разные трассы)
тождественные (реализуются по одному и тому же алгоритму, но имеют разные трассы)
равные процессы (реализуются по одной программе и имеют одинаковые трассы)
Слайд 16По времени развития процессы делятся на
последовательные
параллельные
комбинированные (для последних есть
точки, в которых существуют оба процесса, и точки, в которых
существует только один процесс).
Слайд 17По месту развития процессы делятся на
внутренние (реализуются на центральном
процессоре)
внешние (реализуются на внешних процессорах).
По принадлежности к операционной системе процессы
бывают
системные (исполняют программу из состава операционной системы) и
пользовательские.
Слайд 18По связности различают процессы:
взаимосвязанные – имеющие какую-то связь (пространственно-временную, управляющую,
информационную);
изолированные – слабо связанные;
информационно-независимые – использующие совместные ресурсы, но имеющие
собственные информационные базы;
взаимодействующие – имеющие информационные связи и разделяющие общие структуры данных;
взаимосвязанные по ресурсам;
конкурирующие.
Слайд 194. Состояния процесса
В многозадачной (многопроцессной) системе процесс может находиться в
одном из трех основных состояний:
Выполнение
Ожидание
Готовность
ВЫПОЛНЕНИЕ - активное состояние процесса, во
время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;
Слайд 20ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может
выполняться по своим внутренним причинам, он ждет осуществления некоторого события,
например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса;
Слайд 21ГОТОВНОСТЬ - также пассивное состояние процесса, но в этом случае
процесс заблокирован в связи с внешними по отношению к нему
обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.
Слайд 22В ходе жизненного цикла каждый процесс переходит из одного состояния
в другое в соответствии с алгоритмом планирования процессов, реализуемым в
данной операционной системе.
В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ - несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов.
Слайд 23Граф состояний процесса в многозадачной среде
Слайд 245. Обработка прерываний
Прерывание (interrupt) — сигнал, сообщающий процессору о наступлении какого-либо
события.
При этом выполнение текущей последовательности команд приостанавливается и управление
передаётся обработчику прерывания.
Обработчик прерывания реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.
Слайд 26В зависимости от источника возникновения сигнала прерывания делятся на:
внешние (аппаратные)
— события, которые исходят от внешних источников (например, периферийных устройств)
и могут произойти в любой произвольный момент. Возникновение в системе такого прерывания трактуется как запрос на прерывание (Interrupt request, IRQ);
внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль, переполнение стека или недопустимый код операции;
программные (частный случай внутреннего прерывания, исключения) — инициируются исполнением специальной инструкции в коде программы.
Слайд 27Использование прерываний при работе с медленными внешними устройствами позволяют совместить
ввод/вывод с обработкой данных в центральном процессоре и в результате
повышает общую производительность системы.
Слайд 28С каждым прерыванием связывают число, называемое номером прерывания (номер вектора
прерывания).
Для того чтобы связать адрес обработчика прерывания с номером прерывания,
используется таблица векторов прерываний.
Слайд 31На современных ПК обработчики основных аппаратных и программных прерываний находятся
в BIOS.
Современная операционная система, во время своей загрузки, может
заменить эти обработчики своими.
Слайд 32IRQ0 - IRQ15 (31) - это аппаратные прерывания