描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787121278464丛书名: 普通高等教育”十三五”规划教材
编辑推荐
选择具有代表性的主流操作系统Linux和Windows作为案例贯穿全书,系统地介绍了现代操作系统的经典理论和*应用技术。
内容简介
操作系统是计算机系统的核心和灵魂,是其他软件运行的支撑环境,其性能的优劣直接影响整个计算机系统的性能。本书采用理论与实践相结合的方式,系统地介绍了现代操作系统的经典理论和*应用技术,选择具有代表性的主流操作系统Linux和Windows作为案例贯穿全书。 全书共分8章,基本覆盖了操作系统系统的基本概念、设计原理和实现技术,尽可能系统全面地介绍了现代操作系统的基本原理和实现技术。其中,第1章介绍了操作系统的概念、发展历史、操作系统结构和设计的相关问题;第2章讨论了操作系统的工作环境和用户界面;第3章和第4章详细阐述了处理器管理、进程同步、通信机制及死锁;第5章~第7章分别介绍了操作系统的存储管理、文件管理和设备管理功能;第8章分析了操作系统的安全和保护问题。
目 录
第1章 操作系统概论 11.1 概述 11.1.1 操作系统的地位 11.1.2 操作系统的目标 31.1.3 操作系统的作用 31.1.4 操作系统的特征 41.1.5 操作系统的功能 61.2 操作系统的形成和发展 81.2.1 人工操作阶段 81.2.2 管理程序阶段 91.2.3 多道批处理 101.2.4 分时系统与实时系统的出现 121.2.5 操作系统的进一步发展 14案例研究:Linux和Windows操作系统 161.3 操作系统结构 181.3.1 操作系统的设计 181.3.2 操作系统结构的类型 19案例研究:Windows Vista和Linux系统结构 231.4 总结与提高 25习题1 25第2章 操作系统用户工作环境的界面 262.1 操作系统用户工作环境 262.1.1 操作系统的工作模式 272.1.2 系统的生成 282.1.3 系统的启动 28案例研究:Linux系统启动过程 291.2 操作系统用户界面 312.2.1 操作系统提供的服务 312.2.2 命令接口 32案例研究:Linux系统的Shell程序 332.2.3 图形用户接口 34案例研究:Windows Explore VS. Linux Shell 342.2.4 程序接口 35案例研究:Linux操作系统的系统调用号和系统调用表 392.3 总结与提高 40习题2 41实验1 向Linux内核增加系统调用 41第3章 处理器管理 453.1 进程的概述 453.1.1 程序的执行方式 453.1.2 进程的概念 463.1.3 进程的状态 483.1.4 进程描述 50实例分析:Linux系统的进程 523.2 进程的控制 553.2.1 进程控制机构 553.2.2 进程操作 56实例研究:在Linux和Windows系统中创建进程 573.3 线程 603.3.1 线程的概念 603.3.2 线程的实现 623.3.3 多线程模型 643.3.4 线程池 65实例研究:Windows Server 2003和Linux线程 663.4 处理器调度 693.4.1 处理器调度的层次 693.4.2 进程调度 703.4.3 选择调度算法的准则 713.5 调度算法 723.5.1 先来先服务调度算法 723.5.2 短作业优先调度算法 733.5.3 优先级调度算法 733.5.4 轮转法调度 743.5.5 多级队列调度 753.5.6 多级反馈队列调度 763.5.7 高响应比优先调度 773.6 多处理器调度和实时调度 773.6.1 多处理器调度 773.6.2 实时调度 78实例研究:Windows Server 2003 和Linux进程调度 783.7 总结与提高 82习题3 83实验2 Shell编程 84实验3 Windows多线程控制台程序 87第4章 进程同步与死锁 914.1 进程同步和互斥 914.1.1 进程的同步 924.1.2 进程的互斥 924.1.3 信号量机制 944.2 经典同步问题 1004.2.1 生产者-消费者问题 1004.2.2 读者-写者问题 1024.2.3 哲学家进餐问题 1034.2.4 理发师问题 1044.3 管程 1054.3.1 管程的基本概念 1054.3.2 条件变量 1064.3.3 利用管程解决生产者-消费者问题 1074.4 操作系统同步实例分析 1084.4.1 Windows Server 2003中的进程同步 1094.4.2 Linux中的进程同步 1104.5 进程通信 1114.5.1 进程通信的方式 1114.5.2 消息传递系统 1124.5.3 消息缓冲队列通信机制 1154.5.4 客户机/服务器系统通信 116实例研究:Windows和Linux系统进程通信机制 1184.6 死锁 1274.6.1 死锁的概念 1274.6.2 死锁产生的原因和必要条件 1284.6.3 死锁的描述 1294.6.4 处理死锁的方法 1314.7 死锁的预防和避免 1314.7.1 死锁的预防 1314.7.2 死锁的避免 1334.8 死锁的检测和解除 1374.8.1 死锁的检测 1374.8.2 死锁的解除 1404.9 总结与提高 141习题4 142实验4 有限缓冲区问题 144第5章 存储管理 1495.1 存储管理的功能 1495.1.1 用户程序的处理过程 1505.1.2 存储管理的功能 1515.2 连续内存分配技术 1555.2.1 分区管理基本原理 1555.2.2 分区的分配与回收 1575.2.3 碎片问题 1595.3 内存不足时的管理 1605.3.1 覆盖 1605.3.2 交换 161实例分析:UNIX和Windows 2000中的交换技术 1625.4 基本分页存储管理技术 1625.4.1 分页存储管理的基本原理 1635.4.2 地址映射 1645.4.3 页表的结构 1665.4.4 页面的共享 1675.5 分段存储管理技术 1685.5.1 分段存储管理的基本原理 1685.5.2 地址转换 1695.5.3 段的共享和保护 1695.5.4 段页式存储管理 171段页式技术实例:Intel Pentium处理器 1735.6 虚拟存储器 1745.6.1 虚拟内存 1755.6.2 虚拟内存的特征 1765.7 请求分页存储管理技术 1765.7.1 请求分页存储管理基本原理 1765.7.2 页面置换算法 1785.7.3 页面分配和置换 1845.7.4 工作集模型 1865.8 存储管理实例 1875.8.1 Windows Server 2003内存管理 1875.8.2 Linux操作系统的存储管理 1915.9 总结与提高 198习题5 198第6章 文件管理 2016.1 文件的概念 2016.1.1 文件及其分类 2016.1.2 文件属性 2036.1.3 文件组织 2036.1.4 文件访问方法 2056.2 目录结构 2066.2.1 文件控制块和文件目录 2066.2.2 单级目录 2086.2.3 二级目录 2086.2.4 树形目录 209实例研究:DOS和UNIX的目录结构 2116.2.5 目录的实现 2126.3 文件和目录操作 2136.3.1 文件操作 213实例研究:Linux和Windows 系统的文件操作 2146.3.2 目录操作 2186.4 文件系统实现 2186.4.1 文件系统结构 2196.4.2 文件系统的实现 2206.4.3 文件存储空间的分配 2216.4.4 空闲空间的管理 2266.5 文件共享和保护 2286.5.1 文件的共享 229实例研究:Linux中的文件共享 2306.5.2 文件的保护 2316.5.3 文件系统的可靠性 2326.6 Windows和Linux的文件系统 2336.6.1 Windows Server 2003文件管理 2336.6.2 Linux文件管理 2396.7 总结与提高 244习题6 245实验5 简单文件系统的实现 246第7章 设备管理 2507.1 设备管理的概念 2507.1.1 设备的分类 2507.1.2 设备管理的功能和任务 2517.1.3 I/O系统结构 2527.1.4 设备控制器 2527.2 I/O控制方式 2547.2.1 轮询方式 2547.2.2 中断方式 2557.2.3 DMA方式 2567.2.4 通道控制方式 2587.3 中断技术 2607.3.1 中断的基本概念 2607.3.2 中断的分类与优先级 2617.3.3 软中断 2617.3.4 中断处理过程 2627.4 缓冲技术 2637.4.1 缓冲的引入 2637.4.2 缓冲的种类 2637.4.3 缓冲池的管理 2647.5 设备分配 2667.5.1 设备分配的数据结构 2667.5.2 设备分配的原则和策略 2677.5.3 设备分配技术 2697.5.4 SPOOLing系统 2697.6 I/O软件原理 2707.6.1 I/O软件的设计目标和原则 2717.6.2 I/O中断处理程序 2717.6.3 设备驱动程序 2717.6.4 与硬件无关的I/O软件 2737.6.5 用户空间的I/O软件 2747.7 磁盘调度和管理 2757.7.1 磁盘的结构 2757.7.2 磁盘调度 2767.7.3 磁盘管理 2807.8 Windows I/O系统和Linux 的设备管理 2817.8.1 Windows Server 2003的I/O系统 2817.8.2 Linux的设备管理 2857.9 总结与提高 287习题7 288实验6 软盘驱动程序 2
前 言
操作系统课程是高等学校计算机科学与技术、软件工程专业的核心课程,也是网络工程、信息安全和自动化等专业学生必须学习和掌握的基础课程。该课程在计算机软硬件课程的设置上起着承上启下的作用,也是打好软件基础的课程,其内容涉及理论、算法、技术和实现等,集成了程序设计知识、数据结构、计算机组成和体系等多种不同门类的计算机专业知识,在整个计算机专业课程体系中扮演着核心角色。因此,操作系统知识的学习对于从事计算机技术的人员来说是非常重要的。但是,在教学实践中,可以发现学生学习和理解这门课程有一定的难度,其原因主要有以下几点。(1)操作系统是计算机硬件上的层软件,负责管理计算机资源,为其他软件提供运行环境,其涉及计算机软、硬件的诸多知识。(2)课程内容较抽象。尽管大家使用计算机时都要与操作系统交互,但是对什么是操作系统、操作系统能够做什么及怎样做等问题并不是很清楚,因而对操作系统倍感抽象、费解。(3)发展变化快。计算机操作系统在用户需求的推动下,随着计算机体系的发展而不断发展,是计算机软件中变异、更新快的软件,因而加重了学生的学习难度。为了解决这些问题,提高操作系统课程的教学质量,在广泛汲取国内外优秀教材和研究成果的基础上,借鉴、参照ACM/IEEE-CS2002和CCC2002中操作系统课程教学的相关内容,结合多年操作系统课程的教学经验,编者编写了本书。本书采用“理论-技术-实践”的体系来安排教学内容,以降低问题难度,提高学生学习兴趣,培养学生实践能力和创新意识。与国内相关书籍相比,本书具有以下特点。(1)理论联系实际。本书将操作系统原理讲解和实际操作系统结合起来,在介绍原理之后,给出了该原理在实际商用操作系统中的应用,从而把理论与实践有机地结合起来,使抽象的理论更利于理解和消化,提高了学生的学习兴趣。(2)实践性强。本书结合教学内容提供了相关编程实例和技术,给出了部分程序的完整C语言代码,精选了部分与课程内容相关的实验项目。每个实验项目都给出了相关背景知识。读者通过阅读这些背景知识,基本上可以完成这些实验。通过完成这些实验,一方面可以加深读者对操作系统原理的理解,另一方面可以提高学生系统程序设计和分析的能力。(3)内容新颖。本书在选材过程中,根据现代操作系统的发展要求,选择近几年出现的新思想、新概念、新技术,在一定程度上反映了操作系统的发展方向,以提高学生适应迅速变化的操作系统发展的能力,了解操作系统的发展趋势,培养学生的创新能力。(4)适用面广。本书做到了理论与实践的有机结合,既讲述了操作系统的基本原理,又介绍了相关的编程知识和技术,既可以作为教材使用,又可以作为计算机工程人员的参考书。(5)便于教学和自学。本书每章都给出了学习要求和建议,课后精选大量习题来巩固课程内容,给出了一些扩展阅读材料,利于教师教学和读者自学。全书共分8章,基本上涵盖了现代操作系统的基本概念、设计原理和实现技术。第1章介绍了操作系统的概念、功能、特征、发展历史和结构;第2章分析了操作系统的工作环境和操作系统提供的服务和接口;第3章~第7章分别介绍了处理器管理与调度、进程同步和死锁、存储管理、文件管理和I/O管理;第8章叙述了操作系统与计算机系统的安全和保护问题。本书以普通高校计算机科学与技术及其相关专业本、专科学生为主要对象,也可以作为自学和考研参考书。由于各高校的不同专业教学安排要求和教学时间有一定的差别,因此,在本书教学内容上可酌情进行取舍。如果课时较充分,则可以讲授全部内容,并安排上机实践来完成实验项目。如果课时较少,则可讲授每章的基本内容,实验项目可作为学生的作业。为检查学习效果,每章后留有习题和相应的实验项目,读者可根据实际需要选择使用。本书是许昌学院精品课程建设教材,由曾宪权、冯战申主编,邱颖豫、鄢靖丰参编。具体分工如下:第1章由邱颖豫编写,第2章~第5章由曾宪权编写,第6章、第7章由冯战申编写,第8章由鄢靖丰编写。本书部分章节引用了一些中、英操作系统教材、著作及网络资源,在此向各位作者表示衷心的感谢。由于编者水平有限,加之时间仓促,书中疏漏和错误在所难免,真诚希望各位读者批评指正。编者联系信箱为[email protected]。 编 者
评论
还没有评论。