Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Моделирование ЭВМ

nbsp; |
|    7  |             9 %      |
|    8  |             9 %      |
|    9  |             9 %      |
|   10  |             9 %      |
|сред.зн|             9 %      |
|.      |                      |
 
Вывод:
   Усредненные значения выходной характеристики подтверждают данные
детерминированной модели т.к. с введением вероятности прихода второго
пользователя равной 0.1 в детерминированную модель теоретическое значение
процента выполненных заданий поступивших от второго пользователя становится
равным 10 % .
 
 
 
                                                    Литература
 
 
1. Разработка САПР. № 9
       В.М. Черненький. Имитационное моделирование.
 
2. Лекции по курсу “Моделирование”.
 
3. Б. Страуструп. Язык программирования С++.
 
4. Шрайбер Г.Д. Моделирование на GPSS.
 
5. Е.И. Козелл. от Си к С++.
 
 
 
Приложение № 1
 
// ЗАДАНИЕ 15. Детерминированная модель системы.
#include
#include
 
const emb=1;    //единица машинного времени
 
main()
{ int tp=100;   //интервал между приходами пользователей
  int tgz1=160; //время подготовки задания 1-ым пользователем
  int tgz2=170; //время подготовки задания 2-ым пользователем
  int tgz3=180; //время подготовки задания 3-им пользователем
  int tm=8;     //время выполнения задания на ЭВМ
  int k=500;    //количество промоделированных на ЭВМ заданий
  int t=0;      //время
 
  char nz=0;    //наличие заявки на входе системы
  char cikl=0;  //цикл прихода заявок
  char pz1=0;   //подготовка задания на сетевой машине 1
  char pz2=0;   //подготовка задания на сетевой машине 1
  char pz3=0;   //подготовка задания на сетевой машине 1
  char znw=0;   //наличие заявки на выполнение задания
  char wz=0;    //выполнение задания на ЭВМ
  char ocher[50];  //очередь
  char n=0;     //индекс свободного элемента в очереди
  int w2=0;     //количество вып. заданий от 2-го пользователя
 
  int ztgz1,ztgz2,ztgz3,ztm,zk; //перем.для запоминания параметров системы
 
  printf("Введите интервал между приходами пользователей ");
scanf("%d",&tp);
  printf("Введите время подготовки задания 1-ым пользователем ");
  scanf("%d",&tgz1); ztgz1=tgz1;
  printf("Введите время подготовки задания 2-ым пользователем ");
  scanf("%d",&tgz2); ztgz2=tgz2;
  printf("Введите время подготовки задания 3-ым пользователем ");
  scanf("%d",&tgz3); ztgz3=tgz3;
  printf("Введите время выполнения задания на ЭВМ "); scanf("%d",&tm);
ztm=tm;
  printf("Введите количество промоделированных на ЭВМ заданий ");
  scanf("%d",&k); zk=k;
 
//----------- моделирующий цикл -----------------------------------
  while (k!=0)
  { t=t+emb;
//появление пользователя
       if (t%tp==0)
         switch (cikl)
         { case 0: nz=1; cikl=1; break;
           case 1: nz=2; cikl=2; break;
           case 2: nz=3; cikl=3; break;
           case 3: nz=1; cikl=0;
         }
 
//начало подготовки задания
       switch (nz)
       { case 1: pz1=1; nz=0; break;
         case 2: pz2=1; nz=0; break;
         case 3: pz3=1; nz=0;
       }
                                     Приложение № 1 (продолжение)
 
//подготовка задания
       if (pz1==1)
         if (tgz1==0) {pz1=0; znw=1; tgz1=ztgz1;} else tgz1=tgz1-emb;
       if (pz2==1)
         if (tgz2==0) {pz2=0; znw=2; tgz2=ztgz2;} else tgz2=tgz2-emb;
       if (pz3==1)
         if (tgz3==0) {pz3=0; znw=3; tgz3=ztgz3;} else tgz3=tgz3-emb;
 
// запрос на выполнение
       if (n!=0 && wz==0) { wz=ocher[n-1]; n--; } //если очередь не пуста а
ЭВМ свобода
                                                    // то выпол. заявку из
очереди
       if (znw!=0)  //если имеется заявка на выполнение
         if  (wz==0) { wz=znw; znw=0; }  //если ЭВМ не занята
         else  //если ЭВМ занята, то ставим заявку в очередь
         { if (n>=50) { printf("nПереполнение очереди!n"); return 0; }
           else { ocher[n]=znw; znw=0; n++; }
         }
//выполнение задания на ЭВМ
       switch (wz)
       { case 1: if (tm==0) {wz=0; k--; tm=ztm; } else tm=tm-emb; break;
         case 2: if (tm==0) {wz=0; k--; w2++; tm=ztm; } else tm=tm-emb;
break;
         case 3: if (tm==0) {wz=0; k--; tm=ztm; } else tm=tm-emb;
       }
  }
  printf("nПроцент вып. заданий, поступ. от 2-го польз.=%d%",100*w2/zk);
}
 
 
 
Приложение № 2
 
 
//Генерирование равномерно распределенных случайных величин
 
#include
 
long x=7533; //псевдослучайное число
 
long Rnd(long x) // процедура формирования очередного псевдослучайного
числа
{ int l=5169;
  long k=65536;
  return (l*x)%k;
}
 
void main()
{ FILE *fout;   //выходной файл случайных величин
  int i;        //параметр цикла
 
  fout=fopen("vi_gpsc1.dat","w");
  for(i=1; i<=1000; i++) fprin
Пред.6789
скачать работу

Моделирование ЭВМ

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ