chapter 3: processes and threads dhamdhere: operating systems a concept-based approach, 2ed slide...

52
Chapter 3: Processes and Threads Dhamdhere: Operating Systems— A Concept-Based Approach, 2ed Slide No: 1 Copyright © 2006 Threads Context switch between processes is an expensive operation. It leads to high overhead A thread is an alternative model for execution of a program that incurs smaller overhead while switching between threads of the same application Q: How is this achieved ?

Upload: kory-barker

Post on 18-Jan-2018

277 views

Category:

Documents


9 download

DESCRIPTION

Chapter 3: Processes and Threads Dhamdhere: Operating Systems— A Concept-Based Approach, 2ed Slide No: 3 Copyright © 2006 A threads is a program execution within the context of a process (i.e., it uses the resources of a process); many threads can be created within the same process Switching between threads of the same process involves much less switching overhead

TRANSCRIPT

Page 1: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 1Copyright © 2006

Threads

• Context switch between processes is an expensive operation. It leads to high overhead

• A thread is an alternative model for execution of a program that incurs smaller overhead while switching between threads of the same application

Q: How is this achieved?

Page 2: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 2Copyright © 2006

Thread switching overhead

• A process context switch involves: 1. saving the context of the

process in operation 2. saving its CPU state 3. loading the state of the new

process 4. loading its CPU state

Page 3: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 3Copyright © 2006

• A threads is a program execution within the context of a process (i.e., it uses the resources of a process); many threads can be created within the same process

• Switching between threads of the same process involves much less switching overhead

Page 4: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 4Copyright © 2006

• BPROCESS

THREADS

Page 5: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 5Copyright © 2006

OOP WITH C++ & JAVA – D SAMANTA –PHI(B)

• MULTITHREADING MEANS MULTIPLE FLOW OF CONTROL -- 2 ADVANTAGES

• 1. BETTER UTLIZN OF RES• 2. SEVERAL PROBS SOLVED

BETTER BY MULTITHREADS - EXS

Page 6: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 6Copyright © 2006

EXS(B)

• PROGRAM TO DISPLAY ANIMATION, DOCUMENTS TO PLAY MUSIC, & DOWNLOAD FILES FROM THE NET AT THE SAME TIME

• NETWORK SIMULATION EX –ADHOC NETW

Page 7: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 7Copyright © 2006

• B• JAVA IS A MULTITHREADED LANG• BECAUSE JAVA THRS RUN IN THE

SAME MEM SPACE, THEY CAN EASILY COMMN AMONG THEMSELVES, BECAUSE AN OBJECT IN ONE THR CAN CALL A METHOD IN ANOTHER THR WITHOUT ANY OVERHEAD REQ FROM THE OS

Page 8: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 8Copyright © 2006

• B• T1=new testthread(“thread1”, (int)

(math.random()*2000));• T2, T3• T2.start();• T1.start();• T3.start();

Page 9: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 9Copyright © 2006

• B• Start(), stop(), suspend(), resume();

sleep(int n), setPriority(int p), yield() – yield method causes the run time to switch the context from the current thr to the next available runnable thr.

• SPECIALITY –FACILITIES AT THE LANG LEVEL –USER CONTROL

Page 10: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 10Copyright © 2006

Threads

• Where are threads useful?• If two processes share the same address

space and the same resources, they have identical context–switching between these processes

involves saving and reloading of their contexts. This overhead is redundant.

• In such situations, it is better to use threads.

Page 11: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 11Copyright © 2006

Threads in process Pi : (a) concept, (b) implementation

Page 12: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 12Copyright © 2006

Advantages of threads

Page 13: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 13Copyright © 2006

Different kinds of threads

• Kernel-level threads: Threads are created through system calls. The kernel is aware of their existence, and schedules them

• User-level threads: Threads are created and maintained by a thread library, whose routines exist as parts of a process. Kernel is oblivious of their existences.

• Hybrid threads: A combination of the above.

Page 14: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 14Copyright © 2006

Q: Why three kinds of threads?A: Consider switching overhead,

concurrency/parallelism

Page 15: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 15Copyright © 2006

Scheduling of kernel-level threads

Page 16: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 16Copyright © 2006

EVENT

SAVE THREAD STATE

EVENT PROCESSING

SCHEDULING

THREAD OF SAME PR ?

SAVE PR CONTEXT

LOAD NEW CONTEXT

DISPATCH THREAD

YES

NO

Page 17: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 17Copyright © 2006

Scheduling of user-level threads

Page 18: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 18Copyright © 2006

Kernel-level and user-level threads

• Thread switching overhead

• Concurrency and parallelism

Page 19: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 19Copyright © 2006

Actions of the threads library: N, R, B indicate running, ready and blocked --- this schematic should be

replaced by the schematic of Ex. 3.6.

Page 20: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 20Copyright © 2006

Hybrid thread models

• Hybrid threads have elements of both kernel-level and user-level threads

• Each user-level thread has a thread control block (TCB)• Each kernel-level thread has a kernel thread control

block (KTCB)• Three models of associating user-level and kernel-level

threads– One-to-one association– Many-to-one association– Many-to-many association

Page 21: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 21Copyright © 2006

Hybrid thread models

• This schematic should be added (Fig. 3.15)

Page 22: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 22Copyright © 2006

Process Interactions

Processes may interact in four different ways:1.Sharing of data – Data consistency should

be preserved2.Synchronization of actions– Processes

should perform their actions in a desired order

3.Passing of messages – Messages should be stored and delivered appropriately

Page 23: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 23Copyright © 2006

4. Sending of Signals – Processes should be able to send signals to other processes and specify signal handling actions when signals are sent to them

The OS performs message passing and provides facilities

for the other three modes of interaction

Page 24: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 24Copyright © 2006

An example of data sharing: airline reservations

• MULTIPLE PROCESSES –EACH PR SERVICING ONE AGENT TERMINAL

Page 25: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 25Copyright © 2006

RACE CONDITIONS(B)

• LET Ds BE A SHARED VAR• Ai & Aj BE PRS WHICH SHARE THIS

VAR & OPERATE CONCURRENTLY• Ai : Ds=Ds+10;• Aj : Ds=Ds+5;• BECAUSE OF CONCURRENCY THERE

IS UNCERTAINTY –RACE CONDN• SOLUTION – MUTUAL EXCLN

Page 26: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 26Copyright © 2006

Race conditions in data sharing

Results of operations performed on shared data may bewrong if race conditions exist. Let us see why this may be so• Let operations Oi and Oj update value of a shared data

d, let fi(d) and fj(d) represent the value of d after the operations

• If processes Pi and Pj perform operations Oi and Oj

– If Oi is performed before Oj, resulting value of d is fi(fj(d))

– If Oj is performed before Oi, resulting value of d is fj(fi(d))

Page 27: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 27Copyright © 2006

Race conditions in data sharing

• A race condition is a situation in which the result of performing operations Oi and Oj in two processes is neither fi(fj(d)) nor fj(fi(d)).

• Q: Why do race conditions exist?

Page 28: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 28Copyright © 2006

Data sharing by processes of a reservations system

Page 29: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 29Copyright © 2006

Race condition in the airline reservations system

• Race conditions in the airline reservations system may have two consequences:–nextseatno may not be updated

properly–Same seat number may be

allocated to two passengers

Page 30: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 30Copyright © 2006

Race conditions in the airline reservations system

Page 31: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 31Copyright © 2006

Control synchronization between processes: Operation sj should be performed after si

TIME

Page 32: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 32Copyright © 2006

• (FIG a) PR Pi EXECUTES Si 1ST & THEN Pj EXECUTES Sj

• (FIG b) PR Pj IS NOT ALLOWED TO EXEC Sj TILL Pi EXECUTES Si

Page 33: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 33Copyright © 2006

EX 4.6(1ST EDN) – DESIGN TO REDUCE THE TIME OF EXECN

• Y=HCF(Amax, X) WHERE A IS ARRAY OF N ELEMENTS

• INSERT Y IN ARR• ARR A IN ASC ORDER• TO DET NO. OF PRS &

COMPUTATIONS IN EACH PR• PROBLEM SPLIT INTO FOLL STEPS

Page 34: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 34Copyright © 2006

1.READ N ELMENTS OF ARR A2.FIND Amax3.READ X4.DET Y=HCF(Amax, X)5.INCLUDE Y IN ARR A & ARR IN ASC

ORDER• EACH ST IS CONSIDERED TO BE A

SEPARATE PR –THEN DET WHICH OF THESE PRS INTERACT

• 2, 4, 5 ARE INTERACTING PRS• CONC CAN BE ACHIEVED BY

SPLITTING 2 & 5 INTO TWO PARTS

Page 35: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 35Copyright © 2006

2(a) COPY ARR A TO ARR B2(b) FIND Amax5(a) ARRANGE ARR B IN ASC ORDER5(b) INCLUDE Y IN ARR B AT APPROPR

PLACE

Page 36: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 36Copyright © 2006

P1

READ ELS

OF A

COPY A

TO B

P2

FIND Amax

P3

READ X

P4

Y=HCF(A

max, X)

P5

ARR B IN

ASC

ORDER

P6

INCLUDE Y

IN ARR B

Page 37: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 37Copyright © 2006

WHICH ARE THE PRS THAT CAN RUN CONCURRENTLY ?

• P1, P3 –C• P1 & P2 CANNOT RUN CONC AS THEY

SHARE ARR A• P2 MUST GO AFTER P1 FINISHES• P4 CAN BE INITD ONLY AFTER P1 & P3

TERMINATE• P5 CAN BE INITD AFTER P1 TERMS,

WHILE P6 CAN START ONLY AFTER P4 & P5 TERMINATE

Page 38: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 38Copyright © 2006

Interprocess messages

Page 39: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 39Copyright © 2006

Advantages of message passing

Page 40: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 40Copyright © 2006

IMPLEMENTATION OF INTERACTING PROCESSES

FORK - JOIN & PARBEGIN - PAREND

• FORK SPAWNS A NEW PR & JOIN WAITS FOR A PREVIOUSLY CREATED PR TO TERMINATE

Page 41: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 41Copyright © 2006

PR 0

FORK A,J,3

PR 0

JOIN J

FORK B

PR 1

JOIN J

PR 2

JOIN J

PR i

J

J+1

A

B

Page 42: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 42Copyright © 2006

• FOR I= 1 TO 100• READ A[I];• M=3;• FORK LAB1;• FORK LAB2;• GOTO LAB3;• LAB1: X=MIN(A);• GOTO LAB3;• LAB2: Y=MAX(A);• LAB3: JOIN M;• RESULT=Y/X;

Page 43: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 43Copyright © 2006

• FOR I= 1 TO 100• READ A[I];• PARBEGIN• X=MIN(A);• Y=MAX(A);• PAREND• RESULT=Y/X;

Page 44: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 44Copyright © 2006

Signals

• A process can send signals to other processes to convey exceptional situations

• A process must anticipate signals from other processes• It must provide a signal handler for each such signal. It

specifies the handler through a system call. The kernel notes information about the signal handler

• The kernel activates the signal handler when a signal is sent to the process

• Schematic of signals on the next slide

Page 45: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 45Copyright © 2006

Signal handling by process Pi (a) Initialization, (b) Signal processing

Page 46: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 46Copyright © 2006

Processes in Unix

• A process operates in two modes---user mode and kernel mode.– When a process makes a system call, it enters the kernel mode

and itself executes the kernel code for handling the system call– It reenters the user mode after handling the system call– Hence two running states: User running and kernel running– A process in the kernel running state is non-interruptible– A process in kernel running mode gets blocked when it makes

an I/O request– Kernel code is written in a reentrant manner so that a process

can enter the kernel mode even if other processes are blocked in that mode

Page 47: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 47Copyright © 2006

Process state transitions in Unix

Page 48: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 48Copyright © 2006

Threads in Solaris

• Provides three entities for concurrency:– User threads: Managed by a threads library– Light weight processes (LWP): A unit of parallelism within a

process. Threads library maps user threads into LWPs. Several LWPs may be created within a process.

– Kernel threads: A kernel thread is associated with each LWP. The kernel also creates some kernel threads for its own use, e.g., a thread to handle disk I/O.

• Mapping between threads and LWPs influences parallelism (see Hybrid models’ schematic)

Page 49: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 49Copyright © 2006

Processes and threads in Linux

• Linux supports kernel-level threads• Threads and processes are treated alike except at

creation– A thread shares the information about memory management,

current directory, open files and signal handlers of its parent process; a process does not share any information of its parent

• A thread or process contains information about– Its parent– Its deemed parent, to whom its termination should be reported

Page 50: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 50Copyright © 2006

Processes and threads in Linux

• Process and thread states:– Task_running: scheduled or waiting to be scheduled– Task_interruptible: sleeping on an event, but may receive a

signal– Task_uninterruptible: sleeping and may not receive a signal– Task_stopped: operation has been stopped by a signal– Task_zombie: operation completed, but its parent has not issued

a system call to check whether it has terminated

• Interruptibility simplifies implementation of signals

Page 51: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 51Copyright © 2006

Processes and threads in Windows

• A process is a unit for resource allocation, and a thread is a unit for concurrency. Hence each process must have at least one thread in it

• Thread states:– Standby: Thread has been selected to run on a CPU– Transition: Kernel stack has been swapped out

Page 52: Chapter 3: Processes and Threads Dhamdhere: Operating Systems A Concept-Based Approach, 2ed Slide No: 1 Copyright  2006 Threads Context switch between

Chapter 3:Processes and Threads

Dhamdhere: Operating Systems—A Concept-Based Approach, 2ed

Slide No: 52Copyright © 2006

Thread state transitions in Windows 2000