Страниц: 1 [2]
  Печать  
Автор Тема: Время смены программного контекста в QNX и UNIX?  (Прочитано 9904 раз)
dmi
QOR.Admin
*****
Offline Offline

Сообщений: 470



Просмотр профиля
« Ответ #15 : Января 12, 2004, 02:22:21 am »

вот это как раз и есть безалаберный линуксовый подход.
чисто красноглазая привычка мерятся чем попало. в том числе и бенчмарками.
Записан
MikeP
Участник
*
Offline Offline

Сообщений: 6


Просмотр профиля WWW
« Ответ #16 : Января 12, 2004, 02:23:19 pm »


Всё чем он озабочен - какая быстрее. И во многих случаях 2.6 к сожалению быстрее. Посмотрим на 6.3


Вам следует разобраться в том, к чему приводит более частое переключение контекста - отнюдь не к повышению скорости работы программы!!!

в общем случае это даст сокращение времени ожидания каждой из программ, действующих в системе но В ОБЩЕМ СЛУЧАЕ НИКОГДА не даст прироста в производительности.

Максимальную выгоду от сокращения времени переключения получат программы, не требующие длительных вычислений ( например вы считываете данные с АЦП - НО НЕ ОБРАБАТЫВАЕТЕ, так как обработка может занимать значительно больше времени). На форуме уже неоднократно говорилось о том, что QNX - дорогостоящий, высокоточный и СПЕЦИАЛИЗИРОВАННЫЙ инструмент!!! он не разрабатывался в надежде на то, что Вы поставите его себе на desktop и будете наслаждаться прелестями multimedia.

Рассмотрите следующий пример: работа HTTP-прокси (только многонитевого) на QNX и Linux (хотябы десяток одновременных использований) - поставьте эксперимент - не бойтесь....

Результат могу предсказать заранее (если Вам лень попробовать самому) - из собственного опыта:
Пользователи Linux и QNX получат отклик примерно одинаково
!!!НО!!!
Linux - первый пользователь получит страничку значительно быстрее, чем QNX, за ним второй, третий и так далее

QNX - все пользователи будут получать странички по частям и если страничка одна и та же, то все закончат прием примерно в одно и то же время... причем практически не отстанут от последнего получившего страничку с Linux.

Для пущей правдоподобности эксперимента можно попользовать FTP - попробуйте собрать один и тотже многопоточный сервер для обоих систем и скачать десятком пользователей файл размером ~600M и оцените результаты.

Естественно, желательно тест на одной машине, чтобы исключить разницу, вносимую железяками.
Единственное, чего не удастся избежать - это разницы вносимой файловой системой (и её менеджером соответственно).
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #17 : Января 12, 2004, 04:57:34 pm »

1. О дефективности реализации pthread_*() в Linux, есть перевод статьи одного из участников Linux-проекта... сам перевод "кой-как", но читабельный. Лежит здесь:
http://club.shelek.com/viewart.php?id=82
Оригинал - здесь:
http://people.redhat.com/drepper/nptl-design.pdf

2. Будет ли принципиально время переключения зависить от того, что QNX переключает pthread_t, а Linux - фактически LWP (это так и есть, пока... и уже давно...) - не знаю. Я не вижу, почему время переключения должно быть принципиально (на порядок?) различаться (учитывая, что при переключении LWP - не сменяется адресный контекст и регистры LDT + GDT).

3. А вот частота переключения контекста в "спокойном" Round-robin режиме выполнения - должна заметно влиять. У Linu, в нормальном состоянии (by default) сколько там? что-то помнится - 10мс., у QNX - 1мс. У Linux по-min может быть установлено (что-то мне так помнится) - 3мс., у QNX - 10мкс.(!). Масштабы отличаются. Конечно это:
- не способствует "убыстрению" QNX;
- будет проявляться просто в разном характере поведения приложений, видимом "снаружи"...
- ну и никак не должно быть критерием выбора "лучший-худший" ни в том ни в другом случае: разные они.
Записан
MikeP
Участник
*
Offline Offline

Сообщений: 6


Просмотр профиля WWW
« Ответ #18 : Января 12, 2004, 05:19:07 pm »

Может стоило бы написать статью и выложить здесь на форуме под заглавием "Принципиальные различия ОСРВ и ОС общего назначения" (ну или что-то еще в таком духе), в которую включить такие основополагающие отличия, чтобы не возникало желания унизить или возвысить какую-то конкретную ОС.... чтобы не возникало желания сравнивать апельсины со ржавыми гвоздями? (а то ведь если не Linux, так что-то еще сравнивать начнут)
Только статью написать так, чтобы на конкретных примерах разъяснить... чтобы наглядно отличие просматривалось... области применимости обоих типов ОС обозначить (ну хотябы примерно)....

А вообще на мой взгляд - эта тема из серии детских вопросов "кто сильнее: слон или кит?"
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #19 : Января 12, 2004, 05:43:46 pm »

Может стоило бы написать статью и выложить здесь на форуме под заглавием "Принципиальные различия ОСРВ и ОС общего назначения" (ну или что-то еще в таком духе), в которую включить такие основополагающие отличия, чтобы не возникало желания унизить или возвысить какую-то конкретную ОС.... чтобы не возникало желания сравнивать апельсины со ржавыми гвоздями? (а то ведь если не Linux, так что-то еще сравнивать начнут)
Только статью написать так, чтобы на конкретных примерах разъяснить... чтобы наглядно отличие просматривалось... области применимости обоих типов ОС обозначить (ну хотябы примерно)....


Может... .
Только такого много есть уже написанного только за самое последнее время. Вот, чтоб не повторяться:
- http://qnx.org.ru/viewthread7n1690.html
- http://qnx.org.ru/index.php?option=com_minibb&action=vthread&forum=5&topic=207 7
- http://forum.cta.ru/forum_posts.asp?TID=122&PN=1
- http://forum.cta.ru/forum_posts.asp?TID=168&PN=1
- http://qnxclub.net/files/articles/rtos/rtos.html
- http://qnxclub.net/files/articles/RemarksOnTheMargins/RemarksOnTheMargins.html

... особенно последнюю посмотрите: "свежак", весёлая (грустная?) статья...

Может и написать можно, только всю эту гору мусора (из-за объёма, не качества) - не повторять.
Записан
dmi
QOR.Admin
*****
Offline Offline

Сообщений: 470



Просмотр профиля
« Ответ #20 : Января 14, 2004, 05:47:18 am »

About TCP/IP stack and proxy checks.
QNX's connect latency is less that linux/BSD one, but throughput is lower.
Записан
ed1k
QOR.Moderator
*****
Offline Offline

Сообщений: 739


Просмотр профиля WWW
« Ответ #21 : Января 19, 2004, 06:46:45 am »

dmi, спасибо за ответ по поводу QSSL-евских тестов. Мне ответили тоже самое, что я ихний конкурент. Только на первый запрос, что я возможно конкурент, а на второй (с адреса на openqnx.com ), что я определенно ихний конкурент.
dmi, а за что такие наезды на dip, и с какими аргументами? "Учи матчасть" и "безалаберный линуксовый подход"... Линукс, конечно, отдельный мир со своими правилами и подходами Но многие полагают, что QNX это система такая же как линукс, но только дорогая. Что сделала QSSL чтобы развеять этот миф? Ничего. А системы эти сравнивали и будут сравнивать. И как менеджер будет выбирать систему, он тоже правильно сказал - оценивая тесты и стоимость. Архитектурой - это программеры могут восхищаться, но не менеджеры. Если одна система позволяет выполнить задачу на более слабом процессоре (а значит дешевом) - она уже получила плюс, если она еще и не требует отчислений за runtime - второй плюс, если она еще и на слуху - то есть программисты, которые есть в конторе хотя бы слышали название (могу заверить, что QNX и тут проигрывает, если кто сомневается)... Такова суровая реальность.
Теперь по теме. Вопрос вовсе не подымался по поводу частоты переключения контекста - это оффтопик навеянный кем то. А вот затраты времени на переключение контекста - это то, что кушает сама система. Конечно само переключение, как заметил Olej займет примерно одинаковое время (как в армии - поворот тумблера до характерного звука щелк), но как все организовано в системе и как планировщик построен - это определяет многое. По поводу нитей в линухе - мне плевать как они их называют, где они реализованы и как работают, лишь бы стандартно. С помощью pthread_creat() я создал поток, который выглядит не хуже, чем в QNX. Какие механизмы при этом задействованы - мне все равно. И если внутренние механизмы настолько плохи в линухе, значит можно померять и сравнить время скушанное планировщиком, и цифра в линухе должна быть заметно хуже. И для случая переключения нитей внутри процесса, и между разными процессами. Но если нет цифры, есть только разговор, да тут, мол, архитектура крутая и так все ясно, то это совсем не подход, извините. Архитектура у QNX хорошая, сообщения передаются и защита памяти, а к примеру, у smxrtos нет никакой защиты памяти - зато сообщения передаются не копированием а передачей указателей. У каждой монеты две стороны...
Interrupt latency (время реакции на прерывание) - были графики и числа в отчетах, как сказали выше.
(Если все так хорошо в тестах и сравнениях - почему эта информация столь закрыта? Особенно со стороны QSSL)

Наилучшие пожелания.
Записан
Страниц: 1 [2]
  Печать  
 
Перейти в: