目录
1. 冯诺依曼体系
2. 操作系统
2.1 概念
2.2 解释
2.3 为什么管理
1. 冯诺依曼体系
我相信大家在学习计算机语言时一定听过这个体系结构的,那么这个结构到底是什么呢?上图:
该图是我对冯诺依曼体系结构简单构造,真实情况更加复杂,但是上图对于我们理解来说更加遍历。
透过上图我们可以看到冯诺依曼体系结构的运行过程为输入设备将数据传输给内存,CPU读取内存的数据进行处理然后再传输回内存,再传给输出设备,最后由输出设备传输给下一个冯诺依曼体系。
输入、输出设备被称为外围设备,也就是外设,常见外设有(键盘、话筒、摄像头、网卡、磁盘……),而外设有一个特点,那就是运行速度特别慢,当然是相对于内存和CPU而言。
其实看到上图,我们或许有一个疑问,那就是我们一定要要通过内存这一过程吗?感觉就输入->CPU->输出这样的结构就能够满足所有操作了啊?事实上也确实如此,这样做我们的电脑也同样能跑,但是估计你以后玩游戏的体验就是所有操作都有一秒延迟咯,卡死你。
不妨猜猜为什么会卡呢?其实上面对于外设的解释已经说出了原因,对于CPU来说,外设的运行速度实在是太慢了,慢到几乎每时每刻都在等待外设准备完毕,所以,计算机设计者认为这一点实在是太拉跨了,需要优化,于是出现了内存。
虽然说内存的速度同样没有CPU快,但是对于外设来说却是好了很多,举一个例子:假如有一个数据需要传输,那么CPU需要1ns,内存需要1us,而外设就需要1ms,它们之间的差距可不是一倍两倍的概念。
所以,因为有了内存的存在,之后CPU在需要调用数据的时候就不需要再从外设当中获取了,而是直接从内存中读取,而内存因为空间比CPU大很多,所以内存不管CPU当前用不用外设当中的数据,他都会提前读取外设中的数据,进而再次提高运行效率。
也就是说,整个冯诺依曼体系只能和内存打交道。
2. 操作系统
2.1 概念
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。操作系统包括:
内核(进程管理,内存管理,文件管理,驱动管理)
其他程序(例如函数库, shell程序等等)
讲人话就是操作系统的作用是对软硬件资源进行管理。
2.2 解释
那么既然是管理,操作系统是如何管理的呢?
这里我先分享一个故事,假设我们处于一个学校当中,里面有校长,辅导员,学生这三类人,此时来了一个外卖员,请问:他是不是我们学校的学生?答案很明显,他并不是。那么为什么?其实原因很简单,我们想一想我们进入学校之后做了一件什么事情?那就是将我们的信息录入学校的学工系统,这个外卖员很明显是没有被录入的,也就是说,他并没有被我们的学校管理起来,那么他就不是我们学校的一员。
通过上面的故事,相信大家也能知道管理的本质就是将信息录入,然后再将这一部分数据做统一的处理操作,也就是先描述,在组织。
可能大伙有点疑惑,没关系,我再举一个例子:
假设,校长需要知道一个学生的信息,他需要亲自去认识这个学生吗?很明显不需要,因为这个学生的所有数据都已经被录入进系统了,他就只需要对我们的信息进行处理就行。
用代码的方式大伙可能更能理解这一过程:
struct stu
{
姓名:
年级:
电话:
成绩:
......
}
这一过程就将我们一个人作为信息处理了起来,然后操作系统只要拿到了这个数据就能够知道这个学生怎么样。
我们同时也知道,既然是一个统一的结构那么必定是能够被数据结构联系起来的,例如,我们可以通过链表将整个学生群体联系起来,然后统一管理。
回到我们的操作系统管理,所有的软硬件都是有自己配套的规律的,也就是驱动,我们的操作系统只需要拿到这些结构体就行,不需要去管真正的外设之类的。
2.3 为什么管理
首先,操作系统对下通过管理好了软硬件资源,对用户提供了良好、安全、高效、功能丰富的执行环境。
其次,看到这里,我们知道操作系统要去管理这些硬件,也知道了如何管理,但是为什么我们要去管理呢?好像直接访问也没有什么不好啊?
其实并不是这样,操作系统将我们的软硬件资源管理得很好,为我们提供了一个很优质的服务,但是本质上它并不相信我们,或者是它觉得我们太垃圾了,如果不给我们把资源管好,我们会给它整崩溃,也就是蓝屏。我还是举一个例子:
当我们去银行存500块钱,银行会给我们说“直接去金库放着吧,注意不要动旁边的金条哦,那是别人的”,这样的话吗?很明显不可能啊,就算我不动贪恋,也不可能阻止有人会去拿啊,所以,银行就有了窗口式服务。
同样的操作系统给我们提供的窗口式服务就是为了防止我们乱搞,套用Linux当中的知识,那就是shell外壳将Linux保护起来了。以防止我们胡乱操作,只能使用它提供的指令等等,来操作操作系统。
以上就是我对操作系统的简单理解,如有不对请不吝赐教。