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

 
 
> ОСРВ как тема кандидатской диссертации, прошу наставлений
wedmeed
сообщение Oct 29 2012, 05:40
Сообщение #1


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

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



Я только поступил в апирантуру. Сразу оговорюсь что волею судьбы научные интересы моего научного руководителя и моей работы (читать - практической базы) оказались разные, хоть и в одной сфере. В связи с этим разбираться в выбранной теме приходится самостоятельно.
В этом году я защитил магистерскую по теме проектирования ПО для микроконтроллеров без ОС, но с планировщиком, применительно к системам автоматического управления (САУ). Скажу честно, хоть было и новое в этой работе, по большей части я просто изучал и приглядывался к принципам построения ОС.
В своей кандидатской работе я собираюсь объединить практику и теорию. На работе стоит задача переписать ПО для САУ на новый МК. Не возбраняется введение ОСРВ (раньше подзадачи тупо выполнялись в цикле определенной длительности). Естественно, целой ОСРВ там и не надо, ПО объемом <256 Кб. Но надо:
-многозадачность (многопоточность);
-защита программ друг от друга (виртуализация, МК без MMU), скорее всего аппаратными средствами;
-по возможности оптимизация.
Я не претендую на звание разработчика полноценной ОСРВ. Во избежание споров, возникающих даже из-за трактовок определения ОСРВ, и из-за использования в работе аппаратных средств назову её просто исполнительной средой (ИС).

Итак, моя работа будет состоять:
-Определение критериев надежности ПО (основные источник - статьи Шеремета В.П., кники Липаева В.В. и стандарты типа КТ178) и описание того, как ИС позволит их увеличить для задач моего класса.
-Выбор оптимального алгоритма планирования для специфических задач САУ (всегда есть циклические процессы ввод-обработка-вывод вместе с обычными процессами). Источники пока - Таненбаум, Курниц и интернеты, википедии.
-Определение специфики моего класса задач в необходимости абстракций (файловой системы не нужно, проецирования файлов в память не нужно, работы с сетью не нужно и т.п.). Написание ИС.
-Пример использования ИС на конкретном примере (надеюсь еще и получить внедрение).

Вопросы:
Какие еще материалы посоветуете по надежности ПО?
Какие материалы посоветуете по распространенным ОСРВ (RTX Keil, FreeRTOS, scmRTOS (на форуме не нашел, каюсь), MicroC/OS-II, uClinux, QNX, VxWorks, LynxOS) и их основным принципам? Именно основным, так как не хочу нарваться на уже изобретенный велосипед, а большинство статей носят обзорный характер (например, Курниц про FreeRTOS) и не рассказывают как устроен алгоритм виртуализации для МК без MMU, есть ли он вообще и прочие тонкости.
Ну и, собственно, ваше мнение по описанной проблеме. Что добавить/убавить, на чем заостриться, как облагородить тему для обретения значимости уровня кандидатской.

Сообщение отредактировал wedmeed - Oct 29 2012, 07:55
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AlexandrY
сообщение Oct 29 2012, 07:52
Сообщение #2


Ally
******

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



Цитата(wedmeed @ Oct 29 2012, 07:40) *
-защита программ друг от друга (виртуализация, МК без MMU), скорее всего аппаратными средствами;

Какие еще материалы посоветуете по надежности ПО?
Какие материалы посоветуете по распространенным ОСРВ (RTX Keil, FreeRTOS, scmRTOS (на форуме не нашел, каюсь), MicroC/OS-II, uClinux, QNX)
(например, Курниц про FreeRTOS) и не рассказывают как устроен алгоритм виртуализации для МК без MMU,


Так MMU и есть единственное аппаратное средство виртуализации. Нет MMU - нет виртуализации.
Из перечисленных вами RTOS только QNX поддерживает виртуализацию.
Остальные свою надежность обосновывают компактностью. Т.е. чем меньше объем исходников тем меньше ошибок. И в принципе правы.
Самой надежной будет пожалуй в таком случае scmRTOS. Ну и самой бесполезной wink.gif
Go to the top of the page
 
+Quote Post
wedmeed
сообщение Oct 29 2012, 08:04
Сообщение #3


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

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



Цитата(AlexandrY @ Oct 29 2012, 11:52) *
Из перечисленных вами RTOS только QNX поддерживает виртуализацию.


Добавил еще VxWorks, LynxOS. А они поддерживают?
Собственно, MMU я и собираюсь аппаратно организовать. Литературы о их структуре я тоже не встречал, только в составе руководств на микропроцессоры, буду рад если кто подскажет.
Кстати, один из вопросов в том, насколько польза от устранения класса ошибок ПО будет больше ненадежности, внесенной добавлением микросхем.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Oct 29 2012, 08:41
Сообщение #4


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(wedmeed @ Oct 29 2012, 12:04) *
Собственно, MMU я и собираюсь аппаратно организовать.

А смысл?
Не говоря уже про реализуемость.
Если нужен MMU (а точно нужен?) - так и берите соответствующий кристалл.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
wedmeed
сообщение Oct 29 2012, 09:00
Сообщение #5


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

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



Цитата(MrYuran @ Oct 29 2012, 12:41) *
Если нужен MMU (а точно нужен?) - так и берите соответствующий кристалл.

Так стоит задача на работе. Нужно реализовать на конкретном МК (5 приемка, отечественный, большой набор встроенных нужных модулей). Это почему нельзя взять другой кристалл.
Нужен ли MMU? Как писалось выше - единственный способ виртуализироваться. А как еще защититься от того, что программа влезет в чужую память?

Про DMA спасибо, не думал. Если он не работает с внешней шиной, то придется защищать доступ к нему в принципе, делать через системные вызовы.
Кэша у конкретного МК нет (1887ВЕ3Т).

Сообщение отредактировал wedmeed - Oct 29 2012, 09:06
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Oct 29 2012, 09:26
Сообщение #6


Ally
******

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



Цитата(wedmeed @ Oct 29 2012, 11:00) *
Нужен ли MMU? Как писалось выше - единственный способ виртуализироваться. А как еще защититься от того, что программа влезет в чужую память?


Ну есть единственный выход, это писать прикладной софт на языке поддерживающем защиту памяти софтварно.
LUA, Java ME, .NET MF ...
Только придется среду исполнения портировать.

Цитата(wedmeed @ Oct 29 2012, 11:15) *
Какие еще есть способы защитить программу? Как это делают FreeRTOS и остальные без MMU.

Офтоп. А, например, QNX, имеет порты на МК без MMU (напр. для Cortex-M3 оно опционально)?


QNX порты на MMU-less не имеет.
Из серьезных осей чипы без MMU поддерживают: ThreadX, Symbian, VxWorks, Nucleus Plus, MQX ... Выбирайте. wink.gif
Go to the top of the page
 
+Quote Post
sasamy
сообщение Oct 29 2012, 10:23
Сообщение #7


Знающий
****

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



Цитата(AlexandrY @ Oct 29 2012, 13:26) *
Ну есть единственный выход, это писать прикладной софт на языке поддерживающем защиту памяти софтварно.
LUA, Java ME, .NET MF ...
Только придется среду исполнения портировать.


среду исполнения не обязательно портировать

http://www.ertos.nicta.com.au/research/l4....ed/approach.pml

но в целом направление верное - использовать ЯВУ
Go to the top of the page
 
+Quote Post
SyncLair
сообщение Oct 29 2012, 15:30
Сообщение #8


Местный
***

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



Цитата(sasamy @ Oct 29 2012, 14:23) *


L4 -- это семейство ядер почти все из них ориентированы на наличие MMU. И вообще наверное скорее следует говорить о MPU! Поэтому Вас не поддерживаю в этом, а вот в том чтобы "использовать ЯВУ" с защитой -- это да!
На мой взгляд java и Lua лучшие кандидаты.


Цитата(sasamy @ Oct 29 2012, 16:06) *
А виртуализацией пользуются многие, например
http://www.ok-labs.com/releases/release/ok...quipment-from-k


Опять таки L4-тое ядро.

Цитата(wedmeed @ Oct 29 2012, 09:40) *
Но надо:
-многозадачность (многопоточность);
-защита программ друг от друга (виртуализация, МК без MMU), скорее всего аппаратными средствами;
-по возможности оптимизация.


1. По надёжности -- Нет MPU -- нет надёжности от быдлокода!
2. По методикам -- различные стандарты требуют куча всего для того чтобы код был надёжным.
То есть направо не ходить, налево не ходить, компиляторными нестандартными фишками не пользоваться,
память выделять так, именовать так и так далее -- все эти требования выглядят как ритуал который впринципе помогает кодить среднеквалифицированым специалистам. НО! это всё не даёт 100% гарантии на выполнение!
ДЛЯ доказательства того что ВСЯ система надёжна нужно доказывать всё до последнего байта!

Если есть MPU -- то для доказательства надёжности нужно доказать что ядро+аппаратный механиз защиты памяти надёжны (L4 и прочее тут как раз рулит!) и то что нужные Вам высокоприритетные важные процессы надёжны!

3. РТОС без ММU c "гарантирванным временем вытеснения!" даёт возможность проводить математическое докозательство того что при любых условях самые высокоприоритетные процессы-"элита" получат себе нужное быстродействие а система уложится в отведённые дедлайны!
ВСЁ!


Сообщение отредактировал SyncLair - Oct 29 2012, 15:18


--------------------
Go to the top of the page
 
+Quote Post
wedmeed
сообщение Oct 29 2012, 18:32
Сообщение #9


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

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



Цитата(SyncLair @ Oct 29 2012, 18:30) *
MPU!

Это если необходимо защищать встроенную память. Если пользуется внешняя - можно и MMU, правда выглядеть он будет довольно монстроидально. Исходя из задачи - да, MPU достаточно и гораздо оптимальнее.

Цитата(SyncLair @ Oct 29 2012, 18:30) *
"использовать ЯВУ"

Насколько сложно портировать среду явы?
Сложно ли гарантировать корретность портирования и отсутствие ошибок в среде?
Насколько понимаю, это накладные расходы x3 минимум?

З.Ы. На яве никогда не писал и, тем более, не портировал.
Go to the top of the page
 
+Quote Post
SyncLair
сообщение Oct 30 2012, 19:59
Сообщение #10


Местный
***

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



Цитата(wedmeed @ Oct 29 2012, 22:32) *
З.Ы. На яве никогда не писал и, тем более, не портировал.

ЯВУ не означает ТОЛЬКО ява. Ничем помочь не могу у самого реальный опыт ноль! Но на то она и диссертация....


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


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

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



Цитата(SyncLair @ Oct 30 2012, 22:59) *
ЯВУ не означает ТОЛЬКО ява.

Я Вас понял.
Виртуальные машины вещь очень сильная, но и расточительная. Когда люди говорят о микроконтроллерах - часто это связано с маломощными платформами и ужатыми ресурсами.
С другой стороны, у меня есть специфицеская задача со специфическим набором функций. Чтобы сократить расходы на интерпретацию байт-кода, очень пригодился бы такой же специфический набор функций. Но разрабатывать новый язык я не возмусь. Даже если он выродится в небольшой набор скриптов.
На мой взгляд, маленькая простенькая ОС с MMU/MPU выглядет гораздо элегантнее. Даже не ОС, диспетчер. Какие еще преимущества кроме контроля исполнения дают ЯВА-подобные среды?

Почему микроконроллеры с флэшью >64 Кб не оснащают MMU/MPU? Ведь уже в таком объеме можно наворотить довольно сложную систему. Насколько я понимаю это, по крайней мере MPU, не такой сложный модуль, который можно сделать даже не влезая в ядро (просто мониторить шину и генерировать прерывания-ловушки).

Сообщение отредактировал wedmeed - Nov 1 2012, 06:16
Go to the top of the page
 
+Quote Post
Snaky
сообщение Nov 1 2012, 06:29
Сообщение #12


Mute Beholder
***

Группа: Свой
Сообщений: 260
Регистрация: 4-04-07
Из: Третья планета от Солнца
Пользователь №: 26 754



Цитата(wedmeed @ Nov 1 2012, 17:15) *
Я Вас понял. Виртуальные машины вещь очень сильная... Какие еще преимущества кроме контроля исполнения дают ЯВА-подобные среды?

По-моему не поняли. ЯВУ - язык высокого уровня. Си, например. В отличие от ассемблера который низкоуровневый.


--------------------
Common sense is not so common.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- wedmeed   ОСРВ как тема кандидатской диссертации   Oct 29 2012, 05:40
|- - AlexandrY   Цитата(wedmeed @ Oct 29 2012, 10:04) Доба...   Oct 29 2012, 08:33
||- - sasamy   Цитата(AlexandrY @ Oct 29 2012, 12:33) Ед...   Oct 29 2012, 08:38
|- - wedmeed   Цитата(AlexandrY @ Oct 29 2012, 13:26) Th...   Oct 29 2012, 09:35
|||- - wedmeed   Цитата(Snaky @ Nov 1 2012, 09:29) ЯВУ - я...   Nov 1 2012, 06:59
|||- - sasamy   Цитата(wedmeed @ Nov 1 2012, 10:59) Тогда...   Nov 1 2012, 07:43
|||- - wedmeed   Цитата(sasamy @ Nov 1 2012, 10:43) ЯВУ (H...   Nov 1 2012, 11:06
|||- - sasamy   Цитата(wedmeed @ Nov 1 2012, 15:06) Почем...   Nov 1 2012, 11:14
||||- - wedmeed   Цитата(sasamy @ Nov 1 2012, 10:43) В теме...   Nov 8 2012, 06:45
||||- - AlexandrY   Цитата(wedmeed @ Nov 8 2012, 08:45) Синхр...   Nov 8 2012, 08:47
|||||- - SyncLair   Цитата(AlexandrY @ Nov 8 2012, 12:47) Кст...   Nov 8 2012, 14:34
|||||- - AlexandrY   Цитата(SyncLair @ Nov 8 2012, 16:34) Так ...   Nov 8 2012, 15:58
|||||- - SyncLair   Цитата(AlexandrY @ Nov 8 2012, 19:58) Про...   Nov 13 2012, 15:51
||||- - sasamy   Цитата(wedmeed @ Nov 8 2012, 10:45) Тепер...   Nov 8 2012, 11:46
|||- - AlexandrY   Цитата(wedmeed @ Nov 1 2012, 13:06) Челов...   Nov 1 2012, 11:39
|||- - SyncLair   Цитата(AlexandrY @ Nov 1 2012, 15:39) Ну ...   Nov 2 2012, 15:13
|||- - Mahagam   QUOTE (SyncLair @ Nov 2 2012, 18:13) Если...   Nov 5 2012, 07:00
|||- - SyncLair   Цитата(Mahagam @ Nov 5 2012, 11:00) быдло...   Nov 6 2012, 19:15
|||- - Mahagam   QUOTE (SyncLair @ Nov 6 2012, 22:15) Знач...   Nov 8 2012, 07:26
|||- - SyncLair   Цитата(Mahagam @ Nov 8 2012, 11:26) вы су...   Nov 8 2012, 07:36
|||- - Mahagam   QUOTE (SyncLair @ Nov 8 2012, 10:36) Види...   Nov 8 2012, 08:13
||- - AlexandrY   Цитата(wedmeed @ Nov 1 2012, 08:15) , мал...   Nov 1 2012, 09:43
||- - Kopa   Цитата(wedmeed @ Nov 1 2012, 10:15) Я Вас...   Nov 2 2012, 18:33
|- - Mahagam   QUOTE (SyncLair @ Oct 29 2012, 18:30) 1. ...   Nov 1 2012, 09:51
- - sasamy   Цитата(wedmeed @ Oct 29 2012, 09:40) ПО о...   Oct 29 2012, 09:03
|- - wedmeed   Какие еще есть способы защитить программу? Как это...   Oct 29 2012, 09:15
|- - MrYuran   Цитата(wedmeed @ Oct 29 2012, 13:15) Каки...   Oct 29 2012, 09:35
||- - wedmeed   Цитата(MrYuran @ Oct 29 2012, 13:35) От к...   Oct 29 2012, 09:53
||- - AlexandrY   Цитата(wedmeed @ Oct 29 2012, 11:53) А во...   Oct 29 2012, 10:42
||- - sasamy   Цитата(AlexandrY @ Oct 29 2012, 14:42) А ...   Oct 29 2012, 12:06
|- - Cosmojam   Цитата(wedmeed @ Oct 29 2012, 12:15) Каки...   Oct 29 2012, 14:10
- - Aner   Да уж! ... вообще то средне-инженерная задача,...   Nov 1 2012, 13:38
- - Kopa   Интересный пост RetroBSD on Maximite   Nov 18 2012, 13:51
- - wedmeed   Я уже давно тут не отписывался, так как пока хочу ...   Nov 22 2012, 10:20
- - AlexandrY   Цитата(wedmeed @ Nov 22 2012, 12:20) 1) К...   Nov 22 2012, 14:53
- - SyncLair   Цитата(wedmeed @ Nov 22 2012, 14:20) Я уж...   Nov 22 2012, 15:06


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

 


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


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