A Framework for Lightweight, Flexible and Concurrent Operating Systems

Lead Research Organisation: University of Kent
Department Name: Sch of Computing

Abstract

Operating-systems are a key component of most computer systems, responsible for managing the hardware and software. Available operating-systems, both commercial and open-source, vary greatly in their capabilities and application.the small end of the scale are embedded operating-systems, often performing highly specialised tasks on application-specific hardware (e.g. the software controlling a fuel-injected car engine, mobile phone or aeroplane guidance system). Commodity hardware platforms (such as the IBM PC), of which millions exist, require more complex general-purpose operating-systems (Microsoft Windows and Linux are two familiar instances). Towards the large end of the scale are operating-systems that manage massively parallel computing platforms, possibly distributed over networks. In whatever environment an operating-system is used, it must function correctly and handle errors gracefully.current operating-systems suffer (to varying degrees) from three major problems:. Incorrect implementation: the operating-system contains erroneous code, resulting in undesirable behaviour (with effects ranging from time-wasting to catastrophic).. Lack of scalability: the operating-system fails to scale beyond a single machine or small number of processors, limiting the upgradability of the hardware.. Lack of performance: the nature of the design and tools commonly used to develop operating-systems result in performance-damaging overheads -- the operating-system must ensure that badly-behaved programs (including components of the operating-system itself) do not inadvertently affect other parts of the system.proposed research addresses these problems through the design and development of concurrent operating-system components, that can simply be plugged-together to produce operating-systems with the desired capabilities, initially targeting a range of standardised embedded hardware (PC/104). To guarantee that connecting such components will work as expected requires a high degree of formalism, in particular, specification of their concurrent interactions.crucial aspect of this research concerns the dynamics of such networks -- allowing components and supporting connections to be generated and moved around while the system still runs. Such capability is helpful even for isolated uniprocessor plaforms, but is specially relevant for future multiprocessor chips and the likely total interconnect (wireless) of pervasive embedded systems.formalism comes from two process algebras -- Hoare's CSP and Milner's pi-calculus -- that can describe the behaviour of the proposed concurrent components. Crucially, it can reveal the precise behaviour of combined components, allowing bad combinations of components to be avoided at the design stage. By using CSP and pi-calculus aware design and programming tools, guarantees can also be made about the integrity of purely sequential code, particularly in light of the surrounding concurrency.is an increasing need for software technologies that allow concurrency to be exploited efficiently. Single-processor systems are gradually reaching their silicon limits and the major manufacturers are already looking towards hardware parallelism.new approach to software design is needed, as failure and sustainability become increasingly problematic. Systems are becoming complex to a degree where they are frequently delivered late (or not at all), over-budget and, in many cases, contain unknown failure conditions and behaviours. Modifying existing systems in the face of changing requirements is unworkable in many cases, resulting in the development of new systems from scratch, at substantial cost and inconvenience. The formalised concurrent approach offers scalability at a cost proportional to the size of the change, not the size of the system.

Publications

10 25 50
publication icon
Barnes F (2010) Checking process-oriented operating system behaviour using CSP and refinement in ACM SIGOPS Operating Systems Review

publication icon
Barnes F (2010) Process-oriented device driver development in Concurrency and Computation: Practice and Experience

publication icon
Ritson C (2012) Multicore scheduling for lightweight communicating processes in Science of Computer Programming

publication icon
Ritson C (2010) A process-oriented architecture for complex system modelling in Concurrency and Computation: Practice and Experience

 
Description Firstly, algorithms for lightweight process scheduling on multicore platforms that enable the execution of massively parallel software systems (containing thousands of individual communicating processes). Secondly, concurrent programming idioms and patterns concerning dynamic behaviour, to capture common patterns of interaction in safe and controlled ways. Finally, knowledge regarding concurrent process structures for OS artifacts such as device-drivers, file systems and network protocol stacks, built in ways that enables them to scale according to resource and demand (and not become a system bottleneck).
Exploitation Route A large portion of the knowledge arising from the project relates to concurrent program design, and the technology developed that supports it. Both are likely to be of interest to those wishing to create large parallel simulations on commodity multicore PCs (and have been). In terms of operating systems, the designs developed for RMoX (e.g. device drivers with safe internal concurrency) could be used with other languages and systems.
Sectors Aerospace, Defence and Marine,Digital/Communication/Information Technologies (including Software),Energy,Financial Services, and Management Consultancy,Pharmaceuticals and Medical Biotechnology

URL http://rmox.net/
 
Description The software developed as part of the research has had utility beyond the project itself (whose main deliverable was the RMoX operating system). Others (including those in the project team) have been able to use the tools and methodologies developed to build highly concurrent software systems, interactive agent-based simulations in particular, applied in a number of different contexts. Examples include defense simulations (for DSTL/MoD) and biological simulations (e.g. tumor growth). These activities have a large impact, more widespread than the software developed itself, but which require the software to realise that impact.
First Year Of Impact 2010
Sector Aerospace, Defence and Marine,Digital/Communication/Information Technologies (including Software),Education,Energy
Impact Types Societal,Economic

 
Title CCSP multicore scheduler 
Description An efficient multicore scheduler for Intel based platforms, shipped as part of the KRoC occam-pi distribution. 
Type Of Technology Software 
Year Produced 2007 
Open Source License? Yes  
Impact The development of this scheduler, allowing highly concurrent occam-pi programs to run efficiently on multicore PCs, enabled occam-pi to be used (with huge success) in a number of other research projects. The low-level scheduling algorithms developed (and released open-source) may have informed development elsewhere. 
URL https://github.com/concurrency/kroc
 
Title RMoX Operating System 
Description A highly concurrent operating-system for embedded PC platforms. 
Type Of Technology Software 
Year Produced 2008 
Open Source License? Yes  
Impact RMoX was one of several proof-of-concept systems introduced in the late 00s, the impact being to add weight to the feasibility of highly concurrent operating systems (with considerations for multi-core and energy-efficiency) using non-traditional programming languages; a field of research that is increasingly active today. 
URL http://rmox.net/
 
Description Concurrent robot programming 
Form Of Engagement Activity Participation in an activity, workshop or similar
Part Of Official Scheme? No
Geographic Reach Local
Primary Audience Undergraduate students
Results and Impact The principle result of this activity (programming LEGO robots using occam-pi) was to give new Computer Science undergraduates, who had possibly not programmed before, a taste of process-oriented concurrency in a tangible context (dealing with multiple sensors and actuators).

The unconventional approach to programming clearly sparked an interest and motiviation in some individuals.
Year(s) Of Engagement Activity 2007,2008,2009,2010,2011,2012