Страниц: 1 2 [3] 4 5 ... 14
  Печать  
Автор Тема: Объясните ламеру, что такое ОС реального времени ?  (Прочитано 80273 раз)
kors
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #30 : Июля 03, 2003, 04:14:00 pm »


Olej пишет:

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



Почему же неприличное ? Очень даже логичное предположение. Никакая сетка приоритетов не заменит грамотного проектирования. А коли так, то очень широкая сетка и не нужна. В принципе - 32 уровней 4.X хватало для подавляющего числа задачь. Когда мы делали осрв для распределенных подводных станций мониторинга среды , у нас было 16 уровней и все управляющие процессы чудно работали на средствах синхронизации.

ЗЫ: к тем четырем пунктам - я бы исключил первый =)
Мне думается, что наличие нескольких дисциплин планирования , a la FIFO, RR, в данном случае гораздо полезнее.

офтопик:
Олег, а что с почтой ? или адрес поменялся ? olej@lot.kharkov.ua ?

----- Transcript of session follows -----
olej@lot.kharkov.ua.KAV... Deferred: lot.kharkov.ua.: No route to host
Warning: message still undelivered after 4 hours
Will keep trying until message is 5 days old

есть мысли о статье "Служба времени" =)
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #31 : Июля 03, 2003, 06:04:00 pm »


kors пишет:
На мой взгляд - язык, как и средства отимизации непосредственно к реалтайму отношение имеют малое.
...
Вообще язык - лишь средство выражения мысли. =)
...
Ну а язык, язык это вторично, хотя гвозди патефоном забивать, а, конечно, не предлагаю


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

Поищите и почитайте известное "Открытое письмо в IEEE" Э.Дейкстры в котором он требует "...считать обучение программированию на BASIC - уголовным преступлением, с последующими последствиями...". Дэйкстра писал это не 1-го апреля.

Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #32 : Июля 03, 2003, 06:20:00 pm »


kors пишет:
офтопик:
Олег, а что с почтой ? или адрес поменялся ? olej@lot.kharkov.ua ?

----- Transcript of session follows -----
olej@lot.kharkov.ua.KAV... Deferred: lot.kharkov.ua.: No route to host
Warning: message still undelivered after 4 hours
Will keep trying until message is 5 days old
есть мысли о статье "Служба времени" =)


1. - это адрес - служебный ... я на этой "службе" сейчас бываю не чаще max 2-3 раза в неделю;
2. - там у них шлюз Linux в Internet накрылся - видать ещё не починили;
3. - пишите мне лучше: olej@front.ru - оттуда всё равно во все мои адреса - ретранслируют (найдут);
4. - а предмет этот, о котором мысли - мне сильно интересен;
5. - но там и тема соотвествующая есть в форуме - оттуда всё и началось, может туда?
Записан
kors
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #33 : Июля 03, 2003, 06:36:00 pm »


Olej пишет:

kors пишет:
На мой взгляд - язык, как и средства отимизации непосредственно к реалтайму отношение имеют малое.
...
Вообще язык - лишь средство выражения мысли. =)
...
Ну а язык, язык это вторично, хотя гвозди патефоном забивать, а, конечно, не предлагаю


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

Поищите и почитайте известное "Открытое письмо в IEEE" Э.Дейкстры в котором он требует "...считать обучение программированию на BASIC - уголовным преступлением, с последующими последствиями...". Дэйкстра писал это не 1-го апреля.



Любое утверждение можно довести до абсурда.
Однако же не стоит смешивать проектирование и программирование, как это теперь модно в сентенциях об объектном подходе. Вообще говоря, тот же Дейкстра говорил: "Покажите мне ваши структуры данных и, возможно, мне не потребуется смотреть ваш код". Выразительные средства языка, оптимизация компилятора, etc, могут помогать, но не являются первичным и определяющими факторами успеха разработки системы.

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

"Известно, что 1-й (хронологически) используемый язык программирования, используемый программистом - накладывает неизгладимый стиль на всю его последующую продукцию..." - это не является абсолютной истиной и более справедливо для самообразования. Помимо средств выражения мысли есть еще и общая культура, стиль общения, культура мышления,если хотите.  Первым языком Лермонтова и Агутина (об Агутине, конечно, я делаю лишь предположение =) )  был русский, но какие разительные отличия в самовыражении.

А первое апреля... мне вообще симпатичны люди, которые говорят с юмором вне зависимости от календаря. Продолжая мысль Дейкстры, можно сказать, что преступлением, так же, является и обучение программированию с использованием MFС в рамках ОС Windows, ибо бессистемность API губительно скажется на способности обучаемых мыслить системно...
Записан
kors
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #34 : Июля 03, 2003, 06:45:00 pm »


Olej пишет:
3. - пишите мне лучше: olej@front.ru - оттуда всё равно во все мои адреса - ретранслируют (найдут);
4. - а предмет этот, о котором мысли - мне сильно интересен;


переслал на front.ru  


Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #35 : Июля 03, 2003, 07:36:00 pm »


kors пишет:
переслал на front.ru  


Я .. я (нем.) - пишите мне на фронт...
Забрал, там довольно много, почитаю - пообсуждаем... отвечу.

P.S. А ещё dmi сделал нам такую славную плюшку, как "личные сообщения" на форуме...


[ Это Сообщение было отредактировано: Olej в 2003-07-03 16:41 ]
Записан
zeus
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #36 : Июля 03, 2003, 07:41:00 pm »


Olej пишет:
Так, да не совсем так...
Прежде, чем ... вот это "выражение мысли" - нужно сначала выработать привычку эти вот мысли "продуцировать" ... а вот этот "образ мышления" - он очень сильно определяется теми выразительными средствами, которыми вы пользуетесь. Известно, что 1-й (хронологически) используемый язык программирования, используемый программистом - накладывает неизгладимый стиль на всю его последующую продукцию...


Ну я вот тут попробовал применить ето утверждение к себе...
1-й хронологически действительно изучавшийся это... Forth...
Какие будут предположения??
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #37 : Июля 03, 2003, 08:04:00 pm »


zeus пишет:
Ну я вот тут попробовал применить ето утверждение к себе...
1-й хронологически действительно изучавшийся это... Forth...

Ну не следует же всё так прямолинейно... применять
Forth - ну что же - хорошее "стековое" мышление...
Записан
Evgeniy
Jr. Member
**
Offline Offline

Сообщений: 73


Просмотр профиля
« Ответ #38 : Июля 03, 2003, 09:02:00 pm »


Olej пишет:
Поищите и почитайте известное "Открытое письмо в IEEE" Э.Дейкстры в котором он требует "...считать обучение программированию на BASIC - уголовным преступлением, с последующими последствиями...". Дэйкстра писал это не 1-го апреля.


Аналогичным образом высказывался Ершов (статья кажется называлась "Лексикон программирования"). Цитирую по памяти
"Часто в литературе можно встретить названия типа "Структурное программирование на КОБОЛе". Естественно каждому ясно, что это всего лишь костыли, гуманно предлагаемые людям, искалеченным смолоду..."

2kors
Действительно, вопросы возможной оптимизации в разных языках программирования можно отнести к "величинам второго порядка малости" Я не собирался акцентировать на этом внимания - в этом вопросе есть вещи куда более существенные, такие как встроенный в язык параллелизм, средства синхронизации, контроль за временем жизни данных и указателей на них, управление памятью и т.п., что напрямую влияет на надежность создаваемой программы или затраты на ее обеспечение.
Вы правы в том, что объектная архитектура, объектное проектирование и объектное программирование вещи разные, но всегда хорошо (в смысле затрат и надежности конечного продукта), когда во всем процессе разработки применяются подходы и средства с соответствующими друг другу семантическими уровнями.
Записан
Evgeniy
Jr. Member
**
Offline Offline

Сообщений: 73


Просмотр профиля
« Ответ #39 : Июля 03, 2003, 10:20:00 pm »


klalafuda пишет:

btw fun link: http://www.oreilly.com/catalog/opensources/book/appa.html

"The Tanenbaum-Torvalds Debate" Solid kernel vs Micro kernel

// wbr


Не столько смешно сколько грустно...
В результате у меня сложилось очень нелестное мнение о Таненбауме как о специалисте. Я даже не говорю о смешении понятий "архитектура" и "способ сборки" системы. Даже фактические утверждения не лезут ни в какие ворота: с каких это пор OS/360 собиралась в один файл? Как сейчас помню транзитные библиотеки ядра (типа SYS1.SVCLIB). Да и MSDOS всегда состояла минимум из трех файлов, считая ROM BIOS...
Торвальдс, правда, смотрится не намного лучше со своими заявлениями типа "Да, микроядро лучше, но я все равно делал и буду делать монолит"...

В общем, полный мрак ...
Записан
klalafuda
QOR.Team
****
Offline Offline

Сообщений: 1


Просмотр профиля
« Ответ #40 : Июля 03, 2003, 10:28:00 pm »


Evgeniy пишет:

klalafuda пишет:

btw fun link: http://www.oreilly.com/catalog/opensources/book/appa.html

"The Tanenbaum-Torvalds Debate" Solid kernel vs Micro kernel

// wbr


Не столько смешно сколько грустно...
В результате у меня сложилось очень нелестное мнение о Таненбауме как о специалисте. Я даже не говорю о смешении понятий "архитектура" и "способ сборки" системы. Даже фактические утверждения не лезут ни в какие ворота: с каких это пор OS/360 собиралась в один файл? Как сейчас помню транзитные библиотеки ядра (типа SYS1.SVCLIB). Да и MSDOS всегда состояла минимум из трех файлов, считая ROM BIOS...
Торвальдс, правда, смотрится не намного лучше со своими заявлениями типа "Да, микроядро лучше, но я все равно делал и буду делать монолит"...

В общем, полный мрак ...


зато, так упомянывается QNX. правда, единожды

// wbr
Записан
kors
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #41 : Июля 04, 2003, 02:51:00 pm »


Evgeniy пишет:
  Торвальдс, правда, смотрится не намного лучше со своими заявлениями типа "Да, микроядро лучше, но я все равно делал и буду делать монолит"...

 "Азартен, Парамоша"(с)
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #42 : Июля 04, 2003, 11:56:00 pm »

Вот, к требованиям "что есть ОСРВ", и к тем 4-м(?) требованиям, которые в ней должны быть реализованы, чтоб не придумывать, то - что попалось сегодня под руку:

1. Операционные системы реального времени и Windows NT,
Евгений Хухлаев huh@spp.keldysh.ru,
ИПМ им. М. В. Келдыша РАН, Москва
17.05.1997 Открытые системы, #05/1997
Постоянный адрес статьи: http://www.osp.ru/os/1997/05/48.htm

Требование 1. ОС РВ должна быть многонитевой и допускать вытеснение (preemtible). Предсказуемость достигается, если в ОС допускается много параллельных потоков управления (нитей), а диспетчер ОС может прервать выполнение любой нити (вытеснить ее) в системе и предоставить ресурсы той нити, которой они требуются в первую очередь. ОС и аппаратная
архитектура также должны предоставлять множество уровней прерываний, чтобы вытеснение было возможно и на уровне прерываний.

Требование 2. Диспетчеризация должна осуществляться на базе приоритетов. Основная сложность диспетчеризации заключается в том, чтобы обнаружить, какая именно нить нуждается в ресурсах в первую очередь. В идеале ОС РВ предоставляет ресурсы той нити или драйверу, которым осталось меньше всего времени до установленного срока. Чтобы сделать это, ОС должна знать, когда нить обязана завершить свою работу и сколько времени ей
понадобится. Поскольку это очень трудно реализовать, таких ОС пока еще не существует. Поэтому механизм диспетчеризации потоков управления в современных ОС базируется на понятии приоритета: ресурсы предоставляются нити с наивысшим приоритетом.

Требование 3. Механизм синхронизации нитей должен быть предсказуемым. Механизм захвата ресурсов и межнитевых связей необходим, поскольку нити разделяют общие ресурсы.

Требование 4. Должна существовать система наследования приоритетов. Разделение нитями с разными приоритетами общих ресурсов может привести к классической проблеме инверсии приоритетов. Такая проблема возникает, если имеется по крайней мере три нити. Если нить с низшим приоритетом захватит ресурс, разделяемый с нитью высшего приоритета, тогда нить со
средним приоритетом будет выполняться, а нить с высшим приоритетом будет приостановлена до тех пор, пока захваченный ресурс не освободится, что произойдет только тогда, когда нить с низшим приоритетом получит управление и завершит работу, связанную с захваченным ресурсом. В этом случае время, необходимое для завершения нити с высшим приоритетом,
зависит от нити с низшим приоритетом. Этот случай называется инверсией приоритета. Ясно, что в такой ситуации трудно уложиться в заранее установленный лимит времени.

Чтобы избежать этого, ОС РВ должна допускать "наследование" приоритета, подталкивая нить с низшим приоритетом. Наследование приоритета означает, что блокирующая нить наследует приоритет нити, которую она блокирует (конечно, только если последняя обладает более высоким приоритетом).

Требование 5. Временные характеристики ОС должны быть предсказуемы и известны. Разработчик СРВ должен знать, сколько времени затрачивается на ту или иную системную работу. Кроме того, должны быть известны уровни системных прерываний и уровни IRQ (линий запросов прерываний) драйверов устройств, максимальное время, которое они затрачивают и т.п.

Еще одним важным требованием к СРВ является одновременная обработка событий: если несколько событий происходят одновременно, все они должны быть обработаны своевременно. Это означает, что имманентным свойством системы реального времени должен быть параллелизм. Чтобы этого добиться, необходимо установить более одного процессора или придерживаться многозадачного подхода.

2. ОПЕРАЦИОННЫЕ СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ
Жданов А.А., ЗАО "РТСофт"
(доклад из сборника докладов одной из конференций,URL которого указан где-то здесь в форуме Олегом Плезером).

1) Система должна успеть отреагировать на событие, произошедшее на объекте, в течение времени, критического для этого события (meet deadline). Величина критического времени для каждого события определяется объектом и самим событием, и, естественно, может быть разной, но время реакции системы должно быть предсказано (вычислено) при создании системы. Отсутствие реакции в предсказанное время считается ошибкой для систем реального
времени.

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

3. "Проект 'Neutrino': В поисках Святого Грааля" И. Н. Коваленко, 1997 - это большинство знают:

1. Система должна реагировать на события, успевая обработать их за фиксированное время или к фиксированному моменту времени (далее - "временные рамки'); Для выполнения этого требования система должна обладать предсказуемостью, которую не следует путать с производительностью. Никакой процессор не сделает Windows 3.1 предсказуемой.

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

В то-же время, можно взять некоторую ОС и на ее основе создать систему реального времени. При условии, что такая ОС отвечает по крайней мере следующим требованиям:

1. ОС должна поддерживать вытесняющую многопоточность (preemptive multi-threading) и мультипроцессорные архитектуры;

2. Аппаратная архитектура должна поддерживать несколько уровней прерываний (interrupt levels) а ОС должна обеспечивать вытеснение (preemption) обработчиков прерываний;

3. Каждая нить управления (thread) должна иметь способ выражения собственной важности. В идеале планировщик должен предоставлять процессор той нити, у которой осталось меньше всего времени до исчерпания ее временных рамок (алгоритм, известный как EDF - Earliest Deadline First). Однако, учитывая сложность реализации такой схемы, можно считать достаточным наличие приоритетов у нитей, при условии поддержки достаточно большого количества уровней приоритетов;

4. ОС должна обеспечивать предсказуемые механизмы для синхронизации между нитями и взаимодействия процессов, разрешающие проблему 'инверсии приоритетов'. Это означает, что как при передаче данных, так и при синхронизации нитей должно обеспечиваться 'наследование приоритетов'.

5. Поведение самой ОС после системных вызовов и наступления событий должно быть предсказуемо и известно заранее. Это означает, что разработчики ОС должны специфицировать такие временные характеристики, как 'задержка обработки прерывания' (interrupt latency), максимальное время маскировки прерываний а также максимальное время исполнения всех системных вызовов.

6. ОС должна быть способна работать в ограниченных ресурсах, особенно это касается оперативной памяти;

7. Стоимость системы при массовых тиражах должна быть достаточно низкой;

8. ОС должна обеспечивать API и нижележащий сервис, соответствующий по структуре и реализации требованиям систем реального времени;

В общем - практически совпадает... и одновременно: как-то всё сильно обще...
Записан
kors
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #43 : Июля 07, 2003, 06:24:00 pm »


Olej пишет:
В общем - практически совпадает... и одновременно: как-то всё сильно  обще...



Дык сторонних факторов очень много.

Добавил бы еще один аспект - умение планировщика бороться с дедлоками.
Или "поддержка механизмов предотвращения, обнаружения и устранения дедлоков". Свойство опциональное, но весьма полезное.
Записан
vlad
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #44 : Июля 08, 2003, 08:57:00 am »


kors пишет:
Добавил бы еще один аспект - умение планировщика бороться с дедлоками.
Или "поддержка механизмов предотвращения, обнаружения и устранения дедлоков". Свойство опциональное, но весьма полезное.

тут более важно умение разработчика бороться с ними
Записан
Страниц: 1 2 [3] 4 5 ... 14
  Печать  
 
Перейти в: