A third common type of deadlock occurs when two processes
are trying to send data to each other but can??™t because the input buffer on each process is
so busy trying to send data that it never reads any data sent by the other process. This
type of deadlock is colorfully referred to as constipation.
Livelocks??”A livelock occurs when a task or process, usually a server process, is unable
to finish because its clients continue to create more work for it to do before the server can
clear its queue. The difference between a livelock and a deadlock is that a deadlocked
process doesn??™t have any work queued; it is blocked or waiting for something to happen.
A livelocked process, on the other hand, has too much work to do and never empties its
work queue.
Races??”A race occurs when the result of a computation depends on the order in which
two events occur. Say, for example, that two processes are accessing a file. The first process
writes data to the file, and the second process reads data from the file to calculate and display
a summary value. If the reader process reads the file after the writer completes, the
reader calculates and returns the correct value. If the reader process reads the file before
the writer completes, the reader will calculate and return an incorrect summary value.
Pages:
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377