Программа моделирующая работу вычислительной системы из 2 компов. Интервал времени между двумя последовательными поступлениями заданий в вычислительную систему подчиняется равномерному закону распределения Интервалы поступления заданий (1,15) Интервалы обработки заданий(1, 19) Перед каждым компьютером допустима очередь заданий, длина которой не ограничена. Реализовать имитацию работы вычислительной системы для оценки ее эффективности. Время выполнения задания также равномерно распределено в заданном интервале . Смоделировать обработку 100 заданий. Оценить характеристики изучаемой вычислительной системы: определить среднее время нахождения задания в очереди; вероятность простоя одного компьютера, вероятность простоя всей системы.
| Код | #include <iostream.h> int main(int argc, char* argv[]) { int Tint_postuplenia, Tint_obrabotki, Tprihoda; ///входные данные int Tnachala[2], Tokonchania[2], comp; ///входные данные int Tozhidanie, Tprostoa, Tsum_ozhidanie, Chet; ///выходные данные int c=0; float a,b,TO,TP; //инициализация Tsum_ozhidanie=Chet=Tint_postuplenia=Tint_obrabotki=Tprihoda=Tozhidanie=Tprostoa=0; for (int i = 0; i < 2; i++) Tnachala[i]=Tokonchania[i]=0;
//Моделирование 100 заданий for (int i = 1; i < 101; i++) { Tozhidanie=Tprostoa=0; Tint_postuplenia=random(15)+1; //задание случайных величин для интервала поступления заданий Tint_obrabotki=random(19)+1; //задание случайных величин для интервала обработки заданий Tprihoda=Tprihoda+Tint_postuplenia;
//определяем какой компьютер быстрее освободится comp=(Tokonchania[0]<Tokonchania[1] ? 0:1); if (Tprihoda<Tokonchania[comp]) //задание поступает когда компьютер занят { //если канал занят, то Tozhidanie=Tokonchania[comp]-Tprihoda; //время ожидания в очереди Tokonchania[comp]=Tokonchania[comp]+Tint_obrabotki; } else //задание поступает когда компьютер свободен { Tprostoa=Tprihoda-Tokonchania[comp]; //время простоя системы Tokonchania[comp]=Tprihoda+Tint_obrabotki; Chet=Chet+1; } Tnachala[comp]=Tprihoda+Tozhidanie; //время начала выполнения очереденого задания Tsum_ozhidanie=Tsum_ozhidanie+Tozhidanie; //суммарное время ожидания cout<<"Vrem`a prostoja = "<<Tprostoa <<"\tVrem`a ojidania v ocheredy = "<<Tozhidanie<<endl; cout<<"Vrem`a prostoja = "<<Tprostoa <<"\tVrem`a ojidania v ocheredy = "<<Tozhidanie<<endl; c+=Tokonchania[comp]; TO+=Tozhidanie; TP+=Tprostoa; } if (TO==0) { a=0; } else { a=c/TO; } b=c/TP; TO=TO/100; TP=TP/100; cout<<"Vrem`a prostoja = "<<TP <<"\tVrem`a ojidania v ocheredy na = "<<TO<<endl; cout<<"\Veroyatnost ozhidanie = "<<a<<" \Veroyatnost prostoya = "<<b<<endl; cin.get(); return 0; }
|
Кто нить силен в блок-схемах?? Нужно ее составить. Зарание спасибо!
|