Unit 2: Processes and Threads
We will discuss two central building blocks of modern operating systems: Processes and Threads. Processes (instances of a running computer program) and threads (a specific task running within a program) are integral to the understanding of how an OS executes a program and the communication of information between each of the computer's architectural layers. We will start with an overview of each concept, including definitions, uses, and types. We will then discuss the commonalities and differences between processes and threads. We will conclude this unit with a discussion on Context Switches and the important role they play in CPU scheduling, which will be discussed more in depth in Unit 4.
Completing this unit should take you approximately 10 hours.
Upon successful completion of this unit, you will be able to:
- discuss the importance and use of threads and processes in an operating system;
- describe concurrency;
- explain the difference between a thread and a process; and
- discuss context switching and how it is used in an operating system.
2.1: Concurrency
Watch this video, which will be an introduction to Unit 2 and will touch on all topics outlined in this unit.
Read this handout.
2.2: Processes
Watch this video.
Read these lecture notes.
Read these slides.
2.3: Threads
Read this article.
Read these slides.
Watch this video.
Read this page.
2.4: Context Switch
Read this article.
Read this article.
Read slides 4 through 10.
Read this article.