Tải bản đầy đủ (.pptx) (45 trang)

Bài giảng Hệ điều hành nâng cao - Chapter 4: Threads

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.02 MB, 45 trang )

Chapter 4: Threads

Operating System Concepts – 8th Edition

Silberschatz, Galvin and Gagne ©2009


Chapter 4: Threads


Overview



Multithreading Models



Thread Libraries



Threading Issues



Operating System Examples



Windows XP Threads





Linux Threads

Operating System Concepts – 8th Edition

4.2

Silberschatz, Galvin and Gagne ©2009


Objectives


To introduce the notion of a thread — a fundamental unit of CPU utilization that forms the basis of 
multithreaded computer systems



To discuss the APIs for the Pthreads, Win32, and Java thread libraries



To examine issues related to multithreaded programming

Operating System Concepts – 8th Edition

4.3


Silberschatz, Galvin and Gagne ©2009


Motivation


Threads run within application



Multiple tasks with the application can be implemented by separate threads


Update display



Fetch data



Spell checking



Answer a network request



Process creation is heavy­weight while thread creation is light­weight




Can simplify code, increase efficiency



Kernels are generally multithreaded

Operating System Concepts – 8th Edition

4.4

Silberschatz, Galvin and Gagne ©2009


Single and Multithreaded Processes

Operating System Concepts – 8th Edition

4.5

Silberschatz, Galvin and Gagne ©2009


Benefits


Responsiveness




Resource Sharing



Economy



Scalability

Operating System Concepts – 8th Edition

4.6

Silberschatz, Galvin and Gagne ©2009


Multicore Programming


Multicore systems putting pressure on programmers, challenges include:


Dividing activities



Balance




Data splitting



Data dependency



Testing and debugging

Operating System Concepts – 8th Edition

4.7

Silberschatz, Galvin and Gagne ©2009


Multithreaded Server Architecture

Operating System Concepts – 8th Edition

4.8

Silberschatz, Galvin and Gagne ©2009


Concurrent Execution on a

Single-core System

Operating System Concepts – 8th Edition

4.9

Silberschatz, Galvin and Gagne ©2009


Parallel Execution on a
Multicore System

Operating System Concepts – 8th Edition

4.10

Silberschatz, Galvin and Gagne ©2009


User Threads


Thread management done by user­level threads library



Three primary thread libraries:


 POSIX Pthreads




 Win32 threads



 Java threads

Operating System Concepts – 8th Edition

4.11

Silberschatz, Galvin and Gagne ©2009


Kernel Threads


Supported by the Kernel



Examples


Windows XP/2000




Solaris



Linux



Tru64 UNIX



Mac OS X

Operating System Concepts – 8th Edition

4.12

Silberschatz, Galvin and Gagne ©2009


Multithreading Models


Many­to­One



One­to­One




Many­to­Many

Operating System Concepts – 8th Edition

4.13

Silberschatz, Galvin and Gagne ©2009


Many-to-One


Many user­level threads mapped to single kernel thread



Examples:


Solaris Green Threads



GNU Portable Threads

Operating System Concepts – 8th Edition

4.14


Silberschatz, Galvin and Gagne ©2009


Many-to-One Model

Operating System Concepts – 8th Edition

4.15

Silberschatz, Galvin and Gagne ©2009


One-to-One


Each user­level thread maps to kernel thread



Examples


Windows NT/XP/2000



Linux




Solaris 9 and later

Operating System Concepts – 8th Edition

4.16

Silberschatz, Galvin and Gagne ©2009


One-to-one Model

Operating System Concepts – 8th Edition

4.17

Silberschatz, Galvin and Gagne ©2009


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 – 8th Edition

4.18

Silberschatz, Galvin and Gagne ©2009


Many-to-Many Model

Operating System Concepts – 8th Edition

4.19

Silberschatz, Galvin and Gagne ©2009


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 – 8th Edition

4.20

Silberschatz, Galvin and Gagne ©2009


Two-level Model

Operating System Concepts – 8th Edition

4.21

Silberschatz, Galvin and Gagne ©2009



Thread Libraries


Thread library provides programmer with API for creating and managing threads



Two primary ways of implementing


Library entirely in user space



Kernel­level library supported by the OS

Operating System Concepts – 8th Edition

4.22

Silberschatz, Galvin and Gagne ©2009


Pthreads


May be provided either as user­level or kernel­level




A POSIX standard (IEEE 1003.1c) API for thread creation and synchronization



API specifies behavior of the thread library, implementation is up to development of the library



Common in UNIX operating systems (Solaris, Linux, Mac OS X)

Operating System Concepts – 8th Edition

4.23

Silberschatz, Galvin and Gagne ©2009


Pthreads Example

Operating System Concepts – 8th Edition

4.24

Silberschatz, Galvin and Gagne ©2009


Pthreads Example (Cont.)


Operating System Concepts – 8th Edition

4.25

Silberschatz, Galvin and Gagne ©2009


×