
我们常见的计算机比如常见的笔记本,服务器大部分遵循冯诺依曼体系结构。
电脑由一个个硬件组成,硬件接受到的数据传入给存储器,存储器交给CPU进行计算,计算后的结果返回给存储器,然后再由存储器把数据传给输出设备。
输入设备:键盘,摄像头,话筒,磁盘,网卡...
输出设备:显示器,音响,磁盘,网卡...
存储器:内存。
CPU:运算器进行算术运算、逻辑运算。
那么这里就问题来了,为什么不直接让CPU与输入输出设备进行交互,要在中间加一个内存呢?
首先我们要知道每个硬件对数据的反应速度是不同的,由高到低为 CPU && 寄存器 > 内存 > 磁盘/SSD > 光盘 > 磁盘
然后要知道木桶效应,一个桶能装多少水,不是由最长的一块板来决定的,是根据最短的一块板来决定的。
CPU运算速度快,外部设备的速度慢,一边接受数据,一边计算,这样会照成整体效率变低,加一个内存,把接受到的数据到一定程度后再送给CPU计算然后返回,能有效的提高效率。且这种结构效率高,成本低。
PS:
1.CPU读取数据(数据+代码),都是要从内存中读取。站在数据的角度,我们认为CPU不和外设直接打交道。
2.CPU要处理数据,需要先将外设中的数据,加载到内存。站在数据的角度,外设直接和内存打交道。
这里我们就知道了程序要运行,就必须加载到内存中,这是其体系结构决定的。
操作系统很复杂,是单一的一门学科,学习C++编写程序,暂时不用了解太深,但是要注意我们自己写的程序也都是操作系统在管理。

操作系统本质其实就是一个对软硬件资源做管理的软件
操作系统是分层次的,平时我们用户使用操作系统的时候,使用的是操作系统专门给外部调用的接口,而内部很多核心的东西是自己再进行管理,不会让用户接触。
这是为了用户提供一个稳定,安全,简单的执行环境。
那么操作系统如何管理数据呢?
1.先描述 ( 使用struct结构体 )
2.再组织 ( 使用数据结构排序结构体 )
PS:这里使用的是struc来描述数据,而不是class,因为Linux或Windows其大多数核心内容是C语言加汇编写的。
<