A software architecture for multithreaded and multiprotocol distributed applications
Abstract
Recent developments in network, CPU, and memory technologies have made possible the conception and realization of distributed applications that could have not been thought of a few years ago. Advances in software technologies, however, have lagged significantly with respect to hardware improvements. Furthermore, these new distributed applications generally impose demanding scalability, portability, flexibility, and heterogeneity requirements that cannot be satisfied with any of the software platforms currently available. The subject of this thesis is the design and implementation of a software architecture for distributed computing that can meet these requirements and at the same time exploit the high-performance available at the hardware level at the application level. This work presents the experimental design and development of C scLAM: The Connectionless, Lightweight, and Multiway communication environment for distributed applications with asynchronous and multimode communication requirements. C scLAM uses communication protocols implemented at user-level as a key step in eliminating the overhead derived from the presence of the operating system in the critical path for interprocess communication. We also propose the use of lightweight user-level threads as a tool to control the complexity explosion that arises when multiple protocols and an application are implemented in the same address space. In the process of designing and implementing support for distributed multithreaded computing, we propose and compare multiple thread scheduling algorithms designed to increase CPU availability to applications and improve communication performance simultaneously. These algorithms are studied in both uniprocessors and shared-memory multiprocessor architectures. Multiple protocols are designed, implemented, and tested in the framework of the C scLAM system. These protocols include the Transaction-oriented and Reliable Point-to-point Protocol (TRAP), the Transaction-oriented and Reliable Multipoint Protocol (TRAM), and the C scLAM Reliable Multicast Protocol (C scRMP). The issues of efficient implementation and integration of timers and signal handling support within the framework of user-level threads are also approached as means to improve protocol performance. Two application-level protocols, one for dynamic process management and one for multicast group management, are proposed and implemented on top of C scLAM-native communication protocols. Finally, a message passing interface is proposed and implemented in order to grant applications access to all the C scLAM protocols.
Degree
Ph.D.
Advisors
Rego, Purdue University.
Subject Area
Computer science
Off-Campus Purdue Users:
To access this dissertation, please log in to our
proxy server.