ARV писал(а):разумеется, проблемы с явным зависанием были актуальны для Windows 3.хх, чуть в меньшей степени для Windows95/98, а для современных ОС типа WindowsXP практически исключены,
Ну, вы бы еще DOS вспомнили!

На самом деле, разница, которую вы упомянули, заключается не в том, современная версия виндовс, или несовременная - мелкософт изначально вел два совершенно разных семейства ОСей под похожими названиями.
Винды версий 1, 2 и 3 (а позже и 95, и 98, и ME) должны были, по задумке мелкософта, уметь запускать DOS'овские программы под своим управлением - чтобы пользователи могли гонять свое, нажитое в DOS'овские времена, ПО. Отсюда и эта странная архитектура.
Винды версий NT (2, 4, 5, XP и так далее) писались изначально, как многозадачные (о многозадачности чуть ниже), причем, команда писателей была создана на основе спецов из IBM, которые делали OS 360 - своего рода эталон многозадачной ОС того времени.
Обе ОСи, как видите, существовали
одновременно.
Пару слов о многозадачности - вот
здесь мелкософт объясняет разницу между вытесняющей и кооперативной многозадачностью. Правда, есть мнение, что кооперативная многозадачность была
выдумана мелкософтом в маркетинговых целях - чтобы громко заявлять в рекламных материалах, что винды 1, 2, 3 и так далее - многозадачные ОСи. Возможно, это их болезненная реакция на то, что это семейство виндов называли графическими надстройками над DOS.
Сегодня мелкософт уже не испытывает необходимости поддерживать DOS'овские приложения и потому применяет (насколько мне известно)
только вытесняющую многозадачность, но архитектурные ошибки - штука приставучая, допущенные один раз, они тянут на дно до последнего

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

Задача-то думает, что она опрашивает очередь, но на самом деле она лежит где-нибудь в своп-файле и титьк..., пардон, процессора не получит, пока, например, для неё не поступит мессаг. Это как если бы ваш цикл опроса клавиатуры был помещен в тело процедуры обработки прерывания.

Все эти вещи можно найти и в MSDN, и в материалах не от мелкософта - у того же Шилдта. Начать можно с того места, на которое я дал ссылку, например со слов "
Preemptive multitasking differs from non-preemptive multitasking in that the operating system can take control of the processor without the task's cooperation.".
Со всем, что вы говорили или еще скажете о недостатках виндовс, я соглашусь!

И хочу напомнить - о виндовс вспомнили вы, я
никогда не стал бы ссылаться на них, желая привести пример хорошего архитектурного решения. В каком-то смысле, это не их вина, а их беда (
маркетинг часто вмешивается в принятие технических решений, и всякий раз получается иллюстрация к тому, как достижение краткосрочного успеха губит успех долгосрочный, а успех финансовый хоронит успех технический), но каковы бы ни были причины - решение-то хрестоматийно-неверное, именно из-за виндов, с их липовой многозадачностью, эру персоналок спецы ПО называют регрессом.
Спорить о том, где проходит граница системно-правильного подхода я здесь не буду - формат форума не приспособлен для таких дискуссий, а кроме - вести такие дискуссии можно только имея достаточно проработанные общие позиции, иначе - утонем в разнице понятий, терминов и представлений.
Я высказался не затем, чтобы вас "агитировать за советскую власть", я поделился своими взглядами. Вы вольны поступить с этой информацией, как вам заблагорассудится - если станет интересно и будет на то время, тему можно обсудить, если нет - можно просто не согласиться. Я не жду в данном случае развернутой аргументации, так как прекрасно понимаю объем этой темы и количество времени (и других ресурсов), которые она может оттянуть.

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

Последняя оговорка означает, что даже простые проекты, если их становится много, уже система!
