S(o)OS Structure

The Project Structure

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

  • harmonize the alignment of hardware, network¬†and software
  • allow controlled access across stacks with minimal overhead
  • enable large scale, heterogenic resource control.

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.


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.)


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:

  • Hardware description and simulation: in S(o)OS, proper hardware description languages and simulation tools are being developed in order to build a concrete framework over which to experiment the effectiveness of the solutions that will be proposed.
  • Communication models: one of the key factors that are being investigated in S(o)OS is the type of communication models and protocols that may effectively be used for the data distribution and communications among the unprecedented number of computing elements foreseen inside a single chip and composing a distributed system.
  • Distribution of the execution: a particularly crucial role is played by the work and data distribution logic and the scheduler(s) that act inside the Operating System, so as to achieve maximum performance and/or meet application requirements. This becomes even more critical when the deployed applications need to comply with precise and possibly strict timing, latency and Quality of Service requirements.
  • Programming paradigms: the type of programming paradigm that may be used by developers on future parallel platforms is crucial to the degree of concurrency, saturation of the computing power achievable on such platforms and the scalability of software. Moreover, it novel programming paradigms are needed to ease the task of developing efficient and scalable applications on heterogeneous future platforms.

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.

Thursday the 17th. Sponsored under FP7-ICT-2009.8.1, Grant Agreement No. 248465. This website is monitored by Google Analytics. IP addresses are anonymized.
Copyright 2012