微信扫码下载

编辑推荐

  《清华大学计算机系列教材:操作系统实验指导》特色
  1.以x86实际硬件环境和类UNIX使用环境为实验背景设计与实际操作系统相符的操作系统实验。
  2.从逐步实现操作系统的操作系统设计实现角度来逐步设计各个操作系统实验。
  3.提供灵活统一的操作系统模块化框架接口,可用于实现不同特征的操作系统内核模块。
  4.操作系统实验的实验要求内容与操作系统原理的关键点紧密联系,相互补充。
  5.有较全面的源码注释,文档说明和调试分析方法说明,便于理解和实现操作系统实验。
  6.吸收消化国外多所著名高校的操作系统实验教学经验,强调实践来深化对操作系统原理的理解。

内容简介

  《清华大学计算机系列教材:操作系统实验指导》是操作系统课程的实验教材,旨在帮助读者加强对操作系统原理与设计实现的理解,以分析、设计、改进和实现一个微型但全面的操作系统——ucore为基本目标,通过增量式地完成8个基于ucore操作系统实验为操作系统实践环节,最终让读者了解并掌握操作系统的原理、设计与实现。
  《清华大学计算机系列教材:操作系统实验指导》强调对于操作系统动手实践,是对操作系统实践教学的一次探索,可作为高等院校计算机专业操作系统课程的实验教材,也可作为各类操作系统教学的培训教材及自学参考资料。

目录

第1章实验0:操作系统实验准备
1.1实验目的
1.2准备知识
1.2.1了解OS实验
1.2.2设置实验环境
1.2.3了解编程开发调试的基本工具
1.2.4基于硬件模拟器实现源码级调试
1.2.5了解处理器硬件
1.2.6了解ucore编程方法和通用数据结构

第2章实验1:系统软件启动过程
2.1实验目的
2.2实验内容
2.2.1练习
2.2.2项目组成
2.3从机器启动到操作系统运行的过程
2.3.1BIOS启动过程
2.3.2bootloader启动过程
2.3.3操作系统启动过程
2.4实验报告要求
辅助材料A关于A20Gate
辅助材料B启动后第一条执行的指令

第3章实验2:物理内存管理
3.1实验目的
3.2实验内容
3.2.1练习
3.2.2项目组成
3.3物理内存管理概述
3.3.1实验执行流程概述
3.3.2探测系统物理内存布局
3.3.3以页为单位管理物理内存
3.3.4物理内存页分配算法实现
3.3.5实现分页机制
3.3.6自映射机制
3.4实验报告要求
辅助材料A探测物理内存分布和大小的方法
辅助材料B实现物理内存探测
辅助材料C链接地址、虚拟地址、物理地址、加载地址以及edata/end/text的含义

第4章实验3:虚拟内存管理
4.1实验目的
4.2实验内容
4.2.1练习
4.2.2项目组成
4.3虚拟内存管理概述
4.3.1基本原理概述
4.3.2实验执行流程概述
4.3.3关键数据结构和相关函数分析
4.4PageFault异常处理
4.5页面置换机制的实现
4.5.1页替换算法
4.5.2页面置换机制
4.6实验报告要求
辅助材料A:正确输出的参考

第5章实验4:内核线程管理
5.1实验目的
5.2实验内容
5.2.1练习
5.2.2项目组成
5.3内核线程管理
5.3.1实验执行流程概述
5.3.2设计关键数据结构——进程控制块
5.3.3创建并执行内核线程
5.4实验报告要求
辅助材料A实验4的参考输出
辅助材料B“原理”进程的属性与特征解析

第6章实验5:用户进程管理
6.1实验目的
6.2实验内容
6.2.1练习
6.2.2项目组成
6.3用户进程管理
6.3.1实验执行流程概述
6.3.2创建用户进程
……

第7章实验6:调度器
第8章实验7:同步互斥
第9章实验8:文件系统

精彩书摘

  如何一步一步来实现ucore呢?根据一个操作系统的设计实现过程,可以有如下的实验步骤。
  (1)启动操作系统的bootloader,用于了解操作系统启动前的状态和要做的准备工作,了解运行操作系统的硬件支持,操作系统如何加载到内存中,理解外设中断和陷阱中断等。
  (2)物理内存管理子系统,用于理解x86分段/分页模式,了解操作系统如何管理物理内存。
  (3)虚拟内存管理子系统,通过页表机制和换人换出(Swap)机制,以及故障中断和缺页故障处理等,实现基于页的内存替换算法。
  (4)内核线程子系统,用于了解如何创建相对与用户进程更加简单的内核态线程,如对内核线程进行动态管理等。
  (5)用户进程管理子系统,用于了解用户态进程创建、执行、切换和结束的动态管理过程,了解在用户态通过系统调用得到内核态的内核服务的过程。
  (6)处理器调度子系统,用于理解操作系统的调度过程和调度算法。
  (7)同步互斥与进程间通信子系统,了解进程间如何进行信息交换和共享,并了解同步互斥的具体实现以及对系统性能的影响,研究死锁产生的原因,以及如何避免死锁。
  (8)文件系统,了解文件系统的具体实现,与进程管理等的关系,了解缓存对操作系统I/O访问的性能改进,了解虚拟文件系统(VFS)、BufferCache和DiskDriver之间的关系。
  其中每个开发步骤都是建立在上一个步骤之上,就像搭积木,从一个一个小木块,最终搭出来一个小房子。在搭房子的过程中,完成从理解操作系统原理到实践操作系统设计与实现的探索过程。这个房子最终的建筑架构和建设进度如图1-1所示。
  如果完成上述实验后还想完成更大的挑战实验,那么可以参加ucore的研发项目,我们可以完成ucore的网络协议栈,增加图形系统,增加编程语言支持(比如目前的golang、python等),在ARM嵌入式系统上运行,支持虚拟机功能等。这些项目已经有同学参与,欢迎其他有兴趣的同学加入!
  接下来将介绍实验环境的设置、Linux系统的安装、Linux命令行的使用方法、各种实验工具的使用方法以及Intel80386硬件的重要特征等。这些内容足以写成另外几《清华大学计算机系列教材:操作系统实验指导》,这里主要是介绍与实验相关的内容并进行了大量的精简,部分内容来源于Internet(如Ubuntuforum网站、qemu网站、GNU网站等)和Intel的CPU手册,由于内容繁多,无法给出具体的参考署名,这里对相关作者一并表示感谢。
  ……

前言/序言

  “清华大学计算机系列教材”已经出版发行了30余种,包括计算机科学与技术专业的基础数学、专业技术基础和专业等课程的教材,覆盖了计算机科学与技术专业本科生和研究生的主要教学内容。这是一批至今发行数量很大并赢得广大读者赞誉的书籍,是近年来出版的大学计算机专业教材中影响比较大的一批精品。
  本系列教材的作者都是我熟悉的教授与同事,他们长期在第一线担任相关课程的教学工作,是一批很受本科生和研究生欢迎的任课教师。编写高质量的计算机专业本科生(和研究生)教材,不仅需要作者具备丰富的教学经验和科研实践,还需要对相关领域科技发展前沿的正确把握和了解。正因为本系列教材的作者们具备了这些条件,才有了这批高质量优秀教材的产生。可以说,教材是他们长期辛勤工作的结晶。本系列教材出版发行以来,从其发行的数量、读者的反映、已经获得的国家级与省部级的奖励,以及在各个高等院校教学中所发挥的作用上,都可以看出本系列教材所产生的社会影响与效益。
  计算机学科发展异常迅速,内容更新很快。作为教材,一方面要反映本领域基础性、普遍性的知识,保持内容的相对稳定性;另一方面,又需要紧跟科技的发展,及时地调整和更新内容。本系列教材都能按照自身的需要及时地做到这一点。如王爱英教授等编著的《计算机组成与结构》、戴梅萼教授等编著的《微型计算机技术及应用》都已经出版了第四版,严蔚敏教授的《数据结构》也出版了三版,使教材既保持了稳定性,又达到了先进性的要求。
  本系列教材内容丰富,体系结构严谨,概念清晰,易学易懂,符合学生的认知规律,适合教学与自学,深受广大读者的欢迎。系列教材中多数配有丰富的习题集、习题解答、上机及实验指导和电子教案,便于学生理论联系实际地学习相关课程。
  随着我国进一步的开放,我们需要扩大国际交流,加强学习国外的先进经验。在大学教材建设上,我们也应该注意学习和引进国外的先进教材。但是,“清华大学计算机系列教材”的出版发行实践以及它所取得的效果告诉我们,在当前形势下,编写符合国情的具有自主版权的高质量教材仍具有重大意义和价值。它与国外原版教材不仅不矛盾,而且是相辅相成的。本系列教材的出版还表明,针对某一学科培养的要求,在教育部等上级部门的指导下,有计划地组织任课教师编写系列教材,还能促进对该学科科学、合理的教学体系和内容的研究。
  我希望今后有更多、更好的我国优秀教材出版。

其他推荐