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

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


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

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



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

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

Объясните, пожалуйста, чайнику: когда конкретно использование ОС выгодно во встроенных приложениях? Какие признаки это выгодности ?
Заранее Вам благодарен.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение 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

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

 


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


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