Из чего состоит процесс – Понятие ПРОЦЕСС
alexxlab | 16.01.2020 | 0 | Разное
Понятие процесса операционной системы. Состояния процесса и переходы между ними. Блок управления процессом. Цикл жизни процесса. Операции над процессами. Определение
Фундаментальным понятием для изучения работы операционных систем является понятие процессов, как основных динамических объектов, над которыми системы выполняют определенные действия.
Процесс — команда, которая выполняется в текущий момент. Стандарт. ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие.
Компьютерная программа сама по себе это только пассивная совокупность инструкций, в то время как процесс — это непосредственное выполнение этих инструкций.
Часто процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д.
Состояния процессов
Каждый процесс может находиться как минимум в двух состояниях: процесс исполняется и процесс не исполняется.
Процесс, находящийся в состоянии процесс исполняется, может через некоторое время завершиться или быть приостановлен операционной системой и снова переведен в состояние процесс не исполняется. Приостановка процесса происходит по одной из двух причин: для его дальнейшей работы потребовалось возникновение какого-либо события (например, завершения операции ввода-вывода) или истек временной интервал, отведенный операционной системой для работы этого процесса. После этого операционная система по определенному алгоритму выбирает для исполнения один из процессов, находящихся в состоянии процесс не исполняется, и переводит его в состояние процесс исполняется. Новый процесс, появляющийся в системе, первоначально помещается в состояние процесс не исполняется.
Такая модель является очень грубой. Она не учитывает, в частности то, что процесс, выбранный для исполнения, может все еще ждать события, из-за которого он был приостановлен, и реально к выполнению не готов. Для того чтобы избежать такой ситуации, разобьем состояние процесс не исполняется на два новых состояния: готовность и ожидание.
Всякий новый процесс, появляющийся в системе, попадает в состояние готовность. Операционная система, пользуясь каким-либо алгоритмом планирования, выбирает один из готовых процессов и переводит его в состояние исполнение. В состоянии исполнение происходит непосредственное выполнение программного кода процесса. Покинуть это состояние процесс может по трем причинам:
либо он заканчивает свою деятельность;
либо он не может продолжать свою работу, пока не произойдет некоторое событие, и операционная система переводит его в состояние ожидание;
либо в результате возникновения прерывания в вычислительной системе (например, прерывания от таймера по истечении дозволенного времени выполнения) его возвращают в состояние готовность.
Наша новая модель хорошо описывает поведение процессов во время их жизни, но она не акцентирует внимания на появлении процесса в системе и его исчезновении из системы. Для полноты картины нам необходимо ввести еще два состояния процессов: рождение и закончил исполнение.
Теперь для появления в вычислительной системе процесс должен пройти через состояние рождение. При рождении процесс получает в свое распоряжение адресное пространство, в которое загружается программный код процесса; ему выделяются стек и системные ресурсы; устанавливается начальное значение программного счетчика этого процесса и т. д. Родившийся процесс переводится в состояние готовность. При завершении своей деятельности процесс из состояния исполнение попадает в состояние закончил исполнение.
В конкретных операционных системах состояния процесса могут быть еще более детализированы, могут появиться некоторые новые варианты переходов из состояния в состояние. Так, например, модель состояний процессов для операционной системы Windows NT содержит 7 различных состояний, а для операционной системы UNIX — 9. Тем не менее, в принципе, все операционные системы подчиняются изложенной выше модели.
studfiles.net
ПРОЦЕСС – это… Что такое ПРОЦЕСС?
процесс — См. действие, дело, спор вести процесс… Словарь русских синонимов и сходных по смыслу выражений. под. ред. Н. Абрамова, М.: Русские словари, 1999. процесс движение, течение, ход; дело, тяжба, слушание, суд, судебное дело; работа, эксплуатация,… … Словарь синонимов
ПРОЦЕСС — (лат., processus прохождение). 1) судебный ход дела, гражданского или уголовного. 2) в химии: различные операции, от которых изменяется состав тела, напр. перегонка, растворение. Словарь иностранных слов, вошедших в состав русского языка. Чудинов … Словарь иностранных слов русского языка
ПРОЦЕСС — ПРОЦЕСС, процесса, муж. (лат. processus). 1. Ход, развитие какого нибудь явления; последовательная закономерная смена состояний в развитии чего нибудь. «Процесс ликвидации феодализма и развития капитализма является в то же время процессом… … Толковый словарь Ушакова
Процесс 50-ти — «Процесс пятидесяти» («Процесс москвичей», Суд над участниками «Всероссийской социально революционной организации», официальное название: «Дело о разных лицах, обвиняемых в государственном преступлении по составлению противозаконнаго сообщества и … Википедия
Процесс 50-ти — («Процесс 50 ти»,) процесс «москвичей», суд над участниками «Всероссийской социально революционной организации» (См. Всероссийская социально революционная организация). Проходил в Особом присутствии Правительствующего сената (Петербург)… … Большая советская энциклопедия
процесс — а, м. procès m. нем. Prozess <, лат. processus движение вперед. 1. Разбор судебного дела; само судебное дело. Процесс о наследстве. Бракоразводный процесс. БАС 1. И потом кинувшись к Сент Жону, статскому секретарию, хотел таким же образом… … Исторический словарь галлицизмов русского языка
“ПРОЦЕСС 50-ти” — процесс москвичей , суд над участниками Всероссийской социально революционной организации в Особом присутствии Сената (Петербург) 21 февраля 14 марта 1877. Обвиняемые: С. И. Бардина, П. А. Алексеев, И. С. Джабадари, Г. Ф. Зданович, Л. Н. Фигнер,… … Советская историческая энциклопедия
процесс — Совокупность взаимосвязанных ресурсов и деятельности, которая преобразует входящие элементы в выходящие. [МУ 64 01 001 2002] процесс Структурированная совокупность действий, спроектированная для достижения конкретной цели. Процесс преобразует… … Справочник технического переводчика
Процесс 21-го — («Процесс 21 го») последний крупный судебный процесс над революционными народниками. Проходил в Петербургском военно окружном суде 26 мая (7 июня) 5 (17) июня 1887. Главные обвиняемые Г. А. Лопатин (по имени которого процесс иногда… … Большая советская энциклопедия
ПРОЦЕСС — ПРОЦЕСС категория философского дискурса, характеризующая совокупность необратимых, взаимосвязанных, длительных изменений, как спонтанных, так и управляемых, как самоорганизованных, так и организуемых, результатом которых является некое… … Философская энциклопедия
Процесс — [process] (в кибернетике) последовательная смена состояний, стадий изменения (развития) системы или иного объекта (См. также Преобразование). Различают процессы: вещественные (например, преобразование сырья в готовый продукт в производстве) и… … Экономико-математический словарь
dic.academic.ru
1. Процессы
Понятие процесс(process) введено разработчиками ОС с 60-х годов, как программа во время выполнения. Заметим, что программа – это всего лишь файл в формате загрузки, сохраняемый на диске, а процесс расположен в памяти на этапе выполнения.
Состояния процесса
Для процесса характерен ряд дискретных состояний, причем смену этих состояний могут вызывать различные события. Первоначально ограничимся рассмотрением трех основных состояний процесса.
Процесс находится в состоянии выполнения, если в данный момент ему выделен центральный процессор (ЦП).
Процесс находится в состоянии готовности, если он мог бы сразу использовать центральный процессор, предоставленный в его распоряжение.
Процесс находится в состоянии блокировки, если он ожидает некоторого события, чтобы получить возможность продолжать выполнение.
Заметим, что в однопроцессорной машине в состоянии выполнения может в каждый конкретный момент времени находится только один процесс. В состояниях же готовности и блокировки могут находиться несколько процессов, т.е. есть возможность создать список готовых и список заблокированных процессов.
Список готовых процессов упорядочен по приоритету, первым в распоряжение получает ЦП первый процесс из списка. При создании списка готовых процессов, каждый новый процесс помещается в конец списка, а по мере завершения выполнения предыдущих процессов продвигается в головную часть списка. Список же заблокированных процессов не упорядочен, т.к. разблокировка процессов осуществляется в том порядке, в котором происходят ожидаемые ими события.
Запуск, или выбор процесса для выполнения – это предоставление ЦП первому процессу из списка готовых процессов. Запуск осуществляется с помощью программы – диспетчер. Обозначим такую смену состояний следующим образом: операционная система linux
Для предотвращения монопольного захвата ресурсов ЦП одним процессом, ОС устанавливает в специальном таймере прерываний определенный временной интервал, который отводится для данного процесса, по истечении кванта времени, таймер вырабатывает сигнал прерывания, по которому управление передается ОС и процесс переводится из состояния выполнения в состояние готовности, а первый процесс из списка готовых – в состояние выполнения.
Блокирование процесса – это освобождение ЦП процессом до истечения отведенного ему кванта времени, т.е. когда выполняющийся процесс инициирует, например, операцию ввода-вывода, и, таким образом, добровольно освобождает ЦП в ожидании завершения указанной операции.
Пробуждение процесса осуществляется тогда, когда происходит какое-либо событие, ожидаемое процессом, и он переходит из состояния блокировки в состояние готовности. Так в выше описанном случае, после завершения операции ввода-вывода.
Итак, мы определили четыре возможные смены состояния процесса.
Отметим, что единственная смена состояния, инициируемая самим процессом – это блокирование, остальные инициируются объектами, внешними по отношению к данному процессу.
Операции над процессами
Системы, управляющие процессами, должны иметь возможность выполнять над ними ряд операций.
Создание процесса. операционная система linux
Создание процесса включает присвоение имени процессу; включение его имени в список имен процессов; определение начального приоритета процесса; формирование блока управления процессом РСВ; выделение процессу начальных ресурсов.
Процесс может породить новый процесс и в этом случае, первый будет называться родительским, а второй дочерним процессом, причем у одного родительского процесса может быть несколько дочерних, а у дочернего только один родительский. Таким образом, создается иерархическая структура процессов.
ОС UNIX, являясь в своей основе средством управления процессами, сама по себе может рассматриваться как система параллельных взаимодействий процессов с древовидной структурой. Общий прародитель всех процессов в ОС UNIX – процесс init, находится в вершине генеалогического дерева, этот процесс постоянно присутствует в системе, все другие процессы порождаются по унифицированной схеме с помощью системного вызова fork().
Каждому созданному процессу UNIX назначает уникальный идентификатор процесса – PID , который идентифицирует процесс для ОС. Кроме того, каждый процесс имеет еще PPID (parent process), который представляет собой не что иное как PID его родителя.
Используя в UNIX команду ps можно видеть идентификаторы текущих процессов в системе.
Уничтожение процесса.
При уничтожении процесса, ресурсы ему выделенные передаются системе, имя из любых списков и таблиц удаляется, а блок управления процессом освобождается.
Приостановка процесса.
Приостановленный процесс может продолжить свое выполнение тогда, когда его активизирует какой-либо другой процесс.
Возобновление процесса.
Операция подготовки процесса к повторному запуску с той точки , в которой он был приостановлен, называется – возобновлением.
Изменение приоритета процесса.
Эта операция означает модификацию значения приоритета процесса в РСВ.
Кроме того, используются операции блокирования, пробуждения и запуска процесса.
С учетом введенных понятий приостановки и возобновления процесса картина смены состояний процесса, приведенная на рис.1 может быть несколько дополнена.
Например, диспетчер UNIX – это программа, которая позволяет процессам конкурировать между собой за время ЦП. Приостановка и возобновление процессов происходит много раз в секунду, поэтому создается эффект непрерывного протекания процесса. Схема разделения времени ЦП может быть представлена следующим образом:
studfiles.net
6. Понятие процесса – ключевое понятие ос.
Процессом называют программу в момент ее выполнения под управлением ОС. С каждым процессом связано его адресное пространство. Это список адресов в памяти от некоторого минимального до некоторого максимального, который процесс может прочесть и в который может писать. Адресное пространство содержит саму программу, данные к ней и ее стек. Со всяким процессом связывают состояние процесса. Это набор регистров, включая счетчик команд, указатель стека и др. аппаратные регистры + вся необходимая информация для запуска программы. С процессом связана информация о доступных ресурсах и полномочиях.
Во многих ОС вся информация о процессах хранится в таблице ОС, которая наз. таблицей процессов. Таблица представляет собой массив или связанный список структур типа запись. По одной структуре на каждый существующий в данный момент процесс. Т.о. приостановленный процесс состоит из собственного адресного пространства, которое называют образом памяти, и компонентов таблицы процессов. Главные системные вызовы по управлению процессами – вызовы, связанные с созданием и окончанием процесса.
Если процесс может создавать другие процессы, называемые дочерними, а те в свою очередь новые дочерние, то имеем дерево процессов.
Связанные процессы – те, которые объединены для выполнения некоторой задачи, и они обмениваются данными, т.е. процессам надо уметь синхронизировать свою деятельность Такая связь называется межпроцессорным взаимодействием.
Модели программирования Windows и UNIX.
1. Программы Unix состоят из кода, который выполняет те или иные действия, обращаясь к системе с системными запросами для предоставления конкретных услуг. В противоположность этому программы Windows приводятся в действие событиями: основной модуль программы ждет, когда произойдет какое-нибудь событие, затем вызывает процедуру для его обработки. Затем обработчики переписывают содержимое экрана и внутренне состояние программы.
2. В Unix вызовы один к одному идентичны библиотечным процедурам. В стандарте POSIX порядка 100 системных вызовов. В windows фактические системные вызовы и запускаемые для их выполнения библиотечные вызовы полностью разделены. Microsoft определила набор процедур Win32 API. Программисты должны использовать его для вызова служб ОС. Этот интерфейс частично поддерживается всеми версиями windows, начиная с win95. Отделяя интерфейс от фактических системных вызовов, Microsoft поддерживает возможность изменения со временем действительных системных вызовов, не делая при этом недействующими существующие программы. В win32 API тысячи системных вызовов. Причем существенное число их работает полностью в пространстве пользователя. В Unix нет системных вызовов, работающих в пространстве пользователя.
3. В Unix графический интерфейс пользователя XWindow запускается целиком в пространстве пользователя (отделен от ядра). Поэтому для вывода на экран достаточно вызова write, обращение не является системным. В windows графическая подсистема загружается в режиме ядра, следовательно, все вызовы для управления окнами, геометрия, пакеты и т.д. – системные вызовы, т.е. через прерывания.
4. Win32 не является полностью единообразным и последовательным интерфейсом, т.к. существует необходимость обратной совместимости с более ранним 16р. интерфейсом.
studfiles.net
Определение процесса
Процесс (process) — это некоторая часть (единица) работы, создаваемая операционной системой. Важно отметить, что процессы и программы — необязательно эквивалентные понятия. Программа может состоять из нескольких процессов. В некоторых ситуациях процесс может быть не связан с конкретной программой. Процессы – это артефакты операционной системы, а программы — это артефакты разработчика. Такие операционные системы, как UNIX/Linux позволяют управлять сотнями или даже тысячами параллельно загружаемых процессов.
Чтобы некоторую часть работы можно было назвать процессом, она должна иметь адресное пространство, назначаемое операционной системой, и идентификатор, или идентификационный номер (id процесса). Процесс должен обладать определенным статусом и иметь свой элемент в таблице процессов. В соответствии со стандартом POSIX он должен содержать один или несколько потоков управления, выполняющихся в рамках его Процесс состоит из множества выполняющихся инструкций, размещенных в адресном пространстве этого процесса. Адресное пространство процесса распределяется между инструкциями, данными, принадлежащими процессу, и стеками, обеспечивающими вызовы функций и хранение локальных переменных.
Два вида процессов
При выполнении процесса операционная система назначает ему некоторый процессор. Процесс выполняет свои инструкции в течение некоторого периода времени. Затем он выгружается, освобождая процессор для другого процесса. Планировщик операционной системы переключается с кода одного процесса на код другого, предоставляя каждому процессу шанс выполнить свои инструкции. Различают пользовательские процессы и системные. Процессы, которые выполняют системный код, называются системными и применяются к системе в целом. Они занимаются выполнением таких служебных задач, как распределение памяти, обмен страницами между внутренним и вспомогательным запоминающими устройствами, контроль устройств и т.п. Они также выполняют некоторые задачи «по поручению» пользовательских процессов, например, делают запросы на ввод-вывод данных, выделяют память и т.д. Пользовательские процессы выполняют собственный код и иногда обращаются к системным функциям. Выполняя собственный код, пользовательский процесс пребывает в пользовательском режиме (user mode). В пользовательском режиме процесс не может выполнять определенные привилегированные машинные команды. При вызове системных функций (например read(), write () или open ()) пользовательский процесс выполняет инструкции операционной системы. При этом пользовательский процесс «удерживает» процессор до тех пор, пока не будет выполнен системный вызов. Для выполнения системного вызова процессор обращается к ядру операционной системы. В это время о пользовательском процессе говорят, что он пребывает в привилегированном режиме, или режиме ядра (kernel mode), и не может быть выгружен никаким другим пользовательским процессом.
Блок управления процессами
Процессы имеют характеристики, используемые для идентификации и определения их поведения. Ядро поддерживает необходимые структуры данных и предоставляет системные функции, которые дают возможность пользователю получить доступ к этой информации. Некоторые данные хранятся в блоках управления процессами (process control block—PCB), или БУП. Данные, хранимые в БУП-блоках, описывают процесс с точки зрения потребностей операционной системы. С помощью этой информации операционная система может управлять каждым процессом. Когда операционная система переключается с одного процесса на другой, она сохраняет текущее состояние выполняющегося процесса и его контекст в области сохранения БУП-блока, чт обы надлежащим образом возобновить выполнение этого процесса в следующий раз, когда ему снова будет выделен центральный процессор (ЦП). БУП-блок считывается и обновляется различными модулями операционной системы. Модули «отвечают» за контроль производительности операционной системы, планирование, распределение ресурсов и доступ к механизму обработки прерываний и/или модифицируют БУП-блок. Блок БУП содержит следующую информацию:
• текущее состояние и приоритет процесса;
• идентификатор процесса, а также идентификаторы родительского и сыновнего процессов;
• указатели на выделенные ресурсы;
• указатели на область памяти процесса;
• указатели на родительский и сыновний процесс;
• процессор, занятый процессом;
• регистры управления и состояния;
• стековые указатели.
Среди данных, содержащихся в БУП-блоке, есть такие, которые «отвечают» за управление процессом, т.е. отражают его текущее состояние и приоритет, указывают на БУП-блоки родительского и сыновнего процессов, а также выделенные ресурсы и память. Кроме того, этот блок включает информацию, связанную с планированием, привилегиями процессов, флагами, сообщениями и сигналами, которыми обмениваются процессы (имеется в виду межпроцессное взаимодействие— mterprocess communication, или IPC). С помощью информации, связанной с управлением процессами, операционная система может координировать параллельно выполняемые процессы. Стековые указатели и содержимое регистров пользователя, управления и состояния содержат информацию, связанную с состоянием процессора. При выполнении процесса соответствующая информация размещается в регистрах ЦП. При переключении операционной системы с одного процесса на другой вся информация из этих регистров сохраняется. Когда процесс снова получает ЦП во «временное пользование», ранее сохраненная информация может быть восстановлена. Есть еще один вид информации, который связан с идентификацией процесса. Имеется в виду идентификатор процесса (id), или PID, и идентификатор родительского процесса (PPID). Эти идентификационные номера (которые представлены положительными целочисленными значениями) уникальны для каждого процесса.
studfiles.net
процесс – это… Что такое процесс?
процесс — См. действие, дело, спор вести процесс… Словарь русских синонимов и сходных по смыслу выражений. под. ред. Н. Абрамова, М.: Русские словари, 1999. процесс движение, течение, ход; дело, тяжба, слушание, суд, судебное дело; работа, эксплуатация,… … Словарь синонимов
ПРОЦЕСС — (лат., processus прохождение). 1) судебный ход дела, гражданского или уголовного. 2) в химии: различные операции, от которых изменяется состав тела, напр. перегонка, растворение. Словарь иностранных слов, вошедших в состав русского языка. Чудинов … Словарь иностранных слов русского языка
ПРОЦЕСС — ПРОЦЕСС, процесса, муж. (лат. processus). 1. Ход, развитие какого нибудь явления; последовательная закономерная смена состояний в развитии чего нибудь. «Процесс ликвидации феодализма и развития капитализма является в то же время процессом… … Толковый словарь Ушакова
Процесс 50-ти — «Процесс пятидесяти» («Процесс москвичей», Суд над участниками «Всероссийской социально революционной организации», официальное название: «Дело о разных лицах, обвиняемых в государственном преступлении по составлению противозаконнаго сообщества и … Википедия
Процесс 50-ти — («Процесс 50 ти»,) процесс «москвичей», суд над участниками «Всероссийской социально революционной организации» (См. Всероссийская социально революционная организация). Проходил в Особом присутствии Правительствующего сената (Петербург)… … Большая советская энциклопедия
процесс — а, м. procès m. нем. Prozess <, лат. processus движение вперед. 1. Разбор судебного дела; само судебное дело. Процесс о наследстве. Бракоразводный процесс. БАС 1. И потом кинувшись к Сент Жону, статскому секретарию, хотел таким же образом… … Исторический словарь галлицизмов русского языка
“ПРОЦЕСС 50-ти” — процесс москвичей , суд над участниками Всероссийской социально революционной организации в Особом присутствии Сената (Петербург) 21 февраля 14 марта 1877. Обвиняемые: С. И. Бардина, П. А. Алексеев, И. С. Джабадари, Г. Ф. Зданович, Л. Н. Фигнер,… … Советская историческая энциклопедия
процесс — Совокупность взаимосвязанных ресурсов и деятельности, которая преобразует входящие элементы в выходящие. [МУ 64 01 001 2002] процесс Структурированная совокупность действий, спроектированная для достижения конкретной цели. Процесс преобразует… … Справочник технического переводчика
Процесс 21-го — («Процесс 21 го») последний крупный судебный процесс над революционными народниками. Проходил в Петербургском военно окружном суде 26 мая (7 июня) 5 (17) июня 1887. Главные обвиняемые Г. А. Лопатин (по имени которого процесс иногда… … Большая советская энциклопедия
ПРОЦЕСС — ПРОЦЕСС категория философского дискурса, характеризующая совокупность необратимых, взаимосвязанных, длительных изменений, как спонтанных, так и управляемых, как самоорганизованных, так и организуемых, результатом которых является некое… … Философская энциклопедия
Процесс — [process] (в кибернетике) последовательная смена состояний, стадий изменения (развития) системы или иного объекта (См. также Преобразование). Различают процессы: вещественные (например, преобразование сырья в готовый продукт в производстве) и… … Экономико-математический словарь
dic.academic.ru
BPMN 2.0 Из чего состоит модель бизнес процесса
Чтобы моделировать бизнес процессы в нотации BPMN 2.0 , можно обойтись базовыми элементами.Если же хотите вы настоящим джедаем стать, мастером простых и эффективных моделей, глубину нотации и силу знаков постичь нужно.
Не стоит сразу охватывать все варианты моделирования тех или иных ситуаций. Не стремитесь постичь многообразие тонкостей за час. Изучайте элементы нотации. Добавляйте новые элементы в модели постепенно. Начните с того, что понятно сразу, затем переходите к сложным вещам.
Это описание элементов BPMN 2.0 поможет вам.
Не пугайтесь разнообразия значков. Для начала можно обойтись базовыми элементами. Со временем, когда появится необходимость в повышении качества моделей, переходите к использованию полного набора элементов.
Нотация BPMN 2.0 – самая гибкая и простая. Гибкость достигается благодаря набору элементов и правилам нотации. Простота – за счет наглядности. Процессы и ситуации могут быть по разному изображены в модели. Например, циклы или ссылки на части процесса могут быть смоделированы как минимум тремя способами. Все зависит от вашего выбора, целей моделирования и того, на кого модель ориентирована.
Самостоятельно ограничивайте набор элементов и правила, которые будете использовать в работе. Не старайтесь использовать все возможности нотации. Берите только то, что вам подходит и необходимо.
Изучите элементы нотации, а я пока подготовлю статью с примерами их использования.
Операции
Как и другие элементы нотации, операции бывают нескольких типов. Каждый тип конкретизирует действие, с которым связана операция. Типы операций определяются условным обозначением внутри прямоугольника «операция».
Сервисная операция
Операция, которая выполняется сервисом или механизмом. Иными словами, это операции, выполняемые автоматически. Пример – рассчитать цену с учетом скидки. Операция выполняется программой автоматически. Этот тип операций удобно использовать, когда вы отображаете работу программы или инструмента. Или показываете взаимодействие человека и программы. Кстати, пул, который означает сотрудника в модели, также может обозначать программу. Если задать один пул как программу, а другой как пользователя, то можно раскрыть процесс взаимодействия. Такое возможно только в нотации BPMN 2.0.Отправка сообщения
Операция, результатом которой является отправленное сообщение. И вот первый пример гибкости нотации – операция «отправить электронное письмо» может быть как типом «пользовательская операция», так и «отправка сообщения». Какой тип использовать, зависит от целей моделирования конкретного процесса и правил, которые вы для себя приняли.Получение сообщения
Операция, связанная с получением сообщения. Пример – получить письмо на почте.Пользовательская операция
Операция, которая выполняется сотрудником с помощью сервиса, инструмента или других сотрудников. Это может быть программа, веб-приложение, оборудование и так далее. Если вы обозначили операцию как пользовательская, свяжите ее с сервисом или инструментом, который в ней используется. Пример пользовательской операции – отправить электронное письмо. Сервисом будет выступать почтовое приложение. Еще пример – просверлить отверстие в стене. Инструмент – перфоратор.Ручная операция
Операция, которая выполняется сотрудником самостоятельно, без применения каких-то сервисов или инструментов. Пример – почистить апельсин.Выполнение сценария
Операция, которая подразумевает выполнение сценария. Сценарий создается заранее и представляет собой последовательность действий. По сути , сценарий – это тоже процесс. Проще всего понять сценарий как процедуру. Например, проверить документ. Эта операция подразумевает выполнение ряда действий, т.е. мы проверяем конкретные пункты в документе. Это и есть сценарий. Если вы используете этот тип операции, то нужно обязательно указать, какой сценарий используется. Кстати, когда для проверки используется чек-лист, то такая операция явно имеет тип «выполнение сценария», а чек-лист – это сценарий.Сценарий – это очень удобный элемент, который позволяет «облегчить» модель за счет уменьшения количества отображенных операций. Т.е. мы убираем операции, которые можно преобразовать в сценарии.
Выполнение бизнес-правила
Операция, которая запускает действие какого-то правила. Сценарии и правила схожи. И то, и другое создается и известно заранее. Но есть и разница. Сценарий – ряд действий, который нужно выполнить, чтобы завершить задачу. Правило же предполагает наличие определенных условий и вариантов действий. Сценарий выполнять обязательно. Правило дает выбор. Пример операции, связанной с бизнес-правилом – принять решение о закупке. В качестве правила будет выступать условие – закупка разрешена в рамках определенной суммы. Если сумма закупки выше, то нужно согласовать с вышестоящим руководством. Кстати, в этом примере операция «правило» может запустить операцию «сценарий».Бизнес-правило – это уникальная штука! И с точки зрения моделирования бизнес процессов, и с точки зрения выполнения. Есть мнение, что описанные бизнес процессы строги и не дают свободу действий сотрудникам. Это неверно. И как раз бизнес-правила дают допустимую свободу действий модели – с точки зрения развития процесса, сотруднику – с точки зрения действий.
Операция-ссылка
Операция ссылается на другой процесс и фактически выполняет его. Т.е. процесс уже где-то существует и здесь он тоже выполняется. В таком случае чтобы не копировать процесс из одного места в другое, просто дается ссылка на него.Операция-вызов
Отличается от ссылки тем, что если вы используете операцию-вызов, то еще и используете ресурсы этой операции или процесса. Т.е. “одалживаете” сам процесс из другого места.Процессы в BPMN 2.0
Повторно используемый процесс
С помощью данного элемента определяется место в процессе, где используется сторонний подпроцесс. Например, по ходу приготовления ужина возникает ситуация, когда для его продолжения нужно сходить в магазин. Соответственно “Сходить в магазин” будет повторно используемым подпроцессом.Процесс-ссылка
В некоторых ситуациях нужно сослаться на процесс. В таком случае используется этот элемент. Например, вы можете указать, что процесс-ссылка является источником некого документа или события.Событийный процесс
Особый вид процесса. Особенность заключается в том, что такой процесс не имеет входящих/исходящих потоков. Т.е. на диаграмме он не соединен стрелками с другими процессами/операциями. А запускается он, когда в процессе наступает событие, такое же, какое указано в событийном процессе в качестве старта. Зачем это нужно? Иногда не нужно включать процесс в основной поток. Например, потому что событие, запускающее процесс, возникает крайне редко. При этом ход основного процесса может как прерываться и переходить в событийный подпроцесс, так и нет. Т.е. событийный процесс выполняется параллельно. Например, в процессе обслуживания клиента в банке оператор видит, что клиент является мошенником. В таком случае он подает сигнал службе безопасности, который служит стартом для соответствующего процесса в СБУ. Однако оператор не прерывает процесс, а продолжает обслуживание с целью удержания мошенника на месте до прибытия сотрудников СБУ.Спонтанный процесс (ad-hoc)
Еще один вид особого процесса. В спонтанном процессе операции не имеют последовательности действий. Т.е. они могут выполняться спонтанно, в любом порядке, с любым количеством повторений. Выполнение такого процесса полностью определяется его исполнителем. Например, спонтанный процесс “Приготовить кофе” имеет в своем составе операции: “Насыпать кофе”, “Насыпать сахар”, “Налить воду”. Порядок действий не важен, т.к. в любом случае мы получим один результат. Что еще важно – не все действия в спонтанном процессе обязательны для выполнения. События начала и окончания не могут включаться в спонтанный подпроцесс.Повторения
Повторение может относится как к операциям, так и к процессам.
Стандартное повторение
В основе стандартного повторения лежит простая мысль. Процесс будет повторяться до тех пор, пока не получен нужный результат. Например, вы будете добавлять соль в блюдо до тех пор, пока не посчитаете, что ее достаточно. Только не забывайте указывать условия выхода из повторения.Множественное повторение
Этот тип повторения отличается от предыдущего тем, что количество повторений известно и задано заранее. Т.е. для завершения процесса и перехода к следующему, его нужно выполнить несколько раз. Например, нужно дважды проверить первичные документы, прежде чем передать в архив.Компенсация
Операция или процесс компенсации выполняется в том случае, если в процессе произошло что-либо, что требует дополнительных действий для его завершения. Например, при согласовании документа необходимо внести поправки. В таком случае выполняется компенсирующее действие “внести поправки”, которое позволяет завершить процесс согласования. Форма компенсации очень удобна для моделирования. Компенсация – отличительная черта нотации BPMN 2.0.События в BPMN 2.0
Все виды событий – стартовые, промежуточные и события окончания – тоже делятся на типы. Точнее, они имеют разные тригеры – спусковые крючки. Спусковой крючок – это тип условия, при котором наступает событие. Например, событие – получение сигнала. Тип события – сигнал. Спусковой крючок – его получение.
Тригеры событий схожи во всех типах, но имеют свои особенности. Поэтому каждое событие рассматривается с точки зрения трех типов.
Входящие / исходящие события
Перед тем, как приступить к тригерам, объясню, что такое входящие и исходящие события.Событие с входящим тригером (входящее событие) означает, что оно наступает, если мы получаем какой то сигнал, сообщение и т.д. Например получение письма – входящий тригер.
Событие с исходящим тригером (исходящее событие) означает, что событие свершается, если что-то отправлено. Опять же – отправлено письмо. Исходящими событиями удобно отображать выполнение условия по передаче информации.
А теперь самое важное. Стартовые события могут быть только входящими, а события окончания – только исходящими. Логика очень простая – стартовое событие запускает процесс, а запуск может происходить только при получении информации. Событие окончания, которое отражает факт завершения процесса, может только передавать информацию. Ведь если информация продолжает поступать, то процесс не завершен.
Промежуточные события могут быть как входящими (получение информации), так и исходящими (отправление информации). К таким событиям относятся: сообщение, эскалация, компенсация, ссылка, сигнал, множественное.
Спусковые крючки событий
Сообщение
Событие наступило, когда было получено или отправлено какое-то сообщение.Событие начала – поступило письмо от заказчика с подтверждением оплаты (только входящее).
Промежуточное событие – отправлен отчет (исходящее). Получена спецификация заказа (входящее)
Событие окончания – отправлено подтверждение отгрузки товара клиенту (только исходящее)
Таймер
Событие, обозначающее время. Это может быть конкретное время или дата – 10:00 А может быть интервал – каждый понедельник. При наступлении определенного времени процесс начнется.Пример – событие “последний рабочий день месяца” запускает процесс “инвентаризация”. Таймер не может быть событием окончания. Это противоречит сути процессного подхода – каждый процесс производит продукт. А если процесс может быть завершен просто по времени, то это дает возможность не получить продукт в итоге.
Ошибка
Сигнал об ошибке. Такой тип события всегда связан с другим процессом. Т.е. в каком-то процессе возникла ошибка, которая запускает последующий процесс. Пример: событие “ошибка соединения”, запускает процесс проверки интернет-соединения с компьютером.Событие начала “отсутствуют сопроводительные документы” является ошибкой в процессе “отгрузка товара”, но запускает процесс “Повторно подготовить сопроводительные документы”.
Промежуточное событие “клиент не подтвердил бронирование номера” направляет процесс по другой ветке, и после этого события следует операция “связаться с клиентом для подтверждения брони”.
Событие окончания – из примера со стартовым событием “отсутствуют сопроводительные документы” завершает процесс отгрузки товара.
А еще с помощью промежуточного события “ошибка” отображают риски в процессе. Ну и способы работы с ними.
Эскалация
Запускает процесс, который ускоряет выполнение другого процесса, если тот выполняется неправильно. Событие “Эскалация” всегда связано с другим процессом, который передает (эскалирует) выполнение процесса другому человеку или системе, а тот его принимает.Событие начала “на заявку клиента не был дан ответ в течение суток” запускает процесс рассмотрения заявки у руководителя отдела вместо специалиста по обслуживанию. Событие может быть только входящее.
Промежуточное событие может отображать тот же переход заявки от специалиста к руководителю, но в рамках одного процесса. В таком случае промежуточное событие отправки у специалиста будет переходить в соответствующее событие приема у руководителя.
Событие окончания – тот же пример, что и в стартовом событии – “на заявку клиента не был дан ответ в течение суток” завершает процесс и отправляет заявку другому человеку. Событие только исходящее.
Отмена
Такое событие отменяет дальнейшее выполнение процесса, при этом все, что было выполнено в процессе до этого, должно быть компенсировано. Техника и инструменты должны быть возвращены на место, отправленные сообщения аннулированы и т.д.Промежуточное событие. В случае промежуточного события процесс направляется по другой ветке. Например, после события отмены клиентского заказа необходимо еще выполнить ряд действий, связанных с указанием причин отмены.
Событие окончания “никто не пришел” отменяет подготовку вечеринки и все, что было для нее сделано.
Событие отмены не может быть стартовым.
Компенсация
Понятие компенсации означает, что в случае наступления события компенсации в процессе для его завершения должны быть выполнены дополнительные действия.Событие начала запускает процесс, который должен компенсировать обстоятельства, возникшие в другом процессе. Такое событие тоже всегда связано с другим процессом. Пример: событие начала “проверить сборку узла” запускает соответствующий процесс и компенсирует процесс “сборка узла”.
Промежуточное событие, обозначающее, что тесто слишком жидкое, является исходящим событием компенсации, т.к. запускает операцию “добавить еще муку”. После выполнения компенсирующей операции процесс “приготовить тесто” будет завершен. Если добавление муки выполняет другую роль в процессе, то в одной роли это будет исходящее событие, а в другое – входящее.
Событие окончания “клиент просит скидку за пределами лимита” заканчивает процесс продаж у менеджера и запускает процесс “рассмотрение клиентской заявки” у сотрудника, ответственного за подобные решения.
Состояние
Событие, обозначающее некое состояние объекта. Состояние относится к параметрам. Например, стартовое событие “температура процессора превысила 70 градусов” запускает процесс охлаждения процессора. Или стартовое событие, обозначающее состояние вашей второй половины как “плохое настроение”, запускает процесс приготовления его/ее любимого блюда. То же касается и промежуточных событий – состояние какого-то объекта определяет ветку развития процесса.Событие окончания не может иметь тригер состояния.
Сигнал
Событие сообщает о поступлении или отправке какого-то сигнала. Сигнал похож на сообщение, но разница заключается в том, что сообщение содержит информацию, а сигнал нет.Событие начала “свисток чайника” – это сигнал, который запускает процесс заваривания чая.
Промежуточное событие “поднятый флажок проводника” передает сигнал машинисту о готовности к отправке. Соответственно, для машиниста сигнал является входящим.
Событие окончания “выключение света на сцене” передает сигнал об окончании выступления и завершает процесс.
Множественное
Событие предполагает множество вариантов, но для его наступления достаточно хотя бы одного. Или какой-то одной комбинации событий. Бывают такие случаи, когда нет необходимости конкретизировать каждое событие и можно их объединить в группу. В таком случае достаточно просто перечислить, какие варианты наступления события могут быть.Событие начала – “процесс начнется, если клиент позвонит по телефону, придет в офис или обратится через форму связи в интернет”. Все это отображается одним значком. Список событий задается или в названии события, или с помощью текстовой аннотации, или в описании элемента диаграммы. Событие начала может быть только входящим.
То же касается и промежуточного и события окончания. Единственный нюанс – промежуточное событие может быть как исходящим, так и входящим. Событие окончания может быть только исходящим.
Параллельное множественное
То же самое, что и множественное, но событие произойдет, только если будут выполнены все заданные условия. Например, мы начнем процесс подготовки к лыжной прогулке в том случае, если сейчас зима, на улице есть снег и температура составляет не выше 5 градусов.Ссылка
Используется для связки процессов или частей. Если событие окончания одного процесса ссылается на другой процесс, то это же событие является началом другого процесса. Только типы событий разные.Пример: событие “ужин закончился”, которое является завершающим событием процесса “ужин”, ссылается на процесс “помыть посуду” и запускает его. Промежуточные процессы могут ссылаться как на внешние процессы, так и на процессы внутри себя.
Ссылки могут быть как входящими, так и исходящими.
Терминация
Событие окончания, которое говорит о том, что выполнение всех операций в процессе должно быть немедленно завершено. Самый простой пример “срабатывание пожарной сигнализации в здании” является событием терминации, потому что надо все бросить и эвакуироваться.Прерывающее и непрерывающее событие
Ну и последнее, что надо знать о свойствах событий. Каждое событие в нотации BPMN 2.0 может прерывать или не прерывать процесс. Это относится только к событиям начала и промежуточным событиям. Прерывание означает что наступление события необходимо для продолжения процесса. Если же событие не влияет на ход процесса, не определяет или не изменяет его, то оно просто учитывается. Например, автоматическая фиксация какого-нибудь KPI не влияет на процесс, но тем не менее может быть отображена на схеме. Также непрерывающими событиями можно отображать совокупность условий, которые на данный момент не влияют на процесс, но будучи выполненными вместе собираются в Множественное или Множественное параллельное событие, которое уже влияет на процесс. Примеры подобных ситуаций я соберу в отдельной статье.Развилки BPMN 2.0
Шлюз, основанный на данных (XOR)
Развилка подобного типа означает, что дальнейшее развитие процесса зависит от определенных данных или решений. При этом процесс может развиваться только по одному пути развития событий. Самый простой пример – любой вопрос, ответ на который может быть “да” или “нет”. На улице идет дождь? Если да, то берем зонт. Если нет, то не берем.Шлюз, основанный на событиях (XOR)
Как и в предыдущем варианте, процесс может развиваться только по одному пути, но теперь он определяется на основании событий. Т.е. в зависимости от того, какое событие произойдет, дальше процесс и будет развиваться. Например, если клиент перезвонил в оговоренный срок, то дальше просто происходит беседа с ним. Если же звонка не было, то менеджеру самому необходимо связаться с клиентом.Включающий шлюз (решение, объединение, OR)
Данная развилка используется, когда необходимо показать, что процесс может развиваться в результате наступления нескольких событий. Например, вы можете пойти гулять с собакой в случаях: если настало время прогулки, если собака просится на улицу или если оба эти события наступили. Т.е. наступление одного события и, как следствие, развитие процесса не исключает наступления другого события. Процесс запускается при любом сочетании событий.Комплексное решение, объединение
В нотации BPMN 2.0 во всех случаях множественных решений требуется заранее заданное условие, чтобы развилка сработала. Почему-то в голову пришел вот такой пример – для того чтобы сработало заклинание, его необходимо произнести (выполнить процесс) только в полнолуние, в апреле високосного года, или при убывающей луне 29 февраля. Т.е. вы сможете пройти развилку и выполнить операцию, только если выполнен один из наборов условий.Параллельная развилка, объединение (AND)
Здесь все просто. Для того, чтобы процесс стал развиваться дальше, необходимо выполнение всех условий, входящих в развилку. Если же из развилки выходит несколько потоков, то они развиваются параллельно. Пример: чтобы войти в дверь, закрытую на 3 замка, вам нужно открыть каждый из них. Дверь – это и есть развилка))Объекты данных BPMN 2.0
Исходящие данные
Отображает появление данных в результате выполнения процесса или операции. Например, в результате обслуживания клиента появляются данные о времени обслуживания. С помощью этого элемента можно показывать фиксацию показателей эффективности.Входящие данные
Используется чтобы показать, что для выполнения процесса или операции необходимы некоторые данные. Например, для идентификации клиента, обратившегося в колл-центр, необходим номер договора.Потоки BPMN 2.0
Поток по умолчанию
Такой поток, который считается верным в процессе. Из таких потоков складывается верный и желаемый путь всего процесса.Условный поток
rzbpm.ru