|
|
  |
Уменьшение минимального кол-ва стека, TNKernel :-) |
|
|
|
Mar 31 2007, 12:26
|

Странник
   
Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051

|
Цитата(Alex B._ @ Mar 31 2007, 14:48)  Проблемы есть с совместимостью контроллеров с аппаратной вложенностью прерваний с вытеснением задач из вложенного прервания - с uCOS, например, будет то же самое. Может мы о разном? В uCOS-II вытеснение из любого уровня вложенного прерывания выполняется нормально, без крантов, проверено.
--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
|
|
|
|
|
Mar 31 2007, 19:02
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937

|
Дело в том, что ситуация, когда OS не может полностью войти в задачу, а уже вытесняется прерыванием и это происходит постоянно, а не изредка, говорит о том, что OS работает очень близко к пределу своей производительности. Эта ситуация нежелательна. Поэтому и в uCOS, и во многих других OS (коммерческих и свободных) проблема, которую вычислил DASM, тоже присутствует. Ну просто никто не использовал OS на пределе... Надо ли устранять проблему или просто уменьшить нагрузку на OS + увеличить стек ? Как я сейчас вижу, надо устранять - молодые люди любят выжимать из системы все и, наверное, они правы...
P.S To spf - Порт uCOS для ARM, кстати, не поддерживает вложенных прерываний. Там для отслеживания вложенности есть специальная переменная. Вступать в дискуссию на эту тему я не стану: хотите - верте, хотите - нет...
|
|
|
|
|
Mar 31 2007, 19:30
|

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

|
Цитата(yuri_t @ Mar 31 2007, 18:02)  Дело в том, что ситуация, когда OS не может полностью войти в задачу, а уже вытесняется прерыванием, говорит о том что OS работает очень близко к пределу своей производительности. Нагрузка на систему со сторны обработчика прерывания естественно увеличивает вероятность 'эффекта' и меру пожирания стека, но сам эффект принципиально не исчезает  и при слабой загрузке. В общем-то надо устранять, ибо никакими внешними организационными мерами 100% гарантии добиться не удастся  .
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Mar 31 2007, 21:30
|

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

|
Цитата(DASM @ Mar 31 2007, 15:32)  Бегло оглядел код порта ЮКОС под АРМ - вроде засада таже самая. Посмотрел - нет. Там везде такое: Код LDMFD SP!, {R4} ; Pop new task's CPSR MSR SPSR_cxsf, R4 LDMFD SP!, {R0-R12,LR,PC}^; Pop new task's context cpsr одновременно с pc восстанавливается из spsr, соответственно никаких неуместных разрешений прерываний не образуется.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Mar 31 2007, 22:32
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937

|
Цитата Посмотрел - нет. Там везде такое:
LDMFD SP!, {R4} ; Pop new task's CPSR MSR SPSR_cxsf, R4 LDMFD SP!, {R0-R12,LR,PC}^; Pop new task's context В uCOS это исправлено только в последних версиях, а в версии, например, uCOS 2.76 проблема присутствует в полный рост. Ноги у этой проблемы растут из кода (свободного), написанного Michael Anburaj. Он использовался как основа для context switch как в ранних версиях uCOS, так и в TNKernel. И Jean J. Labrosse, и я, наехали на одни и те же грабли... В uCOS это уже исправлено, в версии 2.4 TNKernel это будет исправлено.
|
|
|
|
|
Apr 4 2007, 07:03
|

Странник
   
Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051

|
Цитата(zltigo @ Apr 3 2007, 13:11)  Я бы не стал - вложенные в приличной системе это уже в большей части отрыжка бессистемного писания. Приличная -- с многократным запасом производительности? А как же золотая середина ?  Случаи бывают разные - http://electronix.ru/forum/index.php?showtopic=29678
--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
|
|
|
|
|
Apr 4 2007, 09:22
|

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

|
Цитата(spf @ Apr 4 2007, 06:03)  Приличная -- с многократным запасом производительности? "Запас по производительности" это даже не совсем характеристика системы. В данном случае это система с малыми затратами на переключение задач. По ссылке собственно случай и не описан. Только "хочу" что-бы каждое из восьми прерываний немедленно прерывало предыдущее. Вот такой "случай" и точка.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|