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

Теория параллелизма. Самостоятельные работы. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
986 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Факультет информационных технологий

Н. О. Гаранина, И. С. Ануреев

ТЕОРИЯ ПАРАЛЛЕЛИЗМА. САМОСТОЯТЕЛЬНЫЕ РАБОТЫ

Учебно-методическое пособие

Новосибирск

2023

УДК 004.423

ББК В185.121я73-1

Г200

Рецензент:

д-р техн. наук, проф. В. Е. Зюбин

Гаранина, Н. О.

Г200 Теория параллелизма. Самостоятельные работы : учеб.-метод. пособие / Н. О. Гаранина, И. С. Ануреев ; Новосиб. гос. ун-т. – Новосибирск : ИПЦ НГУ, 2023. – 62 с.

ISBN 978-5-4437-1474-5

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

УДК 004.423

ББК В185.121я73-1

Рекомендовано к печати кафедрой систем информатики ФИТ НГУ

(протокол № 38 от 25.04.2023 г.)

Новосибирский государственный

ISBN 978-5-4437-1474-5

университет, 2023

Оглавление

Введение........................................................................................................................................................................

7

Еженедельные самостоятельные работы....................................................................................................

8

Самостоятельная работа № 1 по теме "Выбор параллельной системы, определение её

составляющих и формулировка требований".......................................................................................

8

Справочные материалы ...............................................................................................................................

8

Базовые задания ..............................................................................................................................................

9

Параметры задания........................................................................................................................................

9

Образец решения.............................................................................................................................................

9

Задание 2 ...............................................................................................................................................................

10

Самостоятельная работа № 2 по теме "Построение систем переходов"..............................

12

Справочные материалы ............................................................................................................................

12

Базовые задания ...........................................................................................................................................

13

Параметры задания.....................................................................................................................................

13

Образец решения..........................................................................................................................................

13

Самостоятельная работа № 3 по теме "Темпоральные логики" ..............................................

16

Справочные материалы ............................................................................................................................

16

Базовые задания ...........................................................................................................................................

16

Задания повышенной сложности ........................................................................................................

16

Параметры задания.....................................................................................................................................

17

Образец решения..........................................................................................................................................

17

Самостоятельная работа № 4 по теме "CSP-спецификация процессов"...............................

17

Справочные материалы ............................................................................................................................

17

Задания ..............................................................................................................................................................

18

Параметры задания.....................................................................................................................................

18

Образец решения..........................................................................................................................................

18

Самостоятельная работа № 5 по теме “Трейсы процессов”........................................................

21

Справочные материалы ............................................................................................................................

21

Базовые задания ...........................................................................................................................................

22

Параметры задания.....................................................................................................................................

22

Образец решения..........................................................................................................................................

22

Самостоятельная работа № 6 по теме ”Спецификация. Взаимодействие и

 

Параллелизм”......................................................................................................................................................

24

Справочные материалы ............................................................................................................................

24

Базовые задания ...........................................................................................................................................

25

3

 

Параметры задания.....................................................................................................................................

25

Образец решения..........................................................................................................................................

25

Самостоятельная работа № 7 по теме “Изменение символа. Многократное

переименование”...............................................................................................................................................

26

Справочные материалы ............................................................................................................................

26

Базовые задания ...........................................................................................................................................

26

Задания повышенной сложности ........................................................................................................

26

Параметры задания.....................................................................................................................................

27

Образец решения..........................................................................................................................................

27

Самостоятельная работа № 8 по теме “Спецификации. Недетерминизм”..........................

28

Справочные материалы ............................................................................................................................

28

Базовые задания ...........................................................................................................................................

29

Задания повышенной сложности ........................................................................................................

29

Параметры задания.....................................................................................................................................

29

Образец решения..........................................................................................................................................

29

Самостоятельная работа № 9 по теме “Недетерминизм. Сокрытие, Дивергенция”......

31

Справочные материалы ............................................................................................................................

31

Базовые задания ...........................................................................................................................................

31

Параметры задания.....................................................................................................................................

31

Образец решения..........................................................................................................................................

31

Самостоятельная работа № 10 по теме “Коммуникация“............................................................

33

Справочные материалы ............................................................................................................................

33

Базовые задания ...........................................................................................................................................

33

Параметры задания.....................................................................................................................................

34

Образец решения..........................................................................................................................................

34

Самостоятельная работа № 11 по теме “Подчинение”..................................................................

38

Справочные материалы ............................................................................................................................

38

Базовые задания ...........................................................................................................................................

38

Образец решения..........................................................................................................................................

38

Самостоятельная работа № 12 по теме “Прерывания” .................................................................

40

Справочные материалы ............................................................................................................................

40

Базовые задания ...........................................................................................................................................

40

Параметры задания.....................................................................................................................................

40

Образец решения..........................................................................................................................................

40

Самостоятельная работа № 13 по теме “Разделение через интерливинг”.........................

42

4

 

Справочные материалы ............................................................................................................................

42

Базовые задания ...........................................................................................................................................

43

Параметры задания.....................................................................................................................................

43

Образец решения..........................................................................................................................................

43

Самостоятельная работа № 14 по теме “Множественные ресурсы”......................................

44

Справочные материалы ............................................................................................................................

44

Базовые задания ...........................................................................................................................................

44

Параметры задания.....................................................................................................................................

44

Образец решения..........................................................................................................................................

45

Семестровые самостоятельные работы.....................................................................................................

47

Самостоятельная работа № 1 по теме “Спецификация параллельной системы на

 

языке Promela и верификация её свойств в системе SPIN” .........................................................

47

Справочные материалы ............................................................................................................................

47

Базовые задания ...........................................................................................................................................

47

Параметры задания.....................................................................................................................................

47

Список литературы...............................................................................................................................................

48

Приложения..............................................................................................................................................................

48

Приложения А. Список задач.......................................................................................................................

48

1.

Эскалатор .....................................................................................................................................................

48

2.

Турникет в метро.....................................................................................................................................

49

3.

Вращающаяся дверь...............................................................................................................................

49

4.

Сушилка для рук.......................................................................................................................................

49

5.

Термопот ......................................................................................................................................................

49

6.

Торговый автомат ...................................................................................................................................

49

7.

Автомобильный шлагбаум с датчиками появления и распознаванием номеров.49

8.

Шлагбаум с телефонным ключом ...................................................................................................

49

9.

Система охлаждения двигателя.......................................................................................................

49

10.

Автоматические двери в трамвае.................................................................................................

50

11.

Умное освещение...................................................................................................................................

50

12.

Джакузи с подогревом ........................................................................................................................

50

13.

Система сортировки таблеток........................................................................................................

50

14.

Железнодорожный переезд со шлагбаумом...........................................................................

50

15.

Шлюзовая камера..................................................................................................................................

50

16.

Многоместная автостоянка .............................................................................................................

50

17.

Пешеходный переход по требованию ........................................................................................

51

 

 

5

 

18.

Система забора образцов марсианского грунта ...................................................................

51

19.

Пожарная сигнализация....................................................................................................................

51

20.

Сообразительный холодильник....................................................................................................

51

21.

Багажная лента.......................................................................................................................................

51

22.

Стиральная машина.............................................................................................................................

51

23.

Розлив вина..............................................................................................................................................

51

24.

Охранная сигнализация.....................................................................................................................

52

25.

Умная теплица ........................................................................................................................................

52

26.

Робот-пылесос.........................................................................................................................................

52

27.

Линия упаковки конфет ....................................................................................................................

52

Приложение Б. Быстрая установка пакета верификации SPIN.................................................

52

Приложение В. Код на mermaid .................................................................................................................

53

Controller (C)....................................................................................................................................................

53

User (E1).............................................................................................................................................................

56

Lift (P1) ...............................................................................................................................................................

58

Button1 (S1)......................................................................................................................................................

58

Button2 (S2)......................................................................................................................................................

59

Button12 (S3) ...................................................................................................................................................

59

Button21 (S4) ...................................................................................................................................................

60

Door (S5) ............................................................................................................................................................

61

6

Введение

Курс “Теория параллелизма” освещает метод конструирования абстрактных параллельных процессов с помощью формализма CSP – алгебры взаимодействующих последовательных процессов (Communicating Sequential Processes), а также практические методы спецификации и верификации параллельных процессов. В рамках курса студенты изучают основы построения последовательных процессов и их параллельных комбинаций, алгебраические законы этих построений и примеры использования. Для закрепления рассматриваемого материала студентам предлагается ряд задач для самостоятельного решения.

Самостоятельные работы по курсу “Основы параллелизма” делятся на три вида: еженедельные, семестровые и бонусные.

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

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

Выполнение бонусных работ занимает 1–2 недели, но сдаются они в любое время в течение семестра. Бонусные работы проверяются только один раз.

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

Описание самостоятельной работы состоит из следующих разделов. Раздел “Справочные материалы” содержит теоретические сведения, необходимые для выполнения заданий работы, а также методологические замечания по ее выполнению. Разделы “Базовые задания” и “Задания повышенной сложности” содержат описание соответствующих заданий. Раздел “Параметры задания” включает параметры задания (время выполнения, количество баллов и т. п.), а также специфические моменты, которые нужно учитывать при решении конкретных заданий (описываются в пункте Общие). Раздел “Образец решения” описывает алгоритмы решения некоторых из базовых заданий на примере управляющей системы , специфицирующей лифт для маломобильных пользователей. На этом сквозном примере иллюстрируются концепции курса “Теория параллелизма”. Количество баллов за задания является оценочным.

7

Еженедельные самостоятельные работы

Самостоятельная работа № 1 по теме "Выбор параллельной системы, определение её составляющих и формулировка требований"

Справочные материалы

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

1)процессы среды;

2)датчики среды;

3)объекты управления,

датчики объекта управления;

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

4)контроллер.

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

Общую схему параллельной системы можно описать следующим образом:

1)окружение воздействует на датчики среды (порождает события, которые наблюдаются датчиком среды);

2)датчики среды передают информацию контроллеру (порождают события передачи данных контроллеру);

3)контроллер на основании этой информации осуществляет управляющее воздействие на объекты управления (порождает события воздействия на объекты управления);

4)объекты управления изменяют состояния в результате управляющего воздействия, и эти новые состояния регистрируются датчиками объектов управления (порождают события передачи данных контроллеру);

5)индикаторы объектов управления передают информацию процессам окружения (порождают события, которые наблюдаются процессами окружения).

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

Процессы имеют уникальные идентификаторы вида , где { , , , } описывает тип процесса ( – контроллер, – процесс окружения, — объект управления, –

8

датчик среды). Так как контроллер только один, его идентификатор обозначается вместо 1.

Базовые задания

1)Выберите параллельную систему из приложения А. С этой системой вы будете выполнять самостоятельные работы в течение семестра. Описания параллельных систем приблизительные, и вы можете их варьировать по своему усмотрению. Если никакая из этих систем вам не приглянулась, вы можете предложить свою.

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

3)Сопоставьте с каждым процессом множество имен событий, связанных с ним (приписываемых его состояниям). Этот список нужно поместить в качестве дополнительной информации о процессе в алфавитный список процессов из п. 2.

4)Составьте алфавитный список всех событий, снабдив каждый элемент списка кратким неформальным описанием события на естественном языке. Этот пункт выполняется часто одновременно с п. 3.

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

6)Установите верификатор SPIN. Инструкция по установке дана в приложении Б. Приложите скриншот симуляции какой-либо Promela-модели.

Параметры задания

Общие

Решение принимается в файлах текстового формата.

Пишите номер и исходное описание выбранной системы в начале решения задания.

Время выполнения: 4 дня.

Количество баллов: 30 баллов.

Образец решения

Задание 1

В качестве параллельной системы выберем лифт для маломобильных пользователей

:

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

9

В состав лифта входит платформа с двумя дверями для каждого из этажей и двигатель.

Двери платформы открываются и закрываются вручную.

Состояние закрытия дверей регистрируется датчиками.

Имеются две кнопки вызова лифта, расположенные на каждом этаже.

На самой платформе расположены две кнопки управления перемещением.

Два датчика регистрируют нахождение платформы лифта на верхнем и нижнем этаже соответственно.

Двигатель вертикального перемещения платформы лифта управляется посредством сигналов и .

Задание 2

Алфавитный список процессов системы включает имена процессов, их идентификаторы в скобках и краткое описание.

( ) – обработчик сигналов датчиков кнопок и этажей;

(1) – пользователь лифта;

(1) – платформа с датчиками этажей;

1 (1) – кнопка вызова на 1-м этаже;

2 (2) – кнопка вызова на 2-м этаже;

12 (3) – кнопка перемещения вверх на платформе;

21 (4) – кнопка перемещения вниз на платформе;

(5) – дверь.

Задание 3

Сопоставим с каждым процессом системы список имен событий, связанных с ним:

( ) – обработчик сигналов датчиков кнопок и этажей,

{ , 1, 2, 12, 21, , , , , , };

10