Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы РСАПР_2012 новые.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
994.82 Кб
Скачать

Задача писателей и читателей

Задача об одновременном доступе нескольких процессов к одному разделяемому ими ресурсу уже стала классической. Для моделирования работы подобной программы весьма эффективно применяются [1] сети Петри (рис. 1). Начальная маркировка позиции P1 включает 10 маркеров, обозначающих наличие 10 одновременно запущенных процессов чтения. Переход T1 – это начало процесса чтения, позиция P2 соответствует операции чтения, переход T2 завершает данную операцию, маркер переходит на начальную позицию P1 (операция зациклена). Совершенно аналогичным образом устроен цикл работы процессов записи (P4-T3-P5-T4). У каждого из этих двух контуров (чтения и записи) есть разделяемый (общий) ресурс, который в сети Петри обычно обозначается отдельной позиций (на рис. 1 это P3). Соответственно обращение к общему ресурсу имитируется изъятием из данной позиции маркера. Для P3 определена начальная маркировка из двух маркеров. При запуске операции чтения один маркер изымается, таким образом, одновременно может функционировать n читателей, где n – это количество маркеров в позиции P3. Если число параллельных читателей в общем случае не ограничено, то запись данных в определенный момент времени может осуществлять исключительно один процесс. Для имитации данного поведения из позиции P3 в переход T3 направлено две дуги. Переход T3 сработает только в том случае, если в позиции P3 находится два маркера (и один в P4). Иными словами, писатель активируется только при отсутствии читателей. Это один из традиционных вариантов решения поставленной задачи. Главным его недостатком является необходимость ограничения максимально- го количества одновременно выполняемых операций чтения. Для этого задается начальная маркировка позиции P3 и соответствующее количество исходящих дуг, соединяющих ее с переходом операции записи (что также не со- всем удобно.

Рис. 1. Классическое решение задачи читателей и писателей

На этом шаге мы рассмотрим задачу о производителе/потребителе

    В задаче о производителе/потребителе также присутствует совместно используемый объект, но в этом случае разделяемый объект точно определен и является буфером. Процесс-производитель создает объекты, которые помещаются в буфер. Потребитель ждет, пока объект не будет помещен в буфер, удаляет его оттуда и использует. Такая ситуация может быть промоделирована сетью Петри так, как показано на рисунке 1. Позиция B представляет собой буфер, каждая фишка соответствует элементу данных, который произведен, но еще не использован.

Рис.1. Задача о производителе/потребителе, моделируемая сетью Петри

В другом варианте задачи о производителе/потребителе используется буфер ограниченного размера. При такой постановке задачи буфер между производителем и потребителем ограничен, т.е. имеет только n ячеек для элементов данных. Производитель не может постоянно работать с той скоростью, которая ему нужна, а вынужден ждать, если потребитель работает медленно и буфер заполнен. На рисунке 3 показано решение этой проблемы.

Рис.3. Задача о производителе/потребителе с ограниченным буфером

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

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

31IDEF0

Метод IDEF0 предназначен для моделирования организации бизнес процессов предприятия. Основными понятиями являются «работа» и «стрелки». «Работа» есть поименованный процесс, функция или задача, которая происходит в течение некоторого периода времени и производит ощутимые результаты.

«Стрелки» используются для представления направления или потока объектов или данных, показывают необходимые объекты, используемые или создаваемые работой, должны входить или покидать работу в одной точке. Каждая стрелка должна представлять только одну классификацию или категорию, если в модели не оговорено другое. «Стрелки» бывают следующих типов: ВХОД, УПРАВЛЕНИЕ, ВЫХОД, МЕХАНИЗМ, ВЫЗОВ.

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

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

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

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

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

Декомпозиция диаграмм заключается в разбиении работ на дочерние (как правило, в пределах 3-6 дочерних работ).

32IDEF3

  • IDEF3 — Process Description Capture — Документирование технологических процессов,

IDEF3 — методология документирования процессов, происходящих в системе (например, на предприятии), описываются сценарий и последовательность операций для каждого процесса. IDEF3 имеет прямую взаимосвязь с методологией IDEF0 — каждая функция (функциональный блок) может быть представлена в виде отдельного процесса средствами IDEF3;

IDEF3 наиболее подходит для описания логики взаимодействия информационных потоков. Диаграммы Workflowpppмогут быть использованы в моделировании бизнес процессов для анализа завершенности процедур обработки информации. С их помощью можно описывать сценарии действий сотрудников организаций, например, последовательность обработки заказа или события, которые необходимо обработать за конечное время. Каждый сценарий сопровождается описанием процесса и может быть использован для документирования каждой функции. В IDEF3 стрелки могут расщепляться или сливаться только через «перекрестки», которые отображают временную логику событий. Существует пять типов перекрестков: синхронный и асинхронный «и», синхронный и асинхронный «или», исключающий «или». Более того, стрелки могут связывать единицы работ, быть отношениями или потоками объектов.

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

33 перекрестки идеф3

Перекрестки (Junctions) являются элементами модели, за счет

которых описывается логика и последовательность выполнения этапов

в модели. Перекресток кардинально отличает IDEF3-модель от других

видов моделей, т. к. за счет него описывается событийность модели.

Перекрестки бывают двух видов: перекрестки слияния – Fan In

и перекрестки ветвления – Fan Out

Перекресток не может быть одновременно перекрестком слияния

и ветвления (рис. 2.22, а), т. к. в этом случае будет неясно правило его

срабатывания. Эта ситуация разрешается путем введения в модель кас-

када перекрестков (рис. 2.22, б).

34 DFD(Dataflow)

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

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

31