Форум программистов, компьютерный форум, киберфорум
GPSS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 20

Обслуживание компьютерного зала (разбор модели)

24.11.2015, 21:22. Показов 3611. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Условие:

Администратор обслуживает компьютерный зал, в котором находится 5 компьютеров. На работающем компьютере в среднем раз в час происходит сбой (время между сбоями распределено по экспоненциальному закону). После сбоя администратор устраняетпоследствия сбоя в среднем за 10 минут (время распределено по экспоненциальному закону). Если сбойпроизошел, когда администратор устраняетпоследствия сбояна другом компьютере,то компьютер становится в очередьна обслуживание.Определить: вероятностьтого,что все компьютеры работоспособны,вероятностьтого,что все компьютеры не работоспособны, среднеечисло неработоспособных компьютеров, загрузку администратора. Провестиимитационное моделирование системы работы системы в течение10 часов,100 часов,1000 часов.


МОЙ КОД
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
                ; Замкнутая СМО с m источниками заявок
generate 0,0,1;             Из блока выходит 1 транзакт (первый источник)
assigni 1,Met1;             Номер блока с меткой Met1 помещается в первый целочисленный параметр транзакта Met1
advance (exponential(1, 1/60));         Задержка - моделирование работы без сбоев
transfer Obsl;          Транзакт отправляем на метку Obsl, где моделируется сбой
generate 0,0,1;             Из блока выходит 1 транзакт (второй источник)
assigni 1,Met2;             Номер блока с меткой Met2 помещается в параметр транзакта Met2
advance (exponential(2, 1/60));         Задержка - моделирование работы без сбоев
transfer Obsl;          Транзакт отправляем на метку Obsl, где моделируется сбой
generate 0,0,1;             Из блока выходит 1 транзакт (третий источник)
assigni 1,Met3;             Номер блока с меткой Met3 помещается в параметр транзакта Met3
advance (exponential(3, 1/60));         Задержка - моделирование работы без сбоев
Obsl queue 1;           Занимаем очередь с номером 1
test e q1,2,Prop3;          Если в очереди 2 заявки, то идем далее, иначе - на метку Prop3
savevalue t2,ac1;           Запоминаем время, когда в системе стало максимальное число заявок
Prop3 seize 1;          Занимаем устройство с номером 1
test e q1,2,Prop4;          Если в очереди 2 заявки, то идем далее, иначе - на метку Prop4
savevalue T_M,(x$T_M+ac1-x$t2);         Считаем общее время, когда в системе было максимальное число заявок
Prop4 depart 1;             Освобождаем очередь с номером 1
advance (exponential(4, 0.05));         Задержка - моделирование устранения сбоя
release 1;          Освобождаем устройство с номером 1
Prop1 transfer pi1;         Транзакт возвращается на блок, номер которого в первом целочисленном параметре
generate 0,(60*10);         Выходит управляющий транзакт через 20 тыс. часов
savevalue p_zan,(x$T_M/ac1);        Считаем вероятность, что система занята
terminate 1;            Удаляем управляющий транзакт, счетчик завершения уменьшается на 1
start 1;                Начальное значение счетчика завершения
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.11.2015, 21:22
Ответы с готовыми решениями:

Разработка модели вычислительного зала
В вычислительный зал заходят студенты, желающие произвести расчеты на ЭВМ. Их поток является...

Смоделировать работу машинного зала
ребят, доброго времении суток) надо написть программу на это задачку: В...

Моделирование машинного зала и настройки
Здравствуйте!Я новичок в GPSS.Не могу решить такие задачки: 1. В машинном зале расположены две...

9
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
25.11.2015, 07:31
У вас весь код прокомментирован. Заявки формируются в блоках generate а после идут ниже построчно по программе где получают обслуживание.

Подробно примеры описаны в книге Кудрявцев Имитационное моделирование на GPSS.
0
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 20
25.11.2015, 09:26  [ТС]
Но программа выдаёт кучу ошибок, не могу понять - почему они возникли, ведь вроде всё верно
0
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
25.11.2015, 09:38
С ошибок и надо было начинать, а то вы представили что у вас всё рабочее и не можете разобраться в задаче

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
11/25/15 11:35:39  Model Translation Begun.
11/25/15 11:35:39  Line 5, Col 8. Invalid number. Expecting a GPSS Verb. 
11/25/15 11:35:39  assigni 1,Met1;             Номер блока с меткой Met1 помещается в первый целочисленный параметр транзакта Met1
11/25/15 11:35:39  Line 7, Col 27. Syntax error. Incorrect argument count.
11/25/15 11:35:39  advance (exponential(1, 1/60));         Задержка - моделирование работы без сбоев
11/25/15 11:35:39  Line 13, Col 8. Invalid number. Expecting a GPSS Verb. 
11/25/15 11:35:39  assigni 1,Met2;             Номер блока с меткой Met2 помещается в параметр транзакта Met2
11/25/15 11:35:39  Line 15, Col 27. Syntax error. Incorrect argument count.
11/25/15 11:35:39  advance (exponential(2, 1/60));         Задержка - моделирование работы без сбоев
11/25/15 11:35:39  Line 21, Col 8. Invalid number. Expecting a GPSS Verb. 
11/25/15 11:35:39  assigni 1,Met3;             Номер блока с меткой Met3 помещается в параметр транзакта Met3
11/25/15 11:35:39  Line 23, Col 27. Syntax error. Incorrect argument count.
11/25/15 11:35:39  advance (exponential(3, 1/60));         Задержка - моделирование работы без сбоев
11/25/15 11:35:39  Line 39, Col 27. Syntax error. Incorrect argument count.
11/25/15 11:35:39  advance (exponential(4, 0.05));         Задержка - моделирование устранения сбоя
11/25/15 11:35:39  Line 45, Col 13. Expecting right parenthesis.
11/25/15 11:35:39  generate 0,(60*10);         Выходит управляющий транзакт через 20 тыс. часов
11/25/15 11:35:39  **** Model Translation Aborted ****
синтаксис команды
assigni

у функции exponential 3 входных параметра без пробелов
advance (exponential(1, 1/60));

Умножение с помощью символа #
generate 0,(60*10)
1
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 20
27.11.2015, 11:43  [ТС]
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
                ; Замкнутая СМО с m источниками заявок
generate 0,0,1;             Из блока выходит 1 транзакт (первый источник)
assign 1,Met1;          Номер блока с меткой Met1 помещается в первый целочисленный параметр транзакта Met1
advance (exponential(1,0,1/60));        Задержка - моделирование работы без сбоев
transfer Obsl;          Транзакт отправляем на метку Obsl, где моделируется сбой
generate 0,0,1;             Из блока выходит 1 транзакт (второй источник)
assign 1,Met2;          Номер блока с меткой Met2 помещается в параметр транзакта Met2
advance (exponential(2,0,1/60));        Задержка - моделирование работы без сбоев
transfer Obsl;          Транзакт отправляем на метку Obsl, где моделируется сбой
generate 0,0,1;             Из блока выходит 1 транзакт (третий источник)
assign 1,Met3;          Номер блока с меткой Met3 помещается в параметр транзакта Met3
advance (exponential(3,0,1/60));        Задержка - моделирование работы без сбоев
Obsl queue 1;           Занимаем очередь с номером 1
test e q1,2,Prop3;          Если в очереди 2 заявки, то идем далее, иначе - на метку Prop3
savevalue t2,ac1;           Запоминаем время, когда в системе стало максимальное число заявок
Prop3 seize 1;          Занимаем устройство с номером 1
test e q1,2,Prop4;          Если в очереди 2 заявки, то идем далее, иначе - на метку Prop4
savevalue T_M,(x$T_M+ac1-x$t2);         Считаем общее время, когда в системе было максимальное число заявок
Prop4 depart 1;             Освобождаем очередь с номером 1
advance (exponential(4,0,0.05));        Задержка - моделирование устранения сбоя
release 1;          Освобождаем устройство с номером 1
Prop1 transfer pi1;         Транзакт возвращается на блок, номер которого в первом целочисленном параметре
generate 0,(60#10);         Выходит управляющий транзакт через 20 тыс. часов
savevalue p_zan,(x$T_M/ac1);        Считаем вероятность, что система занята
terminate 1;            Удаляем управляющий транзакт, счетчик завершения уменьшается на 1
start 1;                Начальное значение счетчика завершения
вот впринципе исправила всё, но программа выдаёт - одна ошибка:
11/27/15 11:43:49 Model Translation Begun.
11/27/15 11:43:49 Ready.
11/27/15 11:43:49 Simulation in Progress.
11/27/15 11:43:49 Error Stop.
11/27/15 11:43:49 Halt. XN: 2. Block 6 Next.
11/27/15 11:43:49 Clock:1.000000. Next: ASSIGN. Line 13.
11/27/15 11:43:49 assign 1,Met2; Номер блока с меткой Met2 помещается в параметр транзакта Met2
11/27/15 11:43:49 Operand B. Invalid expression.
11/27/15 11:43:49 Datum has not been initialized.

не понятно что с Met2 не так? (ведь остальные Met - в порядке)
0
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
27.11.2015, 12:12
11/27/15 11:43:49 Clock:1.000000. Next: ASSIGN. Line 13.
11/27/15 11:43:49 assign 1,Met2; Номер блока с меткой Met2 помещается в параметр транзакта Met2
11/27/15 11:43:49 Operand B. Invalid expression.
11/27/15 11:43:49 Datum has not been initialized.
Говорит что в момент времени = 1.0 заявка пытается войти в блок assign 1,Met2 и Мет2 не нравится

По сути ругается на Мет2, а на другие нет - только потомучто это первая заявка и она попала в этот первый блок, на другие GPSS тоже будет ругаться. GPSS неизвестно что такое Met1 Met2 Met3 - думаю вам тоже. Это скорее всего названия меток блоков в программе, которых у вас нет.


P.S. проверить, не нужно ли запятую transfer Obsl;
0
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 20
28.11.2015, 23:35  [ТС]
Наконец-то нашла правильный код: (один знакомый именно в таком виде сдал это задание, но у меня почему-то выдаёт ошибки, что не так? подскажите)

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
; Замкнутая СМО с m источниками заявок
 
generate 0,0,1;             Из блока выходит 1 транзакт (первый источник)
 
assign 1,Met1;          Номер блока с меткой Met1 помещается в первый целочисленный параметр транзакта
 
Met1 advance (exponential(1,0,1/60));       Задержка - моделирование работы без сбоев
 
transfer Obsl;          Транзакт отправляем на метку Obsl, где моделируется сбой
 
generate 0,0,1;             Из блока выходит 1 транзакт (второй источник)
 
assign 1,Met2;          Номер блока с меткой Met2 помещается в параметр транзакта
 
Met2 advance (exponential(2,0,1/60));       Задержка - моделирование работы без сбоев
 
transfer Obsl;          Транзакт отправляем на метку Obsl, где моделируется сбой
 
generate 0,0,1;             Из блока выходит 1 транзакт (третий источник)
 
assign 1,Met3;          Номер блока с меткой Met3 помещается в параметр транзакта
 
Met3 advance (exponential(3,0,1/60));       Задержка - моделирование работы без сбоев
 
Obsl queue 1;           Занимаем очередь с номером 1
 
test e q1,2,Prop3;          Если в очереди 2 заявки, то идем далее, иначе - на метку Prop3
 
savevalue t2,ac1;           Запоминаем время, когда в системе стало максимальное число заявок
 
Prop3 seize 1;          Занимаем устройство с номером 1
 
test e q1,2,Prop4;          Если в очереди 2 заявки, то идем далее, иначе - на метку Prop4
 
savevalue T_M,(x$T_M+ac1-x$t2);         Считаем общее время, когда в системе было максимальное число заявок
 
Prop4 depart 1;             Освобождаем очередь с номером 1
 
advance (exponential(4,0,0.05));        Задержка - моделирование устранения сбоя
 
release 1;          Освобождаем устройство с номером 1
 
Prop1 transfer pi1;         Транзакт возвращается на блок, номер которого в первом целочисленном параметре
 
generate 0,(60#10);         Выходит управляющий транзакт через 20 тыс. часов
 
savevalue p_zan,(x$T_M/ac1);        Считаем вероятность, что система занята
 
terminate 1;            Удаляем управляющий транзакт, счетчик завершения уменьшается на 1
 
start 1;                Начальное значение счетчика завершения
нажав Creat Simulation

вот что выдаёт:

11/28/15 23:32:12 Model Translation Begun.
11/28/15 23:32:12 Ready.
11/28/15 23:32:12 Simulation in Progress.

а при нажатии на крестик вот что появляется:

11/28/15 23:32:12 Model Translation Begun.
11/28/15 23:32:12 Ready.
11/28/15 23:32:12 Simulation in Progress.
11/28/15 23:33:07 Halt. XN: 122035. Block 1 Next.
11/28/15 23:33:07 Clock:1.000000. Next: GENERATE. Line 3.
11/28/15 23:33:07 generate 0,0,1; Из блока выходит 1 транзакт (первый источник)
0
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
28.11.2015, 23:42
То что представлено это не ошибка а просто лог событий с моделью, то что завершено моделирование.

Что за крестик вы нажимаете и зачем.

Чем этот код отличается от вышепредставленного?
Ошибки все теже остались, нормально модель работать не будет.
0
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 20
28.11.2015, 23:54  [ТС]
Мне нужно чтобы этот код выдал результаты моделирования, результат имитационных экспериментов. (перепробовала массу вариантов, не выводится)
0
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
29.11.2015, 08:12
C таким подходом модель результаты выдавать не будет.
1. исправляйте банальные ошибки transfer их 3и в коде минимум.
2. при моделировании перейдите в меню window \ simulation window \ block window - и проанализируйте причину того, почему заявки не попадают на выход и не завершают моделирование. Они просто накапливаются и не обслуживаются.

Кудрявцев Имитационное моделирование на GPSS в помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.11.2015, 08:12
Помогаю со студенческими работами здесь

Моделирование работы машинного зала
Моделирование работы машинного зала Пользователи для проведения расчетов на ЭВМ заходят в...

Имитационная модель машинного зала
Добрый день! Проверьте пожалуйста код, представленный ниже. Что там лишнее, или чего-то не хватает?...

Имитационное моделирование работы читального зала библиотеки
Помогите, пожалуйста решить задачу!) В библиотеке читатель вначале встаёт в очередь, чтобы сделать...

Моделирование работы машинного зала ЭВМ
В машинный зал в соответствии с пуассоновским распределением вероятностей с параметром λ=0.1 мин...

Смоделировать работу машинного зала
подскажите как реализовать вот эту строчку (вероятности отказа в обслуживании вследствие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru