Microcontroller VU
|
|
- Elvin Gibbs
- 6 years ago
- Views:
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 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 informationDistributed 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 informationCPU 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 informationCSE 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 informationLSN 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 informationScheduling 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 informationAdministrivia. 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 informationScheduling 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 informationA 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 informationModule 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 informationChapter 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 informationCIS 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 informationIntroduction 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 informationCPU 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 informationClock-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 informationDesign 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 informationComp 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 informationINF 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 informationReal-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 informationOutline 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 informationOperating 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 informationReal-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 informationCHAPTER 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 informationUC 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 informationSimulation 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 informationLab 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 informationTask 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 informationFPGA 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 informationNon-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 informationClojure 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 informationFPGA 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 informationScheduling 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 informationTDDI04, 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 informationLast 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 informationProcess 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 informationEDF 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 informationLecture 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 informationLecture 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 informationSafety 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 informationCISC 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 informationObject 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 informationBasic 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 informationITI 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 informationTDDB68 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 informationCPU 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 informationAperiodic 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 informationVELA. 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 informationNEC 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 informationMore 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 informationDETERMINING 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 information2/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 informationDistributed 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 informationUnit: 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 informationCEE 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 informationHands-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 informationDistributed 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 informationMore 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 informationCS 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 informationLists, 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 informationIO-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 informationOperating 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 informationLecture 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 informationThe 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 informationINF 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 informationIN4R21. 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 informationAn 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 informationSDS 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 informationITI 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 informationA 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 informationMicrocontroller 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 informationBranch 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 informationLecture 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 informationEmbedded 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 informationScheduling 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 informationReal 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 informationCS505: 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 informationLecture 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 informationBTstack 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 informationEDF 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 informationDeadlock (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 informationSynchronous 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 informationCEC 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 informationCPU 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 informationECE3510 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 informationEDF 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 informationprocess 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 informationBlocking 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 informationOnline 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 informationCSCE 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 informationComputer 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 informationRate 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 informationConcurrent 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 informationGo 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 informationAndrew 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 informationCS/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 informationCS162 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 informationComp 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 informationCalibration 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 informationExercises 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 informationScheduling 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