Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ_спо.doc
Скачиваний:
8
Добавлен:
01.04.2025
Размер:
1.5 Mб
Скачать
  1. Понятие вычислительного процесса

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

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

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

Итак, процесс – это программный модуль, выполняемый в центральном процессоре (CPU). Операционная система контролирует следующую деятельность, связанную с процессами:

  • создание и удаление процессов;

  • планирование процессов;

  • синхронизация процессов;

  • коммуникация процессов;

  • разрешение тупиковых ситуаций.

Не следует смешивать понятия процесс и программа. Программа – это план действий, а процесс – это само действие, поэтому понятие процесса включает:

  • программный код;

  • данные;

  • содержимое стека;

  • содержимое адресного и других регистров процессора.

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

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

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

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

  1. Понятие активного процесса. Динамика состояний процесса

Рассмотрим динамику состояния процесса.

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

  • выполнения – все затребованные процессом ресурсы выделены. В этом состоянии в каждый момент времени может находиться только один процесс, если речь идёт об однопроцессорной вычислительной системе;

  • готовности к выполнению – ресурсы могут быть предоставлены, тогда процесс перейдёт в состояние выполнения;

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

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

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

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

За время своего существования процесс может неоднократно совершать переходы из одного состояния в другое. Это обусловлено:

  • обращениями к ОС с запросами ресурсов;

  • выполнением системных функций, которые предоставляет ОС;

  • взаимодействием с другими процессами;

  • появлением сигналов прерывания от таймера, каналов и устройств ввода/вывода, а также других устройств.

Возможные переходы процесса из одного состояния в другое отображены на рис. 3.3.

Рассмотрим эти переходы из одного состояния в другое более подробно.

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

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

  • при выборе из очерёди планировщиком (характерно для ОС, работающих в пакетном режиме);

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

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

  • при наступлении запланированного времени запуска программы.

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

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

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

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

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

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

Процесс деблокируется и переводится в состояние готовности к исполнению при наступлении соответствующего события:

  • завершение операции ввода/вывода;

  • освобождение затребованного ресурса;

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]