天天看点

程序运行时硬件的工作流程

#以Linux系统为例

1.当在终端输入命令行时,由键盘控制器将信号流传至CPU中的寄存器,再由寄存器传至内存中

程序运行时硬件的工作流程

2.命令输入完成点击回车,系统会判定输入完成,调用程序文件这时存放在磁盘的文件会传至内存中

程序运行时硬件的工作流程

3.内存中的程序代码数据执行后会传至寄存器,再由寄存器传至ALU进行二进制流的计算,计算完毕返回至寄存器,最终由寄存器返回至显示器输出

程序运行时硬件的工作流程
总结:执行输入命令是有控制器走向CPU,再由CPU走向内存,执行程序是由磁盘走向内存再到CPU,最后由CPU输出到显示器

cache存在的必要条件

首先要清楚的知道计算机每个存储元件都有读取速率这个概念,而不同元件之间的读取速率又不相同,例如:寄存器>内存(主存储器)>磁盘,所以CPU内部又诞生出了cache元件(SRAM),1.cache又分为L1/L2/L3读取速度依次下降,造价也依次下降,但均快于内存读取速率

2.读取速率快的存储元件存储空间都小,反之都大

3.L1的读取速率与寄存器的速率几乎相同

程序运行时硬件的工作流程

金字塔形存储元件对比图

程序运行时硬件的工作流程

操作系统的存在

1.计算机应用程序与硬件设备CPU/内存/磁盘/IO控制器进行交互是由操作系统作为中间桥梁搭建联系的,也就是说软硬件沟通的桥梁源于操作系统,当然操作系统也是软件,其最重要部分就是我们常说的内核

2.操作系统可以控制应用程序防止对硬件设备进行滥用,同时也可以管理我们的硬件,这都是通过操作系统中的进程、虚拟内存、文件来实现的

浅谈进程

1.进程是由操作系统内核来进行管理的

2.在CPU内核中,多个并发的进程其实是交替运行的,简单的说就是当A进程运行到某个节点位子时,B进程开始从上次停止的位子运行,当B到达某个节点时停止,A运行也同理

程序运行时硬件的工作流程
注:有疑问的朋友可以写两个循环的代码打印循环的内容,注意循环数据尽量大,可以加上sleep以便看清最主要的还是要求是并发哦,如果不这样做的话代码会等上一个循环结束而后进行下一个循环的哦

本文内容摘选自《深入理解计算机系统》第三版

继续阅读