Федеральное государственное бюджетное образовательное
учреждение высшего образования 
Московский государственный университет имени М.В. Ломоносова
Факультет вычислительной математики и кибернетики

УТВЕРЖДАЮ
декан факультета вычислительной математики и кибернетики
______________/И.А. Соколов /
«___» ________________20___г.

РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ
Наименование дисциплины:
Имитационное моделирование в исследовании и разработке информационных систем
Уровень высшего образования:
бакалавриат
Направление подготовки / специальность:
01.03.02 «Прикладная математика и информатика» (3++)
Направленность (профиль):
Системное программирование и компьютерные науки
Форма обучения:
очная

Москва 2023

Рабочая программа дисциплины (модуля) разработана в соответствии с самостоятельно установленным МГУ образовательным стандартом (ОС МГУ) для реализуемых основных профессиональных образовательных программ высшего образования по направлению подготовки 01.03.02, 01.04.02 "Прикладная математика и информатика" программы бакалавриата  Утвержден приказом МГУ от 30 августа 2019 года № 1041 (в редакции приказов МГУ от 11 сентября 2019 года № 1109, от 10 июня 2021 года № 609, от 7 октября 2021 года № 1048, от 21 декабря 2021 года № 1404, от 2 ноября 2022 года № 1299) 

1. Дисциплина относится к вариативной части ОПОП ВО.

2. Входные требования для освоения дисциплины (модуля): учащиеся должны владеть знаниями по дисциплинам «Алгоритмы и алгоритмические языки», «Основы архитектуры ЭВМ», «Операционные системы», «Теория вероятностей» в объеме, соответствующем программе первого и второго года обучения основных образовательных программ бакалавриата по укрупненным группам направлений и специальностей  02.00.00 «Компьютерные и информационные науки».

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

Компетенции выпускников, частично формируемые при реализации дисциплины (модуля):

•	ПК-2.Б Способность понимать и применять в научно-исследовательской деятельности современный математический аппарат
•	СПК-ИМИРИС-1.Б. Способность строить концептуальные модели вычислительных систем в целях анализа производительности и правильности функционирования (выделять существенные аспекты функционирования системы и внешние факторы, выражать их в терминах формальных моделей параллельных систем)

Планируемые результаты обучения по дисциплине (модулю):

Знать:
1.	основные проблемы, возникающие при разработке информационных систем, в том числе проблемы анализа производительности;
2.	основные понятия, принципы построения имитационных моделей;
3.	особенности основных уровней моделирования и проектирования аппаратных средств информационных систем;
4.	взаимосвязь современных процессов разработки и моделирования информационных систем;
Уметь:
1.	разрабатывать имитационные модели информационных систем на уровне крупных компонентов;
2.	проводить эксперименты с имитационными моделями, выполнять простейшую статистическую обработку результатов имитационных экспериментов со случайными исходными данными;
Владеть:  
1.	навыками программирования дискретно-событийных имитационных моделей на языке С++ в системе моделирования OMNeT++. 
4. Формат обучения: лекции проводятся с использованием видеопроектора и презентаций в электронной форме, для выполнения домашних практических заданий используются персональные компьютеры учащихся. Необходимое программное обеспечение имеет открытый исходный код, загружается из Сети и устанавливается учащимися самостоятельно, с консультациями преподавателя по необходимости.

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

5.	Содержание дисциплины (модуля), структурированное по темам (разделам) с указанием отведенного на них количества академических часов и виды учебных занятий.
6.	
Наименование и краткое содержание разделов и тем дисциплины (модуля),

Форма промежуточной аттестации по дисциплине (модулю)	Всего
(часы)	В том числе	
		Контактная работа 
(работа во взаимодействии с преподавателем)
Виды контактной работы, часы	Самостоятельная работа обучающегося,
 часы 
	
		Занятия лекционного типа*	Занятия семинарского типа*	Всего		
1.	Информационные системы (ИС) как объект разработки и исследования	6	2	2	4	4	
2.	Производительность ИС. Методы наблюдения за работой ИС и измерения производительности	6	2	2	4	4	
3.	Основы имитационного моделирования. Основные подходы к организации дискретно-событийных имитационных моделей. Примеры систем имитационного моделирования. Основные этапы процесса построения имитационной модели	30	12	12	24	16	
4.	Элементы статистических методов для моделирования и анализа производительности	10	4	4	8	6	
5.	Важные классы средств имитационного моделирования, специфичные для исследования и разработки ИС	14	6	6	12	10	
6.	Взаимосвязь моделирования и проектирования ИС	10	4	4	8	6	
7.	Построение сложных комплексных имитационных моделей	14	6	6	12	8	
Итоговая аттестация: зачёт с оценкой	18	0	0	0	18	
Итого	144	36	36	72	72	

7. Фонд оценочных средств (ФОС) для оценивания результатов обучения по дисциплине (модулю)

7.1. Домашние задания для самостоятельного выполнения.

Задание 1. Измерение времени работы программы и её оптимизация. Дана программа на языке Си, требуется: а) измерить время её выполнения; б) используя знания об архитектуре ЭВМ и, при необходимости, средства наблюдения в составе ОС, по возможности сильнее ускорить выполнение программы. Предлагаются 4 варианта программы, год от года тексты программ меняются.

Задание 2. Усвоение основных принципов дискретно-событийного моделирования.
Исходные данные: программа simple_event.cpp (модель работы сервера и двух клиентов), рассмотренная на лекции, simple_event_ssim.cpp - её модификация с использованием библиотеки SSim. Задание предлагается в четырёх вариантах.

Требуется модифицировать (simple_event.cpp или simple_event_ssim.cpp по выбору студента):
Варианты 1) 2).
1.	Добавить второй сервер, аналогичный первому (в том числе, со своей очередью запросов).
2.	Между клиентами и серверами поставить балансировщик нагрузки. Балансировщик должен принимать запросы от клиентов и направлять их на один из серверов:
•	Вариант 1): входящие запросы направляются на сервера поочерёдно;
•	Вариант 2): балансировщик подсчитывает суммарную длину запросов, уже назначенных на каждый из серверов, и направляет текущий запрос на сервер с наименьшей суммой длин назначенных запросов.
Время, затрачиваемое балансировщиком на распределение запросов, принять равным 0.
Необходимо представить примеры, показывающие правильность работы модели. В том числе, подобрать рабочую нагрузку так, чтобы продемонстрировать непустоту очередей.
Варианты 3) 4).
1.	Добавить третьего клиента, аналогичного имеющимся.
2.	Присоединить к клиентам планировщик запросов. Планировщик должен попытаться установить «справедливость» обслуживания клиентов посредством управления выдачей клиентом очередного запроса. В отличие от исходной модели, клиент после выдачи запроса должен получить разрешение от планировщика, чтобы через интервал паузы создать свой очередной запрос.
Вариант 3): планировщик разрешает создание запросов клиентам в последовательности номеров 1,2,3. То есть, запускает клиента 1, получив от него запрос, запускает клиента 2, … . То есть, получив i-й по счёту запрос, даёт разрешение на работу клиенту i%3+1.
Вариант 4): планировщик выбирает клиента для запуска случайным образом (равновероятно для клиентов 1,2,3). Получив запрос, планировщик повторно выбирает клиента, и т.д.
Задание 3. Использование диаграмм состояний для описания поведения объектов. Требуется построить диаграмму состояний (в форме Statechart или в форме диаграммы Мура) для (по вариантам): 1) процесса в ОС Linux; 2) потока (thread) в ОС Linux; 3) файла в ОС Linux; 4) сокета (socket) в ОС Linux.

Задание 4. Построение и исследование имитационной модели. Анализ производительности сетевого канала CSMA

Исходные данные
1.	Имеется сеть, в которой N хостов подключено к каналу с общим доступом (CSMA). Длина канала равна L метров. Скорость передачи B Мбит/с. На каждом хосте работает одно и то же приложение, в бесконечном цикле отправляющее пакет длиной l (латинское эль) байт (не дожидаясь отправки предыдущего пакета!). Интервал  времени между пакетами – случайная величина с экспоненциальным распределением и средним значением (1/α).
2.	Каждый сетевой адаптер имеет буфер для неотправленных пакетов. 
3.	Предполагается, что коллизий нет, но занятость канала проверяется адаптером. Если канал занят, то момент повтора передачи определяется по правилам стандарта IEEE 802.3 для случая коллизии. 

Что требуется
а) Должна быть построена модель, которая воспроизводит работу описанной системы на заданном пользователем интервале времени и позволяет получить следующие характеристики производительности (в каждом варианте задания требуется рассчитывать лишь часть характеристик):
1.	Средняя доля потерянных пакетов (от числа всех созданных пакетов).
2.	Среднее число попыток повторной передачи пакета
3.	 Среднее и максимальное число пакетов в буфере адаптера
4.	Средняя занятость канала
б) Должна быть проведена серия экспериментов с моделью для определения зависимости характеристик  производительности от параметров сети и подбора параметров для достижения заданных условий (несколько вариантов задания, см. ниже).
в) При проведении экспериментов нужно принимать во внимание, что измеряемые характеристики являются случайными величинами.
В качестве заготовки для построения модели следует взять модели канала и сетевого адаптера из модуля Ethernet (https://inet.omnetpp.org/docs/users-guide/ch-ethernet.html) пакета моделей Inet для системы моделирования OMNet++. Допускается использование системы ns3 (модуль csma). 

Варианты задания 4
Во всех вариантах B=100, L=30, l=1500. Интервал моделирования 10 с.
1.	Расчёт хар1 и хар3. Найти наибольшее N, при котором не будет потерь пакетов для  α = 10, 50, 100. Какова макс. длина очереди для этих N?  Будет ли очередь расти неограниченно?
2.	Расчёт хар2 и хар3. Найти наибольшее N, при котором хар2 не более 2,0 для α = 10, 50, 100. Какова макс. длина очереди для этих N?  Будет ли очередь расти неограниченно?
3.	Расчёт хар3 и хар4. Найти наибольшее N, при котором очередь ограничена, для α = 10, 50, 100. Каковы значения хар3 и хар4?
4.	Расчёт хар4 и хар1. Найти наибольшее N, при котором хар4 не более 0,5, для α = 10, 50, 100. Каковы значения хар1?

Вопросы к зачёту 
1.	Особенности вычислительных систем с точки зрения их исследования и разработки. Понятие производительности вычислительной системы (ВС). Задачи анализа и синтеза производительности ВС.
2.	Аппаратные средства наблюдения за работой ВС. Основные возможности. Примеры.
3.	Программные средства наблюдения за работой ВС. Примеры. Средства измерения времени в ОС. 
4.	Основные возможности средств отображения и анализа трасс (как с аппаратных, так и с программных наблюдателей). Роль наблюдения в анализе производительности и отладке программы.
5.	Понятие модели. Основные виды моделей. Примеры моделей, в том числе аналитических моделей производительности. Основные варианты применения моделей в человеческой деятельности. 
6.	Понятие имитационной модели. Сравнение по возможностям с другими видами моделей. Способы продвижения времени в имитационных моделях. 
7.	Основные этапы создания имитационной модели. Сравнение с этапами создания программы «общего назначения».
8.	Примеры формальных моделей параллельных вычислений, используемых для представления концептуальных моделей систем.
9.	Подходы к описанию имитационной модели: непрерывный, событийный, процессно-ориентированный, агентно-ориентированный. Основные понятия, поддерживаемые языками и библиотеками классов дискретно-событийного имитационного имитационного моделирования. 
10.	Обобщённая архитектура системы имитационного моделирования. Назначение и функции её компонентов. Примеры систем имитационного моделирования.
11.	Обработка результатов эксперимента: оценка необходимого числа испытаний.
12.	Эмуляторы процессоров. Применение эмуляторов. Классификация эмуляторов по точности моделирования и скорости работы. 
13.	Способы быстрой эмуляции системы команд процессоров.
14.	Типовые уровни моделирования и проектирования аппаратных средств ИС. Связь моделирования и проектирования аппаратных средств ИС.
15.	Моделирование на уровне RTL. Учёт специфики предметной области в языке описания моделей Verilog. 

ШКАЛА И КРИТЕРИИ ОЦЕНИВАНИЯ результатов обучения (РО) по дисциплине (модулю)  	
Оценка
РО и
соответствующие виды оценочных средств 	2	3	4	5	
Знания
Зачёт с оценкой	Отсутствие знаний	Фрагментарные знания	Общие, но не структурированные знания	Сформированные систематические знания	
Умения
Выполнение домашних практических заданий 	Отсутствие умений	В целом успешное, но не систематическое умение	В целом успешное, но содержащее отдельные пробелы умение (допускает неточности непринципиального характера)	Успешное и систематическое умение	
Навыки 
(владения, опыт деятельности)
Выполнение домашних практических заданий 	Отсутствие навыков (владений, опыта)	Наличие отдельных навыков (наличие фрагментарного опыта)	В целом, сформированные навыки (владения), но используемые не в активной форме	Сформированные навыки (владения), применяемые при решении задач	

Соответствие результатов обучения и компетенций, в развитии которых участвует дисциплина (модуль)
	
Результаты обучения	Компетенция, с частичным формированием которой связано достижение результата обучения	
Знать:
1.	основные проблемы, возникающие при разработке информационных систем, в том числе проблемы анализа производительности;
2.	основные понятия, принципы построения имитационных моделей;
3.	особенности основных уровней моделирования и проектирования аппаратных средств информационных систем;
4.	взаимосвязь современных процессов разработки и моделирования информационных систем;
Уметь:
1.	разрабатывать имитационные модели информационных систем на уровне крупных компонентов;
2.	проводить эксперименты с имитационными моделями, выполнять простейшую статистическую обработку результатов имитационных экспериментов со случайными исходными данными;
Владеть:  
1.	навыками программирования дискретно-событийных имитационных моделей на языке С++ в системе моделирования OMNeT++. 

ОПК-2.Б	
Знать:
1.	основные понятия, принципы построения имитационных моделей;
2.	формальные модели для представления поведения системы: конечные автоматы, процессы с сообщениями, сети Петри;
	СПК-ИМИРИС-1.Б

8. Ресурсное обеспечение:

Основная литература:
1.	Презентации к лекциям по курсу "Имитационное моделирование в исследовании и разработке информационных систем". [Электронный ресурс]. URL: http://asvk.cs.msu.su/node/216 (дата обращения 07.11.2019).
2.	Р. Шеннон. Имитационное моделирование систем – искусство и наука. – М:Мир, 1978. Глава 1. 
3.	Советов Б.Я., Яковлев С.А. Моделирование систем // Учебник для вузов (3-е издание, переработанное и дополненное), Высшая школа, Москва, 2001, 343 с. (введение, глава 1)
4.	Замятина О. М. Компьютерное моделирование // Учебное пособие / Томский политехнический университет, Томск, 2007, 121 с. URL: http://simulation.su/uploads/files/default/2007-uch-posob-zamyatina-1.pdf
5.	Гультяев А.К. Matlab 5.2. Имитационное моделирование в среде Windows. Практическое пособие. Главы 1-2.
6.	Fast Instruction Set Simulation Using LLVM-based Dynamic Translation. [Электронный ресурс] URL: http://www.iaeng.org/publication/IMECS2011/IMECS2011_pp212-216.pdf
7.	An Ultra-Fast Instruction Set Simulator [Электронный ресурс] URL: http://cadal.cse.nsysu.edu.tw/seminar/seminar_file/2004/1123_ycliu_paper.pdf 
8.	Shade: A Fast Instruction-Set Simulator for Execution Profiling. [Электронный ресурс] URL: http://people.ac.upc.edu/vmoya/docs/cmelik93shade.pdf
9.	Fast Cycle Estimation Methodology for Instruction-Level Emulator. [Электронный ресурс] URL: http://www.date-conference.com/files/proceedings/2012/pdffiles/ip1_01.pdf
10.	A Retargetable Framework for Instruction-Set Architecture Simulation [Электронный ресурс] URL: http://www.ics.uci.edu/~dutt/pubs/J52_reshadi.pdf 
11.	A fast cycle-accurate instruction set simulator based on QEMU and SystemC for SoC development. [Электронный ресурс] URL: http://www.researchgate.net/profile/Tse-Chen_Yeh/publication/224142691_A_fast_cycle-accurate_instruction_set_simulator_based_on_QEMU_and_SystemC_for_SoC_development/links/0c96051c3443fd0caa000000.pdf
12.	[Электронный ресурс] URL: http://www.russianelectronics.ru/developer-r/review/2189/doc/40279/
13.	 [Электронный ресурс] URL:http://www.asic-world.com/systemc/tutorial.html
14.	[Электронный ресурс] URL: http://www.ece.iastate.edu/~zambreno/classes/cpre588/documents/RosSwa05A.pdf
15.	Лекция 9: Элементы графической нотации диаграммы состояний https://www.intuit.ru/studies/courses/32/32/lecture/1016?page=1
16.	Лекция 10: Моделирование параллельного поведения с помощью диаграмм состояний // НОУ Интуит – URL: https://www.intuit.ru/studies/courses/32/32/lecture/1018?page=1

Дополнительная литература:
1.	Калинина В.Н., Панкин В.Ф. Математическая статистика. М.: Дрофа, 2002 год. 340 с.
2.	http://window.edu.ru/resource/717/41717
3.	http://citforum.ru/hardware/app_kis/contents.shtml
4.	https://software.intel.com/en-us/blogs/2013/09/18/processor-tracing
5.	https://perf.wiki.kernel.org/index.php/Tutorial
6.	http://www.brendangregg.com/linuxperf.html
7.	https://habr.com/ru/company/metrotek/blog/261003/
8.	https://www.agner.org/optimize/instruction_tables.pdf
9.	https://www.agner.org/optimize/optimizing_cpp.pdf
10.	https://itnan.ru/post.php?c=1&p=341946
11.	https://www.intuit.ru/studies/courses/604/460/lecture/10353?page=4

Информационные справочные системы:	1. Национальное общество имитационного моделирования. http://simulation.su
2. Winter Simulation Conference. http://www.wintersim.org
Материально-техническое обеспечение: аудитория с мультимедиа-проектором и экраном. Лицензионное ПО не требуется.

9. Язык преподавания:	русский.

10. Преподаватели:  		ведущий научный сотрудник факультета ВМК МГУ А.Г. Бахмуров.

11. Авторы программы:  	ведущий научный сотрудник факультета ВМК МГУ А.Г. Бахмуров.