0% found this document useful (0 votes)
37 views31 pages

11-DFD and CDFG-19-08-2024

Chapter 8 of 'Embedded Systems Design' discusses state machine and concurrent process models for embedded systems, emphasizing the importance of precise behavior description amidst increasing complexity. It introduces various models such as finite state machines (FSM), dataflow models, and real-time systems, highlighting their roles in capturing system behavior. The chapter also contrasts state machine models with sequential programming, noting the advantages of state machines in managing system states and transitions.

Uploaded by

justinrambo14
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views31 pages

11-DFD and CDFG-19-08-2024

Chapter 8 of 'Embedded Systems Design' discusses state machine and concurrent process models for embedded systems, emphasizing the importance of precise behavior description amidst increasing complexity. It introduces various models such as finite state machines (FSM), dataflow models, and real-time systems, highlighting their roles in capturing system behavior. The chapter also contrasts state machine models with sequential programming, noting the advantages of state machines in managing system states and transitions.

Uploaded by

justinrambo14
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Embedded Systems Design: A Unified

Hardware/Software Introduction

Chapter 8: State Machine and


Concurrent Process Model

1
Outline

• Models vs. Languages


• State Machine Model
– FSM/FSMD
– HCFSM and Statecharts Language
– Program-State Machine (PSM) Model
• Concurrent Process Model
– Communication
– Synchronization
– Implementation
• Dataflow Model
• Real-Time Systems
Embedded Systems Design: A Unified 2
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Introduction

• Describing embedded system’s processing behavior


– Can be extremely difficult
• Complexity increasing with increasing IC capacity
– Past: washing machines, small games, etc.
• Hundreds of lines of code
– Today: TV set-top boxes, Cell phone, etc.
• Hundreds of thousands of lines of code
• Desired behavior often not fully understood in beginning
– Many implementation bugs due to description mistakes/omissions
– English (or other natural language) common starting point
• Precise description difficult to impossible
• Example: Motor Vehicle Code – thousands of pages long...

Embedded Systems Design: A Unified 3


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
An example of trying to be precise in English

• California Vehicle Code


– Right-of-way of crosswalks
• 21950. (a) The driver of a vehicle shall yield the right-of-way to a pedestrian crossing
the roadway within any marked crosswalk or within any unmarked crosswalk at an
intersection, except as otherwise provided in this chapter.
• (b) The provisions of this section shall not relieve a pedestrian from the duty of using
due care for his or her safety. No pedestrian shall suddenly leave a curb or other place
of safety and walk or run into the path of a vehicle which is so close as to constitute
an immediate hazard. No pedestrian shall unnecessarily stop or delay traffic while in a
marked or unmarked crosswalk.
• (c) The provisions of subdivision (b) shall not relieve a driver of a vehicle from the
duty of exercising due care for the safety of any pedestrian within any marked
crosswalk or within any unmarked crosswalk at an intersection.
– All that just for crossing the street (and there’s much more)!

Embedded Systems Design: A Unified 4


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Models and languages
• How can we (precisely) capture behavior?
– We may think of languages (C, C++), but computation model is the key
• Common computation models:
– Sequential program model
• Statements, rules for composing statements, semantics for executing them
– Communicating process model
• Multiple sequential programs running concurrently
– State machine model
• For control dominated systems, monitors control inputs, sets control outputs
– Dataflow model
• For data dominated systems, transforms input data streams into output streams
– Object-oriented model
• For breaking complex software into simpler, well-defined pieces

Embedded Systems Design: A Unified 5


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Models vs. languages
Poetry Recipe Story State Sequent. Data-
Models machine program flow

Languages English Spanish Japanese C C++ Java

Recipes vs. English Sequential programs vs. C

• Computation models describe system behavior


– Conceptual notion, e.g., recipe, sequential program
• Languages capture models
– Concrete form, e.g., English, C
• Variety of languages can capture one model
– E.g., sequential program model  C,C++, Java
• One language can capture variety of models
– E.g., C++ → sequential program model, object-oriented model, state machine model
• Certain languages better at capturing certain computation models

Embedded Systems Design: A Unified 6


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Text versus Graphics

• Models versus languages not to be confused with text


versus graphics
– Text and graphics are just two types of languages
• Text: letters, numbers
• Graphics: circles, arrows (plus some letters, numbers)

X = 1; X=1

Y = X + 1;

Y=X+1

Embedded Systems Design: A Unified 7


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Introductory example: An elevator controller

Partial English description System interface

• Simple elevator “Move the elevator either up or down Unit up


to reach the requested floor. Once at Control
controller the requested floor, open the door for
down
open

– Request Resolver at least 10 seconds, and keep it open


until the requested floor changes. floor
req
resolves various floor Ensure the door is never open while
moving. Don’t change directions Request
requests into single unless there are no higher requests Resolver
b1 buttons
when moving up or no lower requests inside
requested floor when moving down…”
... b2
bN
elevator

– Unit Control moves up1 up/down


up2 buttons on
elevator to this requested dn2 each
up3 floor
floor dn3
...
• Try capturing in C... dnN

Embedded Systems Design: A Unified 8


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Elevator controller using a sequential
program model
System interface
Sequential program model
Partial English description
Inputs: int floor; bit b1..bN; up1..upN-1; dn2..dnN;
Unit up
Outputs: bit up, down, open;
Global variables: int req; “Move the elevator either up or down Control down
void UnitControl() void RequestResolver() to reach the requested floor. Once at open
{ { the requested floor, open the door for
up = down = 0; open = 1; while (1) floor
while (1) { ...
at least 10 seconds, and keep it open
until the requested floor changes. req
while (req == floor); req = ...
open = 0; ... Ensure the door is never open while Request
if (req > floor) { up = 1;} }
else {down = 1;}
moving. Don’t change directions Resolver
b1 buttons
void main() inside
while (req != floor); unless there are no higher requests b2
{ ... elevator
up = down = 0; Call concurrently: when moving up or no lower requests bN
open = 1;
delay(10);
UnitControl() and when moving down…”
RequestResolver() up1 up/down
} }
} up2 buttons on
dn2 each
up3 floor
dn3
You might have come up with something having ...
even more if statements. dnN

Embedded Systems Design: A Unified 9


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Finite-state machine (FSM) model

• Trying to capture this behavior as sequential program is a bit


awkward
• Instead, we might consider an FSM model, describing the system
as:
– Possible states
• E.g., Idle, GoingUp, GoingDn, DoorOpen
– Possible transitions from one state to another based on input
• E.g., req > floor
– Actions that occur in each state
• E.g., In the GoingUp state, u,d,o,t = 1,0,0,0 (up = 1, down, open, and
timer_start = 0)
• Try it...

Embedded Systems Design: A Unified 10


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Finite-state machine (FSM) model

UnitControl process using a state machine

req > floor

u,d,o, t = 1,0,0,0 GoingUp !(req > floor)

req > floor timer < 10


u,d,o,t = 0,0,1,0 !(timer < 10)
Idle DoorOpen
req == floor u,d,o,t = 0,0,1,1
req < floor

u,d,o,t = 0,1,0,0 !(req<floor)


GoingDn

u is up, d is down, o is open


req < floor
t is timer_start

Embedded Systems Design: A Unified 11


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Formal definition
• An FSM is a 6-tuple F<S, I, O, F, H, s0>
– S is a set of all states {s0, s1, …, sl}
– I is a set of inputs {i0, i1, …, im}
– O is a set of outputs {o0, o1, …, on}
– F is a next-state function (S x I → S)
– H is an output function (S → O)
– s0 is an initial state
• Moore-type
– Associates outputs with states (as given above, H maps S → O)
• Mealy-type
– Associates outputs with transitions (H maps S x I → O)
• Shorthand notations to simplify descriptions
– Implicitly assign 0 to all unassigned outputs in a state
– Implicitly AND every transition condition with clock edge (FSM is synchronous)

Embedded Systems Design: A Unified 12


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Finite-state machine with datapath model
(FSMD)
• FSMD extends FSM: complex data types and variables for storing data
– FSMs use only Boolean data types and operations, no variables
• FSMD: 7-tuple <S, I , O, V, F, H, s0> We described UnitControl as an FSMD

– S is a set of states {s0, s1, …, sl} req > floor

– I is a set of inputs {i0, i1, …, im} u,d,o, t = 1,0,0,0 GoingUp !(req > floor)

– O is a set of outputs {o0, o1, …, on} u,d,o,t = 0,0,1,0


req > floor
!(timer < 10)
timer < 10

– V is a set of variables {v0, v1, …, vn} req == floor


Idle
req < floor
DoorOpen
u,d,o,t = 0,0,1,1

– F is a next-state function (S x I x V → S) u,d,o,t = 0,1,0,0 !(req<floor)


GoingDn
– H is an action function (S → O + V) u is up, d is down, o is open
– s0 is an initial state req < floor t is timer_start

• I,O,V may represent complex data types (i.e., integers, floating point, etc.)
• F,H may include arithmetic operations
• H is an action function, not just an output function
– Describes variable updates as well as outputs
• Complete system state now consists of current state, si, and values of all variables

Embedded Systems Design: A Unified 13


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Describing a system as a state machine

1. List all possible states 2. Declare all variables (none in this example)
3. For each state, list possible transitions, with conditions, to other states
4. For each state and/or transition, req > floor
list associated actions
5. For each state, ensure exclusive u,d,o, t = 1,0,0,0 GoingUp !(req > floor)
and complete exiting transition
conditions req > floor timer < 10

u,d,o,t = 0,0,1,0
• No two exiting conditions can Idle !(timer < 10) DoorOpen
be true at same time req == floor
req < floor
u,d,o,t = 0,0,1,1

– Otherwise nondeterministic
state machine u,d,o,t = 0,1,0,0
!(req<floor)
GoingDn
• One condition must be true at
any given time u is up, d is down, o is open
req < floor
– Reducing explicit transitions t is timer_start

should be avoided when first


learning
Embedded Systems Design: A Unified 14
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
State machine vs. sequential program model

• Different thought process used with each model


• State machine:
– Encourages designer to think of all possible states and transitions among states
based on all possible input conditions
• Sequential program model:
– Designed to transform data through series of instructions that may be iterated and
conditionally executed
• State machine description excels in many cases
– More natural means of computing in those cases
– Not due to graphical representation (state diagram)
• Would still have same benefits if textual language used (i.e., state table)
• Besides, sequential program model could use graphical representation (i.e., flowchart)

Embedded Systems Design: A Unified 15


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Try Capturing Other Behaviors with an FSM

• E.g., Answering machine blinking light when there are


messages
• E.g., A simple telephone answering machine that
answers after 4 rings when activated
• E.g., A simple crosswalk traffic control light
• Others

Embedded Systems Design: A Unified 16


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Capturing state machines in
sequential programming language
• Despite benefits of state machine model, most popular development tools use
sequential programming language
– C, C++, Java, Ada, VHDL, Verilog, etc.
– Development tools are complex and expensive, therefore not easy to adapt or replace
• Must protect investment
• Two approaches to capturing state machine model with sequential programming
language
– Front-end tool approach
• Additional tool installed to support state machine language
– Graphical and/or textual state machine languages
– May support graphical simulation
– Automatically generate code in sequential programming language that is input to main development tool
• Drawback: must support additional tool (licensing costs, upgrades, training, etc.)
– Language subset approach
• Most common approach...

Embedded Systems Design: A Unified 17


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Language subset approach
• Follow rules (template) for capturing
state machine constructs in equivalent #define IDLE0
#define GOINGUP1
sequential language constructs #define GOINGDN2
#define DOOROPEN3
• Used with software (e.g.,C) and void UnitControl() {
int state = IDLE;
hardware languages (e.g.,VHDL) while (1) {
switch (state) {
• Capturing UnitControl state machine IDLE: up=0; down=0; open=1; timer_start=0;
if (req==floor) {state = IDLE;}
in C if (req > floor) {state = GOINGUP;}
if (req < floor) {state = GOINGDN;}
– Enumerate all states (#define) break;
GOINGUP: up=1; down=0; open=0; timer_start=0;
– Declare state variable initialized to if (req > floor) {state = GOINGUP;}
initial state (IDLE) if (!(req>floor)) {state = DOOROPEN;}
break;
– Single switch statement branches to GOINGDN: up=1; down=0; open=0; timer_start=0;
if (req < floor) {state = GOINGDN;}
current state’s case if (!(req<floor)) {state = DOOROPEN;}
break;
– Each case has actions DOOROPEN: up=0; down=0; open=1; timer_start=1;
• up, down, open, timer_start if (timer < 10) {state = DOOROPEN;}
if (!(timer<10)){state = IDLE;}
– Each case checks transition conditions }
break;
}
to determine next state }

• if(…) {state = …;} UnitControl state machine in sequential programming language

Embedded Systems Design: A Unified 18


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
General template
#define S0 0
#define S1 1
...
#define SN N
void StateMachine() {
int state = S0; // or whatever is the initial state.
while (1) {
switch (state) {
S0:
// Insert S0’s actions here & Insert transitions Ti leaving S0:
if( T0’s condition is true ) {state = T0’s next state; /*actions*/ }
if( T1’s condition is true ) {state = T1’s next state; /*actions*/ }
...
if( Tm’s condition is true ) {state = Tm’s next state; /*actions*/ }
break;
S1:
// Insert S1’s actions here
// Insert transitions Ti leaving S1
break;
...
SN:
// Insert SN’s actions here
// Insert transitions Ti leaving SN
break;
}
}
}

Embedded Systems Design: A Unified 19


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
HCFSM and the Statecharts language
• Hierarchical/concurrent state machine model
(HCFSM)
– Extension to state machine model to support Without hierarchy With hierarchy
hierarchy and concurrency A
– States can be decomposed into another state A1 z
A1 z
x w
machine y B x y
w B
• With hierarchy has identical functionality as Without A2 z
hierarchy, but has one less transition (z) A2

• Known as OR-decomposition
– States can execute concurrently
• Known as AND-decomposition
Concurrency
• Statecharts
B
– Graphical language to capture HCFSM C D
– timeout: transition with time limit as condition C1 D1

– history: remember last substate OR-decomposed x y u v


state A was in before transitioning to another state B C2 D2
• Return to saved substate of A when returning from B
instead of initial state

Embedded Systems Design: A Unified 20


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
UnitControl with FireMode
req>floor UnitControl
u,d,o = 1,0,0 GoingUp
• FireMode
req>floor
!(req>floor)
– When fire is true, move elevator
u,d,o = 0,0,1
Idle timeout(10) DoorOpen u,d,o = 0,0,1 to 1st floor and open door
req==floor fire
u,d,o = 0,1,0
req<floor !(req<floor)
fire
fire
u,d,o = 0,1,0
– w/o hierarchy: Getting messy!
GoingDn FireGoingDn
fire
floor==1 u,d,o = 0,0,1 – w/ hierarchy: Simple!
req<floor floor>1 FireDrOpen
!fire fire With hierarchy
Without hierarchy UnitControl
req>floor NormalMode

u,d,o = 1,0,0 GoingUp


!(req>floor)
req>floor
ElevatorController u,d,o = 0,0,1 u,d,o = 0,0,1
Idle DoorOpen
UnitControl RequestResolver req==floor timeout(10)
req<floor !(req>floor)
NormalMode u,d,o = 0,1,0 GoingDn
...
!fire fire req<floor
FireMode FireMode
fire
FireGoingDn u,d,o = 0,1,0
!fire
floor==1 u,d,o = 0,0,1
floor>1 FireDrOpen
With concurrent RequestResolver
fire

Embedded Systems Design: A Unified 21


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Program-state machine model (PSM):
HCFSM plus sequential program model
• Program-state’s actions can be FSM or ElevatorController
int req;
sequential program UnitControl RequestResolver
NormalMode
– Designer can choose most appropriate up = down = 0; open = 1; ...
while (1) { req = ...
• Stricter hierarchy than HCFSM used in while (req == floor);
open = 0;
...

Statecharts if (req > floor) { up = 1;}


else {down = 1;}
– transition between sibling states only, single entry while (req != floor);
open = 1;
– Program-state may “complete” delay(10);
}
• Reaches end of sequential program code, OR }
!fire fire
• FSM transition to special complete substate FireMode
• PSM has 2 types of transitions up = 0; down = 1; open = 0;
while (floor > 1);
– Transition-immediately (TI): taken regardless of up = 0; down = 0; open = 1;
source program-state
– Transition-on-completion (TOC): taken only if
condition is true AND source program-state is • NormalMode and FireMode described as
complete sequential programs
– SpecCharts: extension of VHDL to capture PSM • Black square originating within FireMode
model indicates !fire is a TOC transition
– SpecC: extension of C to capture PSM model – Transition from FireMode to NormalMode
only after FireMode completed

Embedded Systems Design: A Unified 22


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Role of appropriate model and language
• Finding appropriate model to capture embedded system is an important step
– Model shapes the way we think of the system
• Originally thought of sequence of actions, wrote sequential program
– First wait for requested floor to differ from target floor
– Then, we close the door
– Then, we move up or down to the desired floor
– Then, we open the door
– Then, we repeat this sequence
• To create state machine, we thought in terms of states and transitions among states
– When system must react to changing inputs, state machine might be best model
• HCFSM described FireMode easily, clearly
• Language should capture model easily
– Ideally should have features that directly capture constructs of model
– FireMode would be very complex in sequential program
• Checks inserted throughout code
– Other factors may force choice of different model
• Structured techniques can be used instead
– E.g., Template for state machine capture in sequential program language

Embedded Systems Design: A Unified 23


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Concurrent process model
• Describes functionality of system in terms of two or more
concurrently executing subtasks
ConcurrentProcessExample() {
x = ReadX()
• Many systems easier to describe with concurrent process model
y = ReadY() because inherently multitasking
Call concurrently:
PrintHelloWorld(x) and
PrintHowAreYou(y)
• E.g., simple example:
} – Read two numbers X and Y
PrintHelloWorld(x) {
while( 1 ) { – Display “Hello world.” every X seconds
print "Hello world."
delay(x); – Display “How are you?” every Y seconds
}
} • More effort would be required with sequential program or state
PrintHowAreYou(x) {
while( 1 ) { machine model
print "How are you?"
delay(y);
} Enter X: 1
} Enter Y: 2
Hello world. (Time = 1 s)
PrintHelloWorld
Hello world. (Time = 2 s)
Simple concurrent process example ReadX ReadY How are you? (Time = 2 s)
Hello world. (Time = 3 s)
PrintHowAreYou
How are you? (Time = 4 s)
Hello world. (Time = 4 s)
time ...

Subroutine execution over time Sample input and output

Embedded Systems Design: A Unified 24


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Dataflow model
• Derivative of concurrent process model Z = (A + B) * (C - D)

• Nodes represent transformations


– May execute concurrently A B C D

• Edges represent flow of tokens (data) from one node to another + –


– May or may not have token at any given time t1 t2

• When all of node’s input edges have at least one token, node may *

fire
Z
• When node fires, it consumes input tokens processes Nodes with arithmetic
transformation and generates output token transformations
• Nodes may fire simultaneously A B C D
• Several commercial tools support graphical languages for capture
modulate convolve
of dataflow model
t1 t2
– Can automatically translate to concurrent process model for
transform
implementation
– Each node becomes a process Z
Nodes with more complex
transformations

Embedded Systems Design: A Unified 25


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Synchronous dataflow
• With digital signal-processors (DSPs), data flows at fixed rate
• Multiple tokens consumed and produced per firing
• Synchronous dataflow model takes advantage of this A B C D
– Each edge labeled with number of tokens consumed/produced
mA mB mC mD
each firing
– Can statically schedule nodes, so can easily use sequential modulate convolve

program model mt1 t1 t2 ct2

• Don’t need real-time operating system and its overhead tt1 tt2


transform
How would you map this model to a sequential programming
language? Try it... tZ

• Algorithms developed for scheduling nodes into “single- Z

appearance” schedules
Synchronous dataflow
– Only one statement needed to call each node’s associated
procedure
• Allows procedure inlining without code explosion, thus reducing
overhead even more

Embedded Systems Design: A Unified 26


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Concurrent processes and real-time systems

Embedded Systems Design: A Unified 27


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Concurrent processes

• Consider two examples Heartbeat Monitoring System


having separate tasks running B[1..4]
Task 1:
Read pulse
Task 2:
If B1/B2 pressed then
If pulse < Lo then Lo = Lo +/– 1
independently but sharing Activate Siren If B3/B4 pressed then
If pulse > Hi then Hi = Hi +/– 1
data Heart-beat Activate Siren Sleep 500 ms
pulse Sleep 1 second Repeat

• Difficult to write system Repeat

using sequential program


model
• Concurrent process model
Set-top Box
easier Task 1: Task 2:
Read Signal Wait on Task 1
– Separate sequential Separate Audio/Video Decode/output Audio Video
Send Audio to Task 2 Repeat
programs (processes) for Input
Signal
Send Video to Task 3
Audio
Repeat Task 3:
each task Wait on Task 1
Decode/output Video
– Programs communicate with Repeat

each other

Embedded Systems Design: A Unified 28


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Process Communication

• Try modeling “req” value of our System interface

elevator controller Unit


Control
up
down

– Using shared memory open

floor

– Using shared memory and mutexes req


Request

– Using message passing Resolver


b1 buttons
inside
... b2 elevator
bN

up1 up/down
up2 buttons on
dn2 each
up3 floor
dn3
...
dnN

Embedded Systems Design: A Unified 35


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Real-time systems

• Systems composed of 2 or more cooperating, concurrent processes with


stringent execution time constraints
– E.g., set-top boxes have separate processes that read or decode video and/or
sound concurrently and must decode 20 frames/sec for output to appear
continuous
– Other examples with stringent time constraints are:
• digital cell phones
• navigation and process control systems
• assembly line monitoring systems
• multimedia and networking systems
• etc.
– Communication and synchronization between processes for these systems is
critical
– Therefore, concurrent process model best suited for describing these systems

Embedded Systems Design: A Unified 50


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Real-time operating systems (RTOS)
• Provide mechanisms, primitives, and guidelines for building real-time embedded systems
• Windows CE
– Built specifically for embedded systems and appliance market
– Scalable real-time 32-bit platform
– Supports Windows API
– Perfect for systems designed to interface with Internet
– Preemptive priority scheduling with 256 priority levels per process
– Kernel is 400 Kbytes
• QNX
– Real-time microkernel surrounded by optional processes (resource managers) that provide POSIX and
UNIX compatibility
• Microkernels typically support only the most basic services
• Optional resource managers allow scalability from small ROM-based systems to huge multiprocessor systems
connected by various networking and communication technologies
– Preemptive process scheduling using FIFO, round-robin, adaptive, or priority-driven scheduling
– 32 priority levels per process
– Microkernel < 10 Kbytes and complies with POSIX real-time standard

Embedded Systems Design: A Unified 51


Hardware/Software Introduction, (c) 2000 Vahid/Givargis

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy