art One provides a background and context for the remainder of this book. This part presents the fundamental concepts of computer architecture and operating system internals.
ROAD MAP FOR PART ONE
Chapter 1 Computer System Overview
An operating system mediates among application programs, utilities, and users, on the one hand, and the computer system hardware on the other. To appreciate the functionality of the operating system and the design issues involved, one must have some appreciation for computer organization and architecture. Chapter 1 provides a brief survey of the processor, memory, and Input/Output (I/O) elements of a computer system.
Chapter 2 Operating System Overview
The topic of operating system (OS) design covers a huge territory, and it is easy to get lost in the details and lose the context of a discussion of a particular issue. Chapter 2 provides an overview to which the reader can return at any point in the book for context. We begin with a statement of the objectives and functions of an operating system. Then some historically important systems and OS functions are described. This discussion allows us to present some fundamental OS design principles in a simple environment so that the relationship among various OS functions is clear. The chapter next highlights important characteristics of modern operating systems. Throughout the book, as various topics are discussed, it is necessary to talk about both fundamental, well-established principles as well as more recent innovations in OS design. The discussion in this chapter alerts the reader to this blend of established and recent design approaches that must be addressed. Finally, we present an overview of Windows, UNIX, and Linux; this discussion establishes the general architecture of these systems, providing context for the detailed discussions to follow.
COMPUTER SYSTEM OVERVIEW
1.1 1.2 Basic Elements Processor Registers User-Visible Registers Control and Status Registers Instruction Execution Instruction Fetch and Execute I/O Function Interrupts Interrupts and the Instruction Cycle Interrupt Processing Multiple Interrupts Multiprogramming The Memory Hierarchy Cache Memory Motivation Cache Principles Cache Design I/O Communication Techniques Programmed I/O Interrupt-Driven I/O Direct Memory Access Recommended Reading and Web Sites Key Terms, Review Questions, and Problems 1.3
APPENDIX 1A Performance Characteristicd of Two-Level Memories Locality Operation of Two-Level Memory Performance APPENDIX 1B Procedure Control Stack Implementation Procedure Calls and Returns Reentrant Procedures
CHAPTER 1 / COMPUTER SYSTEM OVERVIEW
An operating system (OS) exploits the hardware resources of one or more processors to provide a set of services to system users. The OS also manages secondary memory and I/O (input/output) devices on behalf of its users. Accordingly, it is important to have some understanding of the underlying computer system hardware before we begin our examination of operating systems. This chapter provides an overview of computer system hardware. In most areas, the survey is brief, as it is assumed that the reader is familiar with this subject. However, several areas are covered in some detail because of their importance to topics covered later in the book.
1.1 BASIC ELEMENTS
At a top level, a computer consists of processor, memory, and I/O components, with one or more modules of each type. These components are interconnected in some fashion to achieve the main function of the computer, which is to execute programs. Thus, there are four main structural elements: • Processor: Controls the operation of the computer and performs its data processing...