-
- Попадались простые реализации? (пошёл читать). - Dingo(29.03.2018 10:33)
- Можно слепить на коленке за 5 минут. Навскидку: делаем FIFO, каждый элемент - это номер задачи с приоритетом. Для выбора следующего сканируем FIFO целиком, ищем высший приоритет, потом затираем выбранный элемент, чтобы не сдвигать всю очередь. Ну SciFi(93 знак., 29.03.2018 10:38)
- Тогда уж связанный список. Или, чтобы с не дёргать malloc/free - массив структур, в которых есть необходимая инфа ( номер следующей структуры, приоритет, ...). Поэтому и была мысль про указатель на функцию. Или же вами предложенные ФИФО в Dingo(81 знак., 29.03.2018 10:47)
- Вот: SciFi(1301 знак., 29.03.2018 11:08)
- При фифо непрозрачно как-то. Нужно почитать про аппаратную структуру контроллера прерываний и реализовать ее программно :) Массив структур запросов. Индекс массива - код задачи, в структуру входит номер приоритета, запрос есть/нет/выполняется, ну VLLV(70 знак., 29.03.2018 11:32)
- Кому прозрачно, кому - нет... Зато дёшево, надёжно и практично. - SciFi(29.03.2018 11:39)
- Снимаю шляпу: я так быстро код писать не умею! :'( - Dingo(29.03.2018 11:12)
- Там косяк: когда сдвигаем указатель хвоста, нужно проверять, что следующий не стёрт, и при необходимости сдвигать дальше: SciFi(369 знак., 29.03.2018 11:23)
- При фифо непрозрачно как-то. Нужно почитать про аппаратную структуру контроллера прерываний и реализовать ее программно :) Массив структур запросов. Индекс массива - код задачи, в структуру входит номер приоритета, запрос есть/нет/выполняется, ну VLLV(70 знак., 29.03.2018 11:32)
- Вот: SciFi(1301 знак., 29.03.2018 11:08)
- Тогда уж связанный список. Или, чтобы с не дёргать malloc/free - массив структур, в которых есть необходимая инфа ( номер следующей структуры, приоритет, ...). Поэтому и была мысль про указатель на функцию. Или же вами предложенные ФИФО в Dingo(81 знак., 29.03.2018 10:47)
- Можно слепить на коленке за 5 минут. Навскидку: делаем FIFO, каждый элемент - это номер задачи с приоритетом. Для выбора следующего сканируем FIFO целиком, ищем высший приоритет, потом затираем выбранный элемент, чтобы не сдвигать всю очередь. Ну SciFi(93 знак., 29.03.2018 10:38)
- Попадались простые реализации? (пошёл читать). - Dingo(29.03.2018 10:33)