-->

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

На нашем литературном портале можно бесплатно читать книгу Параллельное и распределенное программирование на С++, Хьюз Камерон-- . Жанр: Программирование / Программное обеспечение / Прочая компьютерная литература. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Параллельное и распределенное программирование на С++
Название: Параллельное и распределенное программирование на С++
Дата добавления: 16 январь 2020
Количество просмотров: 420
Читать онлайн

Параллельное и распределенное программирование на С++ читать книгу онлайн

Параллельное и распределенное программирование на С++ - читать бесплатно онлайн , автор Хьюз Камерон

В книге представлен архитектурный подход к распределенному и параллельному программированию с использованием языка С++. Здесь описаны простые методы программирования параллельных виртуальных машин и основы разработки кластерных приложений. Эта книга не только научит писать программные компоненты, предназначенные для совместной работы в сетевой среде, но и послужит надежным «путеводителем» по стандартам для программистов, которые занимаются многозадачными и многопоточными приложениями. Многолетний опыт работы привел авторов книги к использованию агентно-ориентированной архитектуры, а для минимизации затрат на обеспечение связей между объектами системы они предлагают применить методологию «классной доски».Эта книга адресована программистам, проектировщикам и разработчикам программных продуктов, а также научным работникам, преподавателям и студентам, которых интересует введение в параллельное и распределенное программирование с использованием языка С++.

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

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

Флаг POSIX__SPAWN_RESETIDS в атрибуте spawn-flags объекта, адресуе м ого пара м етро м attrp, также обусловливает значение ГО эффективной группы сыновне г о процесса Если этот фла г не установлен, сыновний процесс наслелует ID эффективной группы родительско г о процесса. Если этот флат установлен, ID эффективной группы сыновнего процесса должен быть установлен равны м значению ID реальной группы родительского процесса. В любо м случае, если установлен бит режи м а «set-group-ID» д л я файла образа нового процесса, ID эффективной группы сыновнего процесса примет значение, равное значению ID группы этого файла до того, как начнет выполняться образ нового процесса.

Если в атрибуте spawn-flags объекта, адресуемого параметром attrp, установлен флаг POSIX_SPAWN_SETSIGMASK, то сыновний процесс изначально будет и м еть м аску сигнала, заданную в атрибуте spawn-sigmask объекта , адресуе м ого пара м етро м attrp .

Если в атрибуте spawn-flags объекта, адресуе м ого пара м етро м attrp, установлен флаг POSIX_SPAWN_SETSIGDEF, то сигналы, заданные в атрибуте spawn-sigdefault того же объекта, будут установлены равны м и их действия м по у м олчанию в сыновне м процессе. Сигналы, установленные равны м и действия м по у м олчанию в родительско м процессе, должны быть установлены равны м и действия м по у м олчанию в сыновне м процессе.

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

За исключение м сигнала SIGCHLD, сигналы, которые д олжны игнорироваться образо м вызываю щ его процесса, д олжны игнорироваться сыновни м процессо м, если не опре д елено иное посредство м флага POSIX_SPAWN_SETSIGDEF, установленного в атрибуте spawn-flags объекта, адресуе м ого пара м етро м attrp, и сигнала SIGCHLD, обозначенного в атрибуте spawn-sigdefault того же объекта.

Если сигнал SIGCHLD установлен как игнорируемый вызывающим процессом, точно не установлено, должен ли сигнал SIGCHLD игнорироваться сыновним процессом или он будет установлен равным действию по умолчанию в сыновнем процессе, если не определено иное посредством флага POSIX_SPAWN_SETSIGDEF, установленного в атрибуте spawn-flags объекта, адресуемого параметром attrp, и сигнала SIGCHLD, обозначенного в атрибуте spawn_sigdefault того же объекта.

Если указатель attrp содержит значение NULL, используются значения по умолчанию.

Все атрибуты процесса, на которые не было оказано влияния со стороны атрибутов, установленных в объекте, адресуемом параметром attrp (как было описано выше), или вследствие манипуляций с файловыми дескрипторами, заданных в параметре file_actions, должны присутствовать в образе нового процесса в таком виде, как будто была вызвана функция fork() для создания сыновнего процесса, а затем член семейства функций exec был вызван сыновним процессом для выполнения образа нового процесса.

THR Запускаются ли обработчики разветвлений при вызове функций posix_spawn () или posix_spawnp (), определяется конкретной реализацией.

Возвращаемые значения

При успешном выполнении функция posix_spawn() (и функция posix_spawnp ()) должна возвратить родительскому процессу идентификационный номер (ID) сыновнего процесса в переменной, адресуемой аргументом pid (если его значение не равно NULL), и нуль в качестве значения, возвращаемого функцией. В противном случае сыновний процесс не создается, значение, сохраненное в переменной, адресуемой аргументом pid (если его значение не равно NULL), не определяется, а в качестве значения, возвращаемого функцией, передается код ошибки, обозначающий ее характер. Если аргумент pid содержит нулевой указатель, значение ID сыновнего процесса инициатору вызова не возвращается.

Ошибки

Вызовы функций posix_spawn() и posix_spawnp() могут оказаться неудачными, если:

[EINVAL] значение, за д анное пара м етро м file_actions или пара м етро м attrp, не д ействительно.

Если ошибка возникла после того, как вызывающий процесс успешно вернулся из функции posix_spawn () или posix_spawnp (), то сыновний процесс может завершиться со стагусом выхода (exit status), равным значению 127.

Если неудачный исход функции posix_spawn () или posix_spawnp () вызван одной из причин, которые бы привели к отказу функции fork () или одной из функций семейства exec, то возвращаемое значение ошибки будет соответствовать описанию для функций fork () и exec соответственно (или, если ошибка возникнет после того, как вызывающий процесс успешно вернется, сыновний процесс завершится со статусом выхода, равным значению 127).

Если в атрибуте spawn-flags объекта, а д ресуе м ого пара м етро м attrp, установлен флаг POSIX_SPAWN_SETPGROUP, а функция posix_spawn() или posix_spawnp() потерпела неу д алу при из м енении группы сыновнего процесса, то возвра щ ае м ое значение ошибки бу д ет соответствовать описанию д ля функции setpgid () (или, если ошибка возникнет после того, как вызываю щ ий процесс успешно вернется, сыновний процесс завершится со статусо м выхо д а, равны м значению 127).

PS  Если в атрибуте spawn-flags объекта, а д ресуе м ого пара м етро м attrp, установлен флаг POSIX_SPAWN_SETSCHEDPARAM, а флаг POSIX_SPAWN_SETSCHEDULER не установлен, то, если неу д ачный исхо д функции posix_spawn() или posix_spawnp() вызван о д ной из причин, которые бы привели к отказу функции sched_setparam(), возвра щ ае м ое значение ошибки бу д ет соответствовать описанию д ля функции sched_setparam() (или, если ошибка возникнет после того, как вызываю щ ий процесс успешно вернется, сыновний процесс завершится со статусо м выхо д а, равны м значению 127).

Если в атрибуте spawn-flags объекта, а д ресуе м ого пара м етро м attrp, установлен флаг POSIX_SPAWN_SETSCHEDULER, и если неу д ачный исхо д функции posix_spawn() или posix_spawnp() вызван о д ной из причин, которые бы привели к отказу функции sched_setscheduler(), возвра щ аемое значение ошибки бу д ет соответствовать описанию для функции sched_setscheduler () (или, если ошибка возникнет после того, как вызываю щ ий процесс успешно вернется, сыновний процесс завершится со статусо м выхода, равны м значению 127). Если аргу м ент file_actions не равен значению NULL и определяет для выполнения любое из действий close, dup2 или орел, и если неудачный исход функции posix_spawn() или posix_spawnp() вызван одной из причин, которые бы привели к отказу функций close(), dup2() или open(), возвра щ ае м ое значение ошибки будет соответствовать описанию для функций close (), dup2 () и open() соответственно (или, если ошибка возникнет после того, как вызываю щ ий процесс успешно вернется, сыновний процесс завершится со статусо м выхода, равны м значению 127). Действие, связанное с открытие м файла, м ожет са м о по себе выразиться в любой из ошибок, описанных для функций close () или dup2 (), по м и м о тех, что описаны для функции open ().

Примеры

Отсутствуют.

Замечания по использованию

Эти функции являются частью опции Spawn и могут быть не представлены во всех реализациях.

Перейти на страницу:
Комментариев (0)
название