我们为什么需要操作系统(Operating System)?
我们为什么需要操作系统(Operating System)?
a) 从计算机体系的角度,OS向下统筹了所有硬件资源(1),向上为所有软件提供API调用(2),使得软件程序员不必知晓硬件的具体细节,实现了计算机体系的分层;
b) 从资源管理的角度,OS对有限的计算资源进行分配(3),是软件按照“某种理想的状态序列”运行(4),以获得“性能与用户体验上的最优解”(5)。
带来的一些问题:
1> OS怎么统筹硬件资源?
答:暂时不知道,但肯定具有统一的协议.
2> OS 与 OS之间怎么统一API,使得软件具有可移植性?
答:POSIX协议.
3> 为什么要分配计算资源,而不是每个程序直接执行即可?
答:合理地分配计算资源,可以更高效地完成任务;
3.1> 怎么分配计算资源?
答:首先要对计算资源进行虚拟化,其次是其次;
3.2> 什么叫资源的虚拟化?
答:就是将物理资源转换为更通用、更easy to use 的虚拟形式【建立抽象层】,这也是我们为什么要对资源进行虚拟化的原因。
4/5> 什么叫软件的“理想的状态序列”?
答:我们希望当很多软件按照这个“理想的状态序列”运行的时候,能够兼顾高性能与用户体验;
4.1> 怎么得到“理想的状态序列”?
答:通过OS的进程调度算法(这是我接下来会鸽的话题);
5> 什么叫高性能?什么叫用户体验?
答:高性能定义为一些作业从开始到结束的平均时间,时间越短,性能越高(好学术啊),总之同样的作业,完成的越快性能越高嘛;用户体验的话,比如你开始一个作业,却因为前面有作业正在占用计算资源,你的作业迟迟得不到回应,你肯定很急,但不考虑用户体验的OS只告诉你先别急;
5.1> 一定要兼顾么?不能只取其一么?
答:可以,具体看应用场景的需求。
总结一下,操作系统的目的之一是:在所有资源受控的情况下,为一些用户提供提供高性能与高体验的服务。
// 爆肝更新cpu虚拟化部分中…