ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
214661
mazur (07.10.2010 16:46, просмотров: 11838)
Размышлизм. Я как-то писал о простенькой ОС с easyelectronics.ru. Я ее разобрал на атомы, и заново под себя собрал. Тогда она понравилась мне относительной простотой, неприхотливостью к ресурсам. Впоследствии вскрылись ее недостатки. Главный недостаток-задачи, болтающиеся в очереди событий, а также поставленные в таймерной службе висят, как дамоклов меч. Стоит отдать должное этой ОС, она сильно облегчила мне создание небольших проектов. Тщательный разбор всех моментов я оставил до лучших времен. Сейчас поступил мне нелегкий заказ. И наступил момент решить, либо писать более серьезную ось, либо попытаться допилить эту. В общем, посидел несколько ночей. Накидал концепции. Нужен планировщик задач, который будет задавать статус задачам, затем ставить их в очередь. Диспетчеры задач и таймерной службы перед выполнением каждой задачи будет считывать статус задачи, проверять можно ли ее выполнять и нужно ли обрабатывать таймеры. Наброски. Статус задачи: Флаги: 0 - Доступна/недоступна. 1 - Активна/Неактивна. 2 - Перезапуск требуется/не требуется. 3 - Таймер требуется/не требуется. 4 - Таймер активен/неактивен. Инициализация ОС: Установка статуса всех задач в дефолтный. Очистка буфера-очереди задач. Очистка буфера таймерной службы. Инициализация системного таймера. С этого места я в размышлениях. То что выше написано это ядро. Что делать дальше, думаю. Пока вижу следующий вариант. Для каждого проекта писать автомат. Сначала запускается главный автомат, который и есть планировщик. Главный автомат ставит необходимый статус нужным задачам. Включает, если необходимо таймеры. Постановка задач в очередь событий. Запуск диспетчера задач. Возврат к главному автомату. Плюсы-теперь ни одна задача не висит как дамоклов меч. Один минус сразу видно. Автомат-планировщик для каждого проекта уникален. Остальные минусы и дополнения-нужно выявлять. Теперь хочу услышать ваши соображения, советы, замечания.