ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
6 июля
160097
Evgeny_CD, Архитектор (27.06.2009 13:00, просмотров: 7626)
Зачитал буку "Джеффри Рихтер, Кристоф Назар Windows via C/C++. Программирование на языке Visual C++" -> и протащился. От хорошей книги, о того, как хорошо в Win сделаны многие вещи, и от того, что "все украдено до нас" http://caxapa.ru/159013.html
http://www.ozon.ru/context/detail/id/4079733/
Больше всего меня поразили главы про пулы потоков, ождание завершения ввода-вывода и нити. Это достаточно сильно коррелирует с моими идеями по API для продвинутых RTOS --> Налицо некое развитие ОСей по спирали. Когда-то давно все программили под DOS и радовались жизни, когда удавалось "посадить резидента". Потом появились MMU, и народ возликовал - вот теперь программы будут по-настоящемцу надежными, и стал все делить на процессы. Выяснилось, что настоящему программисту MMU не помеха - он и его забажит, а расход ресурсов на переключение процессов чудовищен. Ок, сказали системные программеры, и придумали концепцию потоков. "И почему оно работает так медленно?", сказали серверные программисты посе запуска 1000- какого-то там потока сетевого сервера. "Вот вам!" сказали системные программеры, и принесли концепцию coroutines и нитей (это разные сущности). "Юзер должен получать кайф!" Воскликнули системные программисты M$ и родили пулы потоков и объекты "ожидание завершения ввода-вывода". В итоге потихоньку началось отползание от концепции защищенных пространств памяти к концепции общей памяти, но все замечательные идеи "защищенного" пути развития трансформировались в удобные аналоги для варианта общей памяти. Также, похоже, начинается развитие темы "мироОС", когда рядом с каждым потоком живет некая сущность, к которой поток может обратиться, не трогая ОСь, и получить некий сервис. Также замечательной идеей является создание очередей обработки для ядра, чтобы не дергать ядро на каждый чих, а вызывать его по мере накопления критической массы запросов, в иделе - в некий "свободный квант времени" в варианте RTOS. Все это подспудно привело к тому, что современные продвинутые ОСи достаточно сильно отличаются от описанного в затертых книжках про POSIX, но это мало кто понимает. В книжке про винды меня также сильно поразила продуманность нюансов синхронной и асинхронной обработки системные вызовов, и то, что средствами Win API совершенно реально делать легкие и никогда не тормозящие приложения, которые корректно отрабатывают все ошибки и пр. Например, в Vista появились функции, позволяющие корректно "развестить" приложние, которое по дури обратилось к синхронному вызову открытия файла (как пример), файл оказался в сети, а сеть глюкнула. Можно вызвать функцию, она вернет тому приложению неуспешность операции, и все пойдет далее. Резюме - кривость многих приложений Win не имеет никакого отношения к M$. Нефиг на зеркало пенять, коли рожа крива.