Microcontroller VU

Size: px
Start display at page:

Download "Microcontroller VU"

Transcription

1 Microcontroller VU Martin Perner SS 2017 Featuring Today: TinyOS Part 2 Weekly Training Objective Already done Input capture SPI Watchdog This week UART to GLCD Keypad Debounced Buttons TinyOS Recap Martin Perner TinyOS Part 2 May 22, TinyOS is a small operating system that is designed to run on low-power wireless sensor nodes, and networked embedded systems. provides a set of important services and abstractions. defines a concurrent execution model. is written in nesc, which is a C dialect. can be seen as a mixture of OOP and hardware wiring. Martin Perner TinyOS Part 2 May 22,

2 TinyOS first steps Flash an example application in apps/blink/ execute $ make bigavr with connected board execute $ make bigavr install A binary is generated and downloaded. Hint $ make bigavr install,id Sets TOS NODE ID to the value of id. This can be used, e.g., for defining the IP address of the node, or allow for different functionality (master/slave). Interfaces Martin Perner TinyOS Part 2 May 22, Enabling reusability Multiple interfaces can be used/provided. Interfaces are bidirectional. command, implemented by provider of the interface, called by user. event, implemented by user of the interface, signaled by provider. Bidirectionality is the basis for split-phase. Martin Perner TinyOS Part 2 May 22, Example Interface A generic timer interface Timer.nc i n t e r f a c e Timer<p r e c i s i o n t a g > command v o i d s t a r t P e r i o d i c ( u i n t 3 2 t dt ) ; command v o i d s t a r t O n e S h o t ( u i n t 3 2 t dt ) ; command v o i d stop ( ) ; e v e n t v o i d f i r e d ( ) ; Interface, and thus timer-usage, independent of microcontroller used. Martin Perner TinyOS Part 2 May 22,

3 Configurations Wiring TinyOS only allows to wire interfaces. This wiring is done in configurations. Connecting interfaces of components via -> resp. <- The arrow goes from user to provider! Connecting an interface of the configuration to an interface of a component is done with = Martin Perner TinyOS Part 2 May 22, Example Configuration Boot Configuration Boot DemoP c o n f i g u r a t i o n DemoC u s e s i n t e r f a c e Boot ; p r o v i d e s i n t e r f a c e MoreMagic ; i m p l e m e n t a t i o n components DemoP, MakeMagicC ; Boot = DemoP. Boot ; MoreMagic = MakeMagicC. MoreMagic ; MakeMagicC. Magic > DemoP. Magic ; Boot DemoP DemoC MakeMagicC MoreMagic Magic MoreMagic MakeMagicC Magic MoreMagic Martin Perner TinyOS Part 2 May 22, Example Module Modules Where code is placed module DemoP u s e s i n t e r f a c e Boot ; p r o v i d e s i n t e r f a c e Magic ; i m p l e m e n t a t i o n e v e n t v o i d Boot. booted ( ) command i n t Magic. g e t ( ) Boot DemoP Magic Martin Perner TinyOS Part 2 May 22,

4 Function Examples Required by Interface Command function: ( a s y n c ) command u i n t 8 t f ( u i n t 8 t x ) ; y = c a l l f ( x ) ; Event function: ( a s y n c ) e v e n t v o i d am ready ( u i n t 8 t x ) ; s i g n a l am ready ( x ) ; To be used inside a module Task: t a s k v o i d f ( ) ; p o s t f ( ) ; Plain function: u i n t 8 t f ( u i n t 8 t x ) ; y = f ( x ) ; Split-Phase Martin Perner TinyOS Part 2 May 22, Classic Approach call f(x) return; y = f(x) f(x) f(x) access some hardware, and has to wait for a signal by the hardware. After calling f(x) the exeuction blocks until completion (busy waiting ) Split-Phase Martin Perner TinyOS Part 2 May 22, The Split-Phase Approach call f(x) return signals f done(y) start f(x) y = f(x) is done After calling f(x), the execution is started in the background. The caller receives a callback (event) upon completion of f(x). Martin Perner TinyOS Part 2 May 22,

5 Deferred Task Execution Function call call f(x) f(x) cont. f(x) signal/call g(z) g(z) Assume that the return value and the side-effects of g( ) are not required by f( ). Why should we wait? etc. Martin Perner TinyOS Part 2 May 22, Deferred Task Execution Post a Task call f(x) f(x) post g() g() Task have no parameters. Parameter passing needs to be done with state-variables in the module. A task can only be posted once onto the tasklist. Booting Martin Perner TinyOS Part 2 May 22, How is TinyOS booted? We have seen the interface Boot of MainC being used for initialization. It provides an event booted, which is called after start-up of the system. Martin Perner TinyOS Part 2 May 22,

6 Booting tos/system/mainc.nc #i n c l u d e hardware. h c o n f i g u r a t i o n MainC p r o v i d e s i n t e r f a c e Boot ; u s e s i n t e r f a c e I n i t as S o f t w a r e I n i t ; i m p l e m e n t a t i o n components PlatformC, RealMainP, TinySchedulerC ; RealMainP. S c h e d u l e r > T in y Sc h ed u le rc ; RealMainP. P l a t f o r m I n i t > PlatformC ; // Export t h e S o f t w a r e I n i t and Booted f o r a p p l i c a t i o n s S o f t w a r e I n i t = RealMainP. S o f t w a r e I n i t ; Boot = RealMainP ; Booting Martin Perner TinyOS Part 2 May 22, tos/system/realmainp.nc module () provides interface Boot ; uses interface Scheduler ; uses interface Init as PlatformInit ; uses interface Init as SoftwareInit ; implementation int main () atomic platform_bootstrap (); call Scheduler. init (); call PlatformInit. init (); while ( call Scheduler. runnexttask ()); call SoftwareInit. init (); while ( call Scheduler. runnexttask ()); nesc_enable_interrupt (); signal Boot. booted (); call Scheduler. taskloop (); return -1; default command error_t PlatformInit. init () return SUCCESS ; default command error_t SoftwareInit. init () return SUCCESS ; default event void Boot. booted () Martin Perner TinyOS Part 2 May 22, How many instances of a Component are there? Do we care? If we need some boot-up initialization, we use MainC and the Boot interface Do we get a new component every time we use it? No, components are singletons (there is only one) What can we do if we want two instances of a stateful component? (e.g., Queue) Generic Components Add generic in front of signature of configuration/module Instantiate with new keyword We can pass parameters, and even types, at instantiation. Martin Perner TinyOS Part 2 May 22,

7 Generic Components Examples QueueC.nc generic module QueueC ( t y p e d e f queue t, u i n t 8 t queuesize ) p r o v i d e s i n t e r f a c e Queue<queue t >; SomeThing g e n e r i c c o n f i g u r a t i o n SomeThing ( ) i m p l e m e n t a t i o n components new QueueC ( uint8 t, 5) as Queue ; Martin Perner TinyOS Part 2 May 22, Generic Component Limitation Contrary to, e.g., C++, the type checking happens on declaration WeirdC At this point, the used type is unknown Does x + 1 compile for very type used for x? The can be applied to the declaration for some type assumptions. generic module WeirdC ( t y p e d e f f o o integer ( ) ) Martin Perner TinyOS Part 2 May 22, Abstract Data Type (ADT) Does a type argument to a component helps? How can we use it in an interface? Use a typed interface! QueueC.nc i n t e r f a c e Queue<t> command t head ( ) ; Martin Perner TinyOS Part 2 May 22,

8 Recap Fan-In and Fan-Out What happens if an interface is connected to multiple component If there are multiple modules connected to the same interface, then All connected providers of a command receive the call. All connected users of an event are signaled. The order is not defined! Generally, there is no possibility to determine whose signal caused an event. The last item can be circumvented by using parameterized interfaces. Martin Perner TinyOS Part 2 May 22, Parameterized Interfaces Adding caller/callee information to an interface Dirty hack: Additional parameter in command/event plus generic component to pass the parameter. Better: use parameterized interfaces Adds implicit parameter to function call. Interface definition does not need to be changed use/provide clauses are extended. Parameters are assigned in configuration. Martin Perner TinyOS Part 2 May 22, Parameterized Interface Default Cases! Implementationwise, parameterized interfaces are more or less a switch. There is no compile-time check if every called parameter is wired (could be data dependent!) The caller/callee must provide default implementations for parameterized calls. Martin Perner TinyOS Part 2 May 22,

9 Example Parameterized Interface 1 Demo Application Count towards a generic value Increment after a timer has fired Output to a port interface Martin Perner TinyOS Part 2 May 22, Example Parameterized Interface 1 CounterC #i n c l u d e Timer. h g e n e r i c module CounterC ( u i n t 8 t top ) u s e s i n t e r f a c e Boot ; u s e s i n t e r f a c e Timer<T M i l l i> as Timer ; u s e s i n t e r f a c e Port as C o u n t e r P o r t ; i m p l e m e n t a t i o n u i n t 8 t c o u n t e r ; t a s k v o i d increment ( ) c o u n t e r ++; i f ( c o u n t e r > top ) c o u n t e r = 0 ; c a l l C o u n t e r P o r t. s e t ( c o u n t e r ) ; e v e n t v o i d Boot. booted ( ) c o u n t e r = 0 ; c a l l C o u n t e r P o r t. makeoutput ( ) ; c a l l Timer. s t a r t P e r i o d i c ( ) ; e v e n t v o i d Timer. f i r e d ( ) post increment ( ) ; Martin Perner TinyOS Part 2 May 22, Example Parameterized Interface 1 Port Port i n t e r f a c e Port command v o i d makeoutput ( ) ; command v o i d s e t ( u i n t 8 t ) ; Martin Perner TinyOS Part 2 May 22,

10 Example Parameterized Interface 1 CounterAppC CounterAppC c o n f i g u r a t i o n CounterAppC i m p l e m e n t a t i o n components MainC ; components new CounterC ( 6 ) as Counter ; components new RawPortC ( ( u i n t 8 t ) &PORTA, ( u i n t 8 t ) &DDRA) as PortA ; components new RawPortC ( ( u i n t 8 t ) &PORTB, ( u i n t 8 t ) &DDRB) as PortB ; components new T i m e r M i l l i C ( ) as Timer ; Counter. Boot > MainC. Boot ; Counter. Timer > Timer ; Counter. C o u n t e r P o r t > PortA. Port [ 3 ] ; Counter. C o u n t e r P o r t > PortB. Port [ 4 ] ; Martin Perner TinyOS Part 2 May 22, Example Parameterized Interface 1 RawPortC RawPortC g e n e r i c module RawPortC ( u i n t 8 t p o r t a d d r, u i n t 8 t d d r a d d r ) p r o v i d e s i n t e r f a c e Port [ u i n t 8 t i d ] ; i m p l e m e n t a t i o n #d e f i n e PORT ( TCAST( v o l a t i l e u i n t 8 t ONE, p o r t a d d r ) ) #d e f i n e DDR ( TCAST( v o l a t i l e u i n t 8 t ONE, d d r a d d r ) ) i n l i n e command v o i d Port. makeoutput [ u i n t 8 t i d ] ( ) DDR = 0 x f f ; i n l i n e command v o i d Port. s e t [ u i n t 8 t i d ] ( u i n t 8 t v a l u e ) i f ( i d!= v a l u e ) PORT = value ; e l s e PORT = 0 x f f ; Martin Perner TinyOS Part 2 May 22, Example Parameterized Interface 1 Discussion What have we achieved? Caller still unaware of the callees, as before Callees got a parameter passed. Not very impressive. Generic Components are better fitted for this scenario! Martin Perner TinyOS Part 2 May 22,

11 Example Parameterized Interface 2 Weirder Demo Application Count towards a generic value Set current value to one port, on overflow set all ports to 0xff selected.h #i f n d e f SELECTED H #d e f i n e SELECTED H #d e f i n e UNIQUE PORT unique port #e n d i f Martin Perner TinyOS Part 2 May 22, Example Parameterized Interface 2 SelectedAppC #i n c l u d e s e l e c t e d. h c o n f i g u r a t i o n SelectedAppC i m p l e m e n t a t i o n components MainC ; components new CounterC ( 6 ) as Counter ; components new RawPortC ( ( u i n t 8 t ) &PORTA, ( u i n t 8 t ) &DDRA) as PortA ; components new RawPortC ( ( u i n t 8 t ) &PORTB, ( u i n t 8 t ) &DDRB) as PortB ; components new T i m e r M i l l i C ( ) as Timer ; Counter. Boot > MainC. Boot ; Counter. Timer > Timer ; Counter. CounterPort [ unique (UNIQUE PORT ) ] > PortA. Port ; Counter. CounterPort [ unique (UNIQUE PORT ) ] > PortB. Port ; Martin Perner TinyOS Part 2 May 22, Example Parameterized Interface 2 CounterC #i n c l u d e Timer. h #i n c l u d e s e l e c t e d. h g e n e r i c module CounterC ( u i n t 8 t top ) u s e s i n t e r f a c e Boot ; u s e s i n t e r f a c e Timer<T M i l l i> as Timer ; u s e s i n t e r f a c e Port as C o u n t e r P o r t [ u i n t 8 t i d ] ; i m p l e m e n t a t i o n u i n t 8 t c o u n t e r, i =0; t a s k v o i d increment ( ) c o u n t e r ++; i f ( c o u n t e r > top ) f o r ( i =0; i < uniquecount (UNIQUE PORT ) ; i++) c a l l C o u n t e r P o r t. s e t [ i ] ( 0 x f f ) ; c o u n t e r = 0 ; c a l l C o u n t e r P o r t. s e t [ c o u n t e r ] ( c o u n t e r ) ; Martin Perner TinyOS Part 2 May 22,

12 Example Parameterized Interface 2 CounterC cont. e v e n t v o i d Boot. booted ( ) c o u n t e r = 0 ; f o r ( i =0; i < uniquecount (UNIQUE PORT ) ; i++) c a l l C o u n t e r P o r t. makeoutput [ i ] ( ) ; c a l l Timer. s t a r t P e r i o d i c ( ) ; e v e n t v o i d Timer. f i r e d ( ) post increment ( ) ; d e f a u l t command v o i d CounterPort. makeoutput [ u i n t 8 t id ] ( ) DDRF = 0xFF ; d e f a u l t command v o i d C o u n t e r P o r t. s e t [ u i n t 8 t i d ] ( u i n t 8 t v a l u e ) PINF = 0xFF ; Martin Perner TinyOS Part 2 May 22, Example Parameterized Interface 2 Discussion Interface Port and module RawPortC as before. What have we achieved? As the top-value of the counter is larger than 2, PORTF is toggled. Caller is aware of the callees. Caller needs to provide default implementation to prevent out-of-bound behavior. Callees unaware of the caller. Unique Martin Perner TinyOS Part 2 May 22, Why are we using unique? Numbers to parameterized interface need to be unique. Counting per hand is hard, ugly, and a path to hell If we need to pass the number of attached interfaces, we would need to pass a parameter to the component. Instead we can use uniquecount. There are cases we non-consecutive numbering for the parameterized interface is used, e.g., port numbers. Requirements Counting happens based on a unique string (use a define in a header!) unique returns a unique id. Numeric from 0 to n 1 uniquecount returns n Martin Perner TinyOS Part 2 May 22,

13 Parameterized Interface at caller and callee What needs to be changed? Add parameter to both sides in wiring. Add parameter to interface declaration. Add parameter at interface function declaration and usage. Note: if the same value, generated by unique, is used multiple times: use an enum! enum COUNTER PORT1 = unique (UNIQUE PORT) ; Counter. CounterPort [COUNTER PORT1 ] > PortA. Port [COUNTER PORT1 ] ; Martin Perner TinyOS Part 2 May 22, Execution Model The Execution Model of TinyOS TinyOS has two basic execution modes: synchronous asynchronous Martin Perner TinyOS Part 2 May 22, Execution Model Tasks in TinyOS Every synchronous execution in TinyOS is a task. As there is no preemptive scheduler (per-default), a task runs until it is finished. This is problematic for long running computations defer computation by posting another task. Can be interrupted by asynchronous event: interrupt. Interrupts Interrupts are handled in TinyOS as asynchronous executions. As usual, they can happen at any time, given interrupts are enabled. Do the usual synchronization problems also arise? Martin Perner TinyOS Part 2 May 22,

14 Execution Model Mixing Asynchronous/Synchronous Executions TinyOS has checks to prevent obvious mistakes, but the programmer still has to take care. Variables used in asynchronous context must be accessed in atomic sections. Functions that can be called from asynchronous contexts must be declared async. To get from asynchronous to synchronous execution a task has to be posted. Martin Perner TinyOS Part 2 May 22, Default Task Scheduling Policy Non-Preemptive FIFO Small, Easy, Fast Every task is posted into the task queue Queue is processed in FIFO ordering Every task can only be posted once Every task consumes only 1 byte in the task queue Limited to 255 tasks Task queue length is evaluated at compile time Every task runs until completion Dispatch long operations in multiple separate tasks What about context switches? Concurrency Martin Perner TinyOS Part 2 May 22, Execution model in nesc is run-to-completion tasks No preemption Atomic with respect to other tasks Not atomic with respect to interrupt handlers Code divided into two parts: Synchronous Code: functions, commands, events, tasks that are only reachable from tasks Asynchronous Code: used in interrupt handlers (must be marked async) Race conditions: No race conditions between tasks Avoid race conditions by protection through an atomic statement Calls to functions are only protected if every call is protected Compiler detects race conditions Martin Perner TinyOS Part 2 May 22,

15 Tasks in TinyOS 2.x How to use a task command v o i d t h i n g y ( ) post processtask ( ) ; t a s k v o i d processtask ( ) // do work i f ( moretoprocess ) post processtask ( ) ; The post will only fail iff the task is already posted in task queue and its execution has not started yet. Task Example Martin Perner TinyOS Part 2 May 22, Blink with Tasks module BlinkTaskC i m p l e m e n t a t i o n task v o i d t o g g l e ( ) c a l l Leds. l e d 0 T o g g l e ( ) ; e v e n t v o i d Boot. booted ( ) c a l l Timer0. s t a r t P e r i o d i c ( ) ; e v e n t v o i d Timer0. f i r e d ( ) p o s t t o g g l e ( ) ; Martin Perner TinyOS Part 2 May 22, Splitting Computation via Tasks Break-up long running computations for reduced latency Instead of task v o i d computetask () u i n t 3 2 t i ; f o r ( i =0; i <400001; i ++). Try task v o i d computetask () s t a t i c u i n t 3 2 t i ; u i n t 3 2 t s t a r t=i ; f o r ( ; i<s t a r t && i <400001; i ++) i f ( i >=400000) i =0; e l s e post computetask ( ) ; Martin Perner TinyOS Part 2 May 22,

16 What Really Happens With Tasks The Foundation in the Scheduler command v o i d S c h e d u l e r. i n i t ( ) atomic memset ( ( v o i d ) m next, NO TASK, s i z e o f ( m next ) ) ; m head = NO TASK ; m t a i l = NO TASK ; command v o i d S c h e d u l e r. taskloop ( ) f o r ( ; ; ) u i n t 8 t nexttask ; atomic w h i l e ( ( nexttask=poptask ( ) ) == NO TASK) c a l l McuSleep. s l e e p ( ) ; s i g n a l TaskBasic. runtask [ nexttask ] ( ) ; We see that every synchronous execution in TinyOS is based on a task. Martin Perner TinyOS Part 2 May 22, What Really Happens With Tasks Data-Structure usage a s y n c command e r r o r t TaskBasic. posttask [ u i n t 8 t i d ] ( ) atomic r e t u r n pushtask ( id )? SUCCESS : EBUSY ; b o o l pushtask ( u i n t 8 t i d ) i f (! i s W a i t i n g ( i d ) ) i f ( m head==no TASK) m head=id ; m t a i l=i d ; e l s e m next [ m t a i l ]= i d ; m t a i l=i d ; r e t u r n TRUE ; e l s e r e t u r n FALSE ; Threads Martin Perner TinyOS Part 2 May 22, Deprecated! As there was no one willing to maintain threads, they have been deprecated in the current TinyOS development version. Thread Based Priority Queues using Preemptive Jobs Bigger Not that easy Slow Platform independent part: Thread Queue Thread Thread context Platform dependent part: the real context switching Martin Perner TinyOS Part 2 May 22,

17 Benefits of TinyOS Benefits of TinyOS over plain C Predefined modules (hardware drivers) Inherent modularization Generic modules Tasks Martin Perner TinyOS Part 2 May 22, Drawbacks of TinyOS TinyOS Memory Requirements ATmega1280 static memory: Flash: 128 kb EEPROM: 4 kb RAM: 8 kb Usage of the Blink demo : 1816 B Flash, relates to 1.8 kb or 1.4% (.text segment size) 51 B RAM, relates to 0.05 kb or 0.6% (.bss segment size) This is bad for a simple blinking application, but good for an operating system. Martin Perner TinyOS Part 2 May 22, Command/Event and the Stack Be aware of recursive behavior! A module that wants to quickly sample multiple values from a sensor: e v e n t v o i d Read. readdone ( e r r o r t e r r, u i n t 1 6 t v a l ) b u f f e r [ i n d e x ] = v a l ; i n d e x ++; i f ( index < BUFFER SIZE ) c a l l Read. r e a d ( ) ; The sensor module, for some reason, caches the read values! command e r r o r t Read. r e a d ( ) s i g n a l Read. readdone (SUCCESS, s e n s o r V a l ) ; This results in rapid growth of stack! Therefore, it is dangerous to signal events from commands! Post a task. Martin Perner TinyOS Part 2 May 22,

18 Important Stuff Consider the programming hints! Use provided modules/configurations! (Crc, Queue, Pool(!), ) Enjoy the benefits of the compostability: develop and test small units! Martin Perner TinyOS Part 2 May 22, Questions? Martin Perner TinyOS Part 2 May 22,

Che-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University

Che-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University Che-Wei Chang chewei@mail.cgu.edu.tw Department of Computer Science and Information Engineering, Chang Gung University } 2017/11/15 Midterm } 2017/11/22 Final Project Announcement 2 1. Introduction 2.

More information

Distributed Systems Part II Solution to Exercise Sheet 10

Distributed Systems Part II Solution to Exercise Sheet 10 Distributed Computing HS 2012 Prof. R. Wattenhofer / C. Decker Distributed Systems Part II Solution to Exercise Sheet 10 1 Spin Locks A read-write lock is a lock that allows either multiple processes to

More information

CPU scheduling. CPU Scheduling

CPU scheduling. CPU Scheduling 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

CSE 380 Computer Operating Systems

CSE 380 Computer Operating Systems CSE 380 Computer Operating Systems Instructor: Insup Lee & Dianna Xu University of Pennsylvania, Fall 2003 Lecture Note 3: CPU Scheduling 1 CPU SCHEDULING q How can OS schedule the allocation of CPU cycles

More information

LSN 15 Processor Scheduling

LSN 15 Processor Scheduling LSN 15 Processor Scheduling ECT362 Operating Systems Department of Engineering Technology LSN 15 Processor Scheduling LSN 15 FCFS/FIFO Scheduling Each process joins the Ready queue When the current process

More information

Scheduling I. Today Introduction to scheduling Classical algorithms. Next Time Advanced topics on scheduling

Scheduling I. Today Introduction to scheduling Classical algorithms. Next Time Advanced topics on scheduling Scheduling I Today Introduction to scheduling Classical algorithms Next Time Advanced topics on scheduling Scheduling out there You are the manager of a supermarket (ok, things don t always turn out the

More information

Administrivia. Course Objectives. Overview. Lecture Notes Week markem/cs333/ 2. Staff. 3. Prerequisites. 4. Grading. 1. Theory and application

Administrivia. Course Objectives. Overview. Lecture Notes Week markem/cs333/ 2. Staff. 3. Prerequisites. 4. Grading. 1. Theory and application Administrivia 1. markem/cs333/ 2. Staff 3. Prerequisites 4. Grading Course Objectives 1. Theory and application 2. Benefits 3. Labs TAs Overview 1. What is a computer system? CPU PC ALU System bus Memory

More information

Scheduling I. Today. Next Time. ! Introduction to scheduling! Classical algorithms. ! Advanced topics on scheduling

Scheduling I. Today. Next Time. ! Introduction to scheduling! Classical algorithms. ! Advanced topics on scheduling Scheduling I Today! Introduction to scheduling! Classical algorithms Next Time! Advanced topics on scheduling Scheduling out there! You are the manager of a supermarket (ok, things don t always turn out

More information

A portable implementation of the FAT16 filesystem to TinyOS-2.x: non-volatile mass storage for low power sensor network nodes

A portable implementation of the FAT16 filesystem to TinyOS-2.x: non-volatile mass storage for low power sensor network nodes A portable implementation of the FAT16 filesystem to TinyOS-2.x: non-volatile mass storage for low power sensor network nodes anonymous Abstract As part of a strategy aimed at reducing the overall power

More information

Module 5: CPU Scheduling

Module 5: CPU Scheduling Module 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation 5.1 Basic Concepts Maximum CPU utilization obtained

More information

Chapter 6: CPU Scheduling

Chapter 6: CPU Scheduling 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

CIS 4930/6930: Principles of Cyber-Physical Systems

CIS 4930/6930: Principles of Cyber-Physical Systems CIS 4930/6930: Principles of Cyber-Physical Systems Chapter 11 Scheduling Hao Zheng Department of Computer Science and Engineering University of South Florida H. Zheng (CSE USF) CIS 4930/6930: Principles

More information

Introduction to functions

Introduction to functions Introduction to functions Comp Sci 1570 Introduction to C++ Outline 1 2 Functions A function is a reusable sequence of s designed to do a particular job. In C++, a function is a group of s that is given

More information

CPU Scheduling. Heechul Yun

CPU Scheduling. Heechul Yun CPU Scheduling Heechul Yun 1 Recap Four deadlock conditions: Mutual exclusion No preemption Hold and wait Circular wait Detection Avoidance Banker s algorithm 2 Recap: Banker s Algorithm 1. Initialize

More information

Clock-driven scheduling

Clock-driven scheduling Clock-driven scheduling Also known as static or off-line scheduling Michal Sojka Czech Technical University in Prague, Faculty of Electrical Engineering, Department of Control Engineering November 8, 2017

More information

Design Patterns and Refactoring

Design Patterns and Refactoring Singleton Oliver Haase HTWG Konstanz 1 / 19 Description I Classification: object based creational pattern Puropse: ensure that a class can be instantiated exactly once provide global access point to single

More information

Comp 204: Computer Systems and Their Implementation. Lecture 11: Scheduling cont d

Comp 204: Computer Systems and Their Implementation. Lecture 11: Scheduling cont d Comp 204: Computer Systems and Their Implementation Lecture 11: Scheduling cont d 1 Today Scheduling algorithms continued Shortest remaining time first (SRTF) Priority scheduling Round robin (RR) Multilevel

More information

INF Models of concurrency

INF Models of concurrency Monitors INF4140 - Models of concurrency Monitors, lecture 4 Fall 2017 27. September 2017 2 / 49 Overview Concurrent execution of different processes Communication by shared variables Processes may interfere

More information

Real-Time Scheduling and Resource Management

Real-Time Scheduling and Resource Management ARTIST2 Summer School 2008 in Europe Autrans (near Grenoble), France September 8-12, 2008 Real-Time Scheduling and Resource Management Lecturer: Giorgio Buttazzo Full Professor Scuola Superiore Sant Anna

More information

Outline F eria AADL behavior 1/ 78

Outline F eria AADL behavior 1/ 78 Outline AADL behavior Annex Jean-Paul Bodeveix 2 Pierre Dissaux 3 Mamoun Filali 2 Pierre Gaufillet 1 François Vernadat 2 1 AIRBUS-FRANCE 2 FéRIA 3 ELLIDIS SAE AS2C Detroit Michigan April 2006 FéRIA AADL

More information

Operating Systems. VII. Synchronization

Operating Systems. VII. Synchronization Operating Systems VII. Synchronization Ludovic Apvrille ludovic.apvrille@telecom-paristech.fr Eurecom, office 470 http://soc.eurecom.fr/os/ @OS Eurecom Outline Synchronization issues 2/22 Fall 2017 Institut

More information

Real-time operating systems course. 6 Definitions Non real-time scheduling algorithms Real-time scheduling algorithm

Real-time operating systems course. 6 Definitions Non real-time scheduling algorithms Real-time scheduling algorithm Real-time operating systems course 6 Definitions Non real-time scheduling algorithms Real-time scheduling algorithm Definitions Scheduling Scheduling is the activity of selecting which process/thread should

More information

CHAPTER 5 - PROCESS SCHEDULING

CHAPTER 5 - PROCESS SCHEDULING CHAPTER 5 - PROCESS SCHEDULING OBJECTIVES To introduce CPU scheduling, which is the basis for multiprogrammed operating systems To describe various CPU-scheduling algorithms To discuss evaluation criteria

More information

UC Santa Barbara. Operating Systems. Christopher Kruegel Department of Computer Science UC Santa Barbara

UC Santa Barbara. Operating Systems. Christopher Kruegel Department of Computer Science UC Santa Barbara Operating Systems Christopher Kruegel Department of Computer Science http://www.cs.ucsb.edu/~chris/ Many processes to execute, but one CPU OS time-multiplexes the CPU by operating context switching Between

More information

Simulation of Process Scheduling Algorithms

Simulation of Process Scheduling Algorithms Simulation of Process Scheduling Algorithms Project Report Instructor: Dr. Raimund Ege Submitted by: Sonal Sood Pramod Barthwal Index 1. Introduction 2. Proposal 3. Background 3.1 What is a Process 4.

More information

Lab Course: distributed data analytics

Lab Course: distributed data analytics Lab Course: distributed data analytics 01. Threading and Parallelism Nghia Duong-Trung, Mohsan Jameel Information Systems and Machine Learning Lab (ISMLL) University of Hildesheim, Germany International

More information

Task Models and Scheduling

Task Models and Scheduling Task Models and Scheduling Jan Reineke Saarland University June 27 th, 2013 With thanks to Jian-Jia Chen at KIT! Jan Reineke Task Models and Scheduling June 27 th, 2013 1 / 36 Task Models and Scheduling

More information

FPGA Resource Utilization Estimates for NI PXI-7854R. LabVIEW FPGA Version: 8.6 NI-RIO Version: 3.0 Date: 8/5/2008

FPGA Resource Utilization Estimates for NI PXI-7854R. LabVIEW FPGA Version: 8.6 NI-RIO Version: 3.0 Date: 8/5/2008 FPGA Resource Utilization Estimates for NI PXI-7854R LabVIEW FPGA Version: 8.6 NI-RIO Version: 3.0 Date: 8/5/2008 Note: The numbers presented in this document are estimates. Actual resource usage for your

More information

Non-Preemptive and Limited Preemptive Scheduling. LS 12, TU Dortmund

Non-Preemptive and Limited Preemptive Scheduling. LS 12, TU Dortmund Non-Preemptive and Limited Preemptive Scheduling LS 12, TU Dortmund 09 May 2017 (LS 12, TU Dortmund) 1 / 31 Outline Non-Preemptive Scheduling A General View Exact Schedulability Test Pessimistic Schedulability

More information

Clojure Concurrency Constructs, Part Two. CSCI 5828: Foundations of Software Engineering Lecture 13 10/07/2014

Clojure Concurrency Constructs, Part Two. CSCI 5828: Foundations of Software Engineering Lecture 13 10/07/2014 Clojure Concurrency Constructs, Part Two CSCI 5828: Foundations of Software Engineering Lecture 13 10/07/2014 1 Goals Cover the material presented in Chapter 4, of our concurrency textbook In particular,

More information

FPGA Resource Utilization Estimates for NI crio LabVIEW FPGA Version: 8.6 NI-RIO Version: 3.0 Date: 8/5/2008

FPGA Resource Utilization Estimates for NI crio LabVIEW FPGA Version: 8.6 NI-RIO Version: 3.0 Date: 8/5/2008 FPGA Resource Utilization Estimates for NI crio-9104 LabVIEW FPGA Version: 8.6 NI-RIO Version: 3.0 Date: 8/5/2008 Note: The numbers presented in this document are estimates. Actual resource usage for your

More information

Scheduling Periodic Real-Time Tasks on Uniprocessor Systems. LS 12, TU Dortmund

Scheduling Periodic Real-Time Tasks on Uniprocessor Systems. LS 12, TU Dortmund Scheduling Periodic Real-Time Tasks on Uniprocessor Systems Prof. Dr. Jian-Jia Chen LS 12, TU Dortmund 08, Dec., 2015 Prof. Dr. Jian-Jia Chen (LS 12, TU Dortmund) 1 / 38 Periodic Control System Pseudo-code

More information

TDDI04, K. Arvidsson, IDA, Linköpings universitet CPU Scheduling. Overview: CPU Scheduling. [SGG7] Chapter 5. Basic Concepts.

TDDI04, K. Arvidsson, IDA, Linköpings universitet CPU Scheduling. Overview: CPU Scheduling. [SGG7] Chapter 5. Basic Concepts. TDDI4 Concurrent Programming, Operating Systems, and Real-time Operating Systems CPU Scheduling Overview: CPU Scheduling CPU bursts and I/O bursts Scheduling Criteria Scheduling Algorithms Multiprocessor

More information

Last class: Today: Threads. CPU Scheduling

Last class: Today: Threads. CPU Scheduling 1 Last class: Threads Today: CPU Scheduling 2 Resource Allocation In a multiprogramming system, we need to share resources among the running processes What are the types of OS resources? Question: Which

More information

Process Scheduling for RTS. RTS Scheduling Approach. Cyclic Executive Approach

Process Scheduling for RTS. RTS Scheduling Approach. Cyclic Executive Approach Process Scheduling for RTS Dr. Hugh Melvin, Dept. of IT, NUI,G RTS Scheduling Approach RTS typically control multiple parameters concurrently Eg. Flight Control System Speed, altitude, inclination etc..

More information

EDF Feasibility and Hardware Accelerators

EDF Feasibility and Hardware Accelerators EDF Feasibility and Hardware Accelerators Andrew Morton University of Waterloo, Waterloo, Canada, arrmorton@uwaterloo.ca Wayne M. Loucks University of Waterloo, Waterloo, Canada, wmloucks@pads.uwaterloo.ca

More information

Lecture 6. Real-Time Systems. Dynamic Priority Scheduling

Lecture 6. Real-Time Systems. Dynamic Priority Scheduling Real-Time Systems Lecture 6 Dynamic Priority Scheduling Online scheduling with dynamic priorities: Earliest Deadline First scheduling CPU utilization bound Optimality and comparison with RM: Schedulability

More information

Lecture 13. Real-Time Scheduling. Daniel Kästner AbsInt GmbH 2013

Lecture 13. Real-Time Scheduling. Daniel Kästner AbsInt GmbH 2013 Lecture 3 Real-Time Scheduling Daniel Kästner AbsInt GmbH 203 Model-based Software Development 2 SCADE Suite Application Model in SCADE (data flow + SSM) System Model (tasks, interrupts, buses, ) SymTA/S

More information

Safety and Liveness. Thread Synchronization: Too Much Milk. Critical Sections. A Really Cool Theorem

Safety and Liveness. Thread Synchronization: Too Much Milk. Critical Sections. A Really Cool Theorem Safety and Liveness Properties defined over an execution of a program Thread Synchronization: Too Much Milk Safety: nothing bad happens holds in every finite execution prefix Windows never crashes No patient

More information

CISC 4090: Theory of Computation Chapter 1 Regular Languages. Section 1.1: Finite Automata. What is a computer? Finite automata

CISC 4090: Theory of Computation Chapter 1 Regular Languages. Section 1.1: Finite Automata. What is a computer? Finite automata CISC 4090: Theory of Computation Chapter Regular Languages Xiaolan Zhang, adapted from slides by Prof. Werschulz Section.: Finite Automata Fordham University Department of Computer and Information Sciences

More information

Object Modeling Approach! Object Modeling Approach!

Object Modeling Approach! Object Modeling Approach! Object Modeling Approach! 1 Object Modeling Approach! Start with a problem statement! High-level requirements! Define object model! Identify objects and classes! Prepare data dictionary! Identify associations

More information

Basic Java OOP 10/12/2015. Department of Computer Science & Information Engineering. National Taiwan University

Basic Java OOP 10/12/2015. Department of Computer Science & Information Engineering. National Taiwan University Basic Java OOP 10/12/2015 Hsuan-Tien Lin ( 林軒田 ) htlin@csie.ntu.edu.tw Department of Computer Science & Information Engineering National Taiwan University ( 國立台灣大學資訊工程系 ) Hsuan-Tien Lin (NTU CSIE) Basic

More information

ITI Introduction to Computing II

ITI Introduction to Computing II (with contributions from R. Holte) School of Electrical Engineering and Computer Science University of Ottawa Version of January 11, 2015 Please don t print these lecture notes unless you really need to!

More information

TDDB68 Concurrent programming and operating systems. Lecture: CPU Scheduling II

TDDB68 Concurrent programming and operating systems. Lecture: CPU Scheduling II TDDB68 Concurrent programming and operating systems Lecture: CPU Scheduling II Mikael Asplund, Senior Lecturer Real-time Systems Laboratory Department of Computer and Information Science Copyright Notice:

More information

CPU Scheduling. CPU Scheduler

CPU Scheduling. CPU Scheduler CPU Scheduling These slides are created by Dr. Huang of George Mason University. Students registered in Dr. Huang s courses at GMU can make a single machine readable copy and print a single copy of each

More information

Aperiodic Task Scheduling

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

More information

VELA. Getting started with the VELA Versatile Laboratory Aid. Paul Vernon

VELA. Getting started with the VELA Versatile Laboratory Aid. Paul Vernon VELA Getting started with the VELA Versatile Laboratory Aid Paul Vernon Contents Preface... 3 Setting up and using VELA... 4 Introduction... 4 Setting VELA up... 5 Programming VELA... 6 Uses of the Programs...

More information

NEC PerforCache. Influence on M-Series Disk Array Behavior and Performance. Version 1.0

NEC PerforCache. Influence on M-Series Disk Array Behavior and Performance. Version 1.0 NEC PerforCache Influence on M-Series Disk Array Behavior and Performance. Version 1.0 Preface This document describes L2 (Level 2) Cache Technology which is a feature of NEC M-Series Disk Array implemented

More information

More About Methods. Hsuan-Tien Lin. Deptartment of CSIE, NTU. OOP Class, March 8-9, 2010

More About Methods. Hsuan-Tien Lin. Deptartment of CSIE, NTU. OOP Class, March 8-9, 2010 More About Methods Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 8-9, 2010 H.-T. Lin (NTU CSIE) More About Methods OOP 03/08-09/2010 0 / 24 Methods: the Basic Method (1/2, Callee s View) 1 p

More information

DETERMINING THE VARIABLE QUANTUM TIME (VQT) IN ROUND ROBIN AND IT S IMPORTANCE OVER AVERAGE QUANTUM TIME METHOD

DETERMINING THE VARIABLE QUANTUM TIME (VQT) IN ROUND ROBIN AND IT S IMPORTANCE OVER AVERAGE QUANTUM TIME METHOD D DETERMINING THE VARIABLE QUANTUM TIME (VQT) IN ROUND ROBIN AND IT S IMPORTANCE OVER AVERAGE QUANTUM TIME METHOD Yashasvini Sharma 1 Abstract The process scheduling, is one of the most important tasks

More information

2/5/07 CSE 30341: Operating Systems Principles

2/5/07 CSE 30341: Operating Systems Principles page 1 Shortest-Job-First (SJR) Scheduling Associate with each process the length of its next CPU burst. Use these lengths to schedule the process with the shortest time Two schemes: nonpreemptive once

More information

Distributed Systems Principles and Paradigms. Chapter 06: Synchronization

Distributed Systems Principles and Paradigms. Chapter 06: Synchronization Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science Room R4.20, steen@cs.vu.nl Chapter 06: Synchronization Version: November 16, 2009 2 / 39 Contents Chapter

More information

Unit: Blocking Synchronization Clocks, v0.3 Vijay Saraswat

Unit: Blocking Synchronization Clocks, v0.3 Vijay Saraswat Unit: Blocking Synchronization Clocks, v0.3 Vijay Saraswat This lecture discusses X10 clocks. For reference material please look at the chapter on Clocks in []. 1 Motivation The central idea underlying

More information

CEE 618 Scientific Parallel Computing (Lecture 7): OpenMP (con td) and Matrix Multiplication

CEE 618 Scientific Parallel Computing (Lecture 7): OpenMP (con td) and Matrix Multiplication 1 / 26 CEE 618 Scientific Parallel Computing (Lecture 7): OpenMP (con td) and Matrix Multiplication Albert S. Kim Department of Civil and Environmental Engineering University of Hawai i at Manoa 2540 Dole

More information

Hands-on Lab. Damped Compound Pendulum System ID (Experimental and Simulation) L Bar length m d Pivot to CG distance m m Mass of pendulum kg

Hands-on Lab. Damped Compound Pendulum System ID (Experimental and Simulation) L Bar length m d Pivot to CG distance m m Mass of pendulum kg Hands-on Lab Damped Compound Pendulum System ID (Experimental and Simulation) Preamble: c d dt d L Bar length m d Pivot to CG distance m m Mass of pendulum kg L L m g L Sketched above is a damped compound

More information

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Chapter 6 (version April 7, 28) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.2. Tel: (2)

More information

More on Methods and Encapsulation

More on Methods and Encapsulation More on Methods and Encapsulation Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 31, 2009 H.-T. Lin (NTU CSIE) More on Methods and Encapsulation OOP(even) 03/31/2009 0 / 38 Local Variables Local

More information

CS 550 Operating Systems Spring CPU scheduling I

CS 550 Operating Systems Spring CPU scheduling I 1 CS 550 Operating Systems Spring 2018 CPU scheduling I Process Lifecycle Ready Process is ready to execute, but not yet executing Its waiting in the scheduling queue for the CPU scheduler to pick it up.

More information

Lists, Stacks, and Queues (plus Priority Queues)

Lists, Stacks, and Queues (plus Priority Queues) Lists, Stacks, and Queues (plus Priority Queues) The structures lists, stacks, and queues are composed of similar elements with different operations. Likewise, with mathematics: (Z, +, 0) vs. (Z,, 1) List

More information

IO-Link Data Reference Guide: K50 Pro Touch Button with IO-Link

IO-Link Data Reference Guide: K50 Pro Touch Button with IO-Link IO-Link Data Reference Guide: K50 Pro Touch Button with IO-Link IO-Link Data Map This document refers to the following IODD file: Banner_Engineering-K50PTKQ-20180829-IODD1.1.xml. The IODD file and support

More information

Operating systems and concurrency B03

Operating systems and concurrency B03 Operating systems and concurrency B03 David Kendall Northumbria University David Kendall (Northumbria University) Operating systems and concurrency B03 1 / 13 Introduction A key function of OS is interrupt

More information

Lecture 4: Process Management

Lecture 4: Process Management Lecture 4: Process Management Process Revisited 1. What do we know so far about Linux on X-86? X-86 architecture supports both segmentation and paging. 48-bit logical address goes through the segmentation

More information

The conceptual view. by Gerrit Muller University of Southeast Norway-NISE

The conceptual view. by Gerrit Muller University of Southeast Norway-NISE by Gerrit Muller University of Southeast Norway-NISE e-mail: gaudisite@gmail.com www.gaudisite.nl Abstract The purpose of the conceptual view is described. A number of methods or models is given to use

More information

INF Models of concurrency

INF Models of concurrency INF4140 - Models of concurrency RPC and Rendezvous INF4140 Lecture 15. Nov. 2017 RPC and Rendezvous Outline More on asynchronous message passing interacting processes with different patterns of communication

More information

IN4R21. Real-Time Specification for Java (RTSJ) Damien MASSON January 20, 2014

IN4R21. Real-Time Specification for Java (RTSJ) Damien MASSON  January 20, 2014 IN4R21 Real-Time Specification for Java (RTSJ) Damien MASSON http://www.esiee.fr/~massond/ January 20, 2014 References www.rtsj.org Concurrent and Real-Time Programming in Java, Andy Wellings Real-Time

More information

An introduction to Uppaal and Timed Automata MVP5 1

An introduction to Uppaal and Timed Automata MVP5 1 An introduction to Uppaal and Timed Automata MVP5 1 What is Uppaal? (http://www.uppaal.com/) A simple graphical interface for drawing extended finite state machines (automatons + shared variables A graphical

More information

SDS developer guide. Develop distributed and parallel applications in Java. Nathanaël Cottin. version

SDS developer guide. Develop distributed and parallel applications in Java. Nathanaël Cottin. version SDS developer guide Develop distributed and parallel applications in Java Nathanaël Cottin sds@ncottin.net http://sds.ncottin.net version 0.0.3 Copyright 2007 - Nathanaël Cottin Permission is granted to

More information

ITI Introduction to Computing II

ITI Introduction to Computing II (with contributions from R. Holte) School of Electrical Engineering and Computer Science University of Ottawa Version of January 9, 2019 Please don t print these lecture notes unless you really need to!

More information

A Dynamic Real-time Scheduling Algorithm for Reduced Energy Consumption

A Dynamic Real-time Scheduling Algorithm for Reduced Energy Consumption A Dynamic Real-time Scheduling Algorithm for Reduced Energy Consumption Rohini Krishnapura, Steve Goddard, Ala Qadi Computer Science & Engineering University of Nebraska Lincoln Lincoln, NE 68588-0115

More information

Microcontroller VU

Microcontroller VU 182.694 Microcontroller VU Martin Perner SS 2017 Featuring Today: Assembler Programming Weekly Training Objective Already done 1.2 Board test 2.1.1 Assembler demo program 2.1.2 Makefile 2.2.1 Logical operations

More information

Branch Prediction based attacks using Hardware performance Counters IIT Kharagpur

Branch Prediction based attacks using Hardware performance Counters IIT Kharagpur Branch Prediction based attacks using Hardware performance Counters IIT Kharagpur March 19, 2018 Modular Exponentiation Public key Cryptography March 19, 2018 Branch Prediction Attacks 2 / 54 Modular Exponentiation

More information

Lecture Note #6: More on Task Scheduling EECS 571 Principles of Real-Time Embedded Systems Kang G. Shin EECS Department University of Michigan

Lecture Note #6: More on Task Scheduling EECS 571 Principles of Real-Time Embedded Systems Kang G. Shin EECS Department University of Michigan Lecture Note #6: More on Task Scheduling EECS 571 Principles of Real-Time Embedded Systems Kang G. Shin EECS Department University of Michigan Note 6-1 Mars Pathfinder Timing Hiccups? When: landed on the

More information

Embedded Systems Development

Embedded Systems Development Embedded Systems Development Lecture 3 Real-Time Scheduling Dr. Daniel Kästner AbsInt Angewandte Informatik GmbH kaestner@absint.com Model-based Software Development Generator Lustre programs Esterel programs

More information

Scheduling of Concurrent Reactive Objects for Embedded Real-Time Systems

Scheduling of Concurrent Reactive Objects for Embedded Real-Time Systems Scheduling of Concurrent Reactive Objects for Embedded Real-Time Systems Per Lindgren, Professor Embedded Systems Luleå University of Technology Sweden using Microsoft Powerpoint EISLAB Luleå University

More information

Real Time Operating Systems

Real Time Operating Systems Real Time Operating ystems Luca Abeni luca.abeni@unitn.it Interacting Tasks Until now, only independent tasks... A job never blocks or suspends A task only blocks on job termination In real world, jobs

More information

CS505: Distributed Systems

CS505: Distributed Systems Cristina Nita-Rotaru CS505: Distributed Systems Ordering events. Lamport and vector clocks. Global states. Detecting failures. Required reading for this topic } Leslie Lamport,"Time, Clocks, and the Ordering

More information

Lecture 1 : Data Compression and Entropy

Lecture 1 : Data Compression and Entropy CPS290: Algorithmic Foundations of Data Science January 8, 207 Lecture : Data Compression and Entropy Lecturer: Kamesh Munagala Scribe: Kamesh Munagala In this lecture, we will study a simple model for

More information

BTstack Getting Started. Using MSP430 Examples. Dr. sc. Milanka Ringwald Dr. sc. Matthias Ringwald

BTstack Getting Started. Using MSP430 Examples. Dr. sc. Milanka Ringwald Dr. sc. Matthias Ringwald VERSION 1.1 August 30, 2013 BTstack Getting Started Using MSP430 Examples Dr. sc. Milanka Ringwald Dr. sc. Matthias Ringwald contact@bluekitchen-gmbh.com Contents 1. Get started with BTstack and MSP-EXP430F5438

More information

EDF Scheduling. Giuseppe Lipari CRIStAL - Université de Lille 1. October 4, 2015

EDF Scheduling. Giuseppe Lipari  CRIStAL - Université de Lille 1. October 4, 2015 EDF Scheduling Giuseppe Lipari http://www.lifl.fr/~lipari CRIStAL - Université de Lille 1 October 4, 2015 G. Lipari (CRIStAL) Earliest Deadline Scheduling October 4, 2015 1 / 61 Earliest Deadline First

More information

Deadlock (2) Dave Eckhardt Brian Railing Roger Dannenberg

Deadlock (2) Dave Eckhardt Brian Railing Roger Dannenberg Deadlock () Dave Eckhardt Brian Railing Roger Dannenberg 1 1-410, S'18 Synchronization P You should really have, today: Drawn pictures of thread stacks (even if not perfect) Figured out where stubs belong,

More information

Synchronous Reactive Systems

Synchronous Reactive Systems Synchronous Reactive Systems Stephen Edwards sedwards@synopsys.com Synopsys, Inc. Outline Synchronous Reactive Systems Heterogeneity and Ptolemy Semantics of the SR Domain Scheduling the SR Domain 2 Reactive

More information

CEC 450 Real-Time Systems

CEC 450 Real-Time Systems CEC 450 Real-Time Systems Lecture 3 Real-Time Services Part 2 (Rate Monotonic Theory - Policy and Feasibility for RT Services) September 7, 2018 Sam Siewert Quick Review Service Utility RM Policy, Feasibility,

More information

CPU SCHEDULING RONG ZHENG

CPU SCHEDULING RONG ZHENG CPU SCHEDULING RONG ZHENG OVERVIEW Why scheduling? Non-preemptive vs Preemptive policies FCFS, SJF, Round robin, multilevel queues with feedback, guaranteed scheduling 2 SHORT-TERM, MID-TERM, LONG- TERM

More information

ECE3510 Lab #5 PID Control

ECE3510 Lab #5 PID Control ECE3510 Lab #5 ID Control Objectives The objective of this lab is to study basic design issues for proportionalintegral-derivative control laws. Emphasis is placed on transient responses and steady-state

More information

EDF Scheduling. Giuseppe Lipari May 11, Scuola Superiore Sant Anna Pisa

EDF Scheduling. Giuseppe Lipari   May 11, Scuola Superiore Sant Anna Pisa EDF Scheduling Giuseppe Lipari http://feanor.sssup.it/~lipari Scuola Superiore Sant Anna Pisa May 11, 2008 Outline 1 Dynamic priority 2 Basic analysis 3 FP vs EDF 4 Processor demand bound analysis Generalization

More information

process arrival time CPU burst time priority p1 0ms 25ms 3 p2 1ms 9ms 1 p3 20ms 14ms 4 p4 32ms 4ms 2

process arrival time CPU burst time priority p1 0ms 25ms 3 p2 1ms 9ms 1 p3 20ms 14ms 4 p4 32ms 4ms 2 Homework #2 Solutions 1. Suppose that the following processes arrive for execution at the times indicated. Each process will run with a single burst of CPU activity (i.e., no I/O) which lasts for the listed

More information

Blocking Synchronization: Streams Vijay Saraswat (Dec 10, 2012)

Blocking Synchronization: Streams Vijay Saraswat (Dec 10, 2012) 1 Streams Blocking Synchronization: Streams Vijay Saraswat (Dec 10, 2012) Streams provide a very simple abstraction for determinate parallel computation. The intuition for streams is already present in

More information

Online Scheduling Switch for Maintaining Data Freshness in Flexible Real-Time Systems

Online Scheduling Switch for Maintaining Data Freshness in Flexible Real-Time Systems Online Scheduling Switch for Maintaining Data Freshness in Flexible Real-Time Systems Song Han 1 Deji Chen 2 Ming Xiong 3 Aloysius K. Mok 1 1 The University of Texas at Austin 2 Emerson Process Management

More information

CSCE 313 Introduction to Computer Systems. Instructor: Dezhen Song

CSCE 313 Introduction to Computer Systems. Instructor: Dezhen Song CSCE 313 Introduction to Computer Systems Instructor: Dezhen Song Schedulers in the OS CPU Scheduling Structure of a CPU Scheduler Scheduling = Selection + Dispatching Criteria for scheduling Scheduling

More information

Computer Architecture

Computer Architecture Computer Architecture QtSpim, a Mips simulator S. Coudert and R. Pacalet January 4, 2018..................... Memory Mapping 0xFFFF000C 0xFFFF0008 0xFFFF0004 0xffff0000 0x90000000 0x80000000 0x7ffff4d4

More information

Rate Monotonic Analysis (RMA)

Rate Monotonic Analysis (RMA) Rate Monotonic Analysis (RMA) ktw@csie.ntu.edu.tw (Real-Time and Embedded System Laboratory) Major References: An Introduction to Rate Monotonic Analysis Tutorial Notes SEI MU* Distributed Real-Time System

More information

Concurrent Models of Computation

Concurrent Models of Computation Concurrent Models of Computation Edward A. Lee Robert S. Pepper Distinguished Professor, UC Berkeley EECS 219D Concurrent Models of Computation Fall 2011 Copyright 2009-2011, Edward A. Lee, All rights

More information

Go Tutorial. Ian Lance Taylor. Introduction. Why? Language. Go Tutorial. Ian Lance Taylor. GCC Summit, October 27, 2010

Go Tutorial. Ian Lance Taylor. Introduction. Why? Language. Go Tutorial. Ian Lance Taylor. GCC Summit, October 27, 2010 GCC Summit, October 27, 2010 Go Go is a new experimental general purpose programming language. Main developers are: Russ Cox Robert Griesemer Rob Pike Ken Thompson It was released as free software in November

More information

Andrew Morton University of Waterloo Canada

Andrew Morton University of Waterloo Canada EDF Feasibility and Hardware Accelerators Andrew Morton University of Waterloo Canada Outline 1) Introduction and motivation 2) Review of EDF and feasibility analysis 3) Hardware accelerators and scheduling

More information

CS/IT OPERATING SYSTEMS

CS/IT OPERATING SYSTEMS CS/IT 5 (CR) Total No. of Questions :09] [Total No. of Pages : 0 II/IV B.Tech. DEGREE EXAMINATIONS, DECEMBER- 06 CS/IT OPERATING SYSTEMS. a) System Boot Answer Question No. Compulsory. Answer One Question

More information

CS162 Operating Systems and Systems Programming Lecture 7 Semaphores, Conditional Variables, Deadlocks"

CS162 Operating Systems and Systems Programming Lecture 7 Semaphores, Conditional Variables, Deadlocks CS162 Operating Systems and Systems Programming Lecture 7 Semaphores, Conditional Variables, Deadlocks" September 19, 2012! Ion Stoica! http://inst.eecs.berkeley.edu/~cs162! Recap: Monitors" Monitors represent

More information

Comp 11 Lectures. Mike Shah. July 26, Tufts University. Mike Shah (Tufts University) Comp 11 Lectures July 26, / 40

Comp 11 Lectures. Mike Shah. July 26, Tufts University. Mike Shah (Tufts University) Comp 11 Lectures July 26, / 40 Comp 11 Lectures Mike Shah Tufts University July 26, 2017 Mike Shah (Tufts University) Comp 11 Lectures July 26, 2017 1 / 40 Please do not distribute or host these slides without prior permission. Mike

More information

Calibration Routine. Store in HDD. Switch "Program Control" Ref 1/ Ref 2 Manual Automatic

Calibration Routine. Store in HDD. Switch Program Control Ref 1/ Ref 2 Manual Automatic 4.2 IMPLEMENTATION LABVIEW 4.2.1 LabVIEW features LabVIEW (short for Laboratory Virtual Instrument Engineering Workbench) originally released for the Apple Macintosh in 1986. It is a highly productive

More information

Exercises Stochastic Performance Modelling. Hamilton Institute, Summer 2010

Exercises Stochastic Performance Modelling. Hamilton Institute, Summer 2010 Exercises Stochastic Performance Modelling Hamilton Institute, Summer Instruction Exercise Let X be a non-negative random variable with E[X ]

More information

Scheduling of Frame-based Embedded Systems with Rechargeable Batteries

Scheduling of Frame-based Embedded Systems with Rechargeable Batteries Scheduling of Frame-based Embedded Systems with Rechargeable Batteries André Allavena Computer Science Department Cornell University Ithaca, NY 14853 andre@cs.cornell.edu Daniel Mossé Department of Computer

More information