文章目录
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯·诺依曼体系。
截至目前,我们所认识的计算机,都是由一个个的硬件组件组成
- 输入单元:包括键盘, 鼠标,扫描仪, 写字板等
- 中央处理器(CPU):含有运算器和控制器等
- 输出单元:显示器,打印机等
- 值得注意的是磁盘和网卡既属于输入设备也属于输出设备
关于冯诺依曼,必须强调几点: - 这里的存储器指的是内存
- 不考虑缓存情况,这里的CPU能且只能对内存进行读写,他很笨只能被动的接受内存传来的数据。并且它有自己的指令集,而所谓的编译就是将我们写的代码翻译成对应的二进制可执行程序,也就是CPU的指令集的集合,所以编译器和CPU有很大关系,编译时也分32位或者是64位,不能直接访问外设(输入或输出设备)
- 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
简单总结:CPU不能和外设直接沟通,所有设备都只能直接和内存打交道。
为什么输入输出设备不能直接和CPU建立联系呢?
不知道大家听没听说过木桶效应:一个水桶无论有多高,它盛水的高度取决于其中最低的那块木板。
这里也是一样因为输入输出设备的反应速度与CPU的反应速度相差过于悬殊,而内存的反应速度介于两者之间,为了提高整机的效率,所以才有这样的这样的一套体系结构。
所以有时候我们说运行程序要先从磁盘加载到内存,为什么呢?因为冯诺依曼这么规定。
补充:输入设备->内存的过程叫做INPUT,内存->输出设备的过程叫做OUTPUT,也就是io的过程。
对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上,请解释,从你登录上qq开始和某位朋友聊天开始,数据的流动过程。从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程。如果是在qq上发送文件呢?本质上这两者之间的沟通就是两个体系结构在沟通。我硬件是这样的结构,那么软件就要配合我们这样去干,就好比骨骼和肌肉之间的关系。
推荐阅读:通俗易懂帮你理清操作系统
好了今天的分享就到此为止了
最后:如果你觉得对你有用就一键三连吧,哪里有没看懂的地方或者哪里有错误可以在评论区留言欢迎批评指正,作者看到的话会第一时间回复。
end