|
Пользователям uC/OS,eCOS,jacOS,FreeRTOS,scmRTOS и т.п., Возможен ли в этих ОС режим: 80% времени CPU в ISR |
|
|
|
Mar 15 2008, 13:37
|

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

|
Не.., отлично будет работать. 20% же остается. У какого нибудь ARM11 эти 20% будут как 200% у какой нить меги. А вот с тактами напряженка, никто их прецизионно не считает на серьезных чипах ибо невозможно посчитать, сложная шинная архитектура мешает. Можно ориентироваться только в доверительных интервалах тактов или времени. Но даже при 99% загрузке проца чем угодно, хоть ISR, хоть DMA операционка работает как ни в чем не бывало. Важно только чтоб real-time задачи укладывались в тот оставшийся процент. Цитата(spf @ Mar 15 2008, 17:41)  ИМХО: При указанных загрузках процессора в ISR (еще не известно в них должны использоваться сервис или нет) полноценно использовать OS не получиться (с сервисами в ISR просто невозможно). Почитайте книжки/доки по указанным системам, тогда станет более понятно зачем OS вообще и когда ее следует и можно пользовать, в двух словах этого не рассказать.
|
|
|
|
|
Mar 15 2008, 14:45
|

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

|
Зря значит писали. Есть разные подходы в операционках. Есть подходы где практически без разницы где обрабатывать логику приложения, хоть в ISR хоть в основном потоке. Вот только ISR имеют иерархию. Есть прерывания вообще вне контекста операционки. Вот они обычно и занимают много времени, хоть до 90% поскольку обслуживают скоростную периферию. Есть легкие прерывания, в которых разрешение только пара тройка сервисов RTOS. И есть тяжелые прерывания где разрешены почти все сервисы оси. И еще есть вариации, как отложенные прерывания и т.д. Цитата(sergeeff @ Mar 15 2008, 18:28)  Много написано, что всегда и везде необходимо обеспечивать минимальное время пребывания в процедурах обработки прерывания. 80% времени в прерываниях - это потому, что так обработчики написаны, или прерывания прут сплошным потоком?
|
|
|
|
|
Mar 15 2008, 15:21
|

Местный
  
Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947

|
Цитата(spf @ Mar 15 2008, 16:11)  При указанных загрузках процессора в ISR (еще не известно в них должны использоваться сервис или нет) полноценно использовать OS не получиться (с сервисами в ISR просто невозможно). У меня получилось... Меня интересовало: а как с этим дело обстоит во всяких юкосах/микосах/эмбедед-линуксуниксах/эсцээмРтосах? Они это позволяют сделать? Цитата(AlexandrY @ Mar 15 2008, 16:37)  А вот с тактами напряженка, никто их прецизионно не считает Да я не предлагаю их считать, просто прикинув частоту прерываний я написал, что они будут происходить каждые 200 тактов и спросил справяться ли RTOS, используемые участниками форума с такой задачей Цитата(sergeeff @ Mar 15 2008, 16:58)  или прерывания прут сплошным потоком? Да Цитата(AlexandrY @ Mar 15 2008, 17:45)  Есть прерывания вообще вне контекста операционки. Вот они обычно и занимают много времени, хоть до 90% поскольку обслуживают скоростную периферию. Вот их то я имею в виду в своём вопросе
--------------------
После устранения бага в программе она стала работать....хуже
|
|
|
|
|
Mar 15 2008, 16:00
|

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

|
Тут вы зацепили за живое, конечно. В портах публикуемых для uCOS действительно нет техники и примеров реализации ISR вне контекста RTOS и как в них сохранить связь с RTOS. Это глубоко интимное дело для каждого семейства микроконтроллеров. Решение всегда находится, но непереносимое на другие платформы. Поэтому оно наверно и не обсуждается в рамках RTOS, это дело драйверов и BSP. Цитата(Дон Амброзио @ Mar 15 2008, 19:51)  У меня получилось... Меня интересовало: а как с этим дело обстоит во всяких юкосах/микосах/эмбедед-линуксуниксах/эсцээмРтосах? Они это позволяют сделать? Да я не предлагаю их считать, просто прикинув частоту прерываний я написал, что они будут происходить каждые 200 тактов и спросил справяться ли RTOS, используемые участниками форума с такой задачей Да Вот их то я имею в виду в своём вопросе
|
|
|
|
|
Mar 15 2008, 16:53
|

Местный
  
Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947

|
Цитата(zltigo @ Mar 15 2008, 19:06)  Полагаю, что под "операционкой" которая у Автора топика "получилась", подразумевается на самом деле вариации на тему вечного цикла Откуда такие предположения? Когда что-то кажется - креститься надо. У меня полноценная (насколько это возможно сделать в условиях: 4Мгц тактовой и Target MCU = ATmega8515 и 512 байт RAM) RTOS, поддерживающая две политики диспетчеризации: карусель со сменой потоков по истечению выделенного им кванта и вытесняющую, со сменой потока по Евентам. Причём вытесняющая политика поддерживает как статические так и динамические приоритеты потоков. Поддерживаются блокирующие ине блокирующие сервисы ядра.. Монопольный режим захвата CPU (при отключенной диспетчеризации). Да много чего ещё....
Сообщение отредактировал Дон Амброзио - Mar 15 2008, 16:58
--------------------
После устранения бага в программе она стала работать....хуже
|
|
|
|
|
Mar 15 2008, 17:07
|

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

|
Цитата(Дон Амброзио @ Mar 15 2008, 19:53)  карусель со сменой потоков по истечению выделенного им кванта... Вы уж как-то определитесь либо карусель, либо кому-то кванты времени выделяют и тогда это не карусель из потоков  . Цитата Откуда такие предположения? Естественно, только исключительно из чтения Ваших сообщений. Коих, впочем, достаточно много для того, что-бы составить мнение.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Mar 15 2008, 17:30
|

Местный
  
Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947

|
Цитата(zltigo @ Mar 15 2008, 20:07)  Вы уж как-то определитесь либо карусель, либо кому-то кванты времени выделяют и тогда это не карусель из потоков  . Не собираюсь дальше упражняться с Вами в жонглировании терминологией и заниматься схоластикой (говоря по простому флудом).. Может я не настолько силён в терминологии (или просто мы с Вами читали разные книги и доки), но я разработал свою RTOS (не знаю как Вы?). И она прекрасно работает. Если у Вас есть что сказать по существу вопроса - говорите.. А флуд не украшает на форуме даже Админа. И если Вы делаете какие-то свои умозаключения из моих сообщений, я бы попросил Вас приводить тогда цитаты, на основании которых Вы делаете такие умозаключения И кстати Вы правы... Поспешишь-людей насмешишь... Никакие не равные кванты времени у меня выделяются каждому потоку карусели... Следующий поток в карусели запускается после того как предыдущий сам по свой инициативе пошлёт сигнал ядру типа "я закончил" А через равные кванты времени у меня запускается не очередной поток карусели, а вся карусель (т.е. диспетчер карусели). Вот я и описАлся. Т.е. через равные промежутки времени у меня управление передаётся диспетчеру карусели, который начинает крутить свои потоки пока его не вытеснят... Т.е. я реализовал это так, чтобы низкоприоритетной каруселе по-любому доставалось время.
Сообщение отредактировал Дон Амброзио - Mar 15 2008, 17:49
--------------------
После устранения бага в программе она стала работать....хуже
|
|
|
|
|
Mar 15 2008, 18:05
|

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

|
Цитата(Дон Амброзио @ Mar 15 2008, 20:30)  ..но я разработал свою RTOS (не знаю как Вы?). Пожалуй три штуки. Естественно, то, что не стыдно (не жонглируя терминами на карусели) операционной системой назвать. Последние годы веду собственную веточку FreeRTOS. Цитата Если у Вас есть что сказать по существу вопроса - говорите. По существу, насколько можно было, ответил AlexandrY. Добавить особо нечего из-за собственно отсутствия сколь-нибудь конкретного вопроса. Цитата А флуд не украшает... Вот именно, посему разговоры в стиле "А у нас в квартире газ операционная система, а у вас?" не стоило даже начинать.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Mar 15 2008, 18:15
|

Местный
  
Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947

|
Цитата(zltigo @ Mar 15 2008, 21:05)  Вот именно, посему разговоры в стиле "А у нас в квартире газ операционная система, а у вас?" не стоило даже начинать. Если Вы не заметили, то привожу "шапку" этой темы Цитата(Дон Амброзио @ Mar 15 2008, 11:02)  Вопрос к пользователям наиболее часто обсуждаемых здесь embedded операционных систем: 1)можно ли в них организовать режим когда процессор будет 80% времени находиться в ISR? Т.е. прерывания идут с такой большой частотой, что процессор 80% времени занимается обработкой прерываний. Или такой режим нагрузки в этих ОС не предусмотрен? 2) Можно ли получить в них частоту следования прерываний каждые 200 тактов (200Т) процессора при том что сам обработчик прерывания (ISR) выполняется 150Т? Если нет, то какая максимальная частота (выраженная в тактах) поддерживается? P.S. zltigo !!! Несколько раз прочитал все сообщения в теме...Как не старался не смог НИ ОДНОГО СЛОВА найти из всех Ваших высказываний, хотя бы отдалённо относящихся к теме... И тогда какой смысл Вашего литературного творчества в этой теме? Как другие участники не будут флудить если сам Админ флудит и появляется в теме, чтобы просто посеять недовольство автором темы
Сообщение отредактировал Дон Амброзио - Mar 15 2008, 18:29
--------------------
После устранения бага в программе она стала работать....хуже
|
|
|
|
|
Mar 15 2008, 18:58
|

Местный
  
Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947

|
Цитата(zltigo @ Mar 15 2008, 21:46)  Я говорил AlexandrY. С ним разговор на затронутую ИМ тему готов продолжить. А разве это вежливо в теме автора разговаривать с другим участником на совсем другие темы? Или этим Вы хотели продемонстировать своё неуважение ко мне? Короче я вижу что благодаря Вашим стараниям (поздравляю Вас. Вы добились своего - вывели меня из себя. Троллинг работает на ура) тема засрана нашими с Вами разборками... Можете смело её удалять, потому что никто в ней по теме уже писать не будет....Спасибо Вам большое. Вы маладец..
Сообщение отредактировал Дон Амброзио - Mar 15 2008, 19:02
--------------------
После устранения бага в программе она стала работать....хуже
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|