Submit Search
Upload
Threads & Concurrency
•
Download as PPTX, PDF
•
0 likes
•
301 views
N
NomanMHasan
Follow
OPERATING SYSTEM CONCEPTS BY ABRAHAM SILBERSCHATZ, PETER BAER GALVIN & GREG GAGNE.
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 63
Download now
Recommended
HADOOP TECHNOLOGY ppt
HADOOP TECHNOLOGY ppt
sravya raju
Hardware Multi-Threading
Hardware Multi-Threading
babuece
Multithreading models.ppt
Multithreading models.ppt
Luis Goldster
Real time scheduling - basic concepts
Real time scheduling - basic concepts
Student
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Tushar B Kute
Transactions and Concurrency Control
Transactions and Concurrency Control
Dilum Bandara
CS6601 DISTRIBUTED SYSTEMS
CS6601 DISTRIBUTED SYSTEMS
Kathirvel Ayyaswamy
Real Time Operating system (RTOS) - Embedded systems
Real Time Operating system (RTOS) - Embedded systems
Hariharan Ganesan
Recommended
HADOOP TECHNOLOGY ppt
HADOOP TECHNOLOGY ppt
sravya raju
Hardware Multi-Threading
Hardware Multi-Threading
babuece
Multithreading models.ppt
Multithreading models.ppt
Luis Goldster
Real time scheduling - basic concepts
Real time scheduling - basic concepts
Student
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Tushar B Kute
Transactions and Concurrency Control
Transactions and Concurrency Control
Dilum Bandara
CS6601 DISTRIBUTED SYSTEMS
CS6601 DISTRIBUTED SYSTEMS
Kathirvel Ayyaswamy
Real Time Operating system (RTOS) - Embedded systems
Real Time Operating system (RTOS) - Embedded systems
Hariharan Ganesan
Parallel processing
Parallel processing
Syed Zaid Irshad
Unix.system.calls
Unix.system.calls
GRajendra
Computer Organization and Architecture.
Computer Organization and Architecture.
CS_GDRCST
Os Threads
Os Threads
Salman Memon
Inter Process Communication
Inter Process Communication
Adeel Rasheed
Thrashing allocation frames.43
Thrashing allocation frames.43
myrajendra
Introduction to Unix
Introduction to Unix
Nishant Munjal
Types of Load distributing algorithm in Distributed System
Types of Load distributing algorithm in Distributed System
DHIVYADEVAKI
Measures of query cost
Measures of query cost
Hitesh Mohapatra
Unit II - 3 - Operating System - Process Synchronization
Unit II - 3 - Operating System - Process Synchronization
cscarcas
Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"
Ra'Fat Al-Msie'deen
Ch03 system administration
Ch03 system administration
Raja Waseem Akhtar
Pipeline hazard
Pipeline hazard
AJAL A J
Unit II - 2 - Operating System - Threads
Unit II - 2 - Operating System - Threads
cscarcas
Networking in cloud computing
Networking in cloud computing
Barani Tharan
Introduction to System Calls
Introduction to System Calls
Vandana Salve
MS-DOS commands
MS-DOS commands
shubham tyagi
Crash recovery in database
Crash recovery in database
Prof.Nilesh Magar
Introduction to Parallel Computing
Introduction to Parallel Computing
Akhila Prabhakaran
Real-Time Scheduling
Real-Time Scheduling
sathish sak
ch4.pptx
ch4.pptx
ZoYaKazmi3
ch4.pptx
ch4.pptx
MdMushfiqurRashidMar
More Related Content
What's hot
Parallel processing
Parallel processing
Syed Zaid Irshad
Unix.system.calls
Unix.system.calls
GRajendra
Computer Organization and Architecture.
Computer Organization and Architecture.
CS_GDRCST
Os Threads
Os Threads
Salman Memon
Inter Process Communication
Inter Process Communication
Adeel Rasheed
Thrashing allocation frames.43
Thrashing allocation frames.43
myrajendra
Introduction to Unix
Introduction to Unix
Nishant Munjal
Types of Load distributing algorithm in Distributed System
Types of Load distributing algorithm in Distributed System
DHIVYADEVAKI
Measures of query cost
Measures of query cost
Hitesh Mohapatra
Unit II - 3 - Operating System - Process Synchronization
Unit II - 3 - Operating System - Process Synchronization
cscarcas
Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"
Ra'Fat Al-Msie'deen
Ch03 system administration
Ch03 system administration
Raja Waseem Akhtar
Pipeline hazard
Pipeline hazard
AJAL A J
Unit II - 2 - Operating System - Threads
Unit II - 2 - Operating System - Threads
cscarcas
Networking in cloud computing
Networking in cloud computing
Barani Tharan
Introduction to System Calls
Introduction to System Calls
Vandana Salve
MS-DOS commands
MS-DOS commands
shubham tyagi
Crash recovery in database
Crash recovery in database
Prof.Nilesh Magar
Introduction to Parallel Computing
Introduction to Parallel Computing
Akhila Prabhakaran
Real-Time Scheduling
Real-Time Scheduling
sathish sak
What's hot
(20)
Parallel processing
Parallel processing
Unix.system.calls
Unix.system.calls
Computer Organization and Architecture.
Computer Organization and Architecture.
Os Threads
Os Threads
Inter Process Communication
Inter Process Communication
Thrashing allocation frames.43
Thrashing allocation frames.43
Introduction to Unix
Introduction to Unix
Types of Load distributing algorithm in Distributed System
Types of Load distributing algorithm in Distributed System
Measures of query cost
Measures of query cost
Unit II - 3 - Operating System - Process Synchronization
Unit II - 3 - Operating System - Process Synchronization
Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"
Ch03 system administration
Ch03 system administration
Pipeline hazard
Pipeline hazard
Unit II - 2 - Operating System - Threads
Unit II - 2 - Operating System - Threads
Networking in cloud computing
Networking in cloud computing
Introduction to System Calls
Introduction to System Calls
MS-DOS commands
MS-DOS commands
Crash recovery in database
Crash recovery in database
Introduction to Parallel Computing
Introduction to Parallel Computing
Real-Time Scheduling
Real-Time Scheduling
Similar to Threads & Concurrency
ch4.pptx
ch4.pptx
ZoYaKazmi3
ch4.pptx
ch4.pptx
MdMushfiqurRashidMar
Threads are using in operating systems.pptx
Threads are using in operating systems.pptx
MAmir53
04 Threads.pptx
04 Threads.pptx
saymyname10
4 threads
4 threads
BaliThorat1
ch4.ppt
ch4.ppt
ssuser9f517f1
ch4.ppt
ch4.ppt
krishnakumararunacha5
Threads semaphoremutexlocksdeadlockp.ppt
Threads semaphoremutexlocksdeadlockp.ppt
StephyBless
ch4.ppt operation system. Dats structure and alogor
ch4.ppt operation system. Dats structure and alogor
AjithPArun1
ch4.ppt
ch4.ppt
Leenachaudhari27
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
Dr. Mazin Mohamed alkathiri
Operating Systems - "Chapter 4: Multithreaded Programming"
Operating Systems - "Chapter 4: Multithreaded Programming"
Ra'Fat Al-Msie'deen
My DIaries
My DIaries
Mehak Raza
Thread
Thread
Mustafa Ugur Oduncu
ch4_EN_BK_Threads.pdf
ch4_EN_BK_Threads.pdf
HoNguyn746501
Threading Programming Guide
Threading Programming Guide
DEVTYPE
CH04.pdf
CH04.pdf
ImranKhan880955
Topic 4- processes.pptx
Topic 4- processes.pptx
DanishMahmood23
Ch4 threads
Ch4 threads
Ankit Dubey
Operating system 20 threads
Operating system 20 threads
Vaibhav Khanna
Similar to Threads & Concurrency
(20)
ch4.pptx
ch4.pptx
ch4.pptx
ch4.pptx
Threads are using in operating systems.pptx
Threads are using in operating systems.pptx
04 Threads.pptx
04 Threads.pptx
4 threads
4 threads
ch4.ppt
ch4.ppt
ch4.ppt
ch4.ppt
Threads semaphoremutexlocksdeadlockp.ppt
Threads semaphoremutexlocksdeadlockp.ppt
ch4.ppt operation system. Dats structure and alogor
ch4.ppt operation system. Dats structure and alogor
ch4.ppt
ch4.ppt
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
Operating Systems - "Chapter 4: Multithreaded Programming"
Operating Systems - "Chapter 4: Multithreaded Programming"
My DIaries
My DIaries
Thread
Thread
ch4_EN_BK_Threads.pdf
ch4_EN_BK_Threads.pdf
Threading Programming Guide
Threading Programming Guide
CH04.pdf
CH04.pdf
Topic 4- processes.pptx
Topic 4- processes.pptx
Ch4 threads
Ch4 threads
Operating system 20 threads
Operating system 20 threads
Recently uploaded
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
ranjana rawat
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
Call Girls in Nagpur High Profile
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
ranjana rawat
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
Tsuyoshi Horigome
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
9953056974 Low Rate Call Girls In Saket, Delhi NCR
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
GDSCAESB
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
Soham Mondal
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Dr.Costas Sachpazis
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Low Rate Call Girls In Saket, Delhi NCR
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
RajaP95
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
KurinjimalarL3
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
wendy cai
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
purnimasatapathy1234
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
slot gacor bisa pakai pulsa
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
upamatechverse
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
Suhani Kapoor
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
humanexperienceaaa
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
9953056974 Low Rate Call Girls In Saket, Delhi NCR
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
hassan khalil
Recently uploaded
(20)
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
Threads & Concurrency
1.
Silberschatz, Galvin and
Gagne ©2018 Operating System Concepts – 10th Edition Chapter 4: Threads & Concurrency
2.
4.2 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Outline Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples
3.
4.3 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Objectives Identify the basic components of a thread, and contrast threads and processes Describe the benefits and challenges of designng multithreaded applications Illustrate different approaches to implicit threading including thread pools, fork-join, and Grand Central Dispatch Describe how the Windows and Linux operating systems represent threads Design multithreaded applications using the Pthreads, Java, and Windows threading APIs
4.
4.4 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Motivation Most modern applications are multithreaded 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
5.
4.5 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Single and Multithreaded Processes
6.
4.6 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Multithreaded Server Architecture
7.
4.7 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Benefits Responsiveness – may allow continued execution if part of process is blocked, especially important for user interfaces Economy – cheaper than process creation, thread switching lower overhead than context switching Enhanced throughput of the system: When the process is split into many threads, and each thread is treated as a job, the number of jobs done in the unit time increases. That is why the throughput of the system also increases. Effective Utilization of Multiprocessor system: When you have more than one thread in one process, you can schedule more than one thread in more than one processor. Faster context switch: The context switching period between threads is less than the process context switching. The process context switch means more overhead for the CPU. Communication: Multiple-thread communication is simple because the threads share the same address space, while in process, we adopt just a few exclusive communication strategies for communication between two processes. Resource sharing: threads share resources of process, easier than shared memory or message passing. Resources can be shared between all threads within a process, such as code, data, and files. Note: The stack and register cannot be shared between threads. There is a stack and register for each thread.
8.
4.8 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Multicore Programming Multicore or multiprocessor systems putting pressure on programmers, challenges include: • Dividing activities • Balance • Data splitting • Data dependency • Testing and debugging Parallelism implies a system can perform more than one task simultaneously Concurrency supports more than one task making progress • Single processor / core, scheduler providing concurrency
9.
4.9 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Concurrency vs. Parallelism Concurrent execution on single-core system: Parallelism on a multi-core system:
10.
4.10 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Multicore Programming Types of parallelism • Data parallelism – distributes subsets of the same data across multiple cores, same operation on each • Task parallelism – distributing threads across cores, each thread performing unique operation . N . Process Thread 1 Process is heavy weight or resource intensive. Thread is light weight, taking lesser resources than a process. 2 Process switching needs interaction with operating system. Thread switching does not need to interact with operating system. 3 In multiple processing environments, each process executes the same code but has its own memory and file resources. All threads can share same set of open files, child processes. 4 If one process is blocked, then no other process can execute until the first process is unblocked. While one thread is blocked and waiting, a second thread in the same task can run. 5 Multiple processes without using threads use more resources. Multiple threaded processes use fewer resources. 6 In multiple processes each process operates independently of the others. One thread can read, write or change another thread's data.
11.
4.11 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Data and Task Parallelism
12.
4.12 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Amdahl’s Law Identifies performance gains from adding additional cores to an application that has both serial and parallel components S is serial portion N processing cores That is, if application is 75% parallel / 25% serial, moving from 1 to 2 cores results in speedup of 1.6 times As N approaches infinity, speedup approaches 1 / S Serial portion of an application has disproportionate effect on performance gained by adding additional cores But does the law take into account contemporary multicore systems?
13.
4.13 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Amdahl’s Law
14.
4.14 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition User Threads and Kernel Threads User threads - management done by user-level threads library Three primary thread libraries: • POSIX Pthreads • Windows threads • Java threads Kernel threads - Supported by the Kernel Examples – virtually all general -purpose operating systems, including: • Windows • Linux • Mac OS X • iOS • Android
15.
4.15 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition User and Kernel Threads
16.
4.16 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Multithreading Models Many-to-One One-to-One Many-to-Many
17.
4.17 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Many-to-One Many user-level threads mapped to single kernel thread One thread blocking causes all to block Multiple threads may not run in parallel on muticore system because only one may be in kernel at a time Few systems currently use this model Examples: • Solaris Green Threads • GNU Portable Threads
18.
4.18 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition One-to-One Each user-level thread maps to kernel thread Creating a user-level thread creates a kernel thread More concurrency than many-to-one Number of threads per process sometimes restricted due to overhead Examples • Windows • Linux
19.
4.19 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition 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 Windows with the ThreadFiber package Otherwise not very common
20.
4.20 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Two-level Model Similar to M:M, except that it allows a user thread to be bound to kernel thread
21.
4.21 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition 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
22.
4.22 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Pthreads May be provided either as user-level or kernel-level A POSIX standard (IEEE 1003.1c) API for thread creation and synchronization Specification, not implementation API specifies behavior of the thread library, implementation is up to development of the library Common in UNIX operating systems (Linux & Mac OS X)
23.
4.23 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Pthreads Example
24.
4.24 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Pthreads Example (Cont.)
25.
4.25 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Pthreads Code for Joining 10 Threads
26.
4.26 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Windows Multithreaded C Program
27.
4.27 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Windows Multithreaded C Program (Cont.)
28.
4.28 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Java Threads Java threads are managed by the JVM Typically implemented using the threads model provided by underlying OS Java threads may be created by: • Extending Thread class • Implementing the Runnable interface • Standard practice is to implement Runnable interface
29.
4.29 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Java Threads Implementing Runnable interface: Creating a thread: Waiting on a thread:
30.
4.30 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Java Executor Framework Rather than explicitly creating threads, Java also allows thread creation around the Executor interface: The Executor is used as follows:
31.
4.31 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Java Executor Framework
32.
4.32 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Java Executor Framework (Cont.)
33.
4.33 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Implicit Threading Growing in popularity as numbers of threads increase, program correctness more difficult with explicit threads Creation and management of threads done by compilers and run-time libraries rather than programmers Five methods explored • Thread Pools • Fork-Join • OpenMP • Grand Central Dispatch • Intel Threading Building Blocks
34.
4.34 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Thread Pools Create a number of threads in a pool where they await work Advantages: • Usually slightly faster to service a request with an existing thread than create a new thread • Allows the number of threads in the application(s) to be bound to the size of the pool • Separating task to be performed from mechanics of creating task allows different strategies for running task i.e.,Tasks could be scheduled to run periodically Windows API supports thread pools:
35.
4.35 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Java Thread Pools Three factory methods for creating thread pools in Executors class:
36.
4.36 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Java Thread Pools (Cont.)
37.
4.37 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Fork-Join Parallelism Multiple threads (tasks) are forked, and then joined.
38.
4.38 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Fork-Join Parallelism General algorithm for fork-join strategy:
39.
4.39 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Fork-Join Parallelism
40.
4.40 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Fork-Join Parallelism in Java
41.
4.41 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Fork-Join Parallelism in Java
42.
4.42 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Fork-Join Parallelism in Java The ForkJoinTask is an abstract base class RecursiveTask and RecursiveAction classes extend ForkJoinTask RecursiveTask returns a result (via the return value from the compute() method) RecursiveAction does not return a result
43.
4.43 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition OpenMP Set of compiler directives and an API for C, C++, FORTRAN Provides support for parallel programming in shared- memory environments Identifies parallel regions – blocks of code that can run in parallel #pragma omp parallel Create as many threads as there are cores
44.
4.44 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Run the for loop in parallel
45.
4.45 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Grand Central Dispatch Apple technology for macOS and iOS operating systems Extensions to C, C++ and Objective-C languages, API, and run-time library Allows identification of parallel sections Manages most of the details of threading Block is in “^{ }” : ˆ{ printf("I am a block"); } Blocks placed in dispatch queue • Assigned to available thread in thread pool when removed from queue
46.
4.46 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Grand Central Dispatch Two types of dispatch queues: • serial – blocks removed in FIFO order, queue is per process, called main queue Programmers can create additional serial queues within program • concurrent – removed in FIFO order but several may be removed at a time Four system wide queues divided by quality of service: o QOS_CLASS_USER_INTERACTIVE o QOS_CLASS_USER_INITIATED o QOS_CLASS_USER_UTILITY o QOS_CLASS_USER_BACKGROUND
47.
4.47 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Grand Central Dispatch For the Swift language a task is defined as a closure – similar to a block, minus the caret Closures are submitted to the queue using the dispatch_async() function:
48.
4.48 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Intel Threading Building Blocks (TBB) Template library for designing parallel C++ programs A serial version of a simple for loop The same for loop written using TBB with parallel_for statement:
49.
4.49 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Threading Issues Semantics of fork() and exec() system calls Signal handling • Synchronous and asynchronous Thread cancellation of target thread • Asynchronous or deferred Thread-local storage Scheduler Activations
50.
4.50 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Semantics of fork() and exec() Does fork()duplicate only the calling thread or all threads? • Some UNIXes have two versions of fork exec() usually works as normal – replace the running process including all threads
51.
4.51 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition 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. Signal is generated by particular event 2. Signal is delivered to a process 3. Signal is handled by one of two signal handlers: 1. default 2. user-defined Every signal has default handler that kernel runs when handling signal • User-defined signal handler can override default • For single-threaded, signal delivered to process
52.
4.52 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Signal Handling (Cont.) Where should a signal be delivered for multi-threaded? • 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 in the process • Assign a specific thread to receive all signals for the process
53.
4.53 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Thread Cancellation Terminating a thread before it has finished Thread to be canceled is target thread Two general approaches: • Asynchronous cancellation terminates the target thread immediately • Deferred cancellation allows the target thread to periodically check if it should be cancelled Pthread code to create and cancel a thread:
54.
4.54 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Thread Cancellation (Cont.) Invoking thread cancellation requests cancellation, but actual cancellation depends on thread state If thread has cancellation disabled, cancellation remains pending until thread enables it Default type is deferred • Cancellation only occurs when thread reaches cancellation point i.e., pthread_testcancel() Then cleanup handler is invoked On Linux systems, thread cancellation is handled through signals
55.
4.55 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Thread Cancellation in Java Deferred cancellation uses the interrupt() method, which sets the interrupted status of a thread. A thread can then check to see if it has been interrupted:
56.
4.56 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Thread-Local Storage Thread-local storage (TLS) allows each thread to have its own copy of data Useful when you do not have control over the thread creation process (i.e., when using a thread pool) Different from local variables • Local variables visible only during single function invocation • TLS visible across function invocations Similar to static data • TLS is unique to each thread
57.
4.57 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Scheduler Activations Both M:M and Two-level models require communication to maintain the appropriate number of kernel threads allocated to the application Typically use an intermediate data structure between user and kernel threads – lightweight process (LWP) • Appears to be a virtual processor on which process can schedule user thread to run • Each LWP attached to kernel thread • How many LWPs to create? Scheduler activations provide upcalls - a communication mechanism from the kernel to the upcall handler in the thread library This communication allows an application to maintain the correct number kernel threads
58.
4.58 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Operating System Examples Windows Threads Linux Threads
59.
4.59 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Windows Threads Windows API – primary API for Windows applications Implements the one-to-one mapping, kernel-level Each thread contains • A thread id • Register set representing state of processor • Separate user and kernel stacks for when thread runs in user mode or kernel mode • Private data storage area used by run-time libraries and dynamic link libraries (DLLs) The register set, stacks, and private storage area are known as the context of the thread
60.
4.60 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Windows Threads (Cont.) The primary data structures of a thread include: • ETHREAD (executive thread block) – includes pointer to process to which thread belongs and to KTHREAD, in kernel space • KTHREAD (kernel thread block) – scheduling and synchronization info, kernel-mode stack, pointer to TEB, in kernel space • TEB (thread environment block) – thread id, user-mode stack, thread-local storage, in user space
61.
4.61 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition Windows Threads Data Structures
62.
4.62 Silberschatz, Galvin
and Gagne ©2018 Operating System Concepts – 10th Edition 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) • Flags control behavior struct task_struct points to process data structures (shared or unique)
63.
Silberschatz, Galvin and
Gagne ©2018 Operating System Concepts – 10th Edition End of Chapter 4
Download now