Понятие вычислительного процесса

 

 

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

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

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

Планирование процессов – это управление распределением ресурсов ЦП между различными конкурирующими процессами, путем передачи им управления согласно некоторой стратегии планирования.

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

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

 

1. процесс активен, когда он использует ЦП для выполнения своих команд;

2. процесс блокирован, если его выполнение может быть продолжено только после наступления некоторого ожидаемого события;

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

За время своего существования процесс может неоднократно совершать переходы из одного состояния в другое. Это обусловлено обращениями к операционной системы с запросами ресурсов и выполнения системных функций, которые предоставляет ОС, взаимодействием с другими процессами, появлением сигналов прерывания от таймера, каналов и устройств ввода/вывода, а также других устройств. Возможные переходы процесса из одного состояния в другое отображаются в виде графа состояний.

В любой момент времени активным (т.е. использующим ЦП) может быть только один процесс. При передаче управления процессу пользователя ОС устанавливает интервальный таймер. Тем самым задается квант времени, являющийся максимальным количеством времени ЦП, на которое процесс получает управление. Если это время истекает, процесс переводится из состояния активности в состояние готовности. После этого ОС, согласно стратегии планирования, выбирает следующий процесс, находящийся в готовности, переводит его в состояние активности и передает ему управление. Выбор процесса и передача на него управления называют диспетчеризацией. Часть ОС, выполняющая эту функцию, называется диспетчером.

 

Может сказаться, что активный процесс, не использовал полностью предоставленного ему кванта времени, будет ожидать наступления некоторого события, например, завершения операции ввода-вывода. В этом случае активный процесс блокируется, а какой-то новый процесс активизируется. Когда же ожидаемое событие наступает, соответствующий заблокированный процесс переводится в состояние готовности и может снова стать кандидатом на обслуживание операции. Ожидания события и оповещения о том, что событие наступило, реализуются при помощи сервисных запросов ОС с использованием супервизора или по прерываниям.

Из состояния выполнения процесс может выйти по одной из следующих причин:

· процесс завершается, при этом он посредством обращения к супервизору передает управление операционной системе и сообщает о своем завершении. В результате этого супервизор переводит его в список ожидающих процессов, либо уничтожает (уничтожается не сама программа, а задача, которая соответствовала исполнению программы). В состояние ожидания процесс может быть переведен принудительно: по команде оператора, когда команда реализуется системным процессом, который транслирует команду в запрос к супервизору с требованием перевести указанный процесс в состояние ожидания, или путем обращения к супервизору ОС из другой задачи с требованием остановить данный процесс;

· процесс переводится в состояние готовности к исполнению в связи с появлением более приоритетной задачи или в связи с окончанием выделенного ему кванта времени;

· процесс блокируется либо вследствие запроса операции ввода/вывода (которая должна быть выполнена прежде, чем он сможет продолжить исполнение), либо в силу невозможности предоставить ему ресурс, запрошенный в настоящий момент.

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



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

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

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

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

· идентификатор процесса (называемый PID – process identificator);

· тип (или класс) процесса, который определяет для супервизора некоторые правила предоставления ресурсов;

· приоритет процесса, в соответствии с которым супервизор предоставляет ресурсы. В рамках одного класса процессов в первую очередь обслуживаются более приоритетные процессы;

· переменную состояния, которая определяет, в каком состоянии находится процесс (готов к работе, в состоянии выполнения, ожидание устройства ввода/вывода);

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

· информация о ресурсах, которым процесс владеет и /или имеет право пользоваться (указатели на открытые файлы, информация о незавершенных операциях ввода/вывода и т.д.);

· место (или его адрес) для организации общения с другими процессами;

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

Понятие процесса было введено для реализации идей мультипрограммирования. Когда говорят о процессах, то тем самым хотят отметить, что ОС поддерживает их обособленность. Такая обособленность нужна для того, чтобы защитить один процесс от другого, поскольку они, совместно используя все ресурсы вычислительной системы, конкурируют друг с другом. Иными словами, ОС берт на себя роль арбитра в конкуренции между процессами по поводу ресурсов.

Однако желательно задействовать еще и внутренний параллелизм, который может быть в самих процессах. Например, некоторые операции, выполняемые приложением, могут требовать для своего исполнения достаточно длительного использования центрального процессора. В этом случае при интерактивной работе с приложение пользователь вынужден долго ожидать заказанной операции, и не может управлять приложением до тех пор, пока операция не выполнится до самого конца (такая ситуация встречается, например, при обработке графики). Если же программные модели, исполняющие такие длительные операции, оформлять в виде самостоятельных подпроцессов, которые будут выполняться параллельно с другими подпроцессами, то у пользователя появляется возможность параллельно выполнять несколько операций в рамках одного приложения (процесса). Эти задачи не имеют собственных ресурсов, они развиваются в том же виртуальном адресном пространстве, могут пользоваться теми же файлами, виртуальными устройствами и иными ресурсами, что и данный процесс. Единственное, что им необходимо иметь – это процессорный ресурс. В однопроцессорных системах такие задачи называют тредами (thread – нить) или потоками.

Главное, что обеспечивает многопоточность, – это возможность выполнять несколько видов операций в прикладной программе.

 

 

2. Операции над процессами.

 

Набор операций

Процесс не может сам перейти из одного состояния в другое. Изменением состояния процессов занимается операционная система, совершая операции над ними. Количество операций в общем случае совпадает с количеством стрелок на диаграмме состояний. При этом все операции можно объединить в три пары:

1. Создание процессазавершение процесса;

2. Приостановка процесса (перевод из состояния исполнение в состояние готовность) — запуск процесса (перевод из состояния готовность в состояние исполнение);

3. Блокирование процесса (перевод из состояния исполнение в состояние ожидание) — разблокирование процесса (перевод из состояния ожидание в состояние готовность);

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

<== предыдущая лекция | следующая лекция ==>
Мультипроцессорная обработка | Process Control Block и контекст процесса


Дата добавления: 2017-11-04; просмотров: 14; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ


Поиск по сайту:

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

Поделитесь с друзьями:

Если вам понравился данный ресурс вы можете рассказать о нем друзьям. Сделать это можно через соц. кнопки выше.
helpiks.org - Хелпикс.Орг - 2014-2017 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.