Цитата(zltigo @ Nov 28 2016, 18:53)
Как правило существует больше одного способа сделать дело. Но поскольку есть система, то логично решать поставленные задачи однотипно и понятно. Создать задачу и прибить ее это в духе операционной системы и соответственно понятно.
"Смешались в кучу кони, люди...."
Создание задач и
управление ими не имеет никакого отношения к
менеджеру памяти. ОС может быть, а менеджер - отсутствовать, как и наоборот.
Менеджер не имеет никакого прямого отношения к ОС, она вообще может его не использовать (посмотрите например на uCOS).
Соответственно - говорить о каком-то "духе операционной системы" - по меньшей мере странно.
Цитата(zltigo @ Nov 28 2016, 18:53)
Изверетелись, как я вижу весь в попытках объснить "ненужность"
и начали просто хамить
.
Смотримся в зеркало:
Цитата(zltigo @ Nov 28 2016, 15:59)
Это у Вас в Ваших настольных
системах однократно.
Цитата(zltigo @ Nov 28 2016, 18:53)
Ну и на сладкое вообще глупость, про экономию памяти - динамическое выделение памяти как раз и позволяет ЭКОНОМИТЬ память в системах с ограниченными ресурсами.
Вот это как раз и есть ГЛУПОСТЬ.
Каким образом экономят объясните пожалуйста??? Количество бит в байтах увеличивает?
Именно обычное дин. выделение, а не выделение блоков одинакового размера по Вашему экономит?
Т.е. - что такое фрагментация дин. памяти Вы как бы не задумывались никогда?
Цитата(haker_fox @ Nov 29 2016, 15:26)
Воссоздать всю эту "мерзкую" обстановку из электромагнитных полей у себя сможет далеко не каждая сертифицированная лаборатория. А симитировать какой-нить транс на 250 МВа вообще невозможно, не имея такой же у себя (или дорого в десятой степени)
Ну естественно воссоздание насколько это возможно.
Цитата(haker_fox @ Nov 29 2016, 15:26)
Обычно в куче выделяются массивы данных. Зачем это делать динамически во встраиваемой системе? Но ведь сама FreeRTOS изначально диктует динамическое выделение структур: стек, TCB... Статически всё это выделять можно только с 9 версии, если я не ошибаюсь.
На FreeRTOS свет клином не сошёлся. Есть и другие ОС, где разработчики постарались отделить мух от котлет и не валить всё в одну кучу, а предоставить возможность разработчику самому решать как ему оптимальнее распределить память. Та же uCOS например. Во FreeRTOS до этого додумались почему-то только к 9-й версии.
Цитата(haker_fox @ Nov 29 2016, 15:26)
Также удобно по ходу программы писать что-то в стиле
Код
type_t * ptr = new type_t[ WANT_SIZE]
,
использовать массив, а затем удалить его, нежели заранее создавать его статически.
А теперь представьте, что это работает не в игрушке у Вас на столе, с которой Вы поигрались и потом выключили, ну а если что зависло - нажали кнопочку RESET. А что это система, работает за много тыс. км где-нить на месторождении в тайге у заказчика, куда и дороги-то нету. И что таких устройств не одно, а их тысячи работают. И работают они в режиме 24/7. И что задача под ОС крутится не одна, а с десяток или больше. И что задачи эти обрабатывают события асинхронные друг относительно друга. И что требования к памяти у этих задач разные: одна выделяет большими блоками редко, другая часто и мелкими, третья - вообще разные размеры запрашивает.
И тогда после продолжительной работы, у Вас окажется что вроде и памяти-то свободной ещё много, но она вся оказалась так фрагментирована, что задача которой нужны мелкие блоки их получить может, а вот задаче требующей большие блоки будет отказ, так как хоть памяти вагон ещё свободной, но сплошного блока требуемого размера нет.
Вот тут и идёт лесом всё удобство....
Конечно если памяти в устройстве с избытком, то здесь другое дело. Но мне всё время приходилось работать над системами, где ресурсов в обрез.