Chapter 5: Threads

errorhandleΛογισμικό & κατασκευή λογ/κού

18 Νοε 2013 (πριν από 3 χρόνια και 6 μήνες)

120 εμφανίσεις

1
Silberschatz, Galvin and Gagne 2002
5.1
Operating System Concepts
Chapter 5: Threads
n Overview
n Multithreading Models
n Threading Issues
n Pthreads
n Solaris 2 Threads
n Windows 2000 Threads
n Linux Threads
n Java Threads
Silberschatz, Galvin and Gagne 2002
5.2
Operating System Concepts
Single and Multithreaded Processes
2
Silberschatz, Galvin and Gagne 2002
5.3
Operating System Concepts
Benefits
n Responsiveness
n Resource Sharing
n Economy
n Utilization of MP Architectures
Silberschatz, Galvin and Gagne 2002
5.4
Operating System Concepts
User Threads
n Thread management done by user-level threads library
n Examples
- POSIX Pthreads
- Mach C-threads
- Solaris threads
3
Silberschatz, Galvin and Gagne 2002
5.5
Operating System Concepts
Kernel Threads
n Supported by the Kernel
n Examples
- Windows 95/98/NT/2000
- Solaris
- Tru64 UNIX
- BeOS
- Linux
Silberschatz, Galvin and Gagne 2002
5.6
Operating System Concepts
Multithreading Models
n Many-to-One
n One-to-One
n Many-to-Many
4
Silberschatz, Galvin and Gagne 2002
5.7
Operating System Concepts
Many-to-One
n Many user-level threads mapped to single kernel thread.
n Used on systems that do not support kernel threads.
Silberschatz, Galvin and Gagne 2002
5.8
Operating System Concepts
Many-to-One Model
5
Silberschatz, Galvin and Gagne 2002
5.9
Operating System Concepts
One-to-One
n Each user-level thread maps to kernel thread.
n Examples
- Windows 95/98/NT/2000
- OS/2
Silberschatz, Galvin and Gagne 2002
5.10
Operating System Concepts
One-to-one Model
6
Silberschatz, Galvin and Gagne 2002
5.11
Operating System Concepts
Many-to-Many Model
n Allows many user level threads to be mapped to many
kernel threads.
n Allows the operating system to create a sufficient number
of kernel threads.
n Solaris 2
n Windows NT/2000 with the ThreadFiber package
Silberschatz, Galvin and Gagne 2002
5.12
Operating System Concepts
Many-to-Many Model
7
Silberschatz, Galvin and Gagne 2002
5.13
Operating System Concepts
Threading Issues
n Semantics of fork() and exec() system calls.
n Thread cancellation.
n Signal handling
n Thread pools
n Thread specific data
Silberschatz, Galvin and Gagne 2002
5.14
Operating System Concepts
Pthreads
n a POSIX standard (IEEE 1003.1c) API for thread creation
and synchronization.
n API specifies behavior of the thread library,
implementation is up to development of the library.
n Common in UNIX operating systems.
8
Silberschatz, Galvin and Gagne 2002
5.15
Operating System Concepts
Solaris 2 Threads
Silberschatz, Galvin and Gagne 2002
5.16
Operating System Concepts
Solaris Process
9
Silberschatz, Galvin and Gagne 2002
5.17
Operating System Concepts
Windows 2000 Threads
n Implements the one-to-one mapping.
n Each thread contains
- a thread id
- register set
- separate user and kernel stacks
- private data storage area
Silberschatz, Galvin and Gagne 2002
5.18
Operating System Concepts
Linux Threads
n Linux refers to them as tasks rather than threads.
n Thread creation is done through clone() system call.
n Clone() allows a child task to share the address space of
the parent task (process)
10
Silberschatz, Galvin and Gagne 2002
5.19
Operating System Concepts
Java Threads
n Java threads may be created by:
F Extending Thread class
F Implementing the Runnable interface
n Java threads are managed by the JVM.
Silberschatz, Galvin and Gagne 2002
5.20
Operating System Concepts
Java Thread States