Здравствуйте! Программирую на С под 8-бит микроконтроллер. Для улучшения динамики работы ПО хочу сделать нечто подобное как сообщения Виндовс. Каждому отдельному модулю ПО выделяется процессорное время, только не квант времени как в Виндовс, а передается процессор на обработку всего что обрабатывает модуль, естественно, модуль должен как можно скорее вернуть процессор для работы следующих модулей. Должен проверить свои данные и сообщения, если новых данных/сообщений нет, вернуть процессор для работы других модулей ПО, следующий по порядку, по кругу.
Отдельные модули ПО могут добавлять сообщения в общий список, другие модули могут получать сообщения и обрабатывать. Планирую сделать две функции доступные из всех модулей ПО SendMessage и GetMessage, в функции будет передаваться/приниматься хейдер сообщенияи данные. Функция SendMessage добавляет сообщение с указанием хейдера в динамичный список сообщений. Функция GetMessage извлекает сообщение с указанным хейдером или если сообщение отсутствует возвращает NO_MESSAGE.
Вопрос в следующем: Допустим один модуль шлет сообщения, но еще не существует модуля который может эти сообщения обрабатывать, список сообщений будет расти. Какое должно быть время жизни сообщений, чтоб не забить всю память? Сообщение должно пройти через все модули ПО по кругу и должно уничтожится вернувшись в модуль отправитель?
Правильно ли я мыслю?
|