Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Chapter 2.5 : Threads Process concept  Process concept  Process scheduling  Process scheduling  Interprocess communication  Interprocess communication.

Similar presentations


Presentation on theme: "1 Chapter 2.5 : Threads Process concept  Process concept  Process scheduling  Process scheduling  Interprocess communication  Interprocess communication."— Presentation transcript:

1 1 Chapter 2.5 : Threads Process concept  Process concept  Process scheduling  Process scheduling  Interprocess communication  Interprocess communication  Deadlocks  Deadlocks  Threads Threads

2 2 Threads These lecture notes have been adapted from How to program with threads How to program with threads An introduction to multithreaded programming An introduction to multithreaded programming By Bil Lewis and Daniel J. Berg and Tanenbaum slides Tanenbaum slides

3 3 Processes & Threads Processes and threads are related concepts Processes and threads are related concepts A process is a kernel-level entity A process is a kernel-level entity Process structure can only be accessed through system calls Process structure can only be accessed through system calls A thread (or a lightweight process) is a user-level entity A thread (or a lightweight process) is a user-level entity The thread structure is in user space The thread structure is in user space It is accessed directly with the thread library calls, which are just normal user-level functions (threads do not use system calls) It is accessed directly with the thread library calls, which are just normal user-level functions (threads do not use system calls)

4 4 Single vs. Multiple Threads of Execution Start End Edit Document Print Document Single Thread Multiple Threads End Edit Document Start Print Document

5 5 Thread Usage (1) A word processor with three threads

6 6 Thread Usage (2) A multithreaded Web server

7 7 Thread Usage (3) Rough outline of code for previous slide Rough outline of code for previous slide (a) Dispatcher thread (b) Worker thread

8 8 The Classical Thread Model (1) (a) Three processes each with one thread (b) One process with three threads

9 9 The Thread Model (2) (Per process items) Items shared by all threads in a process (Per process items) Items shared by all threads in a process (Per thread items) Items private to each thread (Per thread items) Items private to each thread

10 10 The Thread Model (3) Each thread has its own stack

11 11 Process and Thread Data Structures Kernel Space User Space PCB CodeDataStack TCB1TCB2TCB3

12 12 Characteristics of Threads The TCB (thread control block) consist of The TCB (thread control block) consist of program counter program counter register set register set stack space stack space Thus the TCB is a reduced PCB A traditional process is equal to a task with one thread A traditional process is equal to a task with one thread All threads in a process share the state of that process All threads in a process share the state of that process

13 13 Characteristics of Threads (Cont.) They reside in the exact same memory space (user memory), see the same code and data They reside in the exact same memory space (user memory), see the same code and data When one thread alters a process variable (say, the working directory), all the others will see the change when they next access it When one thread alters a process variable (say, the working directory), all the others will see the change when they next access it If one thread opens a file to read it, all the other threads can also read from it. If one thread opens a file to read it, all the other threads can also read from it.

14 14 Characteristics of Threads (Cont.) Because no system calls are involved, threads are fast Because no system calls are involved, threads are fast There are no kernel structures affected by the existence of threads in a program, so no kernel resources are consumed -- threads are cheap There are no kernel structures affected by the existence of threads in a program, so no kernel resources are consumed -- threads are cheap The kernel doesn't even know that threads exist The kernel doesn't even know that threads exist

15 15 Thread Scheduling (1) Possible scheduling of user-level threads 50-msec process quantum 50-msec process quantum threads run 5 msec/CPU burst threads run 5 msec/CPU burst

16 16 Thread Scheduling (2) Possible scheduling of kernel-level threads 50-msec process quantum 50-msec process quantum threads run 5 msec/CPU burst threads run 5 msec/CPU burst

17 17 Threads of a Task Threads Code segment Data segment Program Counter Task

18 18 Implementing Threads in User Space A user-level threads package

19 19 Implementing Threads in the Kernel A threads package managed by the kernel

20 20 Hybrid Implementations Multiplexing user-level threads onto kernel- level threads Multiplexing user-level threads onto kernel- level threads

21 21 Some Benefits of Writing Multithreaded Programs:  Performance gains from multiprocessing hardware (parallelism)  Increased application throughput  Increased application responsiveness  Enhanced process-to-process communications

22 22 Parallellism Different threads can run on different processors simultaneously with no special input from the user and no effort on the part of the programmer Different threads can run on different processors simultaneously with no special input from the user and no effort on the part of the programmer

23 23 Throughput When a traditional, single-threaded program requests a service from the operating system, it must wait for that service to complete, often leaving the CPU idle When a traditional, single-threaded program requests a service from the operating system, it must wait for that service to complete, often leaving the CPU idle Multithreading provides progress even though one or more threads wait for an event as long as other threads are active Multithreading provides progress even though one or more threads wait for an event as long as other threads are active

24 24 Responsiveness Blocking one part of a process need not block the whole process. Single-threaded applications that do something lengthy when a button is pressed typically display a "please wait" cursor and freeze while the operation is in progress Blocking one part of a process need not block the whole process. Single-threaded applications that do something lengthy when a button is pressed typically display a "please wait" cursor and freeze while the operation is in progress If such applications were multithreaded, long operations could be done by independent threads, allowing the application to remain active and making the application more responsive to the user If such applications were multithreaded, long operations could be done by independent threads, allowing the application to remain active and making the application more responsive to the user

25 25 Communications An application that uses multiple processes to accomplish its tasks can be replaced by an application that uses multiple threads to accomplish those same tasks An application that uses multiple processes to accomplish its tasks can be replaced by an application that uses multiple threads to accomplish those same tasks Processes-to-process communication through traditional IPC (interprocess communications) facilities (e.g., pipes or sockets) Processes-to-process communication through traditional IPC (interprocess communications) facilities (e.g., pipes or sockets) The threaded application can use the inherently shared memory of the process The threaded application can use the inherently shared memory of the process


Download ppt "1 Chapter 2.5 : Threads Process concept  Process concept  Process scheduling  Process scheduling  Interprocess communication  Interprocess communication."

Similar presentations


Ads by Google