Олег Цилюрик - QNX/UNIX - Анатомия параллелизма

Здесь есть возможность читать онлайн «Олег Цилюрик - QNX/UNIX - Анатомия параллелизма» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Санкт-Петербург, Год выпуска: 2006, ISBN: 2006, Издательство: Символ-Плюс, Жанр: Программирование, ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

QNX/UNIX: Анатомия параллелизма: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «QNX/UNIX: Анатомия параллелизма»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Книга адресована программистам, работающим в самых разнообразных ОС UNIX. Авторы предлагают шире взглянуть на возможности параллельной организации вычислительного процесса в традиционном программировании. Особый акцент делается на потоках (threads), а именно на тех возможностях и сложностях, которые были привнесены в технику параллельных вычислений этой относительно новой парадигмой программирования. На примерах реальных кодов показываются приемы и преимущества параллельной организации вычислительного процесса. Некоторые из результатов испытаний тестовых примеров будут большим сюрпризом даже для самых бывалых программистов. Тем не менее излагаемые техники вполне доступны и начинающим программистам: для изучения материала требуется базовое знание языка программирования C/C++ и некоторое понимание «устройства» современных многозадачных ОС UNIX.
В качестве «испытательной площадки» для тестовых фрагментов выбрана ОСРВ QNX, что позволило с единой точки зрения взглянуть как на специфические механизмы микроядерной архитектуры QNX, так и на универсальные механизмы POSIX. В этом качестве книга может быть интересна и тем, кто не использует (и не планирует никогда использовать) ОС QNX: программистам в Linux, FreeBSD, NetBSD, Solaris и других традиционных ОС UNIX.

QNX/UNIX: Анатомия параллелизма — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «QNX/UNIX: Анатомия параллелизма», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Код файла заголовков

#define NET_OPER "/net/904-3"

#define NET_REG "/net/Bed-Test"

// Максимальная длина обычного стандартного сообщения.

#define MESSIZE_MAX 100

// Максимальная длина инвентаризационного имени процесса

#define PROC_NAME_MAX 100

struct IdLabel_t { // Структура, содержащая,

int id; // -.инвентаризационную метку процесса

char name[PROC_NAME_MAX]; // - инвентаризационное имя процесса

} IdLabel[] = {

/* диапазон выделенный Группе # 1: от 0x5000 до 0x50ff */

0x5001, "пробный менеджер ресурсов",

0x5002, "первый тестовый клиент для менеджера ресурсов",

0x5003, "второй тестовый клиент для менеджера ресурсов",

0x5004, "третий тестовый клиент для менеджера ресурсов",

0x50ff, "четвертый тестовый клиент для менеджера ресурсов"

/* диапазон, выделенный Группе # 2: от 0x5100 до 0x51ff */

/* диапазон, выделенный Группе # 3: от 0x5200 до 0x52ff */

};

char Anonymous[] = "чуждый процесс";

int ALLNUM_MYPROC = sizeof(IdLabel) /

sizeof(IdLabel[0]);

Код процесса-клиента

Как было сказано, клиент открывает файл (функция open()), после чего использует MsgSend(), отсылая сообщения и получая ответы.

#include

#include

#include

#include

#include

#include

#include

#include "/home/ZZZ/TESTS/MR/MessTest.h"

int main() {

int fdRM; // Дескриптор соединения с менеджером ресурсов

char BufferSend[MESSIZE_MAX], BufferReply[MESSIZE_MAX];

setlocale(LC_CTYPE, "C-TRADITIONAL");

if (fdRM = open(strcat(strcpy(BufferSend, NET_REG),

"/dev/MESSTEST/RM"), O_RDWR)) == -1)) {

printf("Клиент не нашел имени менеджера!\n");

fflush(stdout);

return(-1);

}

/* Заполнение заголовка - первых 4-х байт сообщения, содержащего

инвентаризационную метку данного процесса (описаны в "IRL32.h") */

((int *)(BufferSend))[0] = 0x5002;

/* Заполнение сообщения */

strcpy(BufferSend + 4, "Так вот ты какой, Менеджер Ресурсов!");

if (MsgSend(fdRM, BufferSend, 100, BufferReply, 100) == -1)

printf("Клиенту не удалось передать сообщение\n");

else

printf("Клиент передал сообщение и получил

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «QNX/UNIX: Анатомия параллелизма»

Представляем Вашему вниманию похожие книги на «QNX/UNIX: Анатомия параллелизма» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «QNX/UNIX: Анатомия параллелизма»

Обсуждение, отзывы о книге «QNX/UNIX: Анатомия параллелизма» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x