OPERATING SYSTEMS Internais and Design Principles



Similar documents
Gildart Haase School of Computer Sciences and Engineering

Operating Systems Principles

Weighted Total Mark. Weighted Exam Mark

CRYPTOG NETWORK SECURITY

Undergraduate Course Syllabus

Computer Organization

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Operating Systems OBJECTIVES 7.1 DEFINITION. Chapter 7. Note:

Chapter 11 I/O Management and Disk Scheduling

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

Computer Science 4302 Operating Systems. Student Learning Outcomes

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun

2.1 What are distributed systems? What are systems? Different kind of systems How to distribute systems? 2.2 Communication concepts

How To Understand The History Of An Operating System

A Comparison of Distributed Systems: ChorusOS and Amoeba

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest

Distributed Systems. REK s adaptation of Prof. Claypool s adaptation of Tanenbaum s Distributed Systems Chapter 1

Distributed Operating Systems

CHAPTER 15: Operating Systems: An Overview

2) What is the structure of an organization? Explain how IT support at different organizational levels.

Client/Server and Distributed Computing

Chapter 1: Introduction. What is an Operating System?

Operatin g Systems: Internals and Design Principle s. Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings

Chapter 6, The Operating System Machine Level

COURSE OUTLINE Survey of Operating Systems

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Distributed Systems LEEC (2005/06 2º Sem.)

Chapter 16 Distributed Processing, Client/Server, and Clusters

Deciding which process to run. (Deciding which thread to run) Deciding how long the chosen process can run

Concurrent Programming

Principles of Operating Systems CS 446/646

Operating Systems, 6 th ed. Test Bank Chapter 7

CS0206 OPERATING SYSTEMS Prerequisite CS0201, CS0203

Operating System Structures

Contents RELATIONAL DATABASES

PARALLEL PROGRAMMING

Chapter 1 Computer System Overview

Overview of Operating Systems Instructor: Dr. Tongping Liu

SYSTEM ecos Embedded Configurable Operating System

Operating Systems 4 th Class

The team that wrote this redbook Comments welcome Introduction p. 1 Three phases p. 1 Netfinity Performance Lab p. 2 IBM Center for Microsoft

COS 318: Operating Systems. Virtual Machine Monitors

Introduction. What is an Operating System?

Networking Operating Systems (CO32010)

CDS and Clearing Limited Thapathali, Kathmandu 7 th Level (Technical) Syllabus

Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server 2003, Windows XR and Windows 2000

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Symmetric Multiprocessing

opensm2 Enterprise Performance Monitoring December 2010 Copyright 2010 Fujitsu Technology Solutions

Assessment Plan for CS and CIS Degree Programs Computer Science Dept. Texas A&M University - Commerce

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

PRODUCTIVITY ESTIMATION OF UNIX OPERATING SYSTEM

Operating Systems Overview

MQSeries. Clients GC

INTRODUCTION TO COMPUTING CPIT 201 WEEK 13 LECTURE 3

Chapter 12 File Management. Roadmap

Chapter 12 File Management

Far-western University Central Office, Mahendranagar Operating System

A Deduplication File System & Course Review

I/O Management. General Computer Architecture. Goals for I/O. Levels of I/O. Naming. I/O Management. COMP755 Advanced Operating Systems 1

Audience. At Course Completion. Prerequisites. Course Outline. Take This Training

Table of Contents Introduction and System Requirements 9 Installing VMware Server 35

CTE214 Operating Systems Syllabus

Red Hat Linux Internals

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.

CSC 2405: Computer Systems II

ADVANCED COMPUTER ARCHITECTURE: Parallelism, Scalability, Programmability

"Charting the Course to Your Success!" MOC D Windows 7 Enterprise Desktop Support Technician Course Summary

Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6

How To Make A Distributed System Transparent

CRYPTOGRAPHY AND NETWORK SECURITY

Web Server Architectures

Network Security Essentials:

Programming for GCSE Topic H: Operating Systems

Hardware and Software Requirements for Installing California.pro

OPERATING SYSTEMS STRUCTURES

Control 2004, University of Bath, UK, September 2004

Virtual machine interface. Operating system. Physical machine interface

5054A: Designing a High Availability Messaging Solution Using Microsoft Exchange Server 2007

MCSE Objectives. Exam : TS:Exchange Server 2007, Configuring

Software Performance and Scalability

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

Introduction. System Calls

Computer-System Architecture

Migrating Sockets - End System Support for Networking

How To Understand The Concept Of A Distributed System

Core Syllabus. Version 2.6 C OPERATE KNOWLEDGE AREA: OPERATION AND SUPPORT OF INFORMATION SYSTEMS. June 2006

Distributed Operating Systems. Cluster Systems

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Operating Systems. Design and Implementation. Andrew S. Tanenbaum Melanie Rieback Arno Bakker. Vrije Universiteit Amsterdam

Outline. Operating Systems Design and Implementation. Chap 1 - Overview. What is an OS? 28/10/2014. Introduction

Lecture 23: Multiprocessors

Timing of a Disk I/O Transfer

CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure

FIFTH EDITION. Oracle Essentials. Rick Greenwald, Robert Stackowiak, and. Jonathan Stern O'REILLY" Tokyo. Koln Sebastopol. Cambridge Farnham.

Amoeba Distributed Operating System

POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2)

Real Time Programming: Concepts

Transcription:

OPERATING SYSTEMS Internais and Design Principles FOURTH EDITION William Stallings, Ph.D. Prentice Hall Upper Saddle River, New Jersey 07458

CONTENTS Web Site for Operating Systems: Internais and Design Principles, vi Preface, ix Chapter 0 Reader's Guide, 1 0.1 Outline of the Book, 2 0.2 Topic Ordering, 3 0.3 Internet and Web Resources, 4 PART ONE BACKGROUND, 7 Chapter 1 Computer System Overview, 9 1.1 Basic Elements, 10 1.2 Processor Registers, 11 1.3 Instruction Execution, 14 1.4 Interrupts, 17 1.5 The Memory Hierarchy, 28 1.6 Cache Memory, 31 1.7 I/O Communication Techniques, 35 1.8 Recommended Reading, 38 1.9 Problems, 39 Appendix 1A Performance Characteristics of Two-Level Memory, 41 Appendix 1B Procedure Control, 48 Chapter 2 Operating System Overview, 53 2.1 Operating System Objectives and Functions, 54 2.2 The Evolution of Operating Systems, 58 2.3 Major Achievements, 68 2.4 Characteristics of Modern Operating Systems, 80 2.5 Windows 2000 Overview, 83

XIV CONTENTS 2.6 Traditional UNIX Systems, 93 2.7 Modern UNIX Systems, 96 2.8 Recommended Reading, 100 2.9 Problems, 101 PART TWO PROCESSES, 103 Chapter 3 Process Description and Control, 107 3.1 Process States, 108,3.2 Process Description, 124 3.3 Process Control, 133 3.4 UNIX SVR4 Process Management, 142 3.5 Summary, Key Terms, and Review Questions, 147 3.6 Recommended Reading, 148 3.7 Problems, 149 Chapter 4 Threads, SMP, and Microkernels, 153 4.1 Processes and Threads, 154 4.2 Symmetrie Multiprocessing, 169 4.3 Microkernels, 172 4.4 Windows 2000 Thread and SMP Management, 179 4.5 Solaris Thread and SMP Management, 184 4.6 Linux Process and Thread Management, 190 4.7 Summary, Key Terms, and Review Questions, 192 4.8 Recommended Reading, 193 4.9 Problems, 194 Chapter 5 Concurrency: Mutual Exclusion and Synchronization, 5.1 Principles of Concurrency, 199 5.2 Mutual Exclusion: Software Approaches, 208 5.3 Mutual Exclusion: Hardware Support, 212 5.4 Semaphores, 217 5.5 Monitors, 234 5.6 Message Passing, 241 5.7 Readers/Writers Problem, 248 5.8 Summary, Key Terms, and Review Questions, 253 5.9 Recommended Reading, 254 5.10 Problems, 255 Chapter 6 Concurrency: Deadlock and Starvation, 265 6.1 Principles of Deadlock, 266 6.2 Deadlock Prevention, 273 6.3 Deadlock Avoidance, 275

CONTENTS XV 6.4 Deadlock Detection, 280 6.5 An Integrated Deadlock Strategy, 282 6.6 Dining Philosophers Problem, 283 6.7 UNIX Concurrency Mechanisms, 285 6.8 Solaris Thread Synchronization Primitives, 287 6.9 Windows 2000 Concurrency Mechanisms, 291 6.10 Summary, Key Terms, and Review Questions, 293 6.11 Recommended Reading, 293 6.12 Problems, 294 PART THREE MEMORY, 299 Chapter 7 Memory Management, 301 7.1 Memory Management Requirements, 302 7.2 Memory Partitioning, 305 7.3 Paging, 317 7.4 Segmentation, 321 7.5 Summary, Key Terms, and Review Questions, 323 7.6 Recommended Reading, 323 7.7 Problems, 324 Appendix 7A Loading and Linking, 325 Chapter 8 Virtual Memory, 333 8.1 Hardware and Control Structures, 334 8.2 Operating System Software, 353 8.3 UNIX and Solaris Memory Management, 372 8.4 Linux Memory Management, 378 8.5 Windows 2000 Memory Management, 380 8.6 Summary, Key Terms, and Review Questions, 382 8.7 Recommended Reading, 383 8.8 Problems, 384 Appendix 8A Hash Tables, 387 PARTFOUR SCHEDULING, 391 Chapter 9 Uniprocessor Scheduling, 393 9.1 Types of Scheduling, 394 9.2 Scheduling Algorithms, 398 9.3 Traditional UNIX Scheduling, 422 9.4 Summary, Key Terms, and Review Questions, 424 9.5 Recommended Reading, 425

xvi CONTENTS 9.6 Problems, 426 Appendix 9A Response Time, 428 Appendix 9B Queuing Systems, 431 Chapter 10 Multiprocessor and Real-Time Scheduling, 437 10.1 Multiprocessor Scheduling, 438 10.2 Real-Time Scheduling, 450 10.3 Linux Scheduling, 462 10.4 UNIX SVR4 Scheduling, 463 «10.5 Windows 2000 Scheduling, 465 '10.6 Summary, Key Terms, and Review Questions, 468 10.7 Recommended Reading, 469 10.8 Problems, 469 PART FIVE INPUT/OUTPUT AND FILES, 471 Chapter 11 I/O Management and Disk Scheduling, 473 11.1 I/O Devices, 474 11.2 Organization of the I/O Function, 475 11.3 Operating System Design Issues, 480 11.4 I/O Buffering, 483 11.5 Disk Scheduling, 486 11.6 RAID, 493 11.7 Disk Cache, 502 11.8 UNIX SVR4 I/O, 506 11.9 Windows 2000 I/O, 509 11.10 Summary, Key Terms, and Review Questions, 511 11.11 Recommended Reading, 513 11.12 Problems, 514 Appendix IIA Disk Storage Devices, 515 Chapter 12 File Management, 525 12.1 Overview, 526 12.2 File Organization, 531 12.3 File Directories, 536 12.4 File Sharing, 539 12.5 Record Blocking, 541 12.6 Secondary Storage Management, 543 12.7 UNIX File Management, 552 12.8 Windows 2000 File System, 554 12.9 Summary, Key Terms, and Review Questions, 560

CONTENTS XVÜ 12.10 Recommended Reading, 561 12.11 Problems, 562 PART SIX Chapter 13 DISTRIBUTED SYSTEMS, 565 Distributed Processing, Client/Server, and Clusters, 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 13.10 Client/Server Computing, 571 Distributed Message Passing, 583 Remote Procedure Calls, 586 Clusters, 590 Windows 2000 Cluster Server, 596 Sun Cluster, 598 Beowulf and Linux Clusters, 601 Summary, Key Terms, and Review Questions, 603 Recommended Reading, 604 Problems, 605 Chapter 14 Distributed Process Management, 607 14.1 14.2 14.3 14.4 14.5 14.6 14.7 Process Migration, 608 Distributed Global States, 615 Distributed Mutual Exclusion, 620 Distributed Deadlock, 631 Summary, Key Terms, and Review Questions, 643 Recommended Reading, 643 Problems, 644 PART SEVEN SECURITY, 645 Chapter 15 Computer Security, 647 15.1 Security Threats, 648 15.2 Protection, 653 15.3 Intruders, 657 15.4 Malicious Software, 669 15.5 Trusted Systems, 679 15.6 Windows 2000 Security, 683 15.7 Summary, Key Terms, and Review Questions, 687 15.8 Recommended Reading, 689 15.9 Problems, 690 Appendix 15A Encryption, 691

XVÜi CONTENTS APPENDICES Appendix A TCP/IP, 699 A.l The Need for a Protocol Architecture, 699 A.2 The TCP/IP Protocol Architecture, 700 Appendix B Object-Oriented Design, 709 B.l Motivation, 709, B.2 Object-Oriented Concepts, 709 B.3 Benefits of Object-Oriented Design, 714 B.4 CORBA, 715 Appendix C Programming and Operating System Projects, 719 C.l Projects for Teaching Operating Systems, 719 C.2 Nachos, 720 C.3 Research Projects, 721 C.4 Programming Projects, 722 C.5 Reading/Report Assignments, 722 Appendix D OSP: An Environment for Operating System Projects, 723 D.l Overview, 723 D.2 Innovative Aspects of OSP, 726 D.3 Comparison with Other Operating System Courseware, 728 D.4 The OSP Software Distribution, 729 D.5 OSP Mailing List, 729 D.6 Future Plans, 730 Appendix E BACI: The Ben-Ari Concurrent Programming System, 731 E.l Introduction, 731 E.2 BACI, 732 E.3 Examples of BACI Programs, 735 E.4 BACI Projects, 739 E.5 Enhancements to the BACI System, 742 Glossary, 743 References, 757 Index, 771