Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Процессы-ресурсы - теория.doc
Скачиваний:
13
Добавлен:
20.08.2019
Размер:
894.46 Кб
Скачать

2.1.2. Понятие ресурса

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

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

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

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

Все выделяемые по запросам от процессов элементы системы отождествляются с понятием ресурса как средства ВС, которое может быть выделено процессу на определенный интервал времени. Процессы - потребители ресурсов.

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

2.1.3. Развитие процесса в ВС

При выполнении процесса в ВС он проходит ряд дискретных состояний, связь которых можно представить с помощью графа (рис.2.2).

П орождение Готовность Активность Ожидание

Окончание

Виртуальный процессор

Рис.2.2. Граф состояний процесса

Развитие процесса в ВС начинается с его порождения. Программа, хранящаяся во внешней памяти, не является процессом, но она порождает процесс при инициализации ее выполнения.

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

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

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

Активное состояние - это состояние выполнения последовательности команд программы процесса на процессоре. В этом состоянии процесс имеет все ресурсы и занимает центральный процессор.

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

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

  • процесс блокирует себя, переходит в состояние ожидания в результате сделанного им запроса на выделение некоторых дополнительных ресурсов или выполнение каких-либо действий, которые процесс не может реализовать сам;

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

В заблокированном состоянии процесс не выполняется, находясь в ожидании затребованного ресурса или услуги, предоставляемой другим процессом. Из этого состояния процесс может вернуться в состояние готовности после предоставления ему ожидаемого ресурса или выполнения запрошенной функции. Кроме того, процесс может быть завершен принудительно без выполнения запроса.

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

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

Если система допускает возможность приостановки (задержки) процессов, то у процессов появляются новые состояния. Диаграмма возможных состояний процесса и допустимых переходов между ними в такой операционной системе показана на рис.2.3.

Приостановлен Приостановлен

готов блокирован

Порождение Готовность Активность Ожидание

Окончание

Виртуальный процессор

Рис.2.3. Граф состояний процесса в системе с приостанавливаемыми процессами

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

  • есть сбои в работе системы (текущие процессы можно приостановить, проанализировать состояние системы, исправить обнаруженные ошибки и возобновить выполнение приостановленных процессов);

  • возникает необходимость проанализировать промежуточные результаты выполнения программы;

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

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

Операционные системы, реализующие функцию управления процессами, должны иметь возможность выполнять определенные операции, изменяющие состояние системы:

  1. создание (порождение) процесса;

  2. уничтожение процесса (завершение);

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

  4. разблокирование процесса (перевод в состояние готовности);

  5. активизация процесса (переключение процессора на выполнение соответствующей программы, запуск процесса);

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

Кроме того, как уже было показано, операционная система может выполнять дополнительно операции, изменяющие состояние процесса:

  1. приостановки (задержки) процесса;

  2. возобновления задержанного процесса.

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

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

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

Например, в OS/2 отслеживаются состояния отдельных потоков процесса, а не самого процесса. Каждый созданный поток в системе может находиться в одном из трех состояний:

  • активном (Running) - поток выполняется в данный момент;

  • готовым к продолжению выполнения (Ready to run) - поток готов к выполнению своей функции и ждет завершения работы других потоков;

  • заблокированным (Blocked) - поток ожидает некоторого события (например, выполнения операции ввода/вывода), необходимого для его продолжения.

При реализации функции управления процессами ОС предоставляет процессам процессор и другие ресурсы, планирует взаимодействие самих процессов (если необходимо). Таким образом, функции управления процессами и ресурсами в ВС тесно связаны.