一片自留地 UCB CS162(操作系统)L1-L2 综述

magicyang · 2021年02月01日 · 1474 次阅读

今天 2.1 号,开始扫操作系统。
就看 UCB 的 cs162 了,mit 的 6.828 应该更难。162 有现成的视频和作业。偷个懒吧。。。
课程路径:
https://inst.eecs.berkeley.edu/~cs162/sp20/
视频可以在 B 站看,有中文字幕(中文翻译比 cs61c 好)。

2 月开始了,说点自己的体会吧,为什么要学习底层?底层学习的成本很高,挫折感会很强烈,为什么要做吃力不讨好的事情?
学习底层的时间周期比学习一门语言,学习一个开源工具的成本高很多。
学习底层,在实际设计代码的时候,可以从更加底层、抽象的角度思考问题。当然这也需要一定的经验积累和刻意的练习。

综述

操作系统是软硬件之间的桥梁。

操作系统 4 个基础元素:

程序执行过程:

os 中的线程概念:


需要切换的寄存器放在内核寄存器中或者内存中,放在内存中(不放内存说是需要硬件特殊设计)的叫做 TCB(Thread Control Block)

地址空间


因为线程间的信息需要保护(跨进程、跨线程就可以 hack 其他程序了)

这里先用了一个简单的 Base and Bound 方案作为实现:

简单提了一下虚存:

虚存还是看 CS61C 的内容吧。

进程

多线程间通讯比进程间通讯要简单很多。
进程有自己的共享空间,可以被多线程复用。

工作模式:

也就是用户态和内核态。
调用关系:

Unix 架构:

总结:

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册