реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> ОСРВ как тема кандидатской диссертации, прошу наставлений
SyncLair
сообщение Nov 2 2012, 15:13
Сообщение #31


Местный
***

Группа: Свой
Сообщений: 209
Регистрация: 6-01-12
Пользователь №: 69 197



Цитата(AlexandrY @ Nov 1 2012, 15:39) *
Ну инверсия и произошла. Низкоприоритетная задача в результате остановила важные задачи по оперативному управлению.

Теперь вопрос. Как MMU могло бы помочь этой проблеме? Ответите и докторская у вас в кармане. biggrin.gif


Конкретно тут -- никак. Тем не менее наличие MPU наверное позволило гарантировать что ядро системы не убиваемо, а раз ядро не убиваемо, то высокоприоритетный процесс-загрузчик может быть активирован соответвенно активировав его систему можно было перезагрузить/перепрошить или чего то подобное. Хотя конечно всегда можно тупо соседним контроллером сделать RESET и вперёд!



Цитата(Mahagam @ Nov 1 2012, 13:51) *
а кто вам сказал что если есть MPU - то сразу появляется надёжность от быдлокода?

то есть к доказательству надёжности каждой строчки проекта надо ещё и доказать надёжность дополнительного кода поддержки MPU?

Если ядро системы защишено через MPU, то в крайнем случае быдлокод можно приостановить. Приостановить его может более высокоприоритетный процесс-контролёр. Его тоже конечно надо ооочень тщательно проектировать!

Да доказываем надёжность ядра и надёжность CPU support package куда включается управление MPU!

Сообщение отредактировал SyncLair - Nov 2 2012, 15:14


--------------------
Go to the top of the page
 
+Quote Post
Kopa
сообщение Nov 2 2012, 18:33
Сообщение #32


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(wedmeed @ Nov 1 2012, 10:15) *
Я Вас понял.
Виртуальные машины вещь очень сильная, но и расточительная. Когда люди говорят о микроконтроллерах - часто это связано с маломощными платформами и ужатыми ресурсами.
...

Предлагаю для ознакомления один из ресурсов где есть "определённое" обсуждение данного и смежных вопросов по вашей теме Форт форум Читайте, обсуждайте если сочтёте полезным экспериментируйте и делайте выводы.

Сообщение отредактировал Kopa - Nov 2 2012, 18:34
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Nov 5 2012, 07:00
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



QUOTE (SyncLair @ Nov 2 2012, 18:13) *
Если ядро системы защишено через MPU, то в крайнем случае быдлокод можно приостановить. Приостановить его может более высокоприоритетный процесс-контролёр. Его тоже конечно надо ооочень тщательно проектировать!


быдлокод он такой быдлокод. вот какая-нить задача позахватывает мютексов на периферию и не отдаст. и всё. и вся защищённая система станет колом. нет у неё юзера с Ctrl-Atl-Del для того чтобы снять тупую задачу.


Go to the top of the page
 
+Quote Post
SyncLair
сообщение Nov 6 2012, 19:15
Сообщение #34


Местный
***

Группа: Свой
Сообщений: 209
Регистрация: 6-01-12
Пользователь №: 69 197



Цитата(Mahagam @ Nov 5 2012, 11:00) *
быдлокод он такой быдлокод. вот какая-нить задача позахватывает мютексов на периферию и не отдаст. и всё. и вся защищённая система станет колом. нет у неё юзера с Ctrl-Atl-Del для того чтобы снять тупую задачу.

Значит эта задача сидит в функциях что пишут на перефирию. Значит она не вызывает функцию программного ватчдога. Значит снимаем эту задачу, отрываем у неё мьютексы, периферию делаем init() и всё.


Юзера нет, зато есть другие процессы которые а)как супервизор её контролируют б) после 100ой попытки длиной в 10мсек взять мьютекс на перифирию, перезапускают модуль перифирии, а при перезапуске модуля все задачи которые его юзают получают фиг... ой то есть FALSE. biggrin.gif



--------------------
Go to the top of the page
 
+Quote Post
wedmeed
сообщение Nov 8 2012, 06:45
Сообщение #35


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 5-04-11
Из: г.Саратов
Пользователь №: 64 137



Цитата(sasamy @ Nov 1 2012, 10:43) *
В теме говорилось о том что "Только придется среду исполнения портировать", так вот ее не обязательно портировать - ЯВУ (Haskell по ссылке) используется для создания прототипа микроядра

Прошу прощения, я не сразу понял суть. Идея в том , чтобы использовать ЯВУ для мат. доказательства правильности работы ядра (или хотя бы его алгоритмов)?

Цитата(Kopa @ Nov 2 2012, 21:33) *
Форт форум

Основное преимущество форта (говорим про быстродействие) - в малом объеме программ на нем? За счет отсутствия необходимости частой подкачки?



Теперь про L4. Я не особо силен в иностранном, поэтому чтобы вникнуть воспользовался этим: обзор.
Есть пара вопросов:
Синхронная передача сообщений означает что оба процесса должны одновременно быть в режимах приемника (один) и передатчика (другой). То есть для передачи оба процесса должны сменить состояние и отдать управление ядру, так?
Наличие многоуровневых менеджеров памяти. То есть аппаратно виртуализацию/защиту поддерживает только менеджер высшего уровня (в ядре L4)? В остальных виртуализация программна и менеджер работает в usermode? Например, ОС, работающая поверх L4 не имеет внутри абсолютных защит между своими процессами?
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Nov 8 2012, 07:26
Сообщение #36


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



QUOTE (SyncLair @ Nov 6 2012, 22:15) *
Значит эта задача сидит в функциях что пишут на перефирию. Значит она не вызывает функцию программного ватчдога. Значит снимаем эту задачу, отрываем у неё мьютексы, периферию делаем init() и всё.


Юзера нет, зато есть другие процессы которые а)как супервизор её контролируют б) после 100ой попытки длиной в 10мсек взять мьютекс на перифирию, перезапускают модуль перифирии, а при перезапуске модуля все задачи которые его юзают получают фиг... ой то есть FALSE. biggrin.gif


вы сути не поняли: от быдлокода нет защиты. и никакие MMU/MPU не помогут. это всё для самозащиты системы от _внешних_ программ.
Go to the top of the page
 
+Quote Post
SyncLair
сообщение Nov 8 2012, 07:36
Сообщение #37


Местный
***

Группа: Свой
Сообщений: 209
Регистрация: 6-01-12
Пользователь №: 69 197



Цитата(Mahagam @ Nov 8 2012, 11:26) *
вы сути не поняли: от быдлокода нет защиты. и никакие MMU/MPU не помогут. это всё для самозащиты системы от _внешних_ программ.

Видимо действительно не понял, а разве внешняя программа не есть равно потенциальный быдлокод?



--------------------
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Nov 8 2012, 08:13
Сообщение #38


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



QUOTE (SyncLair @ Nov 8 2012, 10:36) *
Видимо действительно не понял, а разве внешняя программа не есть равно потенциальный быдлокод?


в случае когда я сам себе код пишу - мне не от чего защищаться. если я подразумеваю возможность запуска внешний приложений - я буду защищаться параноидально. но много систем с многозадачностью такой возможности не предусматривают
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 8 2012, 08:47
Сообщение #39


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(wedmeed @ Nov 8 2012, 08:45) *
Синхронная передача сообщений означает что оба процесса должны одновременно быть в режимах приемника (один) и передатчика (другой). То есть для передачи оба процесса должны сменить состояние и отдать управление ядру, так?


Кстати о передаче сообщений.
Вот пример ошибки с которой столкнулся вот прямо сегодня.
В применяемой операционке нет очередей. Вернее нет возможности послать в очередь из ISR.
Пришлось применить установку простого флага. Вполне подходящая процедура, а главное быстрая (что и подвело)
И все было хорошо и протестировано.
Но вот прошел год и понадобилось в программу ввести новую задачу и поменять распределение приоритетов у задач.
И начал сбоить тот драйвер который работал с флагом.
Оказалось что задача драйвера стала прерываться другой задачей и не успевать отслеживать флаг в результате чего на несколько установок флага приходилось одно считывание. Данные стали пропадать.

Так вот L4 это сплошное заумное теоретизирование никакого отношения к реальному риалтайму и RTOS не имеющее.
RTOS это детерминизм, профилирование, и замеры. Все силы направлены на обеспечение абсолютного быстродействия.
Отсюда и вытекают большинство компромиссов и ошибок.
Поработайте лучше над этим. Будет хоть какая-то польза обществу. wink.gif

Go to the top of the page
 
+Quote Post
sasamy
сообщение Nov 8 2012, 11:46
Сообщение #40


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(wedmeed @ Nov 8 2012, 10:45) *
Теперь про L4. Есть пара вопросов:


Сразу оговорюсь - я не специалист по L4 и интересовался только чисто практически - что можно поиметь с того что есть на данный момент - портирование микроядра, L4Linux

Цитата
Синхронная передача сообщений означает что оба процесса должны одновременно быть в режимах приемника (один) и передатчика (другой). То есть для передачи оба процесса должны сменить состояние и отдать управление ядру, так?


Да. Если интересует что-то по L4 на родном языке - обратитесь лучше сюда

http://l4os.ru/forum/

Alman - настоящий фанат L4

Цитата
ОС, работающая поверх L4 не имеет внутри абсолютных защит между своими процессами?


Систему можно построить по-разному, например в L4Linux процессы Linux - это задачи микроядра работающие каждый в отдельном адресном пространстве, а все системные вызовы Linux работают через IPC микроядра.
Go to the top of the page
 
+Quote Post
SyncLair
сообщение Nov 8 2012, 14:34
Сообщение #41


Местный
***

Группа: Свой
Сообщений: 209
Регистрация: 6-01-12
Пользователь №: 69 197



Цитата(AlexandrY @ Nov 8 2012, 12:47) *
Кстати о передаче сообщений.
Вот пример ошибки с которой столкнулся вот прямо сегодня.
В применяемой операционке нет очередей. Вернее нет возможности послать в очередь из ISR.

Так вот L4 это сплошное заумное теоретизирование никакого отношения к реальному риалтайму и RTOS не имеющее.


Так вот, создавайте высокоприоритетный поток, посылайте ему СИНХРОННОЕ сообщение из ISR а уж он затем пусть послылает асинхронное сообщение драйверу. Да -- согласен накладные расходы. Но никто не скажет что такая схема не обладает реалтаймом ).



--------------------
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 8 2012, 15:58
Сообщение #42


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(SyncLair @ Nov 8 2012, 16:34) *
Так вот, создавайте высокоприоритетный поток, посылайте ему СИНХРОННОЕ сообщение из ISR а уж он затем пусть послылает асинхронное сообщение драйверу. Да -- согласен накладные расходы. Но никто не скажет что такая схема не обладает реалтаймом ).


Про "СИНХРОННОЕ сообщение из ISR" не понял. Звучит так словно ISR должна тормознуть пока какой-то поток не примет сообщение.
В какой RTOS это есть и как называется вызов API?
Go to the top of the page
 
+Quote Post
SyncLair
сообщение Nov 13 2012, 15:51
Сообщение #43


Местный
***

Группа: Свой
Сообщений: 209
Регистрация: 6-01-12
Пользователь №: 69 197



Цитата(AlexandrY @ Nov 8 2012, 19:58) *
Про "СИНХРОННОЕ сообщение из ISR" не понял. Звучит так словно ISR должна тормознуть пока какой-то поток не примет сообщение.
В какой RTOS это есть и как называется вызов API?


Это есть в L4 ядрах. Не ISR тормозит, а ISR отправляет сообщение, если что либо хочет принять "псевдосообщение от ISR" . Перед тем как его принять поток должен вызвать стандартный ipc_recv со спец идентификатором который обозначает номер прерывания, номер ловушки, номер ещё чего либо.

Interrupts are delivered as an IPC call to the interrupt handler thread (i.e., the pager of the interrupt thread).

Сообщение отредактировал SyncLair - Nov 13 2012, 15:52


--------------------
Go to the top of the page
 
+Quote Post
Kopa
сообщение Nov 18 2012, 13:51
Сообщение #44


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Интересный пост
RetroBSD on Maximite
Go to the top of the page
 
+Quote Post
wedmeed
сообщение Nov 22 2012, 10:20
Сообщение #45


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 5-04-11
Из: г.Саратов
Пользователь №: 64 137



Я уже давно тут не отписывался, так как пока хочу лучше изучить предложенные решения (конкретно L4 и Forth). Но параллельно встречаются и другие вопросы, которые хотелось бы обсудить.

1) Какие способы оценки качества (а в случае моей целевой системы читать - надежности) существуют и могут быть актуальны. Последний классический учебник который я встречал (Майерс) датировани 1980 годом. Кнниги Липаева классическими не называют, да и основываются на совсем другом классе систем (большие, сложны, распределенные). То, что предлагают современные стандарты (чаще взаимодействуйте при разработке с сертифицирующим органом) не устраивает в связи с наличием человеческого фактора и отсутствием математически обоснованных методик.
Грубо говоря - как мне по науке доказать что то или иное решение принесет лучший результат.
2) Экзоядро. Я давно о нем слышал, но только недавно нашел хорошее объяснение, которое меня немного вдохновило. Еще раз про целевую систему: нет мму/мпу, памяти мало (дробить на страницы тяжело), не меняющийся набор программ, можно выполнять инструкции из флеш, много периферии, надо работать быстро, преобладание цикличных задач, вредоносного кода нет. Все так и подталкивает - отказаться от процессов в сторону потоков, написать простейшую переключалку по таймеру, а все остальное - в библиотеках. Защита - за счет инкапсуляции библиотек (ну и надеяться что в будущем к платформе пришьют мпу).
Кто сталкивался, поделитесь соображениями/ссылками/книжками.
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 07:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.0151 секунд с 7
ELECTRONIX ©2004-2016