Modular Real-Time Linux

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Modular Real-Time Linux"

Transcription

1 Modular Real-Time Linux Shinpei Kato Department of Information and Computer Science, Keio University Hiyoshi, Kohoku, Yokohama, Japan Nobuyuki Yamasaki Department of Information and Computer Science, Keio University Hiyoshi, Kohoku, Yokohama, Japan Abstract In this paper, we develop a kernel module that is able to boost the real-time capability of the Linux kernel in high-load situations. While the traditional Real-Time Linux requires a major modification to the kernel source code, the developed kernel module requires only a minor modification, for instance the Linux kernel needs just one line modified, and thus it offers high scalability. The developed kernel module overwrites a part of the Linux scheduler so that the pick next task member of the rt sched class structure, which is a pointer to the function choosing a next scheduled task, refers to the original function implemented in the module. The original function exploits such a scheduling algorithm that traces the remaining execution time of each task and dynamically assigns the highest priority to a job going to miss its deadline with the current priority. Using this framework, other scheduling algorithms can be also easily installed into the Linux kernel for improvement of real-time capability. 1 Introduction With the dramatic development of the embedded systems technology in recent years, underlying operating systems play more significant roles than ever before. In such embedded systems that exploit multimedia computation or many I/O devices, it is essential to make use of software libraries and device drivers. Unfortunately, traditional dedicated lightweight operating systems are no longer capable of providing sufficient functions. Thus, embedded systems have raised expectations for the Linux kernel, one of the versatile open-source operating systems. The Linux kernel enables us to make use of their huge software resource, such as libraries and drivers. In addition, many programmers are now used to Linux programming, which results in little educational cost for system development. The Linux kernel offers great benefits for embedded systems. An issue of concern here is that the Linux kernel has been originally developed for general-purpose systems, and hence some parts of its design are not suitable for embedded systems. For instance, the Linux kernel does not offer sufficient real-time capability needed by most embedded systems. Therefore, many companies and institutions have developed Real-Time Linux. In traditional Real-Time Linux, real-time capability is attached by modifying the kernel source code, such as a scheduler function and a timer function. This approach is reasonable in that the performance is optimized in accordance with the intended use. However, given the future scalability, it includes problems. The Linux kernel is an open-source software that is modified and improved day to day. It This work was supported in part by Grant in Aid for the Global Center of Excellence Program for Center for Education and Research of Symbiotic, Safe and Secure System Design from Ministry of Education, Culture, Sport, and Technology in Japan. This work was also supported in part by the fund of Core Research for Evolutional Science and Technology, Japan Science and Technology Agency. 1

2 is not so uncommon that the kernel design is widely changed even by a minor version upgrade. For example, the version upgrade from to made a drastic modification to the scheduler to implement the Completely Fair Scheduler (CFS). The same is true of the version upgrade from 2.4 to 2.6, which implemented the O(1) scheduler. In order to make efficient use of the latest Linux kernel we need to design Real-Time Linux with sufficient scalability. In this paper, we design Modular Real-Time Linux called Linux T-ReX (Linux The Real-time extension), in which real-time capability is attached by kernel modules without major modification to the kernel. With respect to the Linux kernel , the designed framework requires the kernel to be modified with only one line. For an element of kernel modules, we develop a real-time scheduling module that is able to boost the real-time capability of the Linux kernel in high-load situations. 2 Linux T-ReX This section describes the framework of Linux T- ReX. Linux T-ReX is composed of the Linux kernel with a minimum modification, called Linux+ kernel in this paper, and the kernel modules for real-time computing. It can be downloaded from our website shinpei/t-rex/. Linux kernel Minimum modification Module interfaces FIGURE 1: Modules Scheduler Aperiodic server DVFS Resource reservation Locking protocol Multicore support Framework of Linux T-ReX. Figure 1 illustrates the framework of Linux T- ReX. In fact, most of real-time computing techniques depend on the real-time scheduling. For instance, there are different aperiodic server algorithms which improve the responsiveness to aperiodic tasks, with respect to fixed-priority scheduling and dynamicpriority scheduling. We thereby let only the scheduler module connect directly to the kernel, and other modules are connected via the scheduler module. Such an approach fairly simplifies the framework, since we only need to modify the kernel so that it connects to the scheduler module. In the case using the Linux kernel , this implementation can be done by making only one line modification to the kernel. Linux T-ReX targets soft real-time systems rather than hard real-time systems, since the native Linux kernel has been originally developed for non real-time systems and so it is quite difficult to apply to hard real-time systems as for some implementations, such as I/O interruptions. Therefore, Linux T-ReX gives its best effort to efficiently schedule a task set so as to meet as many deadlines as possible even in high-load situation. At the same time, it also aims to (i) minimize the response time of non realtime tasks or aperiodic tasks, (ii) reduce the power consumption as much as possible, and (iii) maintain the quality of service, as much as possible. To achieve this, we plan to implement the following modules at the moment. Scheduler Aperiodic server Dynamic voltage scaling Resource reservation Locking protocol Multicore support 3 Scheduler Module This section presents Resch (Real-time scheduler) module that is a core of Linux T-ReX. The task scheduling in the Linux kernel after the version falls into three classes: rt sched class, fair sched class, and idle sched class. Due to this classification, the scheduling of real-time tasks is now independent from the scheduling of other tasks. Since this classified scheduling seems suitable to achieve modular scheduler, we adopted the version in this paper. 3.1 Kernel Modification In the Linux kernel, scheduling decision is unalterably made in the schedule() function. The schedule() function proceeds as follows. 1. Disable preemptions and lock a run queue. 2. Check the status of the current task (prev). 3. Select the next running task (next). 4. Switch prev to next. 5. Enable preemptions and unlock a run queue. A scheduling algorithm is what decides a next running task, and it is only related to the third step. The third step is actually implemented as the pick next task() function. The following shows its pseudo code. 2

3 pick next task() { class =rtsched class; for ( ; ; ) { p = class->pick next task(); if (p) return p; class = class->next; The pick next task() function first executes the pick next task() function of the rt sched class that is a real-time scheduling class. If there are no ready real-time tasks, the return value p becomes NULL, and then the function executes the pick next task() function of the next scheduling class. The three scheduling class is linked by the next member in order of rt sched class fair sched class idle sched class and rt sched class is always executed in priority to the other classes. Here, we notice that the pick next task member of each class is a function pointer, and in fact it refers to the pick next task rt() function. So, if we can change the reference of the pointer, we can install our own pick next task() function to the Linux kernel. The rt sched class structure is declared in the kernel as follows. const struct sched class rt sched class Hence, we modify the declaration as follows and export it from the kernel to enable a kernel module to overwrite the pick next task pointer. EXPORT(rt sched class) struct sched class rt sched class In the Linux+ kernel developed in this work, we never make further modifications. If the above modification is applied to the native Linux in the later version, we come to be able to install our own scheduler module without any kernel modification. 3.2 Module Interface Linux kernel rt_sched_class pick_next_task FIGURE 2: pick_next_task_rt Before install Resch module pick_next_task_resch After install Install of Resch module. Figure 2 illustrates the install of the Resch module. Since the pick next task function pointer of the rt sched class structure can be overwritten from the kernel space due to the above kernel modification, we can embed our own scheduling algorithm by changing the function pointer so as to refer to the pick next task resch() function implemented within the Resch module from the original pick next task rt() function on installing the module. The scheduling algorithm of the pick next task resch() function is presented in Section 3.3. In order to make use of the Resch module, we mainly manipulate the following four API functions. int resch init(long priority) int resch exit(void) int resch run(long period, long timeout) int resch yield(void) The resch init() function inserts the current task executing the caller application program into the run queue which is managed by the Resch module. The task priority is set to the argument. If we want to finish its real-time execution scheduled by the Resch module, we use the resch exit() function. The resch run() function actually starts periodic realtime execution with the specified period when the specified timeout is expired. The resch yield() function yields the CPU time to another task, and periodic tasks must call this function at every end of period. Notice that the Resch module runs in the kernel space while user tasks run in the user space. Therefore, a user task cannot directly call the functions implemented within the Resch module. In order to enable a user task to call the module functions, we prepare a virtual character device (/dev/resch) and implement the Resch module as its device driver. When the Resch module is initialized, it registers the resch write() function so that it is executed when the write() system call is executed to /dev/resch. Thus, using the write() system call, the above API functions can manipulate the Resch module. For instance, let us assume the resch init() function is executed as below. resch init(99); This function deploys the following code. ((long*)data)[0] = ID INIT; ((long*)data)[1] = 99; fd = open( /dev/resch, O RDWR); write(fd, data, sizeof(data)); Here, ID INIT is a constant that indicates the ID of the resch init() function. The Resch module then parse ID INIT and carries out the corresponding processing. 3

4 In the Resch module, we need to associate the data such as deadline and execution time to each task for real-time scheduling. These data are defined by the rt data structure. The following depicts the main members of the rt data structure. struct rt data { long period; long deadline; long wcet; long remaining time; The wcet member indicates the worst-case execution time. The Resch module tracks the execution time of a task. When the resch yield() function is called, wcet is updated if the execution time of the task in the current period is greater than that of ever before. The remaining time member indicates the remaining execution time of the task to wcet. Note that we did not make any modification to the task control block in the kernel (task struct). We associate the rt data structure to the task struct structure by using the time slice member of the rt sched entity member of the task struct structure. In fact, the time slice member is never used in the SCHED FIFO real-time scheduling. So, we use this member to store the pointer to the rt data structure as follows. rt data *rt = kmalloc(sizeof(*rt)); current->rt.time slice = (int)rt; Finally, executing the sched setscheduler function of the Linux kernel with the specified priority and the SCHED FIFO policy as the arguments, the task will be scheduled according to the scheduling algorithm of the Resch module, which is described in the next section. 3.3 Scheduling Algorithm The native Linux kernel offers two scheduling algorithms for real-time tasks: SCHED FIFO and SCHED RR. The difference between SCHED FIFO and SCHED RR is that SCHED FIFO never preempts the current task unless higher priority tasks are ready, while SCHED RR switches the current task when the time slice is expired if there are ready tasks with the same priority. In fact, they are the same algorithm in terms of fixed-priority scheduling. If the scheduling algorithm is either SCHED FIFO or SCHED RR, the occurrence of context switches is confined to the following two cases. When higher priority tasks are released. When the current task stops (completion or sleep). If the scheduling point of a scheduling algorithm is limited to the above two cases, all we have to do is to prepare a new pick next task resch function to add-in the scheduling algorithm to the Linux kernel. In this paper, we design a scheduling algorithm that can maintain the real-time capability even in highload situation. Then, we implement the scheduling algorithm to the Resch module. A fixed-priority algorithm has many advantages, such as simplicity, predictability, small jitters, and so on. However, a main disadvantage of fixedpriority scheduling is that a deadline may be missed even though the CPU utilization is not quite high. Rate Monotonic (RM) [1], an optimal fixed-priority scheduling algorithm, may miss deadlines if the CPU utilization is higher than 69% in the worst case. Meanwhile, Earliest Deadline First (EDF) [1], an optimal dynamic-priority scheduling algorithm, can always meet deadlines if the CPU utilization does not exceed 100%. However, in EDF scheduling, the priorities of tasks are dynamically changed and thus its implementation is not suitable to the O(1) scheduler of the Linux kernel. Besides, it is widely known that one deadline miss can cause following deadline misses in EDF scheduling if the CPU is overloaded, which is often called Domino Effect. Therefore, we design a scheduling algorithm based on the RM algorithm, with offering high CPU utilization and at the same time succeeding the advantage of fixedpriority scheduling such as simplicity, predictability, and small jitters. T 1 T 2 T 3 deadline miss FIGURE 3: RM scheduling. First, we consider RM scheduling. Figure 3 shows a deadline miss in RM scheduling, when three tasks T 1, T 2,andT 3 are scheduled. A low priority task T 3 is blocked by higher priority tasks T 1 and T 2, and thereby misses a deadline. Here, we realize that a deadline miss can be avoided if a gray-color execution portion of T 3 is scheduled in priority to the third job of T 1 in the figure. In order to achieve this scheduling, we introduce a concept of Critical Laxity [2] to RM scheduling. Critical Laxity is a derivative of Zero Laxity [3, 4]. The laxity of task T i at time t is denoted by x i (t) and computed as follows where d i is a deadline of T i and e i is a remaining execution time of T i at time t. x i (t) =d i (t + e i ) 4

5 Let t s be any scheduling point of fixed-priority scheduling, which is a time instant when some job is released or complete. The laxity of T i is said to be Critical Laxity, if it holds the following condition at time t s,wheree hp denotes the remaining execution time of the highest priority task. x i (t s ) <e hp t s e hp x ( ) i t s critical laxity T hp zero laxity FIGURE 4: Critical laxity. In RM scheduling, a task reaching Critical Laxity will surely miss a deadline unless it is assigned the highest priority on the spot. Figure 4 depicts an example. Assuming that task T i reaches Critical Laxity at time t s.duetox i (t s ) <e hp,thelaxityof T i will reach zero before the highest priority task T hp completes, and thus it will never meet a deadline. In other words, if the highest priority is dynamically assigned to a task with Critical Laxity, a deadline miss can be avoided. Such a scheduling algorithm is defined Rate Monotonic Critical Laxity (RMCL) in this paper. T 1 T 2 e i T i d i /* t is current time. */ pick next task resch() { T hp =picknext task rt(); for (each task T i ) { if (d i t + e i <e hp && d hp t + e hp e i ) return T i ; return T hp ; First, the module calls the pick next task rt() function that is originally implemented in the kernel to get the highest priority task T hp.next,itverifies if there exist tasks that have Critical Laxity. If a task T i has Critical Laxity, the module assigns the highest priority to T i unless this assignment causes T hp to miss a deadline. Otherwise, T hp is the highest priority task. 4 Conclusion In this paper, we designed and implement a modular real-time Linux called Linux T-ReX. Linux T- ReX requires only one line modification to the original Linux kernel, and the real-time capability is improved by using kernel modules. As a start point, we developed the Resch module for efficient real-time scheduling in Linux. The RMCL algorithm that is implemented in the Resch module can maintain the real-time capability even in high-load situation, compared to the traditional RM algorithm. In the future, we plan to develop other kernel modules for supporting sophisticated real-time computing. T 3 critical laxity FIGURE 5: RMCL scheduling. Figure 5 shows the RMCL scheduling of the three tasks. Although T 3 misses a deadline in RM scheduling as shown in Figure 3, it can meet a deadline in RMCL scheduling. In fact, RMCL scheduling is at least as effective as RM scheduling. In other words, any task set that is successfully scheduled by RM can be also successfully scheduled by RMCL. Besides, we can see that no additional preemptions occur in the figure. In fact, the number of scheduler invocations in RMCL scheduling is same as that in RM scheduling. Since RMCL scheduling behaves as RM scheduling until any task reaches Critical laxity, it succeeds all advantage of RM scheduling such as simplicity, predictability, and small jitters. In consequence, we believe that RMCL scheduling is very effective for the Linux kernel. Finally, we show an implementation of the RMCL algorithm in the Resch module by pseudo code. 5 References [1] C. L. Liu and J. W. Layland. Scheduling Algorithms for Multiprogramming in a Hard Real- Time Environment. Journal of the ACM, 20:46 61, [2]S.KatoandN.Yamasaki. GlobalEDF-based Scheduling with Efficient Priority Promotion. In Proceedings of the IEEE International Conference on Embedded and Real-Time Computing Systems and Applications, 10 pages, [3] S. Cho, S.K. Lee, A. Han, and K.J. Lin. Efficient Real-Time Scheduling Algorithms for Multiprocessor Systems. IEICE Transactions on Communications, E85-B(12): , [4] M. Cirinei and T.P. Baker. EDZL Scheduling Analysis. In Proceedings of the Euromicro Conference on Real-Time Systems, pages 9 18, 2007.

Project No. 2: Process Scheduling in Linux Submission due: April 28, 2014, 11:59pm

Project No. 2: Process Scheduling in Linux Submission due: April 28, 2014, 11:59pm Project No. 2: Process Scheduling in Linux Submission due: April 28, 2014, 11:59pm PURPOSE Getting familiar with the Linux kernel source code. Understanding process scheduling and how different parameters

More information

Predictable response times in event-driven real-time systems

Predictable response times in event-driven real-time systems Predictable response times in event-driven real-time systems Automotive 2006 - Security and Reliability in Automotive Systems Stuttgart, October 2006. Presented by: Michael González Harbour mgh@unican.es

More information

Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6

Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6 Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6 Winter Term 2008 / 2009 Jun.-Prof. Dr. André Brinkmann Andre.Brinkmann@uni-paderborn.de Universität Paderborn PC² Agenda Multiprocessor and

More information

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

Real-Time Scheduling (Part 1) (Working Draft) Real-Time System Example Real-Time Scheduling (Part 1) (Working Draft) Insup Lee Department of Computer and Information Science School of Engineering and Applied Science University of Pennsylvania www.cis.upenn.edu/~lee/ CIS 41,

More information

Lecture 3 Theoretical Foundations of RTOS

Lecture 3 Theoretical Foundations of RTOS CENG 383 Real-Time Systems Lecture 3 Theoretical Foundations of RTOS Asst. Prof. Tolga Ayav, Ph.D. Department of Computer Engineering Task States Executing Ready Suspended (or blocked) Dormant (or sleeping)

More information

A loadable task execution recorder for Linux

A loadable task execution recorder for Linux A loadable task execution recorder for Linux Mikael Åsberg, Johan Kraft and Thomas Nolte MRTC/Mälardalen University P.O. Box 883, SE-721 23, Västerås, Sweden {mikael.asberg,johan.kraft,thomas.nolte}@mdh.se

More information

Real-Time Scheduling 1 / 39

Real-Time Scheduling 1 / 39 Real-Time Scheduling 1 / 39 Multiple Real-Time Processes A runs every 30 msec; each time it needs 10 msec of CPU time B runs 25 times/sec for 15 msec C runs 20 times/sec for 5 msec For our equation, A

More information

Description of Project: Scheduling algorithms used in a particular application can have a significant impact on

Description of Project: Scheduling algorithms used in a particular application can have a significant impact on MS project proposal: A comparison of real-time scheduling algorithms using visualization of tasks and evaluation of real-time extensions to Linux Kevin Churnetski Computer Science-RIT 8/21/2003 Abstract:

More information

STORM. Simulation TOol for Real-time Multiprocessor scheduling. Designer Guide V3.3.1 September 2009

STORM. Simulation TOol for Real-time Multiprocessor scheduling. Designer Guide V3.3.1 September 2009 STORM Simulation TOol for Real-time Multiprocessor scheduling Designer Guide V3.3.1 September 2009 Richard Urunuela, Anne-Marie Déplanche, Yvon Trinquet This work is part of the project PHERMA supported

More information

3. Scheduling issues. Common approaches /1. Common approaches /2. Common approaches /3. 2012/13 UniPD / T. Vardanega 23/01/2013. Real-Time Systems 1

3. Scheduling issues. Common approaches /1. Common approaches /2. Common approaches /3. 2012/13 UniPD / T. Vardanega 23/01/2013. Real-Time Systems 1 Common approaches /1 3. Scheduling issues Clock-driven (time-driven) scheduling Scheduling decisions are made beforehand (off line) and carried out at predefined time instants The time instants normally

More information

Tasks Schedule Analysis in RTAI/Linux-GPL

Tasks Schedule Analysis in RTAI/Linux-GPL Tasks Schedule Analysis in RTAI/Linux-GPL Claudio Aciti and Nelson Acosta INTIA - Depto de Computación y Sistemas - Facultad de Ciencias Exactas Universidad Nacional del Centro de la Provincia de Buenos

More information

An EDF scheduling class for the Linux kernel

An EDF scheduling class for the Linux kernel An EDF scheduling class for the Linux kernel Dario Faggioli, Fabio Checconi Scuola Superiore Sant Anna Pisa, Italy {d.faggioli, f.checconi}@sssup.it Michael Trimarchi, Claudio Scordino Evidence Srl Pisa,

More information

Chapter 5: Process Scheduling

Chapter 5: Process Scheduling Chapter 5: Process Scheduling Chapter 5: Process Scheduling 5.1 Basic Concepts 5.2 Scheduling Criteria 5.3 Scheduling Algorithms 5.3.1 First-Come, First-Served Scheduling 5.3.2 Shortest-Job-First Scheduling

More information

Using EDF in Linux: SCHED DEADLINE. Luca Abeni luca.abeni@unitn.it

Using EDF in Linux: SCHED DEADLINE. Luca Abeni luca.abeni@unitn.it Using EDF in Linux: Luca Abeni luca.abeni@unitn.it Using Fixed Priorities in Linux SCHED FIFO and SCHED RR use fixed priorities They can be used for real-time tasks, to implement RM and DM Real-time tasks

More information

Overview of the Linux Scheduler Framework

Overview of the Linux Scheduler Framework Overview of the Linux Scheduler Framework WORKSHOP ON REAL-TIME SCHEDULING IN THE LINUX KERNEL Pisa, June 27th, 2014 Marco Cesati University of Rome Tor Vergata Marco Cesati (Univ. of Rome Tor Vergata)

More information

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

Linux Process Scheduling. sched.c. schedule() scheduler_tick() hooks. try_to_wake_up() ... CFS CPU 0 CPU 1 CPU 2 CPU 3 Linux Process Scheduling sched.c schedule() scheduler_tick() try_to_wake_up() hooks RT CPU 0 CPU 1 CFS CPU 2 CPU 3 Linux Process Scheduling 1. Task Classification 2. Scheduler Skeleton 3. Completely Fair

More information

Jorix kernel: real-time scheduling

Jorix kernel: real-time scheduling Jorix kernel: real-time scheduling Joris Huizer Kwie Min Wong May 16, 2007 1 Introduction As a specialized part of the kernel, we implemented two real-time scheduling algorithms: RM (rate monotonic) and

More information

4. Fixed-Priority Scheduling

4. Fixed-Priority Scheduling Simple workload model 4. Fixed-Priority Scheduling Credits to A. Burns and A. Wellings The application is assumed to consist of a fixed set of tasks All tasks are periodic with known periods This defines

More information

Scheduling Aperiodic and Sporadic Jobs in Priority- Driven Systems

Scheduling Aperiodic and Sporadic Jobs in Priority- Driven Systems Scheduling Aperiodic and Sporadic Jobs in Priority- Driven Systems Ingo Sander ingo@kth.se Liu: Chapter 7 IL2212 Embedded Software 1 Outline l System Model and Assumptions l Scheduling Aperiodic Jobs l

More information

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

Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No. # 26 Real - Time POSIX. (Contd.) Ok Good morning, so let us get

More information

Operating System Aspects. Real-Time Systems. Resource Management Tasks

Operating System Aspects. Real-Time Systems. Resource Management Tasks Operating System Aspects Chapter 2: Basics Chapter 3: Multimedia Systems Communication Aspects and Services Multimedia Applications and Communication Multimedia Transfer and Control Protocols Quality of

More information

I.-C. Lin, Assistant Professor. Textbook: Operating System Concepts 8ed

I.-C. Lin, Assistant Professor. Textbook: Operating System Concepts 8ed I.-C. Lin, Assistant Professor. Textbook: Operating System Concepts 8ed CHAPTER 5: PROCESS SCHEDULING Chapter 5: Process Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor

More information

The simple case: Cyclic execution

The simple case: Cyclic execution The simple case: Cyclic execution SCHEDULING PERIODIC TASKS Repeat a set of aperiodic tasks at a specific rate (cycle) 1 2 Periodic tasks Periodic tasks (the simplified case) Scheduled to run Arrival time

More information

Priority-Driven Scheduling

Priority-Driven Scheduling Priority-Driven Scheduling Advantages of Priority-Driven Scheduling Priority-driven scheduling is easy to implement. It does not require the information on the release times and execution times of the

More information

COMPLEX EMBEDDED SYSTEMS

COMPLEX EMBEDDED SYSTEMS COMPLEX EMBEDDED SYSTEMS Real-Time Scheduling Summer Semester 2012 System and Software Engineering Prof. Dr.-Ing. Armin Zimmermann Contents Introduction Scheduling in Interactive Systems Real-Time Scheduling

More information

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

CPU Scheduling. Basic Concepts. Basic Concepts (2) Basic Concepts Scheduling Criteria Scheduling Algorithms Batch systems Interactive systems Basic Concepts Scheduling Criteria Scheduling Algorithms Batch systems Interactive systems Based on original slides by Silberschatz, Galvin and Gagne 1 Basic Concepts CPU I/O Burst Cycle Process execution

More information

Hard Real-Time Linux

Hard Real-Time Linux 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

More information

CPU Scheduling Yi Shi Fall 2015 Xi an Jiaotong University

CPU Scheduling Yi Shi Fall 2015 Xi an Jiaotong University CPU Scheduling Yi Shi Fall 2015 Xi an Jiaotong University Goals for Today CPU Schedulers Scheduling Algorithms Algorithm Evaluation Metrics Algorithm details Thread Scheduling Multiple-Processor Scheduling

More information

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

A Survey of Fitting Device-Driver Implementations into Real-Time Theoretical Schedulability Analysis A Survey of Fitting Device-Driver Implementations into Real-Time Theoretical Schedulability Analysis Mark Stanovich Florida State University, USA Contents 1 Introduction 2 2 Scheduling Theory 3 2.1 Workload

More information

Threads Scheduling on Linux Operating Systems

Threads Scheduling on Linux Operating Systems Threads Scheduling on Linux Operating Systems Igli Tafa 1, Stavri Thomollari 2, Julian Fejzaj 3 Polytechnic University of Tirana, Faculty of Information Technology 1,2 University of Tirana, Faculty of

More information

CPU Scheduling Outline

CPU Scheduling Outline CPU Scheduling Outline What is scheduling in the OS? What are common scheduling criteria? How to evaluate scheduling algorithms? What are common scheduling algorithms? How is thread scheduling different

More information

Completely Fair Scheduler and its tuning 1

Completely Fair Scheduler and its tuning 1 Completely Fair Scheduler and its tuning 1 Jacek Kobus and Rafał Szklarski 1 Introduction The introduction of a new, the so called completely fair scheduler (CFS) to the Linux kernel 2.6.23 (October 2007)

More information

LAB 5: Scheduling Algorithms for Embedded Systems

LAB 5: Scheduling Algorithms for Embedded Systems LAB 5: Scheduling Algorithms for Embedded Systems Say you have a robot that is exploring an area. The computer controlling the robot has a number of tasks to do: getting sensor input, driving the wheels,

More information

On the implementation of real-time slot-based task-splitting scheduling algorithms for multiprocessor systems

On the implementation of real-time slot-based task-splitting scheduling algorithms for multiprocessor systems On the implementation of real-time slot-based task-splitting scheduling algorithms for multiprocessor systems Paulo Baltarejo Sousa CISTER-ISEP Research Center, Polytechnic Institute of Porto Rua Dr. António

More information

A Configurable Hardware Scheduler for Real-Time Systems

A Configurable Hardware Scheduler for Real-Time Systems A Configurable Hardware Scheduler for Real-Time Systems Pramote Kuacharoen, Mohamed A. Shalan and Vincent J. Mooney III Center for Research on Embedded Systems and Technology School of Electrical and Computer

More information

Module 6. Embedded System Software. Version 2 EE IIT, Kharagpur 1

Module 6. Embedded System Software. Version 2 EE IIT, Kharagpur 1 Module 6 Embedded System Software Version 2 EE IIT, Kharagpur 1 Lesson 30 Real-Time Task Scheduling Part 2 Version 2 EE IIT, Kharagpur 2 Specific Instructional Objectives At the end of this lesson, the

More information

Processor Scheduling. Background. Scheduling. Scheduling

Processor Scheduling. Background. Scheduling. Scheduling Background Processor Scheduling The previous lecture introduced the basics of concurrency Processes and threads Definition, representation, management We now understand how a programmer can spawn concurrent

More information

Chapter 5: CPU Scheduling

Chapter 5: CPU Scheduling Chapter 5: CPU Scheduling Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Thread Scheduling Operating Systems Examples

More information

Periodic Task Scheduling

Periodic Task Scheduling Periodic Task Scheduling Radek Pelánek Motivation and Assumptions Examples of Periodic Tasks sensory data acquisition control loops action planning system monitoring Motivation and Assumptions Simplifying

More information

Partition Scheduling in APEX Runtime Environment for Embedded Avionics Software

Partition Scheduling in APEX Runtime Environment for Embedded Avionics Software Partition Scheduling in APEX Runtime Environment for Embedded Avionics Software Yang-Hang Lee CISE Department, University of Florida Gainesville, FL 32611 Phone: (352) 392-1536 Fax: (352) 392-1220 Email:

More information

Resource Synchronization in Hierarchically Scheduled Real-Time Systems using Preemptive Critical Sections

Resource Synchronization in Hierarchically Scheduled Real-Time Systems using Preemptive Critical Sections 2014 IEEE 17th International Symposium on Object/Component-Oriented Real-Time Distributed Computing Resource Synchronization in Hierarchically Scheduled Real-Time Systems using Preemptive Critical Sections

More information

Operating Systems Concepts: Chapter 7: Scheduling Strategies

Operating Systems Concepts: Chapter 7: Scheduling Strategies Operating Systems Concepts: Chapter 7: Scheduling Strategies Olav Beckmann Huxley 449 http://www.doc.ic.ac.uk/~ob3 Acknowledgements: There are lots. See end of Chapter 1. Home Page for the course: http://www.doc.ic.ac.uk/~ob3/teaching/operatingsystemsconcepts/

More information

CPU SCHEDULING (CONT D) NESTED SCHEDULING FUNCTIONS

CPU SCHEDULING (CONT D) NESTED SCHEDULING FUNCTIONS CPU SCHEDULING CPU SCHEDULING (CONT D) Aims to assign processes to be executed by the CPU in a way that meets system objectives such as response time, throughput, and processor efficiency Broken down into

More information

Enhancing the Monitoring of Real-Time Performance in Linux

Enhancing the Monitoring of Real-Time Performance in Linux Master of Science Thesis Enhancing the Monitoring of Real-Time Performance in Linux Author: Nima Asadi nai10001@student.mdh.se Supervisor: Mehrdad Saadatmand mehrdad.saadatmand@mdh.se Examiner: Mikael

More information

CHAPTER 5 Exercises 5.1 Answer: 5.2 Answer: 5.3 lottery scheduling

CHAPTER 5 Exercises 5.1 Answer: 5.2 Answer: 5.3 lottery scheduling CHAPTER 5 CPU scheduling is the basis of multiprogrammed operating systems. By switching the CPU among processes, the operating system can make the computer more productive. In this chapter, we introduce

More information

Chapter 5: CPU Scheduling. Chapter 5: CPU Scheduling. Basic Concepts. Histogram of CPU-burst Times. CPU Scheduler

Chapter 5: CPU Scheduling. Chapter 5: CPU Scheduling. Basic Concepts. Histogram of CPU-burst Times. CPU Scheduler Chapter 5: CPU Scheduling Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Thread Scheduling Operating Systems Examples

More information

Chapter 6: CPU Scheduling

Chapter 6: CPU Scheduling Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling 1.1 Maximum CPU utilization obtained with multiprogramming CPU I/O Burst

More information

Improved Handling of Soft Aperiodic Tasks in Offline Scheduled Real-Time Systems using Total Bandwidth Server

Improved Handling of Soft Aperiodic Tasks in Offline Scheduled Real-Time Systems using Total Bandwidth Server Improved Handling of Soft Aperiodic Tasks in Offline Scheduled Real-Time Systems using Total Bandwidth Server Gerhard Fohler, Tomas Lennvall Mälardalen University Västeras, Sweden gfr, tlv @mdh.se Giorgio

More information

Chapter 5: CPU Scheduling

Chapter 5: CPU Scheduling COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 5: CPU Scheduling Zhi Wang Florida State University Contents Basic concepts Scheduling criteria Scheduling algorithms Thread scheduling

More information

ECE3055 Computer Architecture and Operating Systems

ECE3055 Computer Architecture and Operating Systems ECE3055 Computer Architecture and Operating Systems Lecture: CPU Scheduling Prof. Hsien-Hsin Hsin Sean Lee School of Electrical and Computer Engineering Georgia Institute of Technology H.-H. S. Lee 1 Overview

More information

Chapter 6: CPU Scheduling

Chapter 6: CPU Scheduling 1 Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation 6.1 2 Basic Concepts Maximum CPU utilization

More information

Round Robin (RR) ACSC 271 Operating Systems. RR Example. RR Scheduling. Lecture 9: Scheduling Algorithms

Round Robin (RR) ACSC 271 Operating Systems. RR Example. RR Scheduling. Lecture 9: Scheduling Algorithms Round Robin (RR) ACSC 271 Operating Systems Lecture 9: Scheduling Algorithms Each process gets a small unit of CPU time (time quantum), usually 10-100 milliseconds. After this time has elapsed, the process

More information

Real-Time Scheduling Strategy for Wireless Sensor Networks O.S

Real-Time Scheduling Strategy for Wireless Sensor Networks O.S Real-Time Scheduling Strategy for Wireless Sensor Networks O.S Kayvan Atefi 1, Mohammad Sadeghi 2, Arash Atefi 3 1 Faculty of Computer and Mathematical Sciences,UiTM,Shah Alam,Malaysia k1.educational@gmail.com

More information

EE8205: Embedded Computer System Multitasking and Real-time Operating System -- Problem Set 2014 Solutions

EE8205: Embedded Computer System Multitasking and Real-time Operating System -- Problem Set 2014 Solutions EE8205: Embedded Computer System Multitasking and Real-time Operating System -- Problem Set 2014 Solutions Out: November 26, 2014 P. 1: What is the difference between turnaround time and response time.

More information

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

Asymmetric Scheduling and Load Balancing for Real-Time on Linux SMP Asymmetric Scheduling and Load Balancing for Real-Time on Linux SMP Éric Piel, Philippe Marquet, Julien Soula, and Jean-Luc Dekeyser {Eric.Piel,Philippe.Marquet,Julien.Soula,Jean-Luc.Dekeyser}@lifl.fr

More information

Chapter 6: CPU Scheduling. Basic Concepts

Chapter 6: CPU Scheduling. Basic Concepts 1 Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation 6.1 Basic Concepts Maximum CPU utilization obtained

More information

ICS 143 - Principles of Operating Systems

ICS 143 - Principles of Operating Systems ICS 143 - Principles of Operating Systems Lecture 5 - CPU Scheduling Prof. Nalini Venkatasubramanian nalini@ics.uci.edu Note that some slides are adapted from course text slides 2008 Silberschatz. Some

More information

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

Operatin g Systems: Internals and Design Principle s. Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings Operatin g Systems: Internals and Design Principle s Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Bear in mind,

More information

5.1 Basic Concepts. Chapter 5: Process Scheduling. Alternating Sequence of CPU And I/O Bursts. 5.1 Basic Concepts

5.1 Basic Concepts. Chapter 5: Process Scheduling. Alternating Sequence of CPU And I/O Bursts. 5.1 Basic Concepts 5.1 Basic Concepts Maximum CPU utilization obtained with multiprogramming CPU I/O Burst Cycle Process execution consists of a cycle of CPU execution and I/O wait CPU burst distribution Chapter 5: Process

More information

Operating Systems. III. Scheduling. http://soc.eurecom.fr/os/

Operating Systems. III. Scheduling. http://soc.eurecom.fr/os/ Operating Systems Institut Mines-Telecom III. Scheduling Ludovic Apvrille ludovic.apvrille@telecom-paristech.fr Eurecom, office 470 http://soc.eurecom.fr/os/ Outline Basics of Scheduling Definitions Switching

More information

RT-Xen: Towards Real-time Hypervisor Scheduling in Xen

RT-Xen: Towards Real-time Hypervisor Scheduling in Xen RT-Xen: Towards Real-time Hypervisor Scheduling in Xen Sisu Xi, Justin Wilson, Chenyang Lu, and Christopher Gill Department of Computer Science and Engineering Washington University in St. Louis {xis,

More information

Aperiodic Task Scheduling

Aperiodic Task Scheduling Aperiodic Task Scheduling Jian-Jia Chen (slides are based on Peter Marwedel) TU Dortmund, Informatik 12 Germany Springer, 2010 2014 年 11 月 19 日 These slides use Microsoft clip arts. Microsoft copyright

More information

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

Linux scheduler history. We will be talking about the O(1) scheduler CPU Scheduling Linux scheduler history We will be talking about the O(1) scheduler SMP Support in 2.4 and 2.6 versions 2.4 Kernel 2.6 Kernel CPU1 CPU2 CPU3 CPU1 CPU2 CPU3 Linux Scheduling 3 scheduling

More information

Chapter 5: CPU Scheduling. Operating System Concepts 8 th Edition,

Chapter 5: CPU Scheduling. Operating System Concepts 8 th Edition, Chapter 5: CPU Scheduling, Silberschatz, Galvin and Gagne 2009 Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Linux Example

More information

ECE3055 Computer Architecture and Operating Systems

ECE3055 Computer Architecture and Operating Systems ECE3055 Computer Architecture and Operating Systems Lecture: CPU Scheduling Prof. Hsien-Hsin Hsin Sean Lee School of Electrical and Computer Engineering Georgia Institute of Technology H.-H. S. Lee 1 Overview

More information

ENERGY SAVING SCHEDULING FOR EMBEDDED REAL-TIME LINUX APPLICATIONS

ENERGY SAVING SCHEDULING FOR EMBEDDED REAL-TIME LINUX APPLICATIONS ENERGY SAVING SCHEDULING FOR EMBEDDED REAL-TIME LINUX APPLICATIONS Claudio Scordino and Giuseppe Lipari Scuola Superiore Sant Anna Viale Rinaldo Piaggio, 34-56025 Pontedera - Pisa, Italy {scordino@gandalf.sssup.it,lipari@sssup.it}

More information

Chapter 5: CPU Scheduling!

Chapter 5: CPU Scheduling! Chapter 5: CPU Scheduling Operating System Concepts 8 th Edition, Silberschatz, Galvin and Gagne 2009 Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling

More information

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

Objectives. Chapter 5: CPU Scheduling. CPU Scheduler. Non-preemptive and preemptive. Dispatcher. Alternating Sequence of CPU And I/O Bursts Objectives Chapter 5: CPU Scheduling Introduce CPU scheduling, which is the basis for multiprogrammed operating systems Describe various CPU-scheduling algorithms Discuss evaluation criteria for selecting

More information

Chapter 5: CPU Scheduling. Operating System Concepts 8 th Edition,

Chapter 5: CPU Scheduling. Operating System Concepts 8 th Edition, Chapter 5: CPU Scheduling, Silberschatz, Galvin and Gagne 2009 Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Operating

More information

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

Deciding which process to run. (Deciding which thread to run) Deciding how long the chosen process can run SFWR ENG 3BB4 Software Design 3 Concurrent System Design 2 SFWR ENG 3BB4 Software Design 3 Concurrent System Design 11.8 10 CPU Scheduling Chapter 11 CPU Scheduling Policies Deciding which process to run

More information

Exercises : Real-time Scheduling analysis

Exercises : Real-time Scheduling analysis Exercises : Real-time Scheduling analysis Frank Singhoff University of Brest June 2013 Exercise 1 : Fixed priority scheduling and Rate Monotonic priority assignment Given a set of tasks defined by the

More information

Real- Time Scheduling

Real- Time Scheduling Real- Time Scheduling Chenyang Lu CSE 467S Embedded Compu5ng Systems Readings Ø Single-Processor Scheduling: Hard Real-Time Computing Systems, by G. Buttazzo. q Chapter 4 Periodic Task Scheduling q Chapter

More information

Chapter 5: Process Scheduling

Chapter 5: Process Scheduling Chapter 5: Process Scheduling, Silberschatz, Galvin and Gagne 2009 Chapter 5: Process Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling

More information

Chapter 5: CPU Scheduling. Chapter 5: CPU Scheduling

Chapter 5: CPU Scheduling. Chapter 5: CPU Scheduling Chapter 5: CPU Scheduling Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Thread Scheduling Operating Systems Examples

More information

Framework for Validation, Test and Analysis of Real-time Scheduling Algorithms and Scheduler Implementations

Framework for Validation, Test and Analysis of Real-time Scheduling Algorithms and Scheduler Implementations Framework for Validation, Test and Analysis of Real-time Scheduling Algorithms and Scheduler Implementations Frank Golatowski, Jens Hildebrandt, Jan Blumenthal, Dirk Timmermann Institute of Applied Microelectronics

More information

Real Time Scheduling Basic Concepts. Radek Pelánek

Real Time Scheduling Basic Concepts. Radek Pelánek Real Time Scheduling Basic Concepts Radek Pelánek Basic Elements Model of RT System abstraction focus only on timing constraints idealization (e.g., zero switching time) Basic Elements Basic Notions task

More information

Effective Scheduling Algorithm and Scheduler Implementation for use with Time-Triggered Co-operative Architecture

Effective Scheduling Algorithm and Scheduler Implementation for use with Time-Triggered Co-operative Architecture http://dx.doi.org/10.5755/j01.eee.20.6.7282 ELEKTRONIKA IR ELEKTROTECHNIKA, ISSN 1392 1215, VOL. 20, NO. 6, 2014 Effective Scheduling Algorithm and Scheduler Implementation for use with Time-Triggered

More information

Process Scheduling in Linux

Process Scheduling in Linux Process Scheduling in Linux Scheduling Mechanism: how to switch. Scheduling Policy: when to switch and what process to choose. Some scheduling objectives: fast process response time avoidance of process

More information

Lecture 5 Process Scheduling (chapter 5)

Lecture 5 Process Scheduling (chapter 5) Bilkent University Department of Computer Engineering CS342 Operating Systems Lecture 5 Process Scheduling (chapter 5) Dr. İbrahim Körpeoğlu http://www.cs.bilkent.edu.tr/~korpe 1 References The slides

More information

Chapter 5: CPU Scheduling. Operating System Concepts with Java 8 th Edition

Chapter 5: CPU Scheduling. Operating System Concepts with Java 8 th Edition Chapter 5: CPU Scheduling 5.1 Silberschatz, Galvin and Gagne 2009 Basic Concepts Maximum CPU utilization obtained with multiprogramming CPU I/O Burst Cycle Process execution consists of a cycle of CPU

More information

Processes and operating systems. Metrics. Rate Monotonic Scheduling. Scheduling policies: Scheduling modeling assumptions. Interprocess communication.

Processes and operating systems. Metrics. Rate Monotonic Scheduling. Scheduling policies: Scheduling modeling assumptions. Interprocess communication. Processes and operating systems Scheduling policies: RMS; EDF. Scheduling modeling assumptions. Interprocess communication. Metrics How do we evaluate a scheduling policy: Ability to satisfy all deadlines.

More information

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

Lecture Outline Overview of real-time scheduling algorithms Outline relative strengths, weaknesses Overview of Real-Time Scheduling Embedded Real-Time Software Lecture 3 Lecture Outline Overview of real-time scheduling algorithms Clock-driven Weighted round-robin Priority-driven Dynamic vs. static Deadline

More information

Chapter 13 Embedded Operating Systems

Chapter 13 Embedded Operating Systems Operating Systems: Internals and Design Principles Chapter 13 Embedded Operating Systems Eighth Edition By William Stallings Embedded System Refers to the use of electronics and software within a product

More information

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

The Design and Implementation of Real-Time Schedulers in RED-Linux The Design and Implementation of Real-Time Schedulers in RED-Linux KWEI-JAY LIN, SENIOR MEMBER, IEEE AND YU-CHUNG WANG Invited Paper Researchers in the real-time system community have designed and studied

More information

Chapter 5 Process Scheduling

Chapter 5 Process Scheduling Chapter 5 Process Scheduling CPU Scheduling Objective: Basic Scheduling Concepts CPU Scheduling Algorithms Why Multiprogramming? Maximize CPU/Resources Utilization (Based on Some Criteria) CPU Scheduling

More information

Chapter 2: OS Overview

Chapter 2: OS Overview Chapter 2: OS Overview CmSc 335 Operating Systems 1. Operating system objectives and functions Operating systems control and support the usage of computer systems. a. usage users of a computer system:

More information

Real-time Scheduling of Periodic Tasks (1) Advanced Operating Systems Lecture 2

Real-time Scheduling of Periodic Tasks (1) Advanced Operating Systems Lecture 2 Real-time Scheduling of Periodic Tasks (1) Advanced Operating Systems Lecture 2 Lecture Outline Scheduling periodic tasks The rate monotonic algorithm Definition Non-optimality Time-demand analysis...

More information

Embedded Systems. 6. Real-Time Operating Systems

Embedded Systems. 6. Real-Time Operating Systems Embedded Systems 6. Real-Time Operating Systems Lothar Thiele 6-1 Contents of Course 1. Embedded Systems Introduction 2. Software Introduction 7. System Components 10. Models 3. Real-Time Models 4. Periodic/Aperiodic

More information

CPU Scheduling. Date. 2/2/2004 Operating Systems 1

CPU Scheduling. Date. 2/2/2004 Operating Systems 1 CPU Scheduling Date 2/2/2004 Operating Systems 1 Basic concepts Maximize CPU utilization with multi programming. CPU I/O Burst Cycle Process execution consists of a cycle of CPU execution and I/O wait.

More information

Kernel comparison of OpenSolaris, Windows Vista and. Linux 2.6

Kernel comparison of OpenSolaris, Windows Vista and. Linux 2.6 Kernel comparison of OpenSolaris, Windows Vista and Linux 2.6 The idea of writing this paper is evoked by Max Bruning's view on Solaris, BSD and Linux. The comparison of advantages and disadvantages among

More information

First-class User Level Threads

First-class User Level Threads First-class User Level Threads based on paper: First-Class User Level Threads by Marsh, Scott, LeBlanc, and Markatos research paper, not merely an implementation report User-level Threads Threads managed

More information

CFS-v: I/O Demand-driven VM Scheduler in KVM

CFS-v: I/O Demand-driven VM Scheduler in KVM CFS-v: Demand-driven VM Scheduler in KVM Hyotaek Shim and Sung-Min Lee (hyotaek.shim, sung.min.lee@samsung.- com) Software R&D Center, Samsung Electronics 2014. 10. 16 Problem in Server Consolidation 2/16

More information

Aperiodic Task Scheduling

Aperiodic Task Scheduling Aperiodic Task Scheduling Gerhard Fohler Mälardalen University, Sweden gerhard.fohler@mdh.se Real-Time Systems Gerhard Fohler 2005 Non Periodic Tasks So far periodic events and tasks what about others?

More information

spends most its time performing I/O How is thread scheduling different from process scheduling? What are the issues in multiple-processor scheduling?

spends most its time performing I/O How is thread scheduling different from process scheduling? What are the issues in multiple-processor scheduling? CPU Scheduling Outline What is scheduling in the OS? What are common scheduling criteria? How to evaluate scheduling algorithms? What are common scheduling algorithms? How is thread scheduling different

More information

Comparison between scheduling algorithms in RTLinux and VxWorks

Comparison between scheduling algorithms in RTLinux and VxWorks Comparison between scheduling algorithms in RTLinux and VxWorks Linköpings Universitet Linköping 2006-11-19 Daniel Forsberg (danfo601@student.liu.se) Magnus Nilsson (magni141@student.liu.se) Abstract The

More information

ò Scheduling overview, key trade-offs, etc. ò O(1) scheduler older Linux scheduler ò Today: Completely Fair Scheduler (CFS) new hotness

ò Scheduling overview, key trade-offs, etc. ò O(1) scheduler older Linux scheduler ò Today: Completely Fair Scheduler (CFS) new hotness Last time Scheduling overview, key trade-offs, etc. O(1) scheduler older Linux scheduler Scheduling, part 2 Don Porter CSE 506 Today: Completely Fair Scheduler (CFS) new hotness Other advanced scheduling

More information

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

Road Map. Scheduling. Types of Scheduling. Scheduling. CPU Scheduling. Job Scheduling. Dickinson College Computer Science 354 Spring 2010. Road Map Scheduling Dickinson College Computer Science 354 Spring 2010 Past: What an OS is, why we have them, what they do. Base hardware and support for operating systems Process Management Threads Present:

More information

Programming real-time systems with C/C++ and POSIX

Programming real-time systems with C/C++ and POSIX Programming real-time systems with C/C++ and POSIX Michael González Harbour 1. Introduction The C language [1], developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories, is the most widely

More information

Real Time Programming: Concepts

Real Time Programming: Concepts Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize

More information

Chapter 5 Linux Load Balancing Mechanisms

Chapter 5 Linux Load Balancing Mechanisms Chapter 5 Linux Load Balancing Mechanisms Load balancing mechanisms in multiprocessor systems have two compatible objectives. One is to prevent processors from being idle while others processors still

More information