Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000276.doc
Скачиваний:
12
Добавлен:
30.04.2022
Размер:
1.37 Mб
Скачать

3.5. Отчет о проделанной работе

Отчет о выполнении лабораторной работы №3 необходимо оформить на листах формата А4 (титульный лист оформить по прил. 2). Отчет должен содержать описание и результаты работы, представляемые в следующей последовательности:

- описание моделируемой задачи на основе принципа клапана с таймером (в соответствии с номером варианта);

- процесс формализации организации работы станции метрополитена (описание констант, переменных, узлов, транзактов, старта и финиша работы модели);

- распечатки графиков и результатов с оценкой полученных данных (не менее 2-4 страниц);

- рекомендации по улучшению организации работы станции метрополитена с целью эффективного обслуживания пассажиров и движения поездов

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

  1. Как производится управление модельным временем?

  2. С помощью, каких узлов производится моделирование клапана с таймером?

  3. Какие модели относятся к разомкнутым?

  4. Какой оператор является первым оператором модели?

  5. Можно ли освободить уничтожающий транзакт из “зависшего” узла delet?

  6. Каким образом можно включить блок операторов С++ в состав узла модели?

  7. Какие две основные функции выполняет терминатор, убирающий транзакты из модели?

Литература

[1, 3, 4]

Лабораторная работа №4 моделирование замкнутой корпоративной информационной системы

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

Изучить принципы построения и анализа замкнутых систем с использованием схемы зарядки.

Время: 2 часа.

4.2. Описание моделируемого процесса

Рассмотрим локальную вычислительную сеть (ЛВС), имеющую один процессор, один винчестер и несколько пользовательских терминалов. Пользователи посылают операционной системе OS UNIX запросы на выполнение своих прикладных задач, которые содержат некоторое количество операций ввода-вывода (I/O). Посланный запрос поступает на обработку процессором (CPU). По каждому запросу создается процесс, который начинает работать в ЛВС. Созданному процессу OS UNIX выделяет участок памяти (RAM) и затем несколько буферов I/O (ресурсы ЛВС). Процессы, требующие меньший объем ресурса, имеют больший приоритет при его выделении. Если ресурсов ЛВС недостаточно для очередного процесса, он ожидает освобождения ресурса другими процессами. После этого процесс получает доступ к винчестеру (HDD) для выполнения одной операции I/O. Процесс, завершивший свою работу, освобождает занимаемые им ресурсы, возвращая их операционной системе.

После выделения ресурса и выполнения каждой операции ввода-вывода CPU определяет очередной этап обработки процесса. Если при очередной проверке состояния процесса необходимое количество операций I/O окажется выполненным, пользователю направляется сигнал о выполнении его запроса. Получив сигнал, пользователь обдумывает и посылает следующий запрос.

4.3. Пример решения

Проанализируем схему, имитирующую работу ЛВС под управлением OS UNIX (рис.4.1). Формирование схемы модели производится с помощью конструктора Gem-1.0. Описание каждого узла, а также операторов moodbeg и moodend выполняется в соответствии с алгоритмом, изложенным в прил. 1.

В модели транзакт имеет несколько состояний:

- обдумываемый пользователем запрос;

- посланный пользователем запрос на организацию процесса ввода-вывода;

- созданный OS UNIX-V процесс I/O;

- процесс, получивший RAM;

Рис. 4.1. Схема модели работы ЛВС под OS UNIX

- процесс, получивший буферы I/O;

- процесс, выполнивший хотя бы одну операцию I/O;

-сигнал пользователю о выполнении запроса.

Текущее состояние транзакта заносится в его параметр и является критерием перехода из сервера, имитирующего работу процессора. Изменение состояния транзакта осуществляется в узлах, имитирующих терминалы пользователей, работу CPU, обращение к HDD, выделение RAM и буферов I/O.

Имена используемых параметров транзактов переопределены операторами #define.

Модель является замкнутой. С помощью схемы зарядки (узлы 9, 10 и 11) генерируется семейство транзактов количеством USERS (число терминалов пользователей). Сгенерированные транзакты поступают в сервер (узел 8), имитирующий пользовательские терминалы. Число каналов сервера равно константе USERS. Время обслуживания есть время обдумывания пользователем запроса к OS UNIX.

Перед входом в узел состояние транзакта (параметр PROCESS_STATUS) получает значение RAM. Транзакт, выйдя из сервера, будет играть роль запроса на создание процесса I/O, и ему нужно будет выделить память.

Из сервера транзакт переходит в очередь (узел 1), имитирующую очередь к процессору, и далее в сервер (узел 2), имитирующий процессор. Перед входом в узел на основании значения параметра PROCESS_STATUS принимается решение о дальнейшей обработке транзакта. Если состояние транзакта имеет значение HDD, это значит, что данный транзакт имитирует уже созданный процесс I/O.

Если при этом установлен флажок доступа к винчестеру (параметр транзакта HDD_ACCESS равен 1), значит, процесс выполнил хотя бы одну операцию ввода-вывода и с вероятностью 0,2 является завершенным (значение генератора rundum больше 0,8).

В этом случае транзакт отправляется в сервер (8) - OS UNIX посылает пользователю сигнал о выполнении его запроса. Если же либо значение HDD_ACCESS равно 0 (процесс не выполнил еще ни одной операции ввода-вывода), либо значение генератора rundum не превосходит 0,8 (процесс не завершен), то транзакт отправляется в очередь (узел 3), имитирующую очередь к винчестеру на совершение операций I/O (процесс должен выполнить очередную операцию ввода-вывода).

Если состояние транзакта имеет значение BUFF, значит, процесс получил память и теперь должен получить буферы I/O. В этом случае транзакт отправляется на склад ресурсов (узел 7), имитирующий выделение процессу буферов I/O. Если состояние транзакта имеет значение RAM, значит, транзакт имитирует только что пришедший запрос на создание процесса I/O. В этом случае транзакт отправляется на склад ресурсов (узел 5), имитирующий выделение процессу памяти.

Число каналов сервера равно 1 - процессор одновременно обрабатывает один процесс (запрос). Время обслуживания есть время обработки процесса (запроса) процессором и имеет равномерный закон распределения.

Если вошедший в узел транзакт будет отправлен в сервер (узел 8), сбрасывается флажок доступа к винчестеру HDD_ACCESS ( он получает значение 0), и транзакт возвращает полученные им ресурсы (выполняются операции detach).

В очереди (узел 3) устанавливается флажок доступа к винчестеру HDD_ACCESS, и транзакт переходит в сервер (узел 4), имитирующий обращение к винчестеру - операцию I/O. Число каналов сервера равно 1 - одновременно выполняется одна операция I/O. Время обслуживания в сервере есть время доступа к винчестеру и задано с помощью beta-распределения с минимальным временем доступа 0,05 секунды, максимальным – 0,15 секунды и наиболее вероятным – 0,1 секунды. Из сервера транзакт переходит в очередь (узел 1).

На складе ресурсов (узел 5) транзакту выделяется ресурс “RAM”. Перед входом в узел определяется объем запрашиваемой памяти (параметр транзакта RAM_AMOUNT) как случайная доля от максимального выделяемого объема памяти.

Состояние транзакта PROCESS_STATUS получит значение BUFF - процесс помечается как ожидающий выделения буферов I/O. В описании узла параметр RAM_AMOUNT указывает количество запрашиваемого ресурса. Флажок учета приоритета запроса установлен (см. п. 4.2). Далее транзакт переходит к управляющему складом (узел 6), и оттуда - в очередь (узел 1).

На складе ресурсов (узел 7) транзакту выделяется требуемое количество буферов I/O (параметр транзакта BUF_AMOUNT). Состояние транзакта получает значение HDD (процесс готов к выполнению операций I/O - доступ к винчестеру разрешен). В остальном узел (7) аналогичен узлу (5).

После формирования схемы модели и компиляции кода С++ (файл lvs.cpp) построить проект, проверить на ошибки и провести экстремальный эксперимент (не менее 5-10 испытаний) в соответствии с прил.1.

В результате испытаний получить графические результаты по динамике задержек в очереди и табличные результаты (рис. 4.2).

*---------------------------------------------------------------------------------------------------------*

| НАЗВАНИЕ МОДЕЛИ: Лок.ВС / UNIX-V |

| ВРЕМЯ МОДЕЛИРОВАНИЯ: 28800.00 Лист: 1 |

|---------------------------------------------------------------------------------------------|

| | | | |Загруз-| | 2 | | | | |

| No | Наименование | Тип |Точ-| ка, %=| M [t] | C [t] |Счeтчик|Кол.|Оcт.|Состояние узла|

|узла| узла | узла | ка |Путь,км| среднее | вариация| входов|кан.| тр.| в этот момент|

|---------------------------------------------------------------------------------------------|

| | | | | | | | | | | |

| 1 Очередь к CPU queue - - 0.05 2.34 205831 1 0 открыт |

| 2 CPU serv - %= 71.3 0.10 0.33 205831 1 1 открыт |

| 3 Очередь к HDD queue - - 0.01 10.55 128517 1 0 открыт |

| 4 HDD serv - %= 44.6 0.10 0.04 128517 1 1 открыт |

| 5 Выделить RAM attach - %= 73.8 42.33 51.75 25799 1 41 9 S

| 2495 D

| 6 Диспет.ресурсов manage - - 0.00 1.00 51516 1 0 открыт |

| 7 Выделить буферы attach - %= 55.5 0.38 7.37 25758 1 0 1 S

| 0 D

| 8 Терминалы п-лей serv - %= 17.9 10.01 0.06 25806 50 7 открыт |

| 9 Вспом. транзакт ag - - 0.00 1.00 2 1 1 открыт |

| 10 Генерация п-лей creat - - 0.00 1.00 50 1 0 открыт |

| 11 Выключение Ag 9 term - - 0.00 1.00 2 0 1 закрыт |

| | | | | | | | | | | |

-------------*---------------------------------------------------------------------------------------------*

Рис.4.2. Результаты моделирования

За период моделирования к OS UNIX поступило 25799 запросов на создание процесса ввода-вывода (счетчик входов узла 5). Каждый пользователь послал в среднем по 500 запросов, и 7 пользователей на момент окончания моделирования обдумывают очередной запрос. В среднем пользователи потратили на обдумывание запросов 18 % времени работы с ЛВС.

25 758 процессов было обеспечено ресурсами (счетчик входов узла 7 показывает число процессов, получивших ресурс, так как все транзакты покинули узел). 41 запрос ожидает выделения ресурса RAM. Было совершено 128 516 операций ввода-вывода, и одна операция осталась незаконченной. Было произведено 205831 обращений к процессору, и на момент окончания моделирования процессор находился в состоянии работы. Всего процессор находился в состоянии работы 71 % времени работы ЛВС, операции ввода-вывода заняли 42 % времени. Среднее время ожидания доступа к процессору составило 0,05 секунды, среднее время ожидания операции ввода-вывода – 0,01 секунды.

Средняя загруженность ресурса RAM составляет 73 %. На момент окончания моделирования остаток ресурса RAM составляет 9 Мб, а стоящие в очереди процессы требуют в общей сложности 2495 Мб памяти. Средняя загруженность ресурса буферов I/O составляет 55 %. На момент окончания моделирования свободен один буфер, и потребности в ресурсе нет. Среднее время ожидания выделения RAM составляет 42 секунды, буферов – 0,38 секунды. Различия в результатах связаны с тем, что процесс вначале требует выделения RAM, а затем - буферов ввода-вывода.

Вариант объектного кода модели представлен в прил. 3 (пункт 4).