РЕЦЕНЗИИ

Харт Джонсон. Системное программирование в среде Win32. Изд. 2-е: Пер. с англ. М., Издательский дом “Вильямс”, 2001. - 464 с.

Издательство “Вильямс” (www.williamspublishing.com) выпустило книгу, посвященную нетривиальным вопросам системного программирования под Win32. Тематически она ориентирована на разработчика сложных многопоточных и сетевых приложений в Win32 и Win64.

На протяжении многих лет в компьютерном мире сосуществуют две популярные ОС - Windows и Unix, совершенно несовместимые друг с другом. Усиление позиций Windows за последнее время не привело к существенному ослаблению положения Unix-подобных ОС, в том числе благодаря приобретающей все большую известность Linux. Автор, обобщив в своем труде накопившийся опыт программирования в среде обеих систем, предоставил возможность Unix-программистам достаточно быстро освоить разработку сложных приложений под Win32. На многочисленных примерах он стремится показать, как создавать эффективные, а главное, работоспособные приложения, используя методы системного программирования.

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

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

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

Изучению способов управления параллельной обработкой посвящены седьмая и восьмая главы. Так, в седьмой рассмотрены основные принципы управления процессами, ограниченными одним потоком, и методы синхронизации их выполнения. Однако довольно часто возникают ситуации, когда целесообразно использовать в одном процессе несколько независимых потоков, разделяющих его адресное пространство и другие ресурсы. Этой проблеме автор уделяет внимание в восьмой главе, в которой описан и проиллюстрирован механизм управления потоками в Win32. Он показывает на примерах, как можно использовать потоки, являющиеся основным элементом исполнения в Win32, для упрощения структуры, увеличения быстродействия и надежности работы приложения.

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

Глава 11 посвящена организации последовательного межпроцессного взаимодействия - IPC (interprocess communication). Сетевое программирование с помощью сокетов рассмотрено в главе 12. В этих двух главах описаны серверные программы, представляющие собой консольные приложения, функционирующие в фоновом режиме.

В главе 13 речь идет о сервисах NT и Windows 2000, о преобразовании серверных программ в сервисы и об управлении ими.

В 14-й главе рассказано о механизме асинхронного ввода-вывода, который предоставляет возможность параллельного выполнения нескольких операций чтения и записи.

В 15-ю главу включены две дополнительные темы: удаленные вызовы процедур - RPC (Remote Procedure Calls) и компонентная объектная модель COM (Component Object Model), а в последней, 16-й главе обсуждается Win64.

Все три приложения могут оказаться весьма полезными для читателя: в них даны сведения об архиве программ, сравнение функций Win32, Unix и Си-библиотеки, результаты тестирования систем в различных конфигурациях.

Традиционный (для такого рода изданий) компакт-диск (или дискета) отсутствует, что, впрочем, компенсируется возможностью скачать с сайта издательства williamspublishing.com весь архив программ (объемом 1,32 Мб), обсуждаемых в книге.

Книга Харта может служить хорошим практическим пособием для профессиональных программистов, имеющих опыт разработки приложений на Unix-подобных ОС и решивших освоить программирование под Windows или перенести программы с Unix-платформы на Win32. Небезынтересна она и для Windows-программистов, уже накопивших значительный опыт создания программ на Си и приступающих к разработке сложных сетевых или многопоточных приложений.

E-mail издательского дома “Вильямс”: info@williamspublishing.com.

Версия для печати