My-library.info
Все категории

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

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе QNX/UNIX: Анатомия параллелизма - Цилюрик Олег Иванович. Жанр: Интернет год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
QNX/UNIX: Анатомия параллелизма
Дата добавления:
17 сентябрь 2020
Количество просмотров:
151
Читать онлайн
QNX/UNIX: Анатомия параллелизма - Цилюрик Олег Иванович

QNX/UNIX: Анатомия параллелизма - Цилюрик Олег Иванович краткое содержание

QNX/UNIX: Анатомия параллелизма - Цилюрик Олег Иванович - описание и краткое содержание, автор Цилюрик Олег Иванович, читайте бесплатно онлайн на сайте электронной библиотеки My-Library.Info

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

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

QNX/UNIX: Анатомия параллелизма читать онлайн бесплатно

QNX/UNIX: Анатомия параллелизма - читать книгу онлайн бесплатно, автор Цилюрик Олег Иванович
Назад 1 ... 101 102 103 104 105 106 Вперед

Код процесса-клиента, использующего службу глобальных имен

#include <stdio.h>

#include <errno.h>

#include <stdlib.h>

#include <sys/dispatch.h>

/* На сервер могут приходить и импульсы. Как минимум. */

typedef struct _pulse msg_header_t;

/* Структура сообщения состоит из заголовка и буфера наших данных */

typedef struct _MsgBuf {

 msg_header_t hdr;

 char* Buffer;

} MsgBuf_t;

int main() {

 MsgBuf_t MsgBuf;

 int fd;

 char BufReply[100];

 if ((fd = name_open("MyService", NAME_FLAG_ATTACH_GLOBAL)) == -1) {

  printf("Клиенту не удалось присоединиться к"

   " сервисуn");

  fflush(stdout);

  return EXIT_FAILURE;

 }

 // Инвентаризационная метка данного клиента

 MsgBuf.hdr.type = 0x50001;

 MsgBuf.hdr.subtype = 0x00;

 strcpy (MsgBuf.Buffer, "Здравствуй, дорогой сервер!");

 if (MsgSend(fd, &MsgBuf, sizeof MsgBuf, BufReply, sizeof BufReply) == -1) {

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

   " серверуn");

  fflush(stdout);

  name_close(fd);

  return EXIT_FAILURE;

 }

 printf("Клиент получил от сервера такой ответ: "

  ""%s" n", BufReply);

 name_close(fd);

 return EXIT_SUCCESS;

}

Тем, кто уже использовал функции работы со службой глобальных имен в предыдущей реализации ОС QNX 6.2 (где, как указывалось выше, она уже существовала, но могла функционировать только локально), следует обратить внимание, что в поведении этих функций появились небольшие изменения.

Раньше, когда приложение-клиент использовало вызов функции

name_open()
для связи с сервером, сервер об этом не знал. Теперь это изменено: серверу фактически отсылается сообщение
_IO_CONNECT
/
_IO_OPEN
. Кроме того, изменено приложение-сервер, чтобы иметь возможность обрабатывать приход сообщения
_IO_CONNECT
.

Заключение

Задача проведения сравнительного анализа рассмотренных нами методов организации обмена сообщениями с точки зрения их быстродействия или, скажем, объема исполняемого кода не показалась мне актуальной. Полагаю, что благодаря высокой эффективности механизма как такового различные его реализации не будут кардинально отличаться. А вот с выбором «правильных» критериев есть проблемы, по крайней мере, у меня.

Конечно, первый из рассмотренных методов является самым «спартанским» и поэтому наиболее эффективным по действию, однако и наиболее «хрупким», требующим внимательного обустройства, а также мало приемлемым в больших системах. Лично мне больше импонирует второй метод, но боюсь, что это просто личные пристрастия (возможно, нравится потому, что лентяю не может не доставлять удовольствия тот факт, что предлагается уже готовый прототип менеджера ресурсов, и самому надо делать совсем немного...). Выбирайте то, что больше всего нравится вам и более всего подходит для вашей конкретной задачи.

Литература

1. Роб Кертен «Введение в QNX/Neutrino 2». — СПб.: Петрополис, 2001. — 478 с.

2. Уильям Стивенс «UNIX: взаимодействие процессов». — СПб.: Питер, 2002. — 576 с.

3. Уильям Стивенс «UNIX: разработка сетевых приложений». — СПб.: Питер, 2003. — 1086 с.

4. Алексеев, Видревич, Волков, Горошко, Горчак, Жавнис, Сошин, Цилюрик, Чиликин «Практика работы с QNX». — М.: КомБук, 2004. — 432 с.

5. Кэйт Хэвиленд, Дайна Грей, Бен Салама «Системное программирование в UNIX». — М.: ДМК Пресс, 2000. — 368 с.

6. Теренс Чан «Системное программирование на C++ для UNIX». — К.: Издательская группа BHV, 1997. — 592 с.

7. Андрей Робачевский «Операционная система UNIX». — СПб.: BHV-Санкт-Петербург, 1997. — 528 с.

8. «QNX Neutrino Realtime Operating System. System Architecture». — QNX Software Systems Ltd, 2002.

9. Йон Снейдер «Эффективное программирование TCP/IP». — СПб.: Питер, 2001. — 320 с.

10. Э. Дейкстра «Взаимодействие последовательных процессов», сборник «Языки программирования» под ред. Ф. Женюи. — М.: Мир, 1972.

11. Стивен Янг «Алгоритмические языки реального времени. Конструирование и разработка». — М.: Мир, 1985. — 400 с.

12. Марк Митчелл, Джеффри Оулдем, Алекс Самьюэл «Программирование для Linux. Профессиональный подход». — М.: Издательский дом «Вильямс», 2002. — 288 с.

13. С. L. Liu and J.W. Layland «Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environment», J. CM, Vol. 20, No. 1, Jan.1973, pp. 46-61.

14. The Open Group Base Specifications Issue 6, IEEE Std 1003.1-2001. General Information. Copyright 2001 The IEEE and The Open Group.

Назад 1 ... 101 102 103 104 105 106 Вперед

Цилюрик Олег Иванович читать все книги автора по порядку

Цилюрик Олег Иванович - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки My-Library.Info.


QNX/UNIX: Анатомия параллелизма отзывы

Отзывы читателей о книге QNX/UNIX: Анатомия параллелизма, автор: Цилюрик Олег Иванович. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.