TL;DR: In this article, the authors present an interprocess communications (IPC) system and method which utilizes shared memory to transfer message contents and a separate, efficient notification mechanism to perform message control functions.
Abstract: The present invention is an interprocess communications (IPC) system and method which utilizes shared memory to transfer message contents and a separate, efficient notification mechanism to perform message control functions. The present invention supports robust, asynchronous communications between potentially large number of software application processes residing on any single or tightly-coupled multiple processor arrangement supporting shared memory between the processes. The present invention is a combination of existing IPC mechanisms available in most commercially available UNIX operating systems. The IPC mechanism utilizes the presently available UNIX shared memory IPC mechanism for transferring message contents and the presently available UNIX datagram socket IPC mechanism for message control and notification. The IPC mechanism may be adapted to other operating system environments. The IPC mechanism performs a controlled shutdown of the interprocess communications associated with a user process which has ceased executing. The shared memory allocated for the IPC mechanism is periodically audited to reclaim lost shared memory blocks due to user process failures.
TL;DR: This chapter discusses the Array of paradigms that have evolved for distributed computing, a historical look at the evolution of these paradigm, and the basic model of group communications.
Abstract: 1. Introduction. What is distributed computing? Basic network concepts. Basic operating system concepts. Basic software engineering concepts. The Internet. Network resources and their identification: computers, services, resources, host names, host identifiers, port addresses, the domain name system, Internet addresses, Uniform Resource Locator (URL), Uniform Resource Identifier (URI). Security. Fault Tolerance. 2. Interprocess Communication. Basic model . Primitives (operations): connect, send, receive, disconnect. Connection-oriented/connectionless. Data marshalling: data flattening, data representation, serialization. Event synchronization. Event diagram, sequence diagram. 3. Distributed Computing Paradigms. Array of paradigms that have evolved for distributed computing. A historical look at the evolution of these paradigms. Overview & comparison of each paradigm. 4. The Socket API. The basic model. Stream-mode (connection-oriented) socket. Datagram socket (connectionless) socket. Java socket API. Using socket to implement a client. Using socket to implement a server. A simple middleware using sockets. Secure sockets and the Java secure socket extension API. 5. The Client-server Paradigm. The daytime protocol and a sample client-server suite. The echo protocol and a sample client-server suite. Connection-oriented client-server. Connectionless client-server. Iterative server and concurrent server. Stateful server and stateless server. 6. Group Communications. Unicast versus multicast. Basic model of group communications. The Java multicast API. Sample multicast sender program. Sample multicast listener program. Multicast and message ordering. Reliable multicast/broadcast. 7. Distributed objects. Message passing versus distributed objects. The basic model. Remote procedure call. Remote method invocation. 8. Advanced Remote Method Invocations (RMI). RMI stub downloading. security policy. Callback. 9. Internet applications. Basic components and protocols: HTTP, HTML, MIME, web server, browser, web forms. Web document types: static, dynamic, executable, active. CGI: background interaction and passing of data among browser, web server, and script(s). HTTP Session state information: hidden tags, cookies, session objects. Client-side programming: Applets, JavaScript. Server-side programming: common gateway Interface (CGI), servlets, server pages. 10. The Common Object Request Broker Architecture (CORBA). Basic architecture. Object Servers and Object Clients. Object References. Naming services. Object services. Object adapters. Java IDL. 11. Internet Applications - continued. Applets. Servlets session data maintenance. Web services and the Simple Object Access Protocol (SOAP). 12. Advanced Distributed Computing Paradigms. Message queue system. Mobile agents. Network services. Object spaces.
TL;DR: The hierarchical information network where information is transmitted through the network between the highest station 11 and the general stations 131 and 132 through a host station 12 and between the and the respective general stations and control stations 141 -14J and information is transmit between the control station and stations to be controlled 151 -15N is provided.
Abstract: PROBLEM TO BE SOLVED: To securely transmit supervisory and control information between stations through a network at high speed by transmitting operation situation information by means of a communication protocol UDP/IP and control information and slip data by means of a communication protocol TCP/IP between the stations. SOLUTION: The hierarchical information network where information is transmitted through the network between the highest station 11 and the general stations 131 and 132 through a host station 12 and between the and the respective general stations and control stations 141 -14J and information is transmitted between the control station and stations to be controlled 151 -15N is provided. Operation situation data is transmitted by the communication protocol UDP/IP to the host station 12 from the slave station by using a datagram socket and control data by the communication protocol TCP/IP to the controlled slave station from the controlling host station 12.
TL;DR: This chapter discusses Programs and Processes, RPC Definitions, and Debugging Multithreaded Programs, which focused on the case of the IPC System Calls.
Abstract: (NOTE: Each chapter beings with an Introduction and concludes with a Summary.) 1. Programs and Processes. Library Functions. System Calls. Linking Object Code. Managing Failures. Executable File Format. System Memory. Process Memory. The u Area. Process Memory Addresses. Creating a Process. 2. Processing Environment. Process ID. Parent Process ID. Process Group ID. Permissions. Real and Effective User and Group Ids. File System Information. File Information. Process Resource Limits. Signaling Processes. Command Line Values. Environment Variables. 3. Using Processes. The fork System Call Revisited. exec's Minions. Execlp. Execvp. Using fork and exec Together. Ending a Process. Waiting on Processes. 4. Primitive Communications. Lock Files. Locking Files. Signals-Continued. Signal and Signal Management Calls. 5. Pipes. Unnamed Pipes. Named Pipes. 6. Message Queues. IPC System Calls-A Synopsis. Creating a Message Queue. Message Queue Control. Message Queue Operations. A Client-Server Message Queue Example. 7. Semaphores. Creating and Accessing Semaphore Sets. Semaphore Control. Semaphore Control Details. Semaphore Operations. Semaphore Operation Details. 8. Shared Memory. Creating a Shared Memory Segment. Shared Memory Control. Shared Memory Operations. Using a File as Shared Memory. 9. Remote Procedure Calls. Executing Remote Commands at a System Level. Executing Remote Commands in a C Program. Transforming a Local Function Call Into a Remote Procedure. Debugging RPC Applications. Using rpcgen to Generate Templates and a makefile. Encoding and Decoding Arbitrary Data Types. Using Broadcasting to Search for an RPC Service. 10. Sockets. Communication Basics. Network Addresses. Domains-Network and Communication. Protocol Families. Socket Types. IPC Using socketpair. Sockets-The Connection-Oriented Paradigm. A UNIX Domain Stream Socket Example. An Internet Domain Stream Socket Example. Sockets-The Connectionless Paradigm. A UNIX Domain Datagram Socket Example. An Internet Domain Datagram Socket Example. Multiplexing I/O with select. Peeking at Data. Out of Band Messages. 11. Threads. Creating a Thread. Exiting a Thread. Basic Thread Management. Thread Attributes. Scheduling Threads. Using Signals in Threads. Thread Synchronization. Mutex Variables. Condition Variables. Read/Write Locks. Multithread Semaphores. Thread-Specific Data. Debugging Multithreaded Programs. Dbx. lock_lint Utility. A. Using UNIX Manual Pages. Manual Page Sections. Manual Page Format. Standard C Library System Calls/Library Functions. B. UNIX Error Messages. C. RPC Syntax Diagrams. Introduction. RPC Definitions. Program-definition. Const-definition. Enum-definition. Typedef-definition. Structure-definition. Union-definition. RPC Keywords. Some RPC Examples. D. Bibliography. Index.
TL;DR: This paper benchmarks OpenSM and shows by using the Reliable Datagram Socket protocol that only a single initial SA path query is needed per communicating peer, independent of any subsequent (re)connection attempts.
Abstract: In large InfiniBand subnets the Subnet Manager (SM) is a potential bottleneck. When an InfiniBand subnet grows in size, the number of paths between hosts increases polynomially and the SM may not be able to serve the network in a timely manner when many concurrent path resolution requests are received. This scalability challenge is further amplified in a dynamic virtualized cloud environment. When a Virtual Machine (VM) with InfiniBand interconnect live migrates, the VM addresses change. These address changes result in additional load to the SM as communicating peers send Subnet Administration (SA) path record queries to the SM to resolve new path characteristics.In this paper we benchmark OpenSM to empirically demonstrate the SM scalability problems. Then we show that our novel SA Path Record Query caching scheme significantly reduces the load towards the SM. In particular, we show by using the Reliable Datagram Socket protocol that only a single initial SA path query is needed per communicating peer, independent of any subsequent (re)connection attempts.