上交os lec1 操作系统的定义
lec 0
- 操作系统并不是免费的午餐,而是构筑与控制生态的黑土地。
![]()
- 批处理,交互,分布式,云端结合
以及现在的定制化os - 以及现在os越来越复杂
![]()
lec 1
- 操作系统难定义,可以定义为硬件与软件之间的软件层:操作系统是管理硬件资源,控制程序运行,改善人机 界面和为应用软件提供支持的一种系统软件
![]()
应用不断贡献功能并沉淀到os中,使得其成为os的一部分
![]()
- 运行一个可执行文件,os需要考虑的一些问题:
![]()
- 即使只有一个应用,仍然需要os,因为os可以提供容错的功能,如果这个应用崩溃了,那么os可以提供错误信息,来分析调试。
即使应用想要完全控制硬件,也需要os,os可以提供程序装载与进程调度等功能 - 操作系统为应用提供的服务:
- 为应用提供计算资源的抽象,
- CPU,进程/线程,数量不受物理CPU的限制
- 内存,虚拟内存,大小不受物理内存的限制
- I/O, 将各种设备统一抽象为文件,提供统一接口
- 为应用提供线程间的同步
- 应用可以实现自己的同步原语(如spinlock)
- 操作系统提供了更高效的同步原语(与线程切换配合,如pthread_mutex)
- 为应用提供进程间的通信
- 应用可以利用网络进行进程间通信(如loopback设备)
- 操作系统提供了更高效的本地通信机制(具有更丰富的语义,如pipe)
- 为应用提供计算资源的抽象,
- 操作系统对于应用的管理
![]()
- 操作系统需要考虑管理与服务两个方面,而管理与服务的目标会存在冲突,比如服务想要使得其服务的单个应用运行效率最大化,而管理希望整个系统的资源整体利用率最大化,比如手机面向人机交互,所以希望当个应用运行效率最高
![]()
- 应用通过系统调用与操作系统交互
![]()
- 操作系统的管理,如何卡死一个OS?不停的fork,可以通过cgroup/Linux解决该问题,虚拟机,这些都是资源隔离。还可以重启机器,只读约束(也就是不良的代码,被检测出来之后不准运行)
![]()
- 操作系统的挑战,由于进程之间的隔离,进程间的通信速度极慢
![]()
- 现在出现了非易失性内存,所以新的操作系统需要保证崩溃一致性
![]()
- os提供抽象,把复杂留给自己,把简单给用户
![]()
- 上交教学操作系统ChCore,微内核
微内核便以形式化验证,提高内核安全性![]()
os的挑战
- os的可扩展性,多核cpu应该获得相应核数的性能提升,但是却事与愿违,由于🔒与一致性要求等原因
![]()
- 隔离与性能的Tradeoff,由于隔离的要求,但是进程间通信代价很大
![]()
- 安全问题,do_brk为了加快匿名页隐射,不做很多边界检查,
![]()


以及现在的定制化os



即使应用想要完全控制硬件,也需要os,os可以提供程序装载与进程调度等功能






微内核便以形式化验证,提高内核安全性



浙公网安备 33010602011771号