-
- Д'ARMоед - скажи что-нибудь умное по теме... - Evgeny_CD(02.03.2016 17:07)
- Умное тут только одно: в любом аллокаторе есть ГЛОБАЛЬНЫЙ МЬЮТЕКС. О который все спотыкаются и тормозят. Посему пытаются часть аллокаций сделать в thread local аллокаторе, а если уж не вышло -- аллоцировать глобально. Ну и иногда отдать излишки fk0(138 знак., 02.03.2016 23:34)
- Спасибо за простое и лаконичное объяснение. Подумалось...ГЛОБАЛЬНЫЙ МЬЮТЕКС ВСЕЛЕННОЙ! Вот с его разблокирования все и началось :) - Evgeny_CD(02.03.2016 23:44 - 03.03.2016 00:14)
- Еще есть тонкость, связанная с кешем. Особенно когда он многоуровневый. - Evgeny_CD(03.03.2016 00:02)
- Какая? - fk0(03.03.2016 00:13)
- Честно - чую, что есть, но четко сформулировать не могу :( - Evgeny_CD(03.03.2016 00:15)
- Какая? - fk0(03.03.2016 00:13)
- идею, что аллокатор может представлять собой очень шуструю БД, народ топчет давно. дерево остатков(radix tree) - лишь один из предпочитаемых способов реализации memoryDB. видимо, они тоже в тренде, только с другой терминологией. TimeZoneDefault(135 знак., 02.03.2016 20:31, )
- Так так, а MMU то как это прихлопнет? Или переход от преимущественно страничной организации памяти к тому, что каждая задача сможет получить нужный ей линейный кусок памяти через этот шустрый malloc без MMU? Но все равно трансформировать память Evgeny_CD(32 знак., 02.03.2016 20:38)
- а потом GC какой-нить виртуалки будет корячиться, разгадывая хитровыделанную аллокацию.. :) TimeZoneDefault(106 знак., 02.03.2016 22:33, )
- Вот в серии Cortex-R MMU нет от слова совсем -> Даже в самых быстрых. И, сдается мне, они ковырялись в Вашей голове.... - Evgeny_CD(03.03.2016 00:37, ссылка)
- hard RT? зачем ему вообще виртуальная память, если нужно быстро парсить протоколы? - TimeZoneDefault(03.03.2016 10:29, )
- Ну как- микроядерную ОСьку прикрутить :) Evgeny_CD(21 знак., 03.03.2016 15:28)
- Евгений, а есть где-нибудь подбор встроенных ОСек и их классификация на сахаре ? - sav6622(03.03.2016 09:26)
- Мне такой пост неизвестен. Много раз порывался создать такой классификатор, но все как-то недосуг. - Evgeny_CD(03.03.2016 13:37)
- Нет MMU --> нет нормальной ОС. Запускать мощный камень с FreeRTOS? Идиотизм. - fk0(03.03.2016 08:02)
- а что плохого в связке "зверькамень+фриртос" ? ну, кроме того, что фриртос сама по себе тормозючная. - Mahagam(03.03.2016 08:35)
- Основной функцией ОС является ЗАГРУЗКА ПРОГРАММ, а не мигание светодиодом в параллельной задаче. Так вот загрузку программ без MMU сделать трудно (реаллоцировать всё нужно), а shared libraries (DLL) сделать ещё трудней (придётся для разных fk0(374 знак., 03.03.2016 12:07)
- а не всегда нужно грузить программы снаружи. кто их писать будет? сам? ну так можно просто обновить фирмварь. или воткнуть внутрь луа и исполнять юзер-код в песочнице. - Mahagam(03.03.2016 12:10)
- Ты говоришь про маленькие микроконтроллерные системы -- это там ничего грузить не нужно. Но там и такие большие процессоры не нужны. Они нужны где есть ОС, множество программ, динамически загружаемых, много стороннего кода. Может даже обновлений fk0(377 знак., 03.03.2016 12:31)
- иногда от большого проца требуется просто большая скорость. - Mahagam(03.03.2016 12:38)
- Да и если как в eCOS всё загружено и сразу -- значит под всё и сразу нужно выделить память. А её столько нет! В том и идея ОС, что программы занимают память, работают, и освобождают. Речь про ОЗУ. Но и программная память тоже -- большие системы в fk0(204 знак., 03.03.2016 12:33)
- А стек TCP/IP разве не выделяет память под каждого нового клиента через malloc? При этом никакие сторонние программы вроде как и не загружаются. При этом формально, память занимает одна программа - TCP/IP, просто она не может знать заранее сколько USSR(50 знак., 03.03.2016 13:24, )
- Ты говоришь про маленькие микроконтроллерные системы -- это там ничего грузить не нужно. Но там и такие большие процессоры не нужны. Они нужны где есть ОС, множество программ, динамически загружаемых, много стороннего кода. Может даже обновлений fk0(377 знак., 03.03.2016 12:31)
- а не всегда нужно грузить программы снаружи. кто их писать будет? сам? ну так можно просто обновить фирмварь. или воткнуть внутрь луа и исполнять юзер-код в песочнице. - Mahagam(03.03.2016 12:10)
- Это скорее поле для VxWorks. - =AlexD=(03.03.2016 09:08)
- Основной функцией ОС является ЗАГРУЗКА ПРОГРАММ, а не мигание светодиодом в параллельной задаче. Так вот загрузку программ без MMU сделать трудно (реаллоцировать всё нужно), а shared libraries (DLL) сделать ещё трудней (придётся для разных fk0(374 знак., 03.03.2016 12:07)
- а что плохого в связке "зверькамень+фриртос" ? ну, кроме того, что фриртос сама по себе тормозючная. - Mahagam(03.03.2016 08:35)
- hard RT? зачем ему вообще виртуальная память, если нужно быстро парсить протоколы? - TimeZoneDefault(03.03.2016 10:29, )
- Вообще меня бесит отсутствие аппаратной поддержки в процессорах продвинутых методов работы с памятью. Хотя бы автоматический ремап большого объекта в цельное виртуальное пространство из кучи мелких физических кусочков. И чтобы все это само Evgeny_CD(42 знак., 03.03.2016 00:04)
- Вот в серии Cortex-R MMU нет от слова совсем -> Даже в самых быстрых. И, сдается мне, они ковырялись в Вашей голове.... - Evgeny_CD(03.03.2016 00:37, ссылка)
- а потом GC какой-нить виртуалки будет корячиться, разгадывая хитровыделанную аллокацию.. :) TimeZoneDefault(106 знак., 02.03.2016 22:33, )
- ха! на сусях десять лет назад писАли www.kernel.org/doc/ols/2006/ols2006v2-pages-249-262.pdf - TimeZoneDefault(02.03.2016 20:36, )
- Спасибо! Очень интересные вещи там описаны.... - Evgeny_CD(02.03.2016 23:47 - 03.03.2016 00:01)
- Вот еще бы механизм автоматических мьютексов для SMP. Типа такого. Evgeny_CD(629 знак., 03.03.2016 00:14)
- Спасибо! Очень интересные вещи там описаны.... - Evgeny_CD(02.03.2016 23:47 - 03.03.2016 00:01)
- Так так, а MMU то как это прихлопнет? Или переход от преимущественно страничной организации памяти к тому, что каждая задача сможет получить нужный ей линейный кусок памяти через этот шустрый malloc без MMU? Но все равно трансформировать память Evgeny_CD(32 знак., 02.03.2016 20:38)
- Умное тут только одно: в любом аллокаторе есть ГЛОБАЛЬНЫЙ МЬЮТЕКС. О который все спотыкаются и тормозят. Посему пытаются часть аллокаций сделать в thread local аллокаторе, а если уж не вышло -- аллоцировать глобально. Ну и иногда отдать излишки fk0(138 знак., 02.03.2016 23:34)
- malloc используют только ламиры! В ембеддед никак нельзя malloc! MISRA запрещает! Только static char A[50000] наш единственно правильный путь, когда мы точно знаем, что в нужном состоянии программы A[123] и A[124] содержат нужную нам переменную fk0(10 знак., 02.03.2016 09:24)
- В массиве чаров два элемента с последовательными индексами содержат int - а потом ракеты падают... - Evgeny_CD(02.03.2016 17:10)
- Д'ARMоед - скажи что-нибудь умное по теме... - Evgeny_CD(02.03.2016 17:07)