Задача о чтении/записи

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

На рис. 2.18 иллюстрируется решение задачи в том случае, когда количество процессов чтения ограничено величиной n. Если в системе количество процессов чтения не ограничено, то только n процессов могут выполняться в одно и то же время.

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

Рис. 2.17. Задача об обедающих мудрецах Рис. 2.18. Задача о чтении/записи

Химические системы

Химические системы – другой пример систем, которые могут быть промоделированы сетями Петри. Химические уравнения моделируются переходами; вещества, участвующие в реакции, – позициями. Количество фишек в позиции указывает на количество данного вещества в системе. Например, сеть |Петри на рис. 2.20 представляет окислительно-восстановительную реакцию между щавелевой кислотой и пероксидом водорода, в результате которой получаются вода и диоксид углерода. Т.е. она представляет два химических уравнения:

Н2С2О4 → 2СО2 + 2Н+ + 2е. 2е + 2Н+ + Н2О2 → 2Н2О.

Можно представить и реакции катализа. Соединение водорода и этилена образует этан (Н2 + С2Н4 → С2Н6) только в присутствии платины. Это также отражено на рис. 2.20.

Рис. 2.19. Операции над семафором Рис. 2.20. Модели химических реакций

Упражнения

1. Построить сеть Петри для организации работы билетной кассы с 3 кассирами и общей базой данных.

2. Построить сеть Петри для задачи: n писателей, m покупателей и ограниченным объемом полок в магазине (k книг).

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

4. Построить сеть Петри для организации работы зала по бронированию билетов с 6 автоматами (можно посмотреть наличие места или забронировать).

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

6. Построить сеть Петри для задачи: в потоке 65 студентов, занятия ведут 7 преподавателей, преподаватели размещают в локальной сети информацию о консультациях, студенты могут просматривать ее в терминальном классе с 8 компьютерами.

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

8. Построить сеть Петри для представления химических реакций:

а) углерод при окислении кислородом в избытке воздуха превращается в углекислый газ: C + O2 = CO2 ; б) углерод при окислении кислородом при недостатке воздуха превращается в угарный газ: 2C + O2 = CO2 ; в) при нагревании углерода в углекислом газе получаем угарный газ: C + CO2 = 2CO; г) на воздухе угарный газ горит синим пламенем: 2CO+ O2 = 2CO2.

АНАЛИЗ СЕТЕЙ ПЕТРИ








Дата добавления: 2016-04-11; просмотров: 1513;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.