计算机操作系统(H)

(沈昀, 张殷乾)CS3342023春 2022夏  
2023春 2022夏
8.7(3人评价)
  • 课程难度
    困难
  • 作业多少
    中等
  • 给分好坏
    超好
  • 收获大小
    很多
选课类别:专业任务 教学语言:双语
课程类别:专业核心课 开课单位:计算机科学与工程系
课程层次:本科 获得学分:3.0
课程主页:暂无(如果你知道,请点右上角“编辑课程信息”添加!)
课程简介(教工部数据)
本课程为学生们讲解操作系统的设计原理和实现方法。在理论层面,本课程将介绍操作系统的基本概念,分类,和历史发展,重点讲述的操作系统的三个功能:虚拟化、并发性、和持久化,以及操作系如何管理的三种计算机的主要资源:中央处理器、内存、I/O和文件系统。在实践方面,本课程将指导学生从零开始构建操作系统,通过自己动手搭建一个简单的教学操作系统原型,学习中断处理、内存管理、虚拟内存、进程管理、进程调度、文件系统管理等相关知识。完成本课程后,预期学生将掌握以下知识和能力: 操作系统的进程管理:深入理解进程的创建和终止,理解进程的生命周期中的状态转换,理解进程切换的过程,熟悉进程调度的常用算法,掌握进程间通信和同步的原理和方法,了解死锁的防御和检测方法。能够编程在内核中实现简单的进程管理和进程调度算法。操作系统的内存管理:熟悉各种内存管理的方式,理解虚拟内存的概念、分页原则和地址转换的方法。能够在内核中实现简单的页面替换算法。操作系统的I/O管理:了解I/O设备管理、以及I/O处理的的方法。了解储存的管理方法和文件系统的几种实现方法。能够在内核中对文件系统进行改进。


This course willintroduce design principles and implementation methodologies. On the theoryside, this course will present the basic concept of operating systems, theirtaxonomy, and the evolution of classical operating systems. It will focus onthe three important functionalities of an operating system: virtualization,concurrency, and persistence. Students will learn how the operating system managesCPU, memory, and I/O and filesystems. On the practice side, the course willguide the students to build an educational operating system from scratch. Theywill learn how to handle interrupts, manage physical memory and virtual memory,manage processes, and schedule processes and build file systems.On completion ofthis course, the student should be able to master the following knowledge andskills: Process management:understand in depth the creation and termination of a process, understand statetransition in the life cycle of a process, understand context switch, befamiliar with common process scheduling algorithms, master the theory andpractice of inter-process synchronization and communication, be familiar withdeadlock prevention and avoidance algorithms. The students should be able toimplement simple process management and scheduling algorithm in the educationaloperating system kernel. Memory management:be familiar with various memory management methods, understand the concept ofvirtual memory, demand paging, and address translation. The students should beable to implement simple page replacement algorithm in the educationaloperating system kernel. I/O management: befamiliar with I/O device management and I/O operations, understand the managementof storage and common organization of file systems. The students should be ableto improve file system implementation in the educational operating systemkernel.
点评写点评
排序学期
评分评分3条点评
user avatar   Claudia     2023春
  • 难度:困难
  • 作业:中等
  • 给分:超好
  • 收获:很多

给亲爱的张老师和亲爱的沈姐姐打call!(之后是不是H课普通班的同学也可以选了?)

21届的H班操作系统的计算机组成原理是一起上的,因此有很多计组的前置知识还没学过,于是张老师在课上帮我们补了一些(很多)计组的内容。老师一直在努力尝试全英文授课,但后来发现大家确实听不明白于是还是两种语言混合着用。张老师的语调可能比较平,但内容是讲得非常清晰的。

实验课由亲爱的沈姐姐教。沈姐姐一如既往地语速快,但知识点基本上都写在实验课的文档里,调理非常清晰非常好读。每节实验课都需要读课程文档然后改代码或者是做题,一般来说难度不会很大,基本上一节课就能弄完,但如果真的想对操作系统有更深入理解的话应该多读读课上用的RISCV操作系统的代码。后来写project的时候一头雾水,非常后悔实验课交完report之后就开始摸鱼而不是多读读source code。

作业大致分为改代码和读教材回答问题两种类型。改代码基本上就是让实现一下上课讲过的东西,比如某些scheduler之类。教材是Three Easy Pieces(下文简称三片),老师会发英文版链接,然后读完回答问题。好多同学说三片原文读起来很痛苦,但我个人觉得三片教材写的非常好,也很通俗易懂,读起来很轻松,对我来说比改代码轻松多了。

project我们小组的选题是将Linux0.11移植到ARM架构上,是一个非常非常非常难的project,本来是三人小组做,后来大家发现都做不完,于是三个小组合并,我们组主要做的是调度相关的部分。最后是完成了进程初始化、时钟中断和fork,但发现时钟中断和fork不能和在一起用。。总之就是做得一塌糊涂。最后全靠无比善良的张老师捞。

H班的期末考试安排在后半学期,并不是期末周。考试比较简单,主要是概念性的内容,最后几个大题是简单的大模拟。可以带CP,本人考前认真复习了三天最后把这部分分数拉满了(/doge)。

操作系统对于计系的学生是非常重要的,这门课很难一定要好好学,如果想有更大收获的话最好能多盘盘源码。

user avatar   咕桃     2023春
  • 难度:困难
  • 作业:很多
  • 给分:超好
  • 收获:很多

内容而言,要把操作系统这个体系塞进一个学期肯定会很充实,非常建议修读计算机组成之后再来挑战,一起学的话只有快期末的时候才会大彻大悟其中的联系。

理论课而言,张老师对操作系统的理解不可谓不深入,讲的还是很明白的,只是前几周经常说“这个我们后面会具体讲”,会让人比较晕头转向,这门课属于越学越明白的类型。不过由于课程安排比较紧张,文件系统和操作系统的安全讲得很匆忙,需要自己琢磨。

实验课一共14次,每堂课都要提交当堂的report,回答实验课的几个简单问题,时限很紧,基本不能课后再补,不过沈老师提供了一定的容错,比较困难的report可以适当放放。

平时作业真的挺多的,一共10次作业,有阅读一两章教材回答问题的,有计算简答题,也有需要轻度编程的题目,难度适中,每次大概2~4大题的样子,不过亲爱的沈老师提供了best(n-2)的机会,比较忙的时候可以喘口气。

图班这边把期中和期末考试进行了合并,在5/6学期的时候把课程内容拉完,考试内容是整个学期的内容,包含只花了二十分钟不到讲完的文件系统(文件系统几个题比较惨烈),允许携带一张A4 cheating paper,且卷面分数120提供了容错,救了我的老命。

操作系统(H)比较地狱的一点在于,需要做一个组队project,选题来自全国大学生操作系统大赛(好像叫这个),里面的一些题目对于2-3人的团队都挺难的,选题的时候最好不要高估自己的开发能力,不然会很痛苦。


teacher avatar

沈昀

暂无教师主页

teacher avatar

张殷乾

计算机科学与工程系

暂无教师主页

其他老师的「计算机操作系统(H)」课

沈昀老师的其他课

张殷乾老师的其他课