0% found this document useful (0 votes)
307 views62 pages

Processes and Threads: Modern Operating Systems

The document discusses processes and threads in operating systems. It covers topics like process creation and termination, process states, implementation of processes using process tables, modeling multiprogramming, thread usage in applications like web servers, the classical thread model involving shared and private items, POSIX threads functions, implementing threads in user space vs kernel, race conditions and solutions like critical regions, semaphores, and mutexes.

Uploaded by

Sherry Dk
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
307 views62 pages

Processes and Threads: Modern Operating Systems

The document discusses processes and threads in operating systems. It covers topics like process creation and termination, process states, implementation of processes using process tables, modeling multiprogramming, thread usage in applications like web servers, the classical thread model involving shared and private items, POSIX threads functions, implementing threads in user space vs kernel, race conditions and solutions like critical regions, semaphores, and mutexes.

Uploaded by

Sherry Dk
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 62

MODERN OPERATING SYSTEMS

Third Edition

ANDREW S. TANENBAUM

Chapter 2
Processes and Threads

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Process Model

Figure 2-1. (a) Multiprogramming of four programs. (b) Conceptual


model of four independent, sequential processes. (c) Only
one program is active at once.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Process Creation

Events which cause process creation:

• System initialization.
• Execution of a process creation system call by a
running process.
• A user request to create a new process.
• Initiation of a batch job.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Process Termination

Events which cause process termination:

• Normal exit (voluntary).


• Error exit (voluntary).
• Fatal error (involuntary).
• Killed by another process (involuntary).

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Process States

Figure 2-2. A process can be in running, blocked, or ready state.


Transitions between these states are as shown.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Implementation of Processes (1)

Figure 2-3. The lowest layer of a process-structured operating


system handles interrupts and scheduling. Above that layer
are sequential processes.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Implementation of Processes (2)

Figure 2-4. Some of the fields of a typical process table entry.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Implementation of Processes (3)

Figure 2-5. Skeleton of what the lowest level of the operating


system does when an interrupt occurs.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Modeling Multiprogramming

Figure 2-6. CPU utilization as a function of the number of


processes in memory.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Thread Usage (1)

Figure 2-7. A word processor with three threads.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Thread Usage (2)

Figure 2-8. A multithreaded Web server.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Thread Usage (3)

Figure 2-9. A rough outline of the code for Fig. 2-8. (a) Dispatcher
thread. (b) Worker thread.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Thread Usage (4)

Figure 2-10. Three ways to construct a server.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Classical Thread Model (1)

Figure 2-11. (a) Three processes each with one thread. (b) One
process with three threads.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Classical Thread Model (2)

Figure 2-12. The first column lists some items shared by all
threads in a process. The second one lists some items private
to each thread.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Classical Thread Model (3)

Figure 2-13. Each thread has its own stack.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
POSIX Threads (1)

Figure 2-14. Some of the Pthreads function calls.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
POSIX Threads (2)

...
Figure 2-15. An example program using threads.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Implementing Threads in User Space

Figure 2-16. (a) A user-level threads package. (b) A threads


package managed by the kernel.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Hybrid Implementations

Figure 2-17. Multiplexing user-level threads


onto kernel-level threads.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Pop-Up Threads

Figure 2-18. Creation of a new thread when a message arrives.


(a) Before the message arrives.
(b) After the message arrives.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Making Single-Threaded Code
Multithreaded (1)

Figure 2-19. Conflicts between threads


over the use of a global variable.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Making Single-Threaded Code
Multithreaded (2)

Figure 2-20. Threads can have private global variables.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Race Conditions

Figure 2-21. Two processes want to access


shared memory at the same time.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Critical Regions (1)

Conditions required to avoid race condition:

• No two processes may be simultaneously inside their


critical regions.
• No assumptions may be made about speeds or the
number of CPUs.
• No process running outside its critical region may
block other processes.
• No process should have to wait forever to enter its
critical region.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Critical Regions (2)

Figure 2-22. Mutual exclusion using critical regions.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Mutual Exclusion with Busy Waiting

Proposals for achieving mutual exclusion:

• Disabling interrupts
• Lock variables
• Strict alternation
• Peterson's solution
• The TSL instruction

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Strict Alternation

; ;

Figure 2-23. A proposed solution to the critical region problem.


(a) Process 0. (b) Process 1. In both cases, be sure to note
the semicolons terminating the while statements.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Peterson's Solution

Figure 2-24. Peterson’s solution for achieving mutual exclusion.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The TSL Instruction (1)

Figure 2-25. Entering and leaving a critical region


using the TSL instruction.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The TSL Instruction (2)

Figure 2-26. Entering and leaving a critical region


using the XCHG instruction.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Producer-Consumer Problem

...
Figure 2-27. The producer-consumer problem
with a fatal race condition.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Semaphores

...
Figure 2-28. The producer-consumer problem using semaphores.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Mutexes

Figure 2-29. Implementation of mutex lock and mutex unlock.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Mutexes in Pthreads (1)

Figure 2-30. Some of the Pthreads calls relating to mutexes.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Mutexes in Pthreads (2)

Figure 2-31. Some of the Pthreads calls relating


to condition variables.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Mutexes in Pthreads (3)

...
Figure 2-32. Using threads to solve
the producer-consumer problem.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Monitors (1)

Figure 2-33. A monitor.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Monitors (2)

Figure 2-34. An outline of the producer-consumer problem with


monitors.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Message Passing (1)

...
Figure 2-35. A solution to the producer-consumer
problem in Java.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Message Passing (2)
...

...
Figure 2-35. A solution to the producer-consumer
problem in Java.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Message Passing (3)
...

Figure 2-35. A solution to the producer-consumer


problem in Java.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Producer-Consumer Problem
with Message Passing (1)

...
Figure 2-36. The producer-consumer problem with N messages.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Producer-Consumer Problem
with Message Passing (2)
...

Figure 2-36. The producer-consumer problem with N messages.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Barriers

Figure 2-37. Use of a barrier. (a) Processes approaching a barrier.


(b) All processes but one blocked at the barrier. (c) When the
last process arrives at the barrier, all of them are let through.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Scheduling – Process Behavior

Figure 2-38. Bursts of CPU usage alternate with periods of waiting


for I/O. (a) A CPU-bound process. (b) An I/O-bound process.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Categories of Scheduling Algorithms

• Batch
• Interactive
• Real time

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Scheduling Algorithm Goals

Figure 2-39. Some goals of the scheduling algorithm under


different circumstances.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Scheduling in Batch Systems

• First-come first-served
• Shortest job first
• Shortest remaining Time next

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Shortest Job First

Figure 2-40. An example of shortest job first scheduling.


(a) Running four jobs in the original order. (b) Running them
in shortest job first order.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Scheduling in Interactive Systems

• Round-robin scheduling
• Priority scheduling
• Multiple queues
• Shortest process next
• Guaranteed scheduling
• Lottery scheduling
• Fair-share scheduling

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Round-Robin Scheduling

Figure 2-41. Round-robin scheduling.


(a) The list of runnable processes. (b) The list of runnable
processes after B uses up its quantum.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Priority Scheduling

Figure 2-42. A scheduling algorithm with four priority classes.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Thread Scheduling (1)

Figure 2-43. (a) Possible scheduling of user-level threads with a


50-msec process quantum and threads that run 5 msec per
CPU burst.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Thread Scheduling (2)

Figure 2-43. (b) Possible scheduling of kernel-level threads with


the same characteristics as (a).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Dining Philosophers Problem (1)

Figure 2-44. Lunch time in the Philosophy Department.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Dining Philosophers Problem (2)

Figure 2-45. A nonsolution to the dining philosophers problem.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Dining Philosophers Problem (3)

...
Figure 2-46. A solution to the dining philosophers problem.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Dining Philosophers Problem (4)

...

...

Figure 2-46. A solution to the dining philosophers problem.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Dining Philosophers Problem (5)
...

Figure 2-46. A solution to the dining philosophers problem.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Readers and Writers Problem (1)

...
Figure 2-47. A solution to the readers and writers problem.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Readers and Writers Problem (2)

...

Figure 2-47. A solution to the readers and writers problem.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

You might also like