Hard Real-Time Linux



Similar documents
Quality of Service su Linux: Passato Presente e Futuro

Enhancing the Monitoring of Real-Time Performance in Linux

Asymmetric Scheduling and Load Balancing for Real-Time on Linux SMP

Overview of the Linux Scheduler Framework

Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6

White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux

Real-time KVM from the ground up

Lecture 3 Theoretical Foundations of RTOS

ICS Principles of Operating Systems


Performance Comparison of RTOS

Chapter 19: Real-Time Systems. Overview of Real-Time Systems. Objectives. System Characteristics. Features of Real-Time Systems

Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Improvement of Scheduling Granularity for Deadline Scheduler

Real-time Operating Systems. VO Embedded Systems Engineering Armin Wasicek

Predictable response times in event-driven real-time systems

Operating Systems. III. Scheduling.

CPU Scheduling Outline

CPU SCHEDULING (CONT D) NESTED SCHEDULING FUNCTIONS

Embedded Systems. 6. Real-Time Operating Systems

Real-Time Operating Systems.

CPU Scheduling. Core Definitions

Linux Process Scheduling. sched.c. schedule() scheduler_tick() hooks. try_to_wake_up() ... CFS CPU 0 CPU 1 CPU 2 CPU 3

Operatin g Systems: Internals and Design Principle s. Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings

Modular Real-Time Linux

Deciding which process to run. (Deciding which thread to run) Deciding how long the chosen process can run

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Exercises : Real-time Scheduling analysis

RTAI. Antonio Barbalace (modified by M.Moro 2011) RTAI

Realtime Linux Kernel Features

REAL TIME OPERATING SYSTEMS. Lesson-10:

Real-Time Scheduling 1 / 39

What is best for embedded development? Do most embedded projects still need an RTOS?

Tasks Schedule Analysis in RTAI/Linux-GPL

Fitting Linux Device Drivers into an Analyzable Scheduling Framework

CPU Scheduling. Basic Concepts. Basic Concepts (2) Basic Concepts Scheduling Criteria Scheduling Algorithms Batch systems Interactive systems

Processor Scheduling. Queues Recall OS maintains various queues

An Implementation Of Multiprocessor Linux

Design and Implementation of a POSIX Compliant Sporadic Server for the Linux Kernel

The Design and Implementation of Real-Time Schedulers in RED-Linux

evm Virtualization Platform for Windows

Linux 2.4. Linux. Windows

Multiple Programming Models For Linux System Design and Development

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems

System Software and TinyAUTOSAR

Weighted Total Mark. Weighted Exam Mark

CPU Scheduling. CPU Scheduling

Real-Time Component Software. slide credits: H. Kopetz, P. Puschner

POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2)

Scheduling. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum

Lecture Outline Overview of real-time scheduling algorithms Outline relative strengths, weaknesses

W4118 Operating Systems. Instructor: Junfeng Yang

Objectives. Chapter 5: CPU Scheduling. CPU Scheduler. Non-preemptive and preemptive. Dispatcher. Alternating Sequence of CPU And I/O Bursts

Linux scheduler history. We will be talking about the O(1) scheduler

CGL Architecture Specification

Linux Plumbers API for Real-Time Scheduling with Temporal Isolation on Linux

System Software Integration: An Expansive View. Overview

Operating System: Scheduling

Hypervisors. Introduction. Introduction. Introduction. Introduction. Introduction. Credits:

Operating Systems Concepts: Chapter 7: Scheduling Strategies

Linux Scheduler Analysis and Tuning for Parallel Processing on the Raspberry PI Platform. Ed Spetka Mike Kohler

SYSTEM ecos Embedded Configurable Operating System

The Microsoft Windows Hypervisor High Level Architecture

Chapter 13 Embedded Operating Systems

QoS and Communication Performance Management

EECS 750: Advanced Operating Systems. 01/28 /2015 Heechul Yun

Real-Time Scheduling (Part 1) (Working Draft) Real-Time System Example

How to Perform Real-Time Processing on the Raspberry Pi. Steven Doran SCALE 13X

A Survey of Fitting Device-Driver Implementations into Real-Time Theoretical Schedulability Analysis

Process Scheduling in Linux

Thomas Fahrig Senior Developer Hypervisor Team. Hypervisor Architecture Terminology Goals Basics Details

Enabling Technologies for Distributed and Cloud Computing

An Oracle White Paper July Oracle Primavera Contract Management, Business Intelligence Publisher Edition-Sizing Guide

Enabling Technologies for Distributed Computing

Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging

Module 8. Industrial Embedded and Communication Systems. Version 2 EE IIT, Kharagpur 1

Virtualization for Hard Real-Time Applications Partition where you can Virtualize where you have to

Linux Process Scheduling Policy

Operating Systems 4 th Class

Process Scheduling CS 241. February 24, Copyright University of Illinois CS 241 Staff

VMWARE WHITE PAPER 1

Embedded & Real-time Operating Systems

Konzepte von Betriebssystem-Komponenten. Linux Scheduler. Valderine Kom Kenmegne Proseminar KVBK Linux Scheduler Valderine Kom

Using EDF in Linux: SCHED DEADLINE. Luca Abeni

Real-Time Operating Systems for MPSoCs

Replication on Virtual Machines

Linux for Embedded and Real-Time Systems

Isolating Cluster Jobs for Performance and Predictability

Enhancing Hypervisor and Cloud Solutions Using Embedded Linux Iisko Lappalainen MontaVista

STEPPING TOWARDS A NOISELESS LINUX ENVIRONMENT

Deeply Embedded Real-Time Hypervisors for the Automotive Domain Dr. Gary Morgan, ETAS/ESC

Virtuoso and Database Scalability

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Real-Time KVM for the Masses Unrestricted Siemens AG All rights reserved

An EDF scheduling class for the Linux kernel

Lustre Networking BY PETER J. BRAAM

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

Chapter 1: Introduction. What is an Operating System?

Performance of Host Identity Protocol on Nokia Internet Tablet

Road Map. Scheduling. Types of Scheduling. Scheduling. CPU Scheduling. Job Scheduling. Dickinson College Computer Science 354 Spring 2010.

Transcription:

Hard Real-Time Linux (or: How to Get RT Performances Using Linux) Andrea Bastoni University of Rome Tor Vergata System Programming Research Group bastoni@sprg.uniroma2.it Linux Kernel Hacking Free Course IV Edition Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 1 / 41

Introduction Real-Time What is a Real-Time System A general (informal and incomplete) definition: A real-time system should complete its work accordingly to precise temporal constraints Is it enough? What about the consequences of a malfunctioning? Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 2 / 41

Introduction Real-Time What is a Real-Time System (Cont.) Hard Real-Time Soft Real-Time Some possible criteria to draw their definitions: 1 Criticality of consequences of a failure (on both system and environment) What is a generally acceptable definition of critical failure? 2 Usefulness of late work completion (job tardiness) How to evaluate the usefulness of a late completion? 3 Probabilistic considerations No accounting of possible consequences Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 3 / 41

Introduction Real-Time What is a Real-Time System (Cont.) An operational definition: Hard Real-Time: a certification (formal proof, etc.) is needed to show that deadlines will always be met. Soft Real-Time: such a certification is not needed: good statistical averages or testing evidences will generally suffice. These definitions do not fully cover the complexity of the field though. Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 4 / 41

Introduction Real-Time What is a Real-Time System (Cont.) Some questions: What are deadlines and who provides them? And on which bases? Generally settled starting from job criticality, output usefulness etc. Risk assessment and deadline-based countermeasures defined in Specification Documents Is it so easy to prove (100%) a system to behave correctly? Various methodologies: WCET Analysis, formal proofs, exhaustive testing (not always applicable) Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 5 / 41

Introduction Real-Time Real-Time Applications Features Distinctive features: Real-Time side Predictability Reliability Performances (not always) Embedded side Power awareness Compactness Scalability Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 6 / 41

Introduction Real-Time Real-Time Operating Systems Features A Real-Time Operating System (RTOS) should be able to offer the right execution environment to well suited RT Applications. This means: Predictable and efficient scheduling Fixed Priority Scheduling (e.g. Rate Monotonic) Dynamic Priority Scheduling (e.g. Earliest Deadline First) Predictable interrupt handling and low-latency IRQ dispatching Task communication and synchronization support Resource allocation policies (Prio Inheritance, Prio Ceiling... ) Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 7 / 41

Linux as RTOS Linux as Real-Time Operating System Overview Is Linux a Real-Time Operating System? Sometimes... Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 8 / 41

Linux as Real-Time Operating System Overview Linux as (S)RTOS Linux is a Soft Real-Time Operating System: It is optimized to provide: Good average response time High throughput Suitable for: Multimedia Applications VoIP Video / Audio Streaming Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 9 / 41

Linux as RTOS Linux as Real-Time Operating System Overview Main native features to support Real-Time: Two real-time scheduling policies FIFO (SCHED_FIFO) Round-Robin (SCHED_RR) Fast IRQ management ( two stage handling) High responsiveness (high resolution timers, 1000Hz tick... ) Preemptive kernel... and what about predictability? Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 10 / 41

Linux as Real-Time Operating System Overview Linux as (H)RTOS Linux has some problems with predictability: 1 Several paths in the kernel cannot be preempted 2 Interrupts are disabled in critical sections of many handlers 3 Non-predictable Interrupt Service Routines (ISR) management: fast ack to devices, but most bottom-half handler s durations are not predictable (e.g. Disk I/O) 4 IRQ management doesn t consider priorities Furthermore: 5 Quite high (w.r.t. HRT performances) scheduling latency for user mode processes Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 11 / 41

Linux as Real-Time Operating System Linux as (H)RTOS Overview How to overcome these problems: Mono Kernel Approach Changes are done directly into the kernel source Porting should be done through kernel versions Mostly commercial: TimeSys Linux, MontaVista Linux... Dual Kernel Approach Changes are done locally: simplified porting New (and complex) intermediate layer between Hardware and OS Mostly Open Source: RTAI, RTLinuxFree - PaRTiKle, Xenomai But some commercial as well: Wind River Real-Time Core Linux Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 12 / 41

Linux as Real-Time Operating System Dual Kernel architecture Dual Kernel Approach Ideas: Insert an Hardware Abstraction Layer between HW and OSes Run Linux as a normal low priority process on top of a real-time scheduler Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 13 / 41

Linux as Real-Time Operating System Dual Kernel Advantages Dual Kernel Pros Dual Kernel approach allows: Very Low latency IRQ response Predictable IRQ handling (response time can be bound from above) Reliable scheduling policy (FIFO, RR, RM, EDF) Fast task switching Resource allocation policies explicitly take into account tasks priority Ad-hoc synchronization mechanisms Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 14 / 41

Linux as Real-Time Operating System Dual Kernel Disadvantages Dual Kernel Cons But: When calling standard library functions we may loose real-time characteristics So we must stay in kernel mode: calls to non real-time library functions are not allowed Drivers have to be suitable for hard real-time To exploit OS real-time performances we may have to use non compliant API (sometimes proprietary) Generally limited interprocess communication with Linux standard applications Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 15 / 41

Linux as Real-Time Operating System What to do then? Considerations on Dual Kernel Approach Positive aspects generally counterbalance negative ones We can afford the extra programming effort and limitations In some cases though, dual kernel disadvantages are unacceptable It would be great to (1) have a way to do real-time using the standard kernel and (2) to be able to obtain good performances staying in User Mode Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 16 / 41

Linux as Real-Time Operating System Linux Kernel s Support to Real-Time Kernel s native support to Hard Real-Time Some questions: What kernel s features can be exploited to get Hard Real-Time performances? How to cope with load balancing on SMP architectures Is there a way to increase kernel preemptability level?... and some answers: Real-Time Scheduling Policies and Scheduling Classes CPU affinity (IRQs affinity, tasks affinity) Cpusets and sched_domain Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 17 / 41

Linux as Real-Time Operating System Scheduling Scheduler and Scheduling Classes New ( 2.6.23) scheduling approach: Mainly due to Ingo Molnar, working on Con Kolivas fair-scheduling approach Introduction of Completely Fair Scheduling (for conventional processes), which models an ideal, precise multi-tasking CPU Introduction of Scheduling Classes: Hierarchy of scheduler modules that incapsulate the details of their scheduling policy Clean interface between the scheduler core and scheduler modules Clear scheduler modules separation: one file per class (sched_rt.c, sched_fair.c, sched_idletask.c) Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 18 / 41

Linux as Real-Time Operating System Scheduling Scheduler and Scheduling Classes (cont.) The scheduler core can handle different classes (and different policies) without assuming too much about them It simply begins to walk the hierarchy from top and delegates tasks selection and management to classes It is easier to modify policies or introduce new ones sched_rt.c: SCHED_FIFO and SCHED_RR policies: Highest prio module in the hierarchy RT tasks management completely distinct from conventional processes one Single runqueue with 100 priority levels O(1) task selection bitmap-based Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 19 / 41

Linux as Real-Time Operating System Scheduling Scheduler and SMP management Renewed SMP load-balancing Scheduler core relies on classes policies to choose which processes to move Selection of processes to move is done through iterators (provided by each class) Scheduler core is unaware of strategies chosen by classes to balance tasks Different classes may implement different strategies Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 20 / 41

Linux as Real-Time Operating System Affinity and Cpuset CPU Affinity The idea: Use affinity mechanisms provided in the kernel to bind a real-time task and its relative interrupts on a CPU Prevent other tasks and IRQs to be executed on that CPU This path has been already followed in ASymmetric MultiProcessor-Linux which allows to obtain: 1 Deterministic execution time 2 Low system overhead 3 High performances and responsiveness Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 21 / 41

Linux as Real-Time Operating System Affinity and Cpuset CPU Affinity and Cpusets How to assign IRQs and tasks to CPUs: Binding interrupts on a CPU(s) can be easily done by using the procfs sched_setaffinity syscall can be used to bind a task to a CPU Cpusets offer more flexibility: Cpuset provides a mechanism to associate a set of CPUs (and of Memory Nodes) with a set of tasks All task s children are automatically executed in the same set of their parent Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 22 / 41

Linux as Real-Time Operating System Affinity and Cpuset Cpusets and Real-Time A cpuset defines a scheduling domain which covers all the CPUs included in the cpuset Load Balancing is done only inside a sched_domain Cpusets allow to easily control tasks distribution (and isolation) on system CPUs Cpusets can be effectively used to define a partitioning of system CPUs. This is often the first step of several multiprocessor real-time scheduling policies If used together with IRQ affinity we can enforce real-time tasks isolation w.r.t. other non-real-time tasks in the system Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 23 / 41

Linux as Real-Time Operating System Affinity and Cpuset Still unanswered questions Up to this point we have seen how to: Obtain RT scheduling policies through Linux Scheduler Use IRQ affinity and Cpusets to get CPU assignment determinism on multiprocessor architecture But we still don t have a way to: Preempt the kernel in most critical paths Assign priority to IRQ handlers Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 24 / 41

Linux as Real-Time Operating System The Real-Time Patch The Real-Time Patch The Real-Time Preemption Patch allows to cope with these problems: The patch is the continuation of the Montavista 1 real-time preemptive patch, mainly due to Ingo Molnar From Kernel 2.6.23 is completely integrated into mainline kernel projects The patch enables: Full kernel preemption: non-preemptive kernel paths are reduced to less than 5% Substitution of almost all spinlocks with semaphore locking mechanisms (preemptable mutexes) 1 http://source.mvista.com/linux_2_6_rt.html Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 25 / 41

Linux as Real-Time Operating System The Real-Time Patch The Real-Time Patch (Cont.) Further modification of RT scheduler load-balancing: Load-accounting and load-balancing are optimized for real-time tasks Balancing decisions are taken only before or after a context switch ( inside schedule()) Try to keep runqueues from being overloaded: Attempt to place all topmost priority real-time tasks on different CPUs When a high priority task wakes up (and it would preempt the currently executing one), check if it can run on a less loaded CPU Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 26 / 41

Linux as Real-Time Operating System The Real-Time Patch The Real-Time Patch (Cont.) Threading of IRQ handlers: Both soft and hard interrupts handlers are threaded All softirqs and all (or selected) hardirqs run in separate kernel threads We can control the priority assigned to an IRQ handler Higher priority handlers will be executed before lower priority ones Improved synchronization mechanisms: Real-Time Mutexes with priority inheritance extends Priority Inheritance Mutexes (PI-futexes) Used in pthread_mutex with prio inheritance implementation Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 27 / 41

Linux as Real-Time Operating System Can we do better? The Real-Time Patch Recall high level of modularity of scheduling classes: Each class is placed in an hierarchy of classes; the real-time class is the topmost priority class and its tasks are evaluated first We can modify the RT scheduling policy: Completely disable load-balancing heuristics... speeding-up scheduler execution To introduce such a modification we just have to: Implement the new scheduling class Hook the scheduling class functions in the scheduler core through the struct sched_class structure Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 28 / 41

Conclusion Results Some results (HRT) I have talked a lot... but what about performance measures? Hard Real-Time Platform: SBC Concurrent Technologies 417/03x; Intel Core 2 Duo T7400, 4GB RAM, Sata HDD OS: Linux 2.6.23.9 with RT patch and new real-time scheduling class which disables load balancing among processors We measure the period jitter (Standard Deviation) in the execution of a periodic real-time task Task periodicity is obtained by reprogramming the RTC (so that it ticks every 64Hz) Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 29 / 41

Some results (HRT) Conclusion Results System was configured using cpusets and giving higher priority to RTC IRQ handler Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 30 / 41

Some results (HRT) Conclusion Results A comparison between performances obtained using standard Linux kernel and kernel with RT patch, cpusets and IRQ prioritarization. Load is composed by a mixture of different loads (CPU, memory and disk) NO LOAD min(ms) max(ms) mean(ms) StdDev(µs) Linux 2.6.23 Std 15.59 15.71 15.63 46.30 Linux 2.6.23 RT 15.59 15.71 15.63 46.18 LOAD min(ms) max(ms) mean(ms) StdDev(µs) Linux 2.6.23 Std 1.04 33.16 16.11 3310 Linux 2.6.23 RT 15.59 15.71 15.62 45.21 Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 31 / 41

Some results (HRT) Conclusion Results Linux 2.6.23 Standard vs Linux 2.6.23 RT (Load - NoLoad) Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 32 / 41

Some results (HRT) Conclusion Results IRQ threading and priority assignment to IRQ handlers: How to create a repeatable experiment to effectively verify IRQ prioritarization? Modify the IRQ handler of a popular device (e.g. Keyboard i8042) so that a single execution of the handler will last for a sensible amount of time Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 33 / 41

Some results (HRT) Conclusion Results Quantitative performances: NO Interrupts min(ms) max(ms) mean(ms) StdDev(µs) Linux 2.6.23 Std 15.59 15.71 15.63 48.69 Linux 2.6.23 RT 15.59 15.71 15.62 45.44 KBD interrupts min(ms) max(ms) mean(ms) StdDev(µs) Linux 2.6.23 Std 7.280 19.86 15.43 1368 Linux 2.6.23 RT 15.59 15.71 15.63 47.44 Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 34 / 41

Some results (HRT) Conclusion Results Linux 2.6.23 Standard vs Linux 2.6.23 RT (KBD test) Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 35 / 41

Conclusion Some Results (SRT) Results Soft Real-Time Idea: Test soft real-time kernel features in the typical application context of Audio Streaming We selected VideoLan VLC for both streaming server and clients Server offers 70 Audio Streams which are asked by clients using Real-Time Streaming Protocol (RTSP) Stream transfer is done via RTP We measure the interarrival frame jitter (RFC 3550) relatively to frames in the same stream We remove head and tail jitter data and we focus on the central part of each audio stream transfer Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 36 / 41

Conclusion Some Results (SRT) Results Server: AMD Athlon 64 X2 Dual-Core 4000+ (2.1GHz), 1 GB RAM, Sata HDD, Slamd64, Linux 2.6.24.3 Clients: Dual-Core AMD Opteron 8212 (4 Dual-Core processors, 2GHz each), 16 GB Ram, Sata HDD, Slamd64, Linux 2.6.24.3 Gigabit Ethernet connection link One client CPU (two cores) is reserved to network traffic sniffing, while all the other CPUs are dedicated to VLC clients Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 37 / 41

Conclusion Some Results (SRT) Results Two server configurations: Normal: load-balancing is allowed Cpusets: load-balancing is disabled by appropriate tasks partitioning Two load scenarios: Light load ( only the streaming server) Heavy load (CPU an disk load plus streaming server load) Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 38 / 41

Conclusion Some Results (SRT) Results Light load, Normal configuration Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 39 / 41

Conclusion Some Results (SRT) Results Heavy load, Normal configuration vs. Cpuset configuration Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 40 / 41

Conclusions Conclusion Results The times when speaking about Real-Time Linux was a scary topic are over... Linux is already a very good soft real-time system... Linux in its real-time variants (Mono / Dual Kernel) is able to provide predictable and reliable hard real-time performances In its rapid evolution, Linux is moving towards a good yet flexible hard real-time support Of course, the road to strong hard real-time performances or to certification is long and winding... Andrea Bastoni (SPRG, Univ. Tor Vergata) Hard Real-Time Linux 30/04/2008 41 / 41