Как организована эта книга

Как организована эта книга

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

В пределах каждой главы, после краткого обсуждения отдельной функциональности, например, управления процессами или отображения файлов, подробно рассматриваются наиболее важные из соответствующих функций Windows и их взаимосвязь между собой. Изложение сопровождается иллюстративными примерами. В основной текст включены лишь наиболее существенные части листингов программ; полные тексты программ, а также необходимые включаемые файлы, вспомогательные функции и прочий код приведены в приложении А или доступны на Web-сайте книги (http://www.awprofessional.com/titles/0321256190). Во всех случаях, когда какие-либо возможности поддерживаются только текущими версиями Windows (XP, 2000 и Server 2003) и не поддерживаются предыдущими, например, Windows 9x и Windows NT, в которых не реализованы многие из усовершенствованных возможностей, делаются отдельные оговорки. В каждой главе приводится список дополнительной рекомендованной литературы и предлагается несколько упражнений. Многие упражнения акцентируют внимание на вопросах, которые имеют важное значение и представляют определенный интерес, но не были отражены в основном тексте, тогда как другие упражнения заставляют читателя глубже разобраться в темах более сложного или специального характера.

В главе 1 предлагается высокоуровневое введение в семейство ОС Windows и Windows API. Используемая в качестве примера простая программа демонстрирует основные элементы стиля программирования Windows и создает фундамент для реализации усовершенствованных возможностей Windows. Win64 и проблемы межплатформенной миграции программ предварительно рассматриваются в главе 1, более полно изучаются в главе 16, и обсуждаются по мере изложения в остальной части книги там, где это оказывается необходимым.

В главах 2 и 3 рассматриваются файловые системы, операции консольного ввода/вывода, блокирование файлов и управление каталогами. В главе 2 также рассказывается о кодировке Unicode — расширенном символьном наборе, который используется в Windows. Соответствующие иллюстративные примеры охватывают последовательный и прямой доступ к содержащимся в файле данным, обход дерева каталогов и архивирование файлов. Глава 3 заканчивается обсуждением программного управления реестром, имеющего много общего с управлением файлами и каталогами.

Глава 4 знакомит читателя с обработкой исключений в Windows, включая структурную обработку исключений (Structured Exception Handling, SEH), которая будет широко использоваться на протяжении всей книги. Во многих книгах изучение SEH откладывается до последних глав, однако мы, ознакомившись с этим средством уже на начальной стадии, получим возможность сразу же пользоваться им, что значительно упростит для нас некоторые задачи программирования и позволит повысить качество программ. Кроме того, здесь описано также одно из новейших средств — векторная обработка исключений.

В главе 5 рассмотрены вопросы управления памятью в Windows и показано, каким образом отображение файлов используется не только для упрощения программирования, но и для повышения производительности программ. В этой же главе рассмотрена организация библиотек DLL.

В главе 6 приводятся начальные сведения о процессах, управлении процессами и простых методах синхронизации в Windows. Далее в главе 7 эти понятия используются для описания управления потоками. Примеры в каждой из глав иллюстрируют многочисленные преимущества, включая упрощение программ и повышение их производительности, которые обеспечивает использование потоков и процессов.

Главы 8, 9 и 10 предлагают углубленный анализ одного из наиболее мощных средств Windows — синхронизации потоков. Синхронизация — сложная тема, и поэтому в данных главах содержатся многочисленные примеры и описания вполне понятных моделей, которые должны помочь читателю в полной мере воспользоваться преимуществами потоков для повышения эффективности программирования и производительности программ и вместе с тем обойти множество подводных камней. В эти главы включен новый материал, охватывающий вопросы повышения производительности и масштабируемости, что приобретает особое значение при создании серверных приложений, включая те из них, которые предположительно должны выполняться на SMP-системах.

Главы 11 и 12 посвящены межпроцессным и межпоточным взаимодействиям, а также сетевому программированию. В главе 11 главное внимание уделено средствам, являющимся частью Windows, а именно, анонимным каналам, именованным каналам и почтовым ящикам. В главе 12 обсуждаются сокеты Windows (Windows Sockets), обеспечивающие возможность взаимодействия с системами, не входящими в семейство Windows, посредством стандартных протоколов, главным образом, TCP/IP. И хотя интерфейс Windows Sockets, строго говоря, не является частью Windows API, он способен обеспечивать связь и взаимодействие через сети и Internet, так что предмет рассмотрения данной главы согласуется с остальной частью книги. На примере многопоточной клиент-серверной системы проиллюстрировано, каким образом можно обеспечить межпроцессное взаимодействие наряду с потоками.

В главе 13 показано, каким образом Windows позволяет превращать серверные приложения, аналогичные созданным в главах 11 и 12, в службы Windows (Windows Services), которыми можно управлять как фоновыми серверами. Преобразование сервера в службу требует внесения лишь незначительных изменений в программу.

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

Глава 15 посвящена вопросам безопасности объектов Windows, а в качестве примера рассмотрена эмуляция системы защиты файлов в стиле UNIX, в которой для выполнения тех или иных операций с файлом требуется наличие соответствующих полномочий. Дополнительные примеры иллюстрируют, какими средствами обеспечивается защита процессов, потоков и именованных каналов. Дополнения, обеспечивающие безопасность, могут быть введены после этого в ранее рассмотренные примеры.

Глава 16 завершает изложение основного материала рассмотрением вопросов программирования для Win64, а также обеспечения программной совместимости с этой платформой. После этого один из рассмотренных ранее примеров преобразуется к виду, допускающему перенос программы на платформу Win64.

Основной материал книги дополнен тремя приложениями. В приложении А содержатся описания программ, доступных на Web-сайте книги, и рекомендации по их использованию. Приложение Б содержит несколько таблиц, в которых функции Windows сравниваются с аналогичными им функциями, предоставляемыми системой UNIX и стандартной библиотекой С. В приложении В сравнивается производительность альтернативных вариантов реализации некоторых из примеров, приведенных в основном тексте, что позволяет читателю составить собственное представление о сравнительных достоинствах и недостатках средств Windows, как базовых, так и усовершенствованных, и средств, предоставляемых библиотекой С.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

О чем эта книга?

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

О чем эта книга? Если вы относитесь к категории "активных пользователей", то вы уже что-то слышали о классе операционных систем, объединенных общим именем UNIX. ОС этого класса имеют ряд преимуществ перед обычно устанавливаемыми на персональные компьютеры ОС типа Windows. И


Как организована обратная связь с клиентами

Из книги Интернет-разведка [Руководство к действию] автора Ющук Евгений Леонидович

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


О чем эта книга

Из книги Очень хороший самоучитель пользователя компьютером. Как самому устранить 90% неисправностей в компьютере и увеличить его возможности автора Колисниченко Денис Николаевич

О чем эта книга Итак, в книге будут разобраны вопросы «коммуникации» пользователя и ПК. Я даю вам расшифровку типичных сигналов компьютера, с помощью которых он пытается объяснить пользователю, что что-то не так. Не отмахивайтесь от этих сигналов: если ПК к вам обращается,


О чем эта книга

Из книги Photoshop. Лучшие фильтры автора Бондаренко Сергей

О чем эта книга В этой книге описаны самые полезные дополнительные фильтры для редактора Adobe Photoshop. Так сложилось, что практически вся доступная литература о Photoshop (а ее немало) посвящена описанию работы со стандартными инструментами программы. Некоторые авторы включают


Как организована эта книга

Из книги Системное программирование в среде Windows автора Харт Джонсон М

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


Как организована эта книга

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

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


О чем эта книга

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

О чем эта книга В книге описываются:— Язык HTML и принципы создания содержимого Web-страниц.— Язык CSS и принципы создания представления Web-страниц.— Возможности HTML 5 и CSS 3, уже поддерживаемые современными Web-обозревателями.— Основы Web-программирования, язык JavaScript и


О чем эта книга

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

О чем эта книга В книге описываются:— Язык HTML и принципы создания содержимого Web-страниц.— Язык CSS и принципы создания представления Web-страниц.— Возможности HTML 5 и CSS 3, уже поддерживаемые современными Web-обозревателями.— Основы Web-программирования, язык JavaScript и


О чем эта книга?

Из книги Технология XSLT автора Валиков Алексей Николаевич

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


О чем эта книга

Из книги VBA для чайников автора Каммингс Стив

О чем эта книга Вы, наверное, уже знаете, что VBA - это язык программирования, встроенный во множество программ, от приложений Microsoft Office, Microsoft Project, Visio и AutoCAD до многочисленных специализированных приложений, предназначенных для управления производственными процессами, учета


Мини-книга

Из книги Быстрые деньги в Интернете [50 способов заработать, сидя дома у компьютера] автора Парабеллум Андрей Алексеевич


О чем эта книга

Из книги Реестр Windows 7 автора Климов Александр Петрович

О чем эта книга Прежде чем читатель начнет изучать очень интересную тему, связанную с настройками Windows, нужно рассказать, о чем эта книга.Мое знакомство с реестром началось с Windows 98, хотя знакомство с компьютером состоялось гораздо раньше. Но до поры до времени компьютер


1. Книга

Из книги Инфобизнес за один день автора Ушанов Азамат

1. Книга Во-первых, вы можете делать электронные или физические книги, то есть в pdf-формате, либо печатать их в типографии. Мне очень нравятся небольшие книжечки с переплетом в виде спиральки, это здорово выглядит. Можно приложить диски, чтобы ваш инфопродукт смотрелся


Адресная книга

Из книги Офисный компьютер для женщин автора Пастернак Евгения

Адресная книга Первый раз я ввела электронный адрес в письме в графу Кому вручную. Чтобы в следующий раз этого не делать, я щелкаю правой кнопкой мыши на адресе и в появившемся контекстном меню выбираю строку Добавить в контакты Outlook (рис. 4.16). Рис. 4.16. Добавляем адрес в


О чем эта книга

Из книги Как приручить компьютер за несколько часов автора Ремнева Ирина

О чем эта книга Сколько раз вы делали перестановку у себя дома. Попробуйте сделать еще одну… в компьютере. Как?! С этой книгой возможно все. Вы научитесь заполнять пространство программами. Но это не все. Шкафы, комоды в прошлом, вы научитесь открывать эти программы.Ура !