Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
28.11.2011 СП (Лекция).docx
Скачиваний:
4
Добавлен:
02.12.2018
Размер:
45.5 Кб
Скачать

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

Процесс – это выполнение отдельной программы с её данными на последовательном процессоре.

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

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

Реализация процесса

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

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

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

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

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

Движущей силой, меняющей состояния процессов, являются события. Один из основных видов событий – это прерывания.

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

  1. Идентификатор процесса.

  2. Тип (или класс) процесса, который определяет правила предоставления ресурсов.

  3. Приоритет процесса, в соответствии с которым предоставляются ресурсы в рамках одного класса.

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

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

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

  7. Место (или адрес) в памяти для организации общения с другими процессами.

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

  9. В случае отсутствия системы управления файлами, адрес задачи на диске в ее исходном состоянии и адрес на диске, куда она выгружаются из ОП, если ее вытесняет другая задача.

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

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

ПОТОКИ

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

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

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

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

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

Выводы

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

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

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