Index

 

A

Abstraction layer, operating system, 421442

FreeRTOS implementation, 430436

Linux implementation, 424430

multiplatform application, 436440

object oriented interface, 423436

Accessing I/O registers, 1215

Acquiring images from camera device, 2842

synchronous read from camera device, 2934

Active to passive wait, 121125

ADC. See Analog-to-digital converter

Address resolution, 222223

Address resolution protocol, 223

Adeos, Linux real-time extensions, 412414

pipeline, 413414

Adeos pipeline, Xenomai domains, 414

Aliasing phenomena, 478

Analog low-pass filter, 471, 479

Analog-to-digital converter, 89

Aperiodic tasks, response time, schedulability analysis, 324330

API. See Application programming interface

Application programming interface, 4, 12, 23, 2627, 159, 191, 412, 421

ARP. See Address resolution protocol

Asynchronous message passing, 155

Asynchronous message transfer, 146

Avoiding deadlock, 9197

B

Binary semaphores, FreeRTOS, 207208, 388

mutual exclusion semaphores, 207213

BIOS. See Basic input/output system

Bitmask, protection, 172

Blocked state, 73, 123, 139, 337

Blocking, task interactions, 333360

immediate priority ceiling, task scheduling with, 357

priority ceiling protocol, 348353

priority inheritance, task scheduling with, 356

priority inheritance protocol, 337348

priority inversion problem, 334337

schedulability analysis, 353359

theorems, 345, 347, 350352

transitive priority inheritance, 346

unbounded priority inversion, 335

task scheduling with, 355

Blocking times, 358, 369, 371372

Brinch Hansen monitor, 138

Butterworth filter, third-order, 473475

C

Camera device, images from

data streaming from camera device, 3742

virtual memory, 3437

Case study, vision control, 1162

acquiring images from camera device, 2842

synchronous read from camera device, 2934

camera device, images from

data streaming from camera device, 3742

virtual memory, 3437

circular shape

center coordinates, 5460

sample image, 56

code reduction, 47

device capability configuration parameters, 28

edge detection, 4254

optimizing code, 4554

edge pixels, matrix from, 57

Hough transform, 54

image format definition, 28

input output on computers, 1222

accessing I/O registers, 1215

direct memory access, 2022

interrupt sequence, 19

interrupt vector number, 1820, 2425

synchronization in I/O, 1520

input/output operations, 2226

Linux input/output abstraction, 2627

software interrupts, 2425

user/kernel modes, 2327

user mode, 2325, 34, 37, 408

mask of devices to be monitored for exceptions, 33

memory mapped I/O, bus architecture for, 14

number of involved devices, 33

page table translation to map, 38

PCI buses, bus architecture with, 16

read device mask, 33

register allocation, 48

SCSI bus, bus architecture with, 16

separate I/O bus, bus architecture with, 13

static variable, sharing data via, 37

virtual address translation, 36

virtual memory address translation, 35

voting matrix from edge pixels, 57

wait timeout specification, 33

write device mask, 33

Choosing sampling frequency, 478

Circular buffers, 480

Circular shape

center coordinates, 5460

sample image, 56

Circular wait condition, 90

Clocks, 187188, 213216

Code reduction, 47

Computing power, 219, 237

Concurrent programming, 9262

deadlock, 79102

analog-to-digital converter, 89

avoidance, 9197

circular wait, 83

conditions, 83

defined, 83

detection, 98100

hold and wait, 83

living with, 8687

nonpreemption, 83, 89

prevention, 8791

reductio ad absurdum, 90, 308

request resources, 80, 90

resource allocation, 8486

reusable resources, 80

FreeRTOS, interprocess communication primitives, 191218

binary semaphores, 207208, 388

counting semaphores, 207213

main message-queue related primitives, 200

message queues, 199207

mutex semaphores, 207

relative vs. absolute time delays, 215

semaphore creation/deletion primitives, 208

semaphore manipulation primitives, 210

task-related primitives, 192

threads, 192199

time-related primitives, 213

lock, wait-free communication, 239262

concurrent read, write operations, opposite orders, 250

lock-free object, universal construction pseudocode, 260

lock-free solution C-like code, 252

memory management, faulty, race condition, object access, 258

multidigit registers, 241251

overwriting, copying object during, 259

readers/writer problem, 251254

retry loops, 241

sequential object implementation, into lock-free implementation, 256

theorems, 246249, 252253

universal constructions, 254262

machine-dependent optimization

destination, 221

source, 221

network communication, 219238

address resolution, 222223

address resolution protocol, 223

computing power, 219, 237

distributed data, 219

Ethernet network frame, 224

Ethernet protocol, 220221

frame splitting, 222

interframe gap, 221

packet length, 221

payload, 221224

preamble, start frame identifier, 221

single point of failure, 219

sockets, 225232

TCP/IP, 222225

transmission error management, 222

UDP sockets, 232235

POSIX/Linux, interprocess communication primitives, 159190

clocks, 187188, 213216

Linux, signal events defined in, 187

marge matrix summation execution time, 167

message queues, 183186

mutexes, 175180

process creation, 169175

processes, interprocess communication among, 180187

programming model, 189

protection bitmask, 172

semaphores, 180183

signals, 186187

threads, 160180, 188189

real-time concurrent programming, 6378

components, 68

multicore systems, 64, 312313, 406

multiprocessor, 64, 108, 116, 242, 312, 362, 406

multiprogramming, 6466, 69, 77, 105, 192, 216

multithreading, 7577

parallelism, 6365

process definition, 6567

process life cycle, 7075

process state, 6769

process state components, 76

sequential process, 6465

shared variables, interprocess communication, 103140

active to passive wait, 121125

Brinch Hansen monitor, 138

concurrently incrementing shared variable, 106

condition variables, 133, 138, 159, 175177, 179180, 189190

difficulty of semaphore use, 131

hardware-assisted lock variables, 113116

information hiding, 132

lock variables, 113

monitors, 130139

mutual exclusion, 130

passive wait, 124

Peterson’s software-based mutual exclusion, 117

POSIX approach, 137

process state diagram transitions, 127

race condition elimination, 136

race conditions, 103112

semaphore to enforce mutual

exclusion, 128

semaphores, 125130

software-based mutual exclusion, 116121

sockets, TCP/IP sockets, 225232

vision control, case study, 1162

accessing I/O registers, 1215

acquiring images from camera device, 2842

center coordinates, 5460

code reduction, 47

data streaming from camera device, 3742

device capability configuration parameters, 28

direct memory access, 2022

edge detection, 4254

Hough transform, 54

image format definition, 28

input output on computers, 1222

input/output operations, 2226

interrupt sequence, 19

interrupt vector number, 1820, 2425

Linux input/output abstraction, 2627

mask of devices to be monitored for exceptions, 33

memory mapped I/O, bus architecture for, 14

number of involved devices, 33

optimizing code, 4554

page table translation to map, 38

PCI buses, bus architecture with, 16

read device mask, 33

register allocation, 48

sample image, 56

separate I/O bus, bus architecture with, 13

software interrupts, 2425

static variable, sharing data via, 37

synchronization in I/O, 1520

synchronous read from camera device, 2934

user/kernel modes, 2327

user mode, 2325, 34, 37, 408

virtual address translation, 36

virtual memory, 3437

virtual memory address translation, 35

voting matrix from edge pixels, 57

wait timeout specification, 33

write device mask, 33

Concurrent read, write operations, opposite orders, 250

Concurrently incrementing shared variable, 106

Condition synchronization, 130, 139140

semaphores, 130

Condition variables, 133, 138, 159, 175177, 179180, 189190

Consumable resource, 80

Context switch, FreeRTOS, task scheduler, 375383

Control theory, digital signal processing, 443484

digital low-pass filter, 462483

aliasing phenomena, 478

building, 479482

Butterworth filter, third-order, 473475

circular buffers, 480

Fourier transform, 462466, 475

harmonics, 462466

low-pass filters, 466473

sampling period, 473479

signal to noise ratio, 482483

liquid level in tank, 444462

dynamics of system, 445448

homogeneous solution, 446447

implementing transfer function, 455461

integral gain, 448450

multiple inputs, outputs, 461

system properties, transfer function, 452455

transfer functions, Laplace domain, 450452

zeroes, tank-pump system, 454

Copying object during overwriting, 259

Counting semaphores, 180, 207, 212, 388

FreeRTOS, 207213

mutual exclusion semaphores, 207213

Critical instant theorem, self-suspension, 362365

Cyclic executive, real-time scheduling, 265278

cyclic executive, 269272

scheduling task set, 271

task execution, 270

fairness, 266, 282

large execution time

splitting tasks with, 276

tasks with, 273277

major, minor cycle length, 272273

process models, 266269

real-time scheduling

algorithms, 269

analysis methods, 268

schedule scheduling task set, small major cycle, 274

scheduling, 266269

D

Daisy chain configuration, 18

Data buffer, 32

Data streaming from camera device, 3742

Deadline monotonic priority assignment, schedulability analysis, 327

Deadline monotonic scheduling, schedulability analysis, 328

Deadlock, 4, 79102, 131, 177, 348, 350351

analog-to-digital converter, 89

avoidance, 9197

circular wait, 83

conditions, 83

defined, 83

detection, 98100

detection and recovery algorithm, 101

hold and wait, 83

living with, 8687

nonpreemption, 83, 89

prevention, 8791

recovery, 98100

reductio ad absurdum, 90, 308

request resources, 80, 90

resource allocation, 8486

graph, 84

reusable resources, 80

Degree of concurrency, 111

Device capability configuration parameters, 28

Device descriptor, 26, 3233

Digital low-pass filter, 462483

aliasing phenomena, 478

building, 479482

Butterworth filter, third-order, 473475

circular buffers, 480

Fourier transform, 462466

third-order Butterworth filter, 475

harmonics, 462466

low-pass filters, 466473

sampling period, 473479

signal to noise ratio, 482483

Digital signal processing, control theory, 443484

digital low-pass filter, 462483

aliasing phenomena, 478

building, 479482

Butterworth filter, third-order, 473475

circular buffers, 480

Fourier transform, 462466, 475

harmonics, 462466

low-pass filters, 466473

sampling period, 473479

signal to noise ratio, 482483

liquid level in tank, 444462

dynamics of system, 445448

homogeneous solution, 446447

implementing transfer function, 455461

integral gain, 448450

multiple inputs, outputs, 461

system properties, transfer function, 452455

transfer functions, Laplace domain, 450452

zeroes, tank-pump system, 454

Dimension of buffer, 32

Direct blocking, 340341, 347, 365, 367

Direct memory access, 2022

Direct vs. indirect naming scheme, 143

Distributed data, 219

DM. See Deadline monotonic

Dual-kernel approach, Linux real-time extensions, 412419

E

Earliest deadline first, 6, 279, 283, 292, 295, 308, 330, 417

schedulability test, 306311

EDF. See Earliest deadline first

Edge detection, 4254

optimizing code, 4554

Edge pixels, matrix from, 57

Efficiency, 189, 266

Ethernet network frame, 224

Ethernet protocol, 220221

Extended rendezvous, 148

Extra interference, 363364, 370, 372

F

First in first out, 80, 168169, 183, 202, 281, 403, 417

Fixed, variable task priority, 280283

general purpose operating systems, 281283

preemption, 280281

Fourier transform, 462466

third-order Butterworth filter, 475

Frame splitting, 222

FreeRTOS, 430436

internal structure, 375400

context switch, task scheduler, 375383

data structures, 376, 381384

datstructure, 385

message queue, 386

new architecture, porting FreeRTOS to, 389400

stack layout during FreeRTOS context switch, ARM cortex-M3 architecture, 395

synchronization primitives, 383389

task control block, 378

xQUEUE fields with different meaning, 388

interprocess communication primitives, 191218

absolute time delays, 215

binary semaphores, 207208, 388

counting semaphores, 207213

main message-queue related primitives, 200

message queues, 199207

mutex semaphores, 207

mutual exclusion semaphores, 207213

processes, 192199

relative vs. absolute time delays, 215

semaphore creation/deletion primitives, 208

semaphore manipulation primitives, 210

task-related primitives, 192

threads, 192199

time-related primitives, 213

operating system abstraction layer, 430436

Full priority inheritance, 419

G

GNU General Public License, 192

H

Hardware-assisted lock variables, 113116

Harmonics, 462466

Hold and wait condition, 88, 132

Hough transform, 54

I

IACK, 1819, 24

Image format definition, 28

Immediate priority ceiling, task scheduling with, task interactions, blocking, 357

Input output on computers, 1222

accessing I/O registers, 1215

direct memory access, 2022

interrupt sequence, 19

interrupt vector number, 1820, 2425

synchronization in I/O, 1520

Input/output operations, 2226

Linux input/output abstraction, 2627

software interrupts, 2425

user/kernel modes, 2327

user mode, 2325, 34, 37, 408

Instruction selection, 4748

Interframe gap, 221

Internal structure, FreeRTOS, 375400

context switch, task scheduler, 375383

data structures, 376, 381384

message queue, 386

datstructure, 385

new architecture, porting FreeRTOS to, 389400

stack layout during FreeRTOS context switch, ARM cortex-M3 architecture, 395

synchronization primitives, 383389

task control block, 378

xQUEUE fields with different meaning, 388

Interprocess communication, shared variables, 103140

active to passive wait, 121125

Brinch Hansen monitor, 138

concurrently incrementing shared variable, 106

condition synchronization semaphores, 130

condition variables, 133, 138, 159, 175177, 179180, 189190

critical regions, 103112

hardware-assisted lock variables, 113116

lock variables, 113

monitors, 130139

difficulty of semaphore use, 131

information hiding, 132

mutual exclusion, 130

passive wait, 124

Peterson’s software-based mutual exclusion, 117

POSIX approach, 137

process state diagram transitions, 127

race condition elimination, 136

race conditions, 103112

semaphore primitives, 127

semaphore to enforce mutual exclusion, 128

semaphores, 125130

software-based mutual exclusion, 116121

Interprocess communication message passing, 141158

asynchronous message passing, 155

asynchronous message transfer, 146

data representation, 152

direct vs. indirect naming scheme, 143

message buffers, 150151

message structure, contents, 151153

naming scheme, 143145

producer-consumer problem, message passing, 153156

receive primitive, 142, 145

remote invocation, 148149

message transfer, 148

send primitive, 142

synchronization model, 145150

synchronous message transfer, 147

Interrupt acknowledge cycle, 1819, 24

Interrupt sequence, 19

Interrupt service routine, 1720, 22, 24, 197, 392, 402, 406

Interrupt vector number, 1820, 2425

ISR. See Interrupt service routine

IVN. See Interrupt vector number

J

Jump instructions, 47, 50

K

Kernel mode, 2325, 37, 406408

Kernel preemption, Linux real-time extensions, 406409, 411

L

Lamport’s bakery algorithm, 121

Large execution time

splitting tasks with, 276

tasks with, 273277

Linux, 424430

input/output abstraction, 2627

operating system abstraction layer, 424430

signal events defined in, 187

Linux/POSIX, interprocess communication primitives, 159190

clocks, 187188, 213216

Linux, signal events defined in, 187

marge matrix summation execution time, 167

process creation, 169175

processes, 160175, 188189

interprocess communication among, 180187

message queues, 183186

semaphores, 180183

signals, 186187

programming model, 189

protection bitmask, 172

thread creation, 162169

threads, 160180, 188189

condition variables, 175180

mutexes, 175180

timers, 187188, 213216

Linux real-time extensions, 401420

adaptive priority ceiling, 419

Adeos, 412414

pipeline, 413414

dual-kernel approach, 412419

kernel preemption, 406409, 411

non-preemptible kernel sections, latency from, 408

PREEMPT_RT Linux patch, 409412

rate monotonic scheduling, 417

real time application interface, 416419

components, 418

layers, 417

round robin, 417

scheduler, 402406

scheduling policies, 417

Xenomai, 414416

domains, Adeos pipeline, 414

layers, 415

Liquid level in tank, 444462

dynamics of system, 445448

homogeneous solution, 446447

implementing transfer function, 455461

integral gain, 448450

multiple inputs, outputs, 461

system properties, transfer function, 452455

transfer functions, Laplace domain, 450452

zeroes, tank-pump system, 454

Lock, wait-free communication, 239262

concurrent read, write operations, opposite orders, 250

lock-free object, universal construction pseudocode, 260

memory management, faulty, race condition, object access, 258

multidigit registers, 241251

overwriting, copying object during, 259

readers/writer problem, 251254

lock-free solution C-like code, 252

retry loops, 241

sequential object implementation, into lock-free implementation, 256

theorems, 246249, 252253

universal constructions, 254262

Lock-based synchronization protocol, 111

Lock variables, 113

Low-pass filters, 466473

M

Machine-dependent optimization, 4849

destination, 221

source, 221

Main message-queue related primitives, FreeRTOS, 200

MAR. See Memory address register

Mask of devices to be monitored for exceptions, 33

Matrix from edge pixels, 57

Memory address register, 21

Memory management, faulty, race condition, object access, 258

Memory management unit, 76, 191, 405

Memory mapped I/O, bus architecture for, 14

Memory protection unit, 76, 193, 380

Message buffers, 150151

Message queues, 183186

FreeRTOS, 199207, 386

Message structure, contents, 151153

MMU. See Memory management unit

Monitors, 130139

difficulty of semaphore use, 131

information hiding, 132

MPU. See Memory protection unit

Multicore systems, parallelism, 64, 312313, 406

Multidigit registers, 241251

Multiprocessor, parallelism, 64, 108, 116, 242, 312, 362, 406

Multiprogramming, parallelism, 6466, 69, 77, 105, 192, 216

Multithreading, 1, 11, 63, 7577

process state components, 76

Mutex semaphores, FreeRTOS, 207

Mutual exclusion, 130

software-based, 116121

Mutual exclusion semaphores, FreeRTOS, 207213

N

Naming scheme, 143145

Nanokernel, 402, 412

Network communication, 219238

address resolution, 222223

address resolution protocol, 223

computing power, 219, 237

distributed data, 219

Ethernet network frame, 224

Ethernet protocol, 220221

frame splitting, 222

interframe gap, 221

machine-dependent optimization

destination, 221

source, 221

packet length, 221

payload, 221224

preamble, start frame identifier, 221

preamble and start frame identifier, 221

single point of failure, 219

sockets, 225232

TCP/IP sockets, 225232

TCP/IP, 222225

transmission error management, 222

UDP, 222225

UDP sockets, 232235

New architecture, porting FreeRTOS to, 389400

Non-preemptible kernel sections, Linux real-time extensions, latency from, 408

Number of involved devices, 33

O

Open systems interconnection, 220

Operating system abstraction layer, 421442

FreeRTOS implementation, 430436

Linux implementation, 424430

multiplatform application, 436440

object oriented interface, 423436

OSI. See Open systems interconnection

Overwriting, copying object during, 259

P

Parallelism, 6365

multicore systems, 64, 312313, 406

multiprocessor, 64, 108, 116, 242, 312, 362, 406

multiprogramming, 6466, 69, 77, 105, 192, 216

sequential process, 6465

Passive wait, 71, 7374, 103, 121, 124125, 139

Payload, 221224

PCI buses, bus architecture with, 16

Peterson’s software-based mutual exclusion, 117

Poles, transfer function, tank-pump system, 454

Porting FreeRTOS to new architecture, 389400

POSIX/Linux, interprocess communication primitives, 159190

clocks, 187188, 213216

Linux, signal events defined in, 187

marge matrix summation execution time, 167

process creation, 169175

processes, 160175, 188189

interprocess communication among, 180187

message queues, 183186

semaphores, 180183

signals, 186187

programming model, 189

protection bitmask, 172

threads, 160180, 188189

condition variables, 175180

creation, 162169

mutexes, 175180

timers, 187188, 213216

Preamble, start frame identifier, 221

Preemption, kernel, Linux real-time extensions, 411

PREEMPT_RT Linux patch, Linux real-time extensions, 409412

Prevention of deadlock, 8791

Priority ceiling

Linux real-time extensions, 419

Priority ceiling protocol, task interactions, blocking, 348353

Priority inheritance, task interactions, blocking, task scheduling with, 356

Priority inheritance protocol, task interactions, blocking, 337348

Priority inversion problem, task interactions, blocking, 334337

Privileged instructions, 23

Process creation, 169175

Process life cycle, 7075

Process models, 266269

Process state, 6769

components, 68

Process state diagram, 7075

transitions, 127

Processes, 160175, 188189

interprocess communication among, 180187

message queues, 183186

semaphores, 180183

signals, 186187

Processor, defined, 69

Producer-consumer problem, message passing, 153156

Program, defined, 69

Programming model, 189

Protection bitmask, 172

Pseudo parallelism, 64

Push-through blocking, 340342, 344, 346, 349, 357

Q

Queues, message, 183186

R

Race conditions, 103112, 123, 133137, 139, 179, 239, 257259

Rate monotonic optimality, 283291

earliest deadline first scheduler, 292

priority assignment, 284

proof of rate monotonic optimality, 285291

theorems, 286, 291

Read device mask, 33

Real-time, task-based scheduling, 279294

fixed, variable task priority, 280283

general purpose operating systems, 281283

preemption, 280281

rate monotonic optimality, 283291

earliest deadline first scheduler, 292

priority assignment, 284

proof of rate monotonic optimality, 285291

theorems, 286, 291

Real time application interface, 416

Linux real-time extensions, 416419

components, 418

layers, 417

Real-time concurrent programming, 6378

multithreading, 7577

process state components, 76

parallelism, 6365

multicore systems, 64, 312313, 406

multiprocessor, 64, 108, 116, 242, 312, 362, 406

multiprogramming, 6466, 69, 77, 105, 192, 216

sequential process, 6465

process definition, 6567

process life cycle, 7075

process state, 6769

components, 68

process state diagram, 7075

Real-time scheduling, 263372

algorithms, 269

analysis methods, 268

cyclic executive, 265278

cyclic executive, 269272

major, minor cycle length, 272273

real-time scheduling, 265278

scheduling, 266269

scheduling task set, 271

task execution, 270

fairness, 266, 282

large execution time

splitting tasks with, 276

tasks with, 273277

major, minor cycle length, 272273

process models, 266269

real-time, task-based scheduling, 279294

fixed, variable task priority, 280283

rate monotonic optimality, 283291

response time analysis, schedulability analysis, 315332

aperiodic tasks, 324330

deadline monotonic priority assignment, 327

deadline monotonic scheduling, 328

worst-case execution time, computing, 321324

schedule scheduling task set, small major cycle, 274

self-suspension, schedulability analysis, 361372

critical instant theorem, self-suspension, 362365

response time extension, 369372

self-suspension, 363

task interaction, self-suspension, 365369

task interactions, blocking, 333360

immediate priority ceiling, task scheduling with, 357

priority ceiling protocol, 348353

priority inheritance, task scheduling with, 356

priority inheritance protocol, 337348

priority inversion problem, 334337

schedulability analysis, 353359

theorems, 345, 347, 350352

transitive priority inheritance, 346

unbounded priority inversion, 335

utilization, schedulability analysis, 295314

overflow, sample task set, 309

processor utilization, 296298

schedulability condition, 298

schedulability test, earliest deadline first, 306311

sufficient schedulability test for rate monotonic, 298306

theorems, 297, 303, 308

Utub for N tasks, 303306

Utub for two tasks, 298303

Recursive mutex semaphores, 207

Register allocation, 48

Relative time delays vs. absolute time delays, FreeRTOS, interprocess communication primitives, 215

Remote invocation, 148149

message transfer, 148

Resource allocation graph, 79, 8486, 98

Response time analysis, 315, 354, 367

schedulability analysis, 315332

aperiodic tasks, 324330

deadline monotonic priority assignment, 327

deadline monotonic scheduling, 328

sporadic tasks, 324330

worst-case execution time, computing, 321324

Response time extension, 369372

Retry loops, 241

RM. See Rate monotonic

Routing, 222223

RTA. See Response time analysis

RTAI. See Real time application interface

S

Schedulability analysis

response time, 315332

aperiodic tasks, 324330

deadline monotonic priority assignment, 327

deadline monotonic scheduling, 328

sporadic tasks, 324330

worst-case execution time, computing, 321324

utilization, 295314

overflow, sample task set, 309

processor utilization, 296298

schedulability condition, 298

schedulability test, earliest deadline first, 306311

sufficient schedulability test, rate monotonic, 298306

theorems, 297, 303, 308

Utub for N tasks, 303306

Utub for two tasks, 298303

Schedule scheduling task set, small major cycle, 274

Scheduling task set, cyclic executive, 271

SCSI bus, bus architecture with, 16

Self-suspension

schedulability analysis, 361372

blocking, 365

critical instant theorem, self-suspension, 362365

response time extension, 369372

self-suspension, 363

task interaction, self-suspension, 365369

task, 369, 372

Semaphore, to enforce mutual exclusion, 128

Semaphore creation/deletion primitives, FreeRTOS, 208

Semaphore manipulation primitives, FreeRTOS, interprocess communication primitives, 210

Semaphore primitives, 127

Semaphores, 125130, 180183

Send primitive, 142

Separate I/O bus, bus architecture with, 13

Sequential object implementation, into lock-free implementation, 256

Sequential process, parallelism, 6465

Shared variables, interprocess communication, 103140

active to passive wait, 121125

Brinch Hansen monitor, 138

concurrently incrementing shared variable, 106

condition synchronization semaphores, 130

condition variables, 133, 138, 159, 175177, 179180, 189190

critical regions, 103112

hardware-assisted lock variables, 113116

lock variables, 113

monitors, 130139

difficulty of semaphore use, 131

information hiding, 132

mutual exclusion, 130

passive wait, 124

Peterson’s software-based mutual exclusion, 117

POSIX approach, 137

process state diagram transitions, 127

race condition elimination, 136

race conditions, 103112

semaphore primitives, 127

semaphore to enforce mutual exclusion, 128

semaphores, 125130

software-based mutual exclusion, 116121

Signal events defined in Linux, 187

Signal to noise ratio, 482483

Signals, 186187

Single-input and single-output, 461

Single point of failure, 219

SISO systems. See Single-input and single-output

Sockets, 225232

TCP/IP sockets, 225232

Software-based mutual exclusion, 116121

Software interrupts, 2425

Splitting tasks, large execution time, 276

Sporadic tasks, schedulability analysis, 324330

Stack layout during FreeRTOS context switch, ARM cortex-M3 architecture, 395

Stack pointer, 76, 160, 162, 379382, 395398, 405406, 417

Start frame identifier, 221

Static variable, sharing data via, 37

Sufficient schedulability test, rate monotonic, 298306

Supervisor mode, 23

Synchronization, 141

Synchronization in I/O, 1520

Synchronization model, 145150

Synchronization primitives, FreeRTOS, 383389

Synchronization semaphores, 130, 133, 138, 212, 268

Synchronous message transfer, 147

T

Tank liquid level, 444462

dynamics of system, 445448

homogeneous solution, 446447

implementing transfer function, 455461

integral gain, 448450

multiple inputs, outputs, 461

system properties, transfer function, 452455

transfer functions, Laplace domain, 450452

zeroes, tank-pump system, 454

Task control block, 375, 378379

Task interactions, blocking, 333360

immediate priority ceiling, task scheduling with, 357

priority ceiling protocol, 348353

priority inheritance, task scheduling with, 356

priority inheritance protocol, 337348

priority inversion problem, 334337

schedulability analysis, 353359

theorems, 345, 347, 350352

transitive priority inheritance, 346

unbounded priority inversion, 335

task scheduling with, 355

TCB. See Task control block

TCP/IP, 222225

Third-order Butterworth filter, 473475

Threads, 160180, 188189

condition variables, 175180

creation, 162169

FreeRTOS, interprocess communication primitives, 192199

mutexes, 175180

Throughput, 5, 13, 220, 266267, 282, 322323, 405, 479

Time-related primitives, FreeRTOS, interprocess communication primitives, 213

Timers, 187188, 213216

Transitive priority inheritance, task interactions, blocking, 346

Transmission error management, 222

U

UDP, 222225

UDP sockets, 232235

Unbounded priority inversion, task interactions, blocking, 335, 355

Universal constructions, 254262

Unsuitable process interleavings may produce incorrect results, 67

User/kernel modes, 2327

User mode, 2325, 34, 37, 408

Utilization, schedulability analysis, 295314

overflow, sample task set, 309

processor utilization, 296298

schedulability condition, 298

schedulability test, earliest deadline first, 306311

sufficient schedulability test for rate monotonic, 298306

theorems, 297, 303, 308

Utub for N tasks, 303306

Utub for two tasks, 298303

V

Virtual address translation, 36

Virtual memory, 3437

address translation, 35

Vision control, case study, 1162

acquiring images from camera device, 2842

synchronous read from camera device, 2934

camera device, images from

data streaming from camera device, 3742

virtual memory, 3437

circular shape

center coordinates, 5460

sample image, 56

code reduction, 47

device capability configuration parameters, 28

edge detection, 4254

optimizing code, 4554

edge pixels, matrix from, 57

Hough transform, 54

image format definition, 28

input output on computers, 1222

accessing I/O registers, 1215

direct memory access, 2022

interrupt sequence, 19

interrupt vector number, 1820, 2425

synchronization in I/O, 1520

input/output operations, 2226

Linux input/output abstraction, 2627

software interrupts, 2425

user/kernel modes, 2327

user mode, 2325, 34, 37, 408

mask of devices to be monitored for exceptions, 33

memory mapped I/O, bus architecture for, 14

number of involved devices, 33

page table translation to map, 38

PCI buses, bus architecture with, 16

read device mask, 33

register allocation, 48

SCSI bus, bus architecture with, 16

separate I/O bus, bus architecture with, 13

static variable, sharing data via, 37

virtual address translation, 36

virtual memory address translation, 35

voting matrix from edge pixels, 57

wait timeout specification, 33

write device mask, 33

von Neumann architecture, 104

Voting matrix from edge pixels, 57

vTaskDelay, vTaskDelayUntil, 215

vTaskDelayUntil, 215

W

Wait-free communication, 5, 239241, 243, 245, 247, 249, 251, 253, 255, 257, 259, 261262

concurrent read, write operations, opposite orders, 250

lock, 239262

lock-free object, universal construction pseudocode, 260

memory management, faulty, race condition, object access, 258

multidigit registers, 241251

overwriting, copying object during, 259

readers/writer problem, 251254

lock-free solution C-like code, 252

retry loops, 241

sequential object implementation, into lock-free implementation, 256

theorems, 246249, 252253

universal constructions, 254262

Wait timeout specification, 33

Word count register, 21

Worst-case blocking time, 199, 240, 341, 343344, 347348, 351352, 354, 359, 361, 365, 368370

Worst-case execution time, schedulability analysis, 321324

Write device mask, 33

X

Xenomai, Linux real-time extensions, 414416

domains, Adeos pipeline, 414

layers, 415

xQUEUE fields, different meaning, FreeRTOS, 388

Y

YUYV format, 2832, 40, 4243

Z

Zeroes, poles, transfer function, tank-pump system, 454

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.133.154.64