上交os lec1 操作系统的定义
-
操作系统难定义,可以定义为硬件与软件之间的软件层:操作系统是管理硬件资源,控制程序运行,改善人机 界面和为应用软件提供支持的一种系统软件
-
操作系统为应用提供的服务:
- 为应用提供计算资源的抽象,
- CPU,进程/线程,数量不受物理CPU的限制
- 内存,虚拟内存,大小不受物理内存的限制
- I/O, 将各种设备统一抽象为文件,提供统一接口
- 为应用提供线程间的同步
- 应用可以实现自己的同步原语(如spinlock)
- 操作系统提供了更高效的同步原语(与线程切换配合,如pthread_mutex)
- 为应用提供进程间的通信
- 应用可以利用网络进行进程间通信(如loopback设备)
- 操作系统提供了更高效的本地通信机制(具有更丰富的语义,如pipe)
- 为应用提供计算资源的抽象,
-
操作系统对于应用的管理
-
操作系统需要考虑管理与服务两个方面,而管理与服务的目标会存在冲突,比如服务想要使得其服务的单个应用运行效率最大化,而管理希望整个系统的资源整体利用率最大化,比如手机面向人机交互,所以希望当个应用运行效率最高
-
应用通过系统调用与操作系统交互
-
操作系统的管理,如何卡死一个OS?不停的fork,可以通过cgroup/Linux解决该问题,虚拟机,这些都是资源隔离。还可以重启机器,只读约束(也就是不良的代码,被检测出来之后不准运行)
-
操作系统的挑战,由于进程之间的隔离,进程间的通信速度极慢
-
现在出现了非易失性内存,所以新的操作系统需要保证崩溃一致性
-
上交教学操作系统ChCore,微内核