-
- Переосмыслил, упростил, получилось что-то такое : Dingo(652 знак., 29.03.2018 13:40)
- а ларчик просто открывался... - SciFi(29.03.2018 13:42)
- ..."Понятно, что прерывать обмен на середине нельзя"... !!! Приоритеты тут вообще не при делах.Очередь нужна. - PlainUser(29.03.2018 09:56)
- Нужна очередь с приоритетами. То есть так примерно: Dingo(240 знак., 29.03.2018 10:27)
- Там целую науку навели --> - SciFi(29.03.2018 10:31, ссылка)
- Попадались простые реализации? (пошёл читать). - 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)
- Там целую науку навели --> - SciFi(29.03.2018 10:31, ссылка)
- Приоритеты есть в ТЗ, уважаемый. А очередь без приоритетов я уже делал, кстати: SciFi(940 знак., 29.03.2018 10:04)
- А наоборот — приоритеты без очереди, которые я выше написал? Просто не совсем понятно, нужна ли там очередь. Из задачи этого не следует. - Николай Коровин(29.03.2018 13:40)
- Нужна очередь с приоритетами. То есть так примерно: Dingo(240 знак., 29.03.2018 10:27)
- Переосмыслил, упростил, получилось что-то такое : Dingo(652 знак., 29.03.2018 13:40)