roboforum.ru

Технический форум по робототехнике.

Микрооперационная система реального времени

Re: Микрооперационная система реального времени

executer » 27 мар 2009, 23:41

А можно простыми словами чем ОС отличается от системы которая каждые 2 мс вызывает подпрограмму №1 и каждую 5-ю мс - подпрограмму №2??

Re: Микрооперационная система реального времени

RoboTok » 28 мар 2009, 00:00

А если программа № 1 выполняется дольше 5мс ?
Или одна из задач вошла в цикл ожидания флага на долго ?

Re: Микрооперационная система реального времени

executer » 28 мар 2009, 00:39

Ааа, разница в том что в моем варианте разработчик должен позаботится о том чтобы подпрограмма успела, а если ОС - то задачи большие а ОС сама их по кусочку выполняет?? Шото я сегодня не догоняю :o

Re: Микрооперационная система реального времени

RoboTok » 28 мар 2009, 00:58

Ну вот вам пример фишки, которую самому писать гиморойно.

У нас задача ждёт флаг в цикле.
И в цикл вставлена функция delay и проверка флага.
Только delay не вставляет тупо nop-ы, передаёт управление ОС и ОС уже переключает на другую задачу управление.

В результате мы можем спокойно ожидать флаги не останавливая весь МК.

Re: Микрооперационная система реального времени

blindman » 28 мар 2009, 07:02

Сергей писал(а):Я думаю следует также упомянуть о наличии\отсутствии контроллера виртуальной памяти.

Это скорее свойство аппаратной платформы, чем ОС - на процессоре без MMU виртуальную память вряд ли можно организовать, а система с MMU может и не иметь виртуальной памяти.

В любом случае список что я привел не полный.

Re: Микрооперационная система реального времени

bolt » 28 мар 2009, 11:34

...ОС сама их по кусочку выполняет??

Ага и Win не исключение - это тож RTS, только квантует задачи на более мелкие кусочки, поскольку МК более быстрый.

Re: Микрооперационная система реального времени

mandigit » 28 мар 2009, 11:51

ОС

А что скрывается под этой аббревиатурой?
Какой функционал несет операционная система?

Просто Большая Злая Муха, которая жужжит? :crazy:

Если рассматривать ОС с точки зрения робототехника, то можно представить, что она дает следующий функционал:

- разделение вычислительной мощности между процессами
- управление памятью
- взаимодействие между процессами
- взаимодействие с ресурсами процессора (таймеры, компараторы, интерфейсы, ...)

- взаимодействие с внешними устройствами (экран, клавиатура, внешний накопитель...)
- управление энергопитанием (контроль, зарядка, ...)

специфические для роботов задачи:
- аппаратура на нижнем уровне (двигатели, сервоприводы, датчики ...)


таким образом, прикладные программы могут взаимодействовать посредством ОС, получать доступ к ресурсам, получать информационные сообщения итд
Имеет смысл рассматривать ОС именно с этой точки зрения. :oops:

Re: Микрооперационная система реального времени

slavaslx » 28 мар 2009, 18:09

А естли простинкая ОС для МЕГИ-128, (для быстрого старта) на пару задач выбираемых пользователем, ну на пример:
1. управление яртом
2. управление и2с
3. какието пользовательские задачи и пр.
чтоб можно было полутче разобраться да и опробовать что оно такое.
Понятное дело что для мегии и без ОС можно прожить, но вот для ат91сам7... и пр. из данной оперы будет тяжко, а начинать изучать ОС сразу для них наверное будет тяжковато (ресурсоемко), лутче начинать с простого.
П.С. Это мое личное мнение, хотя с этими монстриками пока не работал.

Re: Микрооперационная система реального времени

Duhas » 31 мар 2009, 20:56

а теперь назовите мне задачи для которых НУЖНА ОС?
причины Виталия работать в этой области мне понятны более или менее...

Re: Микрооперационная система реального времени

Сергей » 31 мар 2009, 21:22

Ну ,к примеру, при некотором возмущении мы должны начать какое-либо вычисление, которое может занимать длительное время, и чтобы не тормозить на это время контроллер - мы используем "параллельность". При этом, к примеру, нам еще нужно что-то опрашивать.

Добавлено спустя 1 минуту 2 секунды:
bolt писал(а):Ага и Win не исключение - это тож RTS, только квантует задачи на более мелкие кусочки, поскольку МК более быстрый.
Бред какойто..

Re: Микрооперационная система реального времени

mandigit » 31 мар 2009, 21:29

вот именно эта причина послужила для разборок с механизмами переключения задач.
потом удалось решить все проще и обойтись без ОС, зато стало понятно, что есть значительный объем накладных расходов на переключение задач, особенно на процессорах, которые для этого не предназначены.

Сергей писал(а):Ну ,к примеру, при некотором возмущении мы должны начать какое-либо вычисление, которое может занимать длительное время, и чтобы не тормозить на это время контроллер - мы используем "параллельность". При этом, к примеру, нам еще нужно что-то опрашивать.

Re: Микрооперационная система реального времени

Duhas » 31 мар 2009, 21:30

прерывания решают вопрос... юзаем 1 таймер для организации прерываний не реже определенного промежутка времени... в нем смотрим нада ли решать другие задачи... если есть что-то срочное - выполняем.. нету - reti...
имхо, народ зачастую юзает оси для упрощения... чтобы каждый раз не придумывать систему полностью... я считаю это неправильным...

Re: Микрооперационная система реального времени

Сергей » 31 мар 2009, 21:49

Только вот если задача долгая( долгие вычисления, ну просто к примеру ), то МК будет ждать когда закончится прерывание от таймера. Следовательно нужно делать переключение задач, что собсно и есть зародыш ОС

Re: Микрооперационная система реального времени

Duhas » 31 мар 2009, 21:53

зародыш - да... но тем не менее это частное и более правильное решение конкретной задачи...

Re: Микрооперационная система реального времени

Виталий » 31 мар 2009, 22:28

ОС.
1. У вас есть многоканальная система управления, а контроллер всего один.
2. Во время работы ваша система должна запускать и останавливать некоторые задачи (процессы).
3. Опрос каналов должен производится с определенным темпом.

Как тут использовать прерывания? Посчитать все по тактам? А как тогда быть с новыми процессами в контроллере? А для того чтобы добавить процесс нужно перекраивать систему прерываний? Как долго проживут вложенные друг в друга прерывания?


Rambler\'s Top100 Mail.ru counter