— интерфейс для передачи сообщений), библиотека PVM (Parallel Virtual Machine — параллельная виртуальная машина) и библиотека MICO (или CORBA — Common Object Request Broker Architecture — технология построения распределенных объектных приложений). Эти механизмы позволяют использовать наши подходы в среде Internet/Intranet, а это значит, что программы, работающие параллельно, могут выполняться на различных сайтах Internet (или корпоративной сети intranet) и общаться между собой посредством передачи сообщений. Многие эти идеи служат в качестве основы для построения инфраструктуры Web-служб. В дополнение к MPI- и PVM-процедурам, используемые нами CORBA-объекты, размещенные на различных серверах, могут взаимодействовать друг с другом через Internet. Эти компоненты можно использовать для обеспечения различных Internet/Intranet-служб.
Подход
При решении проблем, которые встречаются при написании параллельных или распределенных программ, мы придерживаемся компонентного подхода. Наша главная цель — использовать в качестве строительных блоков параллелизма каркасные классы. Каркасные классы поддерживаются объектно-ориентированными мьютексами, семафорами, конвейерами и сокетами. С помощью интерфейсных классов удается значительно снизить сложность синхронизации задач и их взаимодействия. Для того чтобы упростить управление потоками и процессами, мы используем агентно-ориентированные потоки и процессы. Наш основной подход к глобальному состоянию и связанные с ним проблемы включают применение методологии «классной доски». Для получения мультипарадигматических решений мы сочетаем агентно-ориентированные и объектно-ориентированные архитектуры. Такой мультипарадигматический подход обеспечивают средства, которыми обладает язык С++ для объектно-ориентированного, параметризованного и структурного программирования.
Почему именно С++
Существуют С++-компиляторы, которые работают практически на всех известных платформах и в операционных средах. Национальный Институт Стандартизации США (American National Standards Institute — ANSI) и Международная организация по стандартизации (International Organization for Standardization — ISO) определили стандарты для языка С++ и его библиотеки. Существуют устойчиво работающие, так называемые открытые (open source) (т.е. лицензионные программы вместе с их исходными текстами, не связанные ограничениями на дальнейшую модификацию и распространение с сохранением информации о первичном авторстве и внесенных изменениях), а также коммерческие реализации этого языка. Язык С++ был быстро освоен научными работниками, проектировщиками и профессиональными разработчиками всего мира. Его использовали для решения самых разных (по объему и форме) проблем: для написания как отдельных драйверов устройств, так и крупномасштабных промышленных приложений. Язык С++ поддерживает мультипарадигматический подход к разработке программных продуктов и библиотек, которые делают средства параллельного и распределенного программирования легко доступными.
Библиотеки для параллельного и распределенного программирования
Для параллельного программирования на основе С++ используются такие библиотеки, как MPICH (реализация библиотеки MPI), PVM и Pthreads (POSIX [1] Threads). Для распределенного программирования применяется библиотека MICO (С++-реализация стандарта CORBA). Стандартная библиотека С++ (С++ Standard Library) в сочетании с CORBA и библиотекой Pthreads обеспечивает поддержку концепций агентно-ориентированного программирования и программирования на основе методологии «классной доски», которые рассматриваются в этой книге.
Новый единый стандарт спецификаций UNIX
Новый единый стандарт спецификаций UNIX (Single UNIX Specifications Standard) версии 3 — совместный труд Института инженеров по электротехнике и электронике (Institute of Electrical and Electronics Engineers — IEEE [2]) и организации Open Group — был выпущен в декабре 2001 года. Новый единый стандарт спецификаций UNIX реализует стандарты POSIX и способствует повышению уровня переносимости программных продуктов. Его основное назначение — дать разработчикам программного обеспечения единый набор API-функций (Application Programming Interface — интерфейс прикладного программирования, т.е. набор функций, предоставляемый для использования в прикладных программах), поддерживаемых каждой UNIX-системой. Этот документ обеспечивает надежный «путеводитель» по стандартам для программистов, которые занимаются многозадачными и многопоточными приложениями. В этой книге, рассматривая темы создания процессов, управления процессами, использования библиотеки Pthreads, новых процедур posix_spawn(), POSIX-семафоров и FIFO-очередей f irst- i n, f irst- o ut— «первым поступил, первым обслужен»), мы опираемся исключительно на новый единый стандарт спецификаций UNIX. В приложении Б представлены выдержки из этого стандарта, которые могут быть использованы в качестве справочника для изложенного нами
Последние комментарии
12 часов 46 минут назад
13 часов 21 минут назад
14 часов 14 минут назад
14 часов 18 минут назад
14 часов 30 минут назад
14 часов 43 минут назад