![]() |
|
![]() ![]() ![]() |
|
DarkAlex20 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 14.1.2015 Репутация: нет Всего: нет |
Задание
Вычислительная система (ВС) состоит из сервера, обрабатывающего программы. Программы поступают случайным образом, распределенные по линейному закону: Тzmin = 1/2 сек, Тzmax = 5/6 сек. Время обработки одной программы сервером - случайная величина, распределенная по линейному закону: Тsmin = 1 сек, Тsmax = 5 сек. Если сервер занят, обрабатывает программу, то поступающая следующая программа отправляется в буфер. Число программ в буфере - случайная величина и ограничено (не более 4-х). Если поступила следующая программа, а в буфере содержится уже 4 три программы, то программа покидает ВС не обработанной. Разработать программу, моделирующую работу ВС и найти ее характеристики за время работы 1 час. Характеристики ВС: • Р0 - вероятность того, что ВС не загружена, • Р1 — вероятность того, что сервер обрабатывает одну программу и буфер пуст, • Р2 - вероятность того, что в буфере находится 1 -на программа, • Р3 - вероятность того, что в буфере находится 2-ве программы, • Р4 - вероятность того, что в буфере находится 3-ри программы, Р5 - вероятность того, что в буфере находится 3-ри программы, • Q - относительная пропускная способность ВС - средняя доля программ, обработанных ВС, • S - абсолютная пропускная способность - среднее число программ, обработанных в единицу времени, • Ротк - вероятность отказа, т.е. того, что программа будет не обработанной, • Nпрог - среднее число программ в ВС, • Тпрог - среднее время нахождения программы в ВС, • Nбуф - среднее число программ в буфере, • Тбуф - среднее время нахождения программы в буфере. Есть программный код помогите разобраться с буфером #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include <math> //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { double Ce,Tzmin, Tzmax, Tsmin, Tsmax, Pk, P0, P1, P2, P3, P4, P5, Q, S, Potk, buf, Nprog, Tprog, Nbuf, Tbuf; double L, Tobr, M, Sum, cur, n, Dprog, Rprog, p, N, H1 ; { //Линейный закон if (RadioButton1->Checked) { Tzmin = StrToFloat(Edit2->Text); Tzmax = StrToFloat(Edit3->Text); Tsmin = StrToFloat(Edit4->Text); Tsmax = StrToFloat(Edit5->Text); // Количество программ на выполнение Sum=0; N=0; while (Sum<=3600) { // Интервал новой пргограммы Dprog=((double)rand())/(double)RAND_MAX; Dprog=Dprog*(Tzmax-Tzmin)+Tzmin; cur=Dprog; Sum=Sum+cur; N++; } Pk=N; if (Ce<1) // Занят ли сервер { Rprog=((double)rand())/(double)RAND_MAX; Rprog=Rprog*(Tsmax-Tsmin)+Tsmin; Ce=Rprog; H1++; } // Если занят то заявка попадает в буфер / Расчет // Вывод значений Edit1->Text = FloatToStr( P0 ); Edit8->Text = FloatToStr( P1 ); Edit9->Text = FloatToStr( P2 ); Edit10->Text = FloatToStr( P3 ); Edit11->Text = FloatToStr( P4 ); Edit12->Text = FloatToStr( P5 ); Edit13->Text = FloatToStr( Potk ); Edit14->Text = FloatToStr( Q ); Edit15->Text = FloatToStr( S ); Edit16->Text = FloatToStr( Nprog); Edit17->Text = FloatToStr( Tprog); Edit18->Text = FloatToStr(Tbuf); Edit19->Text = FloatToStr(Nbuf); } //Экспоненциальный закон if (RadioButton2->Checked) { L = StrToFloat(Edit6->Text); Tobr = StrToFloat(Edit7->Text); n = 5; M = 1/Tobr; p = L/M; P0 = (1-p)/(1-pow(p,(n+1))); P1 = p*P0; P2 = pow(p,2)*P0; P3 = pow(p,3)*P0; P4 = pow(p,4)*P0; P5 = pow(p,5)*P0; Potk = P5; Q = 1-Potk; S = L*Q; Nprog =(p*(1-(n+1)*pow(p,n)+n*pow(p,n+1)))/((1-p)*(1-pow(p,n+1))); Tprog = Nprog/(L*(1-P5)); Tbuf = (Tprog-1)/M; Nbuf = L*(1-P5)*Tbuf; // Вывод значений Edit1->Text = FloatToStr( P0 ); Edit8->Text = FloatToStr( P1 ); Edit9->Text = FloatToStr( P2 ); Edit10->Text = FloatToStr( P3 ); Edit11->Text = FloatToStr( P4 ); Edit12->Text = FloatToStr( P5 ); Edit13->Text = FloatToStr( Potk ); Edit14->Text = FloatToStr( Q ); Edit15->Text = FloatToStr( S ); Edit16->Text = FloatToStr( Nprog); Edit17->Text = FloatToStr( Tprog); Edit18->Text = FloatToStr(Tbuf); Edit19->Text = FloatToStr(Nbuf); } } } // закрытие формы void __fastcall TForm1::Button1Click(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- // очистка результатов void __fastcall TForm1::Button3Click(TObject *Sender) { Edit1->Text = FloatToStr(false); Edit8->Text = FloatToStr( false ); Edit9->Text = FloatToStr( false ); Edit10->Text = FloatToStr( false ); Edit11->Text = FloatToStr( false ); Edit12->Text = FloatToStr( false ); Edit13->Text = FloatToStr( false ); Edit14->Text = FloatToStr( false ); Edit15->Text = FloatToStr( false ); Edit16->Text = FloatToStr( false); Edit17->Text = FloatToStr( false); Edit18->Text = FloatToStr(false); Edit19->Text = FloatToStr(false); } //--------------------------------------------------------------------------- Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |