出版时间:2012-5 出版社:清华大学出版社 作者:谌卫军,王浩娟 编著 页数:212
内容概要
本书是清华大学本科生专业课程“操作系统”的教材,主要介绍操作系统的基本概念和基本原理,包括进程管理、死锁、存储管理、i/o设备管理和文件系统等,内容涵盖了现代操作系统所应具备的各个功能模块。
操作系统是一门比较难的专业课程,内容较为单调枯燥、晦涩难懂,学生不易掌握。本书作者具有丰富的教学经验,曾荣获霍英东教育基金会高等院校青年教师奖、北京市高校青年教师教学基本功比赛一等奖等奖项,对教学规律、课程内容和学生特点有深入的理解。因此,在写作本书时,能够生动活泼、通俗易懂地讲述复杂的原理概念,这一点已经在教学实践中得到了充分的验证。另外,为了配合课程的内容,在每一章的末尾,附有大量的习题,以便渎者及时地复习相关的内容。
本书适合作为高等院校计算机、软件、自动化和电子等专业本科生的操作系统课程教材,也适合正在学习操作系统的广大科技人员、软件工程师和青少年学生参考。尤其是对于即将参加研究生入学考试的学生来说,本书是一本不可多得的参考书。
书籍目录
第1章操作系统概述
1.1操作系统的概念
1.2操作系统的发展历史
1.3操作系统的类型
1.4操作系统的硬件环境
1.4.1受保护的指令
1.4.2系统调用
1.4.3内存保护
1.4.4中断机制
习题
第2章进程管理
2.1进程
2.1.1为何引入进程
2.1.2什么是进程
2.1.3进程的特性
2.1.4进程的创建与终止
2.1.5进程的状态
2.1.6状态队列
2.2线程
2.2.1线程的概念
2.2.2线程的实现
2.2.3一个例子
2.3进程间通信与同步
2.3.1进程间通信方式
2.3.2进程的互斥
2.3.3基于关闭中断的互斥实现
2.3.5信号量
2.3.6进程的同步
2.4经典的ipc问题
2.4.1生产者—消费者问题
2.4.2哲学家就餐问题
2.4.3读者—写者问题
2.5进程调度
2.5.1关于调度的若干问题
2.5.2批处理系统中的调度算法
2.5.3交互式系统中的调度算法
2.5.4实时系统中的调度算法
习题
第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死锁的预防
习题
第4章存储管理
4.1单道程序存储管理
4.2分区存储管理
4.2.1固定分区存储管理
4.2.2可变分区存储管理
4.2.3可变分区的实现
4.2.4内存中的程序执行
4.2.5重定位和存储保护
4.3页式和段式存储管理
4.3.1页式存储管理
4.3.2段式存储管理
4.3.3页式管理与段式管理的比较
4.3.4段页式存储管理
4.4覆盖技术与交换技术
4.4.1覆盖技术
4.4.2交换技术
4.5虚拟存储技术
4.5.1程序的局部性原理
4.5.2虚拟存储技术的原理
4.5.3虚拟页式存储管理
4.5.4页面置换算法
4.5.5工作集模型
4.5.6虚拟页式的设计问题
4.5.7虚拟段式存储管理
习题
第5章i/o设备管理
5.1i/o硬件
5.1.1i/o设备的类型
5.1.2设备控制器
5.1.3i/o地址
5.2i/o控制方式
5.2.1程序循环检测方式
5.2.2中断驱动方式
5.2.3直接内存访问方式
5.3i/o软件
5.3.1i/o软件的接口
5.3.2i/o软件的层次结构
5.4磁盘
5.4.1磁盘的硬件
5.4.2磁盘格式化
5.4.3磁盘调度算法
5.4.4出错处理
习题
第6章文件系统
6.1文件
6.1.1文件的基本概念
6.1.2文件的使用
6.2目录
6.2.1目录的基本概念
6.2.2目录的结构
6.3文件系统的实现
6.3.1文件系统的布局
6.3.2文件的实现
6.3.3目录的实现
6.3.4系统调用的实现
6.3.5空闲空间管理
习题
参考文献
章节摘录
版权页: 插图: 1.1 操作系统的概念 请读者思考一个问题:在一个计算机系统当中为什么要有操作系统?没有操作系统行不行呢? 在一个计算机系统中,通常会包括以下一些部件:中央处理器(Central ProcessingUnit,CPU)、内存、磁盘(如软盘和硬盘)、输入设备(如键盘和鼠标)、输出设备(如显示器和打印机)。这些部件之间是通过总线Bus连接在一起的。 那么计算机系统的目标是什么呢?对于普通的终端用户来说,可能希望计算机系统能够为我们提供几个基本的功能:高性能的计算、数据的存储和管理以及数据的处理和呈现。以媒体播放为例,假设要在计算机上播放一部电影,由于电影文件的格式一般都是压缩的,如MPEG,因此在制作电影时,需要对原始数据进行压缩;而在播放电影时,需要对压缩后的数据进行解压缩,而这种压缩和解压缩的操作就需要大量的计算。另外,一部电影以什么样的形式存放在计算机当中,怎样对它进行管理,在播放电影时,如何在屏幕上显示一幅幅的图像,这些都是需要计算机系统帮我们解决的问题。那么计算机系统如何来实现这些目标呢? 计算机系统是通过各种应用软件来实现上述目标的,以电影播放为例,通常使用的播放软件是Windows媒体播放器、RealPlayer播放器等。一般来说,这些应用软件必须具备如下一些特点:一是功能正确、性能稳定;二是易于开发、易于维护;三是可重用性好。如果应用软件的开发是直接面向机器硬件的,需要直接对声卡、显卡、键盘等硬件进行编程,那么在这种情形下,这些目标容易实现吗? 如果直接面对硬件来开发应用软件,那么不仅需要知道应用软件本身的实现逻辑,包括该软件有多少个功能模块、每个模块的功能如何、相互关系如何等,除此之外,还要考虑许多与硬件相关的问题,例如,如何把键盘缓冲区中的数据复制到内存中?如何在屏幕上的某个位置显示一个字符?如何读取磁盘的第51个扇区?如果有多个程序同时需要使用CPU,怎么协调?总之,如果每个程序员在编写每一个应用程序的时候,都要去考虑这样一些琐碎的细节问题,那么编程的效率将会极其低下。 如何解决这个问题呢?通常的做法就是在硬件和应用软件之间引入一层专门的软件。其功能主要有两个:一是管理系统的各个部件,使它们能正常运转;二是给上层的应用软件提供一个易于理解和编程的接口。这一层软件就是本书的主题:操作系统。 操作系统是计算机系统中的一个系统软件,它是一些程序模块的集合,这些程序模块能够以尽量有效、合理的方式来管理和分配计算机的软硬件资源,合理地组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使用户能够灵活、方便、有效地使用计算机,使整个计算机系统能够高效地运行。 实际上,对于不同的人来说,他们眼中的操作系统是不一样的。对于操作系统的设计者来说,操作系统是系统资源的管理者,即如何管理CPU、内存和I/O设备等系统部件,使它们能正常运转。对于应用程序开发人员来说,操作系统是一组抽象的API( ApplicationProgramming Interface,应用程序编程接口)。例如,我们在Windows操作系统上编写应用软件时,使用的都是Windows的各种API函数,如MessageBox、CreateWindow和DrawText等。而对于普通的终端用户来说,操作系统则是一个操作环境,是执行各种操作的一个平台,用户可以在上面编写程序,也可以在上面执行各种各样的应用程序,如使用Word编写文档,使用QQ上网聊天,使用媒体播放器观看视频等。
编辑推荐
《重点大学计算机专业系列教材:操作系统》适合作为高等院校计算机、软件、自动化和电子等专业本科生的操作系统课程教材,也适合正在学习操作系统的广大科技人员、软件工程师和青少年学生参考。尤其是对于即将参加研究生入学考试的学生来说,《重点大学计算机专业系列教材:操作系统》是一本不可多得的参考书。
图书封面
评论、评分、阅读与下载