Download presentation
Presentation is loading. Please wait.
Published byMorgan Cook Modified over 6 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.