Presentation is loading. Please wait.

Presentation is loading. Please wait.

Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 4: Threads.

Similar presentations


Presentation on theme: "Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 4: Threads."— Presentation transcript:

1 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 4: Threads

2 4.2 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Chapter 4: Threads  Thread: lightweight proc  How does an OS support threads (multithreading models)  Pthreads, Linux threads, WinXP threads  Java Threads

3 4.3 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Single and Multithreaded Processes

4 4.4 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Benefits of Threads  Responsive  Shares resources  Economical  Uses multiprocessor architecture

5 4.5 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 User and Kernel Threads  User threads - Thread management done by user-level threads library.  Kernel threads - Threads directly supported by the kernel.

6 4.6 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 OSes That Have Kernel Threads Examples Windows XP/2000 Linux Mac OS X

7 4.7 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Multithreading Models Mapping user threads to kernel threads:  One-to-One  Many-to-One  Many-to-Many

8 4.8 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 One-to-one Model Examples: WinXP Linux

9 4.9 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Many-to-One Model Examples: Solaris Green Threads GNU Portable Threads

10 4.10 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Many-to-Many Model Solaris prior to version 9 Windows NT/2000 with the ThreadFiber package

11 4.11 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Two-level Model allows a user thread to be bound to kernel thread Example HP-UX

12 4.12 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java Threads  Java threads are managed by the JVM  Java threads may be created by: Implementing the Runnable interface

13 4.13 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java Threads - Example Program Page 143, Fig. 4.8

14 4.14 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java Threads - Example Program Page 143, Fig. 4.8

15 4.15 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java Thread States

16 4.16 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 http://www.cs.man.ac.uk/~ztan/resourcepages/javathread.htm

17 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 End of Lecture 11 Monday: Read to Page 147

18 4.18 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java Threads - Producer-Consumer Page 145, Fig. 4.10

19 4.19 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java Threads - Producer-Consumer Page 146, Fig. 4.11

20 4.20 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java Threads - Producer-Consumer Page 147, Fig. 4.12

21 4.21 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Threading Issues  Semantics of fork() and exec() system calls  Thread cancellation  Signal handling  Thread pools  Thread specific data  Scheduler activations

22 4.22 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Semantics of fork() and exec()  Does fork() duplicate only the calling thread or all threads?

23 4.23 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Thread Cancellation  Terminating a thread before it has finished  Two general approaches: Asynchronous cancellation terminates target thread immediately [stop(), deprecated, don’t use it] Deferred cancellation allows target thread to periodically check if it should be cancelled [interrupt()]

24 4.24 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Deferred Cancellation: Java interrupt

25 4.25 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Deferred Cancellation: Check interrupt

26 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 End of Chapter 4 Read through p. 150 top Remember Linux Lab due

27 4.27 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Signal Handling: Unix  To notify a proc that an event has occurred  A signal handler process signals  What proc gets the signal? The thread to which the signal applies Every thread in the proc Certain threads in the process A specific thread receives all sigs for the process

28 4.28 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Thread Pools  Create a number of threads in a pool where they await work  Advantages: Usually slightly faster to service a request with an existing thread than create a new thread Allows the number of threads in the application(s) to be bound to the size of the pool

29 4.29 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Thread Pools  Java provides 3 thread pool architectures: 1. Single thread executor - pool of size 1. 2. Fixed thread executor - pool of fixed size. 3. Cached thread pool - pool of unbounded size

30 4.30 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Thread Pools A task to be serviced in a thread pool

31 4.31 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Thread Pools Creating a thread pool in Java

32 4.32 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Thread Specific Data  Allows each thread to have its own copy of data  Useful when you do not have control over the thread creation process (i.e., when using a thread pool)

33 4.33 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Thread Specific Data in Java

34 4.34 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Scheduler Activations  Both M:M and Two-level models require communication to maintain the appropriate number of kernel threads allocated to the application  Scheduler activations provide upcalls - a communication mechanism from the kernel to the thread library  This communication allows an application to maintain the correct number kernel threads

35 4.35 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Pthreads  A POSIX standard (IEEE 1003.1c) API for thread creation and synchronization  API specifies behavior of the thread library, implementation is up to development of the library  Common in UNIX operating systems (Solaris, Linux, Mac OS X)

36 4.36 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Windows XP Threads  Implements the one-to-one mapping  Each thread contains A thread id Register set Separate user and kernel stacks Private data storage area  The register set, stacks, and private storage area are known as the context of the threads

37 4.37 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Windows XP Threads

38 4.38 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Linux Threads  Linux refers to them as tasks rather than threads  Thread creation is done through clone() system call  clone() allows a child task to share the address space of the parent task (process)


Download ppt "Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 4: Threads."

Similar presentations


Ads by Google