Real-Time Operating Systems Lecture for the Embedded Systems Course CSD, University of Crete (May 23, 2014)

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Real-Time Operating Systems Lecture for the Embedded Systems Course CSD, University of Crete (May 23, 2014)"

Transcription

1 Real-Time Operating Systems Lecture for the Embedded Systems Course CSD, University of Crete (May 23, 2014) ManolisMarazakis Institute of Computer Science (ICS) Foundation for Research and Technology Hellas (FORTH)

2 Real-Time OS =? Real-Time Control External Events Synchronous, Asynchronous, Independent Speed Fast response, Low overheads Deterministic A late answer is a wrong answer Multi-Tasking Sequence: One task controlling all events in an infinite loop Multi-tasking: Task Waiting on Event, Task becomes Ready upon Event Priority Scheduling Preemptive Scheduling on Task Priority No delay on Context Switch to the next Tick Equal Priority tasks won t preempt each other Scheduling due to synchronous or asynchronous event Round-Robin Scheduling All tasks in the same priority share the CPU Context Switch in each (predefined) time slice period 2 Real-Time Operating Systems

3 Need for Synchronization? Reentrancy & SharedResources Co-ordination between tasks Asynchronous events Interrupts & Exceptions Interrupts allow devices to notify the CPU on events Interrupt Levels Exceptions Unplanned event generated by the CPU (e.g. divide-by-0) Exceptions will generate an internal interrupt ISR (Interrupt Service Routines) Not a task (has no task control block ) Timers Synchronous events 3 Real-Time Operating Systems

4 RTOS vs General-Purpose OS General-purpose OS: Key criteria: Task throughput, fairness average case optimizations Real-Time OS: Deterministic timing behavior worst-case guarantees Processing must be done within a time constraint or the system will fail. All delays in the system will be bounded; from the retrieval of stored data to the time RTOS finishes the request. 4 Real-Time Operating Systems

5 Can Linux provide real-time guarantees? (NO) (usually) Non-preemptive kernel A system call may sometimes take a long time to complete Coarse timer resolution Tasks can be released with millisecond precision (1/10/100) Virtual memory Unpredictable delay Variable task priority Task priority varies with time, to achieve fairness Batching and possible re-ordering of storage & network operations (for efficient use of H/W) High-priority task may queue behind a low-priority task that has issued a system call High-priority tasks may have to wait for lower priority tasks to release resources 5 Real-Time Operating Systems

6 Can Linux provide real-time guarantees? (YES) Provides RT-POSIX interface Fixed priority real-time scheduling classes SCHED_FIFO SCHED_RR Timesharing in SCHED_OTHER Preemptive Linux kernel Concerns: Real-time? Footprint? 6 Real-Time Operating Systems

7 Outline RTOS theory LynxOS QNX Wind River VxWorks RTLinux TimeSysLinux POSIX b standard Asynchronous I/O Semaphores Message queues Queued signals Scheduling Clocks &timers Memory Management 7 Real-Time Operating Systems

8 Three Models of Kernel Kernel =? Process Management Memory Management I/O System Management Three models of kernel : Monolithic Layered Microkernel (client-server) 8 Real-Time Operating Systems

9 Monolithic Kernel In a monolithic-modularized OS, the functionality is integrated into a single executable file that is made up of modules, separate pieces of code reflecting various OS functionality. 9 Real-Time Operating Systems

10 Layered Kernel In the layered design, the OS is divided into hierarchical layers (0...N), where upper layers are dependent on the functionality provided by the lower layers (via APIs). Like the monolithic design, layered OSesare a single large file that includes device driversand middleware 10 Real-Time Operating Systems

11 Microkernel (Client-server) OS An OS that is stripped down to minimal functionality, commonly only process and memory management subunits is called a client-server OS, or a microkernel. The remaining functionality typical of other kernel algorithms is abstracted out of the kernel, while device drivers, for instance, are usually abstracted out of a microkernel entirely 11 Real-Time Operating Systems

12 Non-preemptiveScheduling Tasks are given control of the master CPU until they have finished execution, regardless of the length of time or the importance of the other tasks that are waiting. First-Come-First-Serve (FCFS)/ Run-To-Completion The response time of a FCFS algorithm is typically slower than other algorithms Shortest Process Next (SPN)/Run-To-Completion SPN algorithm has faster response times for shorter processes. However, then the longer processes are penalized by having to wait until all the shorter processes in the queue have run. In this scenario, starvation can occur to longer processes if the ready queue is continually filled with shorter processes. The overhead is higher than that of FCFS, since the calculation and storing of run times for the processes in the ready queue must occur. Co-operative: the tasks themselves run until they tell the OS when they can be context switched (i.e., for I/O, etc.). This algorithm can be implemented with the FCFS or SPN algorithms, rather than the run-to-completion scenario, but starvation could still occur with SPN if shorter processes were designed not to cooperate, for example. 12 Real-Time Operating Systems

13 Preemptive Scheduling Round Robin/FIFO (First In, First Out) Scheduling Each process in the FIFO queue is allocated an equal time slice (the duration each process has to run). An interrupt is generated at the end of each of these intervals to start the pre-emption process. Priority (Preemptive) Scheduling Every process is assigned a priority The processes with the highest priority always preempt lower priority processes when they want to run Problems: Process starvation, Priority inversion, how to determine the priorities of various processes, i.e. same priority vs how often the process(es) are run 13 Real-Time Operating Systems

14 Preemptive Scheduling (cont.) Rate Monotonic Scheduling (RMS) scheme, in which tasks are assigned a priority based upon how often they execute within the system. EDF (Earliest Deadline First)/Clock Driven Scheduling The EDF/Clock Driven algorithm schedules priorities to processes according to three parameters: frequency (number of times process is run) deadline (when processes execution needs to be completed) duration (time it takes to execute the process) 14 Real-Time Operating Systems

15 Preemptive Scheduling & RTOS Tasks with real-time requirements have to be allowed to preempt other tasks Preemptive scheduling must be one of the algorithms implemented within RTOS schedulers RTOS schedulers also make use of their own array of timers, ultimately based upon the system clock, to manage and meet their hard deadlines. Whether an RTOS or a non real-time OS in terms of scheduling, all will vary in their implemented scheduling schemes. E.g: vxworks(wind River) : priority-based + round-robin Jbed(Esmertec) : EDF Linux (Timesys) : priority-based 15 Real-Time Operating Systems

16 LynxOS(1/2) Microkernel design Small kernel footprint : ~28 KB in size The microkernel provides essential services in scheduling, interrupt dispatching and synchronization The other services are provided by kernel lightweight service modules Kernel Plug-Ins (KPIs) New KPIs can be added to the microkernel to support I/O, file systems, TCP/IP, streams and sockets Can function as a multipurpose UNIX OS LynxOSoffers memory protection through hardware MMUs Applications make I/O requests to I/O system through system calls Kernel directs I/O request to the device driver 16 Real-Time Operating Systems

17 LynxOS(2/2) Each device driver has an interrupt handler and kernel thread The interrupt handler carries the 1 st step of interrupt handling If it does not complete the processing, it sets an asynchronous trap to the kernel Later, when kernel can respond to the software interrupt, it schedules an instance of the kernel thread to complete the interrupt processing 17 Real-Time Operating Systems

18 QNX Neutrino (1/2) Microkernel design kernel provides essential threads and realtime services Microkernel footprint: ~12 KB Other services are considered as resource managers and can be added or removed at run-time SMP RTOS requires high end, networked SMP machines with GBs of physical memory Message passing: Messages are the basic means of inter-process communication among all threads Message-based priority tracking Messages are delivered at the priority order and the service provider executes at the priority of the highest priority clients waiting for service So, if the highest priority task wants to do read some data from file, the file system resource manager will execute at this task s priority 18 Real-Time Operating Systems

19 QNX Neutrino (2/2) When a service provider thread wants to provide service, then it creates a channel (for exchanging messages) with its service identifier for identification To get a service from a provider, the client thread attaches it to the provider s channel Within the client, this connection is directly mapped to the file descriptor (so RFS can be sent directly to the file descriptor) QNX messages are blocking (unlike POSIX standards) 19 Real-Time Operating Systems

20 VxWorks(1/4) Microkernel Monolithic Kernel (CoreOS+ Wind microkernel) Provides interfaces specified by RT-POSIX standards in addition to its own APIs Shared-memory objects: shared binary and counting semaphores Standard MMU (as in modern OS) Provides basic virtual-to-physical memory mapping Allows to add new mappings and make portions of memory non cacheable When memory boards are added dynamically, to increase the address space for inter-process communication The data is made non cacheable, to ensure cache consistency 20 Real-Time Operating Systems

21 VxWorks(2/4) Reduced Context Switch time Saves only those register windows that are actually in use (e.g. applicable on SPARC) When a task s context is restored, only the relevant register window is restored To improve response time, it saves the register windows in a register cache useful for recurring tasks 21 Real-Time Operating Systems

22 VxWorks(3/4) Real-Time Embedded Application Graphics Multiprocessing Internet Java Support POSIX Library File System WindNet Networking Core OS: Wind Microkernel Real-Time Operating Systems

23 VxWorks(4/4) 23 Real-Time Operating Systems

24 RTLinux(1/3) Patch-set for Linux kernel + RT API Runs Linux kernel as lowest-priority task (pre-emptible) User Processes Device drivers System libraries Linux kernel I/O Hardware Interrupts Hardware 24 Real-Time Operating Systems 24

25 RTLinux(2/3) Linux is executed in the background User Processes Real Time Tasks Device drivers System libraries Linux kernel Direct h/w access RT-Scheduler RTLinux Plug-in I/O I/O Software Interrupts Hardware Interrupts Hardware 25 Real-Time Operating Systems 25

26 RTLinux(3/3) Development flow for RT-application program: 1. Develop RT-application program : Linux kernel module 2. Load RT-Core / RT-Scheduler/ RT-FIFOs transit to RTLinux 3. Load RT-application module Interrupt control H/W Real-Time Kernel Linux Linux Processes Real-Time FIFOs Real-Time Tasks 26 Real-Time Operating Systems

27 Linux/RK A Kernel that provides to applications Timely, Guaranteed, and Enforced access to System Resources Allows Applications to specify only their Resource Demands User-Level leaving the Kernel to satisfy Demands using hidden management schemes Linux Process Kernel Resource Kernel Kernel Loadable Kernel Module Linux Process Hardware Linux Kernel Linux Process 27 Real-Time Operating Systems Reservation Parameters T : Period (1/f) C : Execution time within period D : Deadline within period

28 Hard Reservation 28 Real-Time Operating Systems

29 Firm Reservation 29 Real-Time Operating Systems

30 Soft Reservation 30 Real-Time Operating Systems

31 Commercialized Linux/RK: TimeSys Linux Resource kerneland QoSSupport guaranteed, timelyand enforced access to CPU cycles and network bandwidth SMP support with QoSReservations Fully preemptive kernel Fixed-priority scheduling (POSIX-compliant) High-resolution timer and clock support (microsecond resolution) Periodic processes Message queues Priority inheritanceand priority ceiling protocol emulation support to avoid unbounded priority inversion TimeSysLinux/GPL Basic TimeSysLinux kernel Full preemption at the kernel level, prioritized interrupt handlers, unlimited priorities,... TimeSysLinux/Real-time Support priority inheritance and a POSIXbased high-resolution timer API TimeSysLinux/CPU Support CPU reservation, which gives a thread, process, or process group exclusive use of the CPU. TimeSysLinux/Net Support network bandwidth reservation to guarantee that your thread or process will get the bandwidth it requires, regardless of network activity in other processes TimeSysLinux GPL: Downloadable from sourceforge.net/projects/timesysgpl 31 Real-Time Operating Systems

32 Sources Victor Yodaiken, The RTLinuxManifesto, In Proceedings of the 5 th Linux Expo, 1999 Victor Yodaiken, CortDougan, Michael Barabanov, RTLinux/RTCoredual kernel real-time operating system, FSM Labs White Paper, 2004 [ available from QNX Neutrino RTOS System Architecture [ available from qnx.com/download/ ] Raj Rajkumar, Kanaka Juvva, AnastasioMolanoand ShuiOikawa, Resource Kernels: A Resource-Centric Approach to Real-Time Systems, In Proceedings of the SPIE/ACM Conference on Multimedia Computing and Networking, January Real-Time Operating Systems

Linux 2.4. Linux. Windows

Linux 2.4. Linux. Windows Linux 2.4 Non-preemptible kernel A system call might take long time to complete Coarse timer resolution Tasks can be released only with 10ms precision Virtual memory Introduces unpredictable amount of

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

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

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,

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

CPU SCHEDULING CS 409, FALL 2013 SCHEDULING/1

CPU SCHEDULING CS 409, FALL 2013 SCHEDULING/1 CPU SCHEDULING 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 three separate functions:

More information

RTOS Real-Time Operating Systems. Chenyang Lu

RTOS Real-Time Operating Systems. Chenyang Lu RTOS Real-Time Operating Systems Chenyang Lu OS Support for Real-Time Ø Real-Time OS Ø Real-time extensions to general-purpose OS Chenyang Lu 19 RTOS: Features for Efficiency Ø Small Ø Minimal set of functionality

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

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

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

Performance Comparison of RTOS

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

More information

Chapter 6 CPU Scheduling. Contents

Chapter 6 CPU Scheduling. Contents Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual

More information

multiple processes are kept in memory simultaneously when one process is waiting, another process executes

multiple processes are kept in memory simultaneously when one process is waiting, another process executes Terminology. Reference: Section 4.2, 5.1 Time-sharing / multiprogramming Typical proc. alternates between CPU bursts and I/O bursts To maximize CPU utilization: multiple processes are kept in memory simultaneously

More information

Lecture 9 Real-Time Application Interface for Linux

Lecture 9 Real-Time Application Interface for Linux CENG 314 Embedded Computer Systems Lecture 9 Real-Time Application Interface for Linux Asst. Prof. Tolga Ayav, Ph.D. Department of Computer Engineering İzmir Institute of Technology RTOS Operating system

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

RTOS Real-Time Operating System

RTOS Real-Time Operating System RTOS Real-Time Operating System What is a real-time system? A real-time system is any information processing system which has to respond to externally generated input stimuli within a finite and specified

More information

Today s topic: RTOS. OS kernel. Overall Stucture of Computer Systems. API/OS User Interface/Shell, Windows. Filesystem and Disk management.

Today s topic: RTOS. OS kernel. Overall Stucture of Computer Systems. API/OS User Interface/Shell, Windows. Filesystem and Disk management. Today s topic: RTOS 1 Overall Stucture of Computer Systems Application Program Application Program Application Program API/OS User Interface/Shell, Windows Filesystem and Disk management OS kernel Hardware

More information

CPU Scheduling. User/Kernel Threads. Mixed User/Kernel Threads. Solaris/Linux Threads. CS 256/456 Dept. of Computer Science, University of Rochester

CPU Scheduling. User/Kernel Threads. Mixed User/Kernel Threads. Solaris/Linux Threads. CS 256/456 Dept. of Computer Science, University of Rochester CPU Scheduling CS 256/456 Dept. of Computer Science, University of Rochester User/Kernel Threads User threads Thread data structure is in user-mode memory scheduling/switching done at user mode Kernel

More information

CS 571 Operating Systems. CPU Scheduling. Angelos Stavrou, George Mason University

CS 571 Operating Systems. CPU Scheduling. Angelos Stavrou, George Mason University CS 571 Operating Systems CPU Scheduling Angelos Stavrou, George Mason University CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms First-Come-First-Served Shortest-Job-First, Shortest-remaining-Time-First

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

CHAPTER 5: PROCESS SCHEDULING (B) By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 5: PROCESS SCHEDULING (B) By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 5: PROCESS SCHEDULING (B) By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Multiple-Processor Scheduling CPU scheduling more complex when multiple CPUs are available Homogeneous processors

More information

III. Process Scheduling

III. Process Scheduling Intended Schedule III. Process Scheduling Date Lecture Hand out Submission 0 20.04. Introduction to Operating Systems Course registration 1 27.04. Systems Programming using C (File Subsystem) 1. Assignment

More information

III. Process Scheduling

III. Process Scheduling III. Process Scheduling 1 Intended Schedule Date Lecture Hand out Submission 0 20.04. Introduction to Operating Systems Course registration 1 27.04. Systems Programming using C (File Subsystem) 1. Assignment

More information

CPU scheduling. CPU Scheduling. No.4. CPU burst vs. I/O burst. Prof. Hui Jiang Dept of Electrical Engineering and Computer Science, York University

CPU scheduling. CPU Scheduling. No.4. CPU burst vs. I/O burst. Prof. Hui Jiang Dept of Electrical Engineering and Computer Science, York University EECS 3221 Operating System Fundamentals No.4 CPU scheduling Prof. Hui Jiang Dept of Electrical Engineering and Computer Science, York University CPU Scheduling CPU scheduling is the basis of multiprogramming

More information

Chapter 6: CPU Scheduling. Previous Lectures. Basic Concepts. Alternating Sequence of CPU And I/O Bursts

Chapter 6: CPU Scheduling. Previous Lectures. Basic Concepts. Alternating Sequence of CPU And I/O Bursts Previous Lectures Multithreading Memory Layout Kernel vs User threads Representation in OS Difference between thread and process Thread scheduling Mapping between user and kernel threads Multithreading

More information

COS 318: Operating Systems. CPU Scheduling. (http://www.cs.princeton.edu/courses/cos318/)

COS 318: Operating Systems. CPU Scheduling. (http://www.cs.princeton.edu/courses/cos318/) COS 318: Operating Systems CPU Scheduling (http://www.cs.princeton.edu/courses/cos318/) Today s Topics! CPU scheduling! CPU Scheduling algorithms 2 When to Schedule?! Process/thread creation! Process/thread

More information

W4118 Operating Systems. Instructor: Junfeng Yang

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

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

Objectives. Chapter 5: CPU Scheduling. CPU Scheduler. Alternating Sequence of CPU And I/O Bursts

Objectives. Chapter 5: CPU Scheduling. CPU Scheduler. 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 7 th Edition, Jan 14, 2005

Chapter 5: CPU Scheduling. Operating System Concepts 7 th Edition, Jan 14, 2005 Chapter 5: CPU Scheduling Operating System Concepts 7 th Edition, Jan 14, 2005 Silberschatz, Galvin and Gagne 2005 Outline Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling

More information

CPU Scheduling. Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling

CPU Scheduling. Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Basic Concepts An OS must allocate resources amongst competing processes The resource

More information

OPERATING SYSTEMS SCHEDULING

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

More information

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 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

More information

CPU Scheduling. CPU Scheduling

CPU Scheduling. CPU Scheduling CPU Scheduling Electrical and Computer Engineering Stephen Kim (dskim@iupui.edu) ECE/IUPUI RTOS & APPS 1 CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling

More information

CSC 539: Operating Systems Structure and Design. Spring 2006

CSC 539: Operating Systems Structure and Design. Spring 2006 CSC 539: Operating Systems Structure and Design Spring 2006 CPU scheduling historical perspective CPU-I/O bursts preemptive vs. nonpreemptive scheduling scheduling criteria scheduling algorithms: FCFS,

More information

Processor Scheduling. Queues Recall OS maintains various queues

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

More information

REAL TIME OPERATING SYSTEMS. Lesson-10:

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

More information

Scheduling. Reading: Silberschatz chapter 6 Additional Reading: Stallings chapter 9 EEL 358 1

Scheduling. Reading: Silberschatz chapter 6 Additional Reading: Stallings chapter 9 EEL 358 1 Scheduling Reading: Silberschatz chapter 6 Additional Reading: Stallings chapter 9 EEL 358 1 Outline Introduction Types of Scheduling Scheduling Criteria FCFS Scheduling Shortest-Job-First Scheduling Priority

More information

Scheduling in Operating systems

Scheduling in Operating systems Scheduling in Operating systems Giuseppe Lipari http://retis.sssup.it/~lipari LSV Ecole Normale Supérieure de Cachan January 6, 2014 G. Lipari (LSV) Scheduling in Operating systems January 6, 2014 1 /

More information

Outline. V Computer Systems Organization II (Honors) (Introductory Operating Systems) CPU Scheduling: Overview. Scheduling: Components

Outline. V Computer Systems Organization II (Honors) (Introductory Operating Systems) CPU Scheduling: Overview. Scheduling: Components Outline V22.0202-001 Computer Systems Organization II (Honors) (Introductory Operating Systems) Lecture 10 CPU Scheduling February 23, 2005 Announcements Lab 3 due on March 2 nd, Demos on March 2 nd and

More information

Embedded Systems. Real Time Systems (Part I) Real Time Operating System (RTOS) Definition and Characteristics

Embedded Systems. Real Time Systems (Part I) Real Time Operating System (RTOS) Definition and Characteristics Embedded Systems Real Time Systems (Part I) Dr. Jeff Jackson Lecture 12-1 Real Time Operating System (RTOS) Definition and Characteristics A real-time operating system (RTOS) is an operating system (OS)

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

CPU SCHEDULING. Scheduling Objectives. Outline. Basic Concepts. Enforcement of fairness in allocating resources to processes

CPU SCHEDULING. Scheduling Objectives. Outline. Basic Concepts. Enforcement of fairness in allocating resources to processes Scheduling Objectives CPU SCHEDULING Enforcement of fairness in allocating resources to processes Enforcement of priorities Make best use of available system resources Give preference to processes holding

More information

Real-Time Operating Systems. http://soc.eurecom.fr/os/

Real-Time Operating Systems. http://soc.eurecom.fr/os/ Institut Mines-Telecom Ludovic Apvrille ludovic.apvrille@telecom-paristech.fr Eurecom, office 470 http://soc.eurecom.fr/os/ Outline 2/66 Fall 2014 Institut Mines-Telecom Definitions What is an Embedded

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

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

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

EE458 - Embedded Systems Lecture 5 Intro to RTOSes

EE458 - Embedded Systems Lecture 5 Intro to RTOSes EE458 - Embedded Systems Lecture 5 Intro to RTOSes Outline RTOS Components Multitasking Objects Services Key Characteristics of an RTOS RTEMS Key Concepts References RTC: Chapter 4 CUG: Chapter 2 1 Introduction

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

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

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

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

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

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

CPU Scheduling! Basic Concepts! Scheduling Criteria! Scheduling Algorithms!

CPU Scheduling! Basic Concepts! Scheduling Criteria! Scheduling Algorithms! CPU Scheduling! Basic Concepts! Scheduling Criteria! Scheduling Algorithms! First-Come-First-Served! Shortest-Job-First, Shortest-remaining-Time-First! Priority Scheduling! Round Robin! Multi-level Queue!

More information

Process and Thread Scheduling. Raju Pandey Department of Computer Sciences University of California, Davis Winter 2005

Process and Thread Scheduling. Raju Pandey Department of Computer Sciences University of California, Davis Winter 2005 Process and Thread Scheduling Raju Pandey Department of Computer Sciences University of California, Davis Winter 2005 Scheduling Context switching an interrupt occurs (device completion, timer interrupt)

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

ESD2531- Embedded RTOS

ESD2531- Embedded RTOS ESD2531- Embedded RTOS Module Leader Deepak V. 1 Module Aims and Summary This module intends to prepare students to design and develop the embedded software using Real-Time Operating System (RTOS). Students

More information

Chapter 6 Process Scheduling

Chapter 6 Process Scheduling 1 Chapter 6 Process Scheduling CPU scheduling deals with the problem of deciding which of the processes in the ready queue is to be allocated the CPU. There are many different CPU-scheduling algorithms.

More information

Chapter 5: Process Scheduling. Chapter 5: Process Scheduling

Chapter 5: Process Scheduling. Chapter 5: Process Scheduling Chapter 5: Process Scheduling Chapter 5: Process Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Operating Systems Examples Java Thread Scheduling Algorithm

More information

CPU Scheduling. Outline

CPU Scheduling. Outline CPU Scheduling Thomas Plagemann (with slides from Otto J. Anshus, Kai Li, Pål Halvorsen and Andrew S. Tanenbaum) Goals of scheduling Outline Scheduling algorithms: FCFS/FIFO, RR, STCF/SRTCF Priority (CTSS,

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

Scheduling for uniprocessor systems Introduction

Scheduling for uniprocessor systems Introduction Politecnico di Milano Introduction Lecturer: William Fornaciari Politecnico di Milano william.fornaciari@elet.polimi.it Home.dei.polimi.it/fornacia SUMMARY Basic Concepts Scheduling Criteria Scheduling

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

Why Linux is not an RTOS: porting hints

Why Linux is not an RTOS: porting hints Why Linux is not an RTOS: porting hints Chris Simmonds 2net Limited Embedded Systems Conference UK. 2009 Copyright 2009, 2net Limited Overview Linux is a popular choice as an embedded OS Most projects

More information

COS 318: Operating Systems. CPU Scheduling. Kai Li and Andy Bavier Computer Science Department Princeton University

COS 318: Operating Systems. CPU Scheduling. Kai Li and Andy Bavier Computer Science Department Princeton University COS 318: Operating Systems CPU Scheduling Kai Li and Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall13/cos318/ Quiz 1 u Avg score: 10.7 u Suggested

More information

Chapter 6: CPU Scheduling. Basic Concepts Scheduling Criteria Scheduling Algorithms

Chapter 6: CPU Scheduling. Basic Concepts Scheduling Criteria Scheduling Algorithms Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Operating System Concepts 6.1 Basic Concepts Maximum CPU utilization obtained with multiprogramming. CPU I/O Burst Cycle

More information

Today s topic: RTOS. Why OS?

Today s topic: RTOS. Why OS? Today s topic: RTOS 1 Why OS? To run a single program is easy What to do when several programs run in parallel? Memory areas Program counters Scheduling (e.g. one instruction each)... Communication/synchronization/semaphors

More information

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition Chapter 6: CPU Scheduling Silberschatz, Galvin and Gagne 2013 Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Real-Time

More information

Scheduling 0 : Levels. High level scheduling: Medium level scheduling: Low level scheduling

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

More information

Topic 6 (M 18) RTOS & Inter-process Communication

Topic 6 (M 18) RTOS & Inter-process Communication Topic 6 (M 18) RTOS & Inter-process Communication 6.1 Concepts of RTOS, Need of RTOS in Embedded systems 6.2 Multitasking 6.3 Task synchronization & Mutual Exclusion 6.4 Starvation, Deadlock, Multiple

More information

What Is an RTOS and Why U se Use One? May, May 2013

What Is an RTOS and Why U se Use One? May, May 2013 What Is an RTOS and Why Use One? May, 2013 What is an Embedded System? Dedicated to a specific purpose Components: Microprocessor Application program Real-Time Operating System (RTOS) RTOS and application

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

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

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

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

CPU Scheduling: Basic Concepts

CPU Scheduling: Basic Concepts CPU Scheduling: Basic Concepts Idea: Maximum CPU utilization obtained with multiprogramming" CPU I/O Burst Cycle Process execution consists of a cycle of CPU execution and I/O wait" Dispatcher grants CPU

More information

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

POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2) RTOSes Part I Christopher Kenna September 24, 2010 POSIX Portable Operating System for UnIX Application portability at source-code level POSIX Family formally known as IEEE 1003 Originally 17 separate

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

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 Chapter 6: CPU Scheduling Edited by Ghada Ahmed, PhD ghada@fcih.net Silberschatz, Galvin and Gagne 2013 Basic Concepts Maximum CPU utilization obtained with multiprogramming CPU I/O Burst Cycle Process

More information

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

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

More information

Real-Time & Embedded Operating Systems. VO Embedded Systems Engineering Benedikt Huber WS 2010/11

Real-Time & Embedded Operating Systems. VO Embedded Systems Engineering Benedikt Huber WS 2010/11 Real-Time & Embedded Operating Systems VO Embedded Systems Engineering Benedikt Huber WS 2010/11 Overview Real-Time Systems (Review) OS and RTOS RTOS Classification Linux as RTOS Programming Considerations

More information

2. is the number of processes that are completed per time unit. A) CPU utilization B) Response time C) Turnaround time D) Throughput

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?

More information

CPU Scheduling. CS439: Principles of Computer Systems September 7, 2016

CPU Scheduling. CS439: Principles of Computer Systems September 7, 2016 CPU Scheduling CS439: Principles of Computer Systems September 7, 2016 Last Time A process is a unit of execution Defines an address space An abstraction for protection Processes are represented as Process

More information

Threads (Ch.4) ! Many software packages are multi-threaded. ! A thread is sometimes called a lightweight process

Threads (Ch.4) ! Many software packages are multi-threaded. ! A thread is sometimes called a lightweight process Threads (Ch.4)! Many software packages are multi-threaded l Web browser: one thread display images, another thread retrieves data from the network l Word processor: threads for displaying graphics, reading

More information

Module 6: CPU Scheduling. Basic Concepts. Alternating Sequence of CPU And I/O Bursts

Module 6: CPU Scheduling. Basic Concepts. Alternating Sequence of CPU And I/O Bursts Module 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation Applied Operating System Concepts 6.1 Basic Concepts

More information

Lesson 3: Processes, Threads & CPU Scheduling

Lesson 3: Processes, Threads & CPU Scheduling Lesson 3: Processes, Threads & CPU Scheduling Contents The concept of computing Process Process states and life-cycle CPU Scheduling considerations Processes hierarchy Process creation and termination

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

Lecture 6- CPU Scheduling Continued

Lecture 6- CPU Scheduling Continued Lecture 6- CPU Scheduling Continued Instructor : Bibhas Ghoshal (bibhas.ghoshal@iiita.ac.in) Autumn Semester, 2015 Bibhas Ghoshal IOSY 332C & IOPS 332C: OS Autumn Semester, 2015 1 / 24 Shortest Remaining

More information

PROCESS SCHEDULING. CS124 Operating Systems Winter 2013-2014, Lecture 12

PROCESS SCHEDULING. CS124 Operating Systems Winter 2013-2014, Lecture 12 PROCESS SCHEDULING CS124 Operating Systems Winter 2013-2014, Lecture 12 2 Process Scheduling OSes must manage the allocation and sharing of hardware resources to applications that use them Most important

More information

A survey of Real Time Operating Systems for Embedded Systems Development in Automobiles

A survey of Real Time Operating Systems for Embedded Systems Development in Automobiles A survey of Real Time Operating Systems for Embedded Systems Development in Automobiles M. Tech Seminar Report Submitted in partial fulfillment of the requirements for the degree of Master of Technology

More information

Lecture 5 CPU Scheduling

Lecture 5 CPU Scheduling Lecture 5 CPU Scheduling (Uniprocessor System) 1 Lecture Contents 1. Basic Concepts 2. Scheduling Criteria 3. Scheduling Algorithms 2 Switching CPU among processes in multiprogrammed OSs makes a computer

More information

Linux Process Scheduling Policy

Linux Process Scheduling Policy Lecture Overview Introduction to Linux process scheduling Policy versus algorithm Linux overall process scheduling objectives Timesharing Dynamic priority Favor I/O-bound process Linux scheduling algorithm

More information

Chapter 2 Operating System Overview

Chapter 2 Operating System Overview Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 2 Operating System Overview Dave Bremer Otago Polytechnic, N.Z. 2008, Prentice Hall Roadmap Operating System Objectives/Functions

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

CHAPTER 15: Operating Systems: An Overview

CHAPTER 15: Operating Systems: An Overview CHAPTER 15: Operating Systems: An Overview The Architecture of Computer Hardware, Systems Software & Networking: An Information Technology Approach 4th Edition, Irv Englander John Wiley and Sons 2010 PowerPoint

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

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

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

CS420: Operating Systems

CS420: Operating Systems CPU Scheduling James Moscola Department of Engineering & Computer Science York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Scheduling Concepts

More information