Тема 2. Машинно-зависимые свойства операционных систем Занятие №6. Понятие процесса. Состояния процесса. Диспетчеризация. План занятия. 1. Процесс. Классификация процессов. 2. Ресурсы. Классификация ресурсов. 3. Управление процессами. 4. Планирование процессов. 5. Домашняя с/р. 1. Процесс. Классификация процессов. Понятие процесса является одним из основных в современных операционных системах. Дадим несколько определений процесса (process), отражающих различные стороны этого важного понятия: Процесс — это абстракция, описывающая выполняющуюся программу. Процесс— исполнение последовательности действий в среде, включающей собственно выполняющуюся программу, а также связанных с ней данных и состояний (открытых файлов, текущего каталога и т. п.). С точки зрения операционной системы, процесс — единица работы, заявка на потребление системных ресурсов. Процесс — объект, которому выделяется процессор. Первое упоминание о процессе появилось в 60-е годы XX века в операционной системе MULTICS. Если говорить о соотношении между процессом и программой, то справедливы следующие два утверждения: программа — это часть состояния процесса. С этой точки зрения процесс — нечто большее, чем просто программа; программа может вызывать более чем один процесс для выполнения работы. С этой точки зрения программа — нечто большее, чем процесс. Классификация процессов. По временным характеристикам различают интерактивные, пакетные процессы и процессы реального времени. - Время существования интерактивного процесса определяется реакцией ЭВМ на запрос обслуживания и составляет секунды. - Процессы реального времени имеют гарантированное время окончания работы и время реакции мсек. - Пакетные процессы запускаются один вслед за другим и время реакции часы и более. По генеалогическому признаку различают порождающие и порожденные процессы. Тема 2. Машинно-зависимые свойства операционных систем По результативности различают эквивалентные, тождественные равные процессы. Все они имеют одинаковый конечный результат, но эквивалентные процессы могут реализовываться как на одном, так и на многих процессорах по одному или разным алгоритмам, то есть они имеют разные трассы, которые определяют порядок и длительность пребывания процесса в разных состояниях. Тождественные процессы реализуются по одной и той же программе, но имеют разные трассы. Одинаковые процессы реализуются по одной программе и имеют одинаковые трассы. По времени развития процессы делятся на последовательные, параллельные и комбинированные (для последних есть точки, в которых существуют оба процесса, и точки, в которых существует только один процесс). По месту развития процессы делятся на внутренние (реализуются на центральном процессоре) и внешние (реализуются на внешних процессорах). По принадлежности к операционной системе процессы бывают системные (исполняют программу из состава операционной системы) и пользовательские. По связности различают процессы: а) взаимосвязанные, которые имеют какую-то связь (пространственно-временную, управляющую, информационную); б) изолированные — слабо связанные; в) информационно-независимые, которые используют совместные ресурсы, но имеют собственные информационные базы; г) взаимодействующие — имеют информационные связи и разделяют общие структуры данных; д) взаимосвязанные по ресурсам; е) конкурирующие. Порядок взаимосвязи процессов определяется правилами синхронизации. Процессы могут находиться в отношении: а) предшествования — один всегда находится в активном состоянии раньше, чем другой; б) приоритетности — когда процесс может быть переведен в активное состояние только в том случае, если в состоянии готовности нет процессов с более высоким приоритетом, или процессор свободен, или на нем реализуется процесс с меньшим приоритетом; в) взаимного исключения — в процессе используется общий критический ресурс, и процессы не могут развиваться одновременно: если один из них использует критический ресурс, то другой находится в состоянии ожидания. 2. Ресурсы. Классификация ресурсов. Ресурс — любой потребляемый (расходуемый) объект. По запасам ресурсы подразделяются на исчерпаемые и неисчерпаемые. Потребители ресурсов — процессы. Ресурс — средство вычислительной системы, которое может быть выделено процессу на определенный интервал времени. Классификация ресурсов. Тема 2. Машинно-зависимые свойства операционных систем По признаку реальности ресурсы делятся на физические и виртуальные (последние только в отдельных свойствах схожие с физическими ресурсами). По возможности расширения свойств делятся на эластичные и жесткие (не допускающие виртуализации). По степени активности разделяются на пассивные и активные (могут выполнять действия по отношению к другим ресурсам). По времени существования: постоянные (доступны во все время процесса: и до, и после его работы) и временные. По степени важности: основные и второстепенные (допускают альтернативное развитие процесса при их отсутствии). По функциональной избыточности при распределении: дорогой, но предоставляемый быстро, и дешевый, но предоставляемый с ожиданием. По структуре: простые (не содержит составных элементов) и составные. Они различаются числом состояний: простой может быть только в двух состояниях — доступен или занят. По характеру использования распределяемых ресурсов: потребляемые и воспроизводимые ресурсы (допускают многократное использование и освобождение). По характеру использования: последовательно и параллельно используемые (используются несколькими процессами). По форме реализации: жесткие (в принципе не допускают копирования) и мягкие (допускают тиражирование и подразделяются на программные и информационные ресурсы). Ресурсы также делят на программные и аппаратные. Дисциплина распределения ресурса определяет порядок использования многими процессами того или иного ресурса, который в каждый момент времени может обслуживать только один процесс. Современная операционная система поддерживает мультипрограммирование (многопроцессность) и старается эффективно использовать ресурсы путем организации к ним очередей запросов, составляемых тем или иным способом. Это требование достигается поддерживанием в памяти более одного процесса, ожидающего процессор, и более одного процесса, готового использовать другие ресурсы, как только последние станут доступными. Общая схема выделения ресурсов такова. При необходимости использовать какой-либо ресурс (оперативную память, устройство ввода/вывода, массив данник и т. п.) задача обращается к супервизору операционной системы — ее центральному управляющему модулю, посредством специальных вызовов, команд, директив и сообщает о своем требовании. При этом указывается вид ресурса и, если надо, его объем (например, количество адресуемых ячеек оперативной памяти, количество дорожек или секторов на системном диске, устройство печати и объем выводимых данных Тема 2. Машинно-зависимые свойства операционных систем и т. п.). Директива обращения к операционной системе передает ей управление, переводя процессор в привилегированный режим, если такой существует. Не все вычислительные комплексы имеют два (и более), режима работы: привилегированный (режим супервизора), пользовательский, режим эмуляции какого-нибудь другой компьютера и т. д. Ресурс может быть выделен задаче, обратившейся к супервизору с соответствующим запросом, если: он свободен и в системе нет запросов от задач более высокого приоритета к этому же ресурсу; текущий запрос и ранее выданные запросы допускают совместное использование ресурсов; ресурс используется задачей низшего приоритета и может быть временно отобран (разделяемый ресурс). Получив запрос, операционная система либо удовлетворяет его и возвращает управление задаче, выдавшей данный запрос, либо, если ресурс занят, ставит задачу в очередь; к ресурсу, переводя его в состояние ожидания (блокируя). Очередь к ресурсу может быть организована несколькими способами, но чаще всего это осуществляется с помощью списковой структуры. После окончания работы с ресурсом задача опять с помощью специального вызова супервизора (посредством соответствующей директивы) сообщает операционной системе об отказе от ресурса, или операционная система забирает ресурс сама, если управление возвращается супервизору после выполнения какой-либо системной функции. 3. Управление процессами Во время выполнения процесса может быть многократно прервана и продолжена его работа. Чтобы возобновить выполнение процесса, необходимо возобновить состояние его операционной среды, которое идентифицируется состоянием регистров, программысчѐтчика, режимом работы процессора, информацией о незавершѐнных операциях вводавывода и т.д. Совокупность этих сведений называется контекстом процесса. В ОС нет однозначного соответствия между процессами и программами, т.е. один программный файл может породить несколько параллельно выполняемых процессов, а процесс в ходе выполнения может сменить программный файл и начать выполнять другую программу. Операционная система контролирует следующую деятельность, связанную с процессами: • создание и удаление процессов; • планирование процессов; • синхронизация процессов; • коммуникация процессов; • разрешение тупиковых ситуаций. Различают следующие состояния процесса (рис. 1.9): • новый (процесс только что создан); • выполняемый (команды программы выполняются в СРU); Тема 2. Машинно-зависимые свойства операционных систем • ожидающий (процесс ожидает завершения некоторого события, чаще всего операции ввода-вывода); • готовый (процесс ожидает освобождения СРУ); • завершенный (процесс завершил свою работу). Переход из одного состояния в другое не может выполняться произвольным образом. На рис. 1. приведена типовая диаграмма переходов для состояний процессов. За время своего существования процесс может неоднократно совершать переход из одного состояния в другое. Процесс из состояния бездействия может перейти в состояние готовности в следующих случаях: по команде пользователя. Имеет место в тех диалоговых операционных системах, где программа может иметь статус задачи, а не просто быть исполняемым файлом. при выборе из очереди планировщиком (характерно для операционных систем, работающих в пакетном режиме); по вызову из другой задачи (посредством обращения к супервизору один процесс может создать, инициировать, приостановить, остановить, уничтожить другой процесс); по прерыванию от внешнего инициативного устройства (сигнал о свершении некоторого события может запускать соответствующую задачу); при наступлении запланированного времени запуска программы. Последние два способа запуска задачи, при которых процесс из состояния бездействия переходит в состояние готовности, характерны для операционных систем реального времени. Процесс, который может исполняться, как только ему будет предоставлен процессор, находится в состоянии готовности. Считается, что такому процессу уже выделены все необходимые ресурсы за исключением процессора. Из состояния выполнения процесс может выйти по одной из следующих причин: процесс завершается, при этом он посредством обращения к супервизору передает управление операционной системе и сообщает о своем завершении. В результате этих действий супервизор либо переводит его в список бездействующих процессов (процесс переходит в пассивное состояние), либо уничтожает (уничтожается, естественно, не сама программа, а именно задача, которая соответствовала исполнению некоторой программы). В состояние бездействия процесс может быть переведен принудительно: по команде оператора (действие этой и других команд оператора реализуется системным процессом, который «транслирует» команду в запрос к супервизору с требованием перевести Тема 2. Машинно-зависимые свойства операционных систем указанный процесс в состояние бездействия), или путем обращения к супервизору операционной системы из другой задачи с требованием остановить данный процесс; процесс переводится супервизором операционной системы в состояние готовности к исполнению в связи с появлением более приоритетной задачи или в связи с окончанием выделенного ему кванта времени; процесс блокируется (переводится в состояние ожидания) либо вследствие запроса операции ввода/вывода (которая должна быть выполнена прежде, чем он сможет продолжить исполнение), либо в силу невозможности предоставить ему ресурс, запрошенный в настоящий момент (причиной перевода в состояние ожидания может быть и отсутствие сегмента или страницы в случае организации механизмов виртуальной памяти), а также по команде оператора на приостановку задачи или по требованию через супервизор от другой задачи. При наступлении соответствующего события (завершилась операция ввода/вывода, освободился затребованный ресурс, в оперативную память загружена необходимая страница виртуальной памяти и т. д.) процесс деблокируется и переводится в состояние готовности к исполнению. Таким образом, движущей силой, меняющей состояния процессов, являются события. Один из основных видов событий — это прерывания. Каждый процесс представлен в операционной системе Набором данных, называемых таблица управления процессом (ТУП — РСВ). В РСВ процесс описывается набором значений, параметров, характеризующих его текущее состояние и используемых операционной системой для управления прохождением процесса через компьютер. На рис.2 схематически показано, каким образом операционная система использует РСВ для переключения процессора с одного процесса на другой. 4. Планирование процессов Система управления процессами обеспечивает прохождение процесса через компьютер. В зависимости от состояния процесса ему должен быть предоставлен тот или иной ресурс. Например, новый процесс необходимо разместить в основной памяти, следовательно, ему необходимо выделить часть адресного пространства. Процессу в состоянии готовый должно быть предоставлено процессорное время. Выполняемый процесс может потребовать оборудование ввода-вывода и доступ к файлу. Тема 2. Машинно-зависимые свойства операционных систем Распределение процессов между имеющимися ресурсами носит название планирование процессов. Одним из методом планирования процессов, ориентированных на эффективную загрузку ресурсов, является метод очередей ресурсов. Новые процессы находятся во входной очереди, часто называемой очередью работ — заданий. Входная очередь располагается во внешней памяти, во входной очереди процессы ожидают освобождения ресурса — адресного пространства основной памяти. Готовые к выполнению процессы располагаются в основной памяти и связаны очередью готовых процессов. Процессы в этой очереди ожидают освобождения ресурса процессорное время. Процесс в состоянии ожидания завершения операции ввода-вывода находится в одной из очередей к оборудованию ввода-вывода. При прохождении через компьютер процесс мигрирует между различными очередями под управлением программы, которая называется планировщик. Операционная система, обеспечивающая режим мультипрограммирования, обычно включает два планировщика — долгосрочный и краткосрочный. На уровень долгосрочного планирования выносятся редкие системные действия, требующие больших затрат системных ресурсов. Долгосрочный планировщик решает, какой из процессов, находящихся во входной очереди, должен быть переведен в очередь готовых процессов в случае освобождения ресурсов памяти. На уровень краткосрочного планирования выносятся частые и более короткие процессы. Краткосрочный планировщик решает, какой из процессов, находящихся в очереди готовых процессов, должен быть передан на выполнение в СРП Выделение процессора процессу производится многократно, с целью достижения эффекта мультипрограммирования, и такой процесс называется диспетчеризацией. 5. Домашняя с/р 1. 2. Подготовить конспект по теме: Использование блокирующих переменных. Найти определение понятию «Тупики»