README

清华大学操作系统课程(2017)

操作系统是计算机系统中负责管理各种软硬件资源的核心系统软件,为应用软件运行提供良好的环境。掌握操作系统的基本原理及其核心技术是研究型大学计算机专业本科毕业生的基本要求。

本课程是计算机专业核心课,以主流操作系统为实例,以教学操作系统ucore为实验环境,讲授操作系统的概念、基本原理和实现技术,为学生从 事操作系统软件研究和开发,以及充分利用操作系统功能进行应用软件研究和开发打下扎实的基础。

本课程学习流程(for拿清华学分的同学)

  for (i=1; i<=13; i++) {
    1. 预习,完成第i周课前视频学习(optional)
    2. 完成第i周基本练习(optional)
    3. 上课听讲,提问/被提问
    4. 在deadline前,按序完成ucore_lab实验
    5. 复习,做课后练习,if (碰到问题) 到piazza的论坛上提问;
    6. if (i==7) 参加期中考试;
    7. if (i==13) 参加期末考试;
   }

课程参考书

课前视频学习

可在上课前完成本周视频学习,建议下载到本地看(Optional)

上课时间地点 (2017春季,1-13周,一周两次课)

  • 星期二 上午 第1节,(08:00-09:35) 操作系统 30240243 六教 6A214和6A216
  • 星期五 下午 第4节,(13:30-15:05) 操作系统 30240243 六教 6A214和6A216

可带上笔记本电脑(Optional)

课程实验 ucore os lab

 - 完成的实验和报告需要按时提交到网络学堂(for拿清华学分的同学)
 - 上述信息会持续更新
 - 在线实验环境基于"实验楼"在线平台
 - 相关参考资料用于学习和了解更多实验相关的背景/软件/硬件/编程等细节
 

课程学习相关信息

2017年春季开课,13周完成

  • 第1讲 操作系统概述
  • 第2讲 实验环境准备(实验0)
  • 第3讲 中断与系统调用
  • 第4讲 OS启动和中断处理 (实验1)
  • 第5讲 物理内存管理:连续内存分配
  • 第6讲 物理内存管理:非连续内存分配
  • 第7讲 物理内存管理的实现 (实验2)
  • 第8讲 虚拟存储:缺页中断
  • 第9讲 虚拟存储:置换算法
  • 第10讲 虚拟内存管理的实现 (实验3)
  • 第11讲 进程状态与控制
  • 第12讲 线程管理与内核线程实现 (实验4)
  • 期中考试:第7周星期一或星期三
  • 第13讲 用户进程设计实现 (实验5)
  • 第14讲 处理机调度
  • 第15讲 处理机调度设计与实现(实验6)
  • 第16讲 同步互斥
  • 第17讲 信号量和管程
  • 第18讲 内核信号量和条件变量(实验7)
  • 第19讲 进程间通信和死锁
  • 第20讲 文件系统
  • 第21讲 Simple FS的设计实现 (实验8)
  • 第22讲 I/O子系统
  • 期末考试 期末考试: 第13周星期三(待定)
  • 课程设计报告:第6周周四

以往在线视频

常见问题

习题与作业

更深入了解OS

课程资料网盘备份

课程交流

操作系统课联系方式

助教

  • 在岗: 甄艳洁 ...
  • 已退休:沈游人、李曈、茅俊杰、何嘉权、曹睿东、武祥晋、辛云星、刘聪、常铖 ...

教学平台技术支持

吴燕妮(继续坚持)张禹(光荣退休)、郭旭(光荣退休)、陈土其(光荣退休)

教师

  • 向勇老师 email: xyong AT tsinghua.edu.cn
  • 陈渝老师 email: yuchen AT tsinghua.edu.cn

兴趣

如果你完成了OS课程和独立完成了ucore os lab,说明你对OS课程有兴趣或有能力挑战OS,也许你想尝试一下OS的科研,欢迎到清华实验室来实习。

下面是我们正在/准备要想做的一些题目:

1、面向异构(CPU+GPU)架构的系统优化技术研究
2、操作系统缺陷分析与改进
3、操作系统动态分析/插桩(基于Ftrace,perf,eBPF等)分析
4、操作系统子系统部分特征正确性(基于symbolic execution+SMT)分析 
5、面向操作系统不同版本的差异性分析(基于symbolic execution)
6、操作系统TCP/IP协议栈优化
7、操作系统安全隔离(基于SVA)技术研究
8、操作系统虚拟化优化(dune,kvm等)研究
9、Linux PREEMPT_RT 分析与改进
10、Linux kernel的LLVM支持
11、Linux Kernel的版本自动升级技术(基于LLVM等)
12、操作系统分层机制中的潜在缺陷和优化改进方法
13、Android全系统分析与性能优化
14、基于深度学习与数据挖掘的操作系统语义理解

P.S. 这里的操作系统主要是指Linux kernel或Linux system

如果有各种意见、建议或想加入清华OS实验室实习,请发信息或简历给陈渝老师(yuchen AT tsinghua.edu.cn)发email。谢谢!