9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 1 Threads CMSC 421 Spring 2012, Section 2 Dr. Richard Carback Slides based on Operating Systems Concepts, 8th Edition
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 2 Lecture Overview ● Overview ● Multithreading Models ● Thread Libraries ● Threading Issues ● Operating System Examples ● Windows XP Threads ● Linux Threads
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 3
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 4
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 5
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 6 User v. Kernel Threads ● Thread management done by user-level threads library ● Three primary thread libraries: ● POSIX Pthreads ● Win32 threads ● Java threads ● Supported by the Kernel ● Multiple pointers/more complex PCB. ● Examples ● Windows XP/2000 ● Solaris ● Linux ● Tru64 UNIX ● Mac OS X
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 7
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 8
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 9
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 10
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 11 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
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 12
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 13
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 14
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 15
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 16
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 17
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 18
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 19 Linux threads ● fork() and clone() system calls ● Doesn’t distinguish between process and thread ● Uses term task rather than thread ● clone() takes options to determine sharing on process create ● struct task_struct points to process data structures (shared or unique)
9/30/2016 Slides based on Operating Systems Concepts, 8th Edition 20 Questions?