реклама на сайте
подробности

 
 
> Размышлизма о вреде вытесняющей многозадачности., Все не так просто, как кажется.
Evgeny_CD
сообщение Jun 12 2008, 13:27
Сообщение #1


Гуру
******

Группа: СуперМодераторы
Сообщений: 2 065
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 892



Есть некий типовой контроллер. 512к FLASH,32к RAM. Такое распределение памяти вызвано объективными технологическими особенностями. И, вероятно так будет долго. Скоро станет 4M FLASH и 256 К SRAM, суть не изменится.

Есть вариант unix идеологии. Когда в памяти живет куча процессов и потоков, различных дискрипторов и структур, и все это в RAM занимает просто мегабайты места. Для однокристальных систем эта идеология слабо подходит.

Пусть есть несколько потков данных. Для каждого из который выделяются некие буфера.

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

Если идти по пути обычных вытесняющих ОСей, и при отсутствии глабального планирования времени, в зависимости от наступления неких критических событий в буферах (близок к переполнению/опустошению) и в окружающем мире (пришло событие, и нам надо срочно его обрабатывать) мы вынуждены будем переключить задачи. Что даст нам неприятность в виде нескольких кадров под стек задач, и бардак в куче, ибо новая задача может затребовать память, ей выделят ее, потом отработает вытесненная ранее задача, она освободит память, но куча уже будет фрагментирована. Дефрагментация кучи - тоска для малоресурсных систем. Для больших, заметим, это тоже фундаментальная проблема.

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

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

Более того, при запуске такой своебразной задачи, ей можно выделить максимальный квант времени. Она сама смотрит, сколько у нее времени осталось, и если обработка не завершена, она ставит флаг (который ей потом сохранится, он static), чистит стек за собой, и отдает управление системе. Разумеется, алгоритм должен допускать такую возможность дробной обработки.

Также задача может заказать, через сколько ее надо вызвать.

Тогда у планировщика работы системы будет дотаточно данных, чтобы найти оптимальное распределение ресурсов.

Такой подход к работе софтины потребудет специальных тулзов для логического проектирования, ибо прописывать такое все в лоб ручками - это нереально. А вот если использовать некую систему разметки кода, о которых я тут так давно размышляю, это было бы не так уж и сложно.

Комбинация вытесняющего и невытесняющего механизмов была бы, IMHO, очень эффективной.

Вопросы:

* видел ли кто какие наработки по теме?
* какие есть ОСьки, гибко использующие вытесняющий и коопреативный механизмы многозадачности?
* критика и дополнение моих идей.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vshemm
сообщение Jun 13 2008, 16:56
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 15-08-07
Пользователь №: 29 803



Цитата(zltigo @ Jun 13 2008, 14:41) *
Потому, что они обслуживают вполне себе одинаковые/равноправные каналы.

Почему бы тогда не реализовать обслуживание в одной нити? Как минимум, сэкономим немного ресурсов.
Также можно реализовать FIFO на одном приоритете (кооператив другими словами) без квантов. И для этого совсем не нужно вырубать таймер.
Наконец, можно назначить разные приоритеты даже одинаковым каналам. Да, среднее время реакции на них будет разное, но если оно укладывается в дедлайн - какая разница?
Причины отказа от использования time-slice Вы сами и же назвали (зачем усложнять систему без надобности).

Цитата
А вот в реальности, когда обеспечить абсолютно достаточные ресурсы за разумные деньги просто невозможно, тогда и начинается.

Что начинается? Решать недостаток денег подобными способами (архитектурой системы) просто глупо. Когда аналитически получается загрузка 1.5 ничего не поделаешь smile.gif Но система должна работать, хоть и с худшими параметрами wink.gif
Приходилось проектировать системы как с абсолютно достаточными ресурсами, так и штатно работающими в перегрузке. Но это редко приходилось (2 раза), обычно нечто среднее.

Цитата(Evgeny_CD @ Jun 13 2008, 16:41) *
Разговаривал я тут по душам с разработчкиком одного телемаического сервака. Который принимает данные от 1к+ GSM девайсиков. Первое действие его сервера при запуске - отожрать у ОСи кучу памяти (задается) и запустить поток собственного менеджера памяти

Именно. Только у многих эмбеддед осей это можно сделать на этапе компиляции. Т.е. задать карту памяти smile.gif А если нельзя - отжираем, лочим и т.д.

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

Так ничего стартовать не должно вообще. А вот макс загрузку тут заранее нельзя знать, только оценить.

Формальные способы верификации есть, только на практике удобнее делать ее [верификацию] мозгом и другими вероятностными методами smile.gif

Цитата(AlexandrY @ Jun 13 2008, 16:58) *
Я как понял эти Петри - просто способ рисовать модели стрелочками, кружочками и квадратиками.
Потом изголяться и искать там какие-то закономерности. Это бред.

Квадратиками! smile.gif Впрочем, если Вы действительно так поняли, то это бред, да. Кстати, CD/DVD диски Вы используете? Знаете что там применяются коды Рида-Соломона для исправления ошибок? И рассчитываются они в полях Галуа. Только не гуглиле на предмет этих полей, ибо они абстрактнее чем 100 сетей Петри wink.gif

Цитата
В ваших же книжках написано, что эти сети в основном только для анализа применяются.
Т.е., допустим, уже когда ось готова и хреново работает.

Анализ должен проводиться до того, как ось началА писАться, имхо.

Цитата
В MATLAB SIMULINK более 1000 функциональных блоков на все случаи жизни. И c дискретным времененм, и с непрерывным, и со смешанным и без времени и вообще че хош.

Это инструмент, который, как не странно, базируется на матаппарате. Т.е. на бреде (?)

Цитата
А про ресурсы же мы вроде договорились.
Для продвинутой RTOS надо 8 Meг RAM-а и 1/4 от этого для FLASH-а.
Для Линукса на порядок больше.

Не договорились. Правильнее, имхо, так: Для Линукса в эмбеддед обычно надо 8 Meг RAM-а и 4 Meг FLASH-а. Для продвинутой RTOS бывает достаточно на порядок меньше.
Хотя тут есть нюанс; вопрос на засыпку - Windows XP Professional SP2 являтся RTOS?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 13 2008, 19:54
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Вы тут концептуально что-то не понимаете или делаете вид.
Речь идет о создании эффективного приложения. На оси или без.
Но никак не о моделировании оси.
А, может у вас есть опыт моделирования осей?
Вот это будет грандиозная находка, мне просто очень интересно знать кто это делает и для чего.
И дейстительно ли там используется аппарат сетей Петри или каких других сетей.
Еще ни у одного разработчика осей не видел даже намеков на моделирование. Максимум симуляция.

Че за Линукс такой в 4-мега лезет?
Можете дать координаты или намек кто делает.
Крайне маловероятно, что некоммерческий Линукс такого объема будет сопоставим с возможностями коммерческой оси типа Integrity.

Для ясности будем считать что RTOS это ROMable ось способная работать как с MMU так и без него.


Цитата(vshemm @ Jun 13 2008, 20:26) *
Анализ должен проводиться до того, как ось началА писАться, имхо.
Не договорились. Правильнее, имхо, так: Для Линукса в эмбеддед обычно надо 8 Meг RAM-а и 4 Meг FLASH-а. Для продвинутой RTOS бывает достаточно на порядок меньше.
Хотя тут есть нюанс; вопрос на засыпку - Windows XP Professional SP2 являтся RTOS?
Go to the top of the page
 
+Quote Post
vshemm
сообщение Jun 14 2008, 16:58
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 15-08-07
Пользователь №: 29 803



Начали за здравие (см. топик), а кончили за упокой smile.gif

Подкину дровишек: UML.
http://en.wikipedia.org/wiki/UML_tool
http://www.altova.com/features_code_generation_umodel.html
...


Цитата(AlexandrY @ Jun 13 2008, 23:54) *
Вы тут концептуально что-то не понимаете или делаете вид.

Да, похоже на то.

Цитата
Че за Линукс такой в 4-мега лезет?
Можете дать координаты или намек кто делает.
Крайне маловероятно, что некоммерческий Линукс такого объема будет сопоставим с возможностями коммерческой оси типа Integrity.

Например, http://www.freesco.org/

Или вот в моем ADSL момеде крутится линух. Причем держит 4портовый свитч, вайфай, веб интерфейс для настройки, немерянное количество опций, НАТ ессно, шейпер, даже выкусыватель рекламы из хтмл потока и DDNS клиент. Правда, там 8м флеш и 16м RAM, но на менее навороченных моделях стоит 4 и 8 соответственно. Аптайм обычно несколько месяцев, все ок. И досил я его, тоже справился smile.gif

В цисках крутится IOS, основанный на BSD. Там требования поболее (но и нагрузка тоже).

Если захотите, найдете еще примеры... А сравнивать "некоммерческий Линукс" с "коммерческой осью типа Integrity" не очень корректно, ибо чтобы они продавались, нужно превосходство хотя бы по некоторым параметрам.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 14 2008, 18:30
Сообщение #5


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Ну.. , роутеры это не серьезно.
Эт мы проходили, и вообщем известно, что роутерное ядро как таковое много софта не требует.
Я сам вам могу показать наши 3G - Wi-Fi - Ethernet роутеры с парой метров FLASH-и и 8 Мег RAM-а
Но это не платформы для создания многофункциональных приложений.
А уж как там создают софт я вообще молчу.
Там входишь в отдел тестирования и чувстуешь жар.
Так жарят там чуть ли не сотни тестовых систем которые день и ночь долбят по Ethernet-у эти роутеры чем только в голову взбредет в надежде так нахаляву обнаружить хотябы еще один программный баг.

Мои роутеры вообще Линукса не требуют, имеют все тоже, что ваш ADSL модем и помещаются в 512 Kб причем программа вообще в RAM не грузится.


Вот Android я бы посчитал за полнофункциональную платформу.
Или дистрибутивы MontaVista для FreeScal-ов с QTopia
Ну так они еле втискиваются в те параметры, что я указал.

Мысль про некорректность сравнения вашу вообще не понял.

Некоммерческий Линукс и RTOS-s класса Integrity я привел как два крайних идеологических полюса.
Поэтому доморощенные проекты типа http://www.freesco.org/ в расчет не берутся, как умаляющие возможности Линукса.



Цитата(vshemm @ Jun 14 2008, 20:28) *
Или вот в моем ADSL момеде крутится линух. Причем держит 4портовый свитч, вайфай, веб интерфейс для настройки, немерянное количество опций, НАТ ессно, шейпер, даже выкусыватель рекламы из хтмл потока и DDNS клиент. Правда, там 8м флеш и 16м RAM, но на менее навороченных моделях стоит 4 и 8 соответственно. Аптайм обычно несколько месяцев, все ок. И досил я его, тоже справился smile.gif

В цисках крутится IOS, основанный на BSD. Там требования поболее (но и нагрузка тоже).

Если захотите, найдете еще примеры... А сравнивать "некоммерческий Линукс" с "коммерческой осью типа Integrity" не очень корректно, ибо чтобы они продавались, нужно превосходство хотя бы по некоторым параметрам.
Go to the top of the page
 
+Quote Post
vshemm
сообщение Jun 14 2008, 19:29
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 15-08-07
Пользователь №: 29 803



Цитата(AlexandrY @ Jun 14 2008, 22:30) *
Ну.. , роутеры это не серьезно.
.....
Мои роутеры вообще Линукса не требуют, имеют все тоже, что ваш ADSL модем и помещаются в 512 Kб причем программа вообще в RAM не грузится.

Вы занимаетесь несерьезными вещами smile.gif

Предлагаю закончить этот холивор, не перевариваете *nix-системы - Ваше право, но так безапелляционно ошибаться на порядок инженер не имеет права, имхо. Вы спросили - я ответил, вот и все.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Evgeny_CD   Размышлизма о вреде вытесняющей многозадачности.   Jun 12 2008, 13:27
- - ig_z   Цитата(Evgeny_CD @ Jun 12 2008, 16:27) * ...   Jun 12 2008, 14:27
- - zltigo   Цитата(Evgeny_CD @ Jun 12 2008, 15:27) * ...   Jun 12 2008, 14:54
|- - Evgeny_CD   Цитата(zltigo @ Jun 12 2008, 18:54) - Ну ...   Jun 12 2008, 15:07
- - Evgeny_CD   Есть еще такая штука, как сети Петри. Мне как-то у...   Jun 12 2008, 17:05
|- - Andrew2000   Цитата(Evgeny_CD @ Jun 12 2008, 21:05) Ес...   Jun 12 2008, 17:30
- - rezident   ИМХО вытесняющая многозадачность нужна только тогд...   Jun 12 2008, 18:11
|- - zltigo   Цитата(rezident @ Jun 12 2008, 20:11) В о...   Jun 13 2008, 01:09
- - vshemm   А что подразумевается под вытесняющей многозадачно...   Jun 13 2008, 08:19
|- - zltigo   Цитата(vshemm @ Jun 13 2008, 10:19) А что...   Jun 13 2008, 08:59
|- - vshemm   Цитата(zltigo @ Jun 13 2008, 12:59) А зад...   Jun 13 2008, 10:03
|- - zltigo   Цитата(vshemm @ Jun 13 2008, 12:03) К том...   Jun 13 2008, 10:41
- - AlexandrY   Чтобы что-то облегчить, надо что-то нагрузить. ;-)...   Jun 13 2008, 10:00
|- - Evgeny_CD   Цитата(AlexandrY @ Jun 13 2008, 14:00) Че...   Jun 13 2008, 12:41
|- - AlexandrY   Я как понял эти Петри - просто способ рисовать мо...   Jun 13 2008, 12:58
|- - Evgeny_CD   Цитата(AlexandrY @ Jun 13 2008, 16:58) Я ...   Jun 13 2008, 13:11
|- - AlexandrY   Ну и фиг с ними, с этими сетями. Может они и не бр...   Jun 13 2008, 14:37
|- - Evgeny_CD   Цитата(AlexandrY @ Jun 13 2008, 18:37) В ...   Jun 13 2008, 16:23
|- - zltigo   Цитата(Evgeny_CD @ Jun 13 2008, 18:23) А ...   Jun 13 2008, 16:42
|- - Evgeny_CD   Цитата(zltigo @ Jun 13 2008, 20:42) Корол...   Jun 13 2008, 18:10
|- - zltigo   Цитата(Evgeny_CD @ Jun 13 2008, 20:10) Ме...   Jun 13 2008, 18:42
|- - Evgeny_CD   Цитата(zltigo @ Jun 13 2008, 22:42) . Быс...   Jun 13 2008, 19:17
|- - _Pasha   Цитата(Evgeny_CD @ Jun 13 2008, 22:17) В ...   Jun 13 2008, 23:20
|- - Evgeny_CD   Цитата(_Pasha @ Jun 14 2008, 03:20) Есть ...   Jun 13 2008, 23:29
|- - Evgeny_CD   Цитата(vshemm @ Jun 13 2008, 20:56) Хотя ...   Jun 13 2008, 17:07
|- - zltigo   Цитата(vshemm @ Jun 13 2008, 18:56) Почем...   Jun 13 2008, 17:21
||- - vshemm   Цитата(zltigo @ Jun 13 2008, 21:21) Потом...   Jun 13 2008, 17:52
|- - Evgeny_CD   Цитата(vshemm @ Jun 14 2008, 20:58) Напри...   Jun 14 2008, 17:23
||- - vshemm   Цитата(Evgeny_CD @ Jun 14 2008, 21:23) Эт...   Jun 14 2008, 17:27
||- - Evgeny_CD   Цитата(vshemm @ Jun 14 2008, 21:27) Честн...   Jun 14 2008, 17:45
|- - Evgeny_CD   Цитата(AlexandrY @ Jun 14 2008, 22:23) Та...   Jun 14 2008, 18:30
||- - AlexandrY   Какой там TDD! Разработка роутера это сплошняк...   Jun 14 2008, 19:42
||- - Evgeny_CD   Цитата(AlexandrY @ Jun 14 2008, 23:42) Да...   Jun 14 2008, 20:06
||- - AlexandrY   Да чеб об приятном и не поболтать. Я всегда за ...   Jun 14 2008, 21:14
||- - Evgeny_CD   Цитата(AlexandrY @ Jun 15 2008, 01:14) В ...   Jun 14 2008, 21:31
||- - blackfin   Цитата(AlexandrY @ Jun 15 2008, 01:14) В ...   Jun 15 2008, 02:40
||- - AlexandrY   Вы просто не в контексте. За топиками Евгения над...   Jun 15 2008, 08:11
||- - blackfin   Цитата(AlexandrY @ Jun 15 2008, 12:11) Вы...   Jun 15 2008, 08:53
- - vshemm   Атом тут не причем. Просто лицензия на ХП запрещае...   Jun 13 2008, 17:16
- - Evgeny_CD   caxapa::Vit подсказал еще вот какие интересные про...   Jun 14 2008, 10:31
- - Evgeny_CD   caxapa:: Рэйлвэй Каген { При всём богатстве выбор...   Jun 14 2008, 13:44
|- - zltigo   Цитата(Evgeny_CD @ Jun 14 2008, 15:44) Ил...   Jun 14 2008, 15:20
|- - Evgeny_CD   Цитата(zltigo @ Jun 14 2008, 19:20) Нет, ...   Jun 14 2008, 15:49
- - blackfin   "Остапа несло..."   Jun 14 2008, 15:52
|- - Evgeny_CD   Цитата(blackfin @ Jun 14 2008, 19:52) ...   Jun 14 2008, 15:56
|- - blackfin   Цитата(Evgeny_CD @ Jun 14 2008, 19:56) Бы...   Jun 14 2008, 16:06
|- - Evgeny_CD   Цитата(blackfin @ Jun 14 2008, 20:06) Кст...   Jun 14 2008, 16:31
- - blackfin   По существу... "Суха теория, мой друг, а др...   Jun 14 2008, 16:52
- - 733259   ЦитатаПравда, там 8м флеш и 16м RAM, но на менее н...   Jun 14 2008, 18:21
- - 733259   ЦитатаМои роутеры вообще Линукса не требуют, имеют...   Jun 14 2008, 18:34
|- - AlexandrY   Ну собственно наши роутеры и без меня есть кому ре...   Jun 14 2008, 19:22
- - 733259   ЦитатаНу собственно наши роутеры и без меня есть к...   Jun 14 2008, 20:02
- - klogg   Цитата(AlexandrY @ Jun 14 2008, 21:30) Ну...   Aug 7 2008, 20:21


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 11:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01488 секунд с 7
ELECTRONIX ©2004-2016