操作系统课程 (102J05C)

  • 操作系统报告讲演分组名单更新了,具体可以从[这里]下载,~~~
  • 为更好的学习操作系统这门课,建议各位同学阅读操作系统的源码,起步阶段可以阅读Linux 0.11内核,有配套的源码讲解电子书(中文噢~~~)。下载地址
  • 实验报告和论文阅读报告有相应的模版,请各位同学在资源中进行下载,不按照模版撰写报告将不能获得实验或论文阅读的分数,务必注意。
  • 几个比较好的操作系统实验平台:哈尔滨工业大学《操作系统》课程实验清华大学《操作系统》课程实验
  • 网络上搜集的Linux系统的一些资源,可以查看对应的链接:Welcome to Linux World
  • 如何从零开始实现一个简单的操作系统,可以参考:How to create an OS from scratch,里面的推荐文档好好看看。
  • 如何裁剪Linux内核,可参考:Kernel Size Tuning Guide,第三周的实验将会编译内核,其中涉及内核裁剪,务必提前阅读且报告中必须含该内容。
  • 授课时间地点信息:周一第5-6节、信息楼121专机; 周二第3-4节、5-204(第5周开始更换到6-101); 周四(双周)第3-4节、5-204(第5周开始更换到6-101)。

课程介绍

本课程系统全面的讲授操作系统技术全貌及其基本原理,注重培养学生的问题分析和抽象的能力,使学生能够掌握基本的操作系统分析、设计方法,理解操作系统的设计、实现以及资源管理、分配与调度算法等。辅以实验训练,培养学生的实际动手能力、分析和解决问题的能力,强化学生对相关理论、算法等的理解和掌握。

本课程是计算机科学与技术专业的必修课和学位课,以“计算机组成原理”、“面向对象程序设计”、“数据结构和算法”等为基础。课程总学时85,其中,理论51学时,实验34学时。理论部分包括操作系统结构、算法原理等的讲授,同时辅以随堂测验、文献阅读与分享、课后练习等进行有效的补充。实验部分包括Shell命令及其脚本实现、Linux内核配置(裁剪)和编译、内核模块开发以及操作系统基本算法实现等。

授课计划

周次 日期 学时 授课内容 授课方式 关键知识 练习内容 备注
1 2018年9月10日 2 Linux环境和Shell命令 实验操作 熟练掌握常用的Shell命令 根据提供的材料练习Shell命令操作 务必学习不少于20种常见的Shell命令及其组合
2018年9月11日 2 操作系统引论I 课堂讲授 操作系统结构、功能和特点 - 课后尽可能去了解主流的物联网操作系统
2 2018年9月17日 2 Shell编程基础 实验操作 熟悉Shell脚本编程基本语法与应用 根据提供的材料练习Shell编程,实现Linux系统资源监测应用 自由发挥,实现尽可能多的系统资源监控功能(类似工具: top/htop/atop/iftop, nmon, glances)
2018年9月18日 2 操作系统引论 2 课堂讲授 微内核、单体内核 - 作业见“课后作业”选项,2018年9月25日(周二)前提交
2018年9月20日 2 进程概念和控制 1 课堂讲授 进程描述 - -
3 2018年9月25日 2 进程概念和控制 2 课堂讲授 进程控制 - -
2018年9月29日 2 进程概念和控制 3 课堂讲授 进程同步 - 补2018年10月4日课程
4 - - - - - - 国庆节假期(2018年10月1日-7日)
- - - - - -
- - - - - -
5 2018年10月8日 2 Linux内核编译 实验操作 在Ubuntu16.04上配置和编译Linux内核 根据教师课前提供的资料提前预习和准备实验内容 编译完成可使用的内核,内核以姓名和学号命名,请勿直接拷贝其他同学的内核,会被发现的o(* ̄︶ ̄*)o
2018年10月9日 2 进程概念和控制 4 课堂讲授 线程 - -
6 2018年10月15日 2 Linux内核模块实现 实验操作 熟悉Linux内核模块实现过程,在Ubuntu系统上完成指定功能的内核模块 根据教师课前提供的资料提前预习和准备实验内容 实验完成:(1)输出内核时间的简单内核模块, (2)实现数据包过滤功能的简单内核模块(至少有数据包丢弃功能,事先熟悉Netfilter Hook),或简单的字符设备设备驱动模块,或其他有意义的内核功能模块
2018年10月16日 2 处理机调度与死锁 I 课堂讲授 不同调度模型 - -
2018年10月18日 2 处理机调度与死锁 II 课堂讲授 进程调度、实时调度 - -
7 2018年10月22日 2 进程创建和进程控制 实验操作 熟悉进程创建和控制的常用函数,并在Linux实现 根据教师提供的材料,提前预习和准备 完成实验手册中实验2和实验3,对操作过程中的问题务必进行总结说明(如果有)
2018年10月23日 2 处理机调度与死锁III 课堂讲授 银行家算法 - 作业见“课后作业”选项,2018年11月2日(周五)前提交
8 2018年10月29日 2 进程互斥和死锁避免 实验操作 熟悉进程互斥和死锁避免机制,并在Linux编程实现 根据教师提供的材料,提前预习和准备 完成实验手册中实验4和实验9,对操作过程中的问题务必进行总结说明(如果有),两个实验为1份实验报告
2018年10月30日 2 存储器管理 1 课堂讲授 存储器概念、层次,对换 - -
2018年11月1日 2 存储器管理 2 课堂讲授 分页、分段存储管理 - -
9 2018年11月5日 2 进程通信——信号、管道和消息 实验操作 熟悉信号、管道和消息的进程通信方式,并在Linux中实现 根据教师提供的材料,提前预习和准备 完成实验手册5和6的内容,对操作过程中的问题务必进行总结说明(如果有),两个实验为1份实验报告
2018年11月6日 2 存储器管理 3 课堂讲授 分段、段页式管理 - 作业见“课后作业”选项,2018年11月13日(周二)前提交
10 2018年11月12日 2 进程通信——共享存储和信号量 实验操作 熟悉共享存储和信号量的工作原理,并在Linux中实现 根据教师提供的材料,提前预习和准备 完成实验手册7的内容,对操作过程中的问题务必进行总结说明(如果有)
2018年11月13日 2 虚拟存储器 I 课堂讲授 虚拟存储器原理、页面置换算法 - -
2018年11月15 2 虚拟存储器 II 课堂讲授 抖动和工作集、请求分段 - 作业见“课后作业”选项,2018年11月20日(周二)前提交
11 2018年11月19日 2 处理器调度算法 实验操作 熟悉处理器调度算法的基本原理,并在Linux中实现 根据教师提供的材料,提前预习和准备 完成实验手册8的内容,对操作过程中的问题务必进行总结说明(如果有)
2018年11月20日 2 输入输出系统 I 课堂讲授 I/O系统功能、概念,I/O控制器,中断处理 - -
12 2018年11月26日 2 内存管理算法 实验操作 熟悉内存管理的常见算法,并在Linux中实现 根据教师提供的材料,提前预习和准备 完成实验手册10和11的内容,对操作过程中的问题务必进行总结说明(如果有)
2018年11月27日 2 输入输出系统 II 课堂讲授 设备驱动程序、设备无关I/O软件 - -
2018年11月29日 2 输入输出系统 II 课堂讲授 SPOOLING和磁盘调度算法 - -
13 2018年12月3日 2 SPOOLING和文件系统 实验操作 熟悉内存管理的常见算法,并在Linux中实现 根据教师提供的材料,提前预习和准备 完成实验手册12和13的内容,对操作过程中的问题务必进行总结说明(如果有)
2018年12月4日 2 文件管理 I 课堂讲授 文件和文件系统基本概念、文件的逻辑结构 - -
14 2018年12月10日 2 报告讲演 I 实验操作 每组按照要求分享文献阅读的成果 请提前按照分组排序准备好PPT,报告讲解10分钟,公开提问5分钟。提问的同学酌情加分,讲解的同学如果回答不好则减分。 -
2018年12月11日 2 文件管理 II 课堂讲授 文件目录、共享和保护 - -
2018年12月13日 2 磁盘存储器的管理 I 课堂讲授 外存组织方式、文件存储空间管理 - -
15 2018年12月17日 2 报告讲演 II 实验操作 每组按照要求分享文献阅读的成果 请提前按照分组排序准备好PPT,报告讲解10分钟,公开提问5分钟。提问的同学酌情加分,讲解的同学如果回答不好则减分。 -
2018年12月18日 2 磁盘存储器的管理II 课堂讲授 提高磁盘可靠性的技术 - 作业见“课后作业”选项,2018年12月25日(周二)前提交
16 2018年12月24日 2 报告讲演 III 实验操作 每组按照要求分享文献阅读的成果 请提前按照分组排序准备好PPT,报告讲解10分钟,公开提问5分钟。提问的同学酌情加分,讲解的同学如果回答不好则减分。 -
2018年12月25日 2 操作系统接口 课堂讲授 常见系统接口、系统调用 - -
2018年12月27日 2 期末复习 课堂讲授 全部9章内容复习 - 作业见“课后作业”选项,2018年12月29日(周六)前提交
17 2018年12月29日 2 复习和答疑 实验操作 全部9章内容 - 补17周周一的课
2019年1月1日 - - - - - 元旦假期

: 每周的课后作业请于下一周理论课前交给助教,逾期不计算成绩。此外,实验报告务必有详细操作过程。

评分规则


: 课堂表现部分的成绩包含到课情况、随堂测验和上课回答问题情况,鼓励积极提问,疑难问题一起讨论解决。实验表现以实验报告为评价依据,务必保证报告的工整和可读性。文献阅读需提交译文和原文,其中译文务必按格式要求撰写,不清楚可以随时与教师和助教讨论,否则分数很低噢o(* ̄︶ ̄*)o。

联系信息

授课教师:江先亮、金光,办公地址:宁波大学东校区曹光彪信息楼305室,电子邮箱:jiangxianliang [AT] nbu.edu.cn,联系电话:13616880564/660564
课程助教:马阿曼,实验室地址:宁波大学东校区曹光彪信息楼513室,电子邮箱:lufeishan [AT] 163.com,联系电话:13526901857