A
Accept operation. Operation on a mailbox that is similar to the pend operation, except
that if no clataare available, the task retums immediately from the call with a condition
code rather than susPending.
Access time. The interval between when data are requestedfrom 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 addressesfor the result of the computation.
Actual parameter. The named variable passedto a procedure or subroutine.
Address bus. The collection of wires neededto accessindividual memory addresses'
Alpha testing. A type ofvalidation consisting ofinternal distribution and exerciseofthe
software.
ALU. See arithmetic logic unit'
Anatog-to-digital conversion. The processof 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
328 I Glossary
B
Background. Non-interruptdriven processesin foreground/background systems.
BAM. See binary angularmeasurement.
Banker's algorithm. A techniquesometimesused to preventdeadlocksituations.
Bathtub curve. A graphdescribingthe phenomenonthat in hardwarecomponentsmost
errorsoccur either very early or very late in the life of the component.Some believe
that it is applicableto software.
Belady's Anomaly. The observationthat in the FIFO pagereplacementrule, increasing
the number of pagesin memory may not reducethe number of page faults.
Beta testing. A type of systemtestwherepreliminaryversionsof validatedsoftwareare
distributedto friendly customerswho test the softwareunder actual use.
Binary angular measurement. An n-bit scalednumber where the least significantbit
is 2"-' .180.
Binary semaphore. A semaphorethat can take on one of two values.
Binary tree. A collectionof n nodes,one of which is a specialone calledthe root. The
remaining n - 1 nodesform at most two subtrees.
Black box testing. A testingmethodologywhereonly the inputs and outputsof the unit
are considered.How the outputsare generatedinside the unit is ignored.
Blocked. The condition experiencedby tasksthat are waiting for the occurrenceof an
event.
Broadcast communication. In statecharts,a techniquethat allows for transitionsto
occur in more than one orthogonalsystemsimultaneously.
Buffer. A temporary data storage area used to interface between, for example, a fa^st
device and a slower processservicingthat device.
Burn-in testing. Testingthat seeksto flush out thosefailuresthat appearearly in the life
of the part and thus improve the reliability of the delivered product.
Burst period. The time over which data are being passedinto a buffer.
Bus arbitration. The processof ensuringthat only one device at a time can place data
on the bus.
Bus contention. Condition in which two or more devicesattemptto 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
exclusiverights to the bus.
Bus time-out. A condition whereby a device making a DMA requestdoes not receive
a bus grant before some specifiedtime.
Busy wait. In polled loop systems,the processof testing the flag without success.
I Glossary
329
C
Call-by-address. See call-by-reference.
Call-by-reference. The processin which the addressof the parameteris passedby the
calling routine to the called procedureso that it can be alteredthere.
Call-by-value. Parameterpassingmethodin which the value of the actualparamererin
the subroutineor function call is copied into the procedure'sformal parameter.
Calling trees. See structurechart.
CASE. Computer-adedsoftwareengineering.
Catastrophic error. An error that rendersthe svstemuseless.
CCR See condition code register.
Cellular automata. A computationalparadigm for an efficient descriptionof SIMD
massivelyparallel systems.
Chain reaction. In statecharts,a group of sequentialevents where the nth event is
triggeredby the (n - l)th event.
'Code
Checkpoints. that outputs intermediateresults to allow an external Drocessto
monitor the efficacy of the processin questron-
Checksum. A simple binary addition of all program code memory locationsused ro
verify the contents.
Circular queu€. See ring buffer.
CISC. Seecomplexinstructionset computer.
Class definitions. Object declarationsalong with the methodsassociatedwith 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 another
obtainsaccess.Also, simultaneoususe of a critical resource.
C-ompaction. The processof compressingfragmentedmemory so that it is no lon-eer
fragmented.Also called coalescing.
Compiler. Softwarerhat translareshigh-orderlanguageprogramsinto assembll,code
Complex instruction set computers. Architecturescharacterizedbv a larse. micrr.-
coded instruetionset with numerousaddressingmodes.
Composition. An operationappliedto a reliability matrix that determinesthe marin-iuir
reliability betweenprocessors.
Compute-bound. Computationsin which the number of operationsis laree in ;,r:---
parisonto the number of I/O instructions.
Condition code register. Intemal CPU register used to implemenr a .Lrr.,i::1.-:.;.
transfer.
Conditional transfer. A changeof the program counterbasedon the resuk .ri : !3>:
Content.addressablememory. See associatrvememory.
context. The minimum informationthat is neededin order to sa'e a curienrlr .\e.-urrns
task so that it can be resumed.
Context switching. The processof saving and restorine suft-rcientinformation for a
real-time task so that it can be resumedafter beins intem-rpred.
330 I Glossary
D
Daemon. A device serverthat doesnot 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 componentsin 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 unreachablecode.
Deadlock. A catastrophicsituation that can arise when tasksare cornpetingfor the sarne
set of two or more serially reusableresources.
Deadly embrace. See deadlock.
Death spiral. Stack overflow causedby repeatedspurious interrupts.
Decode. The processof isolating the opcodeTieldof a macroinstructionand determin-:ne
the addressin micromemory of the programming correspondingto it'
I Glossary 33r
Defect. The preferred term for an error in requirement,design, or code. See also fault,
failure.
Demand page system. Techniquewhere program segmentsare permittedto be loaded
in noncontiguousmemory as they are requestedin fixed-sizechunks.
Density. In computermemory, the number of bits per unit area.
De-referencing. The processin which the actual locationsof the parametersthat are
passedusing call-by-valueare determined'
Derivative of f at x. Representsthe slope of the function/ at point x.
Deterministic system. A systemwhere for each possiblestate.and each Setof inputs,
a unique set of outputsand next stateof the systemcan be determined.
Digital-to-analog conversion. The processof convertingdiscrete(digital) signalsinto
continuous(analog)ones.
Direct memory access. A scheme in which accessto the computer's memory is
affordedto other devicesin the systemwithout the intervcntionof the CPU'
Direct mode instruction. Instructionin which the operandis the data containedat the
addressspecifiedin the addressfield of the instruction.
Discrete random variable. A random variabledrawn from a discretesamplespace.
Discrete signals. Logic lines used to control devices.
Dispatcher. The part of the kernel that performs the necessarybookkeeping to start 3
task.
Distributed real.time systems. A collection of interconnectedself-containedpro-
cessofs.
DMA. See direct memory access.
DMA controller. Device that performsbus arbitration.
Dormant state. ln the task-controlblock model, a statethat is best describedas a TCB
belonging to a task that is unavailableto the operatingsystem.
Double-buffering. A techniqueusing two buffers where one is tllled while the data ir
the other is being used.
DRAM. Dynamic random accessmemory.
Drive line. In core memory,a wire usedto induce a magneticfield in a toroid-shrpe;
magnet. The orientation of the field representseither a 1 or a 0'
Dynamic memory. Memory that usesa capacitorto storelogic 1s and 0s. and thet ::-.:
be refreshedperiodicallyto restorethe chargelost due to capacitivedischarse
Dynamic priority system. A system in which the priorities of tasks ca: ;:i:::
Contrast with fixed priority system'
E
Effort. One of Halstead'smetrics (seeChapter 11)'
---e
Embedded system. Software used to conffol speci.alizedharClare .l';;:.:: ::
computer system.
I --: '-i:l
EncapSulation. A condition that ariseswhen a classof objecis;n.j ilre rrFEri'.-
can be performedon are isolatedin both accessand implementation'
332 I Glossary
F
Failed system. A systemthai cannotsatisfyone or more of the requirementslistedin the
formal systemspecification.
Failure. A fault that causesthe softwaresystemto fail to meet one of its requirements.
See also defect.
A function describingthe probability that a systemfails at time r.
Failure function.
Fault. The appearanceof a defect during the operation of a software system;
synonymouswith error or bug. See also failure.
Fault tolerance. The ability of the systemto continue to function in the presenceof
hardwareor softwarefailures.
Fetch. The processof retrieving a macroinstructionfrom main memory and placing it
in the instructionregister.
Fetch-executecycle. The processof continuouslyfetchingand executingmacroinstruc-
tions from main memory.
File fragmentation. Analogous to memory fragmentationbut occurring within files,
with the sameassociatedproblems.
Finite state automaton. A mathematicaltechniqueusedto representsystemswith finite
input and output spaces.Also known as a finite statemachine.
Firing. In Petri netsor in certainmultiprocessorarchitectures,when a processblock or
processperformsits prescribedfunction.
Firm real-time system. A systemwith hard deadlineswhere some low of
missing a deadlinecan be tolerated.
Fixed priority system. A system in which the task priorities cannot be changed.
Contrast with dynamic priority system.
Fixed-rate system. A systemin which intemrptsoccui only at fixed rates.
Flip-flop. A bistablelogic device.
Flow chart. Graphical algorithm representation.
Flush. In pipelined architectures, the act of emptying the pipeline when branching
occurs.
I Glossary 333
G
Garbage. Memory that hasbeenallocatedbut is no longerbeing usedby a task (that is.
the task has "lost track of it").
General register. CPU intemal memory that is addressablein the address field of
certainmacroinstructtons.
General semaphore. See counting semaphore.
General polynomial. The modulo-2 divisor of the messagepolynomial in CRC.
Granularity. See scale factor.
Group walkthrough. A kind of white box testingin which a numberof personsinspect
the code line-by-line with the unit author.
H 1
-Hamming code. A coding technique used to detect and correct errors in computer
memory.
Hard error. Physical damageto memory cell.
Hard real-time system. Systemswherefailure to meet responsetime constraintsleads
to system failure.
Hybrid system. A system in which interrupts occur both at fixed frequencies and
sporadically.
Hypercube processor. A processor configuration that is similar to the linear arrar'
processorexcept that each processorelement communicatesdata along a number of
other higher dimensional pathways.
I
ICE. See in-circuit emulation.
Immediate mode instruction. An instructionin which the operandis 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 trt
instruction.
Incidence matrix. A realiability matrix in which the enries are eitlrer I or 0.
334 I Glossary
J
Jackson Chart. A form of structure chart that provides for conditional branchins.
K
Kalrnan filter. A mathematical construct used to combine measurementsof the same
quantity from different sources.
Kernel. The smallestportion of the operating system that provides for task scheduling,
dispatching, and intertask communication.
335
I Glossary
that providespreemptlonpolnts
Kernel preemption. A methodusedin real-timeUNIX
in cails to kemel functionsto allow them to be intemrpted'
usedto protect a critical region'
Key. In a mailbox, the data that are passedas a flag
L
Leaf. Any node in a tree with no subtrees'
pagereplacementalgorithm'
Least recently used rule. The best nonpredictive
a diagramat a finer level of
Leveling. [n dataflow diagrams.the processof redrawing
detail.
multiple instructionsof the same
Linear array processor. A processororganizedso that
type can be executedin Parallel'
Linker.Softwarethatpreparesrelocatableobjectcodeforexecutton'
averagenumberof customersin
Little,s law. Rule trom queuingtheory statingthat the
aqueuingSystem,N"',isequaltotheaverageanivalrateofthecustomerstoth
ta"'
system,ru,, times the averagetime spentin that system'
in the program'
Live variable. A variablethat can be used subsequently
Livelock. Another term for process starvatron'
the machine'
Load module. Code that can be readily loaded into
if you examine a list of recently executed
Locality-of-ret'erence. The notion that
you will see that most of the instructions are
progiu* instructions on a logic analyzer,
iocalized to within a small number of instructtons'
ineffective'
Lock-up. When a systementersin which it is rendered
Look-uptable.Anintegerarithmetictechniquethatusestablesandrelieson
functions quickly'
mathematicaldefinition of the derivative to compute
computationsoutsidea loop that
Loop invariant optimization. The processof placing
do not need to be performed within the loop'
Looselycoupledsystem.Asystemthatcanrunonotherhardwarewiththerewri
certainmodul:s
LRU. See leastrecentyusedrule'
M
computer operations'Also called
Machine code. Binary instructions that affect specific
machine language.
Macrocode. See macroinstruction'
Macroinstruction. Binary program code stored in the main memory of the computer'
Also called macrocode.
'i
of a memory locatlon in'J Ar-
Mailbox, An intertask communication device consi,sting
it'
operations-post and pend-that can be performed on
by the CPU'
Main memory. Memory that is directly addressable
of repeating processes in c1'ciicor pencrltc i\ ilsl'l'ls
Major cycle. The largestsequence
MAR. See memory addressregister'
enabling or di'abling sFecric
Mask register. A register that contains a bit map either
intemrPts.
I Glossary
336
N
Nano-kernel. Code that provides simple thread-of-execution(same as "flow-of-
control") management;essentiallyprovides only one of the three servicesprovided by
a kernel-that is, it providesfor task dispatching.
Nonfunctional requirements. System requirementsthat cannot be tested easily by
program executron.
Nonvolatile menory. Memory whose contentsare preservedupon removing povl'er.
Non-von Neumann architecture. An architecturethat doesnot use the storedprogram,
serial fetch-executecycle.
No-op. A macroinstruction that does not changethe state of the computer.
NP-complete problem, A decisionproblem that is a seeminglyintractableproblem for
which the only known solutions are exponentialfunctions of the problem size; compare
with NP-hard.
NP-hard. A decision problem that is similar to an NP-completeproblem (exceptthat for
the 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 techniqueusedto reducethe likelihood of systemlock-up
by using redundantprocessors,each running software that has been coded to the same
specificationsby different teams.
Nucleus. See kernel.
o
Object code. A specific collection of machine instructions.
Object-oriented language. A languagethat provides constructsthat encouragea high
degree of information hiding and data abstraction.
Opcode. Starting addressof the microcode program stored in micromemory.
Operating system. A unique collection of systemsprograms.
Organic system. A system that is not embedded.
Orthogonal process. In statecharts,the combined functionalit.v of t set of orrhogonal
processes.
Orthogonal product. In statecharts. a processthat depictsconcrurentprocesses that r'Jn
in isolation.
Ostrich algorithm. A techniquethat advisesthat the problem of deadlockbe ignored.
This solution is viable only in noncritical s\stems.
Output space. The set of all possibleoutput combilations ior a s)'stem'
Overlay. Dependentcode 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.
338 I Glossary
P
Page. Fixed-sizechunk used in demand-pagedsystems.
Page fault. An exceptionthat occurs when a memory referenceis made to a location
within a page not loaded in marn memory.
Page-frame. Seepage.
Page stealing. When a page is to be loaded into main memory, and no free pagesare
found, then a page frame must be written out or swappedto disk to make room.
Page table. A collectionof pointersto pagesusedto allow noncontiguousallocationof
page frames in demandpaging.
Parnas partitioning. See information hiding.
Partial order relation. In processscheduling,an indicator that any processcan call
itself (reflexivity); if processA calls process B, then the reverse is not possible
(antisymmetry),and if processA calls processB and processB calls processC, then
processA can call processC (transitivity).
Patching. The processof correctingerrors in the code directly on the targetmachine.
PC. See program counter.
PDL. See program design language.
Peepholeoptimization. An optimizationtechniquewhere a small window of assembly
langageor machinecode is comparedagainstknown pattemsthat yield optimization
opportunltles.
Pend operation. Operationof removing datafrom a mailbox. If data are not available,
the processperforming the pend suspectsitself until the data becomeavailable.
Petri net. A mathematical/pictorialsystemdescriptiontechnique.
Phase-driven code. See state-drivencode.
Ping-pongbuffering. Seedouble-buffering.
Pipeline. An intertaskcommunicationmechanismprovided in UNIX.
Pipelining. A techniqueused to speedprocessorexecutionthat relies on the fact that
fetching the instruction is only one part of the fetch-execute cycle, and that it can
overlap with different parts of the fetch-executecycle for other instructions.
Polled loop system. A real-timesystemin which a single and repetitivetest instruction
is used to test a flag that indicates that some event has occurred.
Polymorphism. In object-oriented programming, polymorphism allows the pro-
grarnmerto createa single function that operateson different objects dependingon the
type of object involved.
Post operation. Operationthat placesdata in a mailbox.
Power bus. The collectionof wires usedto distributeDowerto the variouscomponents
of the computersystem.
Pragma. In certainprogramminglanguages,a pseudo-opthat allows assemblycode to
be placed in-line with the high-order language code.
Preempt. A condition that occurs when a higher-priority task interrupts a lower-priority
task.
Preemptive priority system. A systemthat usespreemptionschemesinsteadof round-
robin or first-come/first-servescheduling.
.."-:--:<]
I Glossary 339
R
Raise. Mechanismused to initiate a softwareinterrupt in certain languagessuch asC.
RAM scrubbing. A technique used in memory configurations that include error
detectionand correctionchips.The technique,which reducesthe chanceof multiple bit
errorsoccuring,is neededbecausein someconfigurationsmemory effors are corrected
on the bus and not in mernoryitself. The correctedmemory datathen needto 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 systemshere
the priorities are assignedso that the higher the executionfrequency,the higher the
priority.
Reactive system. A systemthat has some ongoing interactionwith 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-controlblock model, the stateof those thsksthat are r:::i :.-
run, but not running.
Real-time system. A system that must satisf;- explicit tbcundea' :eirrcrit ll=.1
constraintsor it will fail.
Recovery block. Sectionof code that terminate.in che.-\pr.int. lf the lire:r:. -
processingcan resumeat the beginning of a recoren bir-t-k.
Recursion. A methoduherebya procedurecan be self-relerentiiri.ihat ls. l[ !-allin\\-hi-
(call) itself.
340 I Glossary
S
Sample space. The set of outcomesto 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 an
implicit noninteger value to the least significant bit of an integer.
sccs. Source code control system for managementof system code; typical for UNIX
operatingsystems.
Schedualability analysis. The compile time prediction of execution time per-
formance.
Scheduler. The part of the kernel that determineswhich task will run.
Scratch pad memory. CPU intemal memory used for intermediate results.
311
I Glossary
Secondarymemory.Memorythatischaracterizedbylong-termstoragedevicesSucha
tapes,disks, and cards'
S e l f - m o d i f y i n g c o d e ' C o d e t h a t c a n a c t u a l l y c h a n g e i t s e lmay
f ; f o rdiffer
e x a mby
p lonly
e ' b yone
taking
of certain initructions
advantageof tn" tu",iiat the opcodes
bit.
type used for protectrng critical regions'
Semaphore. A special variable
on a semaphor'
two operations that can be performed
Semaphore primitives' The
namelY,wait and signal'
coupled system'
Semidetachedsystem' See loosely
S e n s e l i n e . l n c o r e m e m o r y a w i r e t h a t i s u s e d t o . . r e is
a d ' ' t h e m e m o r y . D ein
p ethe
n d sense
ingonth
in the core, a pulse or is not generated
orientation of the magnetrcfield
line.
one task at a time and
resourcethat can only be usedby
Serialty reusable resource. A
that must be used to comPletion'
Server.Aprocessusedtomanagemultiplerequeststoaseriallyreusableresource
SEU. Seesingleevent upset' as C'
provided by certainlanguages'such
Signal. Exception-handlingmechanism
Signaloperation.op",uti-ononasemaphorethatessentiallyreleasesthereso
semaPhore'
ProtectedbY the
Single.eventupset.Alterationofmemorycontentsduetochargedparticlesprese
event'
Jpu"", ot in the presenceof a nuclear
S|aveprocessor.Theoff-line,processorinamaster/slaveconfiguration.
of the contents of memory'
Soft eiror. Repairable alteration
Softreal-timesystem.Asysteminwhichperformancersdegradedbynotdestroye
failure to meet responsetime constrarnts'
Software. A collection of macroinstructlons'
Softwarereliability.Theprobabilitythatasoftwaresystemwillnotfailbeforesom
time t.
software'
involving redundant hardware or
Spatiat fault tolerance' Methods
Speculativeexecution.Inmultiprocessingsystem s , a s i t u a t i o n t h a t i n v obirrrr'
l r ' e s e:>
ni
executingcode in the next process
processoroptimislcailv and predictively
longasthereisnodepend"ncyinthatprocessblockoncodethatcouidberu:il-:.
other Processors'
the wait semaphoreoperatlon'
Spin lock. Another name for
with all interruptsocculrlng sporadicarir'
Sporadic system. A system
by an interrupt that occursapen'rir'i'i
Sporadic task. A task driven
Spuriousinterrupts.Extraneousandunwantedintemlptsih":,:,:'.']::..]..
loading.
memory'
SRAM. Static random-access
structure'
Stack. A first-inAast-out data
Stackmachines.ComputerarchitectureinuhichLtelnst.';---::i3r=;en:ir3.J
stack' and an accurtuial"t
intemal memory store called a
342 I Glossary
Starvation. A condition that occurs when a task is not being serviced frequently
enough.
State-driven code. Programcode basedon a finite stateautomaton.
Static memory. Memory that does not rely on capacitivechargeto storebinary data.
Statistically based testing. Techniquethat usesan underlyingprobability distribution
function for each systeminput to generaterandom test cases.
Status register. A registerinvolved in interuptprocessingthat containsthe value of the
lowest interrupt that will presentlybe honored.
Stresstesting. A type of testingwherein the systemis subjectedto a large disturbance
in the inputs(for example,a largeburstof interupts), foilowed by smallerdisturbances
spreadout over a longer period of time.
Structure chart. Graphicaldesign tool usedto partition systemfunctionality.
Suspendedstate. In the task-controlblock model, those tasks that are waiting on a
particularresource,and thus are not ready.Also called the blocked state.
Swapping. The simplest schemethat allows the operating system to aliocate main
memory to two processessimultaneously.
Switch bounce. The physical phenomenonthat an eiectricai signal cannot instanfa-
neouslychangefrom its logical false condition.
Synchronous data. See time-relativedata.
Synchronous event. Event that occursat predictabletimes in the flow-of-control.
Syndrome bits. The extra bits neededto implementa Hamming code.
System. An entity that when presentedwith a set of inputs produces
outputs.
System programs. Softwareused to managethe resourcesof the computer.
System unification. A process consisting of linking together the testing software
modulesin an orderly fashron.
Systotic processors. Multiprocessingarchitecturethat consistsof a large number of
uniform processorsconnectedin an array topology.
T
Task-control block. A collection of data associatedwith a task including
processcode (or a pointer to it), and other infonnation.
TCB. See task control block.
Telepresence. A form of virtual reality in which a human operatorcan remotely control
robots or other devicesas if the operatorwere physically present.
Temporal determinism. A conditionthat occurswhen the responsetime for eachset of
outputsis known in a deterministicsystem.
Temporal fault tolerance. Techniquesthat allow for toleratingmisseddeadlines.
Test-and-setinstruction. A macroinstructionthat can atomically test and then set a
panicular memory addressto some value.
Test probe. A checkpointused only during testing'
Test suite. A collection of test cases.
I Glossary 343
U
Unit. A softwaremodule.
Unreachable code. Code that can never be reachedin the normal flow-of-control.
User space. Memory not required by the operating system.
Utilization facator. See time-loadine.
v
Vector processor. See linear iuray processor.
Version control software. A systemthat managesthe accessto the various components
of 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 of
instructions limits overall execution speed.
w
Wait and hold condition. The situation in which a task acquires a resourceand then
does not relinquish it until it can acquire another resource.
Wait operation. Operation on a semaphorethat essentiallylocks the resourceprotected
by the semaphore,or prevents the requestingtask from proceeding if the resourceis
already locked.
Wait state. Clock cycle used to synchronizemacroinsEuctionexecution with the access
time of memory.
Watchdog timer. A device that must be reset periodically or a discrete signal is
issued.
I Glossary
_1{i
I BibliographY
346
Louis E. Rosier.Preemptively
[12] Baruah,Sanjoy K., Aloysius K. Mok, and
schedulinghard real-timesporadictasks on one pfocessor.Proceedingsof
the llth R.eal-Timesystemssymposium.Lake Buena Vista, Fla' (Dec.
1990):182-190,
hottest game in town'
[3] Bemhard, Robert. Super-minicomputers-The
Systems& Sofrware4(1985): 44-58'
Applications. New York: John
[14] Blackman, M., The Design af Reat-Time
Wiley & Sons,1975.
Ada 9x, Embedded systems
[15] Bodilsen, Svend. Scheduling theory and
Programming(Dec. 1994):32-52'
EnglewoodCliff's' N'J':
[16] Boehm, Barry. SoftwareEngineeringEconomics.
Prentice-Hall,1981.
development.ACM SIGSOFT.
[17] Boehm, Baffy. A spiral model of software
SoftwareEngineeringNotes ll,4 (Aug' 1986)
DeSimmi..The ESTEREL Language.
[1g] Boussinot, Fr6d6ric, and Robert
Proceedingsof the IEEE,79,9 (Sept' 1991): 1293-1344.".,
Month. New York: Addison-
[19] Brooks, Frederick P. The Mythicat Man
Wesley,1982.
PaoloNesi.Tools for specifying
[20] Bucci, Giacomo,Maurizio campanai,and
real-tirnesystems.Real-TimeSystemsJournal, (Jan' 1995)'
and Their Program-
[21] Burns, Alan, and Andy wellings. Real-timesystems
ming Languages.New York: Addison-Wesley,1990'
to Serial Communications'
[22] Campbell, Joe. C Programmer's Guide
Indianapolis:Howard Sams& Co., 1988'
Controlling the software life
l23l Cave, William C., and Alan B. Salisbury.
cycle-The project management task. IEEE Transactions on sOftware
Engineering(JulY 1978): 326-334'
IntegratedElectronic Circuits'
[24] Chirlian, Paul M. Analysisand Design of
Znd,ed.New York: HarPer& Row, 1987'
McMillen. A language
[25] Clark, Edmund M. Jr., David E. Long, and Kenneth
for computational specification and verification of finite state hardware
conrrollers.Proceedingsof the IEEE,79,9 (Sept. 1991): 1283-1292.
New York: Addison-wesley,
126l cox, Brad. obiect-oriented Paradigms.
1988.
An Evolutionary Approach'
I27l Cox, Brad. object-oriented Programming:
New York: Addison-WesleY, 1991.
New York:
[28] Daigle, John N, Queuing Theory for Telecommunications.
Addison-WesleY, t992.
[29] Davari; sadegh, Ted F. Jr. I-eibfried, Swami Natarajan, David Pruett, Lui
Sha and Wei Zhao. Real-time issuesin the design of the data management
SystemfortheSpacestationFreedom.Proceedingsofthe
3{7
I BibliograPhY
[32]DeMillo,RichardA.,RichardJ.Lipton,andAlanPerlis.Socialprocesse
andproofsoftheoremsandprograrns.CommunicationsoftheACM22,
(hday 1979)'
[33]Desmonde,WH.Real-timeDataProcessingSystems:Introduilo
1964'
Concepls'EnglewoodCliffs, N'J': Prentice-Hall'
[34]Dijkstra,E.W'CooperatingSequentialprocesses.TechrcicalReportE
l2S.Eindhoven,Netherlands:TechnologicalUniversity,1965.
[35]Dijkstra,E.W.Gotostatementconsideredharmful.Communicationso
ACM ll,3 (Mar. 1958)'
[36]Dijkstra,E.W..solutionofaprobleminconcurrentprogrammingcontro
(Mar' 1968)'
Communicatioi\ o7 the ACIvI 11, 3
S' Genolini' S' Crespi-Reghizzi'R' Bayan' C'
[37] DiMaio, A., C. Cardigno,
DRAGOON: An Ada-
Destombes,C. V. Atiinson, and S' J' Goldsack'
basedobject-orientedlanguageforconcurrent,real-time,distribute
Ada-Europe International
systems. SystemsDesign- with Ada' Proc'
Conference,Madrid'AdaCompanionSeries'Cambridge:Cambrid
UniversitYPress,June 1989'
t38]DOD-STD.2I6TA.MilitarystandarddefenseSystemsoftwaredevelo
Defense' 1988'
ment. Washington,D'C': U'S' Departmentof
[39]Dorf,RichardC.,TheElectricalEngineeringHandbook,Piscataway,
CRC PressAEEEPress,1993'
[40]Dougherty,E.R.,andC'R'Giardina'MathematicalMethodsforArtific
IntelligenceandAutonomousSystems'EnglewoodCliffsN.J.:Frent
Hall, 1988'
Bjame Stroustrup'The AnnotatedC++ Re'feren't
[41] Etlis, MargaretA', and
Manual. New York: Addison-Wesley'1990'
[42]Fagan,M.E.DesignandcodeinspectionstoreduceerrorsrnPro
Journal t5' 3 (1976):lll'
' IBM Systems
development
jrd e'j' \e* \c:L'
Y' Total Quatitl' Control'
[43] Feigenbaum,Armand
McGraw'Hill, 1983'
[44]Ferrintino,A'B.,andH.D'Mills.Sute-machinesandtheu-.ec.ual.-
19;l'
softwareengineering'Proc' IEEE COMPS'-\C'
c|f
verificadon: The r.en. idea. CommunlCClitclu.l:
[45] Fetzer, JamesH. Frogram
theACM 31,9 (Sept'i988t: 1O+8-1062'
348 I Bibliography
[97] Laplante, Phillip A., Ajmal H. Arastu, and Michael E. Mclane. The
softwarelife cycle and its relationto systemtesl.Proceedingsof the Third
AT&T SoJ'tware Quality Symposiunt.Holmdel, N.J. (Dec. 1988).
[98] Laplante, Phillip A., Eileen Funck-Rose,and Maria Gracia-Watson'An
historical overview of early real-time system developmentsin the US.
Real-TimeSystemslournal (Jan. 1995).
[99] Laplante,Phillip A., and D. Sinha.Positionallogic and its applicationto
databasesystems.Proceedingsof the International Conferencefor Young
ComputerScientists. Beijing (July 1991).
.SL
[100] Lawson, Harold Parallel Processingin Industrial Real-TimeApplica-
tions Englewood Cliffs, N.J.: Prentice-Hall, 1992.
[101] Lehoczky, John, Liu Sha, and Ye Ding. The rate monotonic scheduling
algorithm: Exact characterizationand averagecasebehavior.Proceedings
of the l)th Real-TimeSystemsSymposium.Santa Monica, Calif' (Dec.
1 9 8 9 ) :1 6 6 - 1 7 1 .
[102] I-eveson,Nancy G., and JaniceL. Stolzy.Safety analysisusing Petri nets.
IEEE Transactionson SoftworeEngineering 13,3 (Mar. 1987):386-397.
[103] Levi, Shem-Tov,and Ashok K. Agrawala.Real-timeSystemDesign. New
York: 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 practicalapplicationof the ceiling
protocol in a real-time system. Technical Report CMUISEI-88-SR-3.
Camegie-MellonUniversity: SoftwareEngineeringInstitute, i 988.
[106] Lyu, Michael R., ed. SoftwareReliability Engineering,Piscataway,N'J.:
IEEE Press,1996.
[107] MacWilliams, F. J., and N. J. A. Sloane.The Theory of Error-Correcting
Codes.Amsterdam:North-Holland, 1977.
[108] Mano, M. Morris. ComputerSystemArchitecture.EnglewoodCliffs, N.J.:
Prentice-Hall, 1982.
[109] tvlano,M. Morris. Digital Logic and ComputerDesign.EnglewoodCliffs.
N.J.: Prentice-Hall,1979.
[1i0] Markov,John.RISC Chips.BYTE (Nov. 1984):191'206.
[111] N{artin,J.ProgrammingReal-TimeComputerS1's/enrs. Ensie+oci C..::s.
N.J.: Prentice-Hall,1965.
[112] McCabe,T. J. A complexitymeasure.IEEE Transd.Iit,';-r-'4 -i-.i".;-.
Engineering2,4 (Dec. 1976): 308-320.
[113] Melliar-Smith,P. M. Intervallogic to real-timesvstem].Lc::tt',,\'f.'r-r r{
ComputerScience.G. Voos and J. Hartmarus.eds. -\es \brli: Spnnger-
Verlag,1988,pp. 224-242.
352 I Bibliography
1
I Bibliography 353
York: Addison-
[149] Sommerville, Ian. SofWare Engineering. 4th ed. New
Wesley,1992.
be aware.
[150] Speny, Tyler. Real-tirhe operating systems: let the buyer
Embeclded systems Programming Product News, (summer 1995):
12-2r.
in computer
[i51] Spivey, J., The Z Notation: A ReferenceManual. series
Science.EnglewoodCliffs, N.J.: Prentice-Hall,1989.
Systems-A
[152] Stankovic, J., and Krithi Ramamritham.Hard Real-Time
Tutorial. Washington,D.C': ComputerSciencePress (IEEE), 1988'
C.Bttazzo.
[153] Stankovic,JohnA., Maro Spuri, Marco Di Natale and Giorgio
Implications of classicalschedulingresults for real-time systems. IEEE
Computer,2,6 (June1995):16-25.
[154] Steininger,A., and H. Schweinzer.Can the advantages of RISC be utilized
'91 Workshopon Real-
in real-timesystems?Proceedingsof the Euronticro
TimeSystem.s. Paris(1991):30-35.
York: McGraw-
[155] Stimler, Saul. Real-TimeData-Processingsystems.New
Hill, 1969.
languages,
[156] Stoyenko, A. D. Evolution and state-of-the-artof real-time
Journal of Systemsand Software 18 (Apr'. 1992):6l-84'
languagefor
[157] Stoyenko,A. D., and E. Kligerman. Real-Time Euclid: A
reliable real-time systems.IEEE Transactions on sofnvare Engineering
SE-12(Sept.1986):940-949.
N.J.: IEEE
[158] Tripp, Leonard L. IEEE Standardscollection, Piscataway,
Press,1994.
Borland Inter-
ll59l Turbo C User's Guide Version2.0. Scotts Valley, Calif.:
national,1988.
[160] Walpole,RonaldE., and RaymondH. Myers. Probability and Statisticsfor
Engineers and scientists. 2nd ed. New York: Macmillan Publishing,
t978.
[161] Warnier,J. D. Logical Constructionof Programs.New York: Van Nostrand
Reinhold, 1974.
[162] Washabaugh,Douglas M., and Dennis Kafura. Incremental garbage
collection of concurrentobjects for real-time applicationS. Proceedingsof
the llth Real-Time systemssymposium.Lake Buena vista, Fla. (Dec.
1 9 9 0 ) 2: 1 - 3 0 .
[163] Wheeden,Richard L., and Antoni Zygmund. Measureand Integral. New
York: Marcel Dekker, 1977.
[i64] Wirth, Niklaus. Programmingin Modula-2.2nd ed. New York: Springer-
Verlag,1983.
[165] Wulf, W., and Mary Shaw.Global variablesconsideredharmful. SIGPLAN
Natices L 2 {J973); 28-34'
lndex
-t<-s
356 Index