A fully parallel stack runs in a preemptive multiprocessor environment. It uses locks to protect its integrity, and is prepared for:
STREAMS limits service procedures to one instantiation per queue at any given moment. For optimal throughput, a stack should do as much work as possible in its put procedures.
Service, open, and close procedures are guaranteed.
Additionally, open and close procedures are serialized along a stream. Thus, at any particular time, only one module or driver along that stream is executing an open or close procedure.