[ZX]
- 
	- Вот вы говорите, что есть проблема использования в вытесняющих осях функций newlib, и об этом забывают. Но может не забывают, а такой проблемы нет или она проявляется у вас на используемых вами МК.  Apтём(77 знак., 06.07.2012 19:29)
			- Да к любой либе идёт описание, где сказано, реентерабельная она или нет. Часто идут с несколькими вариантами компиляции, нужно указать линкеру или IDE какой использовать. - =AlexD=(06.07.2012 21:28)
					- Всё есть в описании, согласен. Тогда непонятно с какими именно функциями у fk0 проблемы. - Apтём(06.07.2012 22:24)
 
 
- Да к любой либе идёт описание, где сказано, реентерабельная она или нет. Часто идут с несколькими вариантами компиляции, нужно указать линкеру или IDE какой использовать. - =AlexD=(06.07.2012 21:28)
					
- Комментарий про стек и setjmp/longjmp понятент. И я видел пример реализации кооперативной ОСи на setjmp/longjmp для x51 (!!!) у которого ОЗУ так вообще кот наплакал. Это опять же все понятно. И опять же мне кажется, что я пытаюсь уйти от  bialix(564 знак., 06.07.2012 17:28)
			- Не надо гнаться за "читаемыми" программами.  Надо разделить проектирование и программирование. Программа после этого должна быть не читаемой, а верифицируемой, что она соответствует документации, где есть схема конечного автомата, например. Вот  fk0(39 знак., 06.07.2012 17:50)
					- Я не могу с вами согласиться. Программы пишутся для людей, чтобы их читали. Хорошие программы пишутся не по принципу: написал и забыл, а их приходится дорабатывать, улучшать, добавлять новые функции. Нечитаемые программы превращают дальнейшую bialix(3172 знак., 06.07.2012 18:12)
- В рамочку и на стену :-) Если напрячься, то и дизассемблер можно верифицировать :-) Нет, читаемость точно не вредит. - SciFi(06.07.2012 17:59)
 
 
- Не надо гнаться за "читаемыми" программами.  Надо разделить проектирование и программирование. Программа после этого должна быть не читаемой, а верифицируемой, что она соответствует документации, где есть схема конечного автомата, например. Вот  fk0(39 знак., 06.07.2012 17:50)
					
- Насчет code.google.com/p/protothread: мне казалось, что это просто творческое развитие прототредов Дюнкеля. Оказалось, что там все написано с нуля и немного по-другому. Именно кооперативная ОС. Но мне это не надо. Я так умею. Я хочу по другому. bialix(83 знак., 06.07.2012 17:23)
- Спасибо за длинный ответ. Я его сейчас пытаюсь переварить и буду отвечать и задавать уточняющие вопросы по частям. - bialix(06.07.2012 16:47)
- Добавил бы про необходимость изобретать велосипед, если нет  десятков килобайт ОЗУ.  sbb(349 знак., 06.07.2012 15:58)
			- Контекст в прототредах очень маленький. Сохрание локальных переменных между вызовами прототредов может потребовать дополнительной памяти, а может и нет. Зависит от программы. Ваш комментарий я не очень понял. - bialix(06.07.2012 16:48)
					- Я про то, что вытесняющую многозадачность можно применять и на очень скромных ресурсах.  sbb(524 знак., 06.07.2012 18:25)
							- Для меня существенным вопросом является тестируемость кода. Как это все тестировать, без ОСи? Мы будем вынуждены в тестах подменять сервисы ОСи на свои заглушки и моки. Задача решаема. Главное чтобы сам код был тогда минимально завязан на сервисы  bialix(158 знак., 06.07.2012 18:36)
									- До конца не понял, зачем тестировать без ОС и подменять? И если по сути будет своя самописная многозадачность, то тестировать и подменять будет проще? sbb(352 знак., 06.07.2012 19:32)
- кстати, описанная ситуация с драйвером для работы с ибутоном, писалась под линух. и хотя там как бы есть настоящая вытесняющая многозадачность, но для достижения максимально возможного быстродействия мы не использовали никакое вытеснение и вообще  bialix(245 знак., 06.07.2012 18:40)
											- Бугога, select это надстройка над poll, которое есть полинг события с интервалом времени. По настоящему асинхронны в линухе только специальные функции асинхронного ввода-вывода. - =AlexD=(06.07.2012 18:50)
													- Ерунда  AD(753 знак., 09.07.2012 12:31)
															- +1. Никакого "поллинга" там нет. По-сути аналог WaitForMultipleEvents. Последний, правда, по-функциональнее будет -- вопрос ожидания в unix разных событий, например файловых дескрипторов и POSIX IPC одновременно, AFAIK нерешаемый без "поллинга",  fk0(171 знак., 09.07.2012 14:53)
																	- Linux - найдётся всё  posix(38 знак., 10.07.2012 01:15,  ) )
 
- Linux - найдётся всё  posix(38 знак., 10.07.2012 01:15, 
 
- +1. Никакого "поллинга" там нет. По-сути аналог WaitForMultipleEvents. Последний, правда, по-функциональнее будет -- вопрос ожидания в unix разных событий, например файловых дескрипторов и POSIX IPC одновременно, AFAIK нерешаемый без "поллинга",  fk0(171 знак., 09.07.2012 14:53)
																	
- у меня есть основания считать, что select -- это не поллинг. Если у вас есть ссылка на подтверждение ваших слов, то мне будет интересно почитать подробнее. - bialix(06.07.2012 19:00)
															- Об особенностях этих функций я помню ещё с тех времён, когда собирал ядро FreeBSD :-P, впрочем в линухе оно сделано так-же. Я те нагуглил простенькое описание (см. Как работает select()). - =AlexD=(06.07.2012 22:04, ссылка)
																	- Мягко выражаясь, чушь. Любой желающий может посмотреть реализацию:   fk0(943 знак., 09.07.2012 15:52 - 15:54)
																			- аффтар 2.4 кернел использовал, тяжело ему было... - posix(10.07.2012 01:22,  ) )
 
- аффтар 2.4 кернел использовал, тяжело ему было... - posix(10.07.2012 01:22, 
 
- Мягко выражаясь, чушь. Любой желающий может посмотреть реализацию:   fk0(943 знак., 09.07.2012 15:52 - 15:54)
																			
 
- Об особенностях этих функций я помню ещё с тех времён, когда собирал ядро FreeBSD :-P, впрочем в линухе оно сделано так-же. Я те нагуглил простенькое описание (см. Как работает select()). - =AlexD=(06.07.2012 22:04, ссылка)
																	
 
- Ерунда  AD(753 знак., 09.07.2012 12:31)
															
 
- Бугога, select это надстройка над poll, которое есть полинг события с интервалом времени. По настоящему асинхронны в линухе только специальные функции асинхронного ввода-вывода. - =AlexD=(06.07.2012 18:50)
													
 
 
- Для меня существенным вопросом является тестируемость кода. Как это все тестировать, без ОСи? Мы будем вынуждены в тестах подменять сервисы ОСи на свои заглушки и моки. Задача решаема. Главное чтобы сам код был тогда минимально завязан на сервисы  bialix(158 знак., 06.07.2012 18:36)
									
 
- Я про то, что вытесняющую многозадачность можно применять и на очень скромных ресурсах.  sbb(524 знак., 06.07.2012 18:25)
							
 
- Контекст в прототредах очень маленький. Сохрание локальных переменных между вызовами прототредов может потребовать дополнительной памяти, а может и нет. Зависит от программы. Ваш комментарий я не очень понял. - bialix(06.07.2012 16:48)
					
 
- Вот вы говорите, что есть проблема использования в вытесняющих осях функций newlib, и об этом забывают. Но может не забывают, а такой проблемы нет или она проявляется у вас на используемых вами МК.  Apтём(77 знак., 06.07.2012 19:29)