《国家精品课程配套教材:计算机操作系统》是2010年人民邮电出版社出版的图书,作者是庞丽萍。

书名

计算机操作系统

作者

庞丽萍

出版社

2012年3月1日

开本

16开

isbn

9787040338423

责任编辑

邹文波

标准书号

978-7-115-23249-6

《计算机操作系统》全面、系统地阐述了现代操作系统的基本原理、主要功能及实现技术。重点论述多用户、多任务操作系统的运行机制;系统资源管理的策略和方法;操作系统提供的用户界面。讨论了现代操作系统采用的并行处理技术和虚拟技术。《计算机操作系统》以linux系统为实例,剖析了其特点和具体的实现技术。《计算机操作系统》既可作为高等院校计算机和信息类本科、专科各专业和其他相关专业教材,亦可供从事计算机科学、工程、应用等方面工作的科技人员参考使用。

《计算机操作系统》:国家精品课程配套教材

《计算机操作系统》在内容的选取上注重基础性、实质性、先进性;框架的设计上注重逻辑性、完整性。将操作系统组织成一个逻辑清晰的整体并提炼了并发、共享的主线。一针对前者《计算机操作系统》论述了现代操作系统的进程概念、支持多进程运行必需的机制及功能针对后者论述了系统资源的管理策略与方法。全书以当前流行的linux操作系统为实例,剖析其特点和实现技术,寻操作系统原理的理论知识与实际的实现方法有机地结合、相互印证。《计算机操作系统》提出实现现代操作系统的关键技术是并行处理技术和虚拟技术,并力图以这种思想方法引领读者理解操作系统的原理、实施策略和方法。

注重基础性、实质性、先进性

以并行处理技术和虚拟技术为纲

剖析操作系统原理、实现策略和方法

庞丽萍,华中科技大学教授,博导,1967年毕业于北京邮电学院无线电专业。曾任国家教育部工科计算机基础课程教学指导委员会委员、中国计算机学会教育与培训专业委员会委员。[1]

主持的“操作系统原理”课程获2007年国家级精品课程;获2004年度宝钢教育奖优秀教师奖;1995年获首届“孺子牛金球奖”(香港柏宁顿(中国)教育基金会颁发)。

长期从事计算机操作系统、分布式计算机系统的研究和教学工作。主要研究方向为并行分布式系统。是“局域网上异构的分布式操作系统”、“基于unix的分布式操作系统”、“实时分布式unix操作系统实现技术”等预研及基金项目的负责人和研制者。并参加完成了211行动计划项目“集群超级网络服务器聚集技术”、973项目“下一代互联网信息存储的组织模式和核心技术研究”。编著了《操作系统原理》等11本教材。

第1章 绪论

1.1 操作系统在计算机系统中的地位

1.1.1 存储程序式计算机的结构和特点

1.1.2 操作系统与计算机系统各层次的关系

1.1.3 操作系统与计算机体系结构的关系

1.2 操作系统的形成和发展

1.2.1 操作系统发展的初级阶段

1.2.2 操作系统的形成

1.2.3 操作系统的进一步发展

1.3 操作系统的基本概念

1.3.1 操作系统的定义和特性

1.3.2 操作系统的资源管理功能

1.3.3 操作系统应解决的基本问题

1.4 操作系统的基本类型

1.4.1 批量操作系统

1.4.2 分时操作系统

1.4.3 实时操作系统

1.4.4 个人计算机操作系统

1.4.5 网络操作系统

1.4.6 分布式系统

1.5 操作系统采用的关键技术

1.5.1 操作系统采用的并行处理技术

1.5.2 操作系统采用的虚拟技术

1.6 linux系统概述

1.6.1 unix系统及其特点

1.6.2 linux系统形成和发展的基础

1.6.3 linux系统及其特点

习题1

第2章 操作系统的结构和硬件支持

2.1 操作系统虚拟机

2.2 操作系统的组织结构

2.2.1 操作系统的结构

2.2.2 运行时的组织结构

2.2.3 操作系统与计算机系统各层次的接口

2.3 处理机的特权级

2.3.1 处理机的状态及分类

2.3.2 特权指令

2.4 中断及其处理

2.4.1 中断的概念及类型

2.4.2 向量中断和探询中断

2.4.3 中断进入

2.4.4 软件中断的处理过程

2.5 linux系统的内核结构

2.6 linux系统的特权级与中断处理

2.6.1 linux系统的特权级

2.6.2 中断处理的上半部和下半部

2.6.3 中断处理下半部的实现机制

习题2

第3章 操作系统的用户接口

3.1 用户工作环境

3.1.1 操作系统提供的环境

3.1.2 操作系统的生成和系统初启

3.1.3 应用程序的处理

3.2 用户接口

3.2.1 用户接口的定义

3.2.2 操作系统提供的用户接口

3.3 系统功能调用

3.3.1 系统功能调用的定义

3.3.2 系统功能调用的实现

3.3.3 应用程序的编程接口

3.4 linux系统功能调用

3.4.1 linux系统功能调用的过程

3.4.2 linux系统功能调用的实现机制

3.4.3 增加一个新的系统调用的方法

3.4.4 从用户空间访问新的系统调用

习题3

第4章 进程及进程管理

4.1 进程的引入

4.1.1 顺序程序及特点

4.1.2 并发程序及特点

4.1.3 与时间有关的错误

4.2 进程的概念

4.2.1 进程的定义

4.2.2 进程的状态

4.2.3 进程控制块

4.3 进程控制

4.3.1 进程控制的概念

4.3.2 进程创建与撤销

4.3.3 进程阻塞与唤醒

4.4 进程之间的约束关系

4.4.1 进程竞争与合作

4.4.2 进程互斥的概念

4.4.3 进程同步的概念

4.5 同步机构

4.5.1 锁和上锁、开锁操作

4.5.2 信号灯和p、v操作-

4.6 进程互斥与同步的实现

4.6.1 上锁原语和开锁原语实现进程互斥

4.6.2 信号灯实现进程互斥

4.6.3 进程同步的实现

4.6.4 生产者——消费者问题

4.7 进程通信

4.7.1 进程通信的概念

4.7.2 进程通信方式

4.8 线程概念及特点

4.8.1 线程的概念

4.8.2 线程的特点与状态

4.9 linux系统的进程管理

4.9.1 linux系统的进程与线程

4.9.2 进程描述符及其主要内容

4.9.3 进程描述符的获得

4.9.4.linux系统进程状态的变迁

4.9.5 linux系统的进程创建和终止

4.9.6 linux系统的进程等待与唤醒

4.9.7 linux系统中线程的实现

习题4

第5章 资源分配与调度

5.1 资源管理概述

5.1.1 资源管理的目的和任务

5.1.2 虚拟资源

5.2 资源管理的机制和策略

5.2.1 资源分配机制

5.2.2 资源分配策略

5.3 死锁

5.3.1 死锁的定义与例子

5.3.2 产生死锁的原因和必要条件

5.3.3 系统模型和死锁的处理

5.3.4 解决死锁问题的策略

5.3.5 死锁的预防

5.3.6 死锁的避免

5.3.7 死锁的检测与忽略

习题5

第6章 处理机调度

6.1 处理机的多级调度

6.2 针对作业的调度

6.2.1 作业的状态

6.2.2 作业调度的功能与作业控制块

6.2.3 作业调度算法性能的衡量

6.2.4 作业调度算法

6.3 进程调度

6.3.1 调度份派结构

6.3.2 进程调度的功能

6.3.3 调度方式

6.3.4 进程优先数调度算法

6.3.5 循环轮转调度

6.3.6 多级反馈队列调度

6.3.7 调度用的进程状态变迁图

6.4 线程调度

6.5 linux系统的进程调度

6.5.1 进程调度程序的设计目标和特点

6.5.2 可变优先级

6.5.3 可变时间片

6.5.4 进程调度用的数据结构

6.5.5 linux系统的进程调度算法

习题6

第7章 主存管理

7.1 主存管理概述

7.1.1 主存分片共享

7.1.2 程序的逻辑组织

7.2 主存管理的功能

7.2.1 虚拟存储器

7.2.2 地址映射

7.2.3 主存分配

7.2.4 存储保护

73分区存储管理及其存在的问题

7.3.1 动态分区存储管理技术

7.3.2 分区分配机构

7.3.3 分区的分配与放置策略

7.3.4 碎片问题及拼接技术

7.4 页式存储管理

7.4.1 页式系统应解决的问题

7.4.2 页式地址变换

7.4.3 请调页面的机制

7.4.4 淘汰机制与策略

7.4.5 几种置换算法

7.5 段式系统和段页式系统

7.5.1 段式地址结构

7.5.2 段式地址变换

7.5.3 扩充段表功能

7.5.4.段页式存储管理

7.6 linux系统的存储管理

7.6.1 主存寻址

7.6.2 linux系统段页式地址变换

7.6.3 linux系统动态内核管理

7.6.4 linux系统的进程地址空间

习题7

第8章 设备管理

8.1设备管理概述

8.1.1 设备管理的功能

8.1.2 设备独立性

8.1.3 设备控制块

8.2 缓冲技术

8.2.1 缓冲概述

8.2.2 常用的缓冲技术

8.2.3 unix系统的缓冲区管理

8.3 设备分配

8.3.1 设备分配概述

8.3.2 独享分配

8.3.3 共享分配

8.3.4 虚拟分配

8.4 输入/输出控制

8.4.1 输入/输出硬件

8.4.2 输入/输出控制方式

8.4.3 输入/输出子系统

8.4.4 输入/输出控制的例子

8.5 linux系统的设备驱动

8.5.1 linux系统设备的分类

8.5.2 设备文件及其标识

8.5.3 linux块设备的处理

8.5.4 用于块设备处理的数据结构

8.5.5 输入/输出调度程序

8.5.6 策略例程

习题8

第9章 文件系统

9.1 文件系统概述

9.1.1 文件

9.1.2 文件系统

9.1.3 文件的组织

9.2 文件的逻辑结构和存取方法

9.2.1 文件的逻辑结构

9.2.2 文件的存取方法

9.3 文件的物理结构

9.3.1 连续文件

9.3.2 串联文件

9.3.3 索引文件

9.3.4 文件物理结构比较

9.3.5 unix系统的索引文件结构

9.4 文件目录

9.4.1 文件目录及其内容

9.4.2 一级文件目录及缺点

9.4.3 多级文件目录

9.5 共享与安全

9.5.1 文件共享与安全性的关系

9.5.2 文件共享的实现方法

9.5.3 存取权限的类型及其验证

9.6 文件操作与文件备份

9.6.1 文件操作

9.6.2 文件备份

9.7 linux文件系统

9.7.1 虚拟文件系统(virtual file system vfs)概述

9.7.2 vfs通用文件系统模型与vfs对象

9.7.3 与进程相关的数据结构

9.7.4 vfs系统调用的实现

9.7.5 ext2文件系统概述

9.7.6 ext2磁盘数据结构

9.7.7 ext2磁盘空间的管理

9.7.8 ext2主存数据结构

操作系统是计算机系统的核心软件,它管理和控制整个计算机系统,使之能正确、有效地运转,为用户提供方便的服务。操作系统复杂且神秘,使人们感觉它威力无比,能量无限。学习操作系统就是要揭开它神秘的面纱,剖析它的复杂性,理解并掌握它,为深入学习计算机专业、信息类专业知识,进一步提升软件开发能力、乃至系统软件开发能力打下坚实的基础。

要学懂操作系统,必须了解操作系统的特点;要写好操作系统教材,也必须根据操作系统的特点确定教材内容的选取和教材的编写方法。操作系统的特点是:①内容庞杂、涉及面广。操作系统是计算机系统的管理软件,它对计算机系统中的所有硬件和软件实施管理和控制,为用户提供良好的接口;②动态性、并行性。现代操作系统都是多用户、多任务操作系统,支持大量的活动同时运行,各种活动都处在不断变化的过程中;③实践性强。现在所有运转着的计算机都配置了操作系统。各种类型的操作系统正在运转,为用户提供服务;④技术发展快。操作系统的实现技术和方法在不断地变化。

针对操作系统的特点,本书在内容的选取上注重基础性、实质性、先进性;框架的设计上注重逻辑性、完整性,力图将操作系统内容组织成一个逻辑清晰的整体。在这一整体中始终贯穿着并发、共享的主线。在这一主线下,有一条动态的、进程活动轨迹,还有一个系统资源管理的剖面。针对动态的进程活动,本书论述了操作系统需要提出的重要的概念——进程;支持多进程运行必需的机制(包括数据结构、实施进程控制与进程调度的设施)及功能。对系统资源管理则根据多用户、多任务环境的特点,讨论系统资源的共享,资源管理的策略与方法。为解决操作系统实践性强的问题,本书探讨了操作系统原理与实际运行的操作系统之间的关系:原理是实际操作系统采用的各种技术的提炼;实际操作系统采用的技术和方法是原理内容的具体体现。本书以当前流行的linux操作系统为实例,剖析其特点和实现技术,使操作系统原理中的理论知识与操作系统实例的具体实现方法有机地结合、相互印证。随着操作系统技术的不断发展,操作系统教材在抓住基础性的同时,也需要不断地更新。本书提出了实现现代操作系统的关键技术是并行处理技术和虚拟技术,并力图以这种思想方法引领读者思考、理解操作系统的原理和它实施的策略和方法。

本书的论述力求深入浅出,通俗易懂,使读者便于阅读和理解。为了让读者能建立操作系统整体轮廓,抓住操作系统的主线,在第1章绪论中讨论了操作系统在计算机系统中的地位、操作系统应解决的基本问题、操作系统采用的关键技术。这些内容在读者还没有了解操作系统时是不能很好地理解的。但这些内容可以作为指导引领读者去理解后面各章的相关内容。当读者学完了全书内容,再回头看第l章,就会理解现代操作系统的最基本的、最关键的实现技术。

书中所有算法采用类c的伪码来描述。因为,这种语言与pdl语言十分相似,它含有更多的自然语言,这样使读者容易掌握算法的功能。