Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вопросо о QNX теоритичекого характера
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
katarsis
Некоторое время назад QSS был куплен RIM, и немного спустя был анонсирован планшет, основанный на QNX.
меня интересуют 2 теоретических вопроса, которые я хотел бы прояснить при помощи знающих людей.
и так.
в QNX есть ряд архитектурных особенностей, который являются плюсом в пром автоматизации, но могут быть минусом в случае использовании для гаджета. а именно:
a. многозадачность. как ни странно, использование полноценной многозадачности требует дополнительных затрат по питанию.
б. есть мнение, что жесткое реально время только вредит мобильной системе. в линуксе, при вычислении приоритета процесса используется "степень интерактивности" - интерактивный процесс, занимающийся визуализацией на экран, имеет больше приоритет чем фоновый. так вот, обыграно ли это както в QNX, ведь в случае жесткого реально времени - вполне себе нормальна ситуация, когда интерактивный процесс отрисовки видео может быть прерван для подгрузки данных из интернета фоновым процессом.

как быть? что сделано в QNX, обходящие эти особенности, или может это вообще не особенности и мне все кажется?
спасибо
Ruslan1
Ну, QNX я лет 10 не пользовал, но честно говоря не вижу что из вопросов касается именно QNX, а не любой RTOS. С этой позиции и выскажусь:

Цитата(katarsis @ Jan 24 2011, 18:55) *
a. многозадачность. как ни странно, использование полноценной многозадачности требует дополнительных затрат по питанию.

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

Цитата(katarsis @ Jan 24 2011, 18:55) *
б. есть мнение, что жесткое реально время только вредит мобильной системе. в линуксе, при вычислении приоритета процесса используется "степень интерактивности" - интерактивный процесс, занимающийся визуализацией на экран, имеет больше приоритет чем фоновый. так вот, обыграно ли это както в QNX, ведь в случае жесткого реально времени - вполне себе нормальна ситуация, когда интерактивный процесс отрисовки видео может быть прерван для подгрузки данных из интернета фоновым процессом.

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

Цитата(katarsis @ Jan 24 2011, 18:55) *
как быть? что сделано в QNX, обходящие эти особенности, или может это вообще не особенности и мне все кажется?

Кажется. sm.gif
jasper
Цитата(katarsis @ Jan 24 2011, 21:55) *
б. есть мнение, что жесткое реально время только вредит мобильной системе. в линуксе, при вычислении приоритета процесса используется "степень интерактивности" - интерактивный процесс, занимающийся визуализацией на экран, имеет больше приоритет чем фоновый. так вот, обыграно ли это както в QNX, ведь в случае жесткого реально времени - вполне себе нормальна ситуация, когда интерактивный процесс отрисовки видео может быть прерван для подгрузки данных из интернета фоновым процессом.

Мне кажется, что все с точностью, да наоборот.
Гораздо более неприятная ситуация, когда, например, подвисший браузер блокирует входящий звонок.
_4afc_
Цитата(katarsis @ Jan 24 2011, 19:55) *
a. многозадачность. как ни странно, использование полноценной многозадачности требует дополнительных затрат по питанию.


Многозодачность обеспечивается в ядре ОС. Ядро маленькое. В QNX можно регулировать периоды вызова ядра.
Я уже лет 8 им не занимаюсь, но помоему в QNX4 изначально ядро дёргают каждые 25мс и это время можно уменьшить до 1мс.
В QNX6 вроде до 0.125мс можно поставить.

Цитата(katarsis @ Jan 24 2011, 19:55) *
б. есть мнение, что жесткое реально время только вредит мобильной системе. в линуксе, при вычислении приоритета процесса используется "степень интерактивности" - интерактивный процесс, занимающийся визуализацией на экран, имеет больше приоритет чем фоновый. так вот, обыграно ли это както в QNX, ведь в случае жесткого реально времени - вполне себе нормальна ситуация, когда интерактивный процесс отрисовки видео может быть прерван для подгрузки данных из интернета фоновым процессом.


Не может. Во первых есть 3 типа планирование процессов (scheduling). Во вторых ни интернет, ни показ видео не являются отдельными процессами.
Они каждый состоят из кучи процессов со своими приоритетами.

Видеокадр заполняется с двойной буферизацией. Поэтому главное успеть декодировать новый кадр за межкадровое время.
Данные для начала поподяют из езернета в память карты - оттуда в драйвер с высоким приоритетом по прерыванию.
Далее стек TCPIP (интернета) уже будет медленно обнюхивать эти данные на предмет выуживания из них информации.

Естественно, что если идёт показ видео получаемого из интернета, и существующий буфер не успевает гасить неравномерность поступающих пакетов и их потерю - будут затыки в воспроизведении.

Передавать любой синхронный поток через пакетный канал - хреново и здесь РТОС не спасёт от его особенностей. Просто грамотно организовав систему - можно будет добиться меньшей латентности при передаче, а следовательно решить задачу с меньшим объёмом ОЗУ и на более слабом проце.

Степень интерактивности будет зависеть от радиуса кривизны рук разработчика...
Daddy Torque
Цитата(katarsis @ Jan 24 2011, 19:55) *
б. есть мнение, что жесткое реально время только вредит мобильной системе. в линуксе, при вычислении приоритета процесса используется "степень интерактивности" - интерактивный процесс, занимающийся визуализацией на экран, имеет больше приоритет чем фоновый. так вот, обыграно ли это както в QNX, ведь в случае жесткого реально времени - вполне себе нормальна ситуация, когда интерактивный процесс отрисовки видео может быть прерван для подгрузки данных из интернета фоновым процессом.

Жесткое реальное время вредит только с той точки зрения, что если система открытая в смысле возможности доустановки ПО написанного кем угодно и как угодно, то это ПО, будучи неправильно написанным, может напрочь парализовать как работу ОС, так и всего, что под ней работают, включая драйверы и службы (в QNX драйверы и службы это тоже приложения). Но, насколько я понимаю, планшеты в этом смысле очень близки к эмбеддед устройствам: не пишут под них все кто попало... Да и, если быть честным, и Линукс или Винду можно парализовать, например, используя переменные-флаги для межпоточной синхронизации вместо штатных средств.
sasamy
Цитата(Daddy Torque @ Feb 21 2011, 17:02) *
Жесткое реальное время вредит только с той точки зрения, что если система открытая в смысле возможности доустановки ПО написанного кем угодно и как угодно, то это ПО, будучи неправильно написанным, может напрочь парализовать как работу ОС, так и всего, что под ней работают, включая драйверы и службы (в QNX драйверы и службы это тоже приложения).


В таком случае QNX как ОС абсолютно бесполезна - надежней и дешевле использовать Linux с гипервизором, тут тебе и реалтайм если нужен и абсолютная неубиваемость системы. Собственно c QNX это и наблюдаем - как говорится давно пошла по рукам, хозяева уже который раз сменились.
http://www.arm.com/files/pdf/26420.pdf
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.