0% found this document useful (0 votes)
79 views4 pages

Threads & Concurrency: Bibliographical Notes

This chapter introduces concepts and challenges related to multithreaded computer systems, including APIs for thread libraries in Pthreads, Windows, and Java. It explores features that abstract thread creation to focus on parallelism opportunities. Issues in multithreaded programming and how operating systems support threads at the kernel level are also examined. The bibliographical notes provide references for threading in various operating systems as well as details on parallel programming and estimating performance.

Uploaded by

Tugas Utomo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views4 pages

Threads & Concurrency: Bibliographical Notes

This chapter introduces concepts and challenges related to multithreaded computer systems, including APIs for thread libraries in Pthreads, Windows, and Java. It explores features that abstract thread creation to focus on parallelism opportunities. Issues in multithreaded programming and how operating systems support threads at the kernel level are also examined. The bibliographical notes provide references for threading in various operating systems as well as details on parallel programming and estimating performance.

Uploaded by

Tugas Utomo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Threads &

CHAPTER
4
Concurrency

The process model introduced in Chapter 3 assumed that a process was an


executing program with a single thread of control. Virtually all modern operat-
ing systems, however, provide features enabling a process to contain multiple
threads of control. Identifying opportunities for parallelism through the use of
threads is becoming increasingly important for modern multicore systems that
provide multiple CPUs.
In this chapter, we introduce many concepts, as well as challenges, associ-
ated with multithreaded computer systems, including a discussion of the APIs
for the Pthreads, Windows, and Java thread libraries. Additionally, we explore
several new features that abstract the concept of creating threads, allowing
developers to focus on identifying opportunities for parallelism and letting
language features and API frameworks manage the details of thread creation
and management. We look at a number of issues related to multithreaded pro-
gramming and its effect on the design of operating systems. Finally, we explore
how the Windows and Linux operating systems support threads at the kernel
level.

Bibliographical Notes

[Vahalia (1996)] covers threading in several versions of UNIX. [McDougall and


Mauro (2007)] describes developments in threading the Solaris kernel. [Russi-
novich et al. (2017)] discuss threading in the Windows operating system family.
[Mauerer (2008)] and [Love (2010)] explain how Linux handles threading, and
[Singh (2007)] covers threads in macOS.
Information on Pthreads programming is given in [Lewis and Berg
(1998)] and [Butenhof (1997)]. [Oaks and Wong (1999)] and [Lewis and Berg
(2000)] discuss multithreading in Java. [Goetz et al. (2006)] present a detailed
discussion of concurrent programming in Java. [Hart (2005)] describes
multithreading using Windows. Details on using OpenMP can be found at
http://openmp.org. Intel threading building blocks specifics can be found at
https://www.threadingbuildingblocks.org.

163
164 Chapter 4 Threads & Concurrency

An analysis of an optimal thread-pool size can be found in [Ling et al.


(2000)]. Scheduler activations were first presented in [Anderson et al. (1991)],
and [Williams (2002)] discusses scheduler activations in the NetBSD system.
[Breshears (2009)] and [Pacheco (2011)] cover parallel programming in
detail. [Hill and Marty (2008)] examine Amdahl’s Law with respect to multi-
core systems. The Monte Carlo technique for estimating π is further discussed
in http://math.fullerton.edu/mathews/n2003/montecarlopimod.html.

Bibliography

[Anderson et al. (1991)] T. E. Anderson, B. N. Bershad, E. D. Lazowska, and


H. M. Levy, “Scheduler Activations: Effective Kernel Support for the User-Level
Management of Parallelism”, Proceedings of the ACM Symposium on Operating
Systems Principles (1991), pages 95–109.
[Breshears (2009)] C. Breshears, The Art of Concurrency, O’Reilly & Associates
(2009).
[Butenhof (1997)] D. Butenhof, Programming with POSIX Threads, Addison-
Wesley (1997).
[Goetz et al. (2006)] B. Goetz, T. Peirls, J. Bloch, J. Bowbeer, D. Holmes, and
D. Lea, Java Concurrency in Practice, Addison-Wesley (2006).
[Hart (2005)] J. M. Hart, Windows System Programming, Third Edition, Addison-
Wesley (2005).
[Hill and Marty (2008)] M. Hill and M. Marty, “Amdahl’s Law in the Multicore
Era”, IEEE Computer, Volume 41, Number 7 (2008), pages 33–38.
[Lewis and Berg (1998)] B. Lewis and D. Berg, Multithreaded Programming with
Pthreads, Sun Microsystems Press (1998).
[Lewis and Berg (2000)] B. Lewis and D. Berg, Multithreaded Programming with
Java Technology, Sun Microsystems Press (2000).
[Ling et al. (2000)] Y. Ling, T. Mullen, and X. Lin, “Analysis of Optimal Thread
Pool Size”, Operating System Review, Volume 34, Number 2 (2000), pages 42–55.
[Love (2010)] R. Love, Linux Kernel Development, Third Edition, Developer’s
Library (2010).
[Mauerer (2008)] W. Mauerer, Professional Linux Kernel Architecture, John Wiley
and Sons (2008).
[McDougall and Mauro (2007)] R. McDougall and J. Mauro, Solaris Internals,
Second Edition, Prentice Hall (2007).
[Oaks and Wong (1999)] S. Oaks and H. Wong, Java Threads, Second Edition,
O’Reilly & Associates (1999).
[Pacheco (2011)] P. S. Pacheco, An Introduction to Parallel Programming, Morgan
Kaufmann (2011).
Bibliographical Notes 165

[Russinovich et al. (2017)] M. Russinovich, D. A. Solomon, and A. Ionescu, Win-


dows Internals - Part 1, Seventh Edition, Microsoft Press (2017).
[Singh (2007)] A. Singh, Mac OS X Internals: A Systems Approach, Addison-
Wesley (2007).
[Vahalia (1996)] U. Vahalia, Unix Internals: The New Frontiers, Prentice Hall
(1996).
[Williams (2002)] N. Williams, “An Implementation of Scheduler Activations
on the NetBSD Operating System”, 2002 USENIX Annual Technical Conference,
FREENIX Track (2002).

You might also like