Jump to content

    

Распределение времени между задачами

Цитирую Андрея Курница

http://easyelectronics.ru/img/ARM_kurs/FreeRTOS/Kurniz.pdf

Вам уже написали что ОС общего назначения это не FreeRTOS, но ... вот еще подсказка в файле FreeRTOSConfig.h (должен быть в вашем проекте) есть такой параметр configUSE_PREEMPTION который задает тип многозадачности в проекте. Вот тут http://kit-e.ru/assets/files/pdf/2011_05_97.pdf даже рассматриваются многозадачности. А в этой статье http://kit-e.ru/assets/files/pdf/2011_04_96.pdf показывается что будет если у задач одинаковый приоритет (или разные приоритеты).

Share this post


Link to post
Share on other sites
Вам уже написали что ОС общего назначения это не FreeRTOS...

 

И в моей ссылке и в ваших название статей:"FreeRTOS — операционная система для микроконтроллеров."

Share this post


Link to post
Share on other sites

Цепляться за терминологию в данном случае не важно. Любая ОС в тех или иных условиях может работать как ОСРВ.

Share this post


Link to post
Share on other sites
Цепляться за терминологию в данном случае не важно.

Цепляться надо, ибо иначе в голове каша, как у ТС в которой он плавает и зацепится мыслью не может.

Любая ОС в тех или иных условиях может работать как ОСРВ.

А это уже схоластика :(. Да может, если, например, времени настолько много, что и делить его не надо.

Да, и трактор и велосипед оба транспорные средства.

 

 

 

 

Share this post


Link to post
Share on other sites

Пример - в осциллографе Agilent (номер наизусть не помню) используется ОС Windows.

 

У каждой задачи должен быть приоритет и допустимое время выполнения. Да и приоритета не нужно, это просто средство для выполнения задачи в требуемое время. Если ОС способна выполнить все задачи вовремя, то она ОСРВ.

Может оказаться, добавили еще одну задачу, и ОС уже не справляется. Мой мобильник на Андроиде разрешает ответить на звонок секунд через 8. Убил бы!

Share this post


Link to post
Share on other sites
Логично предположить, что время выделяемое на них будт прямо пропорционально приоритету.

Но никак не могу найти прямого указания о рспределении времени.

 

Фриртос устроена не так. Она дает две возможности

* если приоритет у задач разный, то задача с более высоким приоритетом будет работать, пока она готова (не заснула, не ждет данных из очереди и т.п.)

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

 

Если вам нужно чтобы все задачи работали пропорционально приоритету, то во фриртос это придется делать вручную. Но возможно если вы опишите проблему, которую пытаетесь решить, вам подскажут как это правильнее сделать с фриртосом и не придется изобретать свой шедулер

 

Share this post


Link to post
Share on other sites
Пример - в осциллографе Agilent (номер наизусть не помню) используется ОС Windows.

Пример "ни в .... ни в Красную Армию" :). То, чем там занимается Windows это ОДНА ИЗ ЗАДАЧ выполяемых на ОТДЕЛЬНОМ компьютере. Все реальное время НА ОТДЕЛЬНОМ ЖЕЛЕЗЕ.

У каждой задачи должен быть приоритет и допустимое время выполнения. Да и приоритета не нужно, это просто средство для выполнения задачи в требуемое время. Если ОС способна выполнить все задачи вовремя, то она ОСРВ.

Отлично! Ну и где в Windows назначение этих самых приоритетов и допустимых времен выполнения для пользовательских задач? То, что-то успевает за время, которое Вас устраивает, не означает, что что это сделано благодаря операционке имеющей средства обеспечения реального времени.

 

 

 

 

Если вам нужно чтобы все задачи работали пропорционально приоритету....

Вопрос не в том, можно сделать или нет. Вопрос какого хрена такое нужно? Какая-такая уникальная задача стоит? Это есть ключевой вопрос, котрый следует обсуждать а не чудесатые требования к RTOS неведомо отчего и зачем возникшие.

 

 

 

Share this post


Link to post
Share on other sites
Пример - в осциллографе Agilent (номер наизусть не помню) используется ОС Windows.

И Вы думаете, что там все операции с оцифровкой сигнала (под ГГц) реализованы на x86 под управлением Windows!? Нет же, Вы прекрасно знаете, что там внутри еще куча всего стоит, а Windows это вершина айсберга и ОС для удобства пользователя.

Share this post


Link to post
Share on other sites

Я считаю, что другой ОС в том осциллографе нет.

А приоритеты в Windows есть.

И она вполне себе справляется с функциями RTOS в данном примере.

Share this post


Link to post
Share on other sites
Я считаю, что другой ОС в том осциллографе нет.

 

Там скорее всего какая-то отдельная железка рулит собственно измерениями, а на винде - только GUI, анализ, настройки, экспорт/импорт и т.п.

 

 

Вопрос не в том, можно сделать или нет. Вопрос какого хрена такое нужно? Какая-такая уникальная задача стоит? Это есть ключевой вопрос, котрый следует обсуждать а не чудесатые требования к RTOS неведомо отчего и зачем возникшие.

 

Да, тут хотелось бы услышать ТСа. Мне на ум приходят какие-то длинные чисто вычислительные задачи, ничего не ждущие, которым хочется задать приоритет друг относительно друга так, чтобы даже низкоприоритетная иногда что-то делала :)

 

Share this post


Link to post
Share on other sites
Там скорее всего какая-то отдельная железка рулит собственно измерениями, а на винде - только GUI, анализ, настройки, экспорт/импорт и т.п.

Конечно. Но назначение осциллографа - захватить сигнал и нарисовать его на экране. Вот со второй частью ОС справляется.

 

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

Share this post


Link to post
Share on other sites
Какая-то ОС больше нацелена на гарантированное выполнение задач в заданное время, какая-то меньше.

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

 

Share this post


Link to post
Share on other sites
Не наводите тень на плетень - либо механизмы для обеспечения этого есть, либо нет. От того, что, "windows" попадет на железо, которое превосходит требуемую ПИКОВУЮ производительность он не станет RTOS - либо у дедушки есть яйца, либо он бабушка.

И каковы же эти яйца-механизмы, конкретно? :biggrin: Что есть, к примеру во FreeRTOS, что делает ее RT? Кроме простоты (примитивизма)? :rolleyes:

Share this post


Link to post
Share on other sites
И каковы же эти яйца-механизмы, конкретно? :biggrin: Что есть, к примеру во FreeRTOS, что делает ее RT? Кроме простоты (примитивизма)? :rolleyes:

Предлагаю Вам начать думать с другого конца - а хоть какие-то механизмы обеспечения приоритетов у того-же windows для ПРИЛОЖЕНИЙ вообще есть? Кроме изменения через анус абстрактого (не говорящем ни о каких ни временных параметрах, ни о даже относительном уровне приоритета относительно других задач ) ГРУППОВОГО уровня "приоритета". Механизмы-же той-же FreeRTOS описаны в ее документации ДЛЯ ПОЛЬЗОВАТЕЛЯ в отличие от "windows".

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this