chapter 5: threads · java threads n java threads may be created by: f extending thread class f...
TRANSCRIPT
![Page 1: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/1.jpg)
Silberschatz, Galvin and Gagne 20025.1Operating System Concepts
Chapter 5: Threads
n Overview
n Multithreading Models
n Threading Issuesn Pthreads
n Solaris 2 Threads
n Windows 2000 Threads
n Linux Threadsn Java Threads
![Page 2: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/2.jpg)
Silberschatz, Galvin and Gagne 20025.2Operating System Concepts
Single and Multithreaded Processes
![Page 3: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/3.jpg)
Silberschatz, Galvin and Gagne 20025.3Operating System Concepts
Benefits
n Responsiveness
n Resource Sharing
n Economy
n Utilization of MP Architectures
![Page 4: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/4.jpg)
Silberschatz, Galvin and Gagne 20025.4Operating System Concepts
User Threads
n Thread management done by user-level threads library
n Examples- POSIX Pthreads
- Mach C-threads
- Solaris threads
![Page 5: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/5.jpg)
Silberschatz, Galvin and Gagne 20025.5Operating System Concepts
Kernel Threads
n Supported by the Kernel
n Examples- Windows 95/98/NT/2000
- Solaris
- Tru64 UNIX
- BeOS
- Linux
![Page 6: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/6.jpg)
Silberschatz, Galvin and Gagne 20025.6Operating System Concepts
Multithreading Models
n Many-to-One
n One-to-One
n Many-to-Many
![Page 7: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/7.jpg)
Silberschatz, Galvin and Gagne 20025.7Operating 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.
![Page 8: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/8.jpg)
Silberschatz, Galvin and Gagne 20025.8Operating System Concepts
Many-to-One Model
![Page 9: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/9.jpg)
Silberschatz, Galvin and Gagne 20025.9Operating System Concepts
One-to-One
n Each user-level thread maps to kernel thread.
n Examples- Windows 95/98/NT/2000
- OS/2
![Page 10: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/10.jpg)
Silberschatz, Galvin and Gagne 20025.10Operating System Concepts
One-to-one Model
![Page 11: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/11.jpg)
Silberschatz, Galvin and Gagne 20025.11Operating System Concepts
Many-to-Many Model
n Allows many user level threads to be mapped to manykernel threads.
n Allows the operating system to create a sufficient numberof kernel threads.
n Solaris 2
n Windows NT/2000 with the ThreadFiber package
![Page 12: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/12.jpg)
Silberschatz, Galvin and Gagne 20025.12Operating System Concepts
Many-to-Many Model
![Page 13: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/13.jpg)
Silberschatz, Galvin and Gagne 20025.13Operating System Concepts
Threading Issues
n Semantics of fork() and exec() system calls.
n Thread cancellation.
n Signal handlingn Thread pools
n Thread specific data
![Page 14: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/14.jpg)
Silberschatz, Galvin and Gagne 20025.14Operating System Concepts
Pthreads
n a POSIX standard (IEEE 1003.1c) API for thread creationand synchronization.
n API specifies behavior of the thread library,implementation is up to development of the library.
n Common in UNIX operating systems.
![Page 15: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/15.jpg)
Silberschatz, Galvin and Gagne 20025.15Operating System Concepts
Solaris 2 Threads
![Page 16: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/16.jpg)
Silberschatz, Galvin and Gagne 20025.16Operating System Concepts
Solaris Process
![Page 17: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/17.jpg)
Silberschatz, Galvin and Gagne 20025.17Operating 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
![Page 18: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/18.jpg)
Silberschatz, Galvin and Gagne 20025.18Operating 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 ofthe parent task (process)
![Page 19: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/19.jpg)
Silberschatz, Galvin and Gagne 20025.19Operating System Concepts
Java Threads
n Java threads may be created by:
F Extending Thread classF Implementing the Runnable interface
n Java threads are managed by the JVM.
![Page 20: Chapter 5: Threads · 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. Operating](https://reader036.vdocuments.site/reader036/viewer/2022062508/6053c246f4d318365a545064/html5/thumbnails/20.jpg)
Silberschatz, Galvin and Gagne 20025.20Operating System Concepts
Java Thread States