Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Хитровывернутый вопрос про RTOS
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
Страницы: 1, 2
AlexandrY
Цитата(AndrewN @ Aug 5 2014, 14:27) *
Алгоритм планировщика предполагается неизвестным, и более того, предполагается недетерминистским. Т.е. никак нельзя сказать в каком порядке могут быть спланированы два равноприоритетных процесса.



Кстати, а как же эта подсказка "результат не зависит ни от количества потоков, ни от количества итераций в цикле for"
Даже при "хаотичном" планировщике мы бы увидели корреляцию. А тут нет, не зависит.

Рискну предположить что с увеличением конкурентов и с увеличением количества циклов средняя величина получаемого результата при "хаотичном" планировщике будет стремиться к увеличению, а не концентрироваться вокруг двойки.
den_po
Цитата(AlexandrY @ Aug 5 2014, 14:24) *
Тик вытиснения!
Задачи не вытисняются на любом прерывании, а только по тику. Иначе это уже не RTOS.
Прерывания никакого хаоса в RTOS не вызывают.

Например обработчик прерывания может принудительно разблокировать ожидающую задачу с большим чем у текущей приоритетом, и в этом нет криминала.
AndrewN
QUOTE (Mahagam @ Aug 5 2014, 14:37) *
вы точно про RTOS?? точно про микроконтроллеры??
какой нафик, "недетерминистским" планировщик в RTOS?? да он в большинстве случаев вообще в исходниках идёт. и его поведение прозрачно аки слезинка ребёнка. какие нафик неизвестные процессы в МК ?

Неизвестные процессы не в МК, а в условии исходной задачи. Они, естественно, не заданы, но их присутствие в выч. системе, естественно, неявно подразумевается. Кроме всего прочего, термин МК в условиях не фигурирует.

Я попытался пересчитать решение для детерминистского алгоритма планировщика, такого, который бы без оговорок мог использоваться в RTOS. Для preemptive round robin для равноприоритетных процессов планировки решение абсолютно возможное (feasible). Ход своих рассуждений опускаю, они очевидные.

QUOTE (Mahagam @ Aug 5 2014, 14:37) *
попривыкали к глючному линуксу, который может "недетерминированно" тупануть, и теперь переносите свои влажные фантазии в мир нормальных RTOS.

Об ослинуксе не было ни слова. Насчет "[...] фантазий" - полегче на поворотах, почтеннейший, не в рыбной лавке.

QUOTE (AlexandrY @ Aug 5 2014, 15:26) *
Кстати, а как же эта подсказка "результат не зависит ни от количества потоков, ни от количества итераций в цикле for"
Даже при "хаотичном" планировщике мы бы увидели корреляцию. А тут нет, не зависит.

Рискну предположить что с увеличением конкурентов и с увеличением количества циклов средняя величина получаемого результата при "хаотичном" планировщике будет стремиться к увеличению, а не концентрироваться вокруг двойки.

Я эту подсказку воспринял в смысле, что двойку можно получить (не обязательно получить, а возможно) независимо от числа процессов и независимо от числа итераций. В моём решении это явно видно: три процесса стартуют и завершаются ни на что не влияя, остальные два явно используют отсылку только к первой итерации, предпоследней итерации и последней итерации.

А статистику копить - такого в условии не было. Пока даже предположить не берусь, какое было бы распределение результатов и как оно зависисело бы от загрузки выч. системы.

Гипотетически - распределение скорее всего равномерное. Ребята, а дайте мне грант на месяц (пару миллионов сов. рупий) и я это поисследую :-)
AlexandrY
Цитата(AndrewN @ Aug 5 2014, 15:30) *
Я попытался пересчитать решение для детерминистского алгоритма планировщика, такого, который бы без оговорок мог использоваться в RTOS. Для preemptive round robin для равноприоритетных процессов планировки решение абсолютно возможное (feasible).


Ну очень интересно, как это из изначально последовательно поставленных в круг N задач остаются только две одна из которых не получила времени когда все остальные выполнились.
Это уже никак не round-robin планирование.
AndrewN
QUOTE (AlexandrY @ Aug 5 2014, 16:42) *
Ну очень интересно, как это из изначально последовательно поставленных в круг N задач остаются только две одна из которых не получила времени когда все остальные выполнились.
Это уже никак не round-robin планирование.
RR это, RR. Посмотрите на 1) в решении - А и В прочитали нулевой счётчик. И встали в хвост. А потом три пробежали до упора.

P.S. Для ясности облегчу себе участь - скажем, что тайм-слайс очень большой. И только внешние события, над которыми у нас власти нет, заставляют планировщик менять задачи. И, если задача прерывается, то планировщик ставит её в хвост.
AlexandrY
Цитата(AndrewN @ Aug 5 2014, 15:39) *
Ребята, а дайте мне грант на месяц (пару миллионов сов. рупий) и я это поисследую :-)


Нет уж, здесь честная битва телепатов. smile3009.gif

Цитата(AndrewN @ Aug 5 2014, 15:50) *
RR это, RR. Посмотрите на 1) в решении - А и В прочитали нулевой счётчик. И встали в хвост. А потом три пробежали до упора.

P.S. Для ясности облегчу себе участь - скажем, что тайм-слайс очень большой. И только внешние события, над которыми у нас власти нет, заставляют планировщик менять задачи. И, если задача прерывается, то планировщик ставит её в хвост.


Да, теперь красиво.
adnega
CODE
задача А задача В задача Х
| LDR \ 1| LDR [0] | LDR \
3| ADD } x (COUNT-1) | ADD [1] 2| ADD } x COUNT
| STR / | STR /
4| STR [1]
5| LDR [1]
| ADD [2] | LDR \
6| ADD } x (COUNT-1)
7| STR [2] | STR /

где цифра слева от вертикальной черты номер в очереди исполнения.
Удачные пять вытеснений и реультат 2 может быть получен.
2 и 3 могут выполнятся в любой последовательности (в том числе и внутри).
Головоломка имеет очень далекое отношение к реальной системе, т.к. вероятность очень мала.
При увеличении COUNT и числа задач вероятность события "=2" стремится к вероятности события
"все молекулы контроллера полетели в одном направлении, и контроллер оказался на Луне".
Mahagam
QUOTE (AndrewN @ Aug 5 2014, 15:39) *
Неизвестные процессы не в МК, а в условии исходной задачи. Они, естественно, не заданы, но их присутствие в выч. системе, естественно, неявно подразумевается. Кроме всего прочего, термин МК в условиях не фигурирует.

с такими условиями я тогда выдаю самое достоверное решение: один из неизвестных процессов, который неявно подразумевается, отследил что завершились все вычислительные потоки и нагло вставил в переменную двойку прям под носом у принтфа.
AndrewN
QUOTE (Mahagam @ Aug 5 2014, 19:09) *
отследил что завершились все вычислительные потоки и нагло вставил в переменную двойку прям под носом у принтфа.
А ещё лучше принтфом прикинуться, и как только видишь, что экзаменатор count собрался печатать, так сразу хлобысь и печатаешь двойку (болдом!) :-) И переменную портить не надо - наследить лишний раз...
juvf
аш 4 страници настучали....
1) а кто пробовал это на реальном железе реализовать? может и вправду 2 будет. дебагом пошагаете, истину увидите

2) я думаю это задача без правильного ответа. она расчитана на то, чтобы заставить кондидата мыслить и попытаться найти решение, тем самым интервьювер узнает насколько кондидать владеет темой.
AlexandrY
Цитата(AndrewN @ Aug 5 2014, 15:50) *
P.S. Для ясности облегчу себе участь - скажем, что тайм-слайс очень большой. И только внешние события, над которыми у нас власти нет, заставляют планировщик менять задачи. И, если задача прерывается, то планировщик ставит её в хвост.


Хм, в MQX это не сработает.
Там задача с планировщиком round robin не отдаст таким же другим задачам управление пока не кончится ее time slice.
Но правда time slice считается не как общее время работы задачи, а как общее время ее активности (и в ожидании в том числе) поэтому это время все может быть занято более приритетными задачами.
Вот тут и возникнет эффект как-бы вытеснения задачами друг друга в round robin планировщике.
Т.е. time slice надо как раз уменьшать чтобы на результат более вероятно повлияли сторонние приоритетные задачи в системе.


AndrewN
Жаль, что не удалось узнать, что думает экзаминатор по поводу своей задачи... ОР молчит...
InsolentS
Цитата(AndrewN @ Aug 7 2014, 18:35) *
Жаль, что не удалось узнать, что думает экзаминатор по поводу своей задачи... ОР молчит...

Прошу прощения, под свалившейся на меня кучей дел, совсем забыл про этот топик. Ваша логика совершенно верная и ответ должен был быть в точности таким, как Вы предположили. Мне очень стыдно, что я сам до такого не додумался rolleyes.gif
Спасибо за то что пнули в верном направлении)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.