Data Acquisition System

Only available on StudyMode
  • Topic: Thread, Threads, POSIX Threads
  • Pages : 8 (1042 words )
  • Download(s) : 81
  • Published : January 2, 2013
Open Document
Text Preview
Chapter 4: Threads

Chapter 4: Threads
Overview Multithreading Models Threading Issues Pthreads Windows XP Threads Linux Threads Java Threads

Operating System Concepts – 7th edition, Jan 23, 2005

4.2

Silberschatz, Galvin and Gagne ©2005

Single and Multithreaded Processes

Operating System Concepts – 7th edition, Jan 23, 2005

4.3

Silberschatz, Galvin and Gagne ©2005

Benefits
Responsiveness Resource Sharing Economy Utilization of MP Architectures

Operating System Concepts – 7th edition, Jan 23, 2005

4.4

Silberschatz, Galvin and Gagne ©2005

User Threads
Thread management done by user-level threads library Three primary thread libraries: POSIX Pthreads Win32 threads Java threads

Operating System Concepts – 7th edition, Jan 23, 2005

4.5

Silberschatz, Galvin and Gagne ©2005

Kernel Threads
Supported by the Kernel Examples Windows XP/2000 Solaris Linux Tru64 UNIX Mac OS X

Operating System Concepts – 7th edition, Jan 23, 2005

4.6

Silberschatz, Galvin and Gagne ©2005

Multithreading Models
Many-to-One One-to-One Many-to-Many

Operating System Concepts – 7th edition, Jan 23, 2005

4.7

Silberschatz, Galvin and Gagne ©2005

Many-to-One
Many user-level threads mapped to single kernel thread Examples: Solaris Green Threads GNU Portable Threads

Operating System Concepts – 7th edition, Jan 23, 2005

4.8

Silberschatz, Galvin and Gagne ©2005

Many-to-One Model

Operating System Concepts – 7th edition, Jan 23, 2005

4.9

Silberschatz, Galvin and Gagne ©2005

One-to-One
Each user-level thread maps to kernel thread Examples Windows NT/XP/2000 Linux Solaris 9 and later

Operating System Concepts – 7th edition, Jan 23, 2005

4.10

Silberschatz, Galvin and Gagne ©2005

One-to-one Model

Operating System Concepts – 7th edition, Jan 23, 2005

4.11

Silberschatz, Galvin and Gagne ©2005

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 prior to version 9 Windows NT/2000 with the ThreadFiber package

Operating System Concepts – 7th edition, Jan 23, 2005

4.12

Silberschatz, Galvin and Gagne ©2005

Many-to-Many Model

Operating System Concepts – 7th edition, Jan 23, 2005

4.13

Silberschatz, Galvin and Gagne ©2005

Two-level Model
Similar to M:M, except that it allows a user thread to be bound to kernel thread Examples IRIX HP-UX Tru64 UNIX Solaris 8 and earlier

Operating System Concepts – 7th edition, Jan 23, 2005

4.14

Silberschatz, Galvin and Gagne ©2005

Two-level Model

Operating System Concepts – 7th edition, Jan 23, 2005

4.15

Silberschatz, Galvin and Gagne ©2005

Threading Issues
Semantics of fork() and exec() system calls Thread cancellation Signal handling Thread pools Thread specific data Scheduler activations

Operating System Concepts – 7th edition, Jan 23, 2005

4.16

Silberschatz, Galvin and Gagne ©2005

Semantics of fork() and exec()
Does fork() duplicate only the calling thread or all threads?

Operating System Concepts – 7th edition, Jan 23, 2005

4.17

Silberschatz, Galvin and Gagne ©2005

Thread Cancellation
Terminating a thread before it has finished Two general approaches: Asynchronous cancellation terminates the target thread immediately Deferred cancellation allows the target thread to periodically check if it should be cancelled

Operating System Concepts – 7th edition, Jan 23, 2005

4.18

Silberschatz, Galvin and Gagne ©2005

Signal Handling
Signals are used in UNIX systems to notify a process that a particular event has occurred A signal handler is used to process signals 1. 2. 3.

Signal is generated by particular event Signal is delivered to a process Signal is handled Deliver the signal to the thread to which the signal applies Deliver the signal to every thread in the process Deliver the signal to certain threads...
tracking img