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

 
 
> Когда нужна встроенная операционная система, как обосновать ее применение
Aiva
сообщение Nov 24 2009, 12:10
Сообщение #1


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

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



Здравствуйте уважаемые гуру!

Я, как в большей степени теоретик от программирования, неоднократно слышал и читал общие фразы в стиле: ".. ОС позволяет упростить работу программиста и существенно сократить время создания ПО...". В то же время на форумах при обсуждении вопроса нужна или не нужна ОС в данном конкретном случае, всегда приходят к выводу: "не нужна, т.к. это избыточная заморочка".

Объясните, пожалуйста, чайнику: когда конкретно использование ОС выгодно во встроенных приложениях? Какие признаки это выгодности ?
Заранее Вам благодарен.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 21)
Сергей Борщ
сообщение Nov 24 2009, 12:30
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Aiva @ Nov 24 2009, 14:10) *
всегда приходят к выводу: "не нужна, т.к. это избыточная заморочка".
Как правило к такому выводу приходят те, кто никогда ее не использовал. Мое мнение - использовать всегда, если позволяют ресурсы. Попробуйте, и делайте выводы сами.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Nov 24 2009, 12:38
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Когда процессор занимается более чем одной задачей smile.gif
К примеру - просто генерить меандр ножкой - ось не нужна.
если генерить меандр и выводить даные в UART - ось желательна
А если генерить менадр, выводить данные в UART и рисовать что-то на дисплее - без оси будет довольно тяжело жить smile.gif
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Nov 24 2009, 16:40
Сообщение #4


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



А если принемать/передавать по УАРТ, сжимать/разжимать вокодером голос, гонять данные от кодека/к кодеку через McBSP и ещё несколько периодических процессов по прерыванию от таймера.... Без оси всё это работает и не так уж и сложно это всё....с осью на данном проце с данным объемом памяти и при данном энергопотреблении - дело бы не пошло.


Примеры эти привел не в качестве осуждения. Мне тоже интересен вопрос, заданный автором.


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 24 2009, 19:10
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Ответ прост - встроенные ОС были разработаны для облегчения программирования в случае наличия многих задач. И такие ОС содержат набор отлаженных и проверенных функций для реализации этой многозадачности. Можно ли это решить без ОС? Можно. Как можно все писать на ассеблере, но по тем же соображениям (удобства программирования, в конечном счете) появились языки более высокого уровня.
Go to the top of the page
 
+Quote Post
Aiva
сообщение Nov 24 2009, 19:57
Сообщение #6


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

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



Правильно ли я понял из всего вышесказанного:

1. ОС нужна ТОЛЬКО для параллельного выполнения нескольких задач.
2. Ось имеет средства так организовать выполнение задач, что они автоматически определяют время бездействия проца и без участия программиста втюхивают нужный в данный момент код для выполнения;
3. Без оси необходимо вручную выщитывать времена для таймера и т.п., что трудно если задач 10-ки и чревато неоптимальным выполнением кода.

Правильно ли это и все ли это ? Может еще есть преимущества ОС?
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Nov 24 2009, 21:04
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



ОС упоминаемые на этом форуме не пользовался но пользовался менеджером задач с возможностью вызова до 64х задач с приоритетом от 1 до 64. Как оказалось вещь очень удобная в случае когда нужно исполнять до нескольких десятков задач паралельно. Заметно облегчает написание программы т.к. позволяет описать каждуюу задачу в пределах одного task с использованием текущего состояния и независимого вызова каждого из них. Сейчас разрабатываюустройство gps-трекера с использованием такого менеджера задач (читай ОС) - результат очень хороший - каждая задача вызывается независимо от остальных, имеет своё текущее состояние, выполняется и в принципе может быть использована в других проектах без существенной переделки.

P.S. IMXO применять ОС там где нужено обслуживать uart/индикатор/клавиатуру/пару датчиков и .... всё это излишество....
Большинство проектов были именно такими и всё работает без freeRTOS/Linux/WinCE и т.п. подобных на борту.
Многое можно сделать просто описав текущими состояниями программы плюс независимый опрос датчиков.
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 24 2009, 21:31
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



ОС нужна лишь в том случае, если лениво сделать тоже самое без нее. Т.е. фактически со своей ОС, написанной в процессе решения задачи строго под задачу. Просто готовая ОС в ряде случаев экономит время и силы за счет ресурсов, и больше толку от нее никакого.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 24 2009, 21:40
Сообщение #9


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(SM @ Nov 25 2009, 03:31) *
ОС нужна лишь в том случае, если лениво сделать тоже самое без нее. Т.е. фактически со своей ОС, написанной в процессе решения задачи строго под задачу. Просто готовая ОС в ряде случаев экономит время и силы за счет ресурсов, и больше толку от нее никакого.

Я бы поправил - в ущерб ресурсам, то бишь требует их больше для того же алгоритма. А так, полностью согласен.
Правда некоторые многотредовые алгоритмы реализовывать в один тред - полная ж..а. То есть без оси реализация подобных алгоритмов иногда может быть даже ресурсоёмче, а не просто сложнее в реализации. Так что всё зависит от алгоритма. Говорить же, что ось нужна в любом проекте - такой же бред, как и то, что она не нужна нигде.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 24 2009, 21:55
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Можно и свою тредопереключалку наваять, не беря готовую ось. Специфическую для задачи. Не велика сложность. Если время позволяет, а ресурсы - нет.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 24 2009, 22:31
Сообщение #11


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Я как раз примерно 3 года назад свою "тредопереключалку" ваял. Вообще ничего от оси, кроме регистрации и переключения тредов там не было. Но решился я на этот "велосипед" только когда запарился реализовывать очень сложный алгоритм, причём он делился на два подалгоритма. Одна часть должна была реализовывать жёстко заданные действия по обслуживанию девайса (с десяток периферийных устройств), а вторая часть должна была содержать пользовательские алгоритмы, которые пользователь должен был (мог) делать не обращая внимания на первую часть. В такой ситуации сам бох велел делать мультитредовость smile.gif


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 24 2009, 22:44
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(GetSmart @ Nov 25 2009, 01:31) *
Я как раз примерно 3 года назад свою "тредопереключалку" ваял.

А я где-то в 90-х, на Atmega103, когда других атмег еще не было вообще. Зачем - сам сейчас не понимаю, молодой наверное был, хотелось "крутоты". Просто чтобы сделать. Однако работала она даже в серийном приборе, 2-х канальная прослушивалка телефонных линий.
Go to the top of the page
 
+Quote Post
XVR
сообщение Nov 26 2009, 08:26
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Есть очень простой признак - если в вашем проекте у вас возник вопрос 'А какие выгоды дает применение ОС, и не надо ли мне ее тут применить' - то ОС вам (в этом проекте) не нужна smile.gif
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 26 2009, 08:51
Сообщение #14


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Если есть достаточно стабильная и довольно сложная железяка, то рано или поздно все равно появится здоровое желание юзать ось.
По поводу тредопереключалки - в последнее время ограничился protothread-ами или даже выжимками оттуда.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 26 2009, 08:59
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(XVR @ Nov 26 2009, 11:26) *
Если в вашем проекте у вас возник вопрос 'А какие выгоды дает применение ОС, и не надо ли мне ее тут применить' - то ОС вам (в этом проекте) не нужна smile.gif

А, если у Вас возник вопрос "А какой вкус имеет суп их черепахи, не попробовать-ли" - то Вам этот суп не нужен - кушайте солянку.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
mrKirill
сообщение Nov 27 2009, 05:07
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 283
Регистрация: 13-06-07
Из: Челябинск
Пользователь №: 28 391



Цитата(XVR @ Nov 26 2009, 13:26) *
Есть очень простой признак - если в вашем проекте у вас возник вопрос 'А какие выгоды дает применение ОС, и не надо ли мне ее тут применить' - то ОС вам (в этом проекте) не нужна smile.gif

Этот "признак" может появиться и от недостаточности информации по данному вопросу, потому он явно не решающий.
Go to the top of the page
 
+Quote Post
XVR
сообщение Nov 27 2009, 06:37
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(mrKirill @ Nov 27 2009, 08:07) *
Этот "признак" может появиться и от недостаточности информации по данному вопросу, потому он явно не решающий.
Отнюдь. Если ваш проект замечательно живет без ОС, логичный, простой и понятный, то искать себе дополнительных приключений на свою задницу явно не стоит.
Если же проект перерос свою степень сложности и уже трудно управляем, либо с самого начала было понятно, что просто и ясно его (без ОС) не сделать, тогда вопрос будет стоять по другому - не 'что мне даст применение ОС', а 'караул! Нужна ОС или я уже не знаю что' - вот тогда она действительно нужна.

Любая ОС требует некоторого порога вхождения, и для проекта типа 'моргание LEDом' он будет больше, чем сам проект.

Конечно, для общего развития стоит знать, что такое ОС. Хотя бы для того, что бы вопрос 'караул! Нужна ОС или я уже не знаю что' не появился слишком поздно rolleyes.gif
Go to the top of the page
 
+Quote Post
XVR
сообщение Nov 27 2009, 09:01
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(zltigo @ Nov 26 2009, 11:59) *
А, если у Вас возник вопрос "А какой вкус имеет суп их черепахи, не попробовать-ли" - то Вам этот суп не нужен - кушайте солянку.
Угу, я тут забежал домой на 5 минут в обеденный перерыв - солянки похлебать, а мне говорят - топай в ресторан, черепаховый суп есть! А то так и помрешь, не отведав черепаховый суп!

Вот в отпуск пойду, поселюсь в ресторане, и не уйду, пока все их меню не перепробую rolleyes.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 27 2009, 09:31
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(XVR @ Nov 27 2009, 12:01) *
Вот в отпуск пойду, поселюсь в ресторане, и не уйду, пока все их меню не перепробую rolleyes.gif

Тогда жду Ваших "советов" по использованию Операционных Систем , после возвращения из "отпуска" smile.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Nov 27 2009, 10:04
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(XVR @ Nov 27 2009, 09:37) *
Конечно, для общего развития стоит знать, что такое ОС....

Хорошо бы ссылку, где все было бы ясно и понятно про ОС.

Писал многозадачные программы к MCS196, MegaAVR, Silabs, NiosII, но все без ОС. До десятка независимых процессов + UART, Ethernet, LCD.
Покупать ОС дорого, а осваивать хлопотно. Может, удастся создать простую ОС, лучше своего переключателя задач....
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 27 2009, 10:51
Сообщение #21


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

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



Цитата(Serhiy_UA @ Nov 27 2009, 13:04) *
Может, удастся создать простую ОС, лучше своего переключателя задач....

Да их и так насоздовано до икса...
осталось только выбрать.
Можно начинать с простых, типа jacOs или широко известной в узких кругах scmRTOS
Главное преимущество - унифицированный подход. Можно таскать задачи из проекта в проект, не заботясь о "нюансах"


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 27 2009, 15:18
Сообщение #22


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Думается, что документация на scmRTOS, написанная автором просто, понятно и с большим юмором, прояснит любому, что такое RTOS и с чем ее "едят"
Go to the top of the page
 
+Quote Post

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

 


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


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