Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по ОС1.doc
Скачиваний:
80
Добавлен:
02.05.2014
Размер:
514.05 Кб
Скачать

2. Дайте объяснение понятиям процесса и задачи. Опишите переходы процесса из одного состояния в другие.

Понятие «вычислительный процесс» (или просто – «процесс») является одним из основных при рассмотрении операционных систем. По принципу выполнения различают последовательные процессы и параллельные. Последовательный процесс, иногда называемый «задачей», – это выполнение отдельной программы с ее данными на последовательном процессоре [3]. В концепции, которая получила наибольшее распространение в 70-е годы, под задачей (task) понимается совокупность связанных между собой и образующих единое целое программных модулей и данных, требующая ресурсов вычислительной системы для своей реализации. В последующие годы задачей стали называть единицу работы, для выполнения которой предоставляется центральный процессор. Вычислительный процесс может включать в себя несколько задач.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Про поток

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

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

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

Соседние файлы в предмете Операционные системы