Здравствуйте, htfv, Вы писали:
H>Повторяю. В классической системе на основе микроядра основные компоненты операционной системы выполняются как отдельные процессы в собственных адресных пространствах. Это включает в себя и менеджер памяти, и файловые системы (которые, кстати, можно реализовать в user mode'е и в NT), и менеджер потоков (примерно как fiber'ы в NT).
То что ты повторил, это ничего не объясняет.
Ядра различаются по структуре в первую очередь.
Далее по функцинальной начинке.
А ты рассказываешь про реализацию.
Микроядро — микро означает микрооперации. Размер ядра — это косвенный показатель. Обычно микроядра меньше модульных. Если из ядра от линукса выбросить все подрят, это не значит, что он станет микро.
Все процессы Процесыы — вне ядра. H>Вопрос о realtime OS серьезно не изучал. Это довольно специфичный предмет. Сказать, что без микроядра реалтайма нет, я не могу. Не вижу причин. Просто NT не разрабатывалась как реалтайм ОС и не преследует такой цели. Вот и все.
Вот и изучи ядра QNX,Chorus, Mesh и расскажи нам, почему они микро (а QNX — микромикро — нейтринное)
Здравствуйте, AndrewVK, Вы писали:
OE>>Тут не время играет роль. Для реалтайма строго детерминированное время отклика системы.
AVK>Нет. Реалтайм это когда гарантированно непревышение времени отклика определенной величины.
Непревышение времени — это растяжимое понятие.
Случайная величина характеризуется матожиданием и дисперсией.
Детерминированное время отклика — это теоретический прием.
Реально дисперсия времени отклика стремится к нулю.
AVK>Максимальное.
OE>>Ответа при большой загрузке можно и не дождаться.
AVK>Для realtime priority не может быть большой нагрузки, все стоят и курят. В этот момент даже мыша по экрану не ездит.
Вот это и означает, что отклика не детерминировано. Иначе мыша бы двигалась, хоть с запозданием.
AVK>Можно конечно сделать несколько реалтайм потоков, но тут уж ты сам себе злобный буратина.
Здравствуйте, old->*Plutonia_Experiment(), Вы писали:
OE>Удинственно, что можно сделать с ДОС для реалтайма — переключиться в защищенный режим OE> (EMM386, DOS4GW,DPMI ) и самому написать реалтайм ядрышко — но это уже не ДОС.
ДОС позволяет отдать все ресурсы одной задаче и уж точно не может выполнять паралеллно ничего лишнего. Я слышал о многих реалтайм-проектамх на ДОС.
OE>Время отклика не детерминировано и нет многозадачности встроенной.
Время отклика зависит исключительно от прикладного кода. Потому и для задач таких подходит. Не шик конечно, но зато все под контролем.
OE>Многозадачность довольно сложно реализовать из-за нереентерабельности ДОС.
Зачастую это и не нужно. Ну зачем многозадачность, например, для считывания и предварительной обработки неготорого аппаратного датчика?
OE>Я пять лет программил под ДОС на всем почти, что было — TP,BP,TC,BC,ASM + машинные коды и реалтайма нашел не очень много.
Т.е. все таки нашел?
OE>О каком реалтайме может идти речь, если в момент, когда дос внутри себя, OE>не будет отклика ни на что ?
Дык ОС так мало делает сама, что почти все время отдается под задачу. В конце концов для конкретной задачи важно чтобы задержка была детерминированной. Если она приемлема, то и вопростов нет. В NT же в пользовательском режиме нет кикаких гарантий. Извартиться конечно можно, но не просто.
Здравствуйте, VladD2, Вы писали:
OE>>Удинственно, что можно сделать с ДОС для реалтайма — переключиться в защищенный режим OE>> (EMM386, DOS4GW,DPMI ) и самому написать реалтайм ядрышко — но это уже не ДОС.
VD>ДОС позволяет отдать все ресурсы одной задаче и уж точно не может выполнять паралеллно ничего лишнего. Я слышал о многих реалтайм-проектамх на ДОС.
1.Реал тайм под ДОС реализуются с помощью специальных библиотек для защищенного режима. Иначе не выйдет.
2. Сам ДОС не является ядром системы реального времени — только как вспомогательный элемент для файловых операций ввиду простоты.
Я как то работал в реал-тайм проете под ДОС. Сама система была примерно из сотни 8086 и 80286.
ДОС там использовался только как монитор событий и хранилище.
Надо конкретнее.
OE>>Время отклика не детерминировано и нет многозадачности встроенной.
VD>Время отклика зависит исключительно от прикладного кода. Потому и для задач таких подходит. Не шик конечно, но зато все под контролем.
1. Здесь нужна реакция на внешние прерывания, а их можно и не получить под ДОС.
2. Контекст приходится переключать самому — это довольно долго. В защищенном режиме это делается аппаратно.
3. ДОС — медленная 16ти разрядная система. Для 32х разрядов нужен защищенный режим.
OE>>Многозадачность довольно сложно реализовать из-за нереентерабельности ДОС.
VD>Зачастую это и не нужно. Ну зачем многозадачность, например, для считывания и предварительной обработки неготорого аппаратного датчика?
Аппраратный датчик может быть опрошен только тремя способами
Вввод-вывод без прерываний — если ДОС занят, то никак не опросишь
Ввода-вывод по прерываниям — в прерывании, если прервали ДОСю, много не сделаешь, для это и есть int 21h ah=34h
Ввода-вывод с DMA — это занятие для самоубийцы, и во время обработки ничего
Один аппаратный датчик — это вырожденный случай.
Обычно надо опрашивать устройство или несколько датчиков.
OE>>Я пять лет программил под ДОС на всем почти, что было — TP,BP,TC,BC,ASM + машинные коды и реалтайма нашел не очень много.
VD>Т.е. все таки нашел?
Только в средствах реального времени, которые ДОСом то и не являются.
Здравствуйте, old->*Plutonia_Experiment(), Вы писали:
OE>Сам ДОС — это монолитная архитектура с модульным уклоном. Причем архитектура весьма четкая и простая. OE>Время отклика не детерминировано и нет многозадачности встроенной. OE>Многозадачность довольно сложно реализовать из-за нереентерабельности ДОС. OE>Я пять лет программил под ДОС на всем почти, что было — TP,BP,TC,BC,ASM + машинные коды и реалтайма нашел не очень много.
Слушай, у тебя реалтайм это чаша грааля какая то получается. Т.е. нечто недостижимое. Реалтайм это когда решаются задачи в реальном времени. И ничего более. Управление составом смеси фризера это реалтайм? Реалтайм. Работает под ДОС 3.3.
Здравствуйте, old->*Plutonia_Experiment(), Вы писали:
OE>1.Реал тайм под ДОС реализуются с помощью специальных библиотек для защищенного режима. Иначе не выйдет.
В упоминаемом мною фризере никаких защищенных режимов.
OE>Один аппаратный датчик — это вырожденный случай. OE>Обычно надо опрашивать устройство или несколько датчиков.
Для нескольких датчиков ставится такая железка, которая их собирает, а наружу смотрит один цифровой порт.
Здравствуйте, old->*Plutonia_Experiment(), Вы писали:
AVK>>Нет. Реалтайм это когда гарантированно непревышение времени отклика определенной величины.
OE>Непревышение времени — это растяжимое понятие.
Так и реалтайм понятие тоже растяжимое
AVK>>Для realtime priority не может быть большой нагрузки, все стоят и курят. В этот момент даже мыша по экрану не ездит.
OE>Вот это и означает, что отклика не детерминировано. Иначе мыша бы двигалась, хоть с запозданием.
Нет, это означает что все потоки остановлены, окромя твоего. Приоритет мышерисовальщика ниже, вот ему процессор и не дается.
На время отклика для самого потока сказываются только задержки в микроядре.
Здравствуйте, AndrewVK, Вы писали:
OE>>Сам ДОС — это монолитная архитектура с модульным уклоном. Причем архитектура весьма четкая и простая. OE>>Время отклика не детерминировано и нет многозадачности встроенной. OE>>Многозадачность довольно сложно реализовать из-за нереентерабельности ДОС. OE>>Я пять лет программил под ДОС на всем почти, что было — TP,BP,TC,BC,ASM + машинные коды и реалтайма нашел не очень много.
AVK>Слушай, у тебя реалтайм это чаша грааля какая то получается. Т.е. нечто недостижимое. Реалтайм это когда решаются задачи в реальном времени. И ничего более. Управление составом смеси фризера это реалтайм? Реалтайм. Работает под ДОС 3.3.
Если аггрегат генерирует события раз в пол часа и время отклика достаточно 10 минут, это не означает, что любая система, которая будет обрабатывать события, станет реалтайм.
ДОС — это не система реального времени. При чем здесь твой фризер ?
А операционная система реального времени — это действительно чаша грааля. Их есть только несколько, и те не всегда удовляют требованиям реалтайма.
Здравствуйте, AndrewVK, Вы писали:
AVK>Нет, это означает что все потоки остановлены, окромя твоего. Приоритет мышерисовальщика ниже, вот ему процессор и не дается. AVK>На время отклика для самого потока сказываются только задержки в микроядре.
Приоритет в системе реального времени определяет задержку обработки события.
Высой приоритет — малая задержка. Низкий — большая.
Если процессор не дается вообще — это дрянь, а не реалтайм.
И все.
А в Виндах события, сообщения имеют свойство теряться.
Пример — OS/2 при сколь угодно большой загрузке процессора(ну почти) можно перегрузить нажатием клавиш Ctrl-Alt-Del.
OS/2 — не является ОС РВ. Но ОС с элементами РВ. И это уже чувтвуется. Мультизадачность гораздо лучше, чем в NT.
Здравствуйте, old->*Plutonia_Experiment(), Вы писали:
OE>Если аггрегат генерирует события раз в пол часа и время отклика достаточно 10 минут, это не означает, что любая система, которая будет обрабатывать события, станет реалтайм.
Нет, не раз в полчаса. Хорошо, рассказываю что такое фризер.
Это некий аппарат, на вход которого подается молочная смесь, ароматизаторы и наполнители. Внутрях смесь смешивается с воздухом в строго определенной пропорции, потом к смеси добавляются ароматьизаторы, красители и наполнители, тоже, понятное дело, строго определенное количество. Производительность этого чудо-агрегата — сотня литров в минуту. Вот при времени отклика 10 мин ты и получишь куб отходов.
OE>ДОС — это не система реального времени. При чем здесь твой фризер ?
Если она позволяет решать реалтайм задачи значит она система реального времени. Остальное демагогия.
OE>А операционная система реального времени — это действительно чаша грааля. Их есть только несколько, и те не всегда удовляют требованиям реалтайма.
Здравствуйте, old->*Plutonia_Experiment(), Вы писали:
OE>Если процессор не дается вообще — это дрянь, а не реалтайм.
Это называется вытесняющая многозадачность.
OE>А в Виндах события, сообщения имеют свойство теряться.
Пошел, поехал. События тут при чем? Это уже не ядро, а пользовательская user32
OE>Пример — OS/2 при сколь угодно большой загрузке процессора(ну почти) можно перегрузить нажатием клавиш Ctrl-Alt-Del. OE>OS/2 — не является ОС РВ. Но ОС с элементами РВ. И это уже чувтвуется. Мультизадачность гораздо лучше, чем в NT.
Здравствуйте, AndrewVK, Вы писали:
OE>>А в Виндах события, сообщения имеют свойство теряться.
AVK>Пошел, поехал. События тут при чем? Это уже не ядро, а пользовательская user32
Так и на сеть она также реагирует. И на COM порт и на любой другой порт точно также.
На такой загрузке, когда ложится Винда, ОС РВ нормально работают. Потому их и сложно повалить дос-атакой.
А когда исследуются ядерные превращения, за доли секуны до взрыва как раз пиковая загрузка будет — надо все датчики опросить разом и отослать куда надо, перед тем как все вокруг испарится.
Основное требование в реализации ОС РВ — прерываемость в системной секции, отсутвует во всех Виндах, почти во всех юниксах и линуксе.
А вот в OS/2 это есть. (Вернее было, издохла эта система)
Здравствуйте, AndrewVK, Вы писали:
OE>>ДОС — это не система реального времени.
AVK>Если она позволяет решать реалтайм задачи значит она система реального времени. Остальное демагогия.
Она не решает задач РВ. ТОлько задачи, похожие на фризер — простые, не требующие паралелизма с достаточно большим временим отклика. Для каких еще РВ можно применить ДОС ?
Задачи реального времени:
— задача должна быть выполнена на коротком отрезке времени и через гарантированное время от нее должен быть получен ответ (режим работы в реальном времени),
— различные по времени и логике работы задачи подчинены друг другу и должны выполняться одновременно.
Как решаеются две эти задачи ?
Гарантированный ответ и параллелизм ?
Гарантированный ответ, если больше какого то минимума, вполне сойдет. Системы обычно считаются системами реального времени, если время их реакции имеет порядок миллисекунд — где это в ДОС ?
Там счет идет на десятки милисекунд, что на порядок больше.
И парраллелизма не будет
Итак
Дос — система, которая может решить некоторые задачи реального времени, не требующие малого времени отклика и парралелизма.
Значит, если система решает не все задачи РВ, является ОС РВ ?
Из моего опыта — ДОС применяли везде. Даже многооконные оболочки писали под него.
Единственное оправдание — простота, дешевизна, открытость консмтрукции.
Здравствуйте, AndrewVK, Вы писали:
OE>>ДОС — это не система реального времени. При чем здесь твой фризер ?
AVK>Если она позволяет решать реалтайм задачи значит она система реального времени. Остальное демагогия.
Здравствуйте, AndrewVK, Вы писали:
OE>>1.Реал тайм под ДОС реализуются с помощью специальных библиотек для защищенного режима. Иначе не выйдет.
AVK>В упоминаемом мною фризере никаких защищенных режимов.
OE>>Один аппаратный датчик — это вырожденный случай. OE>>Обычно надо опрашивать устройство или несколько датчиков.
AVK>Для нескольких датчиков ставится такая железка, которая их собирает, а наружу смотрит один цифровой порт.
Данные — это не один бит.
Всегда минимум два порта — состояния и данных.
Они могут быть совмещены, если статус только читается, а данные только записываются — но это вырожденный случай.
Здравствуйте, AndrewVK, Вы писали:
OE>>ДОС — это не система реального времени. При чем здесь твой фризер ?
AVK>Если она позволяет решать реалтайм задачи значит она система реального времени. Остальное демагогия.
Здравствуйте, old->*Plutonia_Experiment(), Вы писали:
AVK>>Пошел, поехал. События тут при чем? Это уже не ядро, а пользовательская user32
OE>Так и на сеть она также реагирует. И на COM порт и на любой другой порт точно также.
Да счас прям. Обычно пользуемый TCP — блокирующие вызовы, неблокирующими сегодня никто не пользуется. COM — блокирующие вызовы.
OE>А когда исследуются ядерные превращения, за доли секуны до взрыва как раз пиковая загрузка будет — надо все датчики опросить разом и отослать куда надо, перед тем как все вокруг испарится.
Какое то у тебя все черное белое. Раз система реалтайм, значит ядерные взрывы считать. Я тебе который раз уж говорю — нет такой жесткой границы — реалтайм/нереалтайм. Просто те или иные системы в разной степени пригодны для реалтайм задач, какие то больше (QNX), какие то средне (BeOS),какие то меньше(NT). Но суть от этого не меняется. Я же тебе говорю — реально решали реалтайм задачи на NT4, видео в реальном времени перелопачивали. И ничего, удавалось с задержками бороться. Так что все зависит от задачи, все равно универсальной ОС под все реалтайм-задачи нет.
Так что спор какой то глупый получается.