课程大纲

课程大纲

操作系统(研讨课)

课程编码:B0911011Y-01 英文名称:Practice of Operating System 课时:40 学分:2.00 课程属性:专业必修课 主讲教师:陈明宇等

中文介绍

英文介绍

教学目的要求
本课程是计算机科学与技术专业本科生开设的专业必修课,和操作系统理论课同时开课,其目的是让学生在学习操作系统理论知识的同时,通过实践程序开发,完成一个简单操作系统的基本模块,包括bootloader,进程管理、中断处理、进程通信、内核调度、虚存管理、设备驱动和文件系统。本课程培养学生动手开发能力和计算机系统观,让学生具备基本的编写操作系统内核能力。

预修课程
计算机组成原理、C语言程序设计、数据结构、汇编程序设计

主要内容

第1章:实验基础知识与OS引导程序

内容:理解和实现操作系统的启动过程,并在实验的过程中,学习和掌握Linux下相关工具、C语言和汇编、内核镜像的制作等内容。

要求:掌握

 

第2章:非抢占式内核

内容:学习理解操作系统中任务的本质,实现进程控制块、进程切换(现场保存、现场恢复)、非抢占式调度。

要求:掌握

 

第3章:抢占式内核

内容:学习操作系统任务调度、例外处理等知识,了解例外处理和系统调用的流程,实现操作系统中例外处理、时钟中断处理、抢占式调度,掌握任务的阻塞和唤醒、线程锁的实现。

要求:掌握

 

第4章:进程间通信

内容:学习spawn、kill、exit、waitpid的原理,实现其功能并做成系统调用接口。掌握条件变量(condition variables)、信号量(semaphores)、屏障(barriers)这三类同步原语的原理,实现其功能并做成系统调用接口,并能使用同步原语实现进程间的通信。

要求:掌握

 

第5章:虚拟内存管理

内容:学习操作系统的虚拟内存管理机制,包括虚实地址空间的管理, TLB 例外及使用,换页机制等。设计和实现虚存管理的功能。

要求:掌握

 

第6章:完成设备驱动

内容:学习板卡MAC控制器的相关寄存器,了解DMA相关知识和网卡收发包的流程,掌握外设中断的处理流程,设计并实现网卡驱动,实现网卡收发包的功能。

要求:掌握

 

第7章:文件系统

内容:掌握文件系统的元数据和数据I/O操作,实现一个简单的物理文件系统,可以支持多级目录结构,并支持cd、mkdir、rmdir、ls等shell指令,对于文件操作,实现open、write、read、close等基本操作。

要求:掌握

课时分配

章节/学时分配

讲课

习题课

实验课

上机课

讨论课

其它

1

   

6

     

2

   

6

     

3

   

6

     

4

   

6

     

5

   

6

     

6

 

 

6

 

 

 

7

 

 

6

 

 

 

 

课程思政
本课程将课程教学过程中将介绍中国计算机系统发展的历史和里程碑事件,以及为中国计算机事业发展做出过杰出贡献的关键人物和事件,例如介绍中国第一台计算机的设计者、制造者夏培肃院士,以及夏培肃院士的科学精神和对中国计算机事业的贡献,介绍曙光系列计算机开创者李国杰院士科研为国分忧、创新与民造福的精神。介绍在操作系统领域的发展历史中,软件开源和共享发挥的重要作用。通过上述内容的介绍,培养学生对中国计算机事业的热爱和科技报国乃至为世界共同发展做出自己的贡献的理念。

教材
现代操作系统(英文版第3版)作者:Anderw S.Tanenbaum 出版社:机械工业出版社 ISBN码:9787111265276

参考文献
采用自行编写的实验课教材

课程教师信息
蒋德钧,博士,中科院计算所副研究员,中国科学院大学岗位教师,硕士生导师,中科院计算所先进计算机系统研究中心数据系统实验室副主任。主要研究兴趣包括操作系统,存储系统软件与体系结构,分布式系统等。近年来围绕基于新型硬件的键值数据库、文件系统和操作系统,基于RISC-V的开源SSD主控芯片,分布式存储系统等开展研究工作。在ATC, MSST,PACT, TACO, ICS, ICCD, WWW, JCST 等国际会议与期刊上发表论文二十余篇,研究成果累计引用次数百余次,申请专利20余项。承担或参与多项国家重点研发计划项目,973 项目课题、863 项目课题,国家青年科学基金项目,人社部留学人员科技活动优秀项目,北京市自然科学基金项目等。2004年在北京航空航天大学获得学士学位,2009年在清华大学获得硕士学位,2012年在荷兰阿姆斯特丹 Vrije Universiteit 获得计算机科学博士学位。

其它说明