real time system 12 philip a laplante 2nd edition

34
Gloss ary A Accept operation. Operation on a mailbox that is similar to the pend operation,except that if no clata are available, the task retums immediately from the call with a condition code rather than susPending. Access time. The interval between when data are requested from the memory cell and when they are actually available. Accumulator. An anonymousregister used in certain computer instructions. Activity packet. A special token passed between the processors in a dataflow architecture. Each token contains an opcode, operand count, operands,and a list of destination addresses for the result of the computation. Actual parameter. The named variable passed to a procedure or subroutine. Address bus. The collection of wires neededto access individual memory addresses' Alpha testing. A type ofvalidation consistingofinternal distribution and exercise ofthe software. ALU. See arithmetic logic unit' Anatog-to-digital conversion. The process of convertingcontinuous(analog; signals into discrete (digital) ones. Anonymous variable. A hidden variable createdby the compiler to facilitate call-by- value parameterpassing. Application programs" Programs users write to solve specific problems. Arithmetic logic unit. The CPU intemal device that performs arithmetic and logical operations. Assemblers. Software that translatesassemblylanguage to machine code. Assembly language. The set of symbolic equivalents to the macroinstruction set. 327

Upload: anshuljain77

Post on 27-Apr-2015

417 views

Category:

Documents


2 download

DESCRIPTION

For more notes on engg and CA visit www.anshuljain.net

TRANSCRIPT

Page 1: Real Time System 12 Philip A Laplante 2nd Edition

Gloss ary

AAccept operation. Operation on a mailbox that is similar to the pend operation, except

that if no clata are available, the task retums immediately from the call with a condition

code rather than susPending.

Access time. The interval between when data are requested from the memory cell and

when they are actually available.

Accumulator. An anonymous register used in certain computer instructions.

Activity packet. A special token passed between the processors in a dataflow

architecture. Each token contains an opcode, operand count, operands, and a list of

destination addresses for the result of the computation.

Actual parameter. The named variable passed to a procedure or subroutine.

Address bus. The collection of wires needed to access individual memory addresses'

Alpha testing. A type ofvalidation consisting ofinternal distribution and exercise ofthe

software.

ALU. See arithmetic logic unit'

Anatog-to-digital conversion. The process of converting continuous (analog; signals

into discrete (digital) ones.

Anonymous variable. A hidden variable created by the compiler to facilitate call-by-

value parameter passing.

Application programs" Programs users write to solve specific problems.

Arithmetic logic unit. The CPU intemal device that performs arithmetic and logical

operations.

Assemblers. Software that translates assembly language to machine code.

Assembly language. The set of symbolic equivalents to the macroinstruction set.

327

Page 2: Real Time System 12 Philip A Laplante 2nd Edition

328

Associative memory.contents.

Asynchronous event.

Atomic instruction.

I Glossary

Memory organized so that it can be searched according to its

An event that is not synchronous.

An instruction that cannot be intenupted.

BBackground. Non-interrupt driven processes in foreground/background systems.

BAM. See binary angular measurement.

Banker's algorithm. A technique sometimes used to prevent deadlock situations.

Bathtub curve. A graph describing the phenomenon that in hardware components most

errors occur either very early or very late in the life of the component. Some believe

that it is applicable to software.

Belady's Anomaly. The observation that in the FIFO page replacement rule, increasing

the number of pages in memory may not reduce the number of page faults.

Beta testing. A type of system test where preliminary versions of validated software are

distributed to friendly customers who test the software under actual use.

Binary angular measurement. An n-bit scaled number where the least significant bit

is 2"- ' .180.

Binary semaphore. A semaphore that can take on one of two values.

Binary tree. A collection of n nodes, one of which is a special one called the root. The

remaining n - 1 nodes form at most two subtrees.

Black box testing. A testing methodology where only the inputs and outputs of the unit

are considered. How the outputs are generated inside the unit is ignored.

Blocked. The condition experienced by tasks that are waiting for the occurrence of an

event.

Broadcast communication. In statecharts, a technique that allows for transitions to

occur in more than one orthogonal system simultaneously.

Buffer. A temporary data storage area used to interface between, for example, a fa^st

device and a slower process servicing that device.

Burn-in testing. Testing that seeks to flush out those failures that appear early in the life

of the part and thus improve the reliability of the delivered product.

Burst period. The time over which data are being passed into a buffer.

Bus arbitration. The process of ensuring that only one device at a time can place data

on the bus.

Bus contention. Condition in which two or more devices attempt to gain control of the

main memory bus simultaneously. - --

Bus cycle. Memory fetch.

Bus grant. A signal provided by the DMA controller to a device indicating that it has

exclusive rights to the bus.

Bus time-out. A condition whereby a device making a DMA request does not receive

a bus grant before some specified time.

Busy wait. In polled loop systems, the process of testing the flag without success.

Page 3: Real Time System 12 Philip A Laplante 2nd Edition

I Glossary 329

CCall-by-address. See call-by-reference.

Call-by-reference. The process in which the address of the parameter is passed by thecalling routine to the called procedure so that it can be altered there.

Call-by-value. Parameter passing method in which the value of the actual paramerer inthe subroutine or function call is copied into the procedure's formal parameter.

Calling trees. See structure chart.CASE. Computer-aded software engineering.Catastrophic error. An error that renders the svstem useless.CCR See condition code register.

Cellular automata. A computational paradigm for an efficient description of SIMDmassively parallel systems.

Chain reaction. In statecharts, a group of sequential events where the nth event istriggered by the (n - l)th event.

Checkpoints. 'Code

that outputs intermediate results to allow an external Drocess tomonitor the efficacy of the process in questron-

Checksum. A simple binary addition of all program code memory locations used roverify the contents.

Circular queu€. See ring buffer.

CISC. See complex instruction set computer.

Class definitions. Object declarations along with the methods associated with thern.Clear box testing. See white box testing.

Code inspection. See group walkthrough.

Collision. Condition in which a device already has control of the bus and anotherobtains access. Also, simultaneous use of a critical resource.

C-ompaction. The process of compressing fragmented memory so that it is no lon-eerfragmented. Also called coalescing.

Compiler. Software rhat translares high-order language programs into assembll, codeComplex instruction set computers. Architectures characterized bv a larse. micrr.-

coded instruetion set with numerous addressing modes.Composition. An operation applied to a reliability matrix that determines the marin-iuir

reliability between processors.

Compute-bound. Computations in which the number of operations is laree in ;,r:---parison to the number of I/O instructions.

Condition code register. Intemal CPU register used to implemenr a .Lrr.,i::1.-:.;.transfer.

Conditional transfer. A change of the program counter based on the resuk .ri : !3>:Content.addressable memory. See associatrve memory.context. The minimum information that is needed in order to sa'e a curienrlr .\e.-urrns

task so that it can be resumed.

Context switching. The process of saving and restorine suft-rcient information for areal-time task so that it can be resumed after beins intem-rpred.

Page 4: Real Time System 12 Philip A Laplante 2nd Edition

330 I Glossary

Continguous firle allocation. The process of forcing all allocated file sectors to follow

one another on the disk.

iontinuous random variable. A random variable with a continuous sample space.

Control flow diagram. A real-time extension to dataflow diagrams that shows the flow

of control signals through the system.

Control specifications. In dataflow diagrams, a finite state automaton in diagrammatic

and tabular representation.

Control unit. CPU internal device that synchronizes the fetch-execute cycle.

Cooperative multitasking system. A scheme in which two or more processes are

divided into states or phases, determined by a finite state automaton. Calls to a central

dispatcher are made after each phase is complete.

Coprocessor. A second specialized CPU used to extend the macroinstruction set.

Coroutine system. See cooperative multitasking system.

Correlated data. See time-relative data.

Counting semaphore. A semaphore that can take on two or more values.

CPU. Central processing unit.

CRC. See cyclic redundancY code.

Critical region. Code that interacts with a serially reusable resource.

CU. See control unit.

Cycle stealing. A situation in which DMA access precludes the CPU from accessing the

bus.

Cyclic redundancy code. A method for checking ROM memory that is superior to

checksum. See Chapter 11.

Cycling. The process whereby all tasks are being appropriately scheduled (although no

actual processing is occurring).

cyciomatic complexity. A measure of a system reliability devised by McCabe.

DDaemon. A device server that does not run explicitly but rather lies dormant waiting for

some condition(s) to occur.

Dangerous allocation. Any memory allocation that can preplude system determi-

nrsm.

Data bus. Bus used to carry data between the various components in the system.

Dataflow architectures. A multiprocessing system that uses a large number of speciai

processors, and computation is performed by passing activiti packs between them.

Dataflow diagrams. A structured analysis tool for modeling software systems.

Dead code. See unreachable code.

Deadlock. A catastrophic situation that can arise when tasks are cornpeting for the sarne

set of two or more serially reusable resources.

Deadly embrace. See deadlock.

Death spiral. Stack overflow caused by repeated spurious interrupts.

Decode. The process of isolating the opcodeTield of a macroinstruction and determin-:ne

the address in micromemory of the programming corresponding to it'

Page 5: Real Time System 12 Philip A Laplante 2nd Edition

I Glossary 33r

Defect. The preferred term for an error in requirement, design, or code. See also fault,

failure.

Demand page system. Technique where program segments are permitted to be loaded

in noncontiguous memory as they are requested in fixed-size chunks.

Density. In computer memory, the number of bits per unit area.

De-referencing. The process in which the actual locations of the parameters that are

passed using call-by-value are determined'

Derivative of f at x. Represents the slope of the function / at point x.

Deterministic system. A system where for each possible state. and each Set of inputs,

a unique set of outputs and next state of the system can be determined.

Digital-to-analog conversion. The process of converting discrete (digital) signals into

continuous (analog) ones.

Direct memory access. A scheme in which access to the computer's memory is

afforded to other devices in the system without the intervcntion of the CPU'

Direct mode instruction. Instruction in which the operand is the data contained at the

address specified in the address field of the instruction.

Discrete random variable. A random variable drawn from a discrete sample space.

Discrete signals. Logic lines used to control devices.

Dispatcher. The part of the kernel that performs the necessary bookkeeping to start 3

task.

Distributed real.time systems. A collection of interconnected self-contained pro-

cessofs.

DMA. See direct memory access.

DMA controller. Device that performs bus arbitration.

Dormant state. ln the task-control block model, a state that is best described as a TCB

belonging to a task that is unavailable to the operating system.

Double-buffering. A technique using two buffers where one is tllled while the data ir

the other is being used.

DRAM. Dynamic random access memory.

Drive line. In core memory, a wire used to induce a magnetic field in a toroid-shrpe;

magnet. The orientation of the field represents either a 1 or a 0'

Dynamic memory. Memory that uses a capacitor to store logic 1s and 0s. and thet ::-.:

be refreshed periodically to restore the charge lost due to capacitive discharse

Dynamic priority system. A system in which the priorities of tasks ca: ;:i:::

Contrast with fixed priority system'

EEffort. One of Halstead's metrics (see Chapter 11)'

Embedded system. Software used to conffol speci.alized harClare .l';;:.:: :: ---e

computer system.

EncapSulation. A condition that arises when a class of objecis ;n.j ilre rrFEri'.- I --: '-i:l

can be performed on are isolated in both access and implementation'

Page 6: Real Time System 12 Philip A Laplante 2nd Edition

332 I Glossary

Event. Any occurrence that results in a change in the state of a system.

Event determinism. When the next states and outputs of the system are known for eachset of inputs that trigger events.

Event flag. Synchronization mechanism provided by certain languages.

Exception. Error or other special condition that arises during program execution.

Exception handler. Code used to process exceptlons.

Execute. Process of sequencing througli the steps in micromemory corresponding to aparticular macroinstruction.

Executing state. In the task-control block model, a task that is currently running.

Exccutive. See kernel.

Extennal fragmentation. When main memory becomes checkered with unused butavailable partitions, as in Figure 8.-5.

FFailed system. A system thai cannot satisfy one or more of the requirements listed in the

formal system specification.

Failure. A fault that causes the software system to fail to meet one of its requirements.See also defect.

Failure function. A function describing the probability that a system fails at time r.

Fault. The appearance of a defect during the operation of a software system;synonymous with error or bug. See also failure.

Fault tolerance. The ability of the system to continue to function in the presence ofhardware or software failures.

Fetch. The process of retrieving a macroinstruction from main memory and placing itin the instruction register.

Fetch-execute cycle. The process of continuously fetching and executing macroinstruc-tions from main memory.

File fragmentation. Analogous to memory fragmentation but occurring within files,with the same associated problems.

Finite state automaton. A mathematical technique used to represent systems with finiteinput and output spaces. Also known as a finite state machine.

Firing. In Petri nets or in certain multiprocessor architectures, when a process block orprocess performs its prescribed function.

Firm real-time system. A system with hard deadlines where some lowmissing a deadline can be tolerated.

Fixed priority system. A system in which the taskContrast with dynamic priority system.

Fixed-rate system. A system in which intemrpts occui

Flip-flop. A bistable logic device.

Flow chart. Graphical algorithm representation.

Flush. In pipelined architectures, the act of emptyingoccurs.

of

priorities cannot be changed.

only at fixed rates.

the pipeline when branching

Page 7: Real Time System 12 Philip A Laplante 2nd Edition

I Glossary 333

Foreground. A collection of interrupt driven or real-time processes.

Formal parameter. The dummy variable used in the description of a procedure orsubroutine.

FSA. See finite state automaton.

FSM. See finite state automaton.

Function points. A widely used metric set in nonembedded environments; they formthe basis of many commercial software analysis packages. Function points measure thenumber of interfaces between modules and subsystems in programs or systems.

Functional requirements. Those system features that can be directly tested brexecuting the program.

GGarbage. Memory that has been allocated but is no longer being used by a task (that is.

the task has "lost track of it").

General register. CPU intemal memory that is addressable in the address field ofcertain macroinstructtons.

General semaphore. See counting semaphore.

General polynomial. The modulo-2 divisor of the message polynomial in CRC.

Granularity. See scale factor.

Group walkthrough. A kind of white box testing in which a number of persons inspectthe code line-by-line with the unit author.

H 1

-Hamming code. A coding technique used to detect and correct errors in computermemory.

Hard error. Physical damage to memory cell.

Hard real-time system. Systems where failure to meet response time constraints leadsto system failure.

Hybrid system. A system in which interrupts occur both at fixed frequencies andsporadically.

Hypercube processor. A processor configuration that is similar to the linear arrar'processor except that each processor element communicates data along a number ofother higher dimensional pathways.

IICE. See in-circuit emulation.

Immediate mode instruction. An instruction in which the operand is an intege:

Implied mode instruction. An instruction involving one or more specitk nnern\a{-\locations or registers that are implicitly defined in the operation pert-urrri trtinstruction.

Incidence matrix. A realiability matrix in which the enries are eitlrer I or 0.

Page 8: Real Time System 12 Philip A Laplante 2nd Edition

334 I Glossary

In-circuit emulation. A device that uses special hardware in conjunction with softwareto emulate the target CPU for debugging purposes.

Indirect mode instruction. Instruction where the operand field is a memory locationcontaining the address of the address of the operand.

Induction variable. A variable in a loop that is incremented or decremented by someconstant.

Information hiding. The process of isolating highly changeable sections of code.

Inheritance. In object-oriented programming, inheritance allows the programmer todefine new objects in terms of other objects that inherit their characteristics.

In-line patch. A patch that fits into the memory space allocated to the code to bechanged.

Input space. The set of all possible input combinations to a system.

Instruction register. CPU intemal register that holds the instruction pointed to by thecontents of the program counter.

Integration. The process of uniting modules from different sources to form the overallsystem.

Internal fragmentation. Condition that occurs in fixed-partition schemes when, forexample, a process requires I kilobyte of memory, while the only 2-kilobyte partitionsare available.

Interrupt. A hardware signal that initiates an event.

Interrupt handler. Special code used to respond to intemrpts. Also called an interruptservice routine.

Interrupt-handler location. Memory location containing the starting address of aninterrupt-handler routine. The program counter is automatically loaded with its addresswhen an interrupt occurs.

Interrupt latency. The delay between when an intemrpt occurs and when the CPUbegins reacting to it.

Interrupt register. Register containing a bit map of all pending (latched) interrupts.

Interrupt return location. Memory location where the contents of the program counteris saved when an intemrpt is processed by the CPU.

Interrupt vector. Register that contains the identity of the highest-priority intemrptrequest.

Intrinsic function. A macro where the actual function call is replaced by in-linecode.

JJackson Chart. A form of structure chart that provides for conditional branchins.

KKalrnan filter. A mathematical construct used to combine measurements of the same

quantity from different sources.

Kernel. The smallest portion of the operating system that provides for task scheduling,dispatching, and intertask communication.

Page 9: Real Time System 12 Philip A Laplante 2nd Edition

335I Glossary

Kernel preemption. A method used in real-time UNIX that provides preemptlon polnts

in cails to kemel functions to allow them to be intemrpted'

Key. In a mailbox, the data that are passed as a flag used to protect a critical region'

LLeaf. Any node in a tree with no subtrees'

Least recently used rule. The best nonpredictive page replacement algorithm'

Leveling. [n dataflow diagrams. the process of redrawing a diagram at a finer level of

detail.

Linear array processor. A processor organized so that multiple instructions of the same

type can be executed in Parallel'

L inker .Sof twarethatpreparesre locatableobjectcodeforexecut ton '

Little,s law. Rule trom queuing theory stating that the average number of customers in

aqueu ingSys tem,N" ' , i sequa l t o theave ragean i va l ra teo f thecus tomers to tha tsystem, ru,, times the average time spent in that system' ta"'

Live variable. A variable that can be used subsequently in the program'

Livelock. Another term for process starvatron'

Load module. Code that can be readily loaded into the machine'

Locality-of-ret'erence. The notion that if you examine a list of recently executed

progiu* instructions on a logic analyzer, you will see that most of the instructions are

iocalized to within a small number of instructtons'

Lock-up. When a system enters in which it is rendered ineffective'

L o o k - u p t a b l e . A n i n t e g e r a r i t h m e t i c t e c h n i q u e t h a t u s e s t a b l e s a n d r e l i e s o nmathematical definition of the derivative to compute functions quickly'

Loop invariant optimization. The process of placing computations outside a loop that

do not need to be performed within the loop'

Loose l ycoup ledsys tem.Asys temtha tcan runono the rha rdwarew i th the rewr i t eo fcertain modul:s

LRU. See least recenty used rule'

MMachine code. Binary instructions that affect specific computer operations' Also called

machine language.

Macrocode. See macroinstruction'

Macroinstruction. Binary program code stored in the main memory of the computer'

Also called macrocode.

Mailbox, An intertask communication device consi,sting of a memory locatlon in'J 'i A r-

operations-post and pend-that can be performed on it'

Main memory. Memory that is directly addressable by the CPU'

Major cycle. The largest sequence of repeating processes in c1'ciic or pencrltc i\ ilsl'l'ls

MAR. See memory address register'

Mask register. A register that contains a bit map either enabling or di'abling sFecric

intemrPts.

Page 10: Real Time System 12 Philip A Laplante 2nd Edition

336I Glossary

Master processor. The on-line processor in a master/slave configuration'

MDR. See memorY data register.

Memory address register (or MAR). Register that holds the address of the memory

location to be acted on.

Memory data register (or MDR). Register that holds the data to be written to or that

is read fiom the memory location held in the MAR'

Memory-loading. The percentage of usable memory that is being used'

Memory locking. In a real-time system, the process of locking all or certain parts of a

process lnro memory to reduce fhe <lverhead involved in paging, and thus make the

execution times more predictable.

Mesh processor. A processor configuration that is similar to the linear array processor

"^a"pt that each processor element also communicates data north and south'

Message exchange' See mailbox.

Message polynomial. Used in CRC (see Chapter 11)'

Methods. In object-oriented systems, functions that can be performed on objects.

MFT. Multiprogramming with a fixed number of tasks'

Microcode. A sequence of binary instructions corresponding to a particular macro-

instruction. Also called microinstructions'

Microcontroller. A computer system that is programmable via microcode.

Microinstructions. See microcode.

Micro-kerne| .Anano-kemel thata lsoprovidesfor taskschedul ing.

Micromemory. cPU intemal memory that holds the binary codes corresponding to

macroinstructions.

Microprogram. Sequence of microcode stored in micromemory'

Minor cycle. A sequence of repeating processes in cyclic or periodic systems'

Mixed listing. A printout that combines the high-order language instruction with the

equivalent assembly language code'

Mixed system. A system in which interrupts occur

sporadically"

both at fixed frequencies and

Multimedia computing. Computing that involves computer systems

resolution graphics, CD-ROM drives, mice, high-performance sound

multitasking operating systems that support these devices'

Mul t ip |exer .Adeviceusedtoroutemul t ip le l inesontofewer l ines.

Multiprocessing operating system. An operating system in which more than one

processor is available to provide for simultaneity; contrast with multitasking operating

sysrcm.

Multitasking operating system. An operating system that provides sufficient function-

ality to aiow multiple programs to run on a single processor so that the illusion of

simultaneity is created; contrast with multiprocessing operating system.

Mutex. A common name for a semaphore variable'

MUX. See multiPlexer'

MVT. Muftiprogramming with a variable number of tasks'

with high-cards, and

Page 11: Real Time System 12 Philip A Laplante 2nd Edition

I Glossary 337

NNano-kernel. Code that provides simple thread-of-execution (same as "flow-of-

control") management; essentially provides only one of the three services provided bya kernel-that is, it provides for task dispatching.

Nonfunctional requirements. System requirements that cannot be tested easily byprogram executron.

Nonvolatile menory. Memory whose contents are preserved upon removing povl'er.

Non-von Neumann architecture. An architecture that does not use the stored program,serial fetch-execute cycle.

No-op. A macroinstruction that does not change the state of the computer.

NP-complete problem, A decision problem that is a seemingly intractable problem forwhich the only known solutions are exponential functions of the problem size; comparewith NP-hard.

NP-hard. A decision problem that is similar to an NP-complete problem (except that forthe NP-hard problem not even an exponential time solution can be found).

nth Order reliability matrix. The composition of a reliability matrix with itself (n - l)trmes.

N-version programming. A technique used to reduce the likelihood of system lock-up

by using redundant processors, each running software that has been coded to the same

specifications by different teams.

Nucleus. See kernel.

oObject code. A specific collection of machine instructions.

Object-oriented language. A language that provides constructs that encourage a high

degree of information hiding and data abstraction.

Opcode. Starting address of the microcode program stored in micromemory.

Operating system. A unique collection of systems programs.

Organic system. A system that is not embedded.

Orthogonal process. In statecharts, the combined functionalit.v of t set of orrhogonalprocesses.

Orthogonal product. In statecharts. a process that depicts concrurent processes that r'Jn

in isolation.

Ostrich algorithm. A technique that advises that the problem of deadlock be ignored.

This solution is viable only in noncritical s\stems.

Output space. The set of all possible output combilations ior a s)'stem'

Overlay. Dependent code and data sections used in overlaf i,ng.

Overlaying. A technique that allows a srngle program to be larger than the allowable

user space.

Oversized patch. A patch that requires more memor)- than is curendy occupied by the

code to be replaced.

Page 12: Real Time System 12 Philip A Laplante 2nd Edition

I Glossary

PPage. Fixed-size chunk used in demand-paged systems.

Page fault. An exception that occurs when a memory reference is made to a locationwithin a page not loaded in marn memory.

Page-frame. See page.

Page stealing. When a page is to be loaded into main memory, and no free pages arefound, then a page frame must be written out or swapped to disk to make room.

Page table. A collection of pointers to pages used to allow noncontiguous allocation ofpage frames in demand paging.

Parnas partitioning. See information hiding.

Partial order relation. In process scheduling, an indicator that any process can callitself (reflexivity); if process A calls process B, then the reverse is not possible(antisymmetry), and if process A calls process B and process B calls process C, thenprocess A can call process C (transitivity).

Patching. The process of correcting errors in the code directly on the target machine.

PC. See program counter.

PDL. See program design language.

Peephole optimization. An optimization technique where a small window of assemblylangage or machine code is compared against known pattems that yield optimizationopportunltles.

Pend operation. Operation of removing data from a mailbox. If data are not available,the process performing the pend suspects itself until the data become available.

Petri net. A mathematical/pictorial system description technique.

Phase-driven code. See state-driven code.

Ping-pongbuffering. Seedouble-buffering.

Pipeline. An intertask communication mechanism provided in UNIX.

Pipelining. A technique used to speed processor execution that relies on the fact thatfetching the instruction is only one part of the fetch-execute cycle, and that it canoverlap with different parts of the fetch-execute cycle for other instructions.

Polled loop system. A real-time system in which a single and repetitive test instructionis used to test a flag that indicates that some event has occurred.

Polymorphism. In object-oriented programming, polymorphism allows the pro-grarnmer to create a single function that operates on different objects depending on thetype of object involved.

Post operation. Operation that places data in a mailbox.

Power bus. The collection of wires used to distribute Dower to the various componentsof the computer system.

Pragma. In certain programming languages, a pseudo-op that allows assembly code tobe placed in-line with the high-order language code.

Preempt. A condition that occurs when a higher-priority task interrupts a lower-prioritytask.

Preemptive priority system. A system that uses preemption schemes instead of round-robin or first-come/first-serve scheduling.

.."-:--:<]

338

Page 13: Real Time System 12 Philip A Laplante 2nd Edition

I Glossary

Primary memory. See main memory.

Priority ceiling protocol. A method used in interrupt driven systems to avoid priority

inversion; dictates that a task blocking a higher priority task inherits the higher priority

for the duration of that task.

Priority inversion. A condition that occurs because a noncritical task with a high

execution rate will have a higher priority than a critical task with a low execution

rate.

Process blocks. Subsysterrs used to calculate the overall system reliability.

Processing elements. The individual processors in a multiprocessing system such as a

systolic or wavefiont architecture.

Program counter. The CPU internal register that holds the address of the next

instruction to be executed.

Program design language. A type of abstract high-order language used in sYstem

specification.

Propagation delay. The contribution to interrupt latency due to limitation in switching

speeds of digital devices and in the transit time of electrons across wires.

Prototype. A mock-up of a software system often used during the design phase.

Pseudocode. A type of program design language.

RRaise. Mechanism used to initiate a software interrupt in certain languages such as C.

RAM scrubbing. A technique used in memory configurations that include error

detection and correction chips. The technique, which reduces the chance of multiple bit

errors occuring, is needed because in some configurations memory effors are corrected

on the bus and not in mernory itself. The corrected memory data then need to be written

back to rnemory.

Random variable. A function mapping elements of the sample space into a real

number.

Rate-monotonic system. A fixed-rate, preemptive, prioritized real-time system shere

the priorities are assigned so that the higher the execution frequency, the higher the

priority.

Reactive system. A system that has some ongoing interaction with its enrironment.

Read/write line. Logic line that is set to logic 0 during memory- u'rite and to logr. I

during memory read.

Ready state. In the task-control block model, the state of those thsks that are r:::i :.-

run, but not running.

Real-time system. A system that must satisf;- explicit tbcundea' :eirrcrit ll=.1

constraints or it will fail.

Recovery block. Section of code that terminate. in che.-\pr.int. lf the l ire:r:. -

processing can resume at the beginning of a recoren bir-t-k.

Recursion. A method uhereby a procedure can be self-relerenti ir i. ihat ls. l[ !-all in\\-hi-(call) itself.

339

Page 14: Real Time System 12 Philip A Laplante 2nd Edition

340 I Glossary

Reduced instruction set cornputer. Architecture usually characterized by a smallinstruction set with limited addressing modes and hard-wired (as opposed tomicrocoded) instructlons.

Reduction in strength. Optimization technique that uses the fastest macroinstructionpossible to accomplish a given calculation.

Re-entrant procedure. A procedure that can be used by several concurrently runningtasks in a multitasking system.

Register direct mode instruction. Instruction in which the operand field is areglster.

Register indirect mode instruction. Instruction in which the operand address is kept ina register named in the operand field of the instruction.

Regression testing. A test methodology used to validate updated softu,are against anold set of test cases that have already been passed.

Reliability matrix. In a multiprocessing system, a matrix that denotes the reliability ofthe connections between processors.

Response time. The time between the presentation of a set of inputs to a softwaresystem and the appearance of all the associated outputs.

Reverse Polish notation. The result of building a binary parse tree with operands at theleaves and operations at the roots, and then traversing it in post-order fashion.

Ring buffer. A first-in/first-out list in which simultaneous input and output to the list isachieved by keeping head and tail pointers. Data are loaded at the tail and read fromthe head.

RISC. See reduced instruction set computer.

Root. In overlaying memory management, the portion of memory containing theoverlay manager and code common to all overlay segments, such as math libraries.

Round-robin system. A system in which several processes are executed sequentially tocompletion, often in conjunction with a cyclic executive.

Round-robin system with time-slicing. A system in which each executable task isassigned a fixed time quantum called a time slice in which to execute. A clock is usedto initate an interrupt at a rate corresponding to the time slice.

SSample space. The set of outcomes to some experiment.

Sampling rate. The rate at which an analog signal is converted to digital form.

Scale factor. A technique used to simulate floating point operations by assigning animplicit noninteger value to the least significant bit of an integer.

sccs. Source code control system for management of system code; typical for UNIXoperating systems.

Schedualability analysis. The compile time prediction of execution time per-formance.

Scheduler. The part of the kernel that determines which task will run.

Scratch pad memory. CPU intemal memory used for intermediate results.

Page 15: Real Time System 12 Philip A Laplante 2nd Edition

311I Glossary

Screen signature. The CRC of a screen memory'

Secondarymemory.Memorythatischaracterizedbylong-termstoragedevicesSuchaStapes, disks, and cards'

Se l f -mod i f y i ngcode 'Code tha tcanac tua l l ychange i t se l f ; f o rexamp le 'by tak ingadvantage of tn" tu",iiat the opcodes of certain initructions may differ by only one

bit.

Semaphore. A special variable type used for protectrng critical regions'

Semaphore primitives' The two operations that can be performed on a semaphor'

namelY, wait and signal'

Semidetached system' See loosely coupled system'

Sensel ine. lncorememoryawirethat isusedto. . read' ' thememory.Dependingontheorientation of the magnetrc field in the core, a pulse is or is not generated in the sense

line.

Serialty reusable resource. A resource that can only be used by one task at a time and

that must be used to comPletion'

Server .Aprocessusedtomanagemul t ip lerequeststoaser ia l lyreusableresource.

SEU. See single event upset'

Signal. Exception-handling mechanism provided by certain languages' such as C'

S igna lope ra t i on .op " ,u t i - ononasemaphore tha tessen t i a l l y re leases the resou rce

Protected bY the semaPhore'

Single.eventupset .Al terat ionofmemorycontentsduetochargedpart ic lespresent lnJpu"", ot in the presence of a nuclear event'

S|aveprocessor .Theof f - l ine,processor inamaster /s laveconf igurat ion.

Soft eiror. Repairable alteration of the contents of memory'

Sof t real - t imesystem.Asysteminwhichperformancersdegradedbynotdestroyedblfailure to meet response time constrarnts'

Software. A collection of macroinstructlons'

Sof twarere l iab i l i ty .Theprobabi l i ty thatasof twaresystemwi l lnot fa i lbeforesometime t.

Spatiat fault tolerance' Methods involving redundant hardware or software'

Speculat iveexecut ion. Inmul t iprocessingsystems,asi tuat ionthat invol r 'eseni . ] ]eprocessor optimislcailv and predictively executing code in the next process birrrr' :>

longasthereisnodepend"ncyinthatprocessblockoncodethatcouidberu: i l - : . i . - :other Processors'

Spin lock. Another name for the wait semaphore operatlon'

Sporadic system. A system with all interrupts occulrlng sporadicarir'

Sporadic task. A task driven by an interrupt that occurs apen'rir'i'i

S p u r i o u s i n t e r r u p t s . E x t r a n e o u s a n d u n w a n t e d i n t e m l p t s i h " : , : , : ' . ' ] : : . . ] . . . _ . , : -loading.

SRAM. Static random-access memory'

Stack. A first-inAast-out data structure'

S tackmach ines .Compu te ra rch i t ec tu re inuh i chL te lns t . ' ; - - - : : i 3 r= ;en : i r 3 . JJ , i . : :intemal memory store called a stack' and an accurtuial"t

Page 16: Real Time System 12 Philip A Laplante 2nd Edition

342 I Glossary

Starvation. A condition that occurs when a task is not being serviced frequently

enough.

State-driven code. Program code based on a finite state automaton.

Static memory. Memory that does not rely on capacitive charge to store binary data.

Statistically based testing. Technique that uses an underlying probability distribution

function for each system input to generate random test cases.

Status register. A register involved in interupt processing that contains the value of the

lowest interrupt that will presently be honored.

Stress testing. A type of testing wherein the system is subjected to a large disturbance

in the inputs (for example, a large burst of interupts), foilowed by smaller disturbances

spread out over a longer period of time.

Structure chart. Graphical design tool used to partition system functionality.

Suspended state. In the task-control block model, those tasks that are waiting on a

particular resource, and thus are not ready. Also called the blocked state.

Swapping. The simplest scheme that allows the operating system to aliocate main

memory to two processes simultaneously.

Switch bounce. The physical phenomenon that an eiectricai signal cannot instanfa-

neously change from its logical false condition.

Synchronous data. See time-relative data.

Synchronous event. Event that occurs at predictable times in the flow-of-control.

Syndrome bits. The extra bits needed to implement a Hamming code.

System. An entity that when presented with a set of inputs produces

outputs.

System programs. Software used to manage the resources of the computer.

System unification. A process consisting of linking together the testing software

modules in an orderly fashron.

Systotic processors. Multiprocessing architecture that consists of a large number of

uniform processors connected in an array topology.

TTask-control block. A collection of data associated with a task including

process code (or a pointer to it), and other infonnation.

TCB. See task control block.

Telepresence. A form of virtual reality in which a human operator can remotely control

robots or other devices as if the operator were physically present.

Temporal determinism. A condition that occurs when the response time for each set of

outputs is known in a deterministic system.

Temporal fault tolerance. Techniques that allow for tolerating missed deadlines.

Test-and-set instruction. A macroinstruction that can atomically test and then set a

panicular memory address to some value.

Test probe. A checkpoint used only during testing'

Test suite. A collection of test cases.

Page 17: Real Time System 12 Philip A Laplante 2nd Edition

I Glossary 343

Thrashing. Very high paging activity.

Throughput. A measure of the number of macroinstructions per second that can beprocessed based on some predetermined instruction mix.

Time-loading. The percentage of "useful" processing the computer is doing. Alsoknown as the utilization factor.

Time overloaded. A system that is l00olo or more time-loaded.

Time-relative data. A iollection of data that must be time correlated,

Time-slice. A fixed time quantum used to limit execution time in round-robinsystems.

Transceivers. A transmitheceive hybrid device.

Tiansputer. A fully self-sufficient, multiple instruction set, von Neumann processor,designed to be connected to other transputers.

Trap. Internal interrupt caused by the execution of a certain instruction.

Tri-state. A high-impedance state that, in effect, disconnects a device from the bus.

UUnit. A software module.

Unreachable code. Code that can never be reached in the normal flow-of-control.

User space. Memory not required by the operating system.

Utilization facator. See time-loadine.

vVector processor. See linear iuray processor.

Version control software. A system that manages the access to the various componentsof the system from the software library.

Volatile memory. Memory in which the contents will be lost if power is removed.

von Neumann bottleneck. A situation in which the serial fetch and execution ofinstructions limits overall execution speed.

wWait and hold condition. The situation in which a task acquires a resource and then

does not relinquish it until it can acquire another resource.

Wait operation. Operation on a semaphore that essentially locks the resource protectedby the semaphore, or prevents the requesting task from proceeding if the resource isalready locked.

Wait state. Clock cycle used to synchronize macroinsEuction execution with the accesstime of memory.

Watchdog timer. A device that must be reset periodically or a discrete signal isissued.

Page 18: Real Time System 12 Philip A Laplante 2nd Edition

I Glossary

Wavefront processor. A multiprocessing architecture that consists of an array of

identical processors, each with its own local memory and connected in a nearest-

neighbor topology.

White box testing. Logic-driven testing-designed to exercise all paths in the module.

Page 19: Real Time System 12 Philip A Laplante 2nd Edition

Bibliography

[1] Adrion, W. Richards, Martha A. Branstad, and John C. Cherniavsky.Validation, verification, and testing of computer software. ACM ComputingSurvey (June 1982) :159-192.

[2] Aho, Alfred V., Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles,Techniques and Tools. New York: Addison-Wesley, i986.

[3] Aho, Alfred V., and Jeffrey D. Ullman. The Theory of Parsing, Translation.and Compiling, Vol. I: Parsing. Englewood Cliffs, N.J.: Prentice-Hall, 1972.

[4] Allard, James R., and Lowell B. Hawkinson. Real-time programming incommon LISP. Communications of the ACM 35, 9 (Sept. 1991): 64-69.

[5] Allworth, S. T., and R. N. Zobel. Introduction to Real-Time SoftwareDesign. Znd ed. New York: Springer-Verlag, 1987.

[6] American National Standards Institute. American National StandardProgramming Language FORTRAN. ANSI X3.9-1978. New York:Amen-can National Standards Institute, 1978.

[7] American National Standards Institute. American National StandarCReference Manual for the Ada Programming Language. ANSIiIr4il-Std-1815A-1983. New York: American National Standards Institute. 198-r.

[8] Andrews, Warren. RISC-based boards make headway in real-timeapplications. Computer Design (Oct. 1991): 69-80.

[9] Asimov, Isaac. (Jnderstanding Physics Vol. III. London: George .\llen &Unwin Ltd.,1966.

[10] Baker, T. P. A. stack-based resource allocation policy lbr real-rirneprocesses. Proceedings of the Ilth Real-Time S-r'slenrs 5-rnrpo-siirr':. I rl-gBuena Vista, Fla. (Dec. 1990): 191-200.

[11] Bartee; Thomas C- Computer Architecture and Loeic Desisn. \er* \brk:McGraw-Hill, 199i.

_1{i

Page 20: Real Time System 12 Philip A Laplante 2nd Edition

I BibliographY

[12] Baruah, Sanjoy K., Aloysius K. Mok, and Louis E. Rosier. Preemptively

scheduling hard real-time sporadic tasks on one pfocessor. Proceedings of

the llth R.eal-Time systems symposium. Lake Buena Vista, Fla' (Dec.

1990): 182-190,

[3] Bemhard, Robert. Super-minicomputers-The hottest game in town'

Systems & Sofrware 4(1985): 44-58'

[14] Blackman, M., The Design af Reat-Time Applications. New York: John

Wiley & Sons, 1975.

[15] Bodilsen, Svend. Scheduling theory and Ada 9x, Embedded systems

Programming (Dec. 1994): 32-52'

[16] Boehm, Barry. Software Engineering Economics. Englewood Cliff's' N'J':

Prentice-Hall, 1981.

[17] Boehm, Baffy. A spiral model of software development. ACM SIGSOFT.

Software Engineering Notes ll,4 (Aug' 1986)

[1g] Boussinot, Fr6d6ric, and Robert DeSimmi..The ESTEREL Language.

Proceedings of the IEEE,79,9 (Sept' 1991): 1293-1344.".,

[19] Brooks, Frederick P. The Mythicat Man Month. New York: Addison-

Wesley, 1982.

[20] Bucci, Giacomo, Maurizio campanai, and Paolo Nesi. Tools for specifying

real-tirne systems. Real-Time Systems Journal, (Jan' 1995)'

[21] Burns, Alan, and Andy wellings. Real-time systems and Their Program-

ming Languages. New York: Addison-Wesley, 1990'

[22] Campbell, Joe. C Programmer's Guide to Serial Communications'

Indianapolis: Howard Sams & Co., 1988'

l23l Cave, William C., and Alan B. Salisbury. Controlling the software life

cycle-The project management task. IEEE Transactions on sOftware

Engineering (JulY 1978): 326-334'

[24] Chirlian, Paul M. Analysis and Design of Integrated Electronic Circuits'

Znd,ed. New York: HarPer & Row, 1987'

[25] Clark, Edmund M. Jr., David E. Long, and Kenneth McMillen. A language

for computational specification and verification of finite state hardware

conrrollers. Proceedings of the IEEE,79,9 (Sept. 1991): 1283-1292.

126l cox, Brad. obiect-oriented Paradigms. New York: Addison-wesley,

1988.

I27l Cox, Brad. object-oriented Programming: An Evolutionary Approach'

New York: Addison-WesleY, 1991.

[28] Daigle, John N, Queuing Theory for Telecommunications. New York:

Addison-WesleY, t992.

[29] Davari; sadegh, Ted F. Jr. I-eibfried, Swami Natarajan, David Pruett, Lui

Sha and Wei Zhao. Real-time issues in the design of the data management

S y s t e m f o r t h e S p a c e s t a t i o n F r e e d o m . P r o c e e d i n g s o f t h e

346

Page 21: Real Time System 12 Philip A Laplante 2nd Edition

3{7I BibliograPhY

First Reat-Time Applications Workshop' Jrtly 1993' New York' IEEE CS

Press: 161-165.

[30] Davis, Martin' Computability and Unsotvability' New York: Dover

Publishing Co.,19'73'

[31] DeMarco, Tom' Structured Analysis and System Specificatiorn' Englewood

Cliffs, N.J.: Prentice-HalUYourdon, 1978'

[32]DeMil lo,RichardA.,RichardJ.Lipton,andAlanPerl is.Socialprocessesandproofsoftheoremsandprograrns.Communicat ionsoftheACM22,5(hday 1979)'

[ 3 3 ] D e s m o n d e , W H . R e a l - t i m e D a t a P r o c e s s i n g S y s t e m s : I n t r o d u i l o r yConcepls' Englewood Cliffs, N'J': Prentice-Hall' 1964'

[34]Di jkstra,E.W'Cooperat ingSequent ialprocesses.TechrcicalReportEwD-l2S.Eindhoven,Netherlands:TechnologicalUniversity,1965.

[35]Di jkstra,E.W.Gotostatementconsideredharmful.Communicat ionsoftheACM ll,3 (Mar. 1958)'

[36]Di jkstra,E.W..solut ionofaprobleminconcurrentprogrammingcontrol .Communicatioi\ o7 the ACIvI 11, 3 (Mar' 1968)'

[37] DiMaio, A., C. Cardigno, S' Genolini' S' Crespi-Reghizzi' R' Bayan' C'

Destombes, C. V. Atiinson, and S' J' Goldsack' DRAGOON: An Ada-

basedobject-or ientedlanguageforconcurrent,real- t ime,distr ibutedsystems. Systems Design- with Ada' Proc' Ada-Europe International

Conference,Madr id 'AdaCompan ionSer ies 'Cambr idge:Cambr idgeUniversitY Press, June 1989'

t38]DOD-STD.2I6TA.Mil i tarystandarddefenseSystemsoftwaredevelop.ment. Washington, D'C': U'S' Department of Defense' 1988'

[39]Dorf ,RichardC.,TheElectr icalEngineeringHandbook,Piscataway,N.J.:CRC PressAEEE Press, 1993'

[40]Dougherty,E.R.,andC'R'Giardina'MathematicalMethodsforArt i f ic iolIntel l igenceandAutonomousSystems'EnglewoodCli f fsN.J.:Frent ice-Hall, 1988'

[41] Etlis, Margaret A', and Bjame Stroustrup' The Annotated C++ Re'feren't

Manual. New York: Addison-Wesley' 1990'

[ 4 2 ] F a g a n , M . E . D e s i g n a n d c o d e i n s p e c t i o n s t o r e d u c e e r r o r s r n P r o E r t ] ]development ' IBM Systems Journal t5' 3 (1976): ll l '

[43] Feigenbaum, Armand Y' Total Quatitl' Control' jrd e'j' \e* \c:L'

McGraw'Hill, 1983'

[44 ]Fer r in t ino ,A 'B . ,andH.D 'Mi l l s .Sute-mach inesandtheu- .ec .ua l . -SLI rsoftware engineering' Proc' IEEE COMPS'-\C' 19;l'

[45] Fetzer, James H. Frogram verificadon: The r.en. idea. CommunlCClitclu.l:s c|f

the ACM 31,9 (Sept ' i988t: 1O+8-1062'

Page 22: Real Time System 12 Philip A Laplante 2nd Edition

348 I Bibliography

[46] Forestier, J. P., C. Forarino, and P. Franci-Zannettacci. Ada++ :A class andinheritance extension for Ada. Proc. Ada-Europe International Corference,Madrid. Ada Companion Series. Cambridge: Cambridge University Press,June 1989.

[47] Freedman, A. L., and R. A. Lees. Real-Time Computer Systems. New York:Crane, Russak & Co., 1911.

[48] Furht, Borko, Dan Grostick, David Gluch, Guy Rabbat, John Parker, andMeg McRoberts. Real-time Unix Systems Design and Application Guide.Boston: Kluwer Academic Publishers, 1991.

[49] Garrett, Patrick H. Advanced instrumentation and computer I/O design:real-time system computer interface engineering, Piscataway, N.J.: IEEEPress, 1994.

[50] Garver, Roger. How to implement ISO 9000. Z & D (Sept. 1994):36-42:

[51] Ghezzi, Carlo, Jazayeri Mehdi, and Dino Mandrioli. Fundamentals oJ'Software Engineering. Englewood Cliffs, N.J.: Prentice-Hall, 1991.

[52] Giardina, Charles R. Parallel Digital Signal Processing: A Unified SignalAlgebra Approach. Wayne, N.J.: Regency Publishing, 1991.

[53] Giardina, Charles R. Parallel Multidimensional Digital Signal Processing.Wayne, NJ: Regency Publishing, 1991.

[54] Goodenough, J. B., and L. Sha. The priority ceiling protocol:A method forminimizing the blocking of high-priority Ada tasks. Technical ReportCMUISEI-88-SR-4. Camegie-Mellon University: Software EngineeringInstitute, 1988.

[55] Gopinath, Prabha, Thomas Bihri, and Rajiv Gupta. Complier support forobject-oriented real-time software. IEEE Software (Sept. 1993): 42-49.

[56] Habermann, A. N. Prevention of system deadlocks. Communications of theACM r2,7 (July 1969): 17I-176.

[57] Halang, W. A., and A. Stoyenko. Constructing predictablesystems. Boston: Kluwer Academic, 1991.

[58] Halstead. M. H. Elements of Sofnuare Science. Amsterdam: North-Holland,1977.

[59] Harbison, Samuel P., and Guy. L. Steele, Jr. C: A Reference Manual.Englewood Cliffs, N.J.: Prentice Hall, 1991.

[60] Harel, David. On visual formalisms. Communications of the ACM 3L, 5(May 1988): 514-530.

[61] Harel, D., H. Lachover, A. Naamad, A.. Pnueli, M. Politi, R. Sherman, andA. Trauring. STIfIEMATE:A working environment for the development ofcomplex reactive systems. IEEE Transactions on Sofnvare Engineering 16.4 (Apr. 1990): 403-414.

Page 23: Real Time System 12 Philip A Laplante 2nd Edition

I Bibliography

162l Hatley, D., and I. Pribhai. Strategies for Real-Time System Specification.

New York: Dorset House, 1987.

[63] Hayes, John P. Computer'Architecture and Organization. 2nd ed. New

York: McGraw-Hill, 1988, pp. 210-ZII.

164l Henize, John. Understanding real-time UNIX. Concurrent ComputerCorporation, One Technology Way, Westford, Mass. 01886'

[65] Hetzel, Bill. The Complete Guide to Sofnvare Testing. Znd ed. Wellesley,Mass.: QED Information Sciences, 1988.

[66] Hill, Frederick J., and Gerald R. Peterson. Digital Systems: Hardware

Organization and Design.3rd ed. New York: John Wiley & Sons, 1987.

[67] Horowitz, Ellis. Fundamentals of Programming Languages. 2nd ed.

Rockville, M.: Computer Science Press, 1984.

[68] Howden, William E. Life cycle software validation. Software Life

Cycle Management. Maidenhead, England: Infotech, 1980, pp. 101-

1 1 6 .

t69l IEEE/ANSI Std. 830-1984. IEEE Guide to Sofnuare Requirements

Specification. New York: IEEE, 1984.

UOI IEEE Software Magazine, Special Issue on Real-Time Realities (Sept.

1992).

UII IEEE Transactions on Software Engineering, Special Issue on Analysis ofReal-Time Systems. SE 18 (Sept. 1992).

I72l IEEE Std. 1016. Recommended Practice for Software Design Description.

New York: IEEE, 1987.

[73] Ingalls, Dan. Objectoriented programming. Video tape, Apple Computer,

Inc. 1989. Part of the University Video Communications collection,

Disiinguished Lecture Series, Volume II.

f74f Jain,Raj. The Art of Computer Systems Performance Analysis' New York:

John Wiley & Sons, Inc. 1991.

[75] Joel, A. E. Communication switching systems as real-time computers.

Proceedings of the Eastern Joint Computer Conference-l957.

[76] Joerg, Werner B. A subclass of Petri nets as a design abstraction forparallel architeclures. ACM Computer Architecture Nala's 18. -l tDec.

1990): 67-:75.

[77] Jones, Gregory W. Sofware Engineering. New York: John \\-ile1' & Sons.

1990.

[78] Jovanovic, Vladan, Stevan Mrdalj. A structured specificarion 1gL-hnique lar

hypermedia systems. Communications of the .4'CI1.36. ll '\or-. X99-i':

18-20.

[79] Kemighan, Brian W Why Pascal is not m1' favorire language- Compwing

Science Technical Report it'o. IAO. Murray Hill. NJ.: Bell L-aborarories(July 18, 1981).

Page 24: Real Time System 12 Philip A Laplante 2nd Edition

I Bibliography

[80] Kemighan, Brian W., and Dennis M. Ritchie. The C ProgrammingLanguage.2nd ed. Englewood Cliffs, N.J.: Prentice-Hall, 1990.

[81] Kfoury, A. J., Robert N. ]vloll, and Michael A. Arbib. A ProgrammingApproach to Computablli4,. New York: Springer-Verlag, 1982.

[82] Kleinrock, Leonard. Queuing Systems, Vol. I: Theory. New York: JohnWiley & Sons; 1975.

[83] Knuth, Donald E. The Art of Computer Programming, Vol. 3: Searchingand Sorting. New York: Addison-Wesley, 1973.

[84] Koffman, Elliot. Turbo Pascal. 2nd ed. New York: Addison-Wesley,1987.

[85] Krishna, C. M., and Y. H. Lee. Guest editor's introduction: Real-timesysterns. Computer (May 1991): 10-i1.

[86] Kung, H. T. Why systolic architectures? Computer (Jan. 1982): 3746.

[87] Kung, Sun-Yuan, K. S. Arun, Ron J. Gal-ezer, D.V. Bhaskar Rao.Wavefront array processor: Language, architecture, and'applications. /EEETransactions on Computers C-31,11: (Nov. 1982): 1054-1066.

[88] Lamb, D. Software Engineering: Planning for Change, Englewood Cliffs,N.J.: Prentice-Hall, 1988.

[89] Lamport, L., R. Shostak, and M. Pease. The Byzantine generals' problem.ACM Transactions on Programming Languages and Systems 4, 3 (July1982): 382-401.

[90] Laplante, Phillip A. Fault-tolerant control of real-time systems in thepresence of single event upsets. Control Engineering Practice 1, 5 (Oct.1993):9-16.

[9i] Laplante, Phillip A. The Heisenberg uncertainty principle and the Haltingproblem. ACM SIGACT Newsletter 22,3 (Summer 1991).

l92l Laplante, Phillip A. The Heisenberg uncertainty principle and itsapplication to software engineering. ACM SIGSOFT Software EngineeringNotes 15,5 (Oct. 1990).

[93] Laplante, Phillip A. A novel single instruction computer architecture. ACMComputer Architecture News 18,4 (Dec. 1990).

[94] Laplante, Phillip A. A single instruction computer architecture and itsapplication in image processing. Proceedings of the SPIE Conference onImage Processing. Boston (Nov. 1991).

[95] r.aplante, Phillip A. Software considerations for single event upsets.Proceedings of the 12th Biennial Guidance Test Symposium. ALamogordo,N.M. (Oct. 1985).

[96] Laplante, Phillip A. Some thoughts on cleamoom software de,velopmentand its impact on system test. Proceedings of the Third AT&T Software

Qualily Symposium. Holmdel, N.J. (Dec. 1988).

350

Page 25: Real Time System 12 Philip A Laplante 2nd Edition

Bibliography 351

[97] Laplante, Phillip A., Ajmal H. Arastu, and Michael E. Mclane. The

software life cycle and its relation to system tesl. Proceedings of the ThirdAT&T SoJ'tware Quality Symposiunt. Holmdel, N.J. (Dec. 1988).

[98] Laplante, Phillip A., Eileen Funck-Rose, and Maria Gracia-Watson' Anhistorical overview of early real-time system developments in the US.Real-Time Systems lournal (Jan. 1995).

[99] Laplante, Phillip A., and D. Sinha. Positional logic and its application todatabase systems. Proceedings of the International Conference for YoungComputer Scientists. Beijing (July 1991).

[100] Lawson, Harold .SL

Parallel Processing in Industrial Real-Time Applica-tions Englewood Cliffs, N.J. : Prentic e-Hall, 1992.

[101] Lehoczky, John, Liu Sha, and Ye Ding. The rate monotonic schedulingalgorithm: Exact characterization and average case behavior. Proceedingsof the l)th Real-Time Systems Symposium. Santa Monica, Calif' (Dec.

1989) : 166-171.

[102] I-eveson, Nancy G., and Janice L. Stolzy. Safety analysis using Petri nets.IEEE Transactions on Softwore Engineering 13, 3 (Mar. 1987): 386-397 .

[103] Levi, Shem-Tov, and Ashok K. Agrawala. Real-time System Design. NewYork: McGraw-Hill, 1990.

[104] Liu, C. L., and J. W. Layland. Scheduling algorithms for multi-programming in a hard real-time environment. Journal of the ACM 20, I(1973): 46-67.

[105] Locke, C. D., and J. B. Goodenough. A practical application of the ceilingprotocol in a real-time system. Technical Report CMUISEI-88-SR-3.Camegie-Mellon University: Software Engineering Institute, i 988.

[106] Lyu, Michael R., ed. Software Reliability Engineering, Piscataway, N'J.:IEEE Press, 1996.

[107] MacWilliams, F. J., and N. J. A. Sloane. The Theory of Error-CorrectingCodes. Amsterdam: North-Holland, 1977 .

[108] Mano, M. Morris. Computer System Architecture. Englewood Cliffs, N.J.:Prentice-Hall, 1982.

[109] tvlano, M. Morris. Digital Logic and Computer Design. Englewood Cliffs.N.J.: Prentice-Hall, 1979.

[1i0] Markov, John. RISC Chips. BYTE (Nov. 1984):191'206.

[111] N{artin,J. Programming Real-Time Computer S1's/enrs. Ensie+oci C..::s.N.J.: Prentice-Hall, 1965.

[112] McCabe, T. J. A complexity measure. IEEE Transd.Iit, ';-r -'4 -i-.i".;-.Engineering 2,4 (Dec. 1976): 308-320.

[113] Melliar-Smith, P. M. Interval logic to real-time svstem]. Lc::tt',,\ 'f. 'r-r r{Computer Science. G. Voos and J. Hartmarus. eds. -\es \brli: Spnnger-Verlag, 1988, pp. 224-242.

Page 26: Real Time System 12 Philip A Laplante 2nd Edition

352 I Bibliography

[114] Mellor, Stephen J., and Paul T. Ward. Structured Development for Real-

Time Systems. Vols. I, II, ilI. Englewood Cliffs, N.J.: Prentice-HalV

Yourdon,1986.

[115] Mok, A. Fundamental design problems of distributed systems for the hard

real-time envitonment. Ph.D. thesis, MIT Laboratory for Computer

Science, May 1983.

[116] Moore, David L. Object-oriented facilities in Ada 95. Dr. Dobb's Journal,(Oct. 1995): 28-35.

[117] Moshos, George J. Data Communications Principles and Problems. New

York: West Publishing Co., 1989.

t1181 MTOS-UX/Ada product profile. Jericho, N.Y.: Industrial Programming

Inc., 1989.

[1i9] Musa, J. D. The measurement and management of software reliability.

Proceedings of the IEEE 68, 9 (Sept. 1980).

[120] Myers, Glenford J. Reliable Sofnvare Through Composite Design. New

York: Van Nostrand Reinhold, 1975.

[121] Mynatt, Barbee Teasley. Sofnuare Engineering with Student Proiect

Guidance. Englewood Cliffs, N.J.: Prentice-Hall, 1990'

U22l On, Kenneth. Sftuctured System Developmenr. Englewood Cliffs, N.J.:

Yourdon Press, 1977.

[123] Papoulous, Anathasios. Probability, Random Variables and Stochastic

Processes. New York: McGraw-Hill, 1965.

U24l Pamas, D. L. A rational design process: How and why to fake it.

Proceedings of TAPSOFT Joint Conference on Theory and Practice of

Sofnuare Developmenr. Berlin (Mar. 1985)'

[125] Pamas, D. L., and Paul C. Clements. On the criteria to be used in

decomposing systems into modules. Communications of the ACM 15,12(Dec. 1972): 1053-1058.

[126] Patterson, James G. ISO 9000 Worldwide Quality Standard. Menlo Park,

Calif.: Crisp Publications, 1995.

[127] Paulish, Daniel J., and Karl H. Mtiller. Best Practices of Software Metrics.

Piscataway, N.J.: IEEE Press, 1992'

[12&] Paulish, Daniel J., and Karl H. Mijller. Software Metrics: A Practitioner's

Guide to Improved Product Development' First published by-Chapm4n &

Hall Limited,1992. Exclusive North American distribution rights assigned

to IEEE Press, PiscatawaY, N.J.

[129] Peterson, James L., and Abraham Silberschatz. Operating Systems

Concepts. New York: Addison-Wesley, 1985'

[130] Pham, Hoang. Sofnuare Reliability and Testing, Piscataway, N.J.: IEEF.

Press, 1995.

[t31] Proceedings of the IEEE, Special Issue on Real-Time Systems (Jan.

1994).

1

Page 27: Real Time System 12 Philip A Laplante 2nd Edition

I Bibliography

[132] Redmond, K. c., and r. S. smith. project whirrwind-The History of aPioneer Computer Bedford, Mass.: Digital press, 19g0.

[133] Rich, Charles, and Richard C. Waters. Autornatic prograrlming: Myths andProspects. IEEE Computer (A\g.1988): 40-51.

[134] Ripps, David L.,An Implementation Guide to Rear-Time programming.Englewood Cliffs, N.J.: Yourdon press, 1990.

[135] Ross, D. Structured analysis (sA): A language for communicatingideas. IEEE Transactions on softuare Engineering sE-3,1 (Jan. lg71).

[136] Rothstein, Michael F. Guide to the Design of Real-Time sys/ezs. NewYork: Wiley Interscience, 1970.

[137] schoch, D. J., and P. A. Laplante. A rear-time systems context for theframework for information systems architecture. IBM Systems Journal34,| (1994):20-38.

[ 1 3 8] schwartz, Mischa . I nformation Transmis sion, M odulation andNaise. NewYork: McGraw-Hill, 1980.

[139] Selby, R. w., v. R. Basili, and F. Terry Baker. cleanroom softwaredevelopment: An empirical evaluation. IEEE Transactions on softwareEngineering SE-13, 9 (1987): t\Zj-t037.

[140] sha, L., and J. B. Goodenough. Real-time scheduling rheory and Ada.Teb hnical Report c M Lr I s EI -88 -TR-3 3 . camegie-Mellon university: Soft-ware Engineering Institute, 1988.

[141] sha, L., and J. B. Goodenough. Real-time scheduling theory and Ada.Te c hnic al Report c M u I s EI -89 -TR- I 4. carnegie-Mellon University: Soft-ware Engineering Institute, 1989.

[142] shaw, A. c. communicating real-time state machines. IEEE Transactionson Software Engineering 18,9 (1992): 805-816.

[143] shaw, Alan c. The Lagical Design of operating systems. EnglewoodCliffs, N.J.: Prentice-Hall. I97 4.

[144] shen, ehia, Krithi Ramamritham, and John A. Stankovic. Resourcereclaiming in real-time. Proceedings of the llth Real-Time systemsSymposium, Lake Buena Vista, Fla. (Dec. 1990): 41-50.

[145] shiva, Sajjan G. computer Design & Architecture. 2nd ed. New york:HarperCollins, 1991.

[146] silberschatz, Abraham, James I,. peterson, and p. Glavin. operatingSystems Concepts.3rd ed. New York: Addison-Wesley, 1994.

[147] slepian, D., H. o. Pollack, and H. T. Landow. prolate spheroidal wavefunctions, Fourier analysis, and uncertainty principle I and tr. Bell s1'stemTechnical Journal 40, 1 (Jan. 1961): 43-84.

[148] Som, s., R. R. Mielke; and J. w Stoughton. strategies for predictability inreal-time data-flow architectures. proceedings of the IIth Real-TimeSystems Symposium, Lake Buena Vista, Fla. (Dec. 1990): 226-235.

353

Page 28: Real Time System 12 Philip A Laplante 2nd Edition

354 I Bibliography

[149] Sommerville, Ian. SofWare Engineering. 4th ed. New York: Addison-

Wesley, 1992.

[150] Speny, Tyler. Real-tirhe operating systems: let the buyer be aware.

Embeclded systems Programming Product News, (summer 1995):

12-2r .[i51] Spivey, J., The Z Notation: A Reference Manual. series in computer

Science. Englewood Cliffs, N.J.: Prentice-Hall, 1989.

[152] Stankovic, J., and Krithi Ramamritham. Hard Real-Time Systems-A

Tutorial. Washington, D.C': Computer Science Press (IEEE), 1988'

[153] Stankovic, John A., Maro Spuri, Marco Di Natale and Giorgio C.Bttazzo.

Implications of classical scheduling results for real-time systems. IEEE

Computer,2, 6 (June 1995): 16-25.

[154] Steininger, A., and H. Schweinzer. Can the advantages of RISC be utilized

in real-time systems? Proceedings of the Euronticro '91 Workshop on Real-

Time System.s. Paris (1991): 30-35.

[155] Stimler, Saul. Real-Time Data-Processing systems. New York: McGraw-

Hill, 1969.

[156] Stoyenko, A. D. Evolution and state-of-the-art of real-time languages,

Journal of Systems and Software 18 (Apr'. 1992): 6l-84'

[157] Stoyenko, A. D., and E. Kligerman. Real-Time Euclid: A language for

reliable real-time systems. IEEE Transactions on sofnvare Engineering

SE-12 (Sept. 1986): 940-949.

[158] Tripp, Leonard L. IEEE Standards collection, Piscataway, N.J.: IEEE

Press ,1994.

ll59l Turbo C User's Guide Version 2.0. Scotts Valley, Calif.: Borland Inter-

national, 1988.

[160] Walpole, Ronald E., and Raymond H. Myers. Probability and Statistics forEngineers and scientists. 2nd ed. New York: Macmillan Publishing,

t978.

[161] Warnier, J. D. Logical Construction of Programs. New York: Van Nostrand

Reinhold, 1974.

[162] Washabaugh, Douglas M., and Dennis Kafura. Incremental garbage

collection of concurrent objects for real-time applicationS. Proceedings of

the llth Real-Time systems symposium. Lake Buena vista, Fla. (Dec.

1990) : 21-30 .

[163] Wheeden, Richard L., and Antoni Zygmund. Measure and Integral. New

York: Marcel Dekker, 1977.

[i64] Wirth, Niklaus. Programming in Modula-2.2nd ed. New York: Springer-

Verlag,1983.

[165] Wulf, W., and Mary Shaw. Global variables considered harmful. SIGPLAN

Natices L 2 {J97 3); 28-34'

Page 29: Real Time System 12 Philip A Laplante 2nd Edition

lndex

A0-address architecture, 25 -3 I

1-address architecture, 3 1-3

2-address architecture, 33-5

3-address architecture, 35

O-address machine, instruction set' 26

l-address machine, instruction set, 32

2-address machine' instruction set' 34

3-address machine, instruction set' 36

0-address machine, Programmlng'28-3r

Absract data tYPing' 68-71

Accumulator, 22

Activity Packets,292Ada, 17, 60, 61, 63, 65, 66, 11'

80-1, 150, 182,324

Ada-95, 8r-2, 324' 325

Ada++, 70

Address bus, 2

Addressing modes, 21-5

ALGOL-60, 63, 66

ALGOL-W 63

Alpha testing, 267

Analog+o-digital (A/D) circuitry, 53

ANSI-C, 78, 181

Aiplication Programs, 7

Adthmetic logic unit (ALU)' 4

Arithmetic oPerations, 27

Assemblers, 8

AssemblY languages, 21,82-3' lI2'

324

Asynchronous events, 12

Automatic teller machine, 118-20

BBackground, 156

Background Processing, 157-8

Banker's algorithm, 185-6

BASIC, 17, 60,63,65, '13, '74 ' 197

Bathtub curve, 257

Beta testing, 267

BinarY angular measurement

(BAM), t?1-?

Binary ree, definition, 28

Bit failures, 277

Black box testing, 264-5

Blocked tasks, 181

BRANCH instructions, 38

Broadcast communication, 133' 135

Buffer size calculation, 245-8

maximum, 248

M[\4/1 queue' 251

variable, 246-8

Buffering data,170-2

Buffering sYstem' 245

Bugs, 255-6

Built-in-software test (BIST), 271

Built-in{est software (BITS)' 271'

2'16

Burn-in testing, 267

Burst petiod, 245,248

Bursting of events, 146

Bursts of data,245-6

Bus, 2arbitration, 50

contention, 50

cycles,21-2grant signal' 50

interface unit (BIU), 318

time-out signal, 51

transfer mechanisms, 2-3

Byzantine Generals' Problem' 286

cC language, l'1, 60, 61, 65, 66"13'

75 -8 ,83 , 324 ,326

disadvantages, 78

excePtion handling, 77-8

special variable tYPes, 75-6

C++ language, 70,78, 324' 326

Caches,227Call-by-address, 61-2

Call-bY-name, 63

Call-bY-reference, 6 1-2

Call-bY-value' 61-2

Call-bY-value-result- 63

Calling trees, 113-i4

CASE (comPuter-aided software

engineering), 1 10

Central processing unit (CPU), 2,

20-roPeration, 4-7

structure, 4

tesrifig, 27 l-2

throughput, 13

Chain reaction, i35

CheckPoints, 269-70

Checksum, 272

CICS (Customer Information

Control SYStem), 148

Circular queue (ring buffer), 171

CISC (comPlex instruction sdt

comPuters) architecture' 4 1-3

Class definitions' 70

Cleanroom testing, 268

cMS-2, l7

Code generation, 83-4

Code insPections, 266

COHESION environment, 95

Col l is ion,50' 175

COM variables, 63

COMMON variables, 63

Compaction' 200

Compare instructions, 35-8

Compiler optimization techmques'

224-i2

combination effects' 233-4

common subexPresston

elimination, 225

constant folding, 226

constant ProPagation' 229

cross jumP eliminadon' Ii:-l

dead-store eliminanon' ll9

dead-vanable ellmlnarex'- l-tr'

fl ow-of-codlFoi r'OtrruDi:-ir- -li

intrinsic runcc:'is- lit

lmP Lr':uc-.-r :--::-rroY- ll-

ItF: L\:r-.$l: "ft-f'Ii^'tl-

l-:

.rtr: -;:::f-::g- ]i -

.:":6 -:--:r-;g- i-{--

-t<-s

Page 30: Real Time System 12 Philip A Laplante 2nd Edition

356

Compiler optimization techniques

\cont.)reduction in strength, 225

removal of dead or unreachable

code,22'7-8short-circuiting Boolean code, 230

speculative execulion, 234

use of arithmetic identities, 225

use of registers and caches,22'7

Compilers, 8, 83-4Complex systems, 315-16

multimedia, 323Computer architecturc, 2

Computer architectules,multiprocessing systems,

282-3Computer hardware, 19-58

history, 17prototypes/simulators, 307

Computer hardware/softwareintegration, 301-13

Condition code registers (CCRs), 37

Conditional branching, 114

Conditional transfer, 37

Context, 150

Context-saving rule, 151

Context swirching, 150-l

Contiguous file allocation, 204

Continuous probability distribution.

242

Continuous random variable, 242

Continuous real-valued function,

222-3

Control flow diagram, 124

Control specifications, 124

contrbl unit (cU), 4

Cooperative multitasking systems,

148-50Coprocessors, 40-l

Core memory, 44

Coroutines, 148-50, 157

response time, 208

Counting semaphores, 178-9

Critical regions, 175

Cross jump elimination, 231-2

CSML,60Customers, 248

Cycle stealing, 46

Cyclic executive system, 149

Cycl ic redundancy code (CRC), 272-4

Cycling, 307eychmatic c-or[plexiry, 260

DDaemons, 175Data bus, 2

Data flow architectures, 292-4

Data flow diagrams, 120-4,133,286,294

conventions, 121

DeMarco's rules for, i21

for navigation system, 122

for nuclear plant, 123

Hatley and Pribhai's extensions,1 a A

Data flow processors, systemspecification, 293-4

Data Item Descriptions (DIDs),

99-100Data strobe (DST), 2-3

Data transfer timing diagram, 3

Databasesapplications, 3 17-19

construction,3l7-18design,317

Deadlock, 183-5avoidance, 185-6

conditions necessary for, 183-4

detection of, 185-7

recovery 186-7

Death spiral, 277

DEBUG, 228Debuggers, 307Defects, 255-6Dernand paging, 201-3DeMarco's rules for data flow

diagrams, 121

Descrete random variable, 243-4

Design, 109-40

Detailed design document, 9l

Determinism, l2-13

Digital-to-analog (D/A) circuitry, 53

Direct memory access (DMA),

50-1,218,27',7acknowledge signal (DMACK),

50controller, 50-l

memory, 235request signal (DMARQ, 50

transfer timing diagram, 51

Direct mode instructions, 22

Disable priority interrupt (DPI),

38-9Discrete random variable, 241

Discrite signal, 3

Dispatcher, 142,149

Distributed systems, 283-91

reliability in, 286-91

DOD-STD-2I674 (ME-STD-

2167A),99-rc4Double buffering, 170

Double indirect mode addressing,

24-5

Index

DRAGOON,70Dynamic allocation, 65Dynamic-priority systems, 154

EElectropically erasable

programmable read-onlymemory (EEPROM),47-8

Embedded data processor (EDP),

3 1 8Embedded distribution systems, 283

Embedded systems, 10

Enable priority interrupt (EPI),

38-9Enumerated types, 69

Erlang's loss formula, 253-4

ESTEREL, 60Euclid, 326Even parity checker, ll7

Event determinism, 12

Event flags, 181-3

Event signals, 181-3Events, 12, 144

bursting of, 146

Exception handling, 68

C language, 77-8Executive, 143Exponential distribution, 242, 243

Extemal fragmentation memory,

199

FFailed system, definition, 9

Failure function, 257

Failures, 255-6FALSE state, 3Fault tolerance, 269

Faults, 255-6Fetch-execute cycle, 5

Fiber Distributed Data Interface(FDDr), 318

File fragmentation, 204Finite state automata (FSA), 117,

t33-4,146-:7Finitq state machines (FSMs), 117First-in/first-out (FIFO), 202Fixed-priority systems, 153-4Fixed-rate systems, 150Flash memory, 48Flip-flop, zt4-5Floating point instructions, 39, 214,

215Flow-of-control optimization, 228Flowcharts, ll2-13, ll4Foreground, 156

Page 31: Real Time System 12 Philip A Laplante 2nd Edition

Index

Foreground,ibackground systems,l 56-60

initialization, 158major drawback, 160real-time operation, 158-9response times, 160

Formal program proving, 266-1FORTRAN, 16, 1'7 . 60, 61, 63_6,

t3-5. 112, 197, 211, 324Freedom space station, 318Function points, 263Fusible-link ROMs, 46Fusible links, 46-7

GGarbage collection, 204Gaussian (or normal) distribtion, 242Gaussian probability function, 243General registers, 4Generator poly nomial, 27 2Global variables, 63-4

reuse, 238GOTO statemenr, 112, 113Granularity, 220-1Graphical techniques, design

precautions, l38Group walkthrou ghs, 266

HHalstead's metrics, 261-3Hamming code error detection and

cotection,274Hard, enor,2'72Harells statecharts, 136-7Heisenberg uncertainty pnnciple,

307,310-12Hybrid systems, 150, 156

I

IEEE 830-1993, 104rEEE 1003 1-1990, 164-5IEEE standards, 106If-then structure, 147Image processin g, 319-24Immediate mode instructions, 22Implied mode instructions, 22Incidence matrix,287In-circuit emulation (ICE), 305-6In-circuit emulator block diagram, 308Indexed loop construct, 132-3Indirect memory instructions, 23Induction v ariable, 22'7Inertial measurement unit (IMU), 10Information hiding, 7lInheritance, 70

Input/output (I/O)

inteirupt driven, 48, 52memory-mapped, 49-50, 235me thods , 2 ,3 ,48 -52perfcrrmance, 239programmed, 48-9

Input space, 8Inputs, 8Instruction counting. 213-16Instruction execution time

simulators, 217- l l iInstruction register, 4Integrat ion,30lInternal fragmentation memory, 199Interpolation, geometric

interprctation, 222-3Interpreter, 74Irrterrupt, definition, 6Interrupt controllers, 54-5Interrupt disabling, 211Interrupt driven I/O, 48, 52Interrupt driven systems, 150-6Interrupt handlers, 6, 182, 191, 195Interrupt handling, 5J, 311

timing sequence, 55Intenupt latency, 21O-12

low priority interrupts highpriority,212

Interrupt register 6Interrupt retum location, 6Interrupt systems, 144-6

response 1ime, 209Intenupt vector, 6Intertask communication, 169-88Intrinsic functions, 226ISO Standard 9000, 103-4

J

Jackson chart, 113Java language, 326JOVIAL, 17Jump instructions, 35-8

conditional and unconditional, 37-8"Jump-to-self instruction, 150Jump unconditional absolute (JUA),

38

KKalman filter, 269Kemels

build or buy?, 164definitions, 142-3design strategies, 141-67hierarchy. 143role of. 142

357

LLanguage features, 59-85

comparison of, 74see also specific languap,es and

specific language featuresLeast recently used (LRU) method

202Level ing, l2 lLinkers, 8Little's law, 253L i ve lock ,183LOAD instruction, 25, 28, 63Load module, 302Local area networks (LANs), 43,

3 1 5Locality-of-reference method,

203*4Locks up,271Logic analyzer, 213, 304-5Longmp,77Look-up tables,222-4Loop induction elimination, 227Loop invariant optimization, 226Loop jamming, 231Loop unrolling, 230-lLoosely coupled system, 10LSB (least significant bir,220

M

McCabe's metric, 260Machine language, 20, 83Macrocode, 5Macroinstruction execution times,

211Macroinstructions, 5Mailboxes, 173-5

and semaphores, 177implementation, 173-4queues, 174-5

Major cycles, 155-6Mask registeq 6Mathematical specification, 1 1 l-12Matrix multiplication, 65Maximum stack size, 193Mealy FSA, 117-18Memory, 2, 43-8

analysis of requirements i3-1--dangerous allocation- i !-rDMA,235dynamic al localr . - r .

' i i i - - : . l

extemal frasm3n-'rror-- ^,

fragmei--:::::. l-'il|]le;nal lnlSneri::]:.. -+.icckine. l0-rmanasement schernes- l-1-nonvolatile. 43

Page 32: Real Time System 12 Philip A Laplante 2nd Edition

358

Memory (cont )primary or main, 3program arca,236RAM area, 236secondary, 3stack area, 236static schemes, 205rcsiLn|,272volatile, 43

Memory address register (MAR), 4Memory data register (MDR), 4Memory-loading, 201, 312

rcducing,237-8variable selection-23r

Memory-loading f actot, 236-:7Memory management, 189-205Memory management model, 196Memory map,234-5Memory-mapped l/o, 49 -50, 235Message exchanges, 173Message polynomia| 2'1 2Methods, 70MFT (multiprogramming with a

fixed number of tasks),198-200

Microcode, 5Microcontroller, 20Microinstructions, 5Micro-kemal, 143Micromemory,4Microprogram, 5Mil-Std-15538 bus standard, 52-3Mil-Std-21 67A (DOD-STD-21674'),

99-100MIMD archiiecture, 283Minor cycles, 155-6MISD architecture, 282Mismatched COMMON overlays,

64Missed intemrpts, 27 6-7Mixed listing, 214MMll queae,249-52

buffer size calculation, 251real-time systems, 252

Modeling techniques, advantagesand disadvantages, 138

Modula-2, l '7 , 63, 65, 66,71,79-80, 150, 183

Modularity, 7l-3MODULE,71 ,79Moore finite state automaton, 117MSB (most significant bit),22A-1MULT1,65MULr2, 65Multi Bus tr, 318Multimedia architecture, 323Multimedia systems, 321-4

Multimeters, 304Multiple stack anangements, 193Multiplexer, 52Multiplexer/demul tiplexer (MDM)

u n i t s , 3 1 8Multiprocessing systems, 2, 124,

129, r7 5, 260, 281-99, 3t5classification of computer

architectures, 282-3Multiprogramming, 129Multitasking systems, 79, 124, 146,

169, r',]5.260Mutex, 177MUX transceivers, 52-3MVT (multiprogramming with a

variable number of tasks),200-1

N

Nano-kemel, 143Natural languages, 110-11Nearest neighbor topolo1y, 294Network interface unit (NIU), 318No-op (no-operation), 5Non-von Nuemann multiprocessing

architectures, 21, 291-8NP-complete problems, 218-19NP-hard problem, 219N-version programming, 271

oObject-oriented programming, 70Occam, 60Occam-2,325Odd parity checker, 118Opcode (operation code), 5Operating system, 8, 143Operational concept document, 89Optimization

basic theory,223-32peephole,225techryqaes,224-32

Orbital replaceable units (ORU),3 1 8

Qrganic distributed processingsystem, 283

Organic systems, l0Orthogonal states,284Orthogonality, 134OS/2 Presentation Manager, 148Oscilloscope, 304Ostrich algorithm, 186Output space, 80utputs, 8Overlaying, 198

Index

PPackage, 7 l-2Page faul t ,201Page frames, 201Page stealing, 201Page table, 201Parallel subsystems, equivalent

reliability, 258Parameter passing, 60-73Pamas partitioninE, 92-4, ll0, 265Partial transition table, 120Pascal , 17, 60, 6I , 65, 66, '13,

78-9, 83Patching, 308, 309-10PEARL,326Peephole optimization, 225Petri nets, 124-9

examples, 129firing, 125flowchart analogs,127systolic array, 296-7

Phase-driven code, 146-8, l5'7, 208Ping-pong buffering, 170Pipelining, 39-40Poisson process, 244, 252Polled loop systems, 144

response time, 146,208with inrerrupts, 144-6

Polymorphism, 70POP instruction, 27POSIX standard, 164-5, 318Power bus, 2keemption, 212Preemptive priority systems, 153-5Priority ceiling protocol (PCP), 155Priority inversion, 155Probability density function, 242Probability distribution function,

241-3,248Probe effect, 311Process, 142Process blocks, 258hocessing elements, 294Program counter (PC), 4Program design languages (PDLs),

I l 5 -16Programmable logic arrays (PLAs),

46hogrammable read-only memories

(PROMs),46-7

Programmed I/O,48-9Programming languages, 324-6Project Whirlwind, 316-17Propagation delays, 211Pseudocode, 1 15-16PUSH instruction, 28-PUSH operation, 27

Page 33: Real Time System 12 Philip A Laplante 2nd Edition

Index

oQueues, mailboxes, i74-5Queuing models, 241-54Queuing system, components, 249Queuing theory,248-52

buffer calculations, 25 1service and production rates,

250-7

R

Raise operation, 181Random-access memory (RAM), 43

corraplion,2T2dynamic (DRAM),43

scrubbing, 157 -8, 274-5static (SRAM), 43testing,274-6

Randomvariable, 241Rate-monotonic analysis (RMA),

155Rate-monotonic systems, 154Reactive systems, 10Read-only mernory (ROM), 43

conuption,272

testing,272-4Read/write line, 3Real-time computing, 16Real-time languages. See Language

features and under specificlanguages

Real-time systems, 1applications,3l5-26basic cpncepts, 1-18definition, 9design issues, 14examples, 14-16full-featured, 160-3history, 16-17Mlivl/l queue, 252significant development events, 16use of term, 10-11

Recovery blocks, 270Recursion, 64-5Re-entrant procedures, 65Register direct mode instnrctions,

24Register indirect instructions, 24Registers, 227Regression testing, 267Reliability, 256-63

characterizations, 256in distributed systems, 286-91

Reliability functions, 256-8Reliability manix;.287 -9

hiiher-order, 290-1maximum,29l

second-order, 289third-order, 290

Resource allocation, 185Resource sharing, 175Resource table, 174Response time,9,207

calculation, 208-10coroutines, 208interrupt systems, 209modelling, 252phase-driven code, 208polled loops, 208reducing, 219-34

Restore routine, 191-2Retum from interrupt (RI), 38RETURN instruction, 38Retum location, 38Reverse Polish notation, 28Ring buffers, 171-2RISC (reduced instruction set

computer) architectures, 4 1-3,282,315

Round-robin systems, 152Run-time ring buffer, 193Run-time stack, 190

S

SABRE, 16Sample space, 241Sampling rate, 53Save routine, 191-2Scale factor, 220Scaled arithmetic, 220-lSchedualability analysis, 84Scheduler, 142Scheduling, NP-complete, 2 1 8-l 9Scratch pad memory, 4Screen signature, 274Second-order reliability matrix, 289Self-modifying code, 238Semaphores, 175-80

and mailboxes, 177counting, 178-9primitives, 176problems with, 179

Semiconductor memory. 44-6Semidetached system, 10Sense line, 44Serially reusable resources, 175Series subsystems, equivalent

reliability, 259Servers, 172,248Setjmp, 77Signal library function call. 182Signal operation. 176SIMD architectures, 282

359

Single-event upset (SEU), 158protection mechanisms, 277-8

Single-processing system, 2Slowest cycle computation, 220Smalltalk, 70Soft enor, 272Software

concepts, 7-8design, i10Heisenberg uncertainty principle,

3 1 1history, 17reliability, 256-63

definition, 256simulators, 306test ing,311-12watchdog timers, 56, I57,276,

2',77Software Design Descriptions

(SDDs), 104Software life cycle, 87-107

concept phase, 89design phase, 91-4functional requirements, 90maintenance phase, 96nonfunctional requirements, 90-lnontemporal transitions, 96-8Pamas partitioning, 92-4phases, activities and byproducts,

88-96programming phase, 94-5requirements phase, 89-91rules for requirements and design

documents, 91standards, 99-107test phase, 95-6version control software, 94

Space station, Freedom, 318SPARC (Special Application of

RISC) series, 42Spatial fault tolerance, 269Specification, 109-40

mathematical, 111-12Speculative execution, 234Spin lock, 177Spiral software model, 98sPool-, 175Sporadic systems. 150Sporadic tasks, 150Spurious interrups. 276-lStack, 38

architecture. 15area. 136managemen.- 190--molel . i51operations. 21overf los.277

Page 34: Real Time System 12 Philip A Laplante 2nd Edition

360

Standards, software develoPment'

99-r07Starvation, 154, 183

State counters, 149

State-driven code, 146-9

Statecharts, 133-8, 284

depth, 134

orthogonality, 134

Statistiqally based testing, 267-8

Status register, 6

sToRE, 25, 63Stress, tesring, 269

Strong typing,66

Structure chans, 113-14

Structured Analysis, 110, 120

SUBROUTINE, 65, 73

Subroutine instructions, 35-8

Subsystems, reliabilities, 259

Swapping, 198

Switch bounce, 1zl4

Synchronous events, 12

Syndrome, 274

System, definition, 8

System bus, 2

System concePts, 8-9

System integration

backoff method, 308-9

establishing a baseline, 307-8

goals, 302-3

methodology, 307-10

System-level testing, 267

Systern performance analysis, 207-23

System programs, 7

System reliability, 258-63

System specification, 284-6

data flow processors, 293-4

for wavefront Processors, 298

System test suite, 267

System unifrcation, 302

System validation, 303

Systolic anay

for convolution, 295

in nearest neighbor toPologY' 295

peti net,296-:1

Systolic process ots, 29 4-7

. Systolic systems, specification, 297

Tfable-driven code, 148

Task, 142

Task-control block (TCB), 161-3

model, 161, 190, l96J

state transitions, 162

task management, 163

task states, 161

Task resource request table, 173-4

Task synchronization, 169-88

Temporal determinism, 13

Temporal fault tolerance, 269

Test-and-set instruction, 1 80

Test instructions, 37

Tesr log, 303Test probe, 269-?0

Test tools, 303-7

Testing, 263-9

black box, 264-5

cleanroom, 268

cPu,27r-2goal of,263

memory,272planning, 263-9

RAM, 274-6

ROM,272-4sof tware,311-12statistically based, 267-8

stress, 269

systemJevel, 267

unit level, 264-:7

white box, 265-6

Thrashing, 201

Threat-management systems, 154

Time-loading, 2O7 , 312

and its measuremettt, 212-18

deterministic Performance, 218

instruction counting, 2 13-1 6

instruction execution time

simulators, 217-18

logic analYzer,2l3pictorial representation, 2 16-17

definition, 13

reducing, 219-34

Time-overloaded sYstem, 13, 250

Time-relative buffering, 170-1

Time slice, 152

Timing code, 305

Timing instructions, 304-5

Transceiver, 52

Transitibn Table, 118

Transputen, 298

Traps,7, 182

Tri-state condition, 50

Index

TRUE state, 2

Type definition, 69

Typing, 66-8

UUltraviolet read-onlY memory

(uvRoM),47UNIT, 73Universal asynchronous relaY

terminal (UART), 52

uNrx, 143, 3r8,324User space, 198

Utilization factor, definition, 13

VVersion control software, 94

Virtual reality (VR) systems, 320-l

VLSL292,295Von Neumann bottleneck, 39

Von Neumann computer

architectures, 20, j9, 282

WWait and hold condition, 185

Wait operation, 176

Wamier-Orr notation, 129-33

examples, tr31-2

Watchdog timer (WDT), 56, 157,

276,2"t7

Waterfall, 88

Wavefront processors, 297-8

system specification for, 298

Weak typing, 66-8

Weibull distribu tion, 243

Weibull probabilitY densitY

-. funcrtion, 243

Whirlwinil computer, 316-17

White box, testing, 265-6

Wide area networks (WANs), 315

Working sets, 203-4

World Wide Web, 113, 133

zZ notation, 110