There are several varieties of operating systems, including interactive, batch, and real time. Each is
designed to best meet the peculiar requirements of its intended use.
Most modern operating systems support the concept of threads in addition to processes. A process
represents a set of resources such as memory, open files, common variables, network connections, etc., and
a thread represents a particular path of code execution. Threading allows for easy sharing of resources among
the threads, which are essentially separate cooperating tasks.
Multiprogramming, multiprocessing, and multithreading require careful consideration of thread and
process synchronization techniques. These same operating system advances also introduce the possibility of
deadlock. For process synchronization, most operating systems provide semaphores, a simple, effective
construct first proposed by Edgar Dijkstra in 1965.
124 OPERATING SYSTEMS [CHAP. 6
The four conditions necessary for deadlock to occur are: mutual exclusion, hold and wait, no preemption,
and circular wait. Avoiding deadlocks, or detecting and correcting them, turns out to be costly of performance
and difficult to implement in the general case. We discussed various mechanisms for preventing deadlocks, and
we discussed the banker??™s algorithm for deadlock avoidance.
Pages:
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346