Message passing and scheduling in Osprey

Future systems for multi-core architectures will have to be highly parallelizable to utilize hardware and will have to avoid sharing to achieve good performance. Consequently, novel operating system designs gradually move towards asynchronous message-based communication and decentralized scheduling. In this paper we describe a message passing and scheduling architecture which provides main communication and synchronization instruments for the Osprey operating system. The architecture supports blocking and non-blocking communication, allows user-level threads, processes, kernel tasks, and cores to be suspended, supports address space transitions, and provides real-time scheduling.