AnyLogic 5 Discussion

Добрый день. Есть такая задача: Вычислительная система включает три ЭВМ. В систему в среднем через 30 с поступают задания, которые попадают в очередь на обработку к первой ЭВМ, где они обрабатываются около 30 с. После этого задание поступает одновременно во вторую и третью ЭВМ. Вторая ЭВМ может обработать задание за 14 ± 5 с, а третья — за 16 ± 1 с. Окончание обработки задания на любой ЭВМ означает снятие ее с решения с той и другой машины. В свободное время вторая и третья ЭВМ заняты обработкой фоновых задач. Смоделировать 4 ч работы системы. Определить необходимую емкость накопителей перед всеми ЭВМ, коэффициенты загрузки ЭВМ и функцию распределения времени обслуживания заданий. Определить производительность второй и третьей ЭВМ на решении фоновых задач при условии, что одна фоновая задача решается 2 мин. Так вот. Построение общей схемы СМО затруднений не вызвало. Выглядит это вот так: http://pic.ipicture.ru/uploads/090330/qG530oVHZH.jpg Не могу понять: 1. Как сделать так, что при выполнении заявки на одной из ЭВМ она снималась и с другой. 2. Как привязать ко всему этому выполнение фоновой задачи. Буду очень признателен за подсказку..
Хотя мне кажется, что вместо связок queue1 -> ЭВМ2 и queue2 -> ЭВМ3 в моем случае нужно использовать ProcessQ и Resource ?
Здравствуйте, Предлагаю Вам заменить объекты "Delay" на блоки "Queue". Из последних Вы сможете удалять заявки в любой момент времени, используя метод "queue.remove(номер_заявки_в_очереди)". Время нахождения заявки в очереди можно регулировать с помощью таймера, т.е. при входе заявки в очередь, активизируется таймер, который через заданное время осуществляет выемку заявки из одной очереди с помощью блока "Enter" и удаление заявки из второй очереди. Фоновые задачи могут быть представлены в виде заявок от другого источника, которые поступают в ЭВМ только тогда, когда она пустая. P.S.: Я рекомендую Вам перейти на AnyLogic 6. Там эти же задачи можно решить более простым способом.
Павел, спасибо за коментарий. Я так понимаю, что queue.remove() используется как действие при выходе? Про таймер не совсем понял? Как его активизорвать? У меня стоит AnyLogic6, на нем тоже пытаюсь решить задачу. Одновременный вывод заявок из блоков Delay пытался реализовать при помощи "действия при выходе". У первого блока : delay2.remove(Entity) А на выходе второго: delay1.remove(Entity) При компиляции ошибок не выдало, но почему-то одновременно заявки так и не покинули блоки ((
Александр, А в чем смысл вызывать эти методы при выходе заявки из "Delay", ведь заявка уже покидает объект? Лучшим вариантом здесь будет использование блоков "Enter" и "Exit". Они позволяют реализовать свой собственный алгоритм маршрутизации. Более подробно об этом написано в разделе Справка|Содержание справки|Справочные руководства по библиотекам|Справочное руководство по Enterprise Library|Объекты Enterprise Library|Exit. С помощью событий Вы сможете активировать требуемый блок "Enter" и забирать заявку из очереди, перенаправлять ее.