да не,насчёт вытесняющей это просто тема курсовой друга,у меня невытесняющая,у него наоборот,от этого столько уточнений,а там главное в коде разобраться как сказано было,главное чтобы понимал что и как написано,конечно желательно бы переделать под питон или хотя бы с++ или на худой конец с#,но это совсем другая история)
Так Вы начните собирать материал для понимания отличий, а там и до кода уже близко совсем станет.
Если бы оно так было на самом деле, тогда Linux and Windows можно было бы применять как системы реального времени в особо ответственных задачах.
На данное время по факту обе системы можно повесить халатным кодом, и по этой причине они не являются вытесняющими и не попадают в линейку систем реального времени.
P. S.
Ресурс с кодом возможно и не доступен на данное время, статья не свежая. Но само изложение азов для понимания что именно нужно прогуглить вполне достаточно.
Прочтение статьи, гугление, чтение, сопутствующие вопросы на форуме, == решение поставленной задачи.
Так использование вытесняющей многозадачности не является единственным условием, чтоб быть рт )
Повесить как именно, о каком виде “висения” речь? Если вы запустите несколько процессов (столько, сколько ядер) с например бесконечным циклом, то другие приложения может и будут работать медленнее, но продолжат работу.
Не умею писать длинные опусы, но похоже не обойти…
Задача RTOS вытеснять задачи с низким приоритетом.
Пример.
Если запущена программа движения транспортерной ленты опираясь на сенсор наличия и сенсор остановки, то мы имеем право незамедлительно остановить\прервать данный поток в случае:
- активации сенсора перекоса фазы двигателя;
- наличия на ленте объекта превышающего размер ленты;
- превышение константы сенсора потребления электроэнергии двигателем;
- наличие сигнала экстренной остановки от оператора;
Вот как-то так работает вытесняющий алгоритм.
P. S.
Отличие систем реального времени от пользовательских систем и заключается в алгоритме вытеснения.
Т. е. немедленное прерывание выполнения текущей программы по наличию прерывания с большим приоритетом.
Так вытесняющий это просто когда планировщик сам по какому-то алгоритму приостанавливает текущий процесс и дает время другим, а не ждет когда процесс вызовет команду передачи контроля или завершится.
Пузырьковая сортировка не перестает же быть сортировкой из-за того, что существуют более крутые алгоритмы сортировки ) Так и в обычных пользовательских ОС используется вытеснение, просто без таких жестких требований как в рт ОС.