Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

tvp

.pdf
Скачиваний:
40
Добавлен:
25.02.2016
Размер:
465.85 Кб
Скачать

ТЕОРИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ И СТРУКТУР

ЛАБОРАТОРНЫЙ ПРАКТИКУМ

МИНСК 2009

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«МИНСКИЙ ГОСУДАРСТВЕННЫЙ ВЫСШИЙ РАДИОТЕХНИЧЕСКИЙ КОЛЛЕДЖ»

ТЕОРИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ И СТРУКТУР

Лабораторный практикум

для студентов специальности 1-08 01 01-07 «Профессиональное обучение. (Информатика)»

МИНСК 2009

1

УДК 681.3(075) ББК 32.973–018.2я7

Т33

Рекомендовано к изданию кафедрой информатики (протокол № 4 от 26.11.2008 г.) и Научно-методическим советом Учреждения образования «Минский государственный высший радиотехнический колледж» (протокол № 4 от 10.12.2008 г.)

С о с т а в и т е л ь Л. Н. Громова, старший преподаватель

кафедры информатики МГВРК

Р е ц е н з е н т Ю. А. Скудняков, зав. кафедрой информатики МГВРК,

канд. техн. наук, доцент

Теория вычислительных процессов и структур : лаб. Т33 практикум для студентов специальности 1-08 01 01-07 «Профессиональное обучение. (Информатика)» / сост. Л. Н. Гро-

мова. – Мн. : МГВРК, 2009. – 72 с. ISBN 978-985-526-026-5

Приведены описания пяти лабораторно-практических работ, снабженных краткими теоретическими сведениями и большим количеством примеров.

Предназначено для студентов и преподавателей колледжа.

УДК 681.3(075) ББК 32.973я7

© Громова Л. Н., составление, 2009 ISBN 978-985-526-026-5 © Оформление. Учреждение образо-

вания «Минский государственный высший радиотехнический кол-

ледж», 2009

Предисловие

Лабораторный практикум по дисциплине «Теория вычислительных процессов и структур» для студентов специальности 1-08 01 01-07 «Профессиональное обучение. (Информатика)» имеет целью закрепить теоретические знания принципов управления вычислительным процессом, алгоритмов управления процессами в очередях к совместно используемым ресурсам, методов синхронизации параллельных процессов и потоков, алгоритмов и способов предотвращения deadlock.

При одновременном доступе нескольких процессов (или нескольких потоков одного процесса) к какому-либо ресурсу возникает проблема синхронизации. Главной идеей, заложенной в основе синхронизации потоков в Win32, является использование объектов синхронизации и функций ожидания. Решение проблемы зависит также от знания основных концепций, структуры и механизмов операционной системы, ее принципов работы и характеристик.

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

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

подбирать оптимальные алгоритмы планирования процессорного времени на основе анализа их основных характеристик;

моделировать последовательные процессы с помощью сетей Петри;

моделировать работу алгоритмов взаимодействия параллельных процессов (потоков) с использованием сетей Петри;

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

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

2

3

ЛАБОРАТОРНО-ПРАКТИЧЕСКАЯ РАБОТА 1

ПЛАНИРОВАНИЕ ИСПОЛЬЗОВАНИЯ ПРОЦЕССОРА

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

Техническое обеспечение: ПЭВМ на базе Intel-80486. Программное обеспечение: OS Windows XP.

Время выполнения: 2 часа.

1. Краткие теоретические сведения

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

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

CPU burst – промежуток времени непрерывного использования процессора;

I/O burst – промежуток времени непрерывного ожидания ввода-вывода.

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

1)когда процесс переводится из состояния исполнение в со-

стояние завершение;

2)когда процесс переводится из состояния исполнение в со-

стояние ожидание;

3)когда процесс переводится из состояния исполнение в состояние готовность (например, после прерывания от таймера);

4)когда процесс переводится из состояния ожидание в состояние готовность (завершилась операция ввода-вывода или произошло другое событие).

Вслучаях 1 и 2 процесс, находившийся в состоянии исполнение, не может дальше исполняться, и для выполнения всегда

необходимо выбрать новый процесс. В случаях 3 и 4 планирование может не проводиться, процесс, который исполнялся до прерывания, может продолжать свое выполнение после обработки прерывания. Если планирование осуществляется только в случаях 1 и 2, то говорят, что имеет место невытесняющее (nonpreemptive) планирование. В противном случае говорят о вытес- няющем (preemptive) планировании. Термин «вытесняющее планирование» возник потому, что исполняющийся процесс помимо своей воли может быть вытеснен из состояния исполнение другим процессом.

1.1. First Come, First Served (FCFS)

Простейшим алгоритмом планирования является алгоритм, который принято обозначать аббревиатурой FCFS по первым буквам его английского названия – First Come, First Served (первым пришел, первым обслужен). Представим себе, что процессы, находящиеся в состоянии готовность, организованы в очередь. Когда процесс переходит в состояние готовность, он, а точнее ссылка на его PCB (process control bloct), помещается в конец этой очереди. Выбор нового процесса для исполнения осуществляется из начала очереди с удалением оттуда ссылки на его PCB. Очередь подобного типа имеет в программировании специальное наименование FIFO – сокращение от First In, First Out (первым вошел, первым вышел).

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

1.2. Round Robin (RR)

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

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

Этот алгоритм получил название Round Robin (Round Robin – это вид детской карусели в США) или сокращенно RR. Можно

4

5

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

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

товность, в очередь FIFO.

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

При выполнении процесса возможны два варианта:

1)время непрерывного использования процессора, требующееся процессу (остаток текущего CPU burst), меньше или равно продолжительности кванта времени. Тогда процесс по своей воле освобождает процессор до истечения кванта времени, на исполнение выбирается новый процесс из начала очереди и таймер начинает отсчет кванта заново;

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

1.3. Shortest Job First (SJF)

В том случае, когда известно время следующих CPU burst для процессов, находящихся в состоянии готовность, можно выбрать для исполнения процесс с минимальной длительностью CPU burst. Если же таких процессов два или больше, то для выбора одного из них можно использовать уже известный нам алгоритм FCFS. Квантование времени при этом не применяется. Описанный алгоритм получил название «кратчайшая работа первой» или Shortest Job First.

SJF алгоритм краткосрочного планирования может быть как вытесняющим, так и невытесняющим.

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

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

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

1.4. Приоритетное планирование

При приоритетном планировании каждому процессу присваивается определенное числовое значение – приоритет, в соответствии с которым ему выделяется процессор. Процессы с одинаковыми приоритетами планируются в порядке FCFS.

Планирование с использованием приоритетов может быть как вытесняющим, так и невытесняющим.

Если приоритеты процессов не изменялись с течением времени, то такие приоритеты принято называть статическими.

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

2. Ход работы

2.1.Изучите теоретические сведения.

2.2.Рассмотрите примеры:

Пример 1

Тема: алгоритм планирования FCFS.

Пусть в состоянии готовность находятся три процесса p0, p1 и p2, для которых известны времена их очередных CPU burst. Эти времена приведены в табл. 1.1 в некоторых условных единицах.

Т а б л и ц а 1.1

Процесс

p0

p1

p2

Продолжительность очередного CPU burst

13

4

1

Для простоты будем полагать: вся деятельность процессов ограничивается использованием только одного промежутка CPU

6

7

burst, процессы не совершают операций ввода-вывода, и время переключения контекста пренебрежимо мало.

Пусть процессы расположены в очереди процессов готовых к исполнению в порядке p0, p1, p2. Тогда картина их выполнения выглядит как показано на рис. 1.1.

р0 исполнение

р1 готовность исполнение

готовность

 

исполнение

p2

 

 

 

 

 

 

17 18

 

 

0

13

t

Рис. 1.1. Выполнение процессов при порядке p0, p1, p2

Первым для выполнения выбирается процесс p0, который получает процессор на все время своего CPU burst, то есть на 13 единиц времени. После его окончания в состояние исполнение переводится процесс p1, занимая процессор на 4 единицы времени. И, наконец, возможность работать получает процесс p2.

Время ожидания для процесса p0 составляет 0 единиц времени, для процесса p1 – 13 единиц, для процесса p2 – 13 + 4 = = 17 единиц.

Таким образом, среднее время ожидания в этом случае –

(0 + 13 + 17)/3 = 10 единиц времени.

Полное время выполнения для процесса p0 составляет 13 единиц времени, для процесса p1 – 13 + 4 = 17 единиц, для процесса p2 – 13 + 4 + 1 = 18 единиц.

Среднее полное время выполнения оказывается равным

(13 + 17 + 18)/3 = 16 единицам времени.

Если те же самые процессы расположены в порядке p2, p1, p0, то картина их выполнения будет соответствовать рис. 1.2.

р0

 

готовность

 

 

 

исполнение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

исполнение

 

 

 

 

 

р1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p2

 

готовность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

исполнение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

0 1

5

18

Рис. 1.2. Выполнение процессов при порядке p2, p1, p0

Время ожидания для процесса p0 равняется 5 единицам времени, для процесса p1 – 1 единице, для процесса p2 – 0 единиц.

Среднее время ожидания составит (5 + 1 + 0)/3 = 2 единицы времени. Это в 5 (!) раз меньше, чем в предыдущем случае.

Полное время выполнения для процесса p0 получается равным 18 единицам времени, для процесса p1 – 5 единицам, для процесса p2 – 1 единице.

Среднее полное время выполнения составляет (18 + 5 + 1)/3 = 6 единиц времени, что почти в 2,7 раза меньше чем при первой расстановке процессов.

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

Пример 2

Тема: алгоритм планирования RR.

Рассмотрим предыдущий пример с порядком процессов p0, p1, p2 и величиной кванта времени равной 4. Выполнение этих процессов иллюстрируется табл. 1.2.

Используем следующие обозначения:

И – для процесса, находящегося в состоянии исполнение,

Г – для процессов в состоянии готовность,

пустые ячейки соответствуют завершившимся процессам. Состояния процессов показаны на протяжении соответст-

вующей единицы времени, то есть колонка с номером 1 соответствует промежутку времени от 0 до 1.

Т а б л и ц а 1.2

Время

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p0

И

И

И

И

Г

Г

Г

Г

Г

И

И

И

И

И

И

И

И

 

p1

Г

Г

Г

Г

И

И

И

И

 

 

 

 

 

 

 

 

 

 

p2

Г

Г

Г

Г

Г

Г

Г

Г

И

 

 

 

 

 

 

 

 

 

Первым для исполнения выбирается процесс p0. Продолжительность его CPU burst больше, чем величина кванта времени, и поэтому процесс исполняется до истечения кванта, то есть в течение 4 единиц времени. После этого он помещается в конец очереди готовых к исполнению процессов, которая принимает вид p1, p2, p0.

8

9

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

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

Время ожидания для процесса p0 (количество символов Г в соответствующей строке) составляет 5 единиц времени, для процесса p1 – 4 единицы времени, для процесса p2 – 8 единиц времени.

Таким образом, среднее время ожидания для этого алгоритма получается равным (5 + 4 + 8)/3 = 5,6 единицам времени.

Полное время выполнения для процесса p0 (количество непустых столбцов в соответствующей строке) составляет 18 единиц времени, для процесса p1 – 8 единиц, для процесса

p2 – 9 единиц.

Среднее полное время выполнения оказывается равным

(18 + 8 + 9)/3 = 11,6 единицам времени.

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

На производительность алгоритма RR сильно влияет величина кванта времени. Рассмотрим тот же самый пример c порядком процессов p0, p1, p2 для величины кванта времени равной 1 (табл. 1.3).

Т а б л и ц а 1.3

Время

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

p0

И

Г

Г

И

Г

И

Г

И

Г

И

И

И

И

И

И

И

И

И

p1

Г

И

Г

Г

И

Г

И

Г

И

 

 

 

 

 

 

 

 

 

p2

Г

Г

И

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Время ожидания для процесса p0 составит 5 единиц времени, для процесса p1 – тоже 5 единиц, для процесса p2 – 2 единицы. В этом случае среднее время ожидания получается равным (5 + 5 + 2)/3 = 4 единицам времени.

Среднее полное время исполнения составит (18 + 9 + 3)/3 = = 10 единиц времени.

Пример 3

Тема: вытесняющий алгоритм планирования SJF.

Для рассмотрения примера вытесняющего SJF планирования мы возьмем ряд процессов p0, p1, p2 и p3 с различными временами CPU burst и различными моментами их появления в очереди процессов готовых к исполнению (табл. 1.4).

 

 

Т а б л и ц а 1.4

 

 

 

Процесс

Время появления в очереди

Продолжительность

очередного CPU burst

 

 

p0

0

6

p1

2

2

p2

6

7

p3

0

5

В начальный момент времени в состоянии готовность находятся только два процесса p0 и p3. Меньшее время очередного CPU burst оказывается у процесса p3, поэтому он и выбирается для исполнения (табл. 1.5).

Т а б л и ц а 1.5

Время

1

2

3

4

5

6

7

8

9

10

p0

Г

Г

Г

Г

Г

Г

Г

И

И

И

p1

 

 

И

И

 

 

 

 

 

 

p2

 

 

 

 

 

 

Г

Г

Г

Г

p3

И

И

Г

Г

И

И

И

 

 

 

Время

11

12

13

14

15

16

17

18

19

20

p0

И

И

И

 

 

 

 

 

 

 

p1

 

 

 

 

 

 

 

 

 

 

p2

 

 

 

 

 

 

 

 

 

 

p3

Г

Г

Г

И

И

И

И

И

И

И

По-прошествии 2-х единиц времени в систему поступает процесс p1. Время его CPU burst меньше, чем остаток CPU burst у процесса p3, который вытесняется из состояния исполнение и переводится в состояние готовность.

По-прошествии еще 2-х единиц времени процесс p1 завершается, и для исполнения вновь выбирается процесс p3.

10

11

В момент времени t = 6 в очереди процессов готовых к исполнению появляется процесс p2, но поскольку ему для работы нужно 7 единиц времени, а процессу p3 осталось трудиться всего 2 единицы времени, то процесс p3 остается в состоянии исполнение. После его завершения в момент времени t = 7 в очереди находятся процессы p0 и p2, из которых выбирается процесс p0.

Последним получит возможность выполняться процесс p2.

Пример 4

Тема: алгоритм приоритетного планирования (невытесняющий режим).

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

 

 

Т а б л и ц а 1.6

 

 

 

 

Процесс

Время появления

Продолжительность

Приоритет

в очереди

очередного CPU burst

 

 

p0

0

6

4

p1

2

2

3

p2

6

7

2

p3

0

5

1

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

Первым для выполнения в момент времени t = 0 выбирается процесс p3, как обладающий наивысшим приоритетом.

После его завершения в момент времени t = 5 в очереди процессов готовых к исполнению окажутся два процесса p0 и p1. Наивысший приоритет из них у процесса p1, он и начнет выполняться (табл. 1.7).

Затем в момент времени t = 8 для исполнения будет избран процесс p2 и лишь потом – процесс p0.

Т а б л и ц а 1.7

Время

1

2

3

4

5

6

7

8

9

10

p0

Г

Г

Г

Г

Г

Г

Г

Г

Г

Г

p1

 

 

Г

Г

Г

И

И

 

 

 

p2

 

 

 

 

 

 

Г

И

И

И

p3

И

И

И

И

И

 

 

 

 

 

Время

11

12

13

14

15

16

17

18

19

20

p0

Г

Г

Г

Г

И

И

И

И

И

И

p1

 

 

 

 

 

 

 

 

 

 

p2

И

И

И

И

 

 

 

 

 

 

p3

 

 

 

 

 

 

 

 

 

 

2.3. Выполните задания.

1. Пусть в вычислительную систему поступают пять процессов различной длительности по следующей схеме:

Номер процесса

Время поступления

Время исполнения

1

2

4

2

1

7

3

6

5

4

4

1

5

0

4

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

2. Пусть в вычислительную систему поступают пять процессов различной длительности по следующей схеме:

Номер процесса

Время поступления

Время исполнения

1

2

2

2

5

2

3

4

3

4

7

1

5

0

4

12

13

Вычислите среднее время между стартом процесса и его завершением (turnaroud time) и среднее время ожидания процесса (waiting time) для алгоритма планирования RR. При вычислениях считать, что процессы не совершают операций ввода-вывода, величину кванта времени принять равной 1, временем переключения контекста пренебречь. Процесс, поступающий в систему, считать готовым к исполнению в момент поступления. Вновь прибывший процесс помещается в начало очереди процессов, готовых к исполнению, и, следовательно, сразу выбирается на исполнение.

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

Номер процесса

Время поступления

Время исполнения

1

6

4

2

2

8

3

10

6

4

0

5

5

4

2

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

4. Пусть в вычислительную систему поступают пять процессов различной длительности по следующей схеме:

Номер процесса

Время поступления

Время исполнения

1

4

3

2

2

4

3

3

6

4

1

4

5

0

5

Вычислите среднее время между стартом процесса и его завершением (turnaroud time) и среднее время ожидания процесса (waiting time) для каждого из трех алгоритмов планирования

FCFS, RR и SJF. При вычислениях считать, что процессы не совершают операций ввода-вывода, величину кванта времени принять равной 1, временем переключения контекста пренебречь. Процесс, поступающий в систему, считать готовым к исполнению в момент поступления. Для алгоритма RR принять, что вновь прибывший процесс помещается в начало очереди процессов, готовых к исполнению, и, следовательно, сразу выбирается на исполнение.

5. Пусть в вычислительную систему поступают пять процессов различной длительности по следующей схеме:

Номер процесса

Время поступления

Время исполнения

1

2

3

2

5

1

3

0

6

4

3

2

5

1

2

Вычислите среднее время между стартом процесса и его завершением (turnaroud time) и среднее время ожидания процесса (waiting time) для каждого из трех алгоритмов планирования FCFS, RR и SJF. При вычислениях считать, что процессы не совершают операций ввода-вывода, величину кванта времени принять равной 1, временем переключения контекста пренебречь. Процесс, поступающий в систему, считать готовым к исполнению в момент поступления. Для алгоритма RR принять, что вновь прибывший процесс помещается в начало очереди процессов, готовых к исполнению, и, следовательно, сразу выбирается на исполнение.

Контрольные вопросы

1.Какие алгоритмы планирования вы знаете?

2.Каковы критерии планирования?

3.Какие требования предъявляются к алгоритмам планирования?

4.В чем суть вытесняющего и невытесняющего планирования?

5.На что может влиять размер выделяемого процессу кванта времени?

6.Что такое многоуровневые очереди?

7.Какова цель приоритетного планирования?

8.Как можно сгруппировать алгоритмы планирования?

14

15

Содержание отчета

1.Цель работы.

2.Краткое описание алгоритмов планирования.

3.Табличное выполнение заданий.

4.Выводы по работе.

ЛАБОРАТОРНО-ПРАКТИЧЕСКАЯ РАБОТА 2

МОДЕЛИРОВАНИЕ ПОСЛЕДОВАТЕЛЬНЫХ ПРОЦЕССОВ С ПОМОЩЬЮ СЕТЕЙ ПЕТРИ

Цель работы: приобретение навыков моделирования последовательных процессов с помощью сетей Петри.

Техническое обеспечение: ПЭВМ на базе Intel-80486. Программное обеспечение: OS Windows XP.

Время выполнения: 2 часа.

1. Краткие теоретические сведения

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

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

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

В одном из подходов к проектированию и анализу систем сети Петри используются как вспомогательный инструмент анализа. Здесь для построения системы используются общепринятые методы проектирования. Затем построенная система мо-

делируется сетью Петри, и модель анализируется. Если в ходе анализа в проекте найдены изъяны, то с целью их устранения проект модифицируется. Модифицированный проект затем снова моделируется и анализируется. Этот цикл повторяется до тех пор, пока проводимый анализ не приведет к успеху.

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

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

1.1. Теоретико-множественное определение сетей Петри

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

Сеть Петри N является четверкой N = (P, Т, I, O), где

P = {p1, p2, ..., pn} конечное множество позиций, n ³ 0; T = {t1, t2, ..., tm} – конечное множество переходов, m ³ 0;

I: T ® P* – входная функция, сопоставляющая переходу мультимножество его входных позиций;

О: T ® P* – выходная функция, сопоставляющая переходу мультимножество его выходных позиций.

Позиция pÎP называется входом для перехода tÎT, если pÎI(t). Позиция pÎP называется выходом для перехода tÎT,

если pÎO(t).

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

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

1.2. Графы сетей Петри

Наиболее наглядным представлением сети Петри является графическое – двудольный, ориентированный мультиграф.

16

17

Граф сети Петри обладает двумя типами узлов:

1)кружок m, представляющий позицию сети Петри;

2)планка ¾ (или ), представляющая переход сети Петри. Ориентированные дуги этого графа (стрелки) соединяют пе-

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

П р и м е ч а н и е. В графе сети Петри невозможны дуги между двумя позициями и между двумя переходами.

1.3. Маркировка сетей Петри

Маркировка – это размещение по позициям сети Петри фи- шек, изображаемых на графе сети Петри точками. Фишки используются для определения выполнения сети Петри. Количество фишек в позиции при выполнении сети Петри может изменяться от 0 до бесконечности.

Маркировка m сети Петри N = (P, T, I, O) есть функция, отображающая множество позиций P во множество Nat неотрицательных целых чисел. Маркировка m, может быть так же определена как n-вектор m = <m(p1), m(p2), …, m(pn)>, где n – число позиций в сети Петри для каждого 1 ≤ I ≤ nm(pi) Î Nat количество шишек в позиции рi.

Маркированная сеть Петри N = (P, Т, I, О, m) определяется совокупностью структуры сети Петри (P, T, I, О) и маркировки m. На рис. 2.1 представлена маркированная сеть Петри m = <1, 0, 1>.

 

р1

t1

t2

р2

р3

Рис. 2.1. Маркированная сеть Петри m = <1, 0, 1>

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

1.4. Правила выполнения сетей Петри

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

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

Сеть Петри до запуска перехода t1 изображена на рис. 2.2, а, сеть Петри после запуска перехода t1 – на рис. 2.2, б.

р1

р1

5

2

t1

t1

p2

3 p2

а)

б)

Рис. 2.2. Сеть Петри:

 

а – до запуска перехода, б – после запуска перехода.

Преобразование маркировки сети Петри изображено на рис. 2.2. Переход t1 преобразует маркировку m = <5, 1> в марки-

ровку m’= <2, 3>.

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

Запуски могут выполняться до тех пор, пока существует хотя бы один разрешенный переход. Когда не останется ни одного разрешенного перехода, выполнение прекращается.

Если запуск произвольного перехода t преобразует маркировку m сети Петри в новую маркировку m’, то будем говорить, что m’ достижима из m посредством запуска перехода t и обозначать этот факт, как m ®t m’. Это понятие очевидным образом

18

19

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