操作系统教程
分類: 图书,计算机/网络,操作系统/系统开发,其他,
作者: 宗大华,宗涛 编著
出 版 社: 人民邮电出版社
出版时间: 2008-11-1字数: 433000版次: 1页数: 257印刷时间: 2008/11/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787115187901包装: 平装编辑推荐
本书作者自上世纪70年代初开始接触计算机,随之长期从事有关操作系统的教学和科研工作,具有丰富的教学经验。本书主要对操作系统的基本概念、功能、实现原理,以及在操作系统发展过程中起重要作用的Windows、Linux、MS-DOS的特点和实现技术进行讲述和介绍。
作者希望把本书编写成一本浅显易懂的、适合大学本科学生使用的操作系统基础教材。本书按照本科教学要求选取内=容,以浅显流畅的文笔、精炼而准确地描述操作系统的基本概念、原理、管理策略。
本书在每章后面配合教学内容给出大量习题。可供读者自测使用。
本书将为授课教师提供完整的教学用PPT课件和习题答案,有需要者请登录人民邮电出版社教学服务与资源网。
内容简介
操作系统是现代计算机系统中最重要和最基本的系统软件。本书共9章。第1章概述操作系统在计算机系统中的地位、基本功能以及分类;第2章到第5章从资源管理的角度出发,讲述操作系统对处理机、存储器等软硬件资源的各种管理策略;第6章集中介绍资源管理中的互斥、同步问题,以及解决办法;第7章到第9章对3个典型操作系统Windows、Linux、MS-DOS做简略的剖析,以求加深对操作系统原理的理解。
本书不追求深奥的理论,而是突出实用性;不追求玄妙的抽象,而是注重简明性;不追求内容的全面,而是关注基本性。本书可作为高等院校理工科操作系统课程的教材。
作者简介
宗大华,毕业于南开大学数学系,从1978年开始一直从事与操作系统有关的教学工作,任北京工业大学计算机系、计算机学院教授,教学副系主任、副院长;多次获得国家科技进步二等奖,北京市科学技术成果三等奖;1988年受聘于第十一届亚运会计算机工程分指挥部TIS系统副主任设计师,该工程获1991年北京市自然科学与技术进步(集体)特等奖。出版过《操作系统》、《汇编语言程序设计》、《C语言程序设计教程》、《数据结构》等20余部图书。其中《操作系统》被评为普通高等院校“十五”和“十一五”国家级规划教材。
目录
第1章操作系统概述
1.1计算机系统
1.1.1硬件与软件
1.1.2操作系统的形成
1.2操作系统的定义与功能
1.2.1操作系统的定义
1.2.2操作系统的功能
1.3操作系统的种类
1.3.1批处理操作系统
1.3.2分时操作系统
1.3.3实时操作系统
1.3.4网络操作系统
习题
第2章处理机管理
2.1进程
2.1.1多道程序设计
2.1.2进程的定义
2.1.3进程的特征
2.1.4进程的基本状态
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.5作业调度
2.5.1用户与操作系统的两种接口
2.5.2作业与作业管理
2.5.3作业的调度算法
习题
第3章存储管理
3.1固定分区存储管理
3.1.1地址重定位
3.1.2地址的静态重定位
3.1.3单一连续分区存储管理
3.1.4固定分区存储管理
3.2可变分区存储管理
3.2.1可变分区存储管理的基本思想
3.2.2地址的动态重定位
3.2.3空闲区的合并
3.2.4分区的管理与组织方式
3.2.5空闲分区的分配算法
3.3分页式存储管理
3.3.1分页式存储管理的基本思想
3.3.2分页式存储管理的地址转换
3.3.3内存块的分配与回收
3.4分段式及段页式存储管理
3.4.1分段式存储管理的基本思想
3.4.2分段式存储管理的地址转换过程
3.4.3存储保护与共享
3.4.4段页式存储管理的基本思想
3.4.5段页式存储管理的地址转换过程
3.5虚拟存储与请求页式存储管理
3.5.1虚拟存储器的概念
3.5.2请求分页式存储管理的基本思想
3.5.3缺页中断的处理
3.5.4页面淘汰算法
习题
第4章设备管理
4.1概述
4.1.1计算机设备的分类
4.1.2设备管理的目标与功能
4.2输入/输出的处理步骤
4.2.1I/O请求的提出
4.2.2对I/O请求的管理
4.2.3I/O请求的具体实现
4.3设备的分配与调度算法
4.3.1管理设备时的数据结构
4.3.2独享设备的分配
4.3.3共享磁盘的调度
4.4数据传输的方式
4.4.1设备控制器
4.4.2程序循环测试方式
4.4.3中断方式
4.4.4直接存储器存取方式
4.4.5通道方式
4.5设备管理中的若干技术
4.5.1I/O缓冲技术
4.5.2虚拟设备与SPOOLing技术
4.5.3磁盘数据的组织技术
习题
第5章文件管理
5.1文件的结构
5.1.1文件与文件系统
5.1.2文件的逻辑结构
5.1.3文件的物理结构
5.1.4文件的存取
5.2磁盘存储空间的管理
5.2.1位示图
5.2.2空闲区表
5.2.3空闲块链
5.3文件管理与目录结构
5.3.1文件控制块与目录
5.3.2目录的层次结构
5.3.3“按名存取”的实现
5.4文件的使用
5.4.1文件的共享
5.4.2文件的保护
5.4.3文件的操作
习题
第6章进程间的制约关系
6.1进程间的制约关系
6.1.1与时间有关的错误
6.1.2竞争资源——互斥
6.1.3协同工作——同步
6.2信号量与P、V操作
6.2.1信号量与P、V操作的定义
6.2.2用P、V操作实现互斥
6.2.3用P、V操作实现同步
6.2.4用P、V操作实现资源分配
6.2.5互斥/同步的样例分析
6.3死锁、高级进程通信
6.3.1死锁与产生死锁的必要条件
6.3.2死锁的预防
6.3.3死锁的避免
6.3.4死锁的检测并恢复
6.3.5高级进程通信
习题
第7章实例分析:Windows 2000操作系统
7.1Windows 2000的处理机管理
7.1.1Windows 2000的结构
7.1.2Windows 2000的进程和线程
7.1.3Windows 2000的线程调度
7.2Windows 2000的存储管理
7.2.1Windows 2000进程的空间布局
7.2.2Windows 2000的地址变换机构
7.2.3Windows 2000对内存的管理
7.2.4Windows 2000的页面调度
7.3Windows 2000的文件管理
7.3.1Windows 2000文件系统综述
7.3.2NTFS的主控文件表(MFT)
7.3.3NTFS文件和目录的结构
7.3.4NTFS对可恢复性的支持
7.4Windows 2000的设备管理
7.4.1Windows 2000设备管理综述
7.4.2Windows 2000单层驱动程序的I/O处理
7.4.3Windows 2000两级中断处理过程
习题
第8章实例分析:Linux操作系统
8.1Linux的处理机管理
8.1.1Linux的进程
8.1.2Linux的进程调度
8.1.3Linux进程间的通信——消息队列
8.2Linux的存储管理
8.2.1Linux的虚拟存储空间
8.2.2管理虚拟存储空间的数据结构
8.2.3管理内存空间的数据结构
8.2.4内存区的分配和页面淘汰策略
8.3Linux的文件管理
8.3.1Linux文件系统的构成
8.3.2Ext2对磁盘的组织
8.3.3Ext2文件的物理结构
8.3.4虚拟文件系统VFS的数据结构
8.4Linux的设备管理
8.4.1Linux设备管理概述
8.4.2Linux对字符设备的管理
8.4.3Linux对块设备的管理
习题
第9章实例分析:MS-DOS操作系统
9.1MS-DOS的处理机管理
9.1.1MS-DOS的基本组成
9.1.2MS-DOS的进程
9.1.3MS-DOS的作业管理
9.2MS-DOS的存储管理
9.2.1MS-DOS对常规内存的管理
9.2.2PC机地址的构成——“分段”表示法
9.2.3MS-DOS的各种内存区域
9.3MS-DOS的文件管理
9.3.1MS-DOS文件管理综述
9.3.2MS-DOS的文件分配表(FAT)
9.3.3MS-DOS的树型目录结构
9.3.4MS-DOS文件访问的实现
9.4MS-DOS的设备管理
9.4.1MS-DOS设备管理综述
9.4.2MS-DOS设备驱动程序的构成
9.4.3MS-DOS对块设备的管理
9.4.4MS-DOS对字符设备的管理
习题
参考文献
书摘插图
第1章操作系统概述
1.1 计算机系统
1.1.1硬件与软件
一个完整的计算机系统由硬件系统和软件系统两大部分组成。
计算机硬件系统是各种物理设备的总称,是完成工作任务的物质基础。按功能划分,可以把硬件划分成5大块:运算器、控制器、存储器、输入设备以及输出设备,其中运算器和控制器常被称为中央处理机(CPU)。图中带箭头的实线代表控制信号,带箭头的细虚线代表数据传输。
计算机软件系统是指程序和与程序相关的文档的集合,按功能划分,软件可分为系统软件和应用软件。系统软件是指由计算机生产厂家提供、具有通用功能的软件,如操作系统、语言处理程序(如C语言编译程序)、数据库管理系统以及各种完成服务功能的程序。应用软件是指为解决实际问题而研制的那些软件,涉及计算机应用的各个领域,如各种管理软件、用于工程计算的软件包、辅助设计软件以及过程控制软件等。
1.1.2操作系统的形成
通常,把未配置任何软件的计算机称为“裸机”。如果让用户直接面对裸机,事事都深入到计算机的硬件中去,那么他们的精力就绝对不可能集中在如何用计算机解决自己的实际问题上,计算机本身的效率也不可能充分发挥出来。
举例说,要在一台PC上进行硬盘读操作,使用者至少应该把磁盘地址、内存地址、字节数、操作类型(读/写)等具体值装入到特定的硬件寄存器中,否则根本谈不上完成预定的输入/输出任务。实际上,对许多I/O设备而言,往往会要求比这更多的操作参数。在输入/输出结束后,还需要对设备返回的诸多状态加以判别。
又如,某计算机内存储器可供用户使用的容量为576KB,若现在装入的用户程序占用其中的360KB,那么余下的216KB被闲置了。想象一下,如果能够在内存中装入多个程序,如在216KB中再装一个需要存储量116KB的程序,当第一个程序等待输入/输出完成暂时不占用CPU时,让第二个程序投入运行,那么,整个计算机系统的利用率就会比原来的大为提高。理由如下:
(1)内存浪费得少了,原来浪费216KB,现在只浪费100KB;
(2)CPU比原来更加忙碌了,在第一个程序等待输入/输出完成时,原来CPU只能够采取空转的方式来等待,现在可以让它去执行第二个程序;
(3)在CPU执行第二个程序时,它与第一个程序启动的输入/输出设备呈现并行工作的态势。
可见,为了从复杂的硬件控制中脱出身来,合理有效地使用计算机系统,给用户使用计算机提供必要的方便,最好的解决办法就是开发一种软件,通过它来管理整个系统,发挥系统的潜在能力,达到扩展系统功能、方便用户使用的目的。实际应用的需要,就是“操作系统”这一软件呼之欲出的根本原因。
……