Простой вопрос: Я построил квазипроцессорный симулятор, который берет график приоритета, определяет приоритеты (и «готовые» инструкции), расписывает задачи на доступных функциональных блоках и т. Д. Довольно очень простой симулятор.Простая библиотека моделирования дискретных событий (C++) для планирования процессов/задач?
Но я понял, что должен был построить его поверх механизма DES, так как у меня нет возможности (кроме установки флага и проверки каждого узла на каждом «такте») для высказывания таких вещей, как «В 10 циклах, сделайте это »(т. е. поднимая сигналы в заранее определенные моменты времени и обрабатывая события, которые должны произойти в будущем или когда были определены заранее определенные критерии).
Я мог бы реализовать это сам; построил класс «событие», вставил их в очередь и в конце (или начале) каждого цикла проверил очередь и посмотрел, что там происходит, но я считаю, что нет смысла изобретать колесо.
Таким образом, сложные сетевые симуляторы, очевидно, переполнены. Мне не нужно модное моделирование или очередность или что-то в этом роде. Все, что мне нужно, это встроенные часы, а также возможность устанавливать события, поднимать флаги, когда это происходит, и т. Д., Как я описал выше.
Freeware и C++ были бы замечательными.
У кого-нибудь есть идеи? (Ближайший я пришел - благодаря некоторым другим некоторым связанным вопросам - это что-то вроде SIMLIB.)
Большое вам спасибо!
Если вы уже внедрили планировщик задач, не могли ли вы позволить событиям таймера быть другой задачей? – jxh
+1 за попытку избежать перекручивания колес. Из вашего вопроса кажется, что вам хотелось бы добавить дополнительные функции из механизма DES (в противном случае это не что иное, как цикл и отсортированный список событий, поэтому использование _any_ конкретной библиотеки, похоже, слишком велико), так что еще вам нужно? Масштабируемость (параллельное моделирование)? Поддержка случайных распределений/RNG? Предпочитаете ли вы конкретное мировоззрение (например, см. Http://www.informs-sim.org/wsc10papers/019.pdf)? –
Извините за задержку в ответе! Задачи планировщика не записываются в общем виде. События на основе таймера потребуют значительного вмешательства, и все дело в том, чтобы не изобретать велосипед. – user770901