Скачиваний:
8
Добавлен:
28.03.2019
Размер:
1.08 Mб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«КАЗАНСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ им. А.Н. ТУПОЛЕВА-КАИ»

Чистопольский филиал «Восток» Кафедра компьютерных и телекоммуникационных систем

Методические указания

по выполнению лабораторных работ

по учебной дисциплине

«Моделирование»

Индекс по учебному плану: Б1.В.ДВ.23.01

Направление подготовки: 09.03.01 Информатика и вычислительная

техника

Квалификация: Бакалавр

Профиль подготовки: Интегрированные автоматизированные

информационные системы

Вид профессиональной деятельности: научно-исследовательская,

проектно-конструкторская, проектно-технологическая

Рекомендованы УМК ЧФ «Восток» КНИТУ-КАИ

Чистополь

2016 г.

Цель лабораторного практикума

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

инструментария, используемого для анализа вычислительной системы и определения ее

оптимальной структуры.

Принцип построения практикума

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

создается детерминированная имитационная модель. Затем в нее постепенно вводятся заранее

сформированные и проанализированные на соответствие предъявляемым требованиям

стохастические воздействия с целью получения стохастической имитационной модели

заданной системы.

Объем лабораторного практикума

12 работ, каждая из которых выполняется в лаборатории локальных вычислительных

сетей.

Содержание лабораторных работ

Детерминированное моделирование вычислительной системы

Формирование равномерно распределенных псевдослучайных последовательностей на основе регистра сдвига, моделирование генератора псевдослучайных чисел на основе регистра сдвига Формирование равномерно распределенных псевдослучайных последовательностей на основе конгруэнтных процедур Проверка качества равномерно распределенных псевдослучайных последовательностей

Формирование чисел, имеющих заданное распределение Проверка качества произвольно распределенных псевдослучайных чисел

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

Введение в систему GPSS

Изучение аппаратной категории блоков GPSS Изучение вычислительной категории блоков GPSS Изучение запоминающей категории блоков GPSS

Моделирование вычислительной системы средствами языка имитационного моделирования

GPSS

Лабораторная работа № 1

Детерминированное моделирование вычислительной системы

Цель работы: изучение основных принципов имитационного моделирования вычислительных систем (ВС); создание и отладка имитационной модели конкретной ВС на одном из универсальных языков программирования.

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

Составление имитационной модели проводят на основе алгоритмической модели процесса, представленной, в частности, Q-схемой.

Программа, являющаяся имитационной моделью, описывает последовательный вычислительный процесс. При этом параллельные процессы функционирования ВС отображаются на один последовательный, реализуемый ЭВМ. Главные задачи такого отображения – создание и продвижение модельного времени, синхронизация в этом времени событий, происходящих в ВС, обеспечение «псевдораспараллеливания» процессов, создание средств слежения за правильностью работы модели.

Таким образом, этапы построения ИМ следующие:

-создание формальной схемы функционирования ВС;

-определение единицы модельного времени;

-определение существенных для модели внешних воздействий, параметров и характеристик;

-теоретическая оценка результатов;

-выбор универсального языка программирования и оформление на нем ИМ.

Пример построения ИМ

Концептуальная модель.

Вычислительный зал представляет собой двухмашинный вычислительный комплекс. Время прихода пользователей распределено по равномерному закону в интервале от 1 до 5 мин. Если ЭВМ1 занята, пользователь выполняет свое задание на ЭВМ2. Если обе ЭВМ заняты, пользователю отказывают в обслуживании. Время обработки задания на ЭВМ1 имеет

1

нормальный закон распределения с математическим ожиданием 6 мин, дисперсией 2 мин, на ЭВМ2 – экспоненциальный закон распределения с математическим ожиданием 7 мин.

Смоделировать работу вычислительного зала в течение 8 часов. Определить процент заданий,

выполненных на ЭВМ1. Варьируя параметрами системы, определить ее оптимальную структуру, обеспечивающую минимальное время простоя оборудования.

Этапы построения ИМ

1.Строится формальная схема (Q-схема) заданной вычислительной системы (рис. 1).

2.Определяется множество внешних воздействий, внутренних параметров,

характеристик, существенных для анализа функционирования системы.

Внешние воздействия: tps – время между заявками.

Внутренние параметры и характеристики системы: tm1 – время обработки задания на ЭВМ1;

tm2 – время обработки задания на ЭВМ2;

sm1 состояние ЭВМ1 (sm1 = false – ЭВМ1 свободна; sm1 = true – ЭВМ1 занята);

sm2 состояние ЭВМ2 (sm2 = false – ЭВМ2 свободна; sm2 = true – ЭВМ2 занята);

ns – наличие заявки на входе системы;

kr1 – количество заявок, выполненных на ЭВМ1; kr2 – количество заявок, выполненных на ЭВМ2; kot – количество отказов в обслуживании заявок.

И

К1

Обслуженные ЭВМ1 запросы

К2

Обслуженные ЭВМ2 запросы

Поток необслуженных заявок

2

Рис. 1. Q – схема вычислительной системы: каналы К1 и К2 ЭВМ1 и ЭВМ2

соответственно; И – источник запросов

3. На первом этапе имитационного моделирования создается детерминированная модель заданной вычислительной системы, стохастические потоки заменяются их математическими ожиданиями:

время между приходом пользователей – 3 мин,

время обработки задания на ЭВМ1 – 6 мин,

время обработки задания на ЭВМ2 – 7 мин.

4.За единицу модельного времени (емв) принимается минимальный интервал реального времени, в течение которого система не меняет своего состояния. В данной задаче за емв целесообразно принять 1 мин. Таким образом, время работы системы – 8 часов или 480 единиц модельного времени.

5.Рассчитывается теоретически значение выходной характеристики – процент выполненных на ЭВМ1 заданий.

Работу данной вычислительной системы отразим временными диаграммами (рис. 2).

Рис. 2. Временные диаграммы работы системы

3

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

этому времени ЭВМ1 освобождается, она вновь включается в работу, обрабатывая заявку третьего пользователя. В момент прихода четвертого пользователя обе ЭВМ заняты, и

пользователю отказывают в обслуживании. С приходом пятого пользователя весь цикл повторяется. Таким образом, за каждый цикл (12 емв) в систему поступят заявки от четырех пользователей. Из них две заявки обрабатываются на ЭВМ1, одна – на ЭВМ2 и одна заявка остается необслуженной. Система работает 480 емв, что составляет 40 циклов. Следовательно,

из 160 поступивших за это время заявок на ЭВМ1 будет обработано 80 заявок ( что составляет

50%), на ЭВМ2 – 40 заявок (25%), необработанными останутся 40 заявок (25%).

6. Разрабатывается блок-схема алгоритма (рис. 3).

4

начало

Определение начальных условий

Ввод характеристик системы

B

t<=480

нет

 

да

 

tektps=tektps+1

 

proz

kr1*100

kr1

kr2

kot

 

tektps>tps

нет

 

 

 

да

 

печать

 

 

ns=true, tektps=0

 

результатов

 

 

SM1=true

нет

конец

 

 

да

 

 

tektm1=tektm1+1

 

 

tektm1>tm1

нет

 

 

 

да

 

 

SM1=false, tektm1=0

 

 

kr1=kr1+1

 

 

A

 

 

Рис. 3. Блок-схема моделирующего алгоритма

5

А

нет

SM2=true

да

tektm2=tektm2+1

tektm2>tm2 нет

да

SM2=false, tektm2=0 kr2=kr2+1

 

ns=true

нет

 

 

 

 

 

 

 

да

 

 

 

да

SM1=false

нет

 

 

 

 

 

 

SM1=true

 

да

SM2=false

нет

 

 

 

 

 

tektm1=tektm1+1

 

 

 

 

 

SM2=true

 

 

kot=kot+1

 

tektm2=tektm2+1

 

 

ns=false

t=t+1

B

Рис. 3. Окончание

6

7. Разрабатывается моделирующая программа на одном из языков программирования. В

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

 

 

Моделирующая программа на языке Паскаль

program

model(input,output);

uses crt;

 

var

 

 

tps,

 

{время между приходом заявок}

tm1,

 

{время обработки задания на ЭВМ1}

tm2:

real;

{время обработки задания на ЭВМ2}

ns,

 

{наличие заявки на входе системы}

sm1,

 

{состояние ЭВМ1

 

 

( ЭВМ1 = false, если Эвм1 свободна;

 

 

ЭВМ1 = true, если ЭВМ1 занята)}

sm2: boolean; {состояние ЭВМ2}

kr1,

 

{количество заявок, выполненных на ЭВМ1}

kr2,

 

{количество заявок, выполненных на ЭВМ2}

kot: integer; {количество отказов в обслуживании пользователей}

t,

{текущее время работы системы}

tektm1,

{текущее

время

обработки

задания на ЭВМ1}

tektm2,

{текущее

время

обработки

задания на ЭВМ2}

tektps: integer; {текущее

время между поступлениями заявок}

proz: real;

{процент

заявок, выполненных на ЭВМ1}

begin

 

 

{установка начальных условий}

ns:= true;

sm1:= false;

sm2:= false;

kr1:=0;

kr2:=0;

kot:=0;

tektm1:=0;

tektm2:=0;

tektps:=0;

t:=0;

 

 

{ввод параметров системы} clrscr;

writeln('введите исходные данные(в ед. модельного времени):'); write('время между приходом пользователей =>');

readln(tps);

write('время обработки задания на ЭВМ1 =>'); readln(tm1);

write('время обработки задания на ЭВМ2 =>'); readln(tm2);

while t <= 480 do {условие продолжения работы системы} begin

tektps:=tektps+1; {изменение текущего времени между заявками} if tektps>=tps then {поступила очередная заявка}

begin ns:=true; tektps:=0;

end;

if sm1 then {ЭВМ1 обрабатывает заявку} begin

{изменение текущего времени работы ЭВМ1} tektm1:=tektm1+1;

if tektm1>tm1 then {заявка выполнена} begin

sm1:=false; {освобождаем ЭВМ1}

7

 

 

 

tektm1:=0;

 

 

 

kr1:=kr1+1;

 

 

end;

 

 

end;

 

if

sm2

then

{ЭВМ2 обрабатывает заявку}

 

 

begin

 

 

 

{изменение текущего времени работы ЭВМ2}

 

 

tektm2:=tektm2+1;

 

 

if tektm2>tm2 then {заявка выполнена}

 

 

 

begin

 

 

 

sm2:=false; {освобождаем ЭВМ2}

 

 

 

tektm2:=0;

 

 

 

kr2:=kr2+1;

 

 

 

 

end;

 

 

 

 

end;

 

if

ns

then

 

{на входе имеется заявка}

 

begin

 

 

 

 

 

if not

sm1

 

 

 

 

then

{ЭВМ1 свободна}

 

 

begin

 

 

 

 

sm1:= true;

{занимаем ЭВМ1}

 

 

tektm1:=tektm1+1;

 

 

end

 

 

 

 

 

else

{ЭВМ1 занята}

 

 

if not sm2

 

 

 

then

{ЭВМ2 свободна}

 

 

 

begin

 

 

 

 

 

sm2:= true; {занимаем ЭВМ2}

 

 

 

 

tektm2:=tektm2+1;

 

 

 

end

 

 

 

else

{обе машины заняты}

 

 

 

kot:=kot+1;

{отказ в обслуживании}

 

 

ns:=false;

 

 

end;

t:=t+1; {переход к следующему моменту модельного времени}

end;

{система отработала заданное время} proz:=kr1*100/(kr1+kr2+kot);

{вывод результатов на экран} writeln; writeln;

writeln('за 8 часов работы системы на ЭВМ1 выполнено', proz:7:1,'% поступивших заявок:');

writeln('на ЭВМ2 выполнено',(kr2*100/(kr1+kr2+kot)):7:1, '% поступивших заявок:');

writeln('отказано в обслуживании',(kot*100/(kr1+kr2+kot)):7:1,'%'); writeln;writeln('нажмите на <ВВОД>');

readln; end.

Моделирующая программа на языке Си

#include<stdio.h>

#include<conio.h>

float

 

 

 

 

tps,

/*время

между приходом заявок*/

tm1,

/*время

обработки

задания

на ЭВМ1*/

tm2;

/*время

обработки

задания

на ЭВМ2*/

int ns,

/*наличие заявки на входе

системы*/

sm1,

/*состояние ЭВМ1

 

 

 

( ЭВМ1

= 0, если

ЭВМ1 свободна;

8