Operating system support for communications
Phil Janson · 1985
Session summaryThis session discussed mechanisms that operating systems should offer to enhance support of network protocols and inter-system communication.In particular the following topis were addressed:• address space and buffer management • communication structures and primitives • kernel-supported group communicatton • reliable broadcasting and coordinating independent atomic actions Four speakers started by briefly discussing their experience with various mechanisms they have implemented Phil Janson (IBM Zurich Research Laboratory.Switzerland) reported on the use of fast interprocess communication (IPC) mechanisms and buffer pool sharing to implement multi-task mcdules in support of an efficient file-transfer protocol.Larry Allen (Laboratory for Computer Science.MIT0 USA) discussed an implementation of multi-task modules based on the concept of "upcalls".David Cheriton (Stanford University.USA) described his experience with kernel primitis-es for communication with process groups.David Gifford (Laboratory for Computer Science.MIT, USA) presented an implementation of reliable broadcasting and coordinated independent atomic actions.Address space sharing within multi-task modules Phil Janson argued that multiple tasks implementing parallel instances of the same.or even different.layers of a protocol architecture need to share a common address space.In general, this factlitates passing buffers by reference, thereby saving the cost of copying.In particular, the shared levels of network protocols (e.g.. OSI levels 3 and below) can exchange buffers with their client layers (,t and above) without having to copy data in and out of user address spaces.As a side effect, there are no "system" buffers, only application buffers, which eliminates the possibihty of overflow in system buffers, and thus the overhead of flow control at that level.The system simply keeps count of how many receive buffers each client protocol has queued.Well-beha,~ed client protocols should pace their peers so that these do not send more data than receive buffers can take.Excess data is promptly dropped by the system.Upcalls