We consider various techniques for implementing shared objects and for accounting for objectsharing overheads in Pfair-scheduled multiprocessor systems. We primarily focus on the use of lock-free objects, though some lock-based alternatives are briefly considered as well. Lock-free objects are more economical for implementing relatively simple objects such as buffers, stacks, queues, and lists; locking techniques are preferable for more complicated objects and for sychronizing accesses to physical devices. We present schedulability conditions for Pfair-scheduled systems in which lock-free objects are used. In addition, using shared queues as an example, we show how one can exploit the tight synchrony that exists in Pfair-scheduled systems to optimize lock-free implementations. We also show that lock-free object-sharing overheads can be reduced by combining tasks into supertasks; this is because, within a supertask, less-costly uniprocessor synchronization techniques can be used. ∗...
Philip Holman, James H. Anderson