jcxz 243 18 ноября, 2022 Опубликовано 18 ноября, 2022 · Жалоба 11 часов назад, Solonovatiy сказал: БЛ может требовать асинхронности, но это не зависит от наличия или отсутствия RTOS, это требование исходя из задач и архитектуры самой БЛ. Вот именно. Об этом я и говорил. Ещё раз: "Если ваша БЛ требует асинхронности (по алгоритму её работы требует)", то реализация её на РТОС будет проще, чем самостоятельная реализация функционала асинхронности. А если она не требует асинхронности, то на кой её размазывать по нескольким задачам ОС, а не разместить в одной задаче??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Solonovatiy 0 18 ноября, 2022 Опубликовано 18 ноября, 2022 · Жалоба 6 minutes ago, jcxz said: Вот именно. Об этом я и говорил. Ещё раз: "Если ваша БЛ требует асинхронности (по алгоритму её работы требует)", то реализация её на РТОС будет проще, чем самостоятельная реализация функционала асинхронности. А если она не требует асинхронности, то на кой её размазывать по нескольким задачам ОС, а не разместить в одной задаче??? Потому, что даже то, что требует асинхронности можно сделать синхронно? Как и наоборот. Выше человек писал как пример - опрос клавиатуры, может быть выполнен синхронно, может асинхронно. Опрос клавиатуры не совсем БЛ, но чисто как пример. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tgruzd 11 18 ноября, 2022 Опубликовано 18 ноября, 2022 · Жалоба 1 час назад, jcxz сказал: А если она не требует асинхронности, то на кой её размазывать по нескольким задачам ОС, а не разместить в одной задаче??? например, у вас есть два или более процессорных ядра и алгоритм позволяет 1 час назад, jcxz сказал: по алгоритму её работы требует Пожалуй, тоже накину: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 18 ноября, 2022 Опубликовано 18 ноября, 2022 · Жалоба 1 час назад, Solonovatiy сказал: Потому, что даже то, что требует асинхронности можно сделать синхронно? Как и наоборот. Можно. И трусы можно через голову надевать. Только сложнее многократно. 1 час назад, Solonovatiy сказал: Выше человек писал как пример - опрос клавиатуры, может быть выполнен синхронно, может асинхронно. Опрос клавиатуры не совсем БЛ, но чисто как пример. Что асинхронного в опросе клавиатуры??? Похоже вы так и не поняли моего вопроса. Хотя специально цветом выделил: задача требующая по своему алгоритму асинхронности. А не потому что левая пятка быдлокодера её реализовывавшего так захотела её сделать асинхронно. Вы путаете требования алгоритма и конкретный вариант его реализации. PS: Чисто как пример попробуйте сделать и так и так: управление PMSM-мотором + HTTP(или HTTPS)-сервер в одном устройстве с одним CPU. Пример практический, а не сферический конь в вакууме. 17 минут назад, tgruzd сказал: Пожалуй, тоже накину: Вот именно. И похоже Solonovatiy путает это понятие с понятием "реализация алгоритма". 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tgruzd 11 18 ноября, 2022 Опубликовано 18 ноября, 2022 · Жалоба 18 минут назад, jcxz сказал: требующая по своему алгоритму асинхронности А можно пожалуйста пример, чтобы именно требовала. То есть была принципиально невыполнима в один поток? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Solonovatiy 0 18 ноября, 2022 Опубликовано 18 ноября, 2022 (изменено) · Жалоба 29 minutes ago, jcxz said: задача требующая по своему алгоритму асинхронности Примеры? Ничего не требует. В идеальном случае - все можно реализовать синхронно, имея достаточно производительности для этого. Если вы про некие требования жесткого РТ, то В ТЕОРИИ синхронную программу тоже можно так написать, что бы их удовлетворить. Вся вытесняющая кооперативность, это именно 29 minutes ago, jcxz said: потому что левая пятка быдлокодера её реализовывавшего так захотела её сделать асинхронно Или если словами без "дедизма" - удобно, понятно, поддерживаемо, читаемо. По сравнению с тем, что будет, если руками попытаться 1в1 функционал реализовать. Изменено 18 ноября, 2022 пользователем Solonovatiy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 18 ноября, 2022 Опубликовано 18 ноября, 2022 · Жалоба 8 минут назад, tgruzd сказал: А можно пожалуйста пример, чтобы именно требовала. То есть была принципиально невыполнима в один поток? Я вроде выше привёл. Прочитайте внимательнее предыдущий пост. Да и это вообще-то я просил от ТС привести такой пример. Который он до сих пор так и не привёл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tgruzd 11 18 ноября, 2022 Опубликовано 18 ноября, 2022 · Жалоба Мужики, я запутался уже, кто куда воюет)) 8 минут назад, Solonovatiy сказал: Ничего не требует. В идеальном случае - все можно реализовать синхронно, имея достаточно производительность. 31 минуту назад, jcxz сказал: требующая по своему алгоритму асинхронности Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 18 ноября, 2022 Опубликовано 18 ноября, 2022 · Жалоба 13 минут назад, Solonovatiy сказал: Примеры? Ничего не требует. В идеальном случае - все можно реализовать синхронно, имея достаточно производительности для этого. Что-нибудь конкретно сказать по теме можете? Я вам привёл конкретный пример, задал конкретный вопрос. А от вас опять пустой трёп.... 4 минуты назад, tgruzd сказал: Мужики, я запутался уже, кто куда воюет)) ТС с самого начала толкует о неких "БЛ", "требующих асинхронности": 15 часов назад, Solonovatiy сказал: когда БЛ начинает требовать асинхронности но так ни разу и не привёл ни одного конкретного примера такой БЛ. Один пустой трёп. Ещё и противоречит сам себе в разных постах.... Возникает законное сомнение в том, что ТС сам понимает о чём ведёт речь..... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Solonovatiy 0 18 ноября, 2022 Опубликовано 18 ноября, 2022 · Жалоба 2 minutes ago, tgruzd said: Мужики, я запутался уже, кто куда воюет)) Сначала был посыл что "требования асинхронности это желание программиста". Он сместился на то, что есть задачи, которые по своей природе не могут быть выполнены асинхронно. Теперь он обратно выпрыгнул в "ну вот программист так решил". Вы как бы можете вещи в контексте называть. А когда кто-то меняет контекст начинается не разбери 5 minutes ago, jcxz said: Что-нибудь конкретно сказать по теме можете? Я вам привёл конкретный пример, задал конкретный вопрос. А от вас опять пустой трёп.... Потому что вы либо вообще сути вопроса не поняли, либо посты набиваете. while(){ Motor(); HTTP(); } Задача решена синхронно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tgruzd 11 18 ноября, 2022 Опубликовано 18 ноября, 2022 · Жалоба По моему, по вопросу асинхронности достигнут консенсус. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 18 ноября, 2022 Опубликовано 18 ноября, 2022 · Жалоба 5 минут назад, Solonovatiy сказал: while(){ Motor(); HTTP(); } Мотор сгорел, электромобиль врезался в столб, автор сего "кода" изучает инструкцию к бензопиле на лесоповале Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Solonovatiy 0 18 ноября, 2022 Опубликовано 18 ноября, 2022 (изменено) · Жалоба 5 minutes ago, jcxz said: Мотор сгорел, электромобиль врезался в столб, автор сего "кода" изучает инструкцию к бензопиле на лесоповале Скорее начальник отдела контроля безопасности (ну или кто там допускает изделие). Но это другая тема. Но давайте почитаем материалы дела, по какой причине он сгорел? Изменено 18 ноября, 2022 пользователем Solonovatiy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tgruzd 11 18 ноября, 2022 Опубликовано 18 ноября, 2022 · Жалоба 11 минут назад, Solonovatiy сказал: while(){ Motor(); HTTP(); } Что вы хотите сказать этим псевдокодом? Жопа.Сидеть(Стул) , да, верно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Solonovatiy 0 18 ноября, 2022 Опубликовано 18 ноября, 2022 (изменено) · Жалоба 15 minutes ago, tgruzd said: Что вы хотите сказать этим псевдокодом? Жопа.Сидеть(Стул) , да, верно? Что это вопрос внутренней реализации. У вас вообще нет инфы как реализовано HTTP и контроль мотора и что там внутри? Там может быть целая микра - драйвер или скорее всего таймер многоканальный, в который надо просто заткнуть значения, может быть не блокирующая реализация HTTP сервера и т.п. И в ТЕОРИИ, да даже на практике если захотеть, можно все это нафигачить в одном потоке. Будет совсем переусложненный говнокод да, но это возможно. Псевдокодом я и показал. То что вы придумали что HTTP блокирующее и обработчик мотора не успеет отреагировать -- это домыслы. В условиях был только мотор и хттп. Та асинхронность, что будет сделана на одном ядре - это один хрен будет тоже самое, только код другой. Он один фиг будет синхронный. Можно возразить, что но вот есть прерывание по SysTimer, так он пока нет защищенного режима тоже не указ, можно вполне себе посидеть в критической секции. Чем это функционально отличается от if(isMotorHandlerTimeout){return;} через каждый чих в HTTP??? (ну кроме лютейшей говнокодовости) Пример jcxz выше с намеком на вытесняющую многозадачность, это как раз выбор программиста, он (с моей точки зрения правильный), т.к. альтернатива гораздо хуже. Но вопрос как раз про поиск этой грани и принципах ее поиска. Вот с какого момента стоит разделять таски, а когда стоит жаться в одном. Пример с очень разными и сложными задачами, еще и требующими жесткого РТ очень наглядный. Но он слишком общий и слишком очевидный. Я серьезно должен это расписывать? Изменено 18 ноября, 2022 пользователем Solonovatiy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться