algent 0 12 августа Опубликовано 12 августа · Жалоба Имхо, из ядра всё должно быть не сложно. В современных архитектурах в локальном APIC есть встроенный 32-битный таймер. Разрешающая способность там вроде очень высокая, лень смотреть ДШ. Ну только ISR не имеет права длиться дольше 20мкс, иначе бсод. Ну DPC и так далее... Мне кажется, для тонкого и аккуратного использования, всё реально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gridinp 3 12 августа Опубликовано 12 августа (изменено) · Жалоба В 09.08.2024 в 09:03, dxp сказал: Бенчмарки можно где-нить увидеть? https://lemariva.com/blog/2019/09/raspberry-pi-4b-preempt-rt-kernel-419y-performance-test ну и у меня на rpi cm3+ с preempt_rt реакция в программе на прерывание укладывается в 100 мксек по осцилографу Изменено 12 августа пользователем gridinp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 12 августа Опубликовано 12 августа · Жалоба On 8/12/2024 at 11:08 AM, gridinp said: ну и у меня на rpi cm3+ с preempt_rt реакция в программе на прерывание укладывается в 100 мксек по осцилографу есть специальные тестовые фермы с разными процессорами с полным описанием конфигурации как аппаратной так и програмной https://www.osadl.org/Continuous-latency-monitoring.qa-farm-monitoring.0.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tegumay 4 8 сентября Опубликовано 8 сентября · Жалоба Существуют программные надстройки для винды и не только которые обеспечивают реалтайм, к сожалению видел лет 10 назад и не могу указать пруфы =\ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 61 8 сентября Опубликовано 8 сентября · Жалоба Для начала откройте своё понимание слова риалтайм, а потом уже можно и советов ожидать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tegumay 4 26 октября Опубликовано 26 октября · Жалоба если гарантированные 125 мкс реакции для вас не реалтайм, я молчу. это был семинар, где все разжевывалось под Win7. Там была реализация 2-in-1 одновременно работала подсистема ОСРВ и паралельно с ней на процессоре крутилась винда. Немного удивляет подход автора (управление потоком в реалтайме), но интересно почитать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sh@dow 0 1 ноября Опубликовано 1 ноября · Жалоба Здраствуйте. Сам сталкивался с проблемами когда винда не обеспечивала нужнные временные интервалы. В связи с этим хочи поделиться радикальной идеей о которой давно думал. Пишем драйвер который все задачи выполняет а перед этим запрещаем переключения на другой контекст. После завершения задачи восстанавляваем рабочее состояние системы. Я понимаю что драйвера периферии с которой работаем это отдельные процессы и поэтому наш драфвер должен быть монолитным. Тоесть сожержать в себе и код лля работы с периферией для воздействия с внешним миром. Где бы почитать про такой радикальный подход? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A.V.Avtomat 25 1 ноября Опубликовано 1 ноября · Жалоба 36 минут назад, Sh@dow сказал: Где бы почитать про такой радикальный подход? MS-DOS или режим MS-DOS вполне обеспечат такой подход. Современные компьютеры и Windows - нет. А в чём идея-то? Windows 10 не даст так просто отключить все свои службы, процессы, программы и драйверы. Это Вам не правила расстановки запятых игнорировать, над ней работали очень много умных дядек. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 45 1 ноября Опубликовано 1 ноября · Жалоба Сечас многоядерность процессора стала нормой. Существует ли возможность средствами API винды захватить монопольно для своей задачи одно ядро? Понятно, что шину и память захватить не получится, но все равно будет намного быстрее чем у обычного планировщика. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sh@dow 0 1 ноября Опубликовано 1 ноября (изменено) · Жалоба 18 minutes ago, khach said: Сечас многоядерность процессора стала нормой. Существует ли возможность средствами API винды захватить монопольно для своей задачи одно ядро? Понятно, что шину и память захватить не получится, но все равно будет намного быстрее чем у обычного планировщика. SetThreadAffinityMask https://learn.microsoft.com/en-us/windows/win32/procthread/multiple-processors Эта установка иногда дает серьезный прирост производительности. Я кстате заметил что винда иногда перебрасывает потоки с одного ядра на другое. Ходят легенды, чтоб ядра равномерно прогревались.... Изменено 1 ноября пользователем Sh@dow Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 45 1 ноября Опубликовано 1 ноября · Жалоба 9 минут назад, Sh@dow сказал: SetThreadAffinityMask Спасибо, когда знаешь как называется ключевой параметр, то и искать информацию легче. Ну мелкомягкие и запихнули аж и IOT ... https://learn.microsoft.com/en-us/windows/iot/iot-enterprise/soft-real-time/soft-real-time-application Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 69 2 ноября Опубликовано 2 ноября · Жалоба 8 часов назад, Sh@dow сказал: Я кстате заметил что винда иногда перебрасывает потоки с одного ядра на другое. Ходят легенды, чтоб ядра равномерно прогревались.... Это обычное дело на современных многоядерниках -- SMP (Synchronous Multiprocessing), на всех, где есть аппаратная когерентность кешей L1. Это повышает производительность: например, одно ядро выполнляло поток (процесс), по логике программы нужно было остановить выполнение (ожидание события, слип и т.п.), далее это ядро переключилось на другой поток (процесс), в какой-то момент возникает событие, которое ждал тот прерванный поток (процесс), но выполнявшее его ядро в данный момент занято, и прерывать его будет неэффективно, а вместо этого пробуждающийся поток (процесс) подхватывает другое ядро -- за счёт когерентности кэшей оно сможет продолжить работу почти так же эффективно, как и то, которое выполняло поток первым. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sh@dow 0 2 ноября Опубликовано 2 ноября (изменено) · Жалоба [QUOTE = A.V.Avtomat] MS-DOS или режим MS-DOS вполне обеспечат такой подход. Современные компьютеры и Windows - нет. А в чём идея-то? Windows 10 не даст так просто отключить все свои службы, процессы, программы и драйверы. [/QUOTE] Так идея в том чтоб изменить алгоритм планировщика на некоторый период времени а потом вернуть все аккуратно обратно. Не вижу проблемы в принципе. Главное препятствие это то что алгоритм не только не задокументирован но и отсутствует публичный доступ к API планировщика. Это уверен можно сделать в Linux правда надо серьезно погрузиться в код ядра. По идее дальше всех в этом должны продвинуться высокочастотные торгаши на биржах.Это как раз то что им очень нужно. Попадались когда то публикации на эту тему но понятно что никто просто так не опубликует решение. Автор поднял интересную тему но поскольку не указал чем собирается управлять то и ответа нет. Хотя правильный ответ такой.Поскольку реалтайм это не про время а про гарантии а поскольку гарантий нет никаких то и windows для этого дела не пригоден. [QUOTE = dxp] Это обычное дело [/QUOTE] Спасибо.Это разумный подход со стороны разработчика. Понятно почему microsoft не рекомендует вручную привязывать потоки. Чтоб не тормозить работу других приложений. Изменено 2 ноября пользователем Sh@dow Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться