Tasks Schedule Analysis in RTAI/Linux-GPL
|
|
|
- Jeffery Cannon
- 10 years ago
- Views:
Transcription
1 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 Aires (7000) - Tandil - Argentina Abstract. Preemptive real-time operating systems allow the kernel to stop a running task to execute other task with higher priority. The tasks compete for the resources producing anomalies such as starvation, deadlock and priority inversion that can reduce the perceived performance of the system. The scheduler is in charge of the synchronization when priorities are considered and of avoiding these anomalies to occur. Among the FOSS 1 community, the RTAI 2 real-time extension for the Linux kernel is one of the most applied and with major projection within the automatic control area. To synchronize priority tasks, RTAI has implemented the Priority Ceiling and the Priority Inheritance mechanisms. The main goal of this work is analyze the functioning of these mechanisms for different situations, in RTAI/Linux-GPL. Key words: Real-Time Scheduling; RTAI; Priority Inversion; Priority Inheritance; Priority Ceiling 1 Introduction By using preemptive real-time operating systems, the synchronization of tasks is difficult because the tasks compete for the access to the resources and this situation degrades the performance of the system. The resources, external hardware devices, computer components and software elements (mutex, queues, semaphores, etc), have critical sections to be used in a non interruptive and exclusive way by one task at a time. Though it is true that the execution of a task can be stoped for the system to do context switch and begin executing other task. This is the reason why when a task requires a resource it must request for it and then block it in order to be able to use it in a exclusive and non interruptive way; when finish using it the task must unblock the resource to release it. If the request for a resource fails, the requesting action is the one to be blocked waiting for the nedeed resource to be released. This situation causes that, in real time systems, the critical tasks have higher priority that the rest of the tasks [1] [2] [3]. 1 FOSS: Free Open Source Software. 2 RTAI: Real Time Aplicattion Interfaces.
2 2 Claudio Aciti and Nelson Acosta The use of priorities to schedule tasks can make the assignment of resources not to be fair and can cause long delays, and even the starvation of some of them. To implement a real time functionality requires a careful design of the scheduling and all the issues related to the operating system. First, the tasks must have a priority assigned (the more critical the task is the higher the priority it has) which should not degrade. Second, the delay of dispatching must be short for the a task to begin running as soon as possible once it is ready[4]. This kind of problems affects the normal functioning of control systems, causing a gradual degradation of the performance or even a temporary or total inactivity of the system. The better known example happened in 1997, the Mars Rovers Pathfinder landed on Mars in order to execute tests for researching. After a few days of right operation, the system began experiencing repeated and unexpected system resets, resulting in losses of data and the early abort of the mission. It was determined that the anomaly was due to a priority inversion problem [5] [6]. Among the FOSS community, the RTAI real-time extension for the Linux kernel is one of the most applied and with major projection within the automatic control area. To do the scheduling of priority based preemption tasks, RTAI has implemented the Priority Ceiling and the Priority Inheritance mechanisms. The RTAI allows the tasks scheduler to preempt a running task. The main goal of this paper is to analyze the performance of the scheduler for this operating system, in different cases and using several mechanisms for controlling the priority inversion[7]. Next, in the 2 nd section, the RTAI scheduler is presented. In the 3 rd section the priority inversion problem is revised. The work carried out and the results obtained are detailed in the 4 th and the 5 th sections. In the 6 th section the conclusions are given and in the 7 th section the future works are presented. Finally, the used bibliography is detailed. 2 RTAI/Linux-GPL Tasks Scheduler By using the RTAI scheduler a task can accomplish its job with hard real time constraints and be able to execute in a deterministic way, which means that the task can be executed exactly as it was designed and it is not restricted by the general scheduler of Linux. In RTAI, the real time tasks have priorities with values among 0 (highest priority) and 0x3fffffff (lowest priority); the scheduler takes them as always active, so a real-time task inhibits (prevents) the execution of a non real-time one. In the rt task struct structure, all the information related to a real time task is kept. Within that structure, the scheduling aspects, identifiers, relation with other tasks, memory used by the task, open files, etc. can be specified. The most important fields the rt task struct structure contains are: the task state (state), whether the task is running or not (running), the CPU where the task is running (runnable on cpus), the current priority of the task (priority), the policy used when the task arrives to the scheduler (FIFO by default, Round
3 Tasks Schedule Analysis in RTAI/Linux-GPL 3 Robin, Monotonic Scheduling, Shortest Task Scheduling), the base priority of the task (base priority), the time when the task has to resume execution (resume time) and the time in which the task must yield the CPU (yield time). The scheduler points to the active task, and from this one, there has the pointers to the previous and next tasks. The tasks are sorted by priority and state. The rt queue structure, links the rt task struct for all the running tasks. Similarly, for common tasks, there exist the runqueue structure which in combination with the rt queue structure, sorts all the tasks in a ready state(fig. 1). rt queue real time process priorities 0x x3F F F F F F F 0x7F F F F F F F process A linux kernel B C D E noreal time process F 0xF F F F F F F F G H runqueue Fig. 1. Queues of real-time and non real-time ready processes The tasks scheduler executes in one of two situations: 1) if a timer interruption occurs (rt timer handler() is executed for this case); 2) if there exists a scheduled system call (rt schedule() is executed ; the system call can be due to a task being inserted in the ready queue, the current task is put to sleep or a task is blocked. rt timer handler() and rt schedule() are similar, only that the first has to deal with timer and interrupts to be transmitted to the Linux kernel. The main goal of the scheduler is to replace the running task for the next one in the list of ready tasks. If there is no task with higher priority than the running one, no change is made. In the case of having to change the task that is executing, the scheduler has to do a context switch. The function to call for doing the switching is rt switchto(), responsible for saving all the associated information related to the task being stopped in order to be able to resume. 2.1 Threads The RTAI pthread module implements the POSIX c. standard. It provides dynamic creation and termination of threads, so the amount of threads has not to be known till run-time. The POSIX threads use attribute objects to represent
4 4 Claudio Aciti and Nelson Acosta the threads properties. Features such as stack size and scheduling policy are set for each of the threads by means of its attributes. A thread has a type identifier pthread t, a stack, an execution priority and an initial address for executing. A POSIX thread is created dynamically using the pthread create function which creates a thread and places it on the tail of the ready queue. During its lifetime a thread can be in any of these states: Ready to execute, running, blocked or terminated. In most of cases the applications that use pthreads have the responsibility of sharing data among threads and guarantee that certain actions are performed in a coherent sequence. To accomplish this the activity of the pthreads needs to be synchronized when accessing to the shared data in order to avoid wrong functioning and non desired effects. In RTAI, the synchronization of functions for the applications is available through mutex and condition variables. Mutual exclusion is the most common synchronization method for multiple threads to share a resource. A mutex is used to provide mutual exclusion locking capability for the pthreads to control the access to code sections and data that require atomic access. In this conditions only one thread can hold the lock and, hence, use the resources the mutex is protecting. A mutex can also be used to guarantee an exclusive entry to code sections o routines known as critical sections. One of the main differences between a mutex and a condition variable is that a mutex allows the pthreads to be synchronized controlling the access to the data, and a condition variable permits the threads within a data value to be synchronized. A condition variable provides a method for transmitting information about the state of the shared data. E.g., this information could be a counter reaching certain value, a queue becoming empty. The mutexes are defined using three alternative synchronization protocols: NO PRIO INHERIT: The thread priority does not depend on its owner relationship over any mutex (a thread is the owner of the mutex that it blocks). PRIO INHERIT: The thread owner of a mutex inherits the priorities of the threads waiting for the mutex. This is the priority basic inheritance protocol. PRIO PROTECT: When a thread acquire a mutex, it inherits the priority called ceiling priority of the mutex, defined usually as the priority of the task with higher priority able to block that mutex. The non restricted priority inversion can be avoided by using different algorithms, hence getting high level utilization of systems with hard real time requirements. 3 Priority Inversion Priority inversion is a problem that occurs when competing for resources. On the other hand, a task scheduler is responsible for solving the problem once this has happened, trying to reduce the amount of context switches and the latency of the tasks with higher priority.
5 Tasks Schedule Analysis in RTAI/Linux-GPL 5 A low priority task can stop the execution of a high priority task because of competing for the same resource. Also, a medium priority task can stop the execution of a high priority task without even compete for the same resource. These anomalies make the high priority task to be affected both by the increase of the total execution time and the latency till it enters its critical section. For the low priority task the increase of time is noticed running within its critical section (Fig. 2.a). RTAI implements two mechanisms to control the priority inversion: Priority Inheritance and Priority Ceiling. When using Priority Inheritance a low priority task that holds a shared resource that is required by a high priority task inherits the priority of this high priority task from the moment of the request. A low priority task can stop the execution of a high priority task by holding a shared resource, but to inherit the highest priority keeps a medium priority task from pre-empting the low priority task; this way the medium priority task can not stop the execution of a high priority task without even compete for the same resource. In fact, the medium priority can not request for CPU use (Fig. 2.b). The Priority Ceiling mechanism, also implemented in RTAI, works in a different way. Before execution, the scheduler must know which resources are to be more used and the tasks that will use them. In that way, a table for mapping resources-tasks is created before run-time to be looked up during the execution. In this case, a low priority task can stop the execution of a high priority one that competes for the same resource, but inheriting immediately the highest priority that the resource can have avoids the situation of a medium priority task stopping the execution of a high priority task. The medium priority task has no right even to request for CPU use, thus avoiding loss of time deciding whether it corresponds to preempt the active task or not. One of the anomalies of this mechanism is that the execution of the medium priority tasks can be delayed because of tasks of lower priority (Fig. 2.c). priority high execution criticalsection init contextswitch low a)withoutcontrol Scheduling b)withp riorityinheritance mechanism c)withp riorityceiling mechanism Fig. 2. Priority inversion mechanism 4 Cases of Study The object of study is to analyze the performance of the tasks scheduler of the RTAI/Linux-GPL, at the moment of assigning the resources of the computer to
6 6 Claudio Aciti and Nelson Acosta the high priority tasks, considering all the possible load situations and applying different scheduling techniques. 4.1 Measure Strategy The analysis of the scheduler performance is designed based on the use of proprietary time primitives of the RTAI operating system. Through the use of these primitives the exact time since the computer was turned on can be measured; also by means of some mathematical calculations that value can be converted to microseconds. It is possible to measure the time spent by some code sections by introducing those primitives at specific points. The variables to be analyzed are: the latency of a real time task: The time a system takes to respond to a request for a process to begin operation. the blocking time on a critical region: The period time that the task can be prevented from execution within a critical region. total execution time: Time since an event occurs till the task is completely processed. The following pseudocode is an example of strategy to be used: example(t_process_init){ } /*Process init*/ latency= rt_get_cpu_time_ns() - t_process_init; INIT SECTION /*critical section init*/ t_critical_section_init= rt_get_cpu_time_ns(); CRITICAL SECTION /*critical section exit*/ t_critical_section_use= t_critical_section_init - rt_get_cpu_time_ns(); FINAL SECTION t_process= t_process_init - rt_get_cpu_time_ns(); 4.2 Samples The studied population is the real time operating system, RTAI/Linux-GPL. The RTAI version is 2.0 and runs over a Linux kernel or higher, with a 32 bit x86 architecture. This operating system is used in hard real time conditions. The programming
7 Tasks Schedule Analysis in RTAI/Linux-GPL 7 language used is native C compiled with gcc 4.1. The measures were taken with software installed in the same computer used for testing through time primitives. The accuracy of these measures are tied to the performance of the computer hardware which is the non controlled variable. The following are the taken samples: A real time task of highest priority is scheduled, within an environment where no other highest priority task is requesting for resources. A real time task with a mutex and no priority inversion mechanism. This test is performed with different number of threads, both real-time and non real-time trying to block the same critical section. A real time task with a mutex and a priority inversion mechanism, the Priority Inheritance method. A real time task with a mutex and a priority inversion mechanism, the Priority Ceiling method. 5 General Results By analyzing the taken samples, the generalities listed below are inferred. The studied variables are: total execution time T, latency L and blocking time lock time; the tasks priorities: highest priority task MP, medium priority tasks IP, and lowest priority tasks mp; CPU use times: initial time i and final time use f; context switch CS; and for blocking, the variables are: time of blocking attempt tl, and blocking time C. 5.1 Samples without Control Scheduling If the scheduler does not uses a control mechanism, when a task with higher priority than the running task arrives, the scheduler yields the CPU (Fig. 3). priority high L hp = 0 T hp = L hp + CS + ti hp + tlmp+ +T ip + le + CS + C ip + tf ip low execution critical section init context switch C lp = t lp + t ip + C lp Fig. 3. Without Control Scheduling 5.2 Samples with Priority Inheritance mechanism If the scheduler uses the Priority Inheritance control mechanism, when a task with higher priority than the running task blocking a resource arrives, the scheduler yields the CPU use to the arriving task. At the moment when the current running task requests for the shared resource, the blocking task automatically inherits the priority of the higher priority task (Fig. 4).
8 8 Claudio Aciti and Nelson Acosta priority high L hp = 0 T hp = L hp + CS + ti hp + tlmp+ +T ip + le + CS + C ip + tf ip low execution critical section init context switch C lp = t lp + t ip + C lp Fig. 4. With Priority Inheritance mechanism 5.3 Samples with Priority Ceiling mechanism If the scheduler uses the Priority Ceiling control mechanism, when a task with higher priority than the running task blocking a resource arrives, it has to wait for the lower priority task to finish using the shared resource and then start executing (Fig. 5). priority high L hp = 0 T hp = L hp + CS + ti hp + tlmp+ +T ip + le + CS + C ip + tf ip low execution critical section init context switch C lp = t lp + t ip + C lp Fig. 5. With Priority Ceiling mechanism 5.4 Metrics The more relevant metrics obtained are detailed next. In table 1, the total time for context switches for the highest priority task is shown. In table 2, the quantity of blocking attempt during the execution time for the highest priority task is shown. In table 3, the total time for context switches for the highest priority task is shown. In table 4, it is shown the quantity of blocking attempt during the blocking time for the lowest priority task when this task blocks a resource. Finally, in table 5, the latency for the highest priority task for this to begin executing. medium priority task mechanism none 16 µs 16 µs 8 µs 16 µs 20 µs 16 µs inheritance 8 µs 8 µs 0 µs 0 µs 0 µs 0 µs ceiling 0 µs 0 µs 0 µs 0 µs 0 µs 0 µs Table 1. Context switches during the execution time for the highest priority task
9 Tasks Schedule Analysis in RTAI/Linux-GPL 9 medium priority task mechanism none inheritance ceiling Table 2. Blocking attempt during the execution time for the highest priority task medium priority task mechanism none 16 µs 20 µs 28 µs 36 µs 40 µs 40 µs inheritance 8 µs 16 µs 12 µs 12 µs 12 µs 12 µs ceiling 0 µs 0 µs 0 µs 0 µs 0 µs 0 µs Table 3. Context switches during the blocking time for the lowest priority task medium priority task mechanism none inheritance ceiling Table 4. Blocking attempt during the blocking time for the lowest priority task medium priority task mechanism none 0 KHz 0 KHz 0 KHz 0 KHz 0 KHz 0 KHz inheritance 0 KHz 0 KHz 0 KHz 0 KHz 0 KHz 0 KHz ceiling 400 KHz 300 KHz 600 KHz 600 KHz 400 KHz 600 KHz Table 5. Latency for the highest priority task 6 Conclusions The functioning of the scheduler without priority inversion control has a very poor performance compared with one that implements a control mechanism. Though, for this case, the tasks latency is almost zero, the total time of a high priority task will be excessively high, causing delay on release of some blocked resource. The lack of a control mechanism makes the scheduler to do more context switches increasing the execution time for all the tasks. The blocking time of a resource by a low priority task significatively affects the performance of the system; every higher priority task that requests for CPU takes the active control. The latency of a highest priority task, when using an Inheritance mechanism, is almost null; the total execution time makes the performance of the system not to be
10 10 Claudio Aciti and Nelson Acosta affected. Something similar happens with the blocking time caused by a low priority task, since once a higher priority task arrives, the low priority one inherits the higher priority and is able to finish executing. The delay arises from all the intermediate tasks that may have to be executed till the highest priority task arrives. The Priority Ceiling protocol has good performance when the load of tasks for the scheduler is high. This is due to the fact that the tasks sharing a resource acquire the priority of that resource, hence avoiding blocking delays and context switches. With this protocol, the tasks that use other resource can be repeatedly delayed by lower priority tasks, without any possibility of reverting this situation. In this case, the requirements of the system must be taken into account; i.e., whether it is better to handle the highest priority task without taking care of the intermediate tasks or if these latter are also rather important. The problem with this mechanism is how to determine the value for a blocking ceiling in advance; this is not easy, since the compiler needs to have access to the whole code, to know which tasks uses which resources. There exists a table with a mapping among resources and its highest priority; the creation of this table causes an initial delay but then the performance of the mechanism is superior compared with the rest of the mechanisms. 7 Future Works As future work it is suggested the implementation of other priority inversion control mechanisms over the RTAI/Linux-GPL operating system. Examples of these mechanisms are BandWidth Inheritance, Recursive Priority Inheritance, Immediate Priority Ceiling or some other one. Acknowledge To the Eng. Carolina Tommasi, for the discussions on the previous versions, and for her collaboration with the final revision of the article References 1. Buttazzo, G. (2006). Why real-time computing? Proccedings of the 2006 ANIPLA. International Congress on Methodologies for Emerging Techonologies in Automation. 2. Gai, P., Abeni, L., Giorgi, M., and G., B. (2001). A new kernel approach for modular real-time systems development. 3. Barabanov, M. and Yodaiken, V. (1997). Introducing real-time linux. Linux Journal, 1997:5. 4. Silverchatz, A. and Galvin, P. B. (1999). Sistemas Operativos. Prentice Hall. 5. Jeffay, K., Smith, F., Moorthy, A., and Anderson, J. (1998). Proportional share scheduling of operating system services for real-time applications. Proceedings of the IEEE Real-Time Systems Symposium, pages Jones, M., Rosu, D., and Rosu, M. (1997). Cpu reservations and time constraints: Efcient, predictable scheduling of independent activities. In Proceedings of the 16th ACM Symposium on Operating Systems Principles. Francia, pages Real Time Applicattion Interfaces,
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 [email protected] Universität Paderborn PC² Agenda Multiprocessor and
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
Performance Comparison of RTOS
Performance Comparison of RTOS Shahmil Merchant, Kalpen Dedhia Dept Of Computer Science. Columbia University Abstract: Embedded systems are becoming an integral part of commercial products today. Mobile
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
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
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/
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
Comp 204: Computer Systems and Their Implementation. Lecture 12: Scheduling Algorithms cont d
Comp 204: Computer Systems and Their Implementation Lecture 12: Scheduling Algorithms cont d 1 Today Scheduling continued Multilevel queues Examples Thread scheduling 2 Question A starvation-free job-scheduling
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
OPERATING SYSTEMS SCHEDULING
OPERATING SYSTEMS SCHEDULING Jerry Breecher 5: CPU- 1 CPU What Is In This Chapter? This chapter is about how to get a process attached to a processor. It centers around efficient algorithms that perform
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,
Operating System: Scheduling
Process Management Operating System: Scheduling OS maintains a data structure for each process called Process Control Block (PCB) Information associated with each PCB: Process state: e.g. ready, or waiting
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
CPU Scheduling. CPU Scheduling
CPU Scheduling Electrical and Computer Engineering Stephen Kim ([email protected]) ECE/IUPUI RTOS & APPS 1 CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling
ICS 143 - Principles of Operating Systems
ICS 143 - Principles of Operating Systems Lecture 5 - CPU Scheduling Prof. Nalini Venkatasubramanian [email protected] Note that some slides are adapted from course text slides 2008 Silberschatz. Some
SYSTEM ecos Embedded Configurable Operating System
BELONGS TO THE CYGNUS SOLUTIONS founded about 1989 initiative connected with an idea of free software ( commercial support for the free software ). Recently merged with RedHat. CYGNUS was also the original
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
Scheduling 0 : Levels. High level scheduling: Medium level scheduling: Low level scheduling
Scheduling 0 : Levels High level scheduling: Deciding whether another process can run is process table full? user process limit reached? load to swap space or memory? Medium level scheduling: Balancing
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 ([email protected]) Magnus Nilsson ([email protected]) Abstract The
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)
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
Module 8. Industrial Embedded and Communication Systems. Version 2 EE IIT, Kharagpur 1
Module 8 Industrial Embedded and Communication Systems Version 2 EE IIT, Kharagpur 1 Lesson 37 Real-Time Operating Systems: Introduction and Process Management Version 2 EE IIT, Kharagpur 2 Instructional
W4118 Operating Systems. Instructor: Junfeng Yang
W4118 Operating Systems Instructor: Junfeng Yang Outline Introduction to scheduling Scheduling algorithms 1 Direction within course Until now: interrupts, processes, threads, synchronization Mostly mechanisms
CS414 SP 2007 Assignment 1
CS414 SP 2007 Assignment 1 Due Feb. 07 at 11:59pm Submit your assignment using CMS 1. Which of the following should NOT be allowed in user mode? Briefly explain. a) Disable all interrupts. b) Read the
Operating Systems Lecture #6: Process Management
Lecture #6: Process Written by based on the lecture series of Dr. Dayou Li and the book Understanding 4th ed. by I.M.Flynn and A.McIver McHoes (2006) Department of Computer Science and Technology,., 2013
An Implementation Of Multiprocessor Linux
An Implementation Of Multiprocessor Linux This document describes the implementation of a simple SMP Linux kernel extension and how to use this to develop SMP Linux kernels for architectures other than
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
CPU Scheduling. Core Definitions
CPU Scheduling General rule keep the CPU busy; an idle CPU is a wasted CPU Major source of CPU idleness: I/O (or waiting for it) Many programs have a characteristic CPU I/O burst cycle alternating phases
4003-440/4003-713 Operating Systems I. Process Scheduling. Warren R. Carithers ([email protected]) Rob Duncan ([email protected])
4003-440/4003-713 Operating Systems I Process Scheduling Warren R. Carithers ([email protected]) Rob Duncan ([email protected]) Review: Scheduling Policy Ideally, a scheduling policy should: Be: fair, predictable
Modular Real-Time Linux
Modular Real-Time Linux Shinpei Kato Department of Information and Computer Science, Keio University 3-14-1 Hiyoshi, Kohoku, Yokohama, Japan [email protected] Nobuyuki Yamasaki Department of Information
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
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
10.04.2008. Thomas Fahrig Senior Developer Hypervisor Team. Hypervisor Architecture Terminology Goals Basics Details
Thomas Fahrig Senior Developer Hypervisor Team Hypervisor Architecture Terminology Goals Basics Details Scheduling Interval External Interrupt Handling Reserves, Weights and Caps Context Switch Waiting
Linux Scheduler. Linux Scheduler
or or Affinity Basic Interactive es 1 / 40 Reality... or or Affinity Basic Interactive es The Linux scheduler tries to be very efficient To do that, it uses some complex data structures Some of what it
What is an RTOS? Introduction to Real-Time Operating Systems. So what is an RTOS?(contd)
Introduction to Real-Time Operating Systems Mahesh Balasubramaniam What is an RTOS? An RTOS is a class of operating systems that are intended for real time-applications What is a real time application?
Linux O(1) CPU Scheduler. Amit Gud amit (dot) gud (at) veritas (dot) com http://amitgud.tk
Linux O(1) CPU Scheduler Amit Gud amit (dot) gud (at) veritas (dot) com http://amitgud.tk April 27, 2005 Agenda CPU scheduler basics CPU scheduler algorithms overview Linux CPU scheduler goals What is
Process Scheduling CS 241. February 24, 2012. Copyright University of Illinois CS 241 Staff
Process Scheduling CS 241 February 24, 2012 Copyright University of Illinois CS 241 Staff 1 Announcements Mid-semester feedback survey (linked off web page) MP4 due Friday (not Tuesday) Midterm Next Tuesday,
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
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
CS4410 - Fall 2008 Homework 2 Solution Due September 23, 11:59PM
CS4410 - Fall 2008 Homework 2 Solution Due September 23, 11:59PM Q1. Explain what goes wrong in the following version of Dekker s Algorithm: CSEnter(int i) inside[i] = true; while(inside[j]) inside[i]
Chapter 19: Real-Time Systems. Overview of Real-Time Systems. Objectives. System Characteristics. Features of Real-Time Systems
Chapter 19: Real-Time Systems System Characteristics Features of Real-Time Systems Chapter 19: Real-Time Systems Implementing Real-Time Operating Systems Real-Time CPU Scheduling VxWorks 5.x 19.2 Silberschatz,
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 [email protected] Linux Kernel Hacking Free Course
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:
Job Scheduling Model
Scheduling 1 Job Scheduling Model problem scenario: a set of jobs needs to be executed using a single server, on which only one job at a time may run for theith job, we have an arrival timea i and a run
OS OBJECTIVE QUESTIONS
OS OBJECTIVE QUESTIONS Which one of the following is Little s formula Where n is the average queue length, W is the time that a process waits 1)n=Lambda*W 2)n=Lambda/W 3)n=Lambda^W 4)n=Lambda*(W-n) Answer:1
2. is the number of processes that are completed per time unit. A) CPU utilization B) Response time C) Turnaround time D) Throughput
Import Settings: Base Settings: Brownstone Default Highest Answer Letter: D Multiple Keywords in Same Paragraph: No Chapter: Chapter 5 Multiple Choice 1. Which of the following is true of cooperative scheduling?
A Priority based Round Robin CPU Scheduling Algorithm for Real Time Systems
A Priority based Round Robin CPU Scheduling Algorithm for Real Time Systems Ishwari Singh Rajput Department of Computer Science and Engineering Amity School of Engineering and Technology, Amity University,
White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux
White Paper Real-time Capabilities for Linux SGI REACT Real-Time for Linux Abstract This white paper describes the real-time capabilities provided by SGI REACT Real-Time for Linux. software. REACT enables
Quality of Service su Linux: Passato Presente e Futuro
Quality of Service su Linux: Passato Presente e Futuro Luca Abeni [email protected] Università di Trento Quality of Service su Linux:Passato Presente e Futuro p. 1 Quality of Service Time Sensitive applications
Priority Inversion Problem and Deadlock Situations
INTER-PROCESS COMMUNICATION AND SYNCHRONISATION: Lesson-11: Priority Inversion Problem and Deadlock Situations 1 1. Priority Inversion 2 Assume Priorities of tasks be in an order such that task I highest
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
What is best for embedded development? Do most embedded projects still need an RTOS?
RTOS versus GPOS: What is best for embedded development? Do most embedded projects still need an RTOS? It is a good question, given the speed of today s high-performance processors and the availability
Chapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
A Group based Time Quantum Round Robin Algorithm using Min-Max Spread Measure
A Group based Quantum Round Robin Algorithm using Min-Max Spread Measure Sanjaya Kumar Panda Department of CSE NIT, Rourkela Debasis Dash Department of CSE NIT, Rourkela Jitendra Kumar Rout Department
Mutual Exclusion using Monitors
Mutual Exclusion using Monitors Some programming languages, such as Concurrent Pascal, Modula-2 and Java provide mutual exclusion facilities called monitors. They are similar to modules in languages that
Today. Intro to real-time scheduling Cyclic executives. Scheduling tables Frames Frame size constraints. Non-independent tasks Pros and cons
Today Intro to real-time scheduling Cyclic executives Scheduling tables Frames Frame size constraints Generating schedules Non-independent tasks Pros and cons Real-Time Systems The correctness of a real-time
Operating Systems. III. Scheduling. http://soc.eurecom.fr/os/
Operating Systems Institut Mines-Telecom III. Scheduling Ludovic Apvrille [email protected] Eurecom, office 470 http://soc.eurecom.fr/os/ Outline Basics of Scheduling Definitions Switching
Real Time Operating System for Embedded DSP Applications
Real Time Operating System for Embedded DSP Applications By P.S.Dey Lecturer Computer Science & Engg. Dept. I.I.T. Kharagpur Organization of the Talk 1. Real Time Systems an Overview. 2. Key Features of
Chapter 11 I/O Management and Disk Scheduling
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 11 I/O Management and Disk Scheduling Dave Bremer Otago Polytechnic, NZ 2008, Prentice Hall I/O Devices Roadmap Organization
Scheduling. Scheduling. Scheduling levels. Decision to switch the running process can take place under the following circumstances:
Scheduling Scheduling Scheduling levels Long-term scheduling. Selects which jobs shall be allowed to enter the system. Only used in batch systems. Medium-term scheduling. Performs swapin-swapout operations
Real-Time Component Software. slide credits: H. Kopetz, P. Puschner
Real-Time Component Software slide credits: H. Kopetz, P. Puschner Overview OS services Task Structure Task Interaction Input/Output Error Detection 2 Operating System and Middleware Applica3on So5ware
REAL TIME OPERATING SYSTEMS. Lesson-10:
REAL TIME OPERATING SYSTEMS Lesson-10: Real Time Operating System 1 1. Real Time Operating System Definition 2 Real Time A real time is the time which continuously increments at regular intervals after
W4118 Operating Systems. Instructor: Junfeng Yang
W4118 Operating Systems Instructor: Junfeng Yang Outline Advanced scheduling issues Multilevel queue scheduling Multiprocessor scheduling issues Real-time scheduling Scheduling in Linux Scheduling algorithm
Scheduling. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum
Scheduling Yücel Saygın These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum 1 Scheduling Introduction to Scheduling (1) Bursts of CPU usage alternate with periods
CPU Scheduling 101. The CPU scheduler makes a sequence of moves that determines the interleaving of threads.
CPU Scheduling CPU Scheduling 101 The CPU scheduler makes a sequence of moves that determines the interleaving of threads. Programs use synchronization to prevent bad moves. but otherwise scheduling choices
Replication on Virtual Machines
Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism
CPU Scheduling. Multitasking operating systems come in two flavours: cooperative multitasking and preemptive multitasking.
CPU Scheduling The scheduler is the component of the kernel that selects which process to run next. The scheduler (or process scheduler, as it is sometimes called) can be viewed as the code that divides
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 [email protected]
Processor Scheduling. Queues Recall OS maintains various queues
Processor Scheduling Chapters 9 and 10 of [OS4e], Chapter 6 of [OSC]: Queues Scheduling Criteria Cooperative versus Preemptive Scheduling Scheduling Algorithms Multi-level Queues Multiprocessor and Real-Time
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
Process Scheduling. Process Scheduler. Chapter 7. Context Switch. Scheduler. Selection Strategies
Chapter 7 Process Scheduling Process Scheduler Why do we even need to a process scheduler? In simplest form, CPU must be shared by > OS > Application In reality, [multiprogramming] > OS : many separate
Scheduling policy. ULK3e 7.1. Operating Systems: Scheduling in Linux p. 1
Scheduling policy ULK3e 7.1 Goals fast process response time good throughput for background jobs avoidance of process starvation reconciliation of needs of low- and high-priority processes Operating Systems:
Priority Based Implementation in Pintos
Priority Based Implementation in Pintos Deepa D 1, Nivas K S 2, Preethi V 3 1, 2, 3 Students M-Tech, Dept. of Information Technology, SNS College of Engg., Coimbatore. Abstract Pintos is a simple operating
SystemC Tutorial. John Moondanos. Strategic CAD Labs, INTEL Corp. & GSRC Visiting Fellow, UC Berkeley
SystemC Tutorial John Moondanos Strategic CAD Labs, INTEL Corp. & GSRC Visiting Fellow, UC Berkeley SystemC Introduction Why not leverage experience of C/C++ developers for H/W & System Level Design? But
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)
Improvement of Scheduling Granularity for Deadline Scheduler
Improvement of Scheduling Granularity for Deadline Scheduler Yoshitake Kobayashi Advanced Software Technology Group Corporate Software Engineering Center TOSHIBA CORPORATION Copyright 2012, Toshiba Corporation.
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
Real-Time Operating Systems. http://soc.eurecom.fr/os/
Institut Mines-Telecom Ludovic Apvrille [email protected] Eurecom, office 470 http://soc.eurecom.fr/os/ Outline 2/66 Fall 2014 Institut Mines-Telecom Definitions What is an Embedded
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
Real-time KVM from the ground up
Real-time KVM from the ground up KVM Forum 2015 Rik van Riel Red Hat Real-time KVM What is real time? Hardware pitfalls Realtime preempt Linux kernel patch set KVM & qemu pitfalls KVM configuration Scheduling
Objectives. Chapter 5: Process Scheduling. Chapter 5: Process Scheduling. 5.1 Basic Concepts. To introduce CPU scheduling
Objectives To introduce CPU scheduling To describe various CPU-scheduling algorithms Chapter 5: Process Scheduling To discuss evaluation criteria for selecting the CPUscheduling algorithm for a particular
Shared Address Space Computing: Programming
Shared Address Space Computing: Programming Alistair Rendell See Chapter 6 or Lin and Synder, Chapter 7 of Grama, Gupta, Karypis and Kumar, and Chapter 8 of Wilkinson and Allen Fork/Join Programming Model
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
Synchronization. Todd C. Mowry CS 740 November 24, 1998. Topics. Locks Barriers
Synchronization Todd C. Mowry CS 740 November 24, 1998 Topics Locks Barriers Types of Synchronization Mutual Exclusion Locks Event Synchronization Global or group-based (barriers) Point-to-point tightly
RTOS Debugger for ecos
RTOS Debugger for ecos TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debugger... RTOS Debugger for ecos... 1 Overview... 2 Brief Overview of Documents for New Users... 3
Port of the Java Virtual Machine Kaffe to DROPS by using L4Env
Port of the Java Virtual Machine Kaffe to DROPS by using L4Env Alexander Böttcher [email protected] Technische Universität Dresden Faculty of Computer Science Operating System Group July 2004
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)
CPU Scheduling. CSC 256/456 - Operating Systems Fall 2014. TA: Mohammad Hedayati
CPU Scheduling CSC 256/456 - Operating Systems Fall 2014 TA: Mohammad Hedayati Agenda Scheduling Policy Criteria Scheduling Policy Options (on Uniprocessor) Multiprocessor scheduling considerations CPU
Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015
Operating Systems 05. Threads Paul Krzyzanowski Rutgers University Spring 2015 February 9, 2015 2014-2015 Paul Krzyzanowski 1 Thread of execution Single sequence of instructions Pointed to by the program
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 [email protected] Supervisor: Mehrdad Saadatmand [email protected] Examiner: Mikael
Operating Systems 4 th Class
Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science
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
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
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
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
Operating System Manual. Realtime Communication System for netx. Kernel API Function Reference. www.hilscher.com.
Operating System Manual Realtime Communication System for netx Kernel API Function Reference Language: English www.hilscher.com rcx - Kernel API Function Reference 2 Copyright Information Copyright 2005-2007
