Лабораторная работа № 1 (Валеева Р.Г.) / Лаба1
.docМинистерство общего и профессионального образования Российской Федерации
Уфимский государственный авиационный технический университет
Кафедра АПрИС
Лабораторная работа № 1
по дисциплине “Моделирование систем”.
Построение и реализация моделирующих алгоритмов
Q-схем.
Выполнили: студентки гр. ИВТ – 324
Данилина А.О.
Пашпекина М.
Проверила: проф. каф. ТК
Валеева Р.Г.
Уфа
2008
1. Задание
Решить задачи исследования вероятностно-временных характеристик процесса функционирования ВЦ.
В ВЦ приходят пользователи через интервалы времени 10+-2 мин. Если все три устройства подготовки данных (УПД) заняты, пользователю отказывают в обслуживании. Устройства имеют разную производительность и могут обеспечить обслуживание средней программы пользователя за 20+-5, 40+-10 и 40+-20 мин.
Пользователи стремятся занять свободное УПД с максимальной производительностью. Полученные программы сдаются в приемный накопитель, откуда выбираются для обработки
1)на первую ЭВМ - программы с первого и второго УПД
2)на вторую ЭВМ - программы с третьего УПД.
Времена обработки программ на первой второй ЭВМ равны 15 и 30 мин. соответственно.
Смоделировать процесс обработки 300 заданий. Определить вероятность отказа в обслуживании пользователя.
2. Переменные
Зависимые переменные:
-
Время занятия УПД tz(3)
-
время занятия ЭВМ tp(2)
Вспомогательные переменные:
-
массив состояния УПД nz[3]
-
массив состояния ЭВМ np(2)
-
массив состояния накопителей n(2)
Переменные состояния:
-
число отказов not
-
число обслуженных заявок nend
Независимые переменные:
-
интервал dt
Параметры:
-
массивы задания параметров времени обслуживания на УПД a[3], b[3]
a[i] - это минимальное время работы i-го УПД
b[i] - это промежуток от a[i] до максимального времени работы i-го УПД
Т.е. если производительсноть УПД1 20+-5 минут, то a[1]=15, b[1]=10, а tz[1]=a[1]+random(b[1])
-
массив задания параметров времени обслуживания на ЭВМ to[2]
-
перeменные для задания параметров времени поступления заявок ta, tb
Уравнение модели
-
вероятность отказа в обслуживании pot
pot=not/(not+nend)
3. Листинг программы (M-файл MATLAB)
a=[15 30 20];
b=[10 20 40];
ta=8; tb=4; dt=1;
to(1)=15;
to(2)=30;
nz=zeros(1,3); %состояния УПД
n=zeros(1,2); %обнуление состояний накопителей
np=zeros(1,2); %обнуление состояний ЭВМ; 0 - свободна, 1 - занята
disp(' nend not pot ');
% Цикл моделирования
for i1=1:5
nend=0; %счетчик обслуженных заявок
not=0; %счетчик отказов
t=0;
tz=zeros(1,3); %время занятия УПД
tp=zeros(1,2); %время занятия ЭВМ
while nend<300
for i=1:2
if np(i)==1 %условие занятости ЭВМ
if tp(i)<=0 %проверка истечения времени заявки на ЭВМ
np(i)=0; %ЭВМ свободна
nend=nend+1; %еще 1 заявка выполнена
end
end
end
if1=0; %обнуление флага
for i=1:3
if nz(i)==1 %УПД занят
if tz(i)<=0 %время обслуживания на УПД истекло
if1=1;
nz(i)=0; %УПД свободно
if i==3
n(2)=n(2)+1; %переход заявки в накопитель 2
else n(1)=n(1)+1; %переход заявки в накопитель 1
end
end
end
end
for i=1:2
if n(i)>0 %в накопителе есть заявка
if np(i)==0 %ЭВМ свободна
n(i)=n(i)-1; %извлечение заявки из накопителя
np(i)=1; %Передача заявки в ЭВМ
tp(i)=to(i); %время занятости ЭВМ
end
end
end
if t<=0
if1=0;
for i=1:3
if if1==0
if nz(i)==0 %УПД свободен
nz(i)=1; %поступление заявки в УПД
tz(i)=a(i)+b(i)*rand(1); %время подготовки данных
if1=1; %Флаг
end
end
end
if if1==0
not=not+1; %плюс один отказ
end
t=ta+tb*rand(1); %время следующего поступления заявки в систему
end
%переход к следующему моменту
t=t-dt;
for i=1:3
if i<3
tp(i)=tp(i)-dt;
end
tz(i)=tz(i)-dt;
end
end
pot=not/(nend+not); %вероятность отказа
disp([nend not pot]); %вывод на экран
end
4. Результат моделирования:
При большем количестве экспериментов (nend=3000):
5. Вывод
Реализованный алгоритм показал статистическую вероятность отказа системы при заданных параметрах. Увеличение количества экспериментов показывает большую статистическую устойчивость результатов моделирования.