Midway is a software-based distributed shared memory system. Distributed shared memory provides the programmer with the illusion of a single virtual address space, which is shared among a network of processors that do not share physical memory. As local memory is updated, the modifications are propagated to the other processors, so that all maintain a consistent view.
Midway optimizes the propagation of updates by using a form of weak consistency called Entry Consistency. In Midway, there is an explicit binding of locks to the data that is logically guarded by each lock. As the application acquires a lock for its own synchronization, Midway piggybacks the memory updates on the lock acquisition message. Thus Midway sends no extra messages. Furthermore, the updates are sent only to the acquiring processor and only for the data explicitly guarded by the acquired lock. This serves to batch together updates and minimize the total amount of data transmitted.
Midway has other unique features besides the use of Entry Consistency. Midway detects updates to shared memory via compiler and runtime support, as opposed to more expensive virtual memory page protection. To provide high performance communication, Midway has its own application oriented protocols which reduce message counts, and it utilizes Mach's low-overhead network interfaces to reduce message latency.
Midway currently runs on DECstations using Mach 3.0 connected via an ATM network or Ethernet.
Midway is part of the systems software for multicomputers project at Carnegie Mellon.