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

 
 
> VxWorks, пофлудим немного...
beer_warrior
сообщение Jan 23 2008, 12:54
Сообщение #1


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

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Доброго времени суток господа!
Вот уже неделю, как изучаю сабжевую систему, а к пониманию не приблизился.
Нет, конечно прикладной софт на нее я уже писать смогу, но без понимания философии системы это дурное дело.
Вот приблизительный список нескладух:
1.Переключение задач или вытесняющее или раунд-робин. Если есть вытеснение, зачем карусель?
2.Отсутсвует защита памяти, но зато есть управление виртуальной.
3.Изумительные вызовы типа taskLock() и taskSafe(), чтобы если уже залочить задачу навеки, чтобы никто ее не снял и не вытеснил. Это особо интересно в контексте использования этой оси в критических приложениях.
4.Собственные вызовы типа taskSpawn() перемежаются со стандартными POSIX, тоже самое с объектами синхронизации.

Вобщем выглядит это похоже на ранние поделки Мелкософт. Но ведь система сертифицирована как супер-пупер надежная и устойчивая.
Кто-то может объяснить в чем тут дело?


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
yuri_t
сообщение Feb 2 2008, 18:10
Сообщение #2


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

Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937



Давайте определимся с терминологией.

Round-robin - это когда задачи преключаются по таймеру, т.е работала себе задача и вдруг - сработал некий глобальный системный таймер и задача снята с исполнения - не потому, что ждет семафор или появления нового элемента в очереди и т.п. и не потому, что после прерывания задача с более высоким приоритетом стала активной, а просто потому, что истекло время, отведенное данной задаче на работу.

Так вот, такой механизм в real-time системах не нужен и, более того - вреден.

Если же нужно множество задач с одинаковым приоритетом - то нужно просто создать множество threads(tasks) c одинаковым приоритетом (но это не Round-robin !!!)
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Feb 4 2008, 13:15
Сообщение #3


Ally
******

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



Я считаю, что это неправильное определение.

Round-Robin это просто циклическое выполнение задач с одинаковым приоритетом. Если задача получила время на выполнение, то после завершения следующая ее заявка становится в конец очереди. Таймера здесь не причем.

И вот такой способ выполнения очень важен.
О том какие проблемы может вызвать чиcтое приоритетное выпонение читать здесь:
http://www.rtos.com/page/imgpage.php?id=210

Из жизни приведу простой сценарий:

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

И спецы из Express Logic правильно говорят, что в этой ситуации вы получите солидную деградацию производительности из-за лишних переключений контекста.
И выход в осях не имеющих фичи "Preemption-Threshold" это довольствоваться Round Robin

Цитата(yuri_t @ Feb 2 2008, 22:40) *
Давайте определимся с терминологией.

Round-robin - это когда задачи преключаются по таймеру, т.е работала себе задача и вдруг - сработал некий глобальный системный таймер и задача снята с исполнения - не потому, что ждет семафор или появления нового элемента в очереди и т.п. и не потому, что после прерывания задача с более высоким приоритетом стала активной, а просто потому, что истекло время, отведенное данной задаче на работу.

Так вот, такой механизм в real-time системах не нужен и, более того - вреден.

Если же нужно множество задач с одинаковым приоритетом - то нужно просто создать множество threads(tasks) c одинаковым приоритетом (но это не Round-robin !!!)
Go to the top of the page
 
+Quote Post
tag
сообщение Feb 4 2008, 13:39
Сообщение #4


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

Группа: Свой
Сообщений: 151
Регистрация: 21-02-06
Пользователь №: 14 561



Цитата(AlexandrY @ Feb 4 2008, 16:15) *
Round-Robin это просто циклическое выполнение задач с одинаковым приоритетом.


...на самом деле это просто циклическое выполнение задач. Понятие приоритета в данном случае не вводится. Задача получает управление если истек квант времени предыдущей задачи в списке, либо предыдущая задача сама вернула управление с помощью системного вызова.


Цитата(AlexandrY @ Feb 4 2008, 16:15) *
Понятно что выбрать оптимальную стратегию назначения приоритетов здесь практически невозможно.


...ее и не надо выбирать. Создаются задачи равного приоритета и включается механизм Time slicing
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- beer_warrior   VxWorks   Jan 23 2008, 12:54
- - Andrew2000   Цитата(beer_warrior @ Jan 23 2008, 15:54)...   Jan 23 2008, 15:22
- - beer_warrior   Цитата1. А возможно такое - вытеснение по приорите...   Jan 23 2008, 15:31
|- - Andrew2000   Цитата(beer_warrior @ Jan 23 2008, 18:31)...   Jan 23 2008, 15:45
- - beer_warrior   ЦитатаВыключать, чтоб задачи сами контролировали к...   Jan 23 2008, 16:15
|- - Andrew2000   Цитата(beer_warrior @ Jan 23 2008, 19:15)...   Jan 24 2008, 10:54
- - grau   Цитата(beer_warrior @ Jan 23 2008, 15:54)...   Jan 24 2008, 09:10
- - beer_warrior   ЦитатаPreemption - вытеснение низкоприоритетной за...   Jan 24 2008, 12:32
|- - tag   Цитата(beer_warrior @ Jan 24 2008, 15:32)...   Jan 31 2008, 07:19
- - yuri_t   Round-robin - вещь, в общем-то, ненужная. А почему...   Jan 30 2008, 18:07
|- - AlexandrY   Round-robin - вещь необходимейшая. Приоритетной сх...   Jan 31 2008, 13:54
|- - Andrew2000   Цитата(yuri_t @ Feb 2 2008, 21:10) Если ...   Feb 2 2008, 21:04
||- - Alex B._   Цитата(Andrew2000 @ Feb 3 2008, 00:04) ??...   Feb 3 2008, 09:27
- - vshemm   Преемптивность - это, как сказали, вытеснение теку...   Feb 3 2008, 11:36
- - yuri_t   Вот, например, цитата из VxWorks 5.5 Programmer’s...   Feb 4 2008, 18:18


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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 23:29
Рейтинг@Mail.ru


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