本书是计算机类专业操作系统课程的一本经典教材,自第一版问世以来,经历了近20年的锤炼,被认为是该课程教材的一本'圣经'。它对操作系统的概念和基本原理给出了清晰的阐述。本书所涉及的基本概念和算法均基于当前商用操作系统,并在非特定操作系统的通用环境中展开讲解。书中介绍了大量与流行操作系统相关的实现技术,包括Solaris2、Linux、Windows NT、Windows 2000、OS/2和Apple Macintosh操作系统。此版包括了线程、Windows 2000的新章节,并新增了客户/服务器模型和网络文件系统、嵌入式操作系统、实时操作系统、分布式操作系统等。
PART ONE OVERVIEW
Chapter I Introduction
l.l What Is an Operating System?
I.2 Mainframe Systems
l.3 Desktop Systems
l.4 Multiprocessor Systems
I.5 Distributed Systems
l.6 Clustered Systems
I.7 Real-Time Systems
l.8 Handheld Systems
l.9 Feature Migration
l.10 Computing Environments
I.1l Summary
Exercises
Bibliographical Notes
Chapter 2 Computer-System Structures
2.l Computer-System Operation
2.2 I/O Structure
2.3 Storage Structure
2.4 Storage Hierarchy
2.5 Hardware Protection
2.6 Network Structure
2.7 Summary
Exercises
Bibliographical Notes
Chapter 3 Operating-System Structures
3.l System Components
3.2 Operating-System Services
3.3 System Calk
3.4 System Programs
3.5 System Structure
3.6 Virtual Machines
3.7 System Design and
Implementation
3.8 System Generation
3.9 Summary
Exercises
Bibliographical Notes
PART TWO PROCESS MANAGEMENT
Chapter 4 Processes
4.l Process Concept
4.2 Process Scheduling
4.3 Operations on Processes
4.4 Cooperating Processes
4.5 Interprocess Communication
4.6 Communication in Client -
Server Systems
4.7 Summary
Exercises
Bibliographical Notes
Chapter 5 Threads
5.I Overview
5.2 Multialreading Models
5.3 Threading Issues
5.4 Pthreads
5.5 Solaris 2 Threads
5.6 Window 2000 Threads
5.7 Linux Threads
5.8 Java Threads
5.9 Summary
Exercises
Bibliographical Notes
Chapter 6 CPU Scheduling
6.l Basic Concepts
6.2 Scheduling Criteria
6.3 Scheduling Algorithms
6.4 Multiple-Processor Scheduling
6.5 Real-Time Scheduling
6.6 Algorithm Evaluation
6.7 Process Scheduling Models
6.8 Summary
Exercises
Bibliographical Notes
Chapter 7 Process Synchronization
7.1 Background
7.2 The Critical-Section Problem
7.3 Synchronization Hardware
7.4 Semaphores
7.5 Classic Problems of
Synchronization
7.6 Critical Regions
7.7 Monitors
7.8 OS Synchronization
7.9 Atomic Transactions
7.IO Summary
Exercises
Bibliographical Notes
Chapter 8 Deadlocks
8.l System Model
8.2 Deadlock Characterization
8.3 Methods for Handling
Deadlocks
8.4 Deadlock Prevention
8.5 Deadlock Avoidance
8.6 Deadlock Detection
8.7 Recovery from Deadlock
8.8 Summary
Exercises
Bibliographical Notes
PART THREE STORAGE MANAGEMENT
Chapter 9 Memory Management
9.l Background
9.2 Swapping
9.3 Contiguous Memory Allocation
9.4 Paging
9.5 Segmentation
9.6 Segmentation with Paging
9.7 Summary
Exercises
Bibliographical Notes
Chapter IO Virtual Memory
l0.l Background
l0.2 Demand Paging
l0.3 Process Creation
l0.4 Page Replacement
l0.5 Allocation of Frames
l0.6 Thrashing
l0.7 Operating-System Examples
l0.8 Other Considerations
l0.9 Summary
Exercises
Bibliographical Notes
Chapter 1l File-System Interface
11.l File Concept
11.2 Access Methods
11.3 Directory Structure
1l.4 File-System Mounting
11.5 File Sharing
11.6 Protection
11.7 Summary
Exercises
Bibliographical Notes
Chapter 12 File-Syskem Implementation
12.l File-System Structure
12.2 File-System Implementation
12.3 Directory Implementation
12.4 Allocation Methods
12.5 Free-Space Management
12.6 Efficiency and Performance
12.7 Recovery
12.8 Log-Structured File System
12.9 NFS
12.IO Summary
Exercises
Bibliographical Notes
PART FOUR I/O SYSTEMS
Chapter 13 I/O Systems
13.l Overview
13.2 I/0 Hardware
13.3 Application I/0 Interface
13.4 Kernel I/O Subsystem
13.5 Transforming I/0 to Hardware
Operations
13.6 STREAMS
13.7 Performance
13.8 Summary
Exercises
Bibliographical Notes
Chapter 14 Mass-Storage Structure
14.I Disk Structure
14.2 Disk Scheduling
14.3 Disk Management
14.4 Swap-Space Management
14.5 RAID Structure
14.6 Disk Attachment
14.7 Stable-Storage Implementation
14.8 Tertiary-Storage Structure
14.9 Summary
Exercises
Bibliographical Notes
PART FIVE DISTRIBUTED SYSTEMS
Chapter 15 Distributed System Structures
I5.I Background
15.2 Topology
15.3 Network Types
15.4 Communication
15.5 Communication Protocols
15.6 Robustness
15.7 Design Issues
15.8 An Example: Networking
15.9 Summary
Exercises
Bibliographical Notes
Chapter 16 Distributed File Systems
16.1Background
16.2 Naming and Transparency
16.3 Remote File Access
16.4 Stateful Versus Stateless Service
16.5 File Replication
16.6 An Example: AFS
16.7 Summary
Exercises
Bibliographical Notes
Chapter 17 Distributed Coordination
17.I Event Ordering
17.2 Mutual Exclusion
17.3 Atomicity
17.4 Concurrency Control
17.5 Deadlock Handling
17.6 Election Algorithms
17.7 Reaching Agreement
17.8 Summary
Exercises
Bibliographical Notes
Chapter 19 Security
19.l The Security Problem
19.2 User Authentication
19.3 Program Threats
19.4 System Threats
19.5 Securing Systems and Facilities
19.6 Intrusion Detection
19.7 Cryptography
19.8 Computer-Security Classifications
19.9 An Example: Windows NT
19.IO Summary
Exercises
Bibliographical Notes
PART SEVEN CASE STUDIES
Chapter 20 The Linux System
20.l History
20.2 Design Principles
20.3 Kernel Modules
20.4 Process Management
20.5 Scheduling
20.6 Memory Management
20.7 File Systems
20.8 Input and Output
20.9 Interprocess Communication
20.IO Network Structure
20.II Security
20.12 Summary
Exercises
Bibliographical Notes
Chapter 21 Windows 2000
2l.l History
21.2 Desigrt Principles
21.3 System Components
21.4 Environmental Subsystems
21.5 File System
21.6 Networking
21.7 Programmer Interface
21.8 Summary
Exercises
Bibliographical Notes
Chapter 22 Historical Perspective
22.l Early Systems
22.2 Atlas
22.3 XDS-940
22.4 THE
22.5 RC 4000
22.6 CTSS
22.7 MULTICS
22.8 OS/360
22.9 Mach
22.IO Other Systems
Appendix A The FreeBSD System (contents online)
A.l History
A.2 Design Principles
A.3 Programmer Interface
A.4 User Interface
A.5 Process Management
A.6 Memory Management
A.7 File System
A.8 I/0 5ystem
A.9 Interprocess Communication
A.IO Summary
Exercises
Bibliographical Notes
Appendix B The Mach System (contents online)
B.l History
B.2 Design Principles
B.3 System Components
B.4 Process Management
B.5 Interprocess Communication
B.6 Memory Management
B.7 Programmer Interface
B.8 Summary
Exercises
Bibliographical Notes
Credits
Appendix C The Nachos System (contents online)
C.l Overview
C.2 Nachos Software Structure
C.3 Sample Assignments
C.4 Obtaining a Copy of Nachos
C.5 Conclusions
Bibliographical Notes
Credits
Bibliography
Credits
Index
20世纪末,以计算机和通信技术为代表的信息科学和技术对世界经济、科技、军事、教育和文化等产生了深刻影响。信息科学技术的迅速普及和应用,带动了世界范围信息产业的蓬勃发展,为许多国家带来了丰厚的回报。
进入21世纪,尤其随着我国加入WTO,信息产业的国际竞争将更加激烈。我国信息产业虽然在20世纪末取得了迅猛发展,但与发达国家相比,甚至与印度、爱尔兰等国家相比,还有很大差距。国家信息化的发展速度和信息产业的国际竞争能力,最终都将取决于信息科学技术人才的质量和数量。引进国外信息科学和技术优秀教材,在有条件的学校推动开展英语授课或双语教学,是教育部为加快培养大批高质量的信息技术人才采取的一项重要举措。
为此,教育部要求由高等教育出版社首先开展信息科学和技术教材的引进试点工作。同时提出了两点要求,一是要高水平,二是要低价格。在高等教育出版社和信息科学技术引进教材专家组的努力下,经过比较短的时间,第一批引进的20多种教材已经陆续出版。这套教材出版后受到了广泛的好评,其中有不少是世界信息科学技术领域著名专家、教授的经典之作和反映信息科学技术最新进展的优秀作品,代表了目前世界信息科学技术教育的一流水平,而且价格也是最优惠的,与国内同类自编教材相当。
这项教材引进工作是在教育部高等教育司和高教社的共同组织下,由国内信息科学技术领域的专家、教授广泛参与,在对大量国外教材进行多次遴选的基础上,参考了国内和国外著名大学相关专业的课程设置进行系统引进的。其中,JohnWiley公司出版的贝尔实验室信息科学研究中心副总裁Silberschatz教授的经典著作《操作系统概念》,是我们经过反复谈判,做了很多努力才得以引进的。William Stallings先生曾编写了在美国深受欢迎的信息科学技术系列教材,其中有多种教材获得过美国教材和学术著作者协会颁发的计算机科学与工程教材奖,这批引进教材中就有他的两本著作。留美中国学者Jiawei Han先生的《数据挖掘》是该领域中具有里程碑意义的著作。由达特茅斯学院Thomas Cormen和麻省理工学院、哥伦比亚大学的几位学者共同编著的经典著作《算法导论》,在经历了11年的锤炼之后于2001年出版了第二版。目前任教于美国Massachusetts大学的JamesKurose教授,曾在美国三所高校先后10次获得杰出教师或杰出教学奖,由他主编的《计算机网络》出版后,以其体系新颖、内容先进而倍受欢迎。在努力降低引进教材售价方面,高等教育出版社做了大量和细致的工作。这套引进的教材体现了权威性、系统性、先进性和经济性等特点。
教育部也希望国内和国外的出版商积极参与此项工作,共同促进中国信息技术教育和信息产业的发展。我们在与外商的谈判工作中,不仅要坚定不移地引进国外最优秀的教材,而且还要千方百计地将版权转让费降下来,要让引进教材的价格与国内自编教材相当,让广大教师和学生负担得起。中国的教育市场巨大,外国出版公司和国内出版社要通过扩大发行数量取得效益。
在引进教材的同时,我们还应做好消化吸收,注意学习国外先进的教学思想和教学方法,提高自编教材的水平,使我们的教学和教材在内容体系上,在理论与实践的结合上,在培养学生的动手能力上能有较大的突破和创新。
目前,教育部正在全国35所高校推动示范性软件学院的建设和实施,这也是加快培养信息科学技术人才的重要举措之一。示范性软件学院要立足于培养具有国际竞争力的实用性软件人才,与国外知名高校或著名企业合作办学,以国内外著名IT企业为实践教学基地,聘请国内外知名教授和软件专家授课,还要率先使用引进教材开展教学。
我们希望通过这些举措,能在较短的时间,为我国培养一大批高质量的信息技术人才,提高我国软件人才的国际竞争力,促进我国信息产业的快速发展,加快推动国家信息化进程,进而带动整个国民经济的跨越式发展。