Для того чтобы операционная система могла управлять процессами, она должна располагать всей необходимой для этого информацией. С этой целью каждому процессу приводится в соответствие специальная информационная структура, называемая БЛОКОМ УПРАВЛЕНИЯ ПРОЦЕССОМ ( или ОПИСАТЕЛЕМ ПРОЦЕССА). В общем случае блок управления процессом содержит следующую информацию:
1. идентификатор процесса;
2. тип процесса, который определяет правила предоставления ресурсов;
3. приоритет процесса, в соответствии с которым, супервизор предоставляет ресурсы. В рамках одного типа процессов в первую очередь обслуживаются более приоритетные процессы;
4. индикатор, определяющий состояние процесса (готовность к работе, состояние выполнения или ожидания и т. д.);
5. защищенную область памяти (или адрес области), в которой записываются текущие значения регистров процессора, если процесс прерывается, не закончив работы. Эта информация называется контекстом;
6. информацию о ресурсах, которые выделены процессу или к которым он имеет право доступа;
7. адрес области оперативной памяти, где записан процесс;
8 время запуска процесса и периодичность запуска;
9 для диск-резидентных процессов - адрес расположения на диске.
Для обеспечения быстрого доступа блоки управления процессами, как правило, постоянно располагаются в оперативной памяти. Супервизор организует их в списки, каждый из которых характеризует владение ресурсом или очередь к нему. Изменение состояния процесса отражается перемещением соответствующего описателя по списку или из одного списка в другой.
Потоки
При работе в мультипрограммном режиме каждый процесс является обособленным и независимым. Он имеет свои собственные ресурсы, в частности виртуальное адресное пространство и программные ресурсы: файлы, окна и т.д. Другими ресурсами процессы владеют попеременно в порядке, устанавливаемом ОС. Ввиду обособленности процессов переключение ресурсов с одного процесса к другому требует затрат времени, в ходе которого ресурсы могут простаивать. Однако, обособленность процессов необходима для обеспечения правильного оперирования с информацией и недопущения ее несанкционированной записи, использования или стирания.
Мультипрограммный режим получает дополнительные возможности совершенствования при наличии в процессе внутреннего параллелизма. Такой процесс может быть разбит на подпроцессы, которые одновременно используют часть ресурсов процесса, а попеременно получают только один из видов ресурсов – процессорное время. При этом переключение подпроцессов занимает меньшее время, чем переключение процессов, так как фактически переключить надо только контекст подпроцессов.
Параллельное выполнение таких подпроцессов в рамках одного процесса может сократить время выполнения процесса или сделать более удобным работу пользователя. Такие подпроцессы называются ПОТОКАМИ.
Примером эффективности поточного выполнения процесса может служить интерактивное управление приложением, требующим больших затрат процессорного времени. При разбиении этого процесса на потоки пользователь может управлять приложением через соответствующий интерфейс одновременно с выполнением процесса.
Одновременное параллельное выполнение нескольких потоков процесса называется МНОГОПОТОЧНОЙ ОБРАБОТКОЙ.
Термин «процесс» означает необходимость учета при диспетчеризации всех ресурсов, требуемых процессу. Термин «поток» используется для наименовании процедуры распределения процессорного времени между частями процесса. Потокам можно присвоить приоритеты, обеспечив первоочередное выполнение наиболее важных подпроцессов.
Однако, при многопоточной организации выполнения процесса в однопроцессорной системе возможны ситуации передача информации из высокоприоритетного потока в низкоприоритетный поток. Если процессор при этом перегружен очередью на выполнение приоритетных потоков, программа при некорректной записи может стать неуправляемой, так как высокоприоритетный поток не сможет завершиться. Частая синхронизация потоков приводит к частому переключению ресурсов: процессорного времени, обращения к виртуальной памяти. Процессорное время, при этом, расходуется неэффективно.
Многопоточность целесообразно применять при существенно независимых потоках. Формирование потоков приносит большой эффект в многопроцессорных системах.
ЛЕКЦИЯ№4
Прерывания
Прерывания представляют собой механизм, позволяющий координировать параллельное выполнение процессов, приостанавливать выполнение процесса по команде извне, из программы, в частности по предъявлению требований на новый ресурс, реагируя на особые состояния, возникающие при работе процессора. ПРЕРЫВАНИЕ — это принудительная передача управления от выполняемой программы к ОС, происходящая при возникновении определенного события.
Исполнение прерываний опирается на два механизма:
- МЕХАНИЗМ ПРЕРЫВАНИЙ,
- МЕХАНИЗМ ОБРАБОТКИ ПРЕРЫВАНИЙ.
Схема исполнения прерываний показана на рисунке 2.
Рисунок 2.Схема исполнения прерываний
Механизм прерываний
Механизм прерываний определяет факт возникновения причины прерывания, приостанавливает выполнение процесса и передает управление ОС обработчику прерываний. Механизм прерываний реализуется аппаратно-программными средствами.
Прерывания делят на два основных класса: внешние и внутренние.
Внешние прерывания вызываются событиями, происходящими вне прерываемого процесса. Ими могут быть:
- прерывания от внешних устройств (например устройств ввода/вывода);
- прерыванияиз-за нарушения питания;
- прерывания по таймеру;
- прерывания оператора вычислительной системы;
- прерывания по сигналу от другого процессора многопроцессорной системы или другой вычислительной системы.
Внутренние прерывания формируются самим процессором и, соответственно, синхронизированы с его операциями. Прерывания, вызванные следующими причинами, относятся к внутренним:
- выработка недопустимого адреса исполняемой команды или ячейки памяти;
- ошибка выработки кода операции;
- - ошибки, выявленные проверкой четности,
- переполнение илиисчезновение порядка расчетной величины;
- деление на нуль;
- выработка программой кода прерывания.
Прерывания последнего типа называются программными. Данные прерывания используются в случаях, когда в программах выполняемых процессов закладывается передача управления ОС.
Причины, вызывающие прерывания, выявляются процессором или другими устройствами. Они могут возникать последовательно или одновременно. Выбор прерывания для обработки осуществляется механизмом обработки прерываний.