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

 
 
> Параметры оценки архитектуры ОС, предлагаю
TMX
сообщение Feb 21 2005, 08:46
Сообщение #1


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

Группа: Свой
Сообщений: 100
Регистрация: 19-01-05
Из: Москва
Пользователь №: 2 064



Хочу обзор сделать, по существующим на рынке ОС для мк.
Не просто краткую аннотацию, такие уже есть,
например:
http://www.realtime-info.be/encyc/buyersgu...tos/Dir228.html
http://www.dspconsulting.com/rtos.html
(это просто первые в моем URL-album)
, а хочу обзирать именно конкретные подходы к построению архитектур.

Предлагаю сокращенный набор параметров для оценки архитектуры:
(их больше, просто, чтобы показать принципы)

-. Многозадачность (есть, нет, кооперативная, вытесняющая, набор примитивов для cycl.exec и т.д.)
-. Приоритеты задач (стат, динам, несравниваемые и др.)
-. Особенности переключения задач (контекст, стеки и т.д.)
-. Реализация планировщика.
-. Реализация диспетчера.
-. Оценка преимуществ и недостатков методов планирования/диспетчеризации для конкретных задач.
-. Предотвращение инверсии приоритетов (есть, нет, методы)
-. Реализация искл. доступа к ресурсам.
-. Контроль задач (события, таймеры и др.)
-. Запуск системных и доп. процессов (методы для таймеров, ISR и т.д.)
-. Реализация HAL.
-. API - предоставляемые возможности.
-. Доп. средства (GUI, TCP/IP и т.д.)
-. Общая оценка.

Результаты желаю выложить в интернет.
Примерная производительность - 4 ОС/мес, если не попрет.
Предлагаю это из шкурных соображений:
1. закончились новые идеи, а спросить не у кого.
2. последняя моя ОС получилась хороша, но вдруг изобрел велосипед?

Поэтому объявление:
Приму в дар исходники коммерческих ОС для исследовательских целей, (это не пиратство, это промышленный шпионаж).
Особо интересуют:
-. Integrity - как реализовано переключение задач без выкл. прерываний,
-. PORTOS - реализация приоритетных функций,
-. smx - реализация связных стеков задач
-. все остальные.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
merk0
сообщение May 11 2005, 12:23
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 5-05-05
Пользователь №: 4 763



Если таймеры у вас в системе "жесткие", что обычно бывает в ртоc, то они реализуются так.
На аппаратном таймере сидит процедура, что запускает таймерные хуки(функции определяемые пользователем) по списку "взведенных" таймеров. Такие хуки запускаются синхронно, то есть прямо фактически из прерывания, правда перед запуском хуков прерывания от аппаратного таймера разрешаются.
Хуки не могут пытаться втстать в ожидание, поскольку синхронный код, запускаемый из прерывания не может это делать - система рухнет. Но для особо привязанных ко времени приложений, типа лампочкой попикать или в порт байты кидать - такое - работает хорошо и быстро.

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

Вообще вариантов реализации таймеров и их разновидностей много.

Это я сказал как оно реализовано в ядре. Для пользователя же, это может быть оформлено, как специальный источник событий. Если пользователь хочет просто получать евент или мессагу в очередь мессаг треда, он попросит EventSource кидать событие в очередь, если захочет написать хук - сделает соотв Listener, и прицепит его к данному EventSource. В первом случае он будет реагировать на event асинхронно, во втором - синхронно.
Go to the top of the page
 
+Quote Post
TMX
сообщение May 11 2005, 15:19
Сообщение #3


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

Группа: Свой
Сообщений: 100
Регистрация: 19-01-05
Из: Москва
Пользователь №: 2 064



Цитата(merk0 @ May 11 2005, 15:23)
Если таймеры у вас в системе "жесткие", что обычно бывает в ртоc, то они реализуются так.
На аппаратном таймере сидит процедура, что запускает таймерные хуки(функции определяемые пользователем) по списку "взведенных" таймеров. Такие хуки запускаются синхронно, то есть прямо фактически из прерывания, правда перед запуском хуков прерывания от аппаратного таймера разрешаются.
Хуки не могут пытаться втстать в ожидание, поскольку синхронный код, запускаемый из прерывания не может это делать - система рухнет. Но для особо привязанных ко времени приложений, типа лампочкой попикать или в порт байты кидать - такое - работает хорошо и быстро.

я об этом методе говорил в своем обширном топике - это когда обработчик таймера переходит на т.н. уровень HLL (hardware link layer). Меня не устраивает.
Цитата
Мягкие таймеры, для задач, когда отклонение на квант работы одного треда не играет роли - например что-то выводить на экранчик периодически юзеру...активируются из системного треда - опросчика таймеров. Он себе крутится пока очередь таймеров не пуста и спит, когда пуста.

Основной вопрос - как управлять приоритетом этого треда? Хотелось бы чтобы его текущий приоритет был равен приоритету запустившего таймер процесса. Конечно можно делать отдельный тред на каждый таймер, но это потребует отдельного контекста, что нежелательно при небольшом объеме ОЗУ.
Возможно я слишком многого хочу, но было бы удобно запускать таймер следующей ф-ей:
timer_start (int ms, void(*callback)(void)), где callback - указатель на ф-ю обратного вызова.
Запускать этот указатель из под прерывания проблем не составляет - у меня есть библиотека и не для ОС (просто вызываешь ф-ю по указателю из обработчика и все).
А вот в треде возникают проблемы о которых я уже писал.

Цитата
Это я сказал как оно реализовано в ядре. Для пользователя же, это может быть оформлено, как специальный источник событий. Если пользователь хочет просто получать евент или мессагу в очередь мессаг  треда, он попросит EventSource кидать событие в очередь, если захочет написать хук - сделает соотв Listener, и прицепит его к данному EventSource. В первом случае он будет реагировать на event асинхронно, во втором - синхронно.


про listener можно поподробнее? Это то что я назвал callback?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- TMX   Параметры оценки архитектуры ОС   Feb 21 2005, 08:46
- - AlexandrY   Меня бы интересовали другие параметры. Более жизне...   Feb 21 2005, 10:22
|- - TMX   Цитата(AlexandrY @ Feb 21 2005, 13:22)Меня бы...   Feb 21 2005, 14:45
- - xyzzy   Цитата(TMX @ Feb 21 2005, 01:46)-. Многозадач...   Apr 11 2005, 04:53
|- - TMX   Цитата(xyzzy @ Apr 11 2005, 07:53)Цитата(TMX ...   Apr 11 2005, 06:52
|- - RVlad   >... Эта проблема, на мой взгляд, интересна для...   Apr 12 2005, 16:02
|- - TMX   Цитата(RVlad @ Apr 12 2005, 19:02)Чтобы сдела...   Apr 13 2005, 16:21
|- - RVlad   Я думаю , что в значительной степени то - о чем мы...   Apr 14 2005, 14:52
|- - TMX   Вы правы, я тоже стараюсь разбить систему на неско...   Apr 15 2005, 05:49
|- - RVlad   Мнея эта тема интересует в том числе и прагматичес...   Apr 15 2005, 11:11
|- - TMX   Цитата(RVlad @ Apr 15 2005, 14:11)Мнея эта те...   Apr 18 2005, 14:05
- - merk0   ***Мнея эта тема интересует в том числе и прагмати...   May 6 2005, 14:45
|- - TMX   Спасибо за развернутый топик. Пожалуйста, прочтите...   May 7 2005, 12:33
- - merk0   Поскольку у вас вопросов много..я отвечу пока толь...   May 7 2005, 20:52
|- - TMX   Цитата(merk0 @ May 7 2005, 23:52)Это примерно...   May 11 2005, 08:32
|- - TMX   Цитата(merk0 @ May 7 2005, 23:52)Далее, то чт...   May 11 2005, 09:53
- - merk0   ***но известное (т.е., например, в диспетчере: при...   May 11 2005, 12:04
|- - TMX   Цитата(merk0 @ May 11 2005, 15:04)Проблемы бу...   May 11 2005, 15:03
- - merk0   ***Основной вопрос - как управлять приоритетом это...   May 11 2005, 16:06
|- - TMX   Цитата(merk0 @ May 11 2005, 19:06)Зачем? Тайм...   May 11 2005, 18:08
- - merk0   теоретически вы правы, про таймеры..но практически...   May 11 2005, 19:38
|- - TMX   Таймеры в системе о которой я говорю вообще должн...   May 12 2005, 05:49
- - merk0   В той идеологии, что исповедую я, жесткие таймеры ...   May 12 2005, 10:47
|- - TMX   Цитата(merk0 @ May 12 2005, 13:47)сверху вниз...   May 12 2005, 10:59
- - merk0   я бы не стал на вашем месте концентрироваться на э...   May 12 2005, 14:27
|- - TMX   Цитата(merk0 @ May 12 2005, 17:27)я бы не ста...   May 12 2005, 15:08
- - merk0   по моему вы увлекаетесь этими приоритетами. Как по...   May 12 2005, 17:29
|- - TMX   По моему мнению, критерий РВ один - предсказуемост...   May 13 2005, 05:02
- - merk0   Вы очень уж абстрактно академично рассматриваете с...   May 14 2005, 09:13
|- - bmf   Цитата(merk0 @ May 14 2005, 12:13)На практике...   Sep 3 2005, 10:11
- - Kopa   По моему убеждению, интересной идеей реализации R...   Sep 1 2005, 20:29


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

 


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


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