|
Народ, что думаешь про эту писанину? В принципе, это статья :) |
|
|
|
Feb 19 2006, 09:07
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
В настоящее время при создании систем цифровой обработки сигналов широко используется понятие «Операционная Система Реального Времени» или RTOS (Real Time Operating System). Подразумевается, что эта система многозадачная, имеет средства для синхронизации независимо исполняемых программных модулей и обмена информации между ними. В принципе, под это понятие попадает любая Операционная Система (ОС), которая имеет ограничение времени отклика на любой запрос, как со стороны аппаратной части, так и со стороны исполняемых программных модулей. Но использование RTOS, к сожалению, не гарантирует режима реального времени для всего аппаратно-программного комплекса, всей системы в целом. Причина состоит в том, что необходимо учитывать собственно задачи и аппаратную часть. Введем новое понятие – Система Реального Времени, которое распространяется не только на RTOS, но и на исполняемые задачи и аппаратную среду.
Система Реального Времени (СРВ) - это программно-аппаратный комплекс, который обеспечивает возможность прохождения исполняемыми программными модулями неких контрольных (реперных) точек за заданное время.
Иными словами, все задачи, исполняемые в такой системе, должны успевать обрабатывать данные за заранее оговоренное количество тактов процессора. Из этого определения можно получить следующие следствия:
1. Задачи должны исполняться одновременно и, следовательно, в режиме разделенного времени. 2. Задачи не должны прерывать друг друга и, следовательно, они все имеют одинаковый приоритет.
Последнее следствие неочевидно, поэтому остановимся на нем особо. Когда одна задача прерывает другую? Когда ресурсов системы не хватает на обе задачи одновременно. Т.е. прерывание задачи приведет к тому, что прерванная задача не успеет обработать данные (пройти реперную точку) за оговоренное время. Таким образом, при прерывании одной задачи другой, не выполняется условие для Системы Реального Времени. Если же ресурсов хватает на всё, то необходимость прерывания одной задачи другой отпадает. Естественно, если задачи не конкурируют между собой за ресурсы, то присваивание им приоритетов не имеет смысла.
Рассмотрим один из способов реализации СРВ. Наложим следующее условие: требование к аппаратной части и исполняемым задачам должны быть минимальны. Имеется в виду, что задачи и процессор никак между собой не связаны и не влияют друг на друга. Т.е. весь интерфейс по их взаимодействию поддерживается только RTOS. Теперь мы можем определить алгоритм функционирования Операционной Системы Реального Времени. 1. Т.к. несколько задач выполняется параллельно, то предлагается применить методологию выполнения нескольких программных блоков в «разделенном времени». Иначе говоря, система порождает тики, которые следуют через строго определенное время. Время между двумя тиками называется фреймом. В течение фрейма работает только одна задача. По окончании фрейма, если это необходимо, может начать работать следующая задача, либо продолжить работу предыдущая. Чередованием задач управляет Планировщик исходя из расписания. Планировщик также должен запускать процедуру сохранения и восстановления контекстов задач. На этом его функции заканчиваются. Тики организуются при помощи прерывания от таймера, обработчиком которого и выступает Планировщик. 2. Кроме планировщика, должен существовать программный модуль, принимающий по особому каналу команды для системы и доводящий эти команды до конкретных задач. Предлагается обработчик команд запускать в начале каждого фрейма. 3. Важной частью RTOS являются драйвера. По причинам, изложенным ниже, драйвера должны запускаться также каждый тик.
Наложим дополнительные ограничения на Систему Реального времени. Пусть она перерабатывает некую входную информацию, организованную в виде потоков, в информацию выходную, организованную подобным же образом (как выходные потоки). А задачи, работающие в реальном времени и параллельно, выполняют эту переработку. Это приводит к следующему: потоковая информация – это непрерывная последовательность неких чисел, следовательно, ее лучше всего обрабатывать по-блочно. Т.е. входные числа организуются в некий буфер, который передается задаче для обработки. Но время обработки этого буфера задачей может оказаться больше времени между приходом двух входных отсчетов. Потому для подобных систем, ориентированных на поточную обработку в реальном времени имеет смысл применить зеркальные буфера. Как они работают можно увидеть на следующем примере. Пусть есть два входных буфера А1 и А2, а так же два выходных В1 и В2. Когда буфер А1 перерабатывается задачей в буфер В1, один драйвер RTOS заполняет из входного потока буфер А2, а другой из выходного буфера В2 формирует выходной поток. После того как Буфер А1 переработан в В1, буфер А2 заполнен, а буфер В2 опустошен, меняются местами А1 и А2, В1 и В2. Теперь задача перерабатывает буфер А2 в В2, А1 заполняется из входного потока, а из В1 данные отправляются в выходной поток. Затем буфера снова меняются местами. В том случае, если буфера достаточно длинные, а входной и выходной поток – короткие порции информации, то «набивка» входных буферов и выходных потоков должна происходить каждый фрейм, чтобы избежать потери данных.
Исходя из вышесказанного, определим формальную структуру задачи для такой системы реального времени. Предлагается разделить задачу на алгоритмическую часть и данные. Это может быть особенно интересно для систем, реализованных на сигнальных процессорах DSP, потому как там обычно применяется Гарвардская Архитектура, когда память программ и память данных разделены. Алгоритмическая часть делится на три блока: процедура восстановления контекста, тело задачи и процедура сохранения контекста. Данные делятся тоже на три типа: управляющие данные, стек (или контекст задачи) и входные/выходные буферы. Таким образом, задача оформляется в виде следующей С-фунции:
task( descriptor* ddd) { …. }
Дескриптор тоже должен иметь некую структуру. Например:
typedef struct { int Status; int FrameNumber; int CurrentFrameNumber; int StackPointer; void* ContextResoring; void* FunctionBody; void* ContextSaving; int* *InputBuffer1; … int* *InputBufferN; int* *OutputBuffer1; … int* *OutputBufferN; int Control1; … int ControlN; int Service1; … int ServiceN } descriptor;
Status – переменная, которая характеризует статус задачи. Допустимые значения: 0 – задача пассивна, т.е. Планировщик ее всегда пропускает. 1 – задача активна и готова к выполнению. Планировщик, запуская эту задачу, присваивает статусу значение 2. 2 – задача исполняется. Пассивный статус, выставляет себе сама задача. Например, задача является некой инициализацией. Тогда, выполнившись один раз, она более не запускается. FrameNumber – количество фреймов, которые отводятся под выполнения данной задачи. Отвод под задачу одновременно нескольких фреймов, позволяет сэкономить на перезагрузке контекста и распределить производительность процессора оптимально между задачами. CurrentFrameNumber – количество фреймов, которые задача уже выполняется. StackPointer – текущий указатель стека данной задачи. ContextResoring – указатель на процедуру восстановления контекста. FunctionBody – указатель на тело задачи. ContextSaving – указатель на процедуру сохранения контекста. *InputBufferN - указатель на указатель входного буфера. Это удобно для переключения зеркал буферов, т.к. для этого в эту переменную всего лишь подставить указатель на новый буфер. *OutputBufferN - указатель на указатель выходного буфера ControlN – команды управления для данной задачи, формируемые особым программным модулем. ServiceN – служебные переменные.
Наконец, рассмотрим синхронизацию и коллизии одновременного доступа к ресурсам нескольких задач одновременно. Предлагается разрешить эту проблему при помощи простейшего системного ресурса – флага. Любому ресурсу общего пользования может быть присвоен флаг. Флаг может иметь только два значения: 0 – ресурс свободен, 1 – ресурс занят. Непосредственный доступ к флагу никто не имеет. Изменить флаг можно только API-функциями, которые реализованы, как квантовые операции через критические секции. Иными словами, на момент доступа API-функции к флагу запрещены все прерывания. В конце сделаем несколько полезных пожеланий: 1. Необходимо, по-возможности, объединять в одну задачу несколько подзадач с целью сокращения количества используемых стеков и уменьшения накладных расходов на перезагрузку контекстов. 2. Не использовать в задачах глобальные переменные, используя для подобных целей только дескриптор задач. Это позволит взять под контроль все источники воздействия на задачу, что чрезвычайно важно на этапе отладки. 3. Скрывать от задач «зеркальность» входных/выходных буферов. Это не требует больших накладных расходов (реализуется при помощи указателей на указатель буфера), но существенно упрощает саму задачу. 4. Максимально использовать API-протокол для каких либо внешних взаимодействий. Теперь подведем итоги. В данной статье была определена типовая структура RTOS для задач Цифровой Обработки Сигнала. Описаны программные модули, на которых она строиться и их принцип функционирования. Определена формальная структура задачи и сделан практически важный для аппаратной части вывод, о возможности использования в системе только одного прерывания (от таймера) и отказа от приоритетов.
|
|
|
|
|
 |
Ответов
(15 - 29)
|
Feb 21 2006, 13:27
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата(Olej @ Feb 20 2006, 23:15)  Вот так сразу?  Так давайте сначала определитесь, что вообще такое "реал-тайм" ... поскольку ваша модель потоковой сигнальной обработки к риал-тайму то, вообще то говоря, отношения и не имеет ... Мда... Теперь ясно... Цитата(st256 @ Feb 20 2006, 17:37)  Цитата Пример не корректен, во-первых TCP/IP не реал-тайм уже по определению.
Пример корректен - потому что вы просто не знаете TCP/IP "по определению" Базара нет. Я не знаю TCP/IP, а Вы не знаете, что он не реал-тайм... Ну давайте на этом и разойдемся.
Сообщение отредактировал st256 - Feb 21 2006, 13:28
|
|
|
|
|
Feb 21 2006, 13:57
|

инженер
   
Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701

|
st256, Вам вроде и нужна была критика  Вот эта мысль тоже хорошая: Цитата исполняющая система (планировщик) потоковой сигнальной обработки Или исполнительный монитор ЦОС. А средства поддержки проектирования есть (2 альтернативы: в ОС - библиотеки системных функций, в ЯВУ или case-системах - само описание уникально). Даже макросы и то инструмент.
Сообщение отредактировал Vic1 - Feb 21 2006, 13:58
|
|
|
|
|
Feb 21 2006, 14:53
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата(Vic1 @ Feb 21 2006, 22:57)  st256, Вам вроде и нужна была критика  Вот эта мысль тоже хорошая: Цитата исполняющая система (планировщик) потоковой сигнальной обработки Или исполнительный монитор ЦОС. А средства поддержки проектирования есть (2 альтернативы: в ОС - библиотеки системных функций, в ЯВУ или case-системах - само описание уникально). Даже макросы и то инструмент. Понимаете, леди, критика хороша когда она идет из хорошего источника. А когда человек знает ноль, то и энтропия его постов (мат. ожидание количества информации) - тоже ноль. Есть моменты, которые я не понимаю. Например, я не понял Вашего поста. Ну просто не понял. Без второго дна, как говориться. Тогда я пытаюсь разобраться или хотя бы понять, что мне тут не надо разбираться, не мой профиль, не моя компетенция. Но объяснять неучу, что TCP/IP не реал-тайм, простите, не стану. Потом ему придется объяснять правила сложения и конца этому не будет. На счет ЖАБЫ или CASE.... Ну это точно не ко мне. У меня конвейер, у меня суперскаляр, у меня страшные ограничения на память, я даже не могу позволить писать себе на Си... Такая тяжелая судьба у специалистов по Цифровой Обработке Сигналов. Потому нас так мало
|
|
|
|
|
Feb 21 2006, 17:07
|
Местный
  
Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458

|
Цитата(st256 @ Feb 21 2006, 18:53)  Тогда я пытаюсь разобраться или хотя бы понять, что мне тут не надо разбираться, не мой профиль, не моя компетенция. Но объяснять неучу, что TCP/IP не реал-тайм, простите, не стану. Потом ему придется объяснять правила сложения и конца этому не будет. Ну, вы пока можете попытаться объяснить, в меру понимания, хоть то, что есть профиль - что такое риал-тайм... А там и я, может быть, объясню, почему и TCP/IP даже, при определённых условиях - может быть компонентом очень даже hard realtime системы  ... Цитата(st256 @ Feb 21 2006, 18:53)  Такая тяжелая судьба у специалистов по Цифровой Обработке Сигналов. Потому нас так мало Это что? : "сам себя с утра не похвалишь - весь день как оплёванный ходишь?"  А кто вам сказал, что вы "волшебник"? Вы - только учитесь (с)
Сообщение отредактировал Olej - Feb 22 2006, 07:00
|
|
|
|
|
Feb 22 2006, 06:55
|

инженер
   
Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701

|
st256, спасибо за леди (а то как уж тут только не обижала молодежь зеленая). Вообще то, лучше Olej критику Вам никто и не скажет. Для того, чтобы заявлять "Я написал RTOS" нужно по минимуму хоть архитектуру операционных систем знать. Ответы в форуме - короткие по форме (доброжелательные по содержанию), не рецензию же Вам на статью писать. Умейте читать между строк, уточняйте, если кажется, что Вас не понимают. А разводить базар, как Вы говорите, на пустом месте - пользы для Вас точно не будет (желания беседовать/критиковать пропадет). Уж лучше тогда с Olej побеседовать на более захватывающие темы (место ОС в мире Embedded: когда есть необходимость в ОС, а когда нет; ОС - это не только (наверно и не столько) real time, сколько концепция ввода/вывода, модульность, многопроцессность и т.п.; какую дополнительную технологичность представляет ОС разработчику). У Вас, повторюсь, проблемно-ориентированное ПО (под определенную задачу). Для того, чтобы понять эту задачу, Вам и задают вопросы.
|
|
|
|
|
Feb 22 2006, 08:47
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(Olej @ Feb 20 2006, 17:15)  Цитата(st256 @ Feb 20 2006, 17:37)  Приведите пример, когда нужно использовать в реал-тайме вытеснение. Все остальное - лишнее.
Вот так сразу?  Так давайте сначала определитесь, что вообще такое "реал-тайм" ... поскольку ваша модель потоковой сигнальной обработки к риал-тайму то, вообще то говоря, отношения и не имеет ... А вот когда с моделью самой "реал-тайм" определитесь - тогда можно и о вытеснении и о примерах говорить... Olej Иванович, не горячись. 256-ой известный корейский провокатор. Бывший с Самсунга  . Но специалист он грамотный. Только зря он заговорил про RTOS. То что он описывает всегда называлось framework. Попробую объяснить, что в DSP считают real-time, чтобы вернуть дискуссию в конструктивное русло. Реальное ВРЕМЯ в отличии от физической абстракции как известно не однородно. Оно имеет абсолютное начало координат (настоящее) и однородную ось повёрнутую в прошлое. Будущего строго говоря не существует. Компьютеры используют для сбора информации её обработки и использования в корыстных целях. Информация представляется в виде функций. Если эти функции не зависят от времени - то нет никакого совсем смысла говорить про real-time. Но даже если они есть функции времени (т.е. представлены дискретными парами (value, time-stamp) то говорить о real-time в большинстве случаев, когда о нём говорят, нет смысла. Смысл говорить о жёстком реале есть только тогда когда для решаемой задачи значения меток времени time-stamp имеют абсолютное, но не относительное значение, т.е. начало координат нельзя сдвинуть по смыслу задачи. Вернее его можно сдвинуть только в пределах незначительных допустимых deadline обработки. Запаздывание обработки позже dead-line делает саму обработку бессмысленной, это программа лузер и её лучше было бы вообще никогда не запускать и не писать. Синхронность или асинхронность не является признаком real-time, признаком real-time является существование дэдлайнов в течении которого обработка должна быть выполнена. Поэтому система реального времени должна характеризоваться максимальными, а не средними временами отклика. Поэтому возможность вытеснения для таких задач действительно существенно ограничены. Исторически термин обработки реального времени появился из обслуживания периферийных устройств, портов и прочего железа, которое может ожидать обслуживания только в пределах ограниченого времени. Но если изолировать железо слоем драйверов/обработчиков прерываний, то выяснится, что почти все коммуникационные задачи считаются задачами реального времени по недоразумению. В формулировке задачи передачи данных абсолютное время (дэдлайны) не входит никоим образом. От данных требуется только поступать последовательно. Поэтому строго говоря ни факс, ни передача данных по TCP/IP не являются задачами реального времени (можно буферизировать как угодно, и достаточно гарантировать среднее, а не максимальное время реакции системы). Обработка звука является очевидно задачей реального времени, поскольку абсолютное время есть координата сигнала и отсчёты должны быть обработаны и доставлены за время ограниченых временных дэдлайнов. Нарушение дэдлайнов приводит к такой ситуации, когда передачу лучше было бы не начинать - ведь поезд уже ушёл. Передача речи UDP-дэйтаграммами, конечно, уже есть задача реального времени. А передача файлов - наоборот нет. Ну а самые главные задачи реального времени - это очевидно когда процессор используется в контуре управления в цепи обратной связи. Существование значительного разброса времени реакции делает такую систему не только бесполезной, но и вредной. Большинство если не все знаменитые коммерческие РТОС (WxWorks, pSOS) в действительности не гарантируют максимальное время реакции, обеспечивая только среднее (во всяком случае в масштабе мсек или даже десятков мсек), поэтому настоящие универсальные РТОС так не популярны в мире DSP. Хотя если говорить о таких гарантиях - то их может обеспечивать только программно-аппаратный комплекс, но никак не универсальная РТОС самостоятельно.
Сообщение отредактировал fontp - Feb 22 2006, 08:53
|
|
|
|
|
Feb 22 2006, 09:43
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата(TMX @ Feb 22 2006, 04:13)  По-моему, автор дал описание архитектуры "cyclic executive". Которая обеспечивает жесткое РВ для выделенного круга задач. Не понимаю, правда, причем тут ОС. Т.е. неясно, зачем сохранять и восстанавливать контекст, если задачи и драйверы не вытесняют друг друга... Противоречие какое-то. Представьте, что на время выполнения каждой задачи отводится фиксированный фрейм, а выполняется задача гораздо дольше. В следующем фрейме будет выполняться уже другая задача. Т.е. необходимо сохранить/восстановить, регистры и т.д. Цитата(Olej @ Feb 22 2006, 02:07)  Цитата(st256 @ Feb 21 2006, 18:53)  Тогда я пытаюсь разобраться или хотя бы понять, что мне тут не надо разбираться, не мой профиль, не моя компетенция. Но объяснять неучу, что TCP/IP не реал-тайм, простите, не стану. Потом ему придется объяснять правила сложения и конца этому не будет.
Ну, вы пока можете попытаться объяснить, в меру понимания, хоть то, что есть профиль - что такое риал-тайм... Да фиг его знает, что это такое... Вроде - фрукты... Цитата А там и я, может быть, объясню, почему и TCP/IP даже, при определённых условиях - может быть компонентом очень даже hard realtime системы  ... Не утруждайте себя. Я уже понял, что это тот самый реал-тайм и есть, собственной персоной...
|
|
|
|
|
Feb 22 2006, 10:01
|
Местный
  
Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458

|
Цитата(fontp @ Feb 22 2006, 12:47)  Olej Иванович, не горячись. Да я и не горячусь  - меня просто в заблуждение ввело название темы: "Народ, что думаешь...". Но если обсудить - то обсудить, а если ... "губки надувать" будем - так это о другом совсем... Цитата(fontp @ Feb 22 2006, 12:47)  Поэтому строго говоря ни факс, ни передача данных по TCP/IP не являются задачами реального времени (можно буферизировать как угодно, и достаточно гарантировать среднее, а не максимальное время реакции системы). Обработка звука является очевидно задачей реального времени, поскольку абсолютное время есть координата сигнала и отсчёты должны быть обработаны и доставлены за время ограниченых временных дэдлайнов. Нарушение дэдлайнов приводит к такой ситуации, когда передачу лучше было бы не начинать - ведь поезд уже ушёл.
Передача речи UDP-дэйтаграммами, конечно, уже есть задача реального времени. А передача файлов - наоборот нет. Вот я о том же и говорил: "... почему и TCP/IP даже, при определённых условиях ...". Только не нужно так сужать к конкретностям: а что, если поток поступает не в UDP-дэйтаграммах, а через TCP-поток, или вообще совершенно другим протоколом ... или если это не передача речи, а поток радиолокационного скана - то от этого что-то меняется? И как только появляется асинхронный поток внешних событий - то же поступление блоков данных - и синхронным полингом round-robin, по крайней мере без развитого API примитивов взаимной синхронизации (что тоже всегда "вытеснение") N задач - не обойтись. А что касаемо "одноприоритетности"? ... то почти всегда и в исполняющей системе, допускающей множество приоритетов - можно реализовать и одноприоритетное построение (просто не использовать), и часто такие решения оказываются особенно "красивыми" (кстати, Дейкстра свои "взаимодействия последовательных процессов", откуда всё и пошло - всегда описывал в безприоритетной абстракции), но ... роль и разнообразие примитивов синхронизации и изощрённость (или тщательность?) их использования - намного возрастает. И такая реализация уже становится ближе к области "искусства", но и гарантия обеспечения deadline-ов в любых стечениях обстоятельств - относится на совесть "художника". А в том же Частотном Монотонном Анализе (одна из моделей, которые я упоминал), обязательным условием реализации которого является: "для каждой параллельной ветки - свой уровень приоритета, отличный от всех других" - гарантия обеспечивается (и доказывается!) строгой математической моделью.
|
|
|
|
|
Feb 22 2006, 10:06
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата(Vic1 @ Feb 22 2006, 15:55)  st256, спасибо за леди (а то как уж тут только не обижала молодежь зеленая). Не, тут такое дело, я только с леди разговариваю. А если она не леди, то я с ней не общаюсь. Незачем. Цитата Вообще то, лучше Olej критику Вам никто и не скажет. Да уж... Цитата Для того, чтобы заявлять "Я написал RTOS" нужно по минимуму хоть архитектуру операционных систем знать. Поэтому, я не заявляю, а тихо пишу. Прям щас. А архитектуры, которые я знаю (правда я мало их знаю), для DSP очень неудачные. Вы думаете, я сам такие вещи делаю от неимения, чем заняться? Увы, это не так... Просто, сравнительный анализ портов чужих RTOS приводит меня в депрессию. А работу надо сдавать в любом случае.... Хотя между собой, то, что я описал мы зовем scheduler (планировщик). RTOS это исключительно для яркости оперения. Цитата Ответы в форуме - короткие по форме (доброжелательные по содержанию), Дык пока я перед всеми расшаркиваться буду, меня подпишут на бесплатное преподавание DSP. Я этим и так в двух ВУЗах занимаюсь... А так: сказал, что TCP/IP - реал тайм, и сразу свободен. Цитата не рецензию же Вам на статью писать. Умейте читать между строк, уточняйте, если кажется, что Вас не понимают. А разводить базар, как Вы говорите, на пустом месте - пользы для Вас точно не будет (желания беседовать/критиковать пропадет). Уж лучше тогда с Olej побеседовать на более захватывающие темы (место ОС в мире Embedded: когда есть необходимость в ОС, а когда нет; ОС - это не только (наверно и не столько) real time, сколько концепция ввода/вывода, модульность, многопроцессность и т.п.; какую дополнительную технологичность представляет ОС разработчику). У Вас, повторюсь, проблемно-ориентированное ПО (под определенную задачу). Для того, чтобы понять эту задачу, Вам и задают вопросы. Я просто экономлю свое время. Зачем мне говорить про ввод/вывод, модульность и многопроцессность (и даже многопроцессорность), если про это я знаю (из-за специфики работы) и так совсем неплохо?
|
|
|
|
|
Feb 22 2006, 11:27
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
[quote name='fontp' date='Feb 22 2006, 17:47' post='89265'] Olej Иванович, не горячись. 256-ой известный корейский провокатор. Бывший с Самсунга  . Но специалист он грамотный. Только зря он заговорил про RTOS. То что он описывает всегда называлось framework. [/qoute] Ув. г-н Фунт... т.е.Фонт... в смысле fontp! Во-первых, я никогда не работал в Самсунге, т.е. Вы обманываете. Во-вторых, то про что я заговорил framework-ом никак быть не может. Что это такое, рекомендую узнать в словаре, или на худой конец в ближайшем офисе Майкрософт, где Вы получите первичные сведения о MFC  т.е. Вы обманываете вторично. В-третьих... Т.к. Вы обманули дважды, то, сами понимаете, вероятность того, что Вы надули аудиторию, называя меня провокатором, очень высока. И тогда с Ваших слов получается, если провокатор один из нас, то это именно Вы. В-четвертых. Ничего не имею против Вашего понимания Real-Time.
|
|
|
|
|
Feb 22 2006, 11:40
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(st256 @ Feb 22 2006, 14:27)  Ув. г-н Фунт... т.е.Фонт... в смысле fontp! Во-первых, я никогда не работал в Самсунге, т.е. Вы обманываете. Во-вторых, то про что я заговорил framework-ом никак быть не может. Что это такое, рекомендую узнать в словаре, или на худой конец в ближайшем офисе Майкрософт, где Вы получите первичные сведения о MFC  т.е. Вы обманываете вторично. В-третьих... Т.к. Вы обманули дважды, то, сами понимаете, вероятность того, что Вы надули аудиторию, называя меня провокатором, очень высока. И тогда с Ваших слов получается, если провокатор один из нас, то это именно Вы. В-четвертых. Ничего не имею против Вашего понимания Real-Time. Сами Вы Фунт А что такое Майкрософт? У нормальных людей scheduler есть часть framework. Или теперь TI и AD называют ЭТО Real-Time Kernel (DSP/BIOS и VDK, соответственно). Кстати на них отлично строится одноприоритетная система. Но они не имеют такой наглости называть ЭТО RTOS
Сообщение отредактировал fontp - Feb 22 2006, 12:18
|
|
|
|
|
Feb 22 2006, 11:55
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата(Olej @ Feb 22 2006, 19:01)  Вот я о том же и говорил: "... почему и TCP/IP даже, при определённых условиях ...". Только не нужно так сужать к конкретностям: а что, если поток поступает не в UDP-дэйтаграммах, а через TCP-поток, или вообще совершенно другим протоколом ... или если это не передача речи, а поток радиолокационного скана - то от этого что-то меняется? И как только появляется асинхронный поток внешних событий - то же поступление блоков данных - и синхронным полингом round-robin, по крайней мере без развитого API примитивов взаимной синхронизации (что тоже всегда "вытеснение") N задач - не обойтись. Что такое реал тайм? Вообще-то это очень просто. Пусть у Вас на проце одновременно работают МР3 и эквалайзер. Теперь представте, что кто-то перестроил эквалайзер. Т.е. была запущена (параллельно проигрыванию трека) задача пересчета коэффициентов. Так вот система Real-Time только тогда если Вы гарантируете, что звук НИКОГДА не будет прерываться (из-за загрузки проца пересчетом, это очень вероятно). Если гарантируете ( а не говорите, что этого не случится с вероятностью 90%) то сее - real-time. Не можете гарантировать? Ну тогда и TCP/IP можно назвать реалтайм... Только заказчики Вас, боюсь, поймут превратно. Примерно как я. Кстати, забудьте про "развитый API примитивов взаимной синхронизации". Я ограничился только одним флагом (0 или 1). Все прекрасно работало. Цитата А что касаемо "одноприоритетности"? ... то почти всегда и в исполняющей системе, допускающей множество приоритетов - можно реализовать и одноприоритетное построение Попробуйте это сделать в uCOS Цитата (просто не использовать), и часто такие решения оказываются особенно "красивыми" (кстати, Дейкстра свои "взаимодействия последовательных процессов", откуда всё и пошло - всегда описывал в безприоритетной абстракции), но ... роль и разнообразие примитивов синхронизации и изощрённость (или тщательность?) их использования - намного возрастает. И такая реализация уже становится ближе к области "искусства", но и гарантия обеспечения deadline-ов в любых стечениях обстоятельств - относится на совесть "художника". А в том же Частотном Монотонном Анализе (одна из моделей, которые я упоминал), обязательным условием реализации которого является: "для каждой параллельной ветки - свой уровень приоритета, отличный от всех других" - гарантия обеспечивается (и доказывается!) строгой математической моделью. Вот отдельно пройдусь на счет "красоты". А Вы когда-нибудь видели дезассемблер реализации семафора? Или, на худой конец, обработчика прерываний? Вся эта красота идет в мусорную корзину, когда Вам ставят задачу, допустим, минимизировать потребление. После этого, разработчик выкидывает мудрые книжки, написанные людями, далекими от DSP, RTOS, Real-Time и начинает потихоньку кропать на асме. А про оси, писаные на Сях, начинают говорить другие, еще не оперившиеся любители красивых англоязычных терминов...
|
|
|
|
|
Feb 22 2006, 12:35
|

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

|
Цитата(st256 @ Feb 22 2006, 13:55)  После этого, разработчик выкидывает мудрые книжки, написанные людями, далекими от DSP, RTOS, Real-Time и начинает потихоньку кропать на асме. Вы ошибаетесь. Жестоко. Могу только пожелать со временем понять это с минимальными последствиямми для Вашей собственной шкуры.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 22 2006, 12:40
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата Цитата Ув. г-н Фунт... т.е.Фонт... в смысле fontp! Во-первых, я никогда не работал в Самсунге, т.е. Вы обманываете. Во-вторых, то про что я заговорил framework-ом никак быть не может. Что это такое, рекомендую узнать в словаре, или на худой конец в ближайшем офисе Майкрософт, где Вы получите первичные сведения о MFC  т.е. Вы обманываете вторично. В-третьих... Т.к. Вы обманули дважды, то, сами понимаете, вероятность того, что Вы надули аудиторию, называя меня провокатором, очень высока. И тогда с Ваших слов получается, если провокатор один из нас, то это именно Вы. В-четвертых. Ничего не имею против Вашего понимания Real-Time. Сами Вы Фунт Нет, я - st256. Это у меня в паспорте записано. Техническом. Цитата А что такое Майкрософт? Не скажу. А Вы будете теперь мучиться любопытством. Причем в конвульсиях. Цитата У нормальных людей scheduler есть часть framework. Значит Linux делали ненормальные люди. Я им передам Ваше мнение о них. Цитата Или теперь TI и AD называют ЭТО Real-Time Kernel (DSP/BIOS и VDK, соответственно). Кстати на них отлично строится одноприоритетная система. Но они не имеют такой наглости называть ЭТО RTOS ДА НУ??? Про AD не знаю, но TI прямо-таки надрывается в своих буклетах, говоря о некой навороченной RTOS. Но Вы им не верьте. Такую гнусь как DSP/BIOS не то, что операционной, а просто системой назвать нельзя. У меня при ее упоминании повышается психомоторика, слюноотделение и уровень желчи в организме. Со мой так нильзя. Меня так испортить можно...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|