roboforum.ru

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

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

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

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

Сообщение executer » 27 мар 2009, 23:41

А можно простыми словами чем ОС отличается от системы которая каждые 2 мс вызывает подпрограмму №1 и каждую 5-ю мс - подпрограмму №2??
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

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

Сообщение RoboTok » 28 мар 2009, 00:00

А если программа № 1 выполняется дольше 5мс ?
Или одна из задач вошла в цикл ожидания флага на долго ?
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

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

Сообщение executer » 28 мар 2009, 00:39

Ааа, разница в том что в моем варианте разработчик должен позаботится о том чтобы подпрограмма успела, а если ОС - то задачи большие а ОС сама их по кусочку выполняет?? Шото я сегодня не догоняю :o
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

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

Сообщение RoboTok » 28 мар 2009, 00:58

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

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

В результате мы можем спокойно ожидать флаги не останавливая весь МК.
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

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

Сообщение blindman » 28 мар 2009, 07:02

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

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

В любом случае список что я привел не полный.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение bolt » 28 мар 2009, 11:34

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

Ага и Win не исключение - это тож RTS, только квантует задачи на более мелкие кусочки, поскольку МК более быстрый.
bolt
 
Сообщения: 281
Зарегистрирован: 01 дек 2008, 19:21

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

Сообщение mandigit » 28 мар 2009, 11:51

ОС

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

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

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

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

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

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


таким образом, прикладные программы могут взаимодействовать посредством ОС, получать доступ к ресурсам, получать информационные сообщения итд
Имеет смысл рассматривать ОС именно с этой точки зрения. :oops:
Аватара пользователя
mandigit
 
Сообщения: 583
Зарегистрирован: 28 ноя 2005, 12:05
Откуда: Москва

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

Сообщение slavaslx » 28 мар 2009, 18:09

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

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

Сообщение Duhas » 31 мар 2009, 20:56

а теперь назовите мне задачи для которых НУЖНА ОС?
причины Виталия работать в этой области мне понятны более или менее...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение Сергей » 31 мар 2009, 21:22

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

Добавлено спустя 1 минуту 2 секунды:
bolt писал(а):Ага и Win не исключение - это тож RTS, только квантует задачи на более мелкие кусочки, поскольку МК более быстрый.
Бред какойто..
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

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

Сообщение mandigit » 31 мар 2009, 21:29

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

Сергей писал(а):Ну ,к примеру, при некотором возмущении мы должны начать какое-либо вычисление, которое может занимать длительное время, и чтобы не тормозить на это время контроллер - мы используем "параллельность". При этом, к примеру, нам еще нужно что-то опрашивать.
Аватара пользователя
mandigit
 
Сообщения: 583
Зарегистрирован: 28 ноя 2005, 12:05
Откуда: Москва

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

Сообщение Duhas » 31 мар 2009, 21:30

прерывания решают вопрос... юзаем 1 таймер для организации прерываний не реже определенного промежутка времени... в нем смотрим нада ли решать другие задачи... если есть что-то срочное - выполняем.. нету - reti...
имхо, народ зачастую юзает оси для упрощения... чтобы каждый раз не придумывать систему полностью... я считаю это неправильным...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение Сергей » 31 мар 2009, 21:49

Только вот если задача долгая( долгие вычисления, ну просто к примеру ), то МК будет ждать когда закончится прерывание от таймера. Следовательно нужно делать переключение задач, что собсно и есть зародыш ОС
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

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

Сообщение Duhas » 31 мар 2009, 21:53

зародыш - да... но тем не менее это частное и более правильное решение конкретной задачи...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение Виталий » 31 мар 2009, 22:28

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

Как тут использовать прерывания? Посчитать все по тактам? А как тогда быть с новыми процессами в контроллере? А для того чтобы добавить процесс нужно перекраивать систему прерываний? Как долго проживут вложенные друг в друга прерывания?
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15