Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 5: Threads Overview Multithreading Models(多线程模型)

Similar presentations


Presentation on theme: "Chapter 5: Threads Overview Multithreading Models(多线程模型)"— Presentation transcript:

1 Chapter 5: Threads Overview Multithreading Models(多线程模型)
Threading Issues Pthreads Solaris 2 Threads Windows 2000 Threads Linux Threads Java Threads /17/2018

2 Thread A thread, sometimes called a lightweight process(LWP), is a basic unit of CPU utilization; it comprises a thread ID, a program counter, a register set , and a stack. A traditional (or heavyweight) process has a single thread of control or multiple threads of control. /17/2018

3 Single and Multithreaded Processes
/17/2018

4 Benefits Responsiveness (相应度高) Resource Sharing Economy
Utilization of MP Architectures (多处理器体系结构的利用) /17/2018

5 User Threads Thread management done by user-level threads library
Examples - POSIX Pthreads - Mach C-threads - Solaris threads /17/2018

6 Kernel Threads Supported by the Kernel Examples
- Windows 95/98/NT/2000 - Solaris - Tru64 UNIX - BeOS - Linux /17/2018

7 Multithreading Models
Many-to-One One-to-One Many-to-Many /17/2018

8 Many-to-One Many user-level threads mapped to single kernel thread.
The entire process will block if a thread makes a blocking system call. Multiple threads are unble to run in parallel on multiprocessors. /17/2018

9 Many-to-One Model /17/2018

10 One-to-One Each user-level thread maps to kernel thread.
Most implementations of this model restrict the number of threads supported by the system. Examples - Windows 95/98/NT/2000 - OS/2 /17/2018

11 One-to-one Model /17/2018

12 Many-to-Many Model Allows many user level threads to be mapped to many kernel threads. Allows the operating system to create a sufficient number of kernel threads. Solaris 2 Windows NT/2000 with the ThreadFiber package /17/2018

13 Many-to-Many Model /17/2018

14 5 Threading Issues Semantics of fork() and exec() system calls.
Thread cancellation. Signal handling Thread specific data /17/2018

15 Pthreads a POSIX standard (IEEE c) API for thread creation and synchronization. API specifies behavior of the thread library, not an implementation. Implementation is up to development of the library. Common in UNIX operating systems. /17/2018

16 Solaris 2 Threads /17/2018

17 Solaris Process /17/2018

18 Windows 2000 Threads Implements the one-to-one mapping.
Each thread contains - a thread id - register set - separate user and kernel stacks - private data storage area /17/2018

19 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) /17/2018

20 Java Threads Java threads may be created by: Extending Thread class
Implementing the Runnable interface Java threads are managed by the JVM. /17/2018

21 Java Thread States /17/2018

22 Summary Overview Multithreading Models(多线程模型) Threading Issues
Five threads Pthreads Solaris 2 Threads Windows 2000 Threads Linux Threads Java Threads /17/2018


Download ppt "Chapter 5: Threads Overview Multithreading Models(多线程模型)"

Similar presentations


Ads by Google