
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Страницы: (54) « Первая ... 44 45 [46] 47 48 ... 53 54 ( Перейти к последнему сообщению ) |
Сообщ.
#676
,
|
|
|
Приветствую. Есть задание на курсовой, которое здесь уже упоминалось:
ЭВМ обслуживает три терминала по круговому циклическому алгоритму, предоставляя каждому терминалу 30 с. Если в течение этого времени задание обработалось, то обслуживание завершается, если нет, то остаток задачи становится в специальную очередь, которая использует свободные циклы терминалов, т.е. задача обслуживается, если на каком либо терминале нет заявок. Заявки на терминал поступают через 30+-5 секунд и имеют длину 300+-50 символов. Скорость обработки задании ЭВМ 10символов / секунда. Смоделировать 5 часов работы ЭВМ. Определить загрузку ЭВМ, параметры очереди неоконченных заданий. Определить величину цикла терминалов, при которой все заявки обработаются без специальной очереди. Вот что удалось написать: ![]() ![]() generate 30,5 ;terminal 1 link 1,fifo generate 30,5 ;terminal 2 link 2,fifo generate 30,5 ;terminal 3 link 3,fifo met1 queue och1 ;ставим заявку в очередь seize EOM ;занимаем устройство ЕОМ depart och1 ;выводи заявку из очереди assign 1,(25+10#rn1/1000) ;задаем время обработки как первый параметр test le p1,30,met2 ;проверяем время обработки, если >30 идем в met2, если <=30 входим в блок test advance p1 ;задержка транзакта на время р1 release EOM ;освобождение устройства ЕОМ terminate 1 ;удаление транзакта met2 advance 30 ;задержка транзакта на 30с assign 1-,30 ;вычитание из р1 30с release EOM ;освобождение устройства ЕОМ link och,fifo ;помещаем транзакт в список пользователя och generate ,,,1 assign 1,0 met assign 1,((p1@3)+1) test g ch*1,0,met4 ;проверка длины списка пользователя, если >0 входим в блок test, если <=0 переходим на met4 unlink p1,met1,1 ;вывод транзакта из списка пользователя transfer ,met5 met4 test g CH$och,0,met5 ;проверка длины списка och, если >0 входим в блок test, если <=0 переходим на met5 unlink och,met1,1 met5 advance 1 transfer ,met GENERATE 18000 ;время моделирования 5 часов TERMINATE 1 START 1 В данном варианте не задается время моделирования, приходится указывать START больше 1, куда-то пропадают транзакты при обработке. Помогите пожалуйста исправить ошибки. |
Сообщ.
#677
,
|
|
|
Помогите
У меня задача На комплектовочный конвейер сборочного цеха каждые 4-6 мин поступают 5 изделий первого типа и каждые 13-27 мин поступают 20 изделий второго типа. Конвейер состоит из секций, имеющих по 10 изделий каждого типа. Комплектация начинается только при наличии деталей обоих типов в требуемом количестве и длится 10 мин. При нехватке деталей секция конвейера остается пустой. Смоделировать работу конвейера сборочного цеха в течение 8 ч. Определить вероятность пропуска секции, средние и максимальные очереди по каждому типу изделия. определить экономическую целесообразность перехода на секции по 20 изделий с временем комплектации 20 мин. Я сделал вот так NN1 STORAGE 10 NN2 STORAGE 10 MET1 GENERATE 5,1 SPLIT 4 QUEUE QUE1 ENTER NN1 DEPART QUE1 TRANSFER ,MET3 LEAVE NN1,10 TERMINATE 9 MET2 GENERATE 20.7 SPLIT 19 QUEUE QUE2 ENTER NN2 DEPART QUE2 TRANSFER ,MET3 LEAVE NN2,10 TERMINATE 9 MET3 SEIZE KAN ADVANCE 10 RELEASE KAN TERMINATE GENERATE 480 TERMINATE 1 START 1 правильный ли текст. У меня в результате выдает LEAVE 0 0 0 0 |
Сообщ.
#678
,
|
|
|
Привет всем! При написании курсовой по GPSS столкнулась с проблемой, не могу написать корректно работающую программу.
Задача: На обрабатывающий участок цеха поступают детали в среднем через 50 мин. Первичная обработка деталей производится на одном из двух станков. Первый станок обрабатывает деталь в среднем 40 мин. и имеет до 4% брака, второй соответственно 60 мин. и 8% брака. Все бракованные детали возвращаются на повторную обработку на второй станок. Детали, попавшие в разряд бракованных дважды, считаются отходами. Вторичную обработку проводят также два станка в среднем 100 мин. каждый. Причем первый станок обрабатывает имеющиеся в накопителе после первичной обработки детали, а второй станок подключается при образовании в накопителе задела больше трех деталей. Все интервалы времени распределены по экспоненциальному закону. Смоделировать обработку на участке 500 деталей. Определить загрузку второго станка на вторичной обработке и вероятность появления отходов. Определить возможность снижения задела в накопителе и повышения загрузки второго станка на вторичной обработке. Вот что у меня получилось написать: EXP FUNCTION RN1,C24 0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915 .7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3 .92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9 .99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8 NAK3 STORAGE 1000 GENERATE 50,FN$EXP ASSIGN 1,0 TRANSFER .5,MET11,MET12 MET11 QUEUE NAK1 SEIZE KAN1 DEPART NAK1 ADVANCE 40,FN$EXP RELEASE KAN1 TRANSFER .04,MET2,MET3 MET12 QUEUE NAK2 SEIZE KAN2 DEPART NAK2 ADVANCE 60,FN$EXP RELEASE KAN2 TRANSFER .08,MET2,MET3 MET2 ASSIGN 1,0 PRIORITY 0 ENTER NAK3 TEST LE Q$NAK3,3,MET5 TRANSFER ,MET4 MET5 TRANSFER BOTH MET4,MET6 MET3 TEST NE P$1,2,OTXOD ASSIGN 1+,1 PRIORITY 2 TRANSFER ,MET12 OTXOD TERMINATE MET4 SEIZE KAN3 LEAVE NAK3 ADVANCE 100,FN$EXP RELEASE KAN3 TRANSFER ,OUT MET6 SEIZE KAN4 LEAVE NAK3 ADVANCE 100,FN$EXP RELEASE KAN4 TRANSFER ,OUT OUT TERMINATE 1 START 500 Пожалуйста помогите доработать программу. |
Сообщ.
#679
,
|
|
|
Здравствуйте..
Задали курсовой проект по GPSS.. "В системе передачи данных осуществляется обмен пакетами данных между пунктами A и B по дуплексному каналу связи. Пакеты поступают в пункты системы от абонентов с интервалами времени между ними 10 ± 3 мс. Передача пакета занимает 10 мс. В пунктах имеются буферные регистры, которые могут хранить два пакета (включая передаваемый). В случае прихода пакета в момент занятости регистров пунктами системы предоставляется выход на спутниковую полудуплексную линию связи, которая осуществляет передачу пакетов данных за 10 ± 5 мс. При занятости спутниковой линии пакет получает отказ. Смоделировать обмен информацией в системе передачи данных в течение 1 минуты. Определить частоту вызовов спутниковой линии и ее загрузку. В случае возможности отказов определить необходимый для безотказной работы системы объем буферных регистров." Полазив по интернету, нашел два варианта исполнения: 1) ![]() ![]() INITIAL X$LOST,0 SAT_FREQ TABLE C1,10000,10000,6 BUF_A STORAGE 2 BUF_B STORAGE 2 GENERATE 10,3 GATE SNF BUF_A,SAT ENTER BUF_A ADVANCE 10 LEAVE BUF_A TRANSFER ,KILL GENERATE 10,3 GATE SNF BUF_B,SAT ENTER BUF_B ADVANCE 10 LEAVE BUF_B TRANSFER ,KILL SAT TABULATE SAT_FREQ,1 GATE NU SAT_LINE,OUT SEIZE SAT_LINE ADVANCE 10,5 RELEASE SAT_LINE TRANSFER ,KILL OUT SAVEVALUE LOST+,1 KILL TERMINATE GENERATE 1,,60000 TERMINATE 1 2) ![]() ![]() BUFA STORAGE 2 BUFB STORAGE 2 SAVEVALUE PAKAB,0 SAVEVALUE PAKBA,0 SAVEVALUE CALLSAT,0 SAVEVALUE PAKSAT,0 SAVEVALUE OTAKZSAT,0 GENERATE 10,3 GATE SNF BUFA,SAT ENTER BUFA SEIZE AB LEAVE BUFA ADVANCE 10 SAVEVALUE PAKAB+,1 RELEASE AB OUT TERMINATE OTKAZ SAVEVALUE OTKAZSAT+,1 TRANSFER ,OUT GENERATE 10,3 GATE SNF BUFB,SAT ENTER BUFB SEIZE BA LEAVE BUFB ADVANCE 10 SAVEVALUE PAKBA+,1 RELEASE BA TRANSFER ,OUT SAT SAVEVALUE CALLSAT+,1 GATE NU LINES,OTKAZ SEIZE LINES ADVANCE 10,5 SAVEVALUE PAKSAT+,1 RELEASE LINES TRANSFER ,OUT GENERATE 60000 TERMINATE 1 START 1 Первый как я считаю, какойто странный и работает некорректно.. Второй уже получше.. и вроде корректен.. Может быть кому-нибудь попадался такой вариант задания..?? Если у кого есть какие наброски поделитель пожалуйста.. или может у кого-нибудь имеется q-схема с более корректным вариантом, чем эти..?? |
Сообщ.
#680
,
|
|
|
Здравствуйте!! Очень нужно мнение специалиста. Я смоделировал задачу но не совсем уверен что правильно. Помогите пожалуйста!!!!
Вот постановка задачи: На маршруте работают два микроавтобуса (А и Б), каждый из которых имеет 12 мест. Микроавтобус А пользуется большей популярностью, нежели микроавтобус Б, поскольку водитель микроавтобуса А ездит аккуратнее и быстрее. Потому пассажир, подойдя к остановке, садится в микроавтобус Б только в том случае, если микроавтобуса А нет. Микроавтобус отправляется на маршрут только в том случае, если все места в нём заняты. Пассажиры приходят к остановке через 1 ± 0,2 минут и, если нет микроавтобусов, становятся в очередь. Если очередь больше 35 человек, потенциальный пассажир уходит из очереди. Предполагается, что все пассажиры едут до конца маршрута. На прохождение маршрута микроавтобус А тратит 25 ± 6 минут, микроавтобус Б – 30 ± 10 минут. После того, как пассажиры освободят микроавтобус (время освобождения – 4 ± 1 минут), он едет в обратном направлении. Плата за проезд составляет 1 единиц стоимости. Автопредприятие столько же теряет (недополучает), если пассажир, придя на остановку, не ждёт, а уходит (учесть это при определении затрат). Определить выручку автопредприятия за день, если микроавтобусы работают 10 часов в сутки. А от и модель: Please EQU 12 initial X$Pass,0 initial X$Cherga,0 initial X$Vtratu,0 initial X$CASH,0 initial X$Kilk_A,0 initial X$Kilk_B,0 Bus_A STORAGE 25 Bus_B STORAGE 25 ;VAR FVARIABLE (X$Pass#2)-(X$Vtratu#2) VAR FVARIABLE ((N$mit_10 + N$mit_11)) - (N$mit_12) GENERATE 1,0.2 GATE SF Bus_A,mit_1 GATE SF Bus_B,mit_2 savevalue Cherga+,1 TEST G X$Cherga,30,mit_9 savevalue Cherga-,1 transfer ,mit_12 mit_12 advance 0 savevalue Vtratu+,1 TERMINATE mit_9 assign s4et4ik,2000 mit_3 GATE SF Bus_A,mit_1 GATE SF Bus_B,mit_2 ADVANCE 0.1 LOOP s4et4ik,mit_3 mit_1 TEST G X$Cherga,0,mit_4 savevalue Cherga-,1 mit_4 ENTER Bus_A savevalue Kilk_A,0 GATE SF Bus_A ADVANCE 25,6 ADVANCE 4,1 transfer ,mit_10 mit_10 advance 0 savevalue Pass+,1 ADVANCE 25,6 LEAVE Bus_A TERMINATE mit_2 TEST G X$Cherga,0,mit_5 savevalue Cherga-,1 mit_5 ENTER Bus_B savevalue Kilk_B,0 GATE SF Bus_B ADVANCE 30,10 ADVANCE 4,1 transfer ,mit_11 mit_11 advance 0 savevalue Pass+,1 ADVANCE 30,10 LEAVE Bus_B TERMINATE GENERATE 600 ;SAVEVALUE CASH,(X$Pass#2-X$Vtratu#2) savevalue CASH,V$VAR TERMINATE 1 ;start 1 |
Сообщ.
#681
,
|
|
|
Здравствуйте!!!помогите пожалуйста не могу понять где ошибка.Сама задача:Вычислительная система содержит три ЭВМ, работа которых организована по следующему алгоритму: с интервалом 30±2 с задания поступают в очередь на обработку первой ЭВМ, время обработки составляет 30 с. После задание поступает одновременно во вторую и третью ЭВМ, время обработки которых соответственно 14±5 с. и 16±1с. Окончание обработки задания на любой ЭВМ означает снятие ее с решения с той и другой машины. Смоделировать 7 ч. работы системы. Определить необходимую емкость накопителей перед всеми ЭВМ, коэффициенты загрузки ЭВМ и функцию распределения времени обслуживания заданий.
Текст программы:savevalue KOL,0 инициализация переменной KOL savevalue K1,0 инициализация переменной K1 savevalue K2,0 инициализация переменной K2 savevalue K3,0 инициализация переменной K3 savevalue ENTER_NAK1,0 инициализация переменной ENTER_NAK1 savevalue ENTER_NAK2,0 инициализация переменной ENTER_NAK2 savevalue ENTER_NAK3,0 инициализация переменной ENTER_NAK3 nac1 storage 1 объявление емкости накопителя 1 nac2 storage 1 объявление емкости накопителя 2 nac3 storage 1 объявление емкости накопителя 3 time1 table ft$1,25,1,6 инициализация таблицы time1 time2 table ft$2 ,10,1,6 инициализация таблицы time2 time3 table ft$3 ,13,1,5 инициализация таблицы time3 generate 30 генерирование заявок savevalue KOL+,1 сохранение количества сгенерированных заявок enter nac1,1 занятие накопителя 1 savevalue ENTER_NAK1+,1 сохранение количества заявок вошедших в накопитель 1 seize 1 занятие устройства 1(ЭВМ1) leave nac1,1 освобождение накопителя 1 advance 30 задержка заявки в устройстве на обработку savevalue K1+,1 сохранение количества заявок обработанных в ЭВМ1 tabulate time1 вывод функции распределения времени обработки заявок в ЭВМ1 release 1 освобождение ЭВМ1 split 1,pcc3 переход от ЭВМ1 к ЭВМ2 и ЭВМ3 pcc2 enter nac2,1 занятие накопителя у ЭВМ2 savevalue ENTER_NAK2+,1 сохранение количества заявок вошедших в накопитель 2 seize 2 занятие ЭВМ2 leave nac2,1 освобождение накопителя 2 advance 14,5 обработка заявки в ЭВМ2 tabulate time2 вывод функции распределения времени обработки заявок в ЭВМ2 out1 release 2 освобождение ЭВМ2 gate U nac3,ONac3 проверка занятости накопителя 3 leave nac3 освобождение накопителя 3 ONac3 gate SF 3,O3 проверка занятости устройства 3, если оно еще занято, то release 3 освободить O3 savevalue K2+,1 сохранение количества заявок вышедших с устройства 3 transfer ,out удаление транзакта, т.е. снятие задания pcc3 enter nac3,1 занятие накопителя у ЭВМ3 savevalue ENTER_NAK3+,1 сохранение количества заявок вошедших в накопитель 3 seize 3 занятие ЭВМ3 leave nac3,1 освобождение накопителя 3 advance 16,1 задержка заявки на обработку tabulate time3 вывод функции распределения времени обработки заявок в ЭВМ3 out2 release 3 освобождение ЭВМ3 gate U nac2,ONac2 проверка занятости накопителя 2 leave nac2 освобождение накопителя 2 ONac2 gate SF 2,O2 проверка занятости устройства 2, если оно еще занято, то release 2 освободить O2 savevalue K3+,1 сохранение количества заявок вышедших с устройства 3 out terminate 2 удаление транзактов, т.е. снятие задания с ЭВМ2 и ЭВМ3 generate 1 terminate 1 start 25200 начальное значение счетчика завершений |
Сообщ.
#682
,
|
|
|
Здравствуйте!!Помогите ,пожалуйста)есть прога в GPSS ,но она не запускается ,выдает ошибку,не могу понять в чем проблема.Если можете ПОДСКАЖИТЕ плиз!!!
Вот задание Самолёты прибывают для посадки в район крупного аэропорта каждые 105 мин. Если взлётно-посадочная полоса свободна, прибывший самолет получает разрешение на посадку. Если полоса занята, самолет выполняет полет по кругу и возвращается к аэропорту через каждые 4 минуты. Если после пятого круга самолет не получает разрешения на посадку, он отправляется на запасной аэродром. В аэропорту через каждые 102 мин. К взлетно-посадочной полосе выруливают готовые к взлету машины и получают разрешение на взлет, если полоса свободна. Для взлета и посадки самолеты занимают полосу равно на 2 мин. Если при свободной полосе одновременно один самолет прибывает для посадки, а другой для взлета, полоса предоставляется взлетающей машине. Смоделировать работу аэропорта в течение суток. Подсчитать количество самолетов, которые взлетели, сели и были направлены на запасной аэродром. Определить коэффициент загрузки взлетно-посадочной полосы. А вот код проги line equ 1; основной аэродром line2 equ 2; запасной аэродром ready equ 3; очередь готовых на взлёт самолётов ;-------< самолёты, идущие на посадку >----------- generate 10,5 ; <- с приоритетом 0 assign 2,0 ; инициализация второго параметра ;----------< попытка занять полосу >-------------- LAND gate nu line,WAIT_LAND seize line advance 2 release line transfer ,OUT ;--------< кольцо, где ждут 4 минуты >------------ WAIT_LAND test L PS2,5,LAND2 mark 1 ; транзакт запоминает время начала ожидания assign 2+,1 ; количество кругов ожидания test GE MPS1,4 ; время прошло - следующая попытка transfer ,LAND ;--------------< запасной аэродром >-------------- LAND2 seize line2 ; для статистики release line2 transfer ,OUT ;--------------< взлетающий самолёт >------------- generate 10,2,,,1 ; <- с приоритетом 1 queue ready seize line depart ready advance 2 release line ;--------------------< конец >-------------------- OUT terminate ;--------< время моделирования = 1 сутки >-------- generate 0,,1440 terminate 1 start 1 |
Сообщ.
#683
,
|
|
|
Здравствуйте! Помогите пожалуйста разобраться в тексте программы. Задание: ИМИТАЦИЯ РАБОТЫ БАНКА
Текст программы: *Имитация работы банка* GENERATE 300,100; Создание потока клиентов QUEUE ZAPR; Вход в очередь SEISE KASSA; Ожидание свободной кассы/окна DEPART ZAPR; Выход из очереди ADVANSE 400, 200; Обслуживание клиента RELEASE KASSA; Освобождение кассы/окна TERMINATE 1; Уход клиента START 100; Имитация 100 клиентов Вот что выдаёт: 04/06/11 12:19:35 Model Translation Begun. 04/06/11 12:19:35 Line 4, Col 6. Invalid identifier. Expecting a GPSS Verb. 04/06/11 12:19:35 SEISE KASSA; Ожидание свободной кассы/окна 04/06/11 12:19:35 Line 6, Col 8. Invalid number. Expecting a GPSS Verb. 04/06/11 12:19:35 ADVANSE 400, 200; Обслуживание клиента 04/06/11 12:19:35 **** Model Translation Aborted **** Делала по примеру... Что здесь не правильно? ![]() |
Сообщ.
#684
,
|
|
|
Добрый день! Помогите пожалуйста решить задачу по GPSS. В Принципе она легкая, но вот с количеством мест выходит загвоздка =(
Моделирование процесса функционирования автомойки Исходные данные. 1. Автомойка имеет N мест на стоянке для автомоби¬лей. Если клиенты подъезжают и не застают свободного места для ожидания, они уезжают. 2. Поток автомобилей является пуассоновским с интенсив¬ностью λ. Время мойки автомобиля распределено экспоненциаль¬но с интенсивностью μ. Цель. Разработать GPSS-модель и использовать ее для выбо¬ра оптимального числа мест N на стоянке так, чтобы число уе¬хавших машин было минимальным. Перечень данных: λ = 5 авт/мин, μ = 4 авт/мин, 3 < N < 7. В долгу не останусь =) |
Сообщ.
#685
,
|
|
|
Помогите разобраться, даже препод не может понять в чем фигня, писал прогу сам препод =)
Условие задачи Условие задачи Рассмотрим пример работы компьютера, задействованного в управлении технологическим оборудованием. Для контроля состояния оборудования каждые 20 мин запускается одна из трех типов задач. Через каждые 5 мин работы процессора каждая задача выводит результаты работы в базу данных. При обращении двух и более задач к базе данных (БД) образуется очередь, которая обслуживается по правилу FIFO. Общий объем памяти компьютера 1024Кбайт. В первоначальный момент запуска компьютера загружается ОС, ядро которой постоянно находится в памяти и занимает 200 Кбайт. Компьютер работает в мультипрограммном режиме и во время выполнения операций вывода в БД процессор может выполнять другую задачу, если она загружена в память. После последнего вывода в БД задача выгружается из памяти и завершает свою работу. Периодически c интенсивностью λ=0,005 мин-1 и экспоненциальным распределением возникает аварийный режим оборудования, при котором немедленно запускается на выполнение задача четвертого типа, выводящая оборудование из аварийного режима. Она прерывает работу задачи, занимающей процессор, и позволяет закончить вывод в БД, если такой имеется, когда запущена задача 4-го типа. Прерванная задача выгружается из памяти. По окончании выполнения задачи четвертого типа, она выводит в БД результаты своей работы. Вытесненная задача c магнитного диска загружается в память и продолжает работу: загружает процессор, осуществляет вывод в базу данных. Необходимые данные для моделирования приведены в табл. 4.38. Таблица 4.38 Тип задачи 1 2 3 4 Вероятность возникновения 0,5 0,35 0,15 – Объем памяти, Кбайт 200 300 400 200 Время обработки ЦП, мин 15 20 25 5 Время вывода в БД, мин 3 5 7 2 Необходимо промоделировать работу компьютера в течение пяти суток и оценить размер очереди к памяти, ее загрузку и загрузку процессора. Учитывая, что программа полностью прокомментирована, дадим только некоторые пояснения к ней. Задачи 1-го, 2-гo, 3-го типов имеют приоритет равный 0. Задача четвертого типа, обрабатывающая аварийную ситуацию, имеет приоритет 3. При ее появлении немедленно занимается процессор и, если в это время выполняется задача другого типа, то она прерывается и выгружается из памяти (операнд C блока PREEMPT направляет прерванный транзакт в блок c меткой SWAP). Для запуска работы компьютера используется один транзакт c приоритетом 5, который занимает 2 единицы памяти (200 Кбайт) и имитирует загрузку ядра ОС в память. Программа полностью работает, вот текст Текст проги TYPE FUNCTION RN1,D3 ; Тип задачи .5,1/.85,2/1,3 VRAM FUNCTION P1,D3 ; Объем ОЗУ для задач 1, 2, 3 типов. Кратен ;100Кбайт 1,2/2,3/3,4 TIME_CP FUNCTION P1,D3 ; Время работы процессора для задач 1, 2, 3 типов 1,15/2,20/3,25 TIME_BD FUNCTION P1,D3 ; Время вывода в БД для задач 1, 2, 3 типов 1,3/2,5/3,7 RAM STORAGE 9 ; Объем ОЗУ 100*10 Кбайт TOB FVARIABLE EXPONENTIAL(5,0,100) ; Показательное ;распределение со средним 200 минут ************************************************************************ ;Появление задач T_OST1 TABLE P3,0,1,30 T_OST TABLE P5,0,1,10 T_PRER TABLE M1,0,50,10 T_TYPE TABLE P1,1,1,3 TQ_RAM QTABLE Q_RAM,0,20,10 TQ_RAM1 QTABLE Q_RAM1,0,20,10 TQ_RAM3 QTABLE Q_RAM3,0,20,10 GENERATE 20 ;Время появления задач 1, 2, 3 типов ; ;Создание параметров транзактов и назначение параметрам значений ASSIGN 1,FN$TYPE ;Определение типа задачи TABULATE T_TYPE ASSIGN 2,FN$VRAM ;Определение нужного объема ОЗУ для задачи данного ;типа ASSIGN 3,FN$TIME_CP ; Определение требуемого времени процессора для ;задачи ;данного типа ASSIGN 4,FN$TIME_BD ; Определение требуемого времени вывода в БД для ;задачи ;данного типа ASSIGN 5,0 ; В этом параметре(№ 5) будет записан остаток времени работы с ;процессором прерванной задачи **************************************************************************** QUEUE Q_RAM ;Ждать освобождения памяти ENTER RAM,P2 ; Занять память для задачи данного типа DEPART Q_RAM ; Освободить очередь к памяти CALC SEIZE CP ; Занять процессор ADVANCE 5 ; Работать 5 минут RELEASE CP ; Освободить процессор SEIZE BD ; Начать вывод в БД ADVANCE P4 ; Время вывода в БД RELEASE BD ; Закончить вывод в БД ASSIGN 3-,5 ; Сколько времени процессора еще требуется задаче ;данного типа? TEST LE P3,0,CALC ; Задача закончилась? LEAVE RAM,P2 ; Да, освободить ОЗУ TERMINATE ; Завершить задачу (по умолчанию параметр А ;равен 0) *************************************************************************** ; Аварийная ситуация, появление задачи 4 ;T4 QTABLE Q_RAM3,0,5,25 ;INITIAL X$TIM,0 T4 TABLE V$TOB,0,100,10 ;ASSIGN 6,0 ;Perem VARIABLE 0 ;T4 TABLE (AC1-M1-X$Perem),0,100,20 GENERATE V$TOB,,,,3 TABULATE T4 ;SAVEVALUE 6,AC1 QUEUE Q_RAM3 ENTER RAM,2 ; Задача 4 занимает память DEPART Q_RAM3 PREEMPT CP,PR,SWAP,5,RE ;Занять немедленно процессор, выгрузить ;прерванную задачу из памяти ;PREEMPT CP,PR ;в параметр 5 заносится остаток времени занятия ;процессора прерванной задачей ADVANCE 5 ; Работать 5 минут ;RELEASE CP RETURN CP ; Освободить процессор SEIZE BD ;Занять БД ADVANCE 2 ; Время вывода в БД - 2 мин RELEASE BD ; Закончить вывод в БД LEAVE RAM,2 ; Освободить память ;TABULATE T4 ;SAVEVALUE Perem,AC1PREEMPT TERMINATE ; Завершить задачу 4 *************************************************************************** ; Удаленная из процессора задача завершает работу SWAP TABULATE T_OST TABULATE T_PRER LEAVE RAM,P2 ; «Запись» на жесткий диск PRIORITY 2 ; Более высокий приоритет дает прерванной задаче ;преимущество в занятии ресурсов QUEUE Q_RAM1 ;Ждать освобождения памяти ENTER RAM,P2 ; Занять память для задачи данного типа DEPART Q_RAM1 ; Освободить очередь к памяти CALC1 SEIZE CP ; Занять процессор ADVANCE P5 ; Работать оставшееся время RELEASE CP ; Освободить процессор SEIZE BD ; Начать вывод в БД ADVANCE P4 ; Время вывода в БД RELEASE BD ; Закончить вывод в БД TABULATE T_OST1 ASSIGN 3-,5 ; Сколько времени процессора еще требуется задаче ;данного типа? ASSIGN 5,P3 ;Теперь время работы на процессоре считывается из ;параметра 5 TEST LE P3,0,CALC1 ; Задача закончилась? LEAVE RAM,P2 ; Да, освободить ОЗУ TERMINATE ; Завершить задачу **************************************************************************** ************************************************************************* ; Запуск компьютера в момент времени 0 GENERATE ,,,1,5 ENTER RAM,2 ; Загрузить в ОЗУ ядро ОС ADVANCE 7200 ; Работать 5 суток (5*24*60 мин) LEAVE RAM,2 ; Выгрузить ядро ОС из ОЗУ TERMINATE 1 ; Завершить работу компьютера *************************************************************************** START 1 Суть в чем... Работает компьютер, поступают некоторые задачи 3х типов, они занимают процессор и некоторое количество оперативной памяти Но иногда возникает аварийная ситуация, в это время запускается программа 4ого типа, он прерывает текущую программу и перенаправляет его к метке SWAP, где он выгружается из памяти, а из процессора она прерывается предыдущим PREEMPT'ом и снова становиться в очередь за памятью чтобы доработать оставшееся время PREEMPT CP,PR,SWAP,5,RE Но когда мы ставим обычный PREEMPT без перехода на метку SWAP, т.е. весь блок от SWAP и до конца пропадает и программа как бы продолжает занимать память и ждет пока пока освободиться процессор после прерывания чтобы доработать оставшееся время PREEMPT CP,PR В первом случае все очереди возрастают в 2 раза, то есть система в целом работать начинает в 2 раза хуже, хотя по логике должно быть все наоборот, ну или на крайняк также Все перепроверили, логика программы правильная, но этот факт объяснить никто не может Профи и гуру помогите плиз, надеюсь достаточно понятно все обьяснил! |
Сообщ.
#686
,
|
|
|
Уважаемый aeronx. Я написал Вашу модель. Все получилось. Пишите на oes2@mail.ru
|
Сообщ.
#687
,
|
|
|
Привет всем!
Вопрос такой: в GPSS есть блоки SPLIT и ASSEMBLE которые позволяют соответственно разбивать транзакт на несколько и собирать из нескольких транзактов одного семейства один. Есть ли здесь кто-нибудь кто-знает аналогичные системы моделирования, в частности SimEvents из пакета MathLab. Каким образом там можно организовать то же самое (SPLIT - ASSEMBLE) ? PS. Вообще, я удивлен тем, что в GPSS можно порождать сколько угодно транзактов из одного, причем указывать это можно в параметре транзакта. В SimEvents нужно целую подсистему нагородить, чтобы достичь того же, что в GPSS делается одной строкой. |
Сообщ.
#688
,
|
||||||||||||||||
|
Привет. Ребята, помогите пожалуйста с задачей по gpss world, завтра уже сдавать надо, пожалуйста.
На станцию технического обслуживания (СТО) согласно закону Эрланга второго порядка со средним временем прибытия 14 мин прибывают автомобили для технического обслуживания (36% автомобилей) и ремонта (64% автомобилей). На СТО есть два бокса для технического обслуживания и три бокса для ремонта. Выполнение простого, средней сложности и сложного ремонтов – равновероятно. Время и стоимость выполнения работ по техническому обслуживанию и ремонту зависит от категории выполняемых работ (табл. 7.17). После технического обслуживания 12% автомобилей поступают для выполнения ремонта средней сложности. Построить гистограмму времени обслуживания автомобилей. Оценить выручку СТО за пять дней работы. Таблица 7.17
|
Сообщ.
#689
,
|
|
|
Привет! Умные, хорошо знающие gpss люди не оставьте в беде! Помогите решить задачу, курсовой сдавать надо, а я gpss совсем не понимаю((
Фирма «Happy New Year», работающая по системе «сегодня на сегодня», имеет в своем штате N актеров, играющих роль Деда Мороза, и M актрис, играющих роль Снегурочки. Время прихода заказов распределено по закону Эрланга третьего порядка со средним временем Т1 минут. Характеристики заказов приведены в табл. 17. Таблица 17 - Варианты к заданию 17 Вид поздравления Вероятность прихода заказа на поздравление Время выполнения заказа (поздравления),минут Стоимость поздравления С Дедом Морозом p1 t1±t4 s1 Со Снегурочкой p2 t2±t5 s2 С Дедом Морозом и Снегурочкой p3 t3±t6 s3 При заказе поздравления клиент указывает желаемый срок выполнения T2 (минут). Если поздравление выполняется позже заявленного срока, то клиенту предоставляется 20% скидка от начальной стоимости поздравления. Заработная плата актера составляет z рублей в месяц. В начале своей работы фирма делает одноразовые затраты (костюмы, реквизит, лицензия, литературные тексты и прочее) на сумму S единиц стоимости. Фирма работает только один месяц в году (считать, что в другое время она не несет никаких затрат). Найти оценку периода окупаемости T (в годах) фирмы по формуле T=S/P, где Р - прибыль, полученная за один год работы. Определить величины N и M, при которых время окупаемости фирмы и соответствующее среднее время ожидания клиентом выполнения заказа будет минимальным. Если возможно снижение цен на услуги, то до какого уровня? Варианты заданий приведены в табл. 17.1. Таблица 17.1 - Варианты к заданию 17 Параметры Варианты 4 N 5 M 4 p1 0,25 p2 0,25 p3 0,5 T1 35 T2 175±15 t1±t4 70±20 t2±t5 55±15 t3±t6 80±10 s1 50 s2 60 s3 100 S 13000 z 400 Заранее благодарю не оставшихся равнодушными!))) |
Сообщ.
#690
,
|
|
|
Здравствует.
Помогите пожалуйста разобраться. Я смоделировала СМО. Он выдает результаты, но я не понимаю что к чему. Мне нужны результаты нагрузки СМО. Подскажите что к чему относиться (где нагрузка и вообще где что). ![]() ![]() GPSS World Simulation Report - 2.8.1 Thursday, May 05, 2011 17:25:13 START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 500.000 30 0 1 NAME VALUE COUNT1 10000.000 NAK 10001.000 OUT 27.000 OUT1 28.000 QUE 10002.000 T1 18.000 T2 22.000 T3 21.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 40 0 0 2 TEST 40 0 0 3 ENTER 40 0 0 4 ADVANCE 40 0 0 5 LEAVE 40 0 0 6 TRANSFER 40 0 0 7 GENERATE 20 0 0 8 TEST 20 0 0 9 ENTER 20 0 0 10 ADVANCE 20 0 0 11 LEAVE 20 0 0 12 TRANSFER 20 0 0 13 GENERATE 10 0 0 14 TEST 10 0 0 15 ENTER 10 0 0 16 ADVANCE 10 0 0 17 LEAVE 10 0 0 T1 18 TEST 10 0 0 19 QUEUE 10 0 0 20 TRANSFER 10 0 0 T3 21 TRANSFER 2 0 0 T2 22 SEIZE 0 0 0 23 DEPART 0 0 0 24 ADVANCE 0 0 0 25 RELEASE 0 0 0 26 TERMINATE 0 0 0 OUT 27 TERMINATE 60 0 0 OUT1 28 TERMINATE 10 0 0 29 GENERATE 1 0 0 30 TERMINATE 1 0 0 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY QUE 10 10 10 0 9.480 473.999 473.999 0 STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY COUNT1 50 50 0 5 70 1 0.252 0.005 0 0 SAVEVALUE RETRY VALUE NAK 0 10.000 FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 72 0 1000.000 72 0 29 |