Читаем Параллельное и распределенное программирование на С++ полностью

<p>Получение доступа к стандартному выходному потоку (cout) из сыновней задачи </p>

Поведение выходных данных, записанных в выходной поток stdout или по м ещенных в объект cout, отличается для различных порожденных PVM-задач. Именно родительский процесс решает, что в конце концов с ними должно произойти. Ко г да выходные данные из порожденно г о потомка поме щ аются в объект cout или cerr, они перехватываются демоном pvmd и упаковываются в стандартные PVM-сообщения, которые отправляются задаче с идентификатором TaskId, заданным родителем. Родительский процесс может связать пару (TaskId, Code) с объектами cout и cerr свое г о сыновне г о процесса. Это реализуется с помо щ ью функции pvm_setopt (), которая вызывается перед порождением потомка. Если значение TaskId равно 0, сооб щ ения попадут велу щ ему демону pvmd и будут записаны в е г о журнал ре г истрации ошибок. Порожденный процесс может установить значение переменной TaskId равным 0 или значению, унаследованному от е г о родителя, или собственному значению идентификатора TaskId. Это означает, что именно родительский процесс управляет тем, куда будет записано содержимое объектов cout или cerr. Порожденнал PVM-задача может назначить дру г ие PVM-задачи для получения данных, поме щ енных в объекты cout или cerr. Обычно записью любых важных данных в потоки stdout или stdin управляет порождаю щ ая задача, а всем остальным ведает веду щ ий демон pvmd.

<p>Резюме </p>

Библиотека PVM, отличаю щ аяся большой г ибкостью средств, по д держивает большинство моделей параллельно г о про г раммирования. К достоинствам PVM-среды относится ее способность работать с г етеро г енны м и коллекция м и ко м пьютеров, которые м огут состоять из процессоров, отличаю щ ихся характеристика м и быстродействия, размера м и и архитектурой. По м и м о аппаратной совмести м ости, библиотека PVM прекрасно работает со стандартной С++-библиотекой и систе м ной библиотекой UNIX/Linux. В результате объединения с воз м ожностя м и C++-шаблонов, средств объектно-ориентированно г о про г ра мм ирования и коллекций алгоритмов мо щ ь PVM-среды значительно возрастает. Шаблоны прекрасно вписываются в SPMD-про г ра м мирование. А для расширени я воз м ожностей PVM-среды при испо л ьзовании моде л ей MIMD (MPMD) можно успешно использовать контейнеры и алгоритмы. В г л аве 13 мы подробнее познакомимся со сред СТв + * PVM-биб л иотеки и покажем, как ее можно использовать для С++-реализации МИ тегии «классной доски». Эта стратегия — один из основных способов решения 0 ^ блем параллельного программирования.  П **°*

<p>Обработка ошибок, исключительных ситуаций и надежность программного обеспечения </p>

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

Алястер Pu(Alastair Rae), Quantum Physics Illusion or Reality

Одна из главных целей разработки и проектирования программного обеспечения— создать программу, которая бы отвечала требованиям пользователя и работала корректно и надежно. Пользователи требуют от ПО корректности и надежности, независимо от его конкретного назначения. Использование ненадежных программ в любой сфере — финансовой, промышленной, медицинской, научной или военной— может иметь разрушительные последствия. Зависимость людей и механизмов от ПО на всех уровнях нашего общества вынуждает его создателей сделать все возможное, чтобы их детище было надежным, робастным и отказоустойчивым. Эти требования налагают дополнительную ответственность на разработчиков и проектировщиков ПО, которые создают системы, содержащие параллелизм. Программы с параллелизмом или компоненты, которые выполняются в распределенных средах, содержат больше (по сравнению с ПО без параллелизма) программных уровней. Чем больше уровней, тем сложнее управлять таким ПО. Чем выше сложность системы, тем больше изъянов может остаться в ней невыявленными. А чем больше изъянов в ПО, тем выше вероятность того, что оно откажет, причем в самый неподходящий момент.

Перейти на страницу:

Похожие книги

1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
Язык программирования C++. Пятое издание
Язык программирования C++. Пятое издание

Лучшее руководство по программированию и справочник по языку, полностью пересмотренное и обновленное под стандарт С++11!Р'С‹ держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под стандарт С++11. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. Р' соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать РёС… наилучшие СЃРїРѕСЃРѕР±С‹ применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.Стенли Р'. Липпман работал старшим консультантом в Jet Propulsion Laboratory, архитектором РіСЂСѓРїРїС‹ Visual С++ корпорации Microsoft, техническим сотрудником Bell Laboratories и главным инженером- программистом по анимации в кинокомпаниях Disney, DreamWorks, Pixar и PDI.Р–РѕР·и Лажойе, работающий ныне в кинокомпании Pixar, был членом канадской РіСЂСѓРїРїС‹ разработчиков компилятора C/C++ корпорации IBM, а также возглавлял рабочую группу базового языка С++ в составе международной организации по стандартизации ANSI/ISO.Барбара Э. Му имеет почти тридцатилетний опыт программирования. На протяжении пятнадцати лет она работала в компании AT&T, сотрудничая с Бьярне Страуструпом, автором языка С++, и несколько лет руководила РіСЂСѓРїРїРѕР№ разработчиков С++.• Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования• Р

Барбара Э. Му , Жози Лажойе , Стенли Б. Липпман

Программирование, программы, базы данных
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных