UCSC CMPS 111 - Chapter 2 - Processes and Threads (62 pages)

Previewing pages 1, 2, 3, 4, 29, 30, 31, 32, 59, 60, 61, 62 of 62 page document View the full content.
View Full Document

Chapter 2 - Processes and Threads



Previewing pages 1, 2, 3, 4, 29, 30, 31, 32, 59, 60, 61, 62 of actual document.

View the full content.
View Full Document
View Full Document

Chapter 2 - Processes and Threads

70 views


Pages:
62
School:
University of California, Santa Cruz
Course:
Cmps 111 - Introduction to Operating Systems
Unformatted text preview:

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


View Full Document

Access the best Study Guides, Lecture Notes and Practice Exams

Loading Unlocking...
Login

Join to view Chapter 2 - Processes and Threads and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Chapter 2 - Processes and Threads and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?