MultiThreading
From CERCS Multi-Core Repository
Threads are essential for harvesting the performance potential of multi-core platforms. The following modules are intended for understanding various issues in providing threading support and implementing threading libraries, as well as programming with threads and models for developing multi-threaded applications.
Basic modules:
- An Introduction to Threads
- Sample Homework Questions
- MT Project: Developing a Threading Library
- Understanding Amdahl's Law -- Project involving performance analysis with an MT application and the Simics Simulator
- MultiThreading Models
- Introduction to Pthreads
- Another Introduction to Parallel Processing and Threads -- from CS2200 Systems and Networks, by William Leahy, Kishore Ramachandran
- Intro to Parallel Processing
- Mutex
- Threads
- Threads and Synchronization
- Multiprocessors and Multithreading
- Reference text and accompanying practice questions: Chapter 12 from Computer Systems: An Integrated Approach to Architecture and Operating Systems
- Classic IPC Problems
- Advanced Thread Concepts
Relevant Courses:
- [CS2200 - Systems and Networks (undergraduate)]
- [CS3210 - Operating Systems Design (undergraduate)]
- [CS4210 - Advanced Operating Systems (undergraduate)]
- [CS6210 - Advanced Operating Systems (graduate)]
References:
- Birrell, "An Introduction to Programming with Threads"
- Multithreaded Programming with Pthreads, Lewis and Berg, Prentice Hall
- Pthreads Programming, Nichols, Buttlar, Farrell, O'Reilly
- Operating Systems Concepts, Silberschatz, Galvin, and Gagne, Seventh Edition, John Wiley and Sons
- Modern Operating Systems, 2nd ed., A. Tanenbaum, Prentice Hall
- CThreads, E. Cooper and R. Draves, 1990
- Computer Systems: An Integrated Approach to Architecture and Operating Systems, Chapter 12
