S(o)OS Structure

The Project Structure

Print

The S(o)OS project acknowledges operating systems as holistic environments that have to cater for all layers equally, i.e. ranging from the actual processor and resource architecture up to the actual application execution management. Current operating systems do not properly accomodate for this circumstance, thus leading to conflicts between different layers, and thus to bad performance and adaptability. At the same time, the growing scale and heterogeneity of future infrastructures, even in local desktop machines, renders the classical monolithic approach as too strict and inflexible (see also Objectives).

Accordingly, complete new approaches towards OS architectures are required that

Obviously, multiple approaches to such a system exists, in particular when considering the speed of current development. The project thereby investigates into long-term future of process execution support, rather than the next iteration of kernel development - therefore design and comparison of approaches are a particular concern.

Main Strands

To cater for the wide scope of developments and to allow for cross-layer harmonisation, S(o)OS addresses in particular the design of future OS architectures; in order to validate their efficiency and coherency, selected aspects will be integrated & tested against dedicated usage scenario types. Accordingly, the project pursues both an architectural, as well as a testing strand:

Design Strand

Developing yet another operating system, that lacks the relevant support for wide uptake and that will only be able to address an excerpt of the full will not help in overcoming the future problems. Instead, the overall architecture of operating systems need to be rethought to address the dependencies and conflicts arising from the classical structure and evolutionary development. A service-based (i.e. hierarchically flat, modular) approach is needed instead that addresses execution management on a holistic level.
The primary strand of S(o)OS consists hence in designing at least one OS architecture model that can deal with future system environments that integrate thousands of billions of heterogeneous devices. The design strand analyses current operating and execution models and identifies their specific insufficiencies to deal with future developments.

Integration & Testing

Design addresses in particular individual approaches to address the future environment requirements - however, aspects such as scalability and compatibility can only be effectively assessed through dedicated tests and integration attempts. Though S(o)OS does not aim at a unified, integrated OS model, the project will make concrete recommendations towards application areas and future developments according to the test results.

Organisation

In each strand, S(o)OS looks in particular at the aspects related to hardware (processor architecture, cache organisation etc.), communication (next generation interconnect, rotuing etc.) and execution support (programming models, distribution etc.)

Approach

In order to cope with the complex and challenging problem of designing a suitable software stack for easing the task of programming complex massively parallel systems of tomorrow, the approach followed in the S(o)OS project comprises a set of elements which can be summarised as follows:

The investigations in the above elements will allow for the design of an architecture of Operating System and its kernel(s) that will be suitable for playing the needed mediation role in future massively parallel architectures. The OS will expose interfaces with the essential level of abstraction from the specifics of the hardware which will allow application developers to achieve more easily a good exploitation of the underlying computing power and concurrency level.