Теория вычислительных процесов

advertisement
1. Введение.
Теория вычислительных процессов принадлежит циклу специальных
дисциплин (СД.05). Знание дисциплины необходимо для выполнения
профессиональных функций с использованием современных методов, средств и
технологии разработки объектов профессиональной деятельности.
1.1. Требования к уровню освоения содержания дисциплины.
Выпускник в результате усвоения дисциплины «Теория вычислительных
процессов» должен:
знать:
– основные методы построения и анализа алгоритмов, основные результаты
теории сложности алгоритмов и программ;
– формальные модели, применяемые при анализе, разработке и испытаниях
ПП;
– основные модели и методы теории вычислительных процессов
(последовательных, взаимодействующих, параллельных);
– основные модели, методы и алгоритмы теории языков программирования и
методов трансляции;
– задачи, методы и приемы аналитической верификации программ;
владеть:
– методами, языками и технологиями разработки корректных программ в
соответствии с основными парадигмами программирования;
– методами и средствами программирования распределенных ВС и сетей;
– математическими моделями вычислительных процессов и структур ВС;
– методами и средствами защиты информации в ВС.
В соответствии с п. 4 ГОС в обязательный минимум содержания основной
образовательной программы подготовки должны входить:
Семантическая теория программ; схемы программ, методы формальной
спецификации и верификации; модели вычислительных процессов; взаимодействие
процессов; протоколы и интерфейсы; асинхронные процессы; сети Петри: принципы
построения, алгоритмы поведения, способы реализации, области применения.
1.2. Требования к уровню подготовки для освоения дисциплины:
Для успешного овладения дисциплиной требуется предварительное изучение
следующих
дисциплин:
«Дискретная
математика»,
«Информатика»,
«Программирование». Дисциплина является продолжением дисциплины «Теория
языков программирования и методы трансляции».
2. Цели и задачи преподавания и изучения дисциплины.
Целью изучения курса «Теория вычислительных процессов» является
приобретение студентами знаний в области теории вычислительных процессов и
выработка практических навыков применения этих знаний, умение использовать
полученные знания и навыки при проектировании вычислительных систем.
Задачей преподавания дисциплины является: изучение основных положений
теории схем программ, семантической теории программ, моделей
вычислительных процессов, сетей Петри; подготовка студентов к решению задач
в области проектирования и программирования компиляторов, создании
трансляторов с различных языков программирования.
3. Объем дисциплины и виды учебной работы.
Таблица 1 — Состав и объем дисциплины
Вид учебной работы
Общая трудоемкость дисциплины
Аудиторные занятия
Лекции (Л)
Практические занятия (ПЗ)
Лабораторные работы (ЛР)
Самостоятельная работа студента
(СРС)
Вид итогового контроля (зачет,
экзамен)
Объем работ в соответствии с
учебным планом
ГОС
110
60
30
30
–
50
Распределение
по семестрам
в часах
семестр
7
110
60
30
30
–
50
зачет,
экзамен
зачет,
экзамен
110
100
110
Всего
часов
4. Содержание дисциплины.
4.1. Разделы дисциплины и виды занятий
Таблица 2 –Разделы дисциплины, виды и объем занятий
Номер
Объем по видам в часах
Наименование разделов, тем
раздел
дисциплины
Всего
Л
ПЗ
ЛР
а, темы
1
Cхемы программ
26
8
6
Семантическая теория
2
20
8
программ
Модели вычислительных
3
28
6
10
процессов
4
Сети Петри
36
8
14
Итого:
110
30
30
СРС
12
12
12
14
50
4.2. Содержание разделов и тем дисциплины
Схемы программ.
Необходимые математические понятия: декартово произведение множеств,
функция, предикат, графы, вычислимость и разрешимость. Понятие схемы
программ, методы формальной спецификации и верификации. Стандартные
схемы программ (ССП): базис, графовая и линейная формы. Интерпретация
ССП: стандартная программа, протокол, допустимые цепочки, результат
программы. Свойства и виды ССП: эквивалентность, тотальность, пустота,
свобода;
свободные
интерпретации.
Понятие
логико-термальной
эквивалентности. Моделирование ССП: одно- и многоленточный автомат,
двухголовочный автомат, двоичный двухголовочный автомат. Преобразование
двухголовочного автомата к двоичному двухголовочному. Теоремы ЛакхэмаПарка-Патерсона. Полная система логико-термальных преобразований:
информационный маршрут переменной, информационный граф, множество
отношений равенств для пути в графе схемы, инвариант дуги.
Семантическая теория программ.
Понятие и виды семантик языков программирования. Операционная семантика:
семантический язык, трансляция операторов и выражений. Аксиоматическая
семантика: спецификация программы (триада Хоара), правило вывода, правила
вывода простейших операторов, корректность программ. Денотационная
семантика: семантические функции выражений и простейших операторов.
Модели вычислительных процессов.
Взаимодействующие последовательные процессы: определения, законы,
реализация, протоколы. Параллельные процессы: взаимодействие процессов,
протоколы и интерфейсы, помеченные процессы. Взаимодействие: синхронные и
асинхронные процессы, подчинение. Разделяемые ресурсы: поочередное
использование, общая память, кратные ресурсы, планирование ресурсов.
Программирование
параллельных
вычислений:
основные
понятия,
многопоточная обработка, критические участки, мониторы и семафоры. Модели
параллельных вычислений: канал, обмен сообщениями, общая память.
Сети Петри.
Основные определения: теоретико-множественное определение, графы и
маркировка сетей Петри; принципы построения, алгоритмы поведения, способы
реализации, области применения. Моделирование систем на основе сетей Петри:
события и условия; одновременность и конфликт; моделирование параллельных
систем взаимодействующих процессов. Анализ сетей Петри: свойства сетей
Петри, методы анализа, дерево достижимости, матричные уравнения.
5. Лабораторные работы (практикум).
Не предусмотрены
6. Практические занятия.
Таблица 3 – Состав и объем практических занятий
Номер
Номер
Наименование и краткое содержание
практического
раздела
практических занятий
занятия
1
2
Теория схем программ
2
3
Программная реализация распознающего
автомата.
3
4
Распараллеливание
вычислительного
процесса.
4
4
Исследование параллельного алгоритма на
модели в виде сети Петри.
Итого:
Кол-во
часов
6
4
10
10
30
6.2. Контрольные вопросы к практическим занятиям
Занятие № 1. Формальные модели вычислительных процессов.
Модель конечного автомата
Определение схемы программы.
Стандартные схемы программ.
Интерпретация стандартных схем программ.
Свойства и виды стандартных схем программ.
Логико-термальная эквивалентность.
Одноленточные и многоленточные автоматы
Двухголовочный автомат.
Двоичный двухголовочный автомат.
Преобразование двухголовочного автомата в двоичный двухголовочный.
Теоремы Лакхэма-Парка-Патерсона.
Полная система логико-термальных преобразований
Занятие №2. Программная реализация распознающего автомата.
Цель занятия: написать и реализовать программу конечного автомата,
распознающего язык, порождаемый заданной индивидуальной грамматикой.
Сформировать новое правило вывода P'
Преобразование грамматики G' в автоматную грамматику
Построение недетерминированного конечного автомата.
Построить таблицу и нарисовать граф переходов.
Занятие №3. Распараллеливание вычислительного процесса.
По заданному информационно-логическому графу (ИЛГ) определить пары
независимых операторов и построить модель параллельного вычислительного
процесса в виде сети Петри.
Занятие №4. Исследование параллельного алгоритма на модели в виде сети
Петри
Информационно-логический граф и таблица времен выполнения операторов.
Классы независимых операторов (по матрице М в практической работе №3).
Модель сети Петри. Таблица вариантов прогона алгоритма.
Структура сетей Петри. Способы задания сетей Петри. Графы сетей Петри.
Маркировка сетей Петри. Правила выполнения сетей Петри. Пространство
состояний сетей Петри.
Сети Петри для моделирования. Моделирование аппаратного обеспечения
сетями Петри (конечные автоматы, ЭВМ с конвейерной обработкой, кратные
функциональные блоки).
Сети Петри для моделирования. Моделирование программного обеспечения
сетями Петри (блок-схемы, обеспечение параллелизма).
Сети Петри в решении задач синхронизации: задача о взаимном исключении,
задача о производителе/потребителе, задача об обедающих мудрецах, задача о
чтении/записи, P- и V-системы и др.
Задачи анализа сетей Петри: безопасность, ограниченность, сохранение,
активность, покрываемость.
Дерево достижимости сети Петри.
Использование дерева достижимости для анализа сетей Петри.
Матричные уравнения и их использование для анализа сетей Петри.
Сети Петри с ограничениями и подклассы сетей Петри.
7. Семинарские занятия.
Не предусмотрены.
8. Самостоятельная работа студентов (СРС).
На самостоятельную работу выносится:
– проработка курса лекций и подготовка к практическим работам;
– подготовка к зачету, экзамену.
9. Учебно-методическое обеспечение дисциплины.
9.1. Рекомендуемая литература.
а) основная литература:
1. Мелехин, В. Ф. Вычислительные машины, системы и сети: учеб. для вузов.
/ В. Ф. Мелехин, Е. Г. Павловский. – М.: Академия, 2006. – 555 с.
2. Кузин, А. В. Архитектура ЭВМ и вычислительных систем: учеб. / А. В.
Кузин, С. А. Пескова. – М.: ФОРУМ: ИНФРА-М, 2006. – 352 с.
б) дополнительная литература
1. Максимов, Н. В. Архитектура ЭВМ и вычислительных систем: учеб. / Н. В.
Максимов, Т. Л. Партыка, И. И. Попов, 2-е изд., перераб. и доп. – М.: Форум.
2008. – 511 с.
9.2. Средства обеспечения освоения дисциплины.
– компьютерный класс с поддержкой протокола TCP/IP – 15 ПК;
– операционная система Windows XP.
Экзаменационные вопросы по курсу
1. Понятие и способы описания вычислительного процесса.
2. Классификация вычислительных процессов.
3. Формализация управления вычислительным процессом.
4. Классификация стратегий управления вычислительным процессом.
5. Модель конечного автомата, способы задания автомата.
6. Задача минимизации автомата, алгоритм ее решения.
7. Проблема распознаваемости языков, распознающие машины.
8. Структурная схема распознающего автомата, программная реализация.
9. Понятие сети Петри, диаграммы маркировок.
10. Классификация отношений между переходами сети Петри.
11. Свойства сетей Петри.
12. Подклассы сетей Петри.
13. Задачи достижимости и активности сетей Петри.
14. Представление конечного автомата сетью Петри.
15. Расширенные модели сетей Петри.
16. Понятие и способы описания параллельных алгоритмов.
17. Понятие максимально параллельного алгоритма и его представление сетью Петри.
18. Понятие многопоточного процесса, управление потоками.
19. Параллельные граф-схемы алгоритма с независимыми и взаимодействующими
ветвями.
20. Аномалии в системе взаимодействующих процессов. Дедлок при конкуренции на
общих ресурсах.
21. Аномалии при информационном обмене. Протоколы обмена.
22. Анализ протоколов информационного обмена с помощью сетей Петри.
23. Понятие стандартной схемы программ.
24. Свойства стандартных схем программ и проблема их алгоритмической
разрешимости.
25. Обогащенные стандартные схемы программ.
26. Понятие транслируемости схем программ. Диаграмма транслируемости.
27. Методы формальной спецификации программ.
28. Методы верификации терминальных программ.
29. Методы верификации реактивных программ.
Download