- •Лабораторные работы 5-6
- •Модель управления ресурсами в локальной вычислительной сети.
- •Int Next_top; /* Номер следующего узла */
- •Построение замкнутой модели многопользовательской информационной системы
- •1.3. Модель бизнес-процесса «эффективность предприятия»
- •2. Построение интерфейса пользователя
- •2.1. Построение диалогового окна настройки параметров модели.
- •6.2.Использование функционального окна визуализации работы модели.
- •Void *pointer; // Настраиваемый указатель любой области
- •Int next; // Номер «текущего» узла
- •Void funcwindow(struct fwcb*);
- •Void funcwindow(struct fwcb *s)
- •Int xL; // X левого верхнего угла эллипса
- •InvalidateRect(shwnd,null,1);
Int Next_top; /* Номер следующего узла */
forward
{
modbeg("Лок.ВС / UNIX-V", 1,MOD_TIME,(long)time(NULL),
none,5,none,none,2 );
ag("Вспом. транзакт",9,none,none,0.0,zero,zero,10);
supply(MEMORY,add,MAX_RAM);
/*Максимально возможный объем памяти */
supply(IO_BUFFERS,add,MAX_BUFFERS);
/*Максимальное число буферов */
network(dummy,dummy)
{
top(1):queue("Очередь к CPU",none,2);
place;
top(2):switch(PROCESS_STATUS)
{
case HDD: /* Процесс создан и работает */
if (rundum()>0.8 && HDD_ACCESS)
Next_top=8;
/* Управление возвращается пользователю */
else
Next_top=3; /* Очередная операция I/O */
break;
case BUFF: /* Отвести процессу буферы I/O */
Next_top=7;
break;
case RAM: /* Создать процесс */
Next_top=5;
break;
}
serv("CPU",1,none,unif,0.1,0.1,zero,Next_top);
if (Next_top==8)
{
clcode
HDD_ACCESS=0; /* Доступ к HDD прекращен*/
detach(MEMORY,RAM_AMOUNT);
/* Освободить память */
detach(IO_BUFFERS,BUF_AMOUNT);
/* Освободить буферы */
}
place;
top(3):HDD_ACCESS=1; /*Получение доступа к HDD */
queue("Очередь к HDD", none,4);
place;
top(4):serv("HDD",1,none,beta,0.05,0.1,0.15,1 );
place;
top(5):RAM_AMOUNT=1+rundum()*(MAX_RAM-1);
PROCESS_STATUS=BUFF; /* Запросить буферы I/O */
attach("Выделить RAM",RAM_AMOUNT,prty,6);
place;
top(6):manage("Диспетчер ресурсов",1);
place;
top(7):BUF_AMOUNT=1+rundum()*(MAX_BUFFERS-1);
PROCESS_STATUS=HDD; /* Начать операции I-O */
attach("Выделить буферы I/O",BUF_AMOUNT,prty,6);
place;
top(8):PROCESS_STATUS=RAM; /* Создание процесса */
serv("Терминалы п-лей",USERS,none,
norm,10.0,2.5,zero,1);
place;
/* Схема зарядки */
top(10):creat("Генерация п-лей",none,USERS,copy,8,11);
place;
top(11):term("Выключение Ag 9");
cheg(9,none,none,MOD_TIME,zero,zero,11);
place;
fault(123);
}
modend("Unix5.rep", 1, 13, page );
return 0;
}
Результаты моделирования
*---------------------------------------------------------------------------------------------*
| НАЗВАНИЕ МОДЕЛИ: Лок.ВС / UNIX-V |
| ВРЕМЯ МОДЕЛИРОВАНИЯ: 28800.00 Лист: 1 |
|---------------------------------------------------------------------------------------------|
| | | | |Загруз-| | 2 | | | | |
| No | Наименование | Тип |Точ-| ка, %=| M [t] | C [t] |Счeтчик|Кол.|Оcт.|Состояние узла|
|узла| узла | узла | ка |Путь,км| среднее | вариация| входов|кан.| тр.| в этот момент|
|---------------------------------------------------------------------------------------------|
| | | | | | | | | | | |
| 1 Очередь к CPU queue - - 0.05 2.34 205831 1 0 открыт |
| 2 CPU serv - %= 71.3 0.10 0.33 205831 1 1 открыт |
| 3 Очередь к HDD queue - - 0.01 10.55 128517 1 0 открыт |
| 4 HDD serv - %= 44.6 0.10 0.04 128517 1 1 открыт |
| 5 Выделить RAM attach - %= 73.8 42.33 51.75 25799 1 41 9 S
| 2495 D
| 6 Диспет.ресурсов manage - - 0.00 1.00 51516 1 0 открыт |
| 7 Выделить буферы attach - %= 55.5 0.38 7.37 25758 1 0 1 S
| 0 D
| 8 Терминалы п-лей serv - %= 17.9 10.01 0.06 25806 50 7 открыт |
| 9 Вспом. транзакт ag - - 0.00 1.00 2 1 1 открыт |
| 10 Генерация п-лей creat - - 0.00 1.00 50 1 0 открыт |
| 11 Выключение Ag 9 term - - 0.00 1.00 2 0 1 закрыт |
| | | | | | | | | | | |
*---------------------------------------------------------------------------------------------*
Анализ результатов моделирования
За период моделирования к OS UNIX поступило 25799 запросов на создание процесса ввода-вывода (счетчик входов узла 5). Каждый пользователь послал в среднем по 500 запросов и 7 пользователей на момент окончания моделирования обдумывают очередной запрос. В среднем польлзователи потратили на обдумывание запросов 18 % времени работы с ЛВС.
25 758 процессов было обеспечено ресурсами (счетчик входов узла 7 показывает число процессов, получивших ресурс, так как все транзакты покинули узел). 41 запрос ожидает выделения ресурса RAM. Было совершено 128 516 операций ввода-вывода и одна операция осталась незаконченной. Было произведено 205831 обращений к процессору, и на момент окончания моделирования процессор находился в состоянии работы. Всего процессор находился в состоянии работы 71 % времени работы ЛВС, операции ввода-вывода заняли 42 % времени. Среднее время ожидания доступа к процессору составило 0.05 секунды, среднее время ожидания операции ввода-вывода - 0.01 секунды.
Средняя загруженность ресурса RAM составляет 73 %. На момент окончания моделирования остаток ресурса RAM составляет 9 Мбайт, а стоящие в очереди процессы требуют в общей сложности 2495 Мбайт памяти. Средняя загруженость ресурса буферов I/O составляет 55 %. На момент окончания моделирования свободен один буфер, и потребности в ресурсе нет. Среднее время ожидания выделения RAM составляет 42 секунды, буферов - 0.38 секунды. Различия в результатах связаны с тем, что процесс вначале требует выделения RAM, а затем - буферов ввода-вывода.