One of the key aspects for many-core and cloud operating systems is message passing communication. The networking aspect of this mechanism requires a high degree of concurrency to handle communicating with thousands of cores simultaneously in an efficient and scalable manner. Non-blocking interfaces allows us to efficiently use a core and gives us concurrency without multiple threads, this also minimizes context switch.
We developed an asynchronous design pattern for operating systems written in C++. The framework uses only C++ language features (template metaprogramming), thus not requiring a custom compiler. The pattern provides a framework to develop and use asynchronous interfaces based on completion handlers. As the name implies, a completion handler is executed when the operation completes. The framework also provides queuing mechanism to serialize execution of handlers for synchronization purposes.
Conference: 2012 European Network of Excellence on High Performance and Embedded Architecture and Compilation in Paris