Chapter 5 - M05_STAL6329_06_SE_C05.QXD 2/21/08 9:25 PM Page...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
CHAPTER C ONCURRENCY :M UTUAL E XCLUSION AND S YNCHRONIZATION 5.1 Principles of Concurrency A Simple Example Race Condition Operating System Concerns Process Interaction Requirements for Mutual Exclusion 5.2 Mutual Exclusion: Hardware Support Interrupt Disabling Special Machine Instructions 5.3 Semaphores Mutual Exclusion The Producer/Consumer Problem Implementation of Semaphores 5.4 Monitors Monitor with Signal Alternate Model of Monitors with Notify and Broadcast 5.5 Message Passing Synchronization Addressing Message Format Queuing Discipline Mutual Exclusion 5.6 Readers/Writers Problem Readers Have Priority Writers Have Priority 5.7 Summary 5.8 Recommended Reading 5.9 Key Terms, Review Questions, and Problems 205 M05_STAL6329_06_SE_C05.QXD 2/21/08 9:25 PM Page 205
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
The central themes of operating system design are all concerned with the management of processes and threads: Multiprogramming: The management of multiple processes within a uniprocessor system. Multiprocessing: The management of multiple processes within a multiprocessor. Distributed processing: The management of multiple processes executing on multiple, distributed computer systems.The recent proliferation of clusters is a prime example of this type of system. Fundamental to all of these areas, and fundamental to OS design, is concurrency. Concurrency encompasses a host of design issues, including communication among processes, sharing of and competing for resources (such as memory, files, and I/O ac- cess), synchronization of the activities of multiple processes, and allocation of processor time to processes.We shall see that these issues arise not just in multipro- cessing and distributed processing environments but even in single-processor multi- programming systems. Concurrency arises in three different contexts: Multiple applications: Multiprogramming was invented to allow processing time to be dynamically shared among a number of active applications. Structured applications: As an extension of the principles of modular design and structured programming, some applications can be effectively pro- grammed as a set of concurrent processes. Operating system structure: The same structuring advantages apply to systems programs, and we have seen that operating systems are themselves often im- plemented as a set of processes or threads. Because of the importance of this topic, four chapters and an appendix of this book focus on concurrency-related issues. This chapter and the next deal with con- currency in multiprogramming and multiprocessing systems. Chapters 16 and 18 ex- amine concurrency issues related to distributed processing.Although the remainder of this book covers a number of other important topics in OS design, concurrency will play a major role in our consideration of all of these other topics.
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 02/10/2010 for the course EXTC 56 taught by Professor Stalling during the Spring '10 term at Abu Dhabi University.

Page1 / 57

Chapter 5 - M05_STAL6329_06_SE_C05.QXD 2/21/08 9:25 PM Page...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online