大多数常见的计算机,类似笔记本或者是台式电脑,包括不常见的计算机,类似服务器,大多遵循冯诺依曼体系。
冯诺依曼体系结构是一个硬件体系的架构构成。 输入设备: 键盘,鼠标,摄像头,话筒,磁盘,网卡等 输出设备: 声卡,显示器,磁盘,网卡 中央处理器/CPU/芯片: 运算器,控制器 存储器: 内存 设备是互相连接的。 这些硬件都是通过线连接起来的,只有通过线,才能够实现其中之间的相互连接和联系。—通过主板进行连接。 数据信号: 数据在计算机里进行数据的流动,本质上是从一个设备到另一个设备(数据在不同设备上的互相拷贝),所以就要求每一个设备要求数据具有保存的能力。 根据图上的显示,观察到数据信号的传输经过中央处理器,但是由于中央处理器的运算很快,所以几乎没消耗什么时间。所以!设备之间的拷贝效率的快慢就决定了整个计算机整机的基本效率。 内存金字塔
距离CPU越近的存储单元,它的效率越高,但价格越贵。 所以既然是这样,那么为什么我们不直接在数据信号传输过程中不取消存储器,直接让输入设备到CPU,CPU直接到输出设备呢?因为输入设备的速度相对于CPU处理的速度就显得非常慢,两者之间的速度差非常大(木桶原理),CPU得一直等着输入设备进行输入。 加上存储器之后,虽然在木桶原理中,最短的地方并没有加长,但是和以前就是完全不一样了,我们可以预先的在内存中加载大量的数据,CPU一直在运算。 这样的话,我们就能够不依靠输入输出设备来决定效率,反而是根据CPU来决定整体计算机的效率。 所以存储器也就类似于一个巨大的缓存,能够有效的提高计算机整体的效率。 之所以这么设计存储单元等级,也是为了能够为了让普通消费者能够用得起电脑,如果全部都是寄存器的话,那么电脑的价值将会完全不一样。只有能够普及的设备,才能够发展起来。 在硬件数据流动角度来看 1、CPU不直接和外设打交道,只和内存打交道。 2、外设(输入和输出)的数据不是直接给CPU的,而是先存放在内存之中。 那我们知道这个能够干什么呢?能够解决问题并且知道原理。 1、程序运行为什么要加载到内存? 程序= =代码+数据。代码和数据需要CPU访问。 程序没有被加载到内存的时候,在哪里? 在磁盘上(外设输入设备),二进制文件。 所以没有加载到内存的时候,CPU没有办法进行数据交换,换句话说也就是此时的CPU没有办法执行程序。 总结:由于冯诺依曼体系结构规定这么做的 2、相隔异地的好兄弟是怎么通过聊天软件进行相互的聊天呢? 两台冯诺依曼结构的电脑通过一个相同的软件,利用输入设备写下想要发送的消息,通过存储器经过CPU处理之后,通过网卡(输出设备),发送消息通过网络,发送给异地的兄弟,异地的兄弟通过他的网卡(输入设备),接收到消息之后,再通过存储器在CPU处理下,再到显示器(输出设备),显示在你兄弟的屏幕之上。这样的话,就实现了数据在异地之间的传输,能够让你和你的好兄弟一起在网上聊天。其中CPU概括一下,处理的包含了数据间的加密过程和解密过程。 这一过程是必不可少的,即使是再怎么样花哨的软件,都需要在这样的硬件上进行数据的流动问题。
我们所有买的电脑不只是硬件,我们购买的还有软件的部分—最明显的例子就是操作系统。
操作系统是一个什么东西呢? 操作系统就是一个就行软硬件资源管理的软件。 广义操作系统:操作系统的内核+操作系统的外壳周边程序(给用户提供使用操作系统的方式) 狭义:操作系统的内核
在最底下的就是冯诺依曼结构的硬件组装,再上一层是就是操作系统,其中包含进程管理,内存管理,文件系统,驱动程序等等。操作系统如果直接和硬件连接的话,会造成的问题就是,如果硬件的升级或者是改变,操作系统都需要改变,那这样的话会很麻烦。那么硬件的改变一定需要操作系统的改变吗?难道只有操作系统变了,硬件才能够改变吗? 很显然当然不能够是啊,这样的话会严重阻碍硬件和软件之间的相互发展啊。所以在硬件和操作系统之间,还存在着驱动层,这就是解决问题的一个好办法。我们通过硬件的升级并且硬件的厂商直接提供代码,构建起硬件到操作系统驱动层之间的驱动层。这样就能够解决上述的不统一的问题,只要能够提供相对于的驱动层的驱动,我们的操作系统就能够实现硬件的管理。
称为体系结构的层状划分结构: 硬件->驱动层->操作系统(上面还有,但是现在是只介绍到这里)
就比如说,当我们把有线的鼠标插到电脑里面的时候,晃动鼠标的时候,其实一开始是不会有相对应的反应的(目前只有物理上的连接成功),只有过了几秒之后,突然右下角跳出驱动安装成功的提示之后,鼠标才真的有用,这也就是计算机在安装相对应的硬件的驱动层。 操作系统内核简易图:
所以为什么要有操作系统呢? 正如一个学校,有很多种类的教室,每一个教室都有不同的用处,学校有很多保安,保安中也有一个保安队长。有很多的宿舍阿姨,也就有一个专门是宿舍阿姨的领队一样。也正如计算机一样,其中也存在着不同的硬件,不同的硬件也需要管理,所以计算机来说需要操作系统也是为了方便管理不同的硬件和软件(手段),为了能够让用户拥有良好的运行环境。(目的)。 良好:稳定的,高效的,安全的
请关注下一篇文章“由浅入深的了解进程(2)”. 稍微削短一下文章的长度,希望读者能够关注我的同时,我减少一下一次性读取的难度,下面我将持续更新,直到进程能够完全讲清楚,讲完。