A streams-based communications subsystem in turing plus for protocol development
Article first published online: 30 OCT 2006
Copyright © 1991 John Wiley & Sons, Ltd
Software: Practice and Experience
Volume 21, Issue 12, pages 1365–1380, December 1991
How to Cite
Atwood, J. W. and Prager, W. (1991), A streams-based communications subsystem in turing plus for protocol development. Softw: Pract. Exper., 21: 1365–1380. doi: 10.1002/spe.4380211207
- Issue published online: 30 OCT 2006
- Article first published online: 30 OCT 2006
- Manuscript Revised: 16 JUL 1991
- Manuscript Received: 10 JUL 1989
- Natural Sciences and Engineering Research Council of Canada (NSERC)
- NSERC Postgraduate Scholarship
- Quebec Ministere de l'Education, de la Science, et de la Technologie
- Homogeneous multiprocessor;
- Protocol software development;
- Distributed systems
The Homogeneous Multiprocessor (HM) has a linear-array topology, with interprocessor communications achieved by the sharing of memory between nearest neighbours, by adjacent-processor signalling, and through a high-speed network (the H-Network). The operating system nucleus (the HM-Nucleus) for the HM contains a communications subsystem that provides low-overhead communications, both for user processes and for the rest of the HM-Nucleus, using the shared memory, the signalling capability, and the H-Network.
The design for the communications subsystem provides uniformity of access to the three mechanisms by following the IEEE 802.2/802.3 LLC/MAC specifications. Flexibility of access is achieved by adopting the STREAMS facility from System V UNIX.
A new implementation of STREAMS has been built using Turing Plus for both the programming and the simulation/testing, with no need to access the actual hardware until final test. Completion of the STREAMS framework has made it possible subsequently to code an 802.2 LLC module and an 802.3-based shared memory driver very quickly.
The STREAMS framework has also made it feasible to cast some algorithms used by other parts of the HM-Nucleus as protocols, and implement them as STREAMS modules, resulting in considerable simplification in the design process. Since the framework was designed to be completely independent of the host processor, it provides a very general vehicle for protocol development.