ENGG4420 CHAPTER 2 LECTURE 6

Size: px
Start display at page:

Download "ENGG4420 CHAPTER 2 LECTURE 6"

Transcription

1 CHAPTER 2 ucosiii Page 1 ENGG4420 CHAPTER 2 LECTURE 6 October :03 PM SEMAPHORE INTERNALS OS_SEM data type defined in os.h Semaphore services are enabled at compile time by setting the configuration constant OS_CFG_SEM_EN to 1 in os_cfg.h Note, that uc/os III doesn't make a distinguish between counting and binary semaphores when initial value is 1 then is treated as binary.

2 CHAPTER 2 ucosiii Page 2 PRIORITY INVERSIONS Priority inversion occurs only when using a prioritybased preemptive kernel. Example below uses 3 tasks: Task H (high priority), Task M (medium priority), and Task L (low priority). (1) L is executing while H and M are both waiting for an event. (2) L acquires a semaphore to access a resource (3) L performs operations on the acquired resource (4) Event for H happens and L is suspended (5) WHAT HAPPENED?? During (9) the priority of Task H has been reduced to that of Task L since it waited for the resource that Task L owned this is called unbounded priority inversion. SOLUTION??

3 CHAPTER 2 ucosiii Page 3 MUTUAL EXCLUSION SEMAPHORE MUTEX MUTEX is a special type of binary semaphore that eliminates the unbounded priority inversion (6) Task H attempts to get the mutex from Task L. Given that Task L owns the resource, uc/os III raises the priority of Task L to H so that Task L will finish with the resource without being preempted by Task M. (8) Task L finishes with the resource. uc/os III will reduce the priority of Task L from H back to L. Next, it will give the mutex to Task H. Note that there is no priority inversion but only resource sharing.

4 CHAPTER 2 ucosiii Page 4 MUTEX INTERNALS uc/os III implements full priority inheritance and therefore if a higher priority requests a resource, the priority of the owner task will be raised to the priority of the new requestor. A mutex is a kernel object defined by the OS_MUTEX data type. ISR are not allowed to use mutexes There are a number of functions that are performed on mutexes:

5 CHAPTER 2 ucosiii Page 5 USAGE OF MUTEXES A mutex must be created before it can be used by an application A task waits on a mutex before it can access the resource

6 CHAPTER 2 ucosiii Page 6 SHOULD YOU USE A SEMAPHORE INSTEAD OF A MUTEX A semaphore can be used instead of a mutex if none of the tasks competing for the shared resource have deadlines to be satisfied. If there are deadlines to be met, a mutex should be used to access the shared resource to eliminate the unbounded priority inversion.

7 CHAPTER 2 ucosiii Page 7 DEADLOCK (OR DEADLY EMBRACE) A deadlock is a situation where two tasks are each unknowingly waiting for resources held by the other. Assume T1 has exclusive access to resource R1 and T2 has exclusive access to R2 as shown below: T1 executes before T2; T2 has a higher priority T1 is deadlock at (9) waiting for M2 T2 is deadlock at (7) waiting for M1

8 CHAPTER 2 ucosiii Page 8 TECHNIQUES USED TO AVOID DEADLOCKS 1) Acquire all resources before proceeding, and in the same order, 2) Always acquire resources in the same order 3) Use timeouts on pend calls this method doesn't really solve the deadlock, it just breaks it. ACQUIRE ALL RESOURCES BEFORE PROCESSING

9 CHAPTER 2 ucosiii Page 9 ALWAYS ACQUIRE SEMAPHORES IN THE SAME ORDER In this method you need to make sure that the mutexes are acquired in the same order for both task.

10 CHAPTER 2 ucosiii Page 10 SYNCHRONIZATION How tasks can synchronize their activities with Interrupt Service Routines (ISRs), or other tasks? Servicing interrupting devices from task level is preferred, since it reduces the amount of time that interrupts are disabled and the code is easier to debug. There are two main methods for synchronization in uc/os III: 1) COUNTING SEMAPHORES, AND 2) EVENT FLAGS. COUNTING SEMAPHORES semaphores are best used to synchronize an ISR to a task, or synchronize a task with another task as shown below: The N value next to the flag indicates that the semaphore can accumulate events or credits. An ISR or a task can post multiple times to a semaphore, and the semaphore will remember how many times it was posted.

11 CHAPTER 2 ucosiii Page 11 OPERATIONS PERFORMED ON SEMAPHORES For uc/os III, the maximum value of a semaphore is determined by the data type OS_SEM_CTR (see os_type.h), which is changeable. Along with the semaphore's value, uc/os III keeps track of tasks waiting for the semaphore to be signaled.

12 CHAPTER 2 ucosiii Page 12 UNILATERAL RENDEZ VOUS When no data needs to be exchanged we can use a semaphore in a unilateral rendez vous way to synchronize a task with an ISR or other task. Unilateral rendez vous is used when a task initiates an I/O operation and waits (i.e., calll OSSemPend()). When the I/O operation is complete, an ISR or other task signals the semaphore. Task HP synchronizes with an ISR. (4) HP task pends on a semaphore for an event (6) the event has taken place

13 CHAPTER 2 ucosiii Page 13 PENDING ON A SEMAPHORE The task doesn't need to know about the details of what happens behind the scenes, it just calls OSSemPend() that will return when the event occurs.

14 CHAPTER 2 ucosiii Page 14 CREDIT TRACKING A semaphore remembers how many times it was signaled (or posted to). When the task becomes the highest priority readyto run task, it will execute without blocking as many times as there are signals counted this is called credit tracking. (3) an event meant for a lower priority task occurs which preempts the task (assuming interrupts are enabled). The ISR executes and posts to the semaphore. (17) the task waiting for the semaphore event is switched to and will know that the ISR occurred two times.

15 CHAPTER 2 ucosiii Page 15 MULTIPLE TASKS WAITING ON A SEMAPHORE We can have multiple tasks waiting for the same semaphore, each with its own timeout: uc/os III makes the highest priority task waiting on a semaphore ready to run. However, uc/os III supports broadcasting and can signal to all the tasks at once by specifying OS_OPT_POST_ALL as an option when calling OSSemPost(). Broadcasting is a common technique used to synchronize multiple tasks but there could be situations when we perform a synchronization to a task that might not waiting for a semaphore. This problem can be solved by combining semaphores and event flags.

16 CHAPTER 2 ucosiii Page 16 SEMAPHORE INTERNALS FOR SYNCHRONZATION A semaphore is a kernel object as defined by the OS_SEM data type. The services provided for the semaphores are implemented in the file os_sem.c Semaphores must be created before they can be used by the application. (6) a semaphore contains a time stamp, which is used to indicate the last time the semaphore was signaled (or posted to) uc/os III assumes the presence of a freerunning counter that allows the application to make time measurements.

17 USAGE OF SEMAPHORES FOR SYNCHRONIZATION CHAPTER 2 ucosiii Page 17

18 CHAPTER 2 ucosiii Page 18 TASKS WAITING FOR SEMAPHORE When posting with OS_OPT_POST_1, you post to only the highest priority task. If there are multiple tasks at the same priority, only one of them will be made ready to run. When posting with OS_OPT_POST_ALL, all tasks waiting for the semaphore will be made ready. Also, the posting can "add" the option. OS_OPT_POST_NO_SCHED (additive option) to indicate that the scheduler is not to be called at the end of OSSemPost().

19 CHAPTER 2 ucosiii Page 19 TASK SEMAPHORES In uc/os III each task has its own built in semaphore this feature simplifies code and is efficient. You can use this feature if you know which task to signal when the event occurs. SEMAPHORE BUILT INTO A TASK

20 CHAPTER 2 ucosiii Page 20 PENDING ON A TASK SEMAPHORE When a task is created, it automatically creates an internal semaphore with an initial value of zero. POSTING A TASK SEMAPHORE An ISR or a task can signal a task by calling OSTaskSemPost();

21 CHAPTER 2 ucosiii Page 21 BILATERAL RENDEZ VOUS WITH TASK SEMAPHORES Two tasks can synchronize their activities by using two task semaphores in a bilateral way. Both tasks must synchronized with one another before proceeding. A bilateral rendez vous cannot be performed between a task and an ISR because an ISR cannot wait on a semaphore.

22 CODE FOR BILATERAL RENDEZ VOUS CHAPTER 2 ucosiii Page 22

23 CHAPTER 2 ucosiii Page 23 EVENT FLAGS "Event flag group" is a kernel object of type OS_FLAG_GRP and consists of a series of bits. Object used when a task needs to synchronize with the occurrence of multiple events. We can have disjunctive (logical OR) synchronization when any of the events have occurred. We can have conjunctive synchronization (logical AND), when all events have occurred. The application programmer can create an unlimited number of event flag groups. The flag services are enabled at compile time by setting the configuration constant OS_CFG_FLAG_EN to 1 in os_cfg.h. You need to create event flags prior to starting uc/os III, or by a startup task in your application.

24 CHAPTER 2 ucosiii Page 24 OPERATIONS TO PERFORM ON EVENT FLAGS EXAMPLE In an event flag group you can define that bit #0 indicates that a temperature sensor is too low, bit #1 may indicate a low battery voltage, bit #2 could indicate that a switch was pressed, etc. The code (task or ISR) that detects these conditions would set the appropriate event flag by calling OSFlagPost(). The task(s) that would respond to those conditions would call OSflagPend(). The operations of OR and AND can be made for bits to be set (1) or clear (0).

25 USING EVENT FLAGS CHAPTER 2 ucosiii Page 25

26 CHAPTER 2 ucosiii Page 26 EVENT FLAGS APPLICATIONS 1) Used for status, a. Temperature has exceeded a certain value, an engine RPM is zero, there is fuel in the tank, etc. b. Status information cannot be consumed by the task waiting for the event. c. Status event flags are monitored by other task by using non blocking wait calls. 2) Used for transient events. a. Switch was pressed, an object was detected by a motion sensor, etc. b. The task waiting for these events will normally block and consume the event.

27 CHAPTER 2 ucosiii Page 27 EVENT FLAGS INTERNALS Event flag groups must be created before they can be used by an application (4) initialize all the flags in the group to zero if the task or ISR signal events by setting bits and to 1 if the signal events are cleared.

28 CHAPTER 2 ucosiii Page 28 PENDING AND POSTING TO AN EVENT GROUP (1) OSFlagPost() returns the current value of the event flags in the event flag group after the post has been performed. (2) indicates which bits will be setting or clearing, (3) you can specify OS_OPT_POST_FLAG_SET or OS_OPT_POST_FLAG_CLR.

29 CHAPTER 2 ucosiii Page 29 SYNCHRONIZING MULTIPLE TASK RENDEZVOUS (1) each task that needs to synchronize at the rendez vous needs to set an event flag bit (and specify OS_OPT_POST_NO_SCHED). (2) the task needs to wait for the semaphore to be posted. (3) the task that will be broadcasting must wait for "all" of the event flags corresponding to each task to be set. (4) when all waiting task are ready, the task that will synchronize the waiting task issues a broadcast to the semaphore.

EE458 - Embedded Systems Lecture 8 Semaphores

EE458 - Embedded Systems Lecture 8 Semaphores EE458 - Embedded Systems Lecture 8 Semaphores Outline Introduction to Semaphores Binary and Counting Semaphores Mutexes Typical Applications RTEMS Semaphores References RTC: Chapter 6 CUG: Chapter 9 1

More information

INTERRUPT MANAGEMENT An interrupt is a hardware mechanism used to service an event that can be external or internal to

INTERRUPT MANAGEMENT An interrupt is a hardware mechanism used to service an event that can be external or internal to CHAPTER 2 ucosiii Page 1 ENGG4420 CHAPTER 2 LECTURE 5 October 22 12 3:28 PM INTERRUPT MANAGEMENT An interrupt is a hardware mechanism used to service an event that can be external or internal to the CPU.

More information

Int tmytask() { while(1){ .. } }

Int tmytask() { while(1){ .. } } CHAPTER 2 BY RADU MURESAN Page 1 TASK OBJECT Upon creation, each task has an associated name, a unique ID, a priority (if part of a preemptive scheduling plan), a task control block (TCB), a stack, and

More information

Micriμm. Getting Started with Micriμm s. Matt Gordon, Sr. Applications Engineer. 9L05I Renesas Electronics America Inc.

Micriμm. Getting Started with Micriμm s. Matt Gordon, Sr. Applications Engineer. 9L05I Renesas Electronics America Inc. Getting Started with Micriμm s μc/os-iii Kernel Matt Gordon, Sr. Applications Engineer Micriμm Class ID: 9L05I Renesas Electronics America Inc. 2012 Renesas Electronics America Inc. All rights reserved.

More information

Final Examination. Thursday, December 3, :20PM 620 PM. NAME: Solutions to Selected Problems ID:

Final Examination. Thursday, December 3, :20PM 620 PM. NAME: Solutions to Selected Problems ID: CSE 237B EMBEDDED SOFTWARE, FALL 2009 PROF. RAJESH GUPTA Final Examination Thursday, December 3, 2009 5:20PM 620 PM NAME: Solutions to Selected Problems ID: Problem Max. Points Points 1 20 2 25 3 35 4

More information

ENGG4420 CHAPTER 2 HOMEWORK

ENGG4420 CHAPTER 2 HOMEWORK CHAPTER 2 By Radu Muresan University of Guelph Page 1 TYPICAL MESSAGE QUEUE USE The following are typical ways to use message queues within an application: 1) non interlocked, one way data communication;

More information

The components in the middle are core and the components on the outside are optional.

The components in the middle are core and the components on the outside are optional. CHAPTER 2 ucosiii Page 1 ENGG4420 CHAPTER 3 LECTURE 8 October 31 12 9:43 AM MQX BASICS MQX Real Time Operating System has been designed for uni processor, multi processor, and distributedprocessor embedded

More information

Nios II. uc/os-ii porting with Nios II Altera Corporation

Nios II. uc/os-ii porting with Nios II Altera Corporation Nios II uc/os-ii porting with Nios II 2002 2 µc/os-ii Main Features Portable (Most 8, 16, 32 and 64 bit CPUs) ROMable Scalable Preemptive Real-Time Deterministic High Performance Multitasking Robust Provides

More information

Introduction to Real-Time Operating Systems

Introduction to Real-Time Operating Systems Introduction to Real-Time Operating Systems GPOS vs RTOS General purpose operating systems Real-time operating systems GPOS vs RTOS: Similarities Multitasking Resource management OS services to applications

More information

Real-Time Systems Resource Access Protocols

Real-Time Systems Resource Access Protocols Real-Time Systems Resource Access Protocols WS 2016/17 Problems: Priority Inversion Assumptions: Jobs use resources in a mutually exclusive manner Preemptive priority-driven scheduling Fixed task priorities

More information

Semaphores. Chapter. verview inary Semaphores for Task Synchronization utex Semaphores to Solve Mutual Exclusion Problems

Semaphores. Chapter. verview inary Semaphores for Task Synchronization utex Semaphores to Solve Mutual Exclusion Problems Chapter 7 Semaphores Tornado Training Workshop Copyright 7-1 verview inary Semaphores for Task Synchronization utex Semaphores to Solve Mutual Exclusion Problems 7.1 Overview Semaphores Binary Semaphores

More information

Tasks. Task Implementation and management

Tasks. Task Implementation and management Tasks Task Implementation and management Tasks Vocab Absolute time - real world time Relative time - time referenced to some event Interval - any slice of time characterized by start & end times Duration

More information

Real-time operating systems and scheduling

Real-time operating systems and scheduling Real-time operating systems and scheduling Problem 21 Consider a real-time operating system (OS) that has a built-in preemptive scheduler. Each task has a unique priority and the lower the priority id,

More information

Real-Time Programming

Real-Time Programming Real-Time Programming Week 7: Real-Time Operating Systems Instructors Tony Montiel & Ken Arnold rtp@hte.com 4/1/2003 Co Montiel 1 Objectives o Introduction to RTOS o Event Driven Systems o Synchronization

More information

Micrium µc/os II RTOS Introduction EE J. E. Lumpp

Micrium µc/os II RTOS Introduction EE J. E. Lumpp Micrium µc/os II RTOS Introduction (by Jean Labrosse) EE599 001 Fall 2012 J. E. Lumpp μc/os II μc/os II is a highly portable, ROMable, very scalable, preemptive real time, deterministic, multitasking kernel

More information

CS A320 Operating Systems for Engineers

CS A320 Operating Systems for Engineers CS A320 Operating Systems for Engineers Lecture 4 Conclusion of MOS Chapter 2 September 18, 2013 Sam Siewert Many Ways to Schedule a CPU Core We ve Come a Long way Since Batch Scheduling Sam Siewert 2

More information

Lecture 4: Real Time Semaphores

Lecture 4: Real Time Semaphores Lecture 4: Real Time Semaphores 1 Lab work (20 min) Configuring VxWorks Kernel VxWorks Hostshell 09/19/2015 Quiz Solution (10) Quiz (15) Lecture Synchronization and Semaphores (45) Lab exercise Binary

More information

Deadlock. Lecture 4: Synchronization & Communication - Part 2. Necessary conditions. Deadlock handling. Hierarchical resource allocation

Deadlock. Lecture 4: Synchronization & Communication - Part 2. Necessary conditions. Deadlock handling. Hierarchical resource allocation Lecture 4: Synchronization & ommunication - Part 2 [RTS h 4] Deadlock Priority Inversion & Inheritance Mailbox ommunication ommunication with Objects Deadlock Improper allocation of common resources may

More information

Verification of Real-Time Systems Resource Sharing

Verification of Real-Time Systems Resource Sharing Verification of Real-Time Systems Resource Sharing Jan Reineke Advanced Lecture, Summer 2015 Resource Sharing So far, we have assumed sets of independent tasks. However, tasks may share resources to communicate

More information

Multiprocessor and Real-Time Scheduling. Chapter 10

Multiprocessor and Real-Time Scheduling. Chapter 10 Multiprocessor and Real-Time Scheduling Chapter 10 1 Roadmap Multiprocessor Scheduling Real-Time Scheduling Linux Scheduling Unix SVR4 Scheduling Windows Scheduling Classifications of Multiprocessor Systems

More information

Micriµm, Inc. Copyright 2001, Micriµm, Inc. All Rights reserved. and Event Flags. Application Note AN-1007A

Micriµm, Inc. Copyright 2001, Micriµm, Inc. All Rights reserved. and Event Flags. Application Note AN-1007A Micriµm, Inc Copyright 2001, Micriµm, Inc All Rights reserved µc/os-ii and Event Flags Application Note AN-1007A Jean J Labrosse JeanLabrosse@Micriumcom wwwmicriumcom Summary Event flags are used when

More information

Programming in Real-Time OS (uc/os-ii)

Programming in Real-Time OS (uc/os-ii) Programming in Real-Time OS (uc/os-ii) 경희대학교컴퓨터공학과 조진성 Embedded Software Taxonomy [2] Library only Non-multitasking AVR studio Real-time OS (Embedded OS) Preemptive multitasking Micro-kernel approach VxWorks

More information

Schedulability with resource sharing. Priority inheritance protocol Priority ceiling protocol Stack resource policy

Schedulability with resource sharing. Priority inheritance protocol Priority ceiling protocol Stack resource policy Schedulability with resource sharing Priority inheritance protocol Priority ceiling protocol Stack resource policy 1 Lecture overview We have discussed the occurrence of unbounded priority inversion We

More information

Concurrency Race Conditions and Deadlocks

Concurrency Race Conditions and Deadlocks Concurrency Race Conditions and Deadlocks Kartik Gopalan Chapters 2 (2.3) and 6 Tanenbaum s Modern OS Sequential Loosely, doing many things, but one after another E.g. Finish one assignment, then another

More information

Semaphore. Originally called P() and V() wait (S) { while S <= 0 ; // no-op S--; } signal (S) { S++; }

Semaphore. Originally called P() and V() wait (S) { while S <= 0 ; // no-op S--; } signal (S) { S++; } Semaphore Semaphore S integer variable Two standard operations modify S: wait() and signal() Originally called P() and V() Can only be accessed via two indivisible (atomic) operations wait (S) { while

More information

Operating systems and concurrency (B10)

Operating systems and concurrency (B10) Operating systems and concurrency (B10) David Kendall Northumbria University David Kendall (Northumbria University) Operating systems and concurrency (B10) 1 / 26 Introduction This lecture looks at Some

More information

Process/Thread Synchronization

Process/Thread Synchronization CSE325 Principles of Operating Systems Process/Thread Synchronization David Duggan dduggan@sandia.gov February 14, 2013 Reading Assignment 7 Chapter 7 Deadlocks, due 2/21 2/14/13 CSE325: Synchronization

More information

RTOS 101. Understand your real-time applications. with the help of Percepio Tracealyzer

RTOS 101. Understand your real-time applications. with the help of Percepio Tracealyzer RTOS 101 Understand your real-time applications with the help of Percepio Tracealyzer RTOS 101 Tasks, Priorities and Analysis Figure 1: Tracealyzer showing RTOS task scheduling and calls to RTOS services.

More information

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy Operating Systems Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. AL-AZHAR University Website : eaymanelshenawy.wordpress.com Email : eaymanelshenawy@yahoo.com Reference

More information

ArdOS The Arduino Operating System Reference Guide Contents

ArdOS The Arduino Operating System Reference Guide Contents ArdOS The Arduino Operating System Reference Guide Contents 1. Introduction... 2 2. Error Handling... 2 3. Initialization and Startup... 2 3.1 Initializing and Starting ArdOS... 2 4. Task Creation... 3

More information

Multiprocessor and Real- Time Scheduling. Chapter 10

Multiprocessor and Real- Time Scheduling. Chapter 10 Multiprocessor and Real- Time Scheduling Chapter 10 Classifications of Multiprocessor Loosely coupled multiprocessor each processor has its own memory and I/O channels Functionally specialized processors

More information

Microkernel/OS and Real-Time Scheduling

Microkernel/OS and Real-Time Scheduling Chapter 12 Microkernel/OS and Real-Time Scheduling Hongwei Zhang http://www.cs.wayne.edu/~hzhang/ Ack.: this lecture is prepared in part based on slides of Lee, Sangiovanni-Vincentelli, Seshia. Outline

More information

Introduction to Real-Time Systems and Multitasking. Microcomputer Architecture and Interfacing Colorado School of Mines Professor William Hoff

Introduction to Real-Time Systems and Multitasking. Microcomputer Architecture and Interfacing Colorado School of Mines Professor William Hoff Introduction to Real-Time Systems and Multitasking Real-time systems Real-time system: A system that must respond to signals within explicit and bounded time requirements Categories Soft real-time system:

More information

Inter-Process Communication and Synchronization of Processes, Threads and Tasks:

Inter-Process Communication and Synchronization of Processes, Threads and Tasks: Inter-Process Communication and Synchronization of Processes, Threads and Tasks: Lesson-6: Concept of Semaphore as an event signaling variable or notifying variable 1 Semaphore as an event signaling variable

More information

CSC Operating Systems Spring Lecture - XII Midterm Review. Tevfik Ko!ar. Louisiana State University. March 4 th, 2008.

CSC Operating Systems Spring Lecture - XII Midterm Review. Tevfik Ko!ar. Louisiana State University. March 4 th, 2008. CSC 4103 - Operating Systems Spring 2008 Lecture - XII Midterm Review Tevfik Ko!ar Louisiana State University March 4 th, 2008 1 I/O Structure After I/O starts, control returns to user program only upon

More information

GLOSSARY. VisualDSP++ Kernel (VDK) User s Guide B-1

GLOSSARY. VisualDSP++ Kernel (VDK) User s Guide B-1 B GLOSSARY Application Programming Interface (API) A library of C/C++ functions and assembly macros that define VDK services. These services are essential for kernel-based application programs. The services

More information

SMP T-Kernel Specification

SMP T-Kernel Specification SMP T-Kernel Specification Ver. 1.00.00 TEF021-S002-01.00.00/en February 2009 SMP T-Kernel Specification (Ver.1.00.00) TEF021-S002-01.00.00/en February 2009 Copyright 2006-2009 T-Engine Forum. All Rights

More information

Concurrency: Deadlock and Starvation

Concurrency: Deadlock and Starvation Concurrency: Deadlock and Starvation Chapter 6 E&CE 354: Processes 1 Deadlock Deadlock = situation in which every process from a set is permanently blocked, i.e. cannot proceed with execution Common cause:

More information

Operating Systems ECE344. Ding Yuan

Operating Systems ECE344. Ding Yuan Operating Systems ECE344 Ding Yuan Deadlock Synchronization is a live gun we can easily shoot ourselves in the foot Incorrect use of synchronization can block all processes We have talked about this problem

More information

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable What s An OS? Provides environment for executing programs Process abstraction for multitasking/concurrency scheduling Hardware abstraction layer (device drivers) File systems Communication Do we need an

More information

What is the Race Condition? And what is its solution? What is a critical section? And what is the critical section problem?

What is the Race Condition? And what is its solution? What is a critical section? And what is the critical section problem? What is the Race Condition? And what is its solution? Race Condition: Where several processes access and manipulate the same data concurrently and the outcome of the execution depends on the particular

More information

Chapter 6 Concurrency: Deadlock and Starvation

Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles Chapter 6 Concurrency: Deadlock and Starvation Seventh Edition By William Stallings Operating Systems: Internals and Design Principles When two trains

More information

Exam TI2720-C/TI2725-C Embedded Software

Exam TI2720-C/TI2725-C Embedded Software Exam TI2720-C/TI2725-C Embedded Software Wednesday April 16 2014 (18.30-21.30) Koen Langendoen In order to avoid misunderstanding on the syntactical correctness of code fragments in this examination, we

More information

18-642: Race Conditions

18-642: Race Conditions 18-642: Race Conditions 10/30/2017 Race Conditions Anti-Patterns for Race Conditions: Unprotected access to shared variables Shared variables not declared volatile Not accounting for interrupts and task

More information

SSC - Concurrency and Multi-threading Advanced topics about liveness

SSC - Concurrency and Multi-threading Advanced topics about liveness SSC - Concurrency and Multi-threading Advanced topics about liveness Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics Review what we learned

More information

Multitasking / Multithreading system Supports multiple tasks

Multitasking / Multithreading system Supports multiple tasks Tasks and Intertask Communication Introduction Multitasking / Multithreading system Supports multiple tasks As we ve noted Important job in multitasking system Exchanging data between tasks Synchronizing

More information

Midterm Exam. October 20th, Thursday NSC

Midterm Exam. October 20th, Thursday NSC CSE 421/521 - Operating Systems Fall 2011 Lecture - XIV Midterm Review Tevfik Koşar University at Buffalo October 18 th, 2011 1 Midterm Exam October 20th, Thursday 9:30am-10:50am @215 NSC Chapters included

More information

CS A331 Programming Language Concepts

CS A331 Programming Language Concepts CS A331 Programming Language Concepts Lecture 12 Alternative Language Examples (General Concurrency Issues and Concepts) March 30, 2014 Sam Siewert Major Concepts Concurrent Processing Processes, Tasks,

More information

Systemy RT i embedded Wykład 11 Systemy RTOS

Systemy RT i embedded Wykład 11 Systemy RTOS Systemy RT i embedded Wykład 11 Systemy RTOS Wrocław 2013 Plan Introduction Tasks Queues Interrupts Resources Memory management Multiprocessor operation Introduction What s an Operating System? Provides

More information

CSE 120. Summer, Inter-Process Communication (IPC) Day 3. Inter-Process Communication (IPC) Scheduling Deadlock. Instructor: Neil Rhodes

CSE 120. Summer, Inter-Process Communication (IPC) Day 3. Inter-Process Communication (IPC) Scheduling Deadlock. Instructor: Neil Rhodes CSE 120 Summer, 2005 Inter-Process Communication (IPC) Day 3 Inter-Process Communication (IPC) Scheduling Deadlock Instructor: Neil Rhodes Inter-Process Communication Cooperating processes must communicate

More information

Deadlock. Concurrency: Deadlock and Starvation. Reusable Resources

Deadlock. Concurrency: Deadlock and Starvation. Reusable Resources Concurrency: Deadlock and Starvation Chapter 6 Deadlock Permanent blocking of a set of processes that either compete for system resources or communicate with each other No efficient solution Involve conflicting

More information

Module 1. Introduction:

Module 1. Introduction: Module 1 Introduction: Operating system is the most fundamental of all the system programs. It is a layer of software on top of the hardware which constitutes the system and manages all parts of the system.

More information

Zilog Real-Time Kernel

Zilog Real-Time Kernel An Company Configurable Compilation RZK allows you to specify system parameters at compile time. For example, the number of objects, such as threads and semaphores required, are specez80acclaim! Family

More information

ECE 462 Object-Oriented Programming using C++ and Java. Scheduling and Critical Section

ECE 462 Object-Oriented Programming using C++ and Java. Scheduling and Critical Section ECE 462 Object-Oriented Programming g using C++ and Java Scheduling and Critical Section Yung-Hsiang Lu yunglu@purdue.edu d YHL Scheduling and Critical Section 1 Thread States born terminated ready running

More information

Multiprocessor scheduling

Multiprocessor scheduling Chapter 10 Multiprocessor scheduling When a computer system contains multiple processors, a few new issues arise. Multiprocessor systems can be categorized into the following: Loosely coupled or distributed.

More information

CSE 4/521 Introduction to Operating Systems

CSE 4/521 Introduction to Operating Systems CSE 4/521 Introduction to Operating Systems Lecture 7 Process Synchronization II (Classic Problems of Synchronization, Synchronization Examples) Summer 2018 Overview Objective: 1. To examine several classical

More information

Software Development with an Open Source RTOS

Software Development with an Open Source RTOS Software Development with an Open Source RTOS Fatih Peksenar - Sr. Manager, Application Engineering Class ID: 9L02I Renesas Electronics America Inc. Mr. Fatih Peksenar Manager, Applications Engineering

More information

Lecture 3: Concurrency & Tasking

Lecture 3: Concurrency & Tasking Lecture 3: Concurrency & Tasking 1 Real time systems interact asynchronously with external entities and must cope with multiple threads of control and react to events - the executing programs need to share

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2017 Lecture 11 Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ Multilevel Feedback Queue: Q0, Q1,

More information

Chapter 6: Process Synchronization. Operating System Concepts 9 th Edit9on

Chapter 6: Process Synchronization. Operating System Concepts 9 th Edit9on Chapter 6: Process Synchronization Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Objectives To present the concept of process synchronization. To introduce the critical-section

More information

Embedded Systems: OS. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Embedded Systems: OS. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University Embedded Systems: OS Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Standalone Applications Often no OS involved One large loop Microcontroller-based

More information

Concurrency: a crash course

Concurrency: a crash course Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer Concurrency: a crash course Concurrent computing Applications designed as a collection of computational units that may execute

More information

UNIT:2. Process Management

UNIT:2. Process Management 1 UNIT:2 Process Management SYLLABUS 2.1 Process and Process management i. Process model overview ii. Programmers view of process iii. Process states 2.2 Process and Processor Scheduling i Scheduling Criteria

More information

Concurrent and Distributed Systems Introduction

Concurrent and Distributed Systems Introduction Concurrent and Distributed Systems 8 lectures on concurrency control in centralised systems - interaction of components in main memory - interactions involving main memory and persistent storage (concurrency

More information

Micrium OS Kernel Labs

Micrium OS Kernel Labs Micrium OS Kernel Labs 2018.04.16 Micrium OS is a flexible, highly configurable collection of software components that provides a powerful embedded software framework for developers to build their application

More information

Deadlock. A Bit More on Synchronization. The Deadlock Problem. Deadlock Characterization. Operating Systems 2/7/2005. CSC 256/456 - Spring

Deadlock. A Bit More on Synchronization. The Deadlock Problem. Deadlock Characterization. Operating Systems 2/7/2005. CSC 256/456 - Spring A Bit More on Synchronization Deadlock CS 256/456 Dept. of Computer Science, University of Rochester Synchronizing interrupt handlers: Interrupt handlers run at highest priority and they must not block.

More information

Process/Thread Synchronization

Process/Thread Synchronization CSE325 Principles of Operating Systems Process/Thread Synchronization David Duggan dduggan@sandia.gov March 1, 2011 The image cannot be displayed. Your computer may not have enough memory to open the image,

More information

Embedded Systems: OS

Embedded Systems: OS Embedded Systems: OS Jinkyu Jeong (Jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong (jinkyu@skku.edu) Standalone

More information

Introduction to Embedded Systems

Introduction to Embedded Systems Introduction to Embedded Systems Sanjit A. Seshia UC Berkeley EECS 9/9A Fall 0 008-0: E. A. Lee, A. L. Sangiovanni-Vincentelli, S. A. Seshia. All rights reserved. Chapter : Operating Systems, Microkernels,

More information

CS 31: Intro to Systems Deadlock. Kevin Webb Swarthmore College April 21, 2015

CS 31: Intro to Systems Deadlock. Kevin Webb Swarthmore College April 21, 2015 CS 31: Intro to Systems Deadlock Kevin Webb Swarthmore College April 21, 2015 Reading Quiz Deadly Embrace The Structure of the THE-Multiprogramming System (Edsger Dijkstra, 1968) Also introduced semaphores

More information

Operating Systems: Quiz2 December 15, Class: No. Name:

Operating Systems: Quiz2 December 15, Class: No. Name: Operating Systems: Quiz2 December 15, 2006 Class: No. Name: Part I (30%) Multiple Choice Each of the following questions has only one correct answer. Fill the correct one in the blank in front of each

More information

Last Class: Monitors. Real-world Examples

Last Class: Monitors. Real-world Examples Last Class: Monitors Monitor wraps operations with a mutex Condition variables release mutex temporarily C++ does not provide a monitor construct, but monitors can be implemented by following the monitor

More information

Subject: Operating System (BTCOC403) Class: S.Y.B.Tech. (Computer Engineering)

Subject: Operating System (BTCOC403) Class: S.Y.B.Tech. (Computer Engineering) A. Multiple Choice Questions (60 questions) Subject: Operating System (BTCOC403) Class: S.Y.B.Tech. (Computer Engineering) Unit-I 1. What is operating system? a) collection of programs that manages hardware

More information

CSE 120. Fall Lecture 8: Scheduling and Deadlock. Keith Marzullo

CSE 120. Fall Lecture 8: Scheduling and Deadlock. Keith Marzullo CSE 120 Principles of Operating Systems Fall 2007 Lecture 8: Scheduling and Deadlock Keith Marzullo Aministrivia Homework 2 due now Next lecture: midterm review Next Tuesday: midterm 2 Scheduling Overview

More information

Lab 8 Real-time OS - 1

Lab 8 Real-time OS - 1 Lab 8-1 Speaker: Hao-Yun Chin Advisor: Prof. Tian-Sheuan Chang Apr 27, 2004 Outline Introduction to Real-time Operation System (RTOS) Introduction to C/OS-II Features Task & task scheduling Start C/OS-II

More information

RT extensions/applications of general-purpose OSs

RT extensions/applications of general-purpose OSs EECS 571 Principles of Real-Time Embedded Systems Lecture Note #15: RT extensions/applications of general-purpose OSs General-Purpose OSs for Real-Time Why? (as discussed before) App timing requirements

More information

Chapter 5: Process Synchronization. Operating System Concepts Essentials 2 nd Edition

Chapter 5: Process Synchronization. Operating System Concepts Essentials 2 nd Edition Chapter 5: Process Synchronization Silberschatz, Galvin and Gagne 2013 Chapter 5: Process Synchronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Mutex Locks

More information

EE 472 Embedded Systems. Name solutions. Instructions:

EE 472 Embedded Systems. Name solutions. Instructions: Name solutions Instructions: Write your name and student id on every page. You may not consult any other materials or anyone in the class. If you are unsure of what a question is asking, write your assumptions

More information

CS 153 Design of Operating Systems Winter 2016

CS 153 Design of Operating Systems Winter 2016 CS 153 Design of Operating Systems Winter 2016 Lecture 12: Scheduling & Deadlock Priority Scheduling Priority Scheduling Choose next job based on priority» Airline checkin for first class passengers Can

More information

CS4514 Real Time Scheduling

CS4514 Real Time Scheduling CS4514 Real Time Scheduling Jose M. Garrido Fall 2015 Department of Computer Science 1 Periodic Tasks Typical real-time application has many tasks that need to be executed periodically Reading sensor data

More information

Remaining Contemplation Questions

Remaining Contemplation Questions Process Synchronisation Remaining Contemplation Questions 1. The first known correct software solution to the critical-section problem for two processes was developed by Dekker. The two processes, P0 and

More information

More on Synchronization and Deadlock

More on Synchronization and Deadlock Examples of OS Kernel Synchronization More on Synchronization and Deadlock Two processes making system calls to read/write on the same file, leading to possible race condition on the file system data structures

More information

CHAPTER 6: PROCESS SYNCHRONIZATION

CHAPTER 6: PROCESS SYNCHRONIZATION CHAPTER 6: PROCESS SYNCHRONIZATION The slides do not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams. TOPICS Background

More information

CS 571 Operating Systems. Midterm Review. Angelos Stavrou, George Mason University

CS 571 Operating Systems. Midterm Review. Angelos Stavrou, George Mason University CS 571 Operating Systems Midterm Review Angelos Stavrou, George Mason University Class Midterm: Grading 2 Grading Midterm: 25% Theory Part 60% (1h 30m) Programming Part 40% (1h) Theory Part (Closed Books):

More information

Lecture 9: Midterm Review

Lecture 9: Midterm Review Project 1 Due at Midnight Lecture 9: Midterm Review CSE 120: Principles of Operating Systems Alex C. Snoeren Midterm Everything we ve covered is fair game Readings, lectures, homework, and Nachos Yes,

More information

Process & Thread Management II. Queues. Sleep() and Sleep Queues CIS 657

Process & Thread Management II. Queues. Sleep() and Sleep Queues CIS 657 Process & Thread Management II CIS 657 Queues Run queues: hold threads ready to execute Not a single ready queue; 64 queues All threads in same queue are treated as same priority Sleep queues: hold threads

More information

Process & Thread Management II CIS 657

Process & Thread Management II CIS 657 Process & Thread Management II CIS 657 Queues Run queues: hold threads ready to execute Not a single ready queue; 64 queues All threads in same queue are treated as same priority Sleep queues: hold threads

More information

Analyzing Real-Time Systems

Analyzing Real-Time Systems Analyzing Real-Time Systems Reference: Burns and Wellings, Real-Time Systems and Programming Languages 17-654/17-754: Analysis of Software Artifacts Jonathan Aldrich Real-Time Systems Definition Any system

More information

Embedded Software Programming

Embedded Software Programming Embedded Software Programming Computer Science & Engineering Department Arizona State University Tempe, AZ 85287 Dr. Yann-Hang Lee yhlee@asu.edu (480) 727-7507 Event and Time-Driven Threads taskspawn (name,

More information

Introduction to Embedded Systems

Introduction to Embedded Systems Introduction to Embedded Systems Edward A. Lee & Sanjit Seshia UC Berkeley EECS Spring 008 Copyright 008, Edward A. Lee & Sanjit Seshia, All rights reserved Lecture 0: Scheduling Anomalies Source This

More information

IT 540 Operating Systems ECE519 Advanced Operating Systems

IT 540 Operating Systems ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (5 th Week) (Advanced) Operating Systems 5. Concurrency: Mutual Exclusion and Synchronization 5. Outline Principles

More information

Principles of Operating Systems

Principles of Operating Systems Principles of Operating Systems Lecture 16-17 - Deadlocks Ardalan Amiri Sani (ardalan@uci.edu) [lecture slides contains some content adapted from previous slides by Prof. Nalini Venkatasubramanian, and

More information

University of Washington EE 472: Microcomputer Systems Exam Autumn 2015

University of Washington EE 472: Microcomputer Systems Exam Autumn 2015 University of Washington EE 472: Microcomputer Systems Exam Autumn 2015 November 26, 2015 Name: Student ID: Exam Information: The test is closed book, and no calculators/devices are allowed. There are

More information

The control of I/O devices is a major concern for OS designers

The control of I/O devices is a major concern for OS designers Lecture Overview I/O devices I/O hardware Interrupts Direct memory access Device dimensions Device drivers Kernel I/O subsystem Operating Systems - June 26, 2001 I/O Device Issues The control of I/O devices

More information

Chapter 5: Process Synchronization. Operating System Concepts 9 th Edition

Chapter 5: Process Synchronization. Operating System Concepts 9 th Edition Chapter 5: Process Synchronization Silberschatz, Galvin and Gagne 2013 Chapter 5: Process Synchronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Mutex Locks

More information

ECE519 Advanced Operating Systems

ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (10 th Week) (Advanced) Operating Systems 10. Multiprocessor, Multicore and Real-Time Scheduling 10. Outline Multiprocessor

More information

Operating Systems. Lecture 4 - Concurrency and Synchronization. Master of Computer Science PUF - Hồ Chí Minh 2016/2017

Operating Systems. Lecture 4 - Concurrency and Synchronization. Master of Computer Science PUF - Hồ Chí Minh 2016/2017 Operating Systems Lecture 4 - Concurrency and Synchronization Adrien Krähenbühl Master of Computer Science PUF - Hồ Chí Minh 2016/2017 Mutual exclusion Hardware solutions Semaphores IPC: Message passing

More information

Chapter 5: Process Synchronization

Chapter 5: Process Synchronization Chapter 5: Process Synchronization Silberschatz, Galvin and Gagne 2013 Operating System Concepts 9th Edition Chapter 5: Process Synchronization Background The Critical-Section Problem Peterson s Solution

More information

The Deadline Floor Protocol and Ada

The Deadline Floor Protocol and Ada The Deadline Floor Protocol and Ada Alan Burns and Andy Wellings University of York, UK. emails: alan.burns,andy.wellings@york.ac.uk Abstract This short paper summarises the current status of the proposal

More information

Chapter 5: Process Synchronization. Operating System Concepts 9 th Edition

Chapter 5: Process Synchronization. Operating System Concepts 9 th Edition Chapter 5: Process Synchronization Silberschatz, Galvin and Gagne 2013 Chapter 5: Process Synchronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Mutex Locks

More information