Контрольная. 4 Бочаров. Отчет по лабораторной работе 4 по теме
Скачать 373.16 Kb.
|
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФГАОУ ВО «Крымский федеральный университет имени В. И. Вернадского» Физико-технический институт Кафедра компьютерной инженерии и моделирования Отчет по лабораторной работе №4 по теме: “Имитационное моделирование систем с устройствами в режимах прерывания и недоступности” по дисциплине "Компьютерные системы" Выполнил студент 4 курса Группы ИВТ-б-з-181(1) Бочаров Ю.Е Проверила: Руденко М.А. Симферополь, 2022 Цель: Выполнить имитационное моделирование системы. Исходные данные для выполнения лабораторной работы: Таблица 1 Исходные данные для проектирования системы Таблица 2 Параметры задач, решаемых системой Таблица 3 Трудоемкости задач и число обращений к файлам Таблица 4 Параметры файлов Таблица 5 Необходимые характеристики исследуемой системы
Данные, которые были использованы для заполнения таблицы №5: . Скорости для нахождения τ(HDD) и τ(SSD) будем использовать следующие: для записи HDD = 0.78 МБ/с, а для SSD = 139 МБ/с, для чтения 0.68 МБ/с и 63.6 МБ/с соответственно. При моделировании будем использовать SSD, т.к. скорость существенно выше. Теоретическая часть: Моделировать систему будем при помощи среды имитационного моделирования GPSS World. GPSS (англ. General Purpose Simulation System — система моделирования общего назначения) — язык моделирования, используемый для имитационного моделирования различных систем, в основном систем массового обслуживания. Во время выполнения работы нам необходимо будет создать 5 блоков “GENERATE” для задач с разными приоритетами (АП, ОП и БП) и один блок для запуска системы. Сначала все заявки поступают в очереди Q_1,2…, далее, исходя из приоритета, обрабатываются соответствующими процессорами и через контроллер памяти обращаются к файлам. Статистика будет записываться в таблицы TAB1 - TAB5 для разных классов задач. При моделировании мы должны следить за загруженностью процессоров и накопителей, все поставленные задачи должны быть полностью выполнены без отказов. GENERATE - Генерирует транзакты через A единиц времени, модифицированных B с задержкой C, D транзактов, с приоритетом E. TRANSFER - Изменяет направление движения транзактов согласно режиму А. QUEUE - Обеспечивает занятие B единиц в очереди с именем A. PREEMPT - Выполняет приоритетную обработку транзакта в устройстве A. DEPART - Обеспечивает освобождение в очереди A B единиц. ADVANCE - Задерживает транзакт на время A±B, если B = const, или A´B, если B – функция. RETURN - Снимает прерывание с устройства A. ENTER - Обеспечивает вхождение транзакта в многоканальное устройство A с занятием B единиц емкости этого устройства. ADVANCE - Задерживает транзакт на время A±B, если B = const, или A´B, если B – функция. LEAVE - В многоканальном устройстве A освобождает B единиц его емкости. TABULATE - Табулирует значения входящих транзактов в таблице A. TERMINATE - Удаляет транзакт из модели, уменьшая на величину A значение содержимого счетчика числа завершений Рисунок 1 Блок-диаграмма для одного блока кода Выполнение работы: После расчета всех необходимых характеристик системы можем приступить к ее моделированию. Сначала смоделируем работу нашей системы, состоящую из одного процессора CPU и одного накопителя SSD. Все задачи обрабатываются на CPU, все данные записываются на SSD: Из результатов моделирования видно, что загруженность процессора слишком большая, чтобы исправить это, модернизируем систему: добавим еще один процессор. Распределим нагрузку между CPU: Проведём еще улучшение. Добавим по одному CPU и SSD: Показатели после последнего улучшения являются для нас приемлемыми. Рисунок 2 Пример статистики ТАВ1 Изобразим с помощью диаграмм различные зависимости: Протестируем работу системы с разным количеством CPU (от 1 до 5): Рисунок 3 Использование трех CPU будет самым целесообразным вариантом, т.к. при увеличении количества процессоров возможны незначительные загруженности CPU (невыгодно), а при уменьшении наоборот - сильные загруженности. Определим при каком количестве каналов система будет работать без отказов: Рисунок 4 Видим, что трех каналов будет достаточно для безотказной работы системы. Теперь проверим нагрузку при разном количестве накопителей: Рисунок 5 Оформим в виде диаграммы время пребывания в очередях транзактов: Рисунок 6 Вывод: В ходе выполнения лабораторной работы мы познакомились и научились работать с программой GPSS World. С помощью данной среды была смоделирована система, а также установлено, что для её корректной работы необходимо три процессора CPU и два накопителя SSD. Результаты моделирования собраны в виде диаграмм, по выполненной работе составлен отчет. Приложение 1 (листинг программы): TAB1 TABLE M1,0,0.1,50 TAB2 TABLE M1,0,0.1,50 TAB3 TABLE M1,0,0.1,50 TAB4 TABLE M1,0,0.1,50 TAB5 TABLE M1,0,0.1,50 SSD1 STORAGE 3 SSD2 STORAGE 3 ;____________АП1 GENERATE (Exponential(1,0,0.263)) TRANSFER 0.5, LABEL1_1 QUEUE Q_1 PREEMPT CPU0,PR DEPART Q_1 ADVANCE 0.182,0.01 RETURN CPU0 ENTER SSD1 ADVANCE 0.653,0.1 LEAVE SSD1 TABULATE tab1 TERMINATE LABEL1_1 QUEUE Q_2 PREEMPT CPU1,PR DEPART Q_2 ADVANCE 0.182,0.01 RETURN CPU1 ENTER SSD2 ADVANCE 0.653,0.1 LEAVE SSD2 TABULATE tab1 TERMINATE ;____________АП2 GENERATE (Exponential(1,0,0.667)) TRANSFER 0.5, LABEL2_1 QUEUE Q_1 PREEMPT CPU2,PR DEPART Q_1 ADVANCE (Exponential(1,0,0.018)) RETURN CPU2 ENTER SSD2 ADVANCE 0.352,0.01 LEAVE SSD2 TABULATE tab2 TERMINATE LABEL2_1 QUEUE Q_2 PREEMPT CPU1,PR DEPART Q_2 ADVANCE 0.018,0.01 RETURN CPU1 ENTER SSD1 ADVANCE 0.352,0.01 LEAVE SSD1 TABULATE tab2 TERMINATE ;____________ОП1 GENERATE 3.333,1 QUEUE Q_3 PREEMPT CPU2 DEPART Q_3 ADVANCE 0.109,0.01 RETURN CPU2 ENTER SSD1 ADVANCE 0.286,0.01 LEAVE SSD1 TABULATE tab3 TERMINATE ;____________ОП2 GENERATE 1.250,0.2 QUEUE Q_4 PREEMPT CPU2 DEPART Q_4 ADVANCE 0.127,0.01 RETURN CPU2 ENTER SSD2 ADVANCE 0.355,0.1 LEAVE SSD2 TABULATE tab4 TERMINATE ;__________БП1 GENERATE 1.667,0.1 QUEUE Q_4 SEIZE CPU2 DEPART Q_4 ADVANCE 0.018,0.01 RELEASE CPU2 ENTER SSD2 ADVANCE 0.429,0.1 LEAVE SSD2 TABULATE tab5 TERMINATE GENERATE 72000 TERMINATE 1 START 1 Приложение 2 (отчет): GPSS World Simulation Report - Untitled Model 1.132.2 Monday, May 25, 2020 23:54:56 START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 36000.000 79 3 2 NAME VALUE CPU0 10008.000 CPU1 10010.000 CPU2 10012.000 LABEL1_1 13.000 LABEL2_1 35.000 Q_1 10007.000 Q_2 10009.000 Q_3 10013.000 Q_4 10011.000 SSD1 10005.000 SSD2 10006.000 TAB1 10000.000 TAB2 10001.000 TAB3 10002.000 TAB4 10003.000 TAB5 10004.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 136884 0 0 2 TRANSFER 136884 0 0 3 QUEUE 68540 0 0 4 PREEMPT 68540 0 0 5 DEPART 68540 0 0 6 ADVANCE 68540 0 0 7 RETURN 68540 0 0 8 ENTER 68540 0 0 9 ADVANCE 68540 2 0 10 LEAVE 68538 0 0 11 TABULATE 68538 0 0 12 TERMINATE 68538 0 0 LABEL1_1 13 QUEUE 68344 0 0 14 PREEMPT 68344 0 0 15 DEPART 68344 0 0 16 ADVANCE 68344 0 0 17 RETURN 68344 0 0 18 ENTER 68344 0 0 19 ADVANCE 68344 1 0 20 LEAVE 68343 0 0 21 TABULATE 68343 0 0 22 TERMINATE 68343 0 0 23 GENERATE 54154 0 0 24 TRANSFER 54154 0 0 25 QUEUE 27068 0 0 26 PREEMPT 27068 0 0 27 DEPART 27068 0 0 28 ADVANCE 27068 0 0 29 RETURN 27068 0 0 30 ENTER 27068 0 0 31 ADVANCE 27068 0 0 32 LEAVE 27068 0 0 33 TABULATE 27068 0 0 34 TERMINATE 27068 0 0 LABEL2_1 35 QUEUE 27086 0 0 36 PREEMPT 27086 0 0 37 DEPART 27086 0 0 38 ADVANCE 27086 0 0 39 RETURN 27086 0 0 40 ENTER 27086 0 0 41 ADVANCE 27086 0 0 42 LEAVE 27086 0 0 43 TABULATE 27086 0 0 44 TERMINATE 27086 0 0 45 GENERATE 10836 0 0 46 QUEUE 10836 0 0 47 PREEMPT 10836 0 0 48 DEPART 10836 0 0 49 ADVANCE 10836 0 0 50 RETURN 10836 0 0 51 ENTER 10836 0 0 52 ADVANCE 10836 1 0 53 LEAVE 10835 0 0 54 TABULATE 10835 0 0 55 TERMINATE 10835 0 0 56 GENERATE 28809 0 0 57 QUEUE 28809 0 0 58 PREEMPT 28809 0 0 59 DEPART 28809 0 0 60 ADVANCE 28809 0 0 61 RETURN 28809 0 0 62 ENTER 28809 0 0 63 ADVANCE 28809 0 0 64 LEAVE 28809 0 0 65 TABULATE 28809 0 0 66 TERMINATE 28809 0 0 67 GENERATE 21594 0 0 68 QUEUE 21594 0 0 69 SEIZE 21594 0 0 70 DEPART 21594 0 0 71 ADVANCE 21594 0 0 72 RELEASE 21594 0 0 73 ENTER 21594 0 0 74 ADVANCE 21594 0 0 75 LEAVE 21594 0 0 76 TABULATE 21594 0 0 77 TERMINATE 21594 0 0 78 GENERATE 1 0 0 79 TERMINATE 1 0 0 FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY CPU0 68540 0.347 0.182 1 0 0 0 0 0 CPU1 95430 0.359 0.135 1 0 0 0 0 0 CPU2 88307 0.159 0.065 1 0 0 0 0 0 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY Q_1 7 0 95608 67402 0.100 0.038 0.128 0 Q_2 9 0 95430 60965 0.131 0.050 0.137 0 Q_4 2 0 50403 47194 0.006 0.004 0.064 0 Q_3 1 0 10836 10807 0.000 0.000 0.068 0 STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY SSD1 3 0 0 3 106462 1 1.594 0.531 0 0 SSD2 3 2 0 3 145815 1 2.046 0.682 0 0 TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% TAB1 0.962 0.215 0 0.700 - 0.800 24186 17.67 0.800 - 0.900 44652 50.29 0.900 - 1.000 29676 71.97 1.000 - 1.100 13635 81.93 1.100 - 1.200 8197 87.92 1.200 - 1.300 5753 92.12 1.300 - 1.400 3903 94.97 1.400 - 1.500 2469 96.78 1.500 - 1.600 1558 97.92 1.600 - 1.700 1005 98.65 1.700 - 1.800 682 99.15 1.800 - 1.900 394 99.44 1.900 - 2.000 287 99.65 2.000 - 2.100 165 99.77 2.100 - 2.200 130 99.86 2.200 - 2.300 71 99.91 2.300 - 2.400 56 99.95 2.400 - 2.500 21 99.97 2.500 - 2.600 14 99.98 2.600 - 2.700 10 99.99 2.700 - 2.800 7 99.99 2.800 - 2.900 8 100.00 2.900 - 3.000 0 100.00 3.000 - 3.100 1 100.00 3.100 - 3.200 1 100.00 TAB2 0.486 0.176 0 0.300 - 0.400 27085 50.01 0.400 - 0.500 9327 67.24 0.500 - 0.600 7129 80.40 0.600 - 0.700 4481 88.68 0.700 - 0.800 2658 93.58 0.800 - 0.900 1522 96.40 0.900 - 1.000 867 98.00 1.000 - 1.100 454 98.83 1.100 - 1.200 254 99.30 1.200 - 1.300 142 99.57 1.300 - 1.400 98 99.75 1.400 - 1.500 62 99.86 1.500 - 1.600 36 99.93 1.600 - 1.700 16 99.96 1.700 - 1.800 13 99.98 1.800 - 1.900 7 99.99 1.900 - 2.000 2 100.00 2.000 - 2.100 1 100.00 TAB3 0.447 0.109 0 0.300 - 0.400 5616 51.83 0.400 - 0.500 2836 78.01 0.500 - 0.600 1389 90.83 0.600 - 0.700 528 95.70 0.700 - 0.800 256 98.06 0.800 - 0.900 130 99.26 0.900 - 1.000 41 99.64 1.000 - 1.100 19 99.82 1.100 - 1.200 13 99.94 1.200 - 1.300 3 99.96 1.300 - 1.400 2 99.98 1.400 - 1.500 1 99.99 1.500 - 1.600 0 99.99 1.600 - 1.700 0 99.99 1.700 - 1.800 0 99.99 1.800 - 1.900 1 100.00 TAB4 0.554 0.164 0 0.300 - 0.400 1767 6.13 0.400 - 0.500 10642 43.07 0.500 - 0.600 10302 78.83 0.600 - 0.700 2440 87.30 0.700 - 0.800 1484 92.45 0.800 - 0.900 896 95.56 0.900 - 1.000 492 97.27 1.000 - 1.100 284 98.26 1.100 - 1.200 189 98.91 1.200 - 1.300 115 99.31 1.300 - 1.400 73 99.57 1.400 - 1.500 71 99.81 1.500 - 1.600 18 99.88 1.600 - 1.700 18 99.94 1.700 - 1.800 8 99.97 1.800 - 1.900 7 99.99 1.900 - 2.000 2 100.00 2.000 - 2.100 1 100.00 TAB5 0.549 0.182 0 0.300 - 0.400 3265 15.12 0.400 - 0.500 7441 49.58 0.500 - 0.600 5418 74.67 0.600 - 0.700 2051 84.17 0.700 - 0.800 1367 90.50 0.800 - 0.900 857 94.47 0.900 - 1.000 536 96.95 1.000 - 1.100 272 98.21 1.100 - 1.200 153 98.92 1.200 - 1.300 79 99.28 1.300 - 1.400 65 99.58 1.400 - 1.500 34 99.74 1.500 - 1.600 23 99.85 1.600 - 1.700 19 99.94 1.700 - 1.800 10 99.98 1.800 - 1.900 2 99.99 1.900 - 2.000 2 100.00 FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 252282 0 36000.006 252282 0 1 252277 0 36000.209 252277 0 56 252253 0 36000.279 252253 52 53 252276 0 36000.312 252276 9 10 252279 0 36000.629 252279 9 10 252281 0 36000.658 252281 19 20 252280 0 36000.666 252280 0 23 252278 0 36000.968 252278 0 67 252283 0 36002.330 252283 0 45 252284 0 72000.000 252284 0 78 |