Sie sind auf Seite 1von 8

Index

AL
RI
abstract model 242, 243 definition 219, 232

TE
Abstract Windowing Toolkit (AWT) in Java 220–221
266, 270 modeling 221–225
abstraction 75, 76, 161 asynchronous model 39

MA
accept 226 asynchronous processes 59, 278
accept method 226 atomic actions 11, 31, 67, 71, 77
action 11–13, 15, 18–20, 31
action labels 373–374
action prefix 12–14 balking 317
D
action priority 139–140, 156 Balzer, B. 233
action priority operators 139 barrier synchronization 274
TE

active entities 76, 81 Ben-Ari, M. 9


active objects 114 Birtwistle, G.M. 104, 208
Ada 211, 227, 232, 234 BlueCar class 131, 132
GH

adverse scheduling conditions 149 Booch, G. 5, 25, 31, 180


Allocator interface 185, 186 bounded buffers 93–96, 231, 232
alphabet 22–23 model 94–95
RI

alphabet extension 22, 126, 146 program 95–96


always 349, 354, 355, 357 using semaphores 98
Andrews, G.R. 101, 104, 156, 274 bounded delays 207
PY

animation 5, 6 bounded overtaking 194–200


Announcer-Listener event-based bounder buffer invariant 102
architecture 265–273, 287 BoxCanvas class 270
CO

implementation 269–273 BoxMover class 271, 272


modeling 266–269 Bridge class 133
safety analysis 268–269 BridgeCanvas class 130, 131
applets 3, 5, 7, 27–30 Brinch-Hansen, P. 103, 104, 233
architectural properties, analysis Bruno, G. 180
243–244 Büchi automaton 156, 352–355,
architectures 237–273 365
Areceiver class 222 Buffer interface 95
Arrivals class 82 buffer invariant 102
Asender class 222 BufferImpl class 95, 245
assert 345 buffer tolerant 241
asynchronous message passing 209, buffers 93–96, 249
219–225 Burns, A. 9, 274
applet display 220, 221 Bustard, D.W. 104
408 Index

Calculus of Communicating Systems model elaboration 164–166


(CCS) 7, 32, 60 progress properties 172–174
call 226 revising the model 169–172
call method 226 safety properties 167–169
Car Park class diagram 82 simulation 3
Car Park model 80–81 SpeedControl class 178–179
Car Park program 81–83 structure diagram 162–163
CARPARKCONTROL 80, 82, 85 CSP 7, 32, 59, 60, 210, 233, 317
CarParkControl invariant 102 Cunningham, R.J. 208
Carriero, N. 251, 258, 274
CarSpeed interface 176 Dahl, O. 104, 208
Chandy, K.M. 120 Darwin, graphical representation 60
channel 209–212, 214–218, 226, 273, 276 data independence 94
Channel class 212, 228, 234 Database Ring Problem 358–364
Cheung, S.C. 156, 274 Davies, G.L. 9, 274
CHILL 234 deadlock 59, 99, 100, 107–119, 281
choice 15–18 analysis 108–111
Chute class 302, 304 check 108
Ciancarini, P. 274 detection and recovery 108
Clarke, E.M. 157 state 108, 119, 124
client–server 209, 225, 232, 234 default progress property 139
common operators 368, 393–394 default property 138
Communicating Sequential Processes Departures class 82
(CSP). See CSP design architecture 160–161, 174, 175
composite process 39, 40, 44, 368, deterministic property 126, 155
378–380, 391–392 Dijkstra, E.W. 77, 86, 87, 103, 112, 120,
composition operator 39, 41, 59 206, 207
computation tree logic (CTL) 365 Dining Philosophers 112–119
concurrent 38 applet 117, 118
concurrent activity 31 composite model 113
Concurrent Euclid 104 implementation 114–118
concurrent execution 37–59 Dining Savages 104
Concurrent Pascal 104 discrete time 278, 279, 316
concurrent program 11, 24, 37, 38 CSP 317
condition synchronization 79–86 double-click program 277–279
in Java 83–86 Dulay, N. 60
conditional notification 134 dynamic systems 183–205
conditional process 239
connectors 239, 250, 266, 273 efficiency 265
const 19, 374–375 Eisenbach, S. 60
constraint 309 Emerson, E.A. 157
Consumer class 289–292 encapsulation 161
consumer process 94, 101 END 320
Cordy, J.R. 104 entering a monitor 84
countdown timer 21, 27–30 entry 225, 226
Counter class 65–67, 72, 73 Entry class 226–228, 233
critical section 77, 89, 91 equivalent observable behavior 50
cruise control system 2–4, 161–162 ERROR state 70, 88, 89, 124–126, 129, 148,
animation 5, 6 155
applet display 175 event 265, 266, 268
class diagram 176 event-based architectures 265, 274
Controller class 176–178 event-based systems 287, 292, 316
implementation 174–178 eventually 351, 355, 357
Index 409

exhaustive analysis 5 heavyweight processes 24


exhaustive search 70, 74 hiding 49–51, 59, 60, 75, 381–382, 393
exists 350 hiding operator 49
exiting a monitor 84 high priority operator 139
expressions 383–385 Hoare, C.A.R. 32, 59, 60, 103, 210, 233
Holt, R.C. 104
fair allocation 192–193 Holzmann, G.J. 156
fair choice 136, 138, 139, 149, 156
FairAllocator class 193, 194 I/O automata 31
FairBridge class 145 ImmutableList class 294
filter 237 implicit invocation 266
Filter class 244, 247 indexed processes and actions 18–20
filter pipeline 237–249, 273 input action 16, 31
finite state machines 11, 23 interface 393, 394
finite state models 9 interface operator 50
Finite State Processes. See FSP interference 63–71, 77
fluent 346–348, 351, 364, 365 interleaving 2, 37–39
Fluent Linear Temporal Logic (FLTL) interrupt() 54, 56, 57
355–358 invariants, monitors 101–102
forall 348, 354, 357, 361 isAlive() 26, 202
fork 206
Fowler, M. 180
Francez, N. 157 Jacobson, I. 25, 31, 180
free actions 68 Java 1, 3, 5, 7, 9, 81, 83–86, 115
FSP 7, 12, 13, 21, 22, 26, 31, 32 applet 27
basic form 385 asynchronous message passing in
composition and priority 392 220–221
description 372 condition synchronization in 83–86
identifiers 372 mutual exclusion in 71–73
language specification 371–387 rendezvous in 226–228
quick reference 367–370 semaphores in 89–93
semantics 389–397 synchronous message passing in
Function class 262 212–214
threads 31
threads in 24–25
Garlan, D. 274 JITTER 285
Gelernter, D. 251, 258, 274 join() 183, 202, 203, 206
Generator class 244, 246 Joseph, M. 317
Giannakopoulou, D. 60, 156
Goldberg, A. 274
Golf Club program 184–188 Kanellakis, P.C. 60
applet display 184 Kleiman, S. 274
class diagram 185 Kramer, J. 60, 156, 208
modeling 188–192
revised allocator 193–194 label sets 190
Gomaa, H. 180 Labeled Transition System. See LTS
Gribomont, P. 156 Labeled Transition System Analyzer. See
guarded actions 21–22 LTSA
Gullekson, G. 180 Lachover, H. 31, 180
Lamport, L. 156
handshake 43 Lampson, B.W. 104
Hankin, C. 274 Le Metayer, D. 274
Harel, D. 31, 180, 181 Lea, D. 10, 32
410 Index

Lehman, D. 120 exiting a monitor 84


Leveson, N. 9 invariants 101–102
lightweight processes 24, 31 nested 97–101
Linda tuple space 251–254, 273, 274 MsgCarPark class 217, 218
in 251 MsgGate class 216, 217
out 251 multi-party synchronization 44
rd 251 multi-threaded programs 52–59
Linear Temporal Logic (LTL) 156, 345, MutexLoop class 92
349, 351, 365 mutual exclusion 46, 63–76, 88, 89, 91,
Lister, A. 104 123, 126
livelock 243 modeling 73–76
liveness property 123–154 property 126
liveness, single-lane bridge problem Myhrhaug, B. 104, 208
140–146 MyListener class 271, 272
lock 72–74, 99, 100
Logical Properties 345–364 Naamad, A. 31, 180
LOTOS 32 nested monitor calls 103, 104
low priority operator 139 nested monitor problem 100
LTS 12, 13, 31, 32, 389–390 nested monitors 97–101
composition 391–392 Next Time 358
priority 392 non-deterministic choice 17–18, 126,
LTSA 5, 7, 40, 41, 45, 47, 50, 55, 60 242
LTSA Animator 13, 14, 16, 18, 22 non-deterministic process 17
Lynch, N. 31 notify() 84–86, 91, 101–103
notifyAll() 84, 85, 102, 103
Magee, J.N. 60, 156, 274 NumberCanvas 27
master 202
Master class 202–204
master-slave program 202–203 observational equivalence 60
modeling 203–205 Occam 209–211, 233
maximal progress 282–284, 286, 292, 316 OMT (Object Modeling Technique) 5
May, D. 233 operating system processes 23–24
menu 382–383 operators 368
Mesa 104 Ornamental Garden
message passing 209–232. See also Animator trace 70
asynchronous message passing; class diagram 64
rendezvous; synchronous message corrected program 72, 73
passing model 67–71
Message Sequence Charts (MSC) 180 problem 63–67
Milner, R. 32, 60, 207 output action 15
minimization 50, 59, 76
minimized LTS 240, 241 Package Router problem 295
Misra, J. 120 parallel 38
model-based design 159–178 parallel composition 39–41, 44, 51, 59
modeling 4–7, 38–52, 87–89 parameters 380
processes 11–23 parcel router problem 295–306
semaphores 86–93 applet display 301, 302
Modula 104 implementation 301–306
modularity 161 modeling 296–301
monitor method 231–232 ParcelMover interface 302
monitor wait queue 85 Parrow, J. 207
monitors 79–102, 130, 144, 150, 151 Pascal Plus 104
entering a monitor 84 passive entities 76, 81
Index 411

passive objects 114 applet display 152


Peterson’s algorithm 158 implementation 150–152
Peterson, J.L. 60 modeling 146–150
Petri Nets 60, 180 revised implementation 153–154
π -calculus 207 revised model 153–154
pipe 273 ReadWrite interface 151
Pipe class 245, 248 ReadWriteSafe class 151
PipeImplBuf class 248 real-time 277
PipeImplUnBuf class 248 receive 209–211, 215
pipeline 237 Receiver class 212–215
pipes 238, 239 rectangle method 260
Player class 186 recursive locking 73, 74, 78
Port class 220, 226, 228, 232 RedCar class 131, 132
ports 219, 221, 223, 224 Redell, D.D. 104
pre-tick() 288, 292, 293, 295 Reiss, S.P. 274
pre-tick clock phase 290, 315 relabeling 48–49, 51, 59, 60, 381–382, 393
pre-tick phase 292, 316 relabeling functions 48–49
preemption 107–109, 120 Remote Method Invocation (RMI) 232
prefix labels 45, 51 rendezvous 209–232, 273
prefix matching 382 applet display 227, 228
Primes Sieve definition 209, 226, 232
applet 244, 245 in Java 226–228
implementation 244–249 modeling 228–231
model 238–244 and monitor method invocation
process architecture 238 231–232
Primes Sieve of Eratosthenes 238 reply 226
PrimesCanvas class 244, 246 reply method 226
printer–scanner system 109–111 request-reply 225
process 2, 5, 11–30, 367, 390–391 requirements specification 160
alphabets 22–23 Result class 262, 263
definition 375–378 resume() 26
interaction 42, 59 rigid 357
labeling 45–47, 59 Robson, D. 274
parameters 20 ROOM 180
Producer class 289–292 Roscoe, A.W. 317
producer process 94 Rotator class 56, 57
producer-consumer model 289–292 Rumbaugh, J. 25, 31, 180
ProducerConsumer class 289 run() 24–26, 29, 30, 295
Program Verification 319–340 Runnable 25, 26, 29
progress 135
analysis 137–139
properties 135–138, 140, 149–150, 156, safety analysis 124–127
191, 193, 369, 382 safety properties 123–126, 129, 147–148,
cruise control system 172–174 155, 156, 369, 382, 394
violation 138, 139, 154 cruise control system 167–169
property 123, 125, 127, 153, 154, 369 for mutual exclusion 126–127
safety violation 127, 130, 148
Rabin, M.O. 120 Savings Account Problem 105
range 19, 374–375 Scott, K. 180
range type 19 select 211
read/write lock 123, 147, 148, 150, Selectable class 212, 217, 220, 226
154 selective receive 211–212
Readers–Writers problem 146–154 modeling and implementing 216–219
412 Index

Selic, B. 180 state machine 11, 12, 24, 31, 32


SemaBuffer class 95, 99 State Transition Diagrams (STD) 31
semantic equivalences 394–395 statecharts 31, 180, 181
Semaphore class 88 STATEMATE 180
semaphore invariant 102 STOP 13, 22, 30, 108
semaphores 86–93, 126, 127, 157 stop() 21, 26, 30, 57
fixed bounded buffer using 100 strong semantic equivalence 394
in Java 89–93 strongly connected component 138
modeling 86–93 structure diagram model 161
send 209–211, 215 structure diagrams 50–52, 59, 60
Sender class 212–214 Supervisor class 262, 263
SensorController class 302, 303, 305 supervisor-worker system 250–265
sequential composition 320–321 applet display 260, 261
set 374–375 class diagram 261
set constant 67 implementation 260–265
set of action labels 16 modeling 254–260
Shah, D. 274 process architecture 250
shared actions 41–45, 51, 59 safety analysis 257–260
shared objects 63–76 SupervisorCanvas class 261, 262
Shaw, M. 180, 274 Switch class 299, 302–304
shortest trace 108 SwitchControl interface 302
signal and continue 103 synchronized method 72, 73, 75, 77, 79,
signal and urgent wait 103 84, 90, 95, 101
SimpleAllocator class 185, 186 synchronous message passing 209–219
SIMULA 104 applet display 212, 213
Simulate 66 definition 210, 232
single-lane bridge problem 127–134 in Java 212–214
class diagram 130, 131 modeling 214–215
display using Bridge class 133 synchronous model 39
implementation 130–134
liveness 140–146 terminal sets of states 137, 138, 150
modeling 128–130 Therac 1, 4
revised implementation 144–146 thread-based systems 287, 316
revised model 142–144 thread life cycle 25–27
Sistla, A.P. 157 ThreadDemo example
slave 202 implementation 56–59
Slave class 202, 204 model 53–56
sleep() 26, 30 ThreadPanel class 56, 82, 92, 214, 221,
Sloman, M.S. 274 228
SlotCanvas class 188, 212, 221, 228 threads 11–30, 81
Smaalders, B. 274 in Java 24–25
Smolka, S.A. 60 tick 278, 279, 284, 287, 315
Space Invaders 306–315 tick() 288, 291–293
applet display 307 tick phase 288, 292, 315, 316
implementation 313–315 tickets 192, 193
modeling 307–312 time 277
safety analysis 311–312 time-stop 281, 291, 298, 316
speedup 265 TimedCountDown class 289
SPIN 156 timed CSP 317
sprites 307–309 timed objects 287–293, 313, 316
start() 26, 29, 30 timed systems 277–315
starvation 134, 135, 185, 194, 208 implementing 287–295
state 11, 13, 15, 16, 24, 26 modeling 278–287
Index 413

modeling techniques 284–287 UML 5, 160, 180


output in an interval 284–285 class diagrams 399–400
timed wait() 111, 121 unbuffered pipes 241, 245
TimedCountDown class 289 undefined states 88, 129
TimeManager class 289, 293 Unified Modeling Language. See UML
timeout 211, 234, 286–287 until 355–356
timing consistency 280–281 use case scenarios 160, 161
timing uncertainty 278, 285
token ring architecture 275 verification 319
trace 13, 69–71, 89, 99, 124, 126, 127, 143,
155 wait() 84, 85, 99, 101–103
transition graph 11 wait-for cycle 107, 109, 114, 118–120
transitions 11, 13, 15 Walker, D. 207
transparency 126 Ward, P.T. 180
Transputer 210, 233
weak semantic equivalence 395
tuple space 251, 263, 273
Weak Until 356–358
implementation 253–254
Welsh, J. 104
modeling 252–253
Wirth, N. 104
TupleSpace interface 253
Witness 362–363
TupleSpaceImpl class 255
Wolper, P. 156
Turing Plus 104
Worker class 263, 264
Turner, C. 9
WorkerCanvas class 261, 262
Turnstile class 65
two-phase clock 292
type-ahead buffer 93 yield() 26, 66

Das könnte Ihnen auch gefallen