Основными понятиями управления прохождением задач в ЭВМ являются процесс, задача, работа, программа, ресурс, дисциплина распределения ресурса.
Процесс – минимальный программный объект, обладающий собственными системными ресурсами (запущенная программа).
Классификация процессов. По временным характеристикам различают интерактивные, пакетные процессы и процессы реального времени. Время существования интерактивного процесса определяется реакцией ЭВМ на запрос обслуживания и составляет секунды. Процессы реального времени имеют гарантированное время окончания работы и время реакции мсек. Пакетные процессы запускаются один вслед за другим и время реакции часы и более.
По генеалогическому признаку различают порождающие и порожденные процессы.
По результативности различают эквивалентные, тождественные и равные процессы. Все они имеют одинаковый конечный результат, но эквивалентные процессы могут реализовываться как на одном, так и на многих процессорах по одному или разным алгоритмам, то есть они имеют разные трассы, которые определяют порядок и длительность пребывания процесса в разных состояниях. Тождественные процессы реализуются по одной и той же программе, но имеют разные трассы. Одинаковые процессы реализуются по одной программе и имеют одинаковые трассы.
По времени развития процессы делятся на последовательные, параллельные и комбинированные. Для последних есть точки, в которых существуют оба процесса, и точки, в которых существует только один процесс.
По месту развития процессы делятся на внутренние и внешние. Внутренние - реализуются на центральном процессоре, внешние- реализуются на внешних процессорах.
По принадлежности к операционной системе процессы бывают системные (исполняют программу из состава операционной системы) и пользовательские.
По связности различают процессы:
взаимосвязанные, которые имеют какую-то связь (пространственно-временную, управляющую, информационную);
изолированные – слабо связанные;
информационно-независимые, которые используют совместные ресурсы, но имеют собственные информационные базы;
взаимодействующие – имеют информационные связи и разделяют общие структуры данных;
взаимосвязанные по ресурсам;
конкурирующие.
Порядок взаимосвязи процессов определяется правилами синхронизации. Процессы могут находиться в отношении:
предшествования – один всегда находится в активном состоянии раньше, чем другой;
приоритетности – когда процесс может быть переведен в активное состояние только в том случае, если в состоянии готовности нет процессов с более высоким приоритетом, или процессор свободен, или на нем реализуется процесс с меньшим приоритетом;
взаимного исключения – в процессе используется общий критический ресурс, и процессы не могут развиваться одновременно: если один из них использует критический ресурс, то другой находится в состоянии ожидания.
Ресурс – любой потребляемый (расходуемый) объект. По запасам ресурсы подразделяются на исчерпаемые и неисчерпаемые. Потребители ресурсов – процессы. Ресурс – средство вычислительной системы, которое может быть выделено процессу на определенный интервал времени.
Процессор – любое устройство в составе ЭВМ, способное автоматически выполнять допустимые для него действия (процессоры, каналы и устройства, работающие с каналами). Реализация системы управления процессами в составе ОС предъявляет определенные требования к свойствам процессоров.
Классификация ресурсов. По признаку реальности ресурсы делятся на физические и виртуальные (последние только в отдельных свойствах схожие с физическими ресурсами).
По возможности расширения свойств ресурсы делятся на эластичные и жесткие (не допускающие виртуализации).
По степени активности разделяются на активные и пассивные (могут выполнять действия по отношению к другим ресурсам).
По времени существования: постоянные (доступны во все время процесса: и до и после его работы) и временные.
По степени важности: основные и второстепенные (допускают альтернативное развитие процесса при их отсутствии).
По функциональной избыточности при распределении: дорогой, но предоставляемый быстро, и дешевый, но предоставляемый с ожиданием.
По структуре: простые (не содержит составных элементов) и составные. Они различаются числом состояний: простой может быть только в двух состояниях – доступен или занят.
По характеру использования распределяемых ресурсов: потребляемые и воспроизводимые ресурсы (допускают многократное использование и освобождение).
По характеру использования: последовательно и параллельно используемые (используются несколькими процессами).
По форме реализации: жесткие (в принципе не допускают копирования) и мягкие (допускают тиражирование и подразделяются на программные и информационные ресурсы).
Дисциплина распределения ресурса определяет порядок использования многими процессами того или иного ресурса, который в каждый момент времени может обслуживать только один процесс.
Управление процессами. Процесс – это программный модуль, выполняемый в центральном процессоре (CPU). Операционная система контролирует следующую деятельность, связанную с процессами:
создание и удаление процессов;
планирование процессов;
синхронизация процессов;
коммуникация процессов;
разрешение тупиковых ситуаций.
Не следует смешивать понятия процесс и программа. Программа – это план действий, а процесс –это само действие, поэтому понятие процесса включает:
программный код;
данные;
содержимое стека;
содержимое адресного и других регистров процессора.
Таким образом, для одной программы могут быть созданы несколько процессов в том случае, если с помощью одной программы в CPU выполняется несколько несовпадающих последовательностей команд. За время существования процесс многократно изменяет свое состояние.
Различают следующие состояния процесса:
новый (процесс только что создан);
выполняемый (команды программы выполняются в CPU);
ожидающий (процесс ожидает завершения некоторого события, чаще всего операции ввода-вывода);
готовый (процесс ожидает освобождения CPU);
завершенный (процесс завершил свою работу).
На рис. 1.1 приведена типовая диаграмма переходов для состояний процессов.
Прерывание
ПринятВыход
Отсылка
планировщика
Завершение Ожидание
ввода-вывода ввода-вывода