计算机操作系统教程(第4版)习题解答与实验指导(清华大学计算机系列教材)
定 价:22 元
丛书名:清华大学计算机系列教材
- 作者:张尧学 编著
- 出版时间:2013/11/1
- ISBN:9787302336754
- 出 版 社:清华大学出版社
- 中图法分类:TP316
- 页码:144
- 纸张:胶版纸
- 版次:4
- 开本:16开
《计算机操作系统教程(第4版)习题解答与实验指导/普通高等教育“十一五”国家级规划教材》是作者在清华大学计算机系多年教学经验和科研成果的基础上,配合清华大学计算机系列教材之一的《计算机操作系统教程》(第4版)而编写的相关习题解答和实验指导。全书分为两大部分:第一部分是《计算机操作系统教程》(第4版)中各章习题的参考解答和部分硕士研究生入学考试用题及解答;第二部分为清华大学计算机系操作系统课程教学用实验指导及相应的程序设计与源代码分析。实验主要设计在Linux环境下用C语言编程完成,也可在UNIX系统V或其他更高版本的UNIX环境下完成。
第4版前言
计算机技术的飞速发展正在引发新的一轮世界性技术革命。在经济发展越来越全球化、科技创新越来越国际化、知识经济已初见端倪的今天,任何一门技术或任何一个领域离开了计算机都是不可想象的。而计算机技术发展之迅速,计算机及其相关IT产品市场竞争之激烈,计算机产业让人致富速度之迅猛,也同样是人们始料不及的。在21世纪,任何想在技术领域有一番作为的人,都不得不面对计算机技术的挑战。
软件技术是计算机系统的灵魂与核心,而操作系统更是计算机系统的大脑。“想发财,学软件!”在一些国家已成为深入人心的广告词。在我国,科技创新、高科技产业化的浪潮也势必会以雷霆万钧之力推动软件技术的迅猛发展与普及。21世纪的哪一行哪一业能够离开软件呢?
学习计算机软件技术,特别是计算机操作系统技术,除了需要刻苦努力外,还需要掌握软件和操作系统的原理与设计技巧。这些原理与技巧可以说是计算机界的前辈们一代接一代不停顿的努力所留下的知识与智慧的结晶,学习和掌握它们对于激发自己的创造力和想象力是很有帮助的。
如何学习和掌握操作系统技术的原理与实际技巧呢?除了听课和读书之外,最好的方法就是在实践中练习。例如,自己设计一个小型操作系统,多使用操作系统,多阅读和分析操作系统源代码等。当前非常流行的Linux操作系统的原始版事实上也是一位优秀的大学生的练习之作。除了上述练习方法之外,习题和实验也是很重要的实践之一。
本书是配合《计算机操作系统教程》(第4版)的习题解答与实验指导书。本书除给出《计算机操作系统教程》(第4版)各章所附习题的参考答案外,还给出一些有关的综合试题及其参考答案;另外,还设计了4个在Linux环境下或UNIX环境下的小实验,包括进程控制、进程通信、内存管理以及文件系统设计等,并给出了这4个实验的参考编程解答。
本书的编写得到了清华大学计算机系网络系统组杨华杰的大力支持和帮助,她对本书中的部分习题进行了解答和完善,而且重新编写了实验程序。
本书虽然给出了《计算机操作系统教程》(第4版)一书中习题的参考解答和相关实验指导,但由于作者的水平与知识所限,这些解答只是一种参考,里面完全可能存在错误和不妥之处,有待于有识之士的指教。此外,还希望读者不要局限于这些解答。
衷心希望本书能对学习计算机操作系统和计算机软件的人们有所帮助!
作者
2013年6月于清华园前言
对于在校的学生和工程技术人员而言,能否有效地了解操作系统原理后面的具体设计实现呢?陆游说过: “纸上得来终觉浅,绝知此事要躬行”。我们在教学过程中,也深刻体会到这一点。我们认为,在了解基本的操作系统概念和原理的基础上,通过实际动手来一步一步分析、设计和实现一个微型化的操作系统,会深入了解操作系统的实现细节,并体会到概念原理和实际实现之间的紧密联系及巨大差异。
操作系统是一个复杂系统软件,涉及内容繁多,发展也很快,如Linux、Windows等,都是上百万行的源代码规模。开发人员开发这些操作系统软件的目的是用于实际计算机系统中,而不是用于教学,所以直接用这些操作系统来分析了解操作系统的实现和进行操作系统实验会比较复杂。而且目前部分操作系统教材的内容也越来越庞大和抽象,而面向操作系统设计实现的实验部分相对就少了很多。这两方面交织在一起,导致学生了解和掌握操作系统的实际细节很困难。
早期的UNIX操作系统实现和MIT教授Frans Kaashoek等基于UNIX v6设计的xv6操作系统给了我们启发:对一个计算机专业的本科生而言,在了解操作系统原理的基础上,设计实现一个操作系统有挑战,但是可行!我们对此进行了尝试与探索,以设计实现一个微型但全面的操作系统——ucore为基本目标,以增量式递进开发方式完成各种基于ucore操作系统的实验为实践过程,以在此过程中逐步介绍的操作系统的基本概念和原理为实践指导,做到有“理”可循和有“码”可查,最终让读者了解和掌握操作系统的原理、设计与实现。目前的实验内容包含如下8个。
(1) 启动操作系统的bootloader:了解操作系统启动前的状态和要做的准备工作。
(2) 物理内存管理子系统:理解硬件段/页模式和操作系统如何管理物理内存。
(3) 虚拟内存管理子系统:理解页表机制、缺页故障处理以及内存替换算法。
(4) 内核线程子系统:理解相对简单的内核态线程的动态管理过程。
(5) 用户进程管理子系统:理解用户态进程动态管理过程以及系统调用过程。
(6) 处理器调度子系统:理解操作系统的调度过程和调度算法。
(7) 同步互斥与进程间通信子系统:理解进程间如何同步互斥以及进行信息交换和共享。
(8) 文件系统:理解文件系统的具体实现,与进程管理和内存管理等的关系。
其中每个开发步骤都是建立在上一个步骤之上的,就像搭积木,从一个一个小木块,最终搭出来一个小房子。在搭房子的过程中,完成从理解操作系统原理到实践操作系统设计与实现的探索过程。最新的代码和文档放在http://www.github.com/chyyuu/ucore_lab上。如果有同学和OS爱好者觉得这些实验难度不够,大家可参加更有挑战和乐趣的ucore plus实验,这些实验位于 http://www.github.com/chyyuu/ucore_plus下。目前的代码和文档还有许多不完善和错误的地方需要改进,欢迎大家批评指正。
在实现基于ucore的操作系统实验过程中,我们参考和借鉴了xv6、OS161以及Linux的设计思路和实现代码,而且Frans Kaashoek 博士也亲自给予了帮助与指导。国内多所高校的老师,包括陈向群、王雷、陈鹏、陈莉君、原仓周、蒲晓蓉等都给予了指导和帮助。操作系统课程的助教王乃峥、袁昕颢、茅俊杰、陈宇恒、曹聪、杨杨等完成了大量工作,在此表示衷心的感谢!
陈渝 向勇
2013年3月12日
张尧学,中国工程院院士,中南大学校长,教授,博士生导师,日本东北大学工学博士(1989年3月);曾任美国麻省理工学院访问科学家以及日本会津大学客座教授;以第一完成人获多项国家技术发明奖和国家科技进步奖、何粱何利基金科学与技术进步奖;并获得多次国家发明专利、美国IET教育基金会教育领先奖等。在IEEE等国内外学术刊物和会议上发表学术论文180余篇,撰写中英文专著和教材8部。
第一部分 习题解答
第1章 绪论
第2章 操作系统用户界面
第3章 进程管理
第4章 处理机调度
第5章 存储管理
第6章 进程与存储管理示例
第7章 Windows的进程与内存管理
第8章 文件系统
第9章 设备管理
第10章 Linux文件系统
第11章 Windows的设备管理和文件系统
第12章 嵌入式操作系统简介
综合试题
操作系统综合练习试题1
第一部分 习题解答
第1章 绪论
第2章 操作系统用户界面
第3章 进程管理
第4章 处理机调度
第5章 存储管理
第6章 进程与存储管理示例
第7章 Windows的进程与内存管理
第8章 文件系统
第9章 设备管理
第10章 Linux文件系统
第11章 Windows的设备管理和文件系统
第12章 嵌入式操作系统简介
综合试题
操作系统综合练习试题1
操作系统综合练习试题1解答
操作系统综合练习试题2
操作系统综合练习试题2解答
操作系统综合练习试题3
操作系统综合练习试题3解答
第二部分 实验指导
系统调用函数说明、参数值及定义
实验1 进程管理
实验2 进程间通信
实验3 存储管理
实验4 文件系统设计
实验1 指导
实验2 指导
实验3 指导
实验4 指导