| 选课类别:计划内与自由选修 | 教学类型:理论实验课 |
| 课程类别:本科计划内课程 | 开课单位:网络空间安全学院 |
| 课程层次:专业基础 | 学分:3.5 |
本课程是关于现代计算机操作系统的理论与实践的导论课。课程内容包括:操作系统的功用(能做什么不能做什么?);系统调用与接口;进程与线程;并发编程;计算与存储资源的调度与管理;虚拟内存;死锁;分布式系统与算法;网络操作系统介绍;操作系统的安全。本课除了从理论角度阐述如何进行系统抽象和算法设计外,还将从实践角度介绍相关机制及其实现。
让学生系统学习计算机操作系统的原理和实现方法,理解操作系统的功用和结构,掌握进程与线程的基本原理,理解进程管理、内存管理、输入输出管理和文件管理的基本方法,培养对复杂系统软件的分析能力、加深对系统软硬件接口的理解,为今后从事系统安全、软件安全的研究与实际应用打下坚实基础。
教学重点:进程与线程、互斥与同步、虚拟内存、调度算法、文件组织与访问
教学难点:系统中断、信号量机制、死锁、多级页表、多处理器调度
第一章 背景知识(6学时)
计算机系统的概念、操作系统的设计目标与体系结构、中断机制
第二章 进程管理1(4学时)
进程与线程的基本概念与实现、进程的状态及其转换
第三章 进程管理2(6学时)
调度的目标、调度算法、单处理器调度、多处理器调度
第四章 进程管理3(8学时)
互斥和同步、进程间通信、临界区和临界资源、互斥和同步的软硬件解决方案、信号量机制
第五章 进程管理4(6学时)
死锁与饥饿的概念、死锁的描述与判定、处理死锁的方法、并发编程
第六章 实内存管理(4学时)
存储的层次结构、连续分区、固定分区、动态分区、内存分配的算法及其性能分析
第七章 虚拟内存管理(8学时)
虚拟内存的概念、分页、分段、段页式、多级页表、倒排页表、虚拟内存的管理算法
第八章 输入/输出管理(6学时)
I/O设备、I/O缓冲、磁盘调度算法及性能分析
第九章 文件管理(6学时)
文件的概念与实现、文件的组织与管理、Linux与Windows文件系统
第十章 操作系统的安全(6学时)
操作系统的安全威胁、操作系统的安全机制、系统安全的基本架构
第十一章 分布式操作系统初步(选讲)
分布式系统的理论基础、分布式OS介绍
说明:上述理论课总学时60,另外根据学生需要会增加复习答疑4学时,分布式操作系统初步6学时。
本实验是操作系统课程的配套实验教学部分,通过对进程、调度、内存及文件管理等算法的实现与设计,加深学生对操作系统理论的理解,掌握基本的技术,锻炼学生的上机操作实践能力。学有余力的学生可选做操作系统安全方面的实验,为系统安全的学习和研究打下良好的基础。
要求学生在实验前做好充分的准备;实验完成后,要提交实验报告,作为评分的依据。作为辅助手段,在实验进行前,会安排额外的4学时讲解所使用的实验系统及每次实验目的、内容和要求,实验报告的规范性要求。收到实验报告后,会对随机抽取的部分学生进行面试复查,检查实验结果,对学生提出问题,要求用实际操作给出答案。
| 序号 | 实验项目 | 学时 | 实验内容类型 |
|---|---|---|---|
| 1 | 进程创建与控制实验 | 4 | 验证型 |
| 2 | 进程调度算法实验 | 4 | 设计型 |
| 3 | 多线程API验证与分析 | 4 | 设计型 |
| 4 | 存储管理 | 4 | 设计型 |
| 5 | 设备与文件管理 | 4 | 设计型 |
| 6 | 操作系统安全 | 0 | 综合型 |
考试我们面向王道考研出题,和教材与作业没有半毛钱关系。并且我们认为,这样能以不优秀的分数筛选出优秀的学生。
该课考试评价较为负面,普遍反映出卷质量差,部分题目原版引自考研题,甚至与教材不符。一些学生指出试卷粗制滥造,有多处印刷错误。考试难度集中在考研计算题,与平时作业和实验脱节,建议复习中侧重考研题。给分尚可,据部分学生反馈成绩合理,对期末考核昏难度予以补偿。
作业基本为英文教材的课后题,难度较低,多为缩小范围的句型转换任务。实践方面,实验数量较多,均需撰写详细报告,但与理论课程严重脱节,缺乏教学指导。部分实验采用MIT的实验,质量尚可,但由于缺乏与课程内容的衔接,大部分学生通过网络资源完成实验,体验不佳。
在教学水平上,同学们对周鹏远和张弛两位老师评价分化。张弛讲课生动形象,通俗易懂。而周鹏远被指上课风格相对枯燥,教学经验欠缺,课堂到课率低。助教辅导支持不足,作业和实验几乎没有反馈,习题课准备也不够充分,导致学生更多依赖自学。
不少学生认为课程内容与实验、考试的关系不大,学习收获集中在git和Linux的基础操作,而非操作系统深层次知识。课程适合自学,偏向考研的同学更易适应。对追求高GPA的学生,建议关注酱瓜的学习笔记及参考考研资源以备考。
总体而言,《操作系统》课程给学生提供了一条明确的自学路径,适合于自学并对考研有兴趣的同学。尽管存在课程教学实践及考核出题不完善的问题,但如能利用丰富的外部学习资源,仍可以获得较为积极的学术收益。建议未来课程设计和考核上加深与理论学习和实践操作的关联。
前几天路过 Nebula 活动室,看到有朋友在看我之前挂出来的 https://coursenotes.jonbgua.com/os/ 复习,感觉还挺好玩的,不如再放多一个好玩的东西(bs
这是我当时用来期末考试的 A4 纸,需要彩色打印。
(里面可能有些乱七八糟的段子,我也没空去删了,各位看官就图一乐吧 bs
btw, 如果各位对这个 A4 纸有任何修改意见或者迭代版本,也欢迎在楼中楼或者开一个新帖传一下,敬开源精神🍻!bs
建议去看王道操作系统考研课!
什么,你问我复习的时候看什么?
复习录课?没用。虽然张驰老师讲的很好,但是对于柯楠GPA 获取效率最高主义来说太花时间;
复习作业?没用。除了计算题可以看看类型,其他全抄在小抄上也没有用;
看看实验?没用。考试和实验丝毫不沾边;
建议去看王道操作系统考研课!
看完你就发现,
所以我就不放我那拥挤的小抄了
快去看王道操作系统考研课!

出分了,喜提93,来写个点评
1. 关于作业:作业一共布置了12次,主要是一些课后习题,这里还是建议大家找一下往年的作业答案(至少我看20年的和今年的作业题是一样的),不然有些题目自己做起来或者网上直接搜还是挺费时间的。
2. 关于实验:实验部分是用的MIT的实验,一共6次,网上有关这些实验的代码还是挺多的...
3. 关于老师:zpy老师是今年第一次带这门课,在教学方面还是经验有所欠缺的,但是,一学期没有小测和点名(即使有,老师在开学也说了会提前通知的),对于自学的同学可谓是很舒服了(事实上这门课也只适合自学...)
4.关于助教:个人感觉助教是真的摸鱼,交的作业和实验根本没有反馈这一说,甚至12次作业,六次实验期末考完了只在BB上出了两三个分,习题课准备的也不是很充分
5.关于考试:今年没有期中考试,期末考试是半开卷,建议参考评课社区张弛老师那里“酱瓜的笔记”进行复习,这篇笔记也推荐大家平时上课学习的时候参考,会对重难点有更清晰的认识。由于今年是zpy出题,对于太偏的知识点考察的很少,重点主要是大题的计算和一些重要概念的理解,强烈建议大家考前多刷考研真题,这个真的很重要
总之,这是一门可以期末速成的课,平时上课也比较划水摸鱼,总体还行。