基本信息
- 原书名:Operating Systems: A Spiral Approach
- 原出版社: McGraw-Hill Science/Engineering/Math

【插图】

编辑推荐
《操作系统实用教程:螺旋方法(英文版)》特色:对于所讨论的操作系统。书中适当介绍一些当时的行业历史,有时还涉及关键的企业或个人,这样能帮助学生更好地理解操作系统。涵盖在设备中的现代操作系统,而不仅仅是通常的计算机中的操作系统。讨论算法级解决方案,而没有列出实际代码。便于使用不同编程语言实现。每章末都有一些练习题,便于学生巩固所学知识。
内容简介
计算机书籍
本书采用螺旋方法和深度导向方法讲解操作系统原理。首先介绍一些基本的背景和定义,然后描述一个非常简单的操作系统,之后将它演化为具有更多特性的更复杂的操作系统。这样循序渐进、逐步深入,可以使学生更透彻地理解操作系统的本质。
本书分为六个部分:第一部分介绍一些总体背景信息;第二部分采用螺旋方法,按照复杂度递增的次序,介绍五类操作系统;第三部分到第五部分采用深度导向方法详细地探讨操作系统的各个主题:从进程到内存管理,再到文件系统;第六部分通过三个实例更深入地研究这些系统的特性是如何实现的。
本书特色
·对于所讨论的操作系统,书中适当介绍一些当时的行业历史,有时还涉及关键的企业或个人,这样能帮助学生更好地理解操作系统。
·涵盖在设备中的现代操作系统,而不仅仅是通常的计算机中的操作系统。
·讨论算法级解决方案,而没有列出实际代码,便于使用不同编程语言实现。
·每章末都有一些练习题,便于学生巩固所学知识。
作译者
A. Gil Carrick,曾执教于得克萨斯大学阿灵顿分校。他是计算机科学荣誉协会Upsilon Pi Epsilon的成员。
David Levine,一直讲授操作系统、软件工程、网络和计算体系结构等课程。他的研究兴趣包括移动计算、移动对象和分布式计算。
目录
Part 1 Operating Systems Overview and Background 1
Chapter 1 Getting Started 3
1.1 Introduction 4
1.2 What Are Operating Systems All about? 5
1.3 User versus System View of an OS 6
1.4 Some OS Terms, Basic Concepts,and Illustrations 10
1.5 A Small Historical Diversion 15
1.6 Summary 17
Chapter 2 Operating System Concepts, Components,and Architectures 19
2.1 Introduction: What Does the OS Do? 20
2.2 Resources Managed by the OS and Major OS Modules 22
2.3 The Process Concept and OS Process Information 25
2.4 Functional Classes of OSs 29
2.5 Architectural Approaches to Building an OS 33
2.6 Some OS Implementation Techniques and Issues 35
2.7 Minimalist versus Maximalist Approaches to OS Functionality and Backward mpatibility 40
2.8 Summary 42
Part 2 Building Operating Systems Incrementally: A Breadth-Oriented Spiral Approach 45
Chapter 3 A Simple, Single-Process Operating System 47
前言
We have long felt that the traditional approach to teaching about Operating Systems (OSs) was not the best approach. The purpose of this book is to support a different approach to this task. When studying any complex domain of knowledge, the order in which one learns the hierarchy of principles, laws, ideas, and concepts can make the process easier or moi'e difficult. The most common technique is to partition the subject into major topics and then study each one in great detail. For OSs, this has traditionally meant that after a brief introduction to some terms and an overview, a student studied isolated topics in depth--processes and process management, then memory management, then file systems, and so on. We can call this a depth-oriented approach or a vertical approach. After learning a great mass of unrelated details in these isolated topic areas, the student then examined case studies, examples of real OSs, and finally saw how the different topics fit together to make a real OS.
We believe that a better model is that followed by children when learning a language: learn a few words, a little grammar, a little sentence structure, and then cycle (or spiral) through; more words, more grammar, more sentence structure. By continuing to spiral through the same sequence, the complexity of the language is mastered. We can call this a breadth-oriented or spiral approach.
We have taken this approach to the subject of OSs. The first few chapters give some basic background and definitions. We then begin to describe a very simple OS in a simple system--early PCs--and evolve toward more complex systems with more features: first limited background tasks (such as simultaneous printing), then multitasking, and so on. In each case we try to show how the increasing requirements caused each system to be designed the way it was. This is not specifically a his-torical order of OS development. Rather, we choose a representative system at each complexity level in order to see how the different OS components interact with and influence one another. It is our belief that this approach will give the student a greater appreciation of how the various features of each level of OS were put together.
Part of the motivation for this approach has to do with why Computing Science students are told they must study OSs at all. It is highly unlikely that many of these students will work on the development of OSs. However, virtually every system that they do work on will run on top of an OS, though perhaps a very few will work on embedded systems with no OS. For the rest of them, the OS will stand between the applications and the hardware, and failure to thoroughly understand the nature of the OS will mean that these applications will be underperforming at best and hazardous at worst. We believe that our approach will lead students to a better understanding of the entire architecture of modern OSs than does the traditional approach.
THE ORGANIZATION OF THE BOOK
In Part 1 of the book we give some general background information. This infor-mation will cover basic principles of OSs and show several different views of an OS. It will also include an overview of typical computer hardware that an OS controls. Another chapter addresses such basic concepts as processes, multipro-gramming, time sharing, resource management, and different approaches to OS architecture.
Then in Part 2 of the book, we will cover five types of operating systems in increasing order of complexity, our spiral approach, as follows:
1. A simple single-process OS (CPM)
2. A more complex OS (Palm OS), which allows simple system multitasking
3. An OS with full multitasking for a single user (Apple Mac OS, pre-OS X)
4. An OS that supports multiple users (Linux)
5. A distributed OS (mostly Globus)
In each case we have selected an OS that is typical of the class on which to base the discussion so as to make it more concrete. This selection was made with an eye to practicality. We first discuss simple systems in terms of process, memory, file,and I/O management, and then (slowly) move to more complex systems, gradu-ally introducing such concepts as multitasking, time sharing, networking, security,and other issues. Occasionally we will also mention other well-known OSs that are examples of a class, such as MS-DOS in Chapter 3 and the Symbian OS in Chapter 4.
In Parts 3-5 of the book, we move to an in-depth approach of covering each OS topic in more detail: from processes to memory management to file systems. We also discuss many recent issues in operating systems: threading, object orientation, secu-rity, and approaches to parallel and distributed systems. In these chapters we revisit the sample systems discussed in Part 2 and explain the mechanisms in more detail,especially for the modern OSs.
In Part 6 we look more closely at several OSs in what are typically called case studies. Now that we know more about the details, we look at some systems in more depth and see how some features were implemented. In two cases we are revisiting more closely OSs that were covered in Part 2.
An appendix covers basic computer hardware architecture for those institutions that do not require such a course as a prerequisite for an Operating Systems course. It can also be used as a reference for those who need to review a specific topic.
THE STYLE OF THE BOOK
·We use a conversational style to avoid boring the students with excessive pedantry.
·We avoid the use of excessive formalisms. A more formal presentation is pro-vialed where needed. This choice stems from our belief that most students witl not develop OSs, but rather will use them to support applications.