D.4 OPERATING SYSTEMS (C)
Refine
Document Type
- Doctoral Thesis (2)
Language
- English (2)
Has Fulltext
- yes (2)
Keywords
- Betriebssystem (2)
- Operating System (2)
- AUTOSAR (1)
- Echtzeitsystem (1)
- Ein-Chip-System (1)
- Eingebettetes System (1)
- Embedded System (1)
- Energiebedarfsanalyse (1)
- Energiebewusste Programmierung (1)
- Energiemessung (1)
Institute
Electrical energy is the single most important operating resource to computer systems. Although the energy demand of computers is an invisible system property by itself, the impact of energy demand is omnipresent and obvious in manifold forms of appearance. Sudden system failures (i.e., system breakdowns) and recurrent standard system operations (i.e., system charging) serve as practical examples. Energy demand of hardware components is a physical property of integrated transistor circuits that build our computers today. However, dynamic energy demand at the hardware level is caused by system activities (i.e., processes) at the software level. The analysis and improvement of system software is in focus due to the causal relationship: system software yields challenges and opportunities in equal measure in order to reduce the energy demand of the system at the hardware level. In particular, fine-tuning of system components offers distinct measures to improve the energy efficiency of computer systems. Improvements concern the coherent design of application and system software under consideration of hardware aspects.
This thesis presents, implements, and evaluates unique concepts for proactive energy-aware computing on energy-efficient systems-on-a-chip. In particular, it contributes a development method for energy-aware programming that originates in static and dynamic program analysis to support programmers at the design of energy-aware programs. To assist programmers in reducing the energy demand of their programs, the thesis proposes a software-hardware tooling infrastructure that combines energy-aware programming techniques with automatised energy demand analysis at system level. To further reduce the energy demand of computer systems, the thesis implements a process executive at the operating-system level that exploits a priori information at run time to reduce the energy demand of processes. The corresponding cross-layer approach enables the transfer of programmers’ knowledge to the operating system to reduce the energy demand at run time.
The thesis is first to combine dynamic program analysis techniques and the automatic creation of program variants to support energy-aware programming at the operating-system level. The distinct combination of application knowledge to identify and set important adjusting screws for the energy efficient operation of a computing system bound to an operating system is claimed to be novel.
Software for embedded systems needs to be tailored to the application requirements to provide for the lowest cost overhead possible; this is especially important for embedded operating systems, which do not provide a business value of their own. State-of-the-art embedded operating systems are tailored to the requirements of the application above, but they abstract from the hardware platform below, missing out on advantageous hardware peculiarities to optimize the non-functional properties of the system. Additionally, they provide the application programmer with a multitude of control flow types, which leads to several severe restrictions and problems for the application development and in the real-time execution of the system---for instance, high-priority tasks can be interrupted by low-priority interrupt service routines at any time.
The Sloth operating system design for event-triggered and time-triggered embedded real-time systems as presented in this thesis is unique in that it employs a hardware-centric approach for its scheduling, dispatching, and timing services and makes use of hardware particularities---with the purpose of optimizing the non-functional properties of the operating system and the application. In its implementation, Sloth assigns each task an interrupt source with an appropriately configured priority and maps software activations of that task to setting the request bit of the interrupt source. This way, Sloth has the hardware interrupt subsystem make the scheduling decision with the corresponding dispatch of the interrupt handler, which directly executes the application task function. Time-triggered dispatch tables are encapsulated in hardware timer cell arrays that Sloth pre-configures at initialization time with the corresponding timing parameters, making the hardware timer subsystem execute the dispatcher rounds autonomously at run time.
The evaluation of the Sloth operating system implementation shows that its light-weight design mitigates or even eliminates the safety-related problems and restrictions in the real-time execution of the application by providing a unified control flow abstraction in a unified priority space, eliminating the artificial distinction between tasks and ISRs. Additionally, its exhibited non-functional properties show unprecedented levels of efficiency by hiding latencies in the hardware subsystems: A feature-complete Sloth operating system can be tailored to less than 200 lines of source code; it compiles to less than 500 bytes of code memory and as few as 8 bytes of data memory; and it can schedule and dispatch tasks in as few as 12 clock cycles with speed-up factors of up to 106 compared to commercial operating systems. Since Sloth prototypically implements the automotive OSEK OS, OSEKtime OS, and AUTOSAR OS standards and runs on commodity off-the-shelf hardware, it is applicable to a wide range of embedded real-time systems.