计算机软件的执行过程,一文看懂计算机执行程序的过程 – 全文

程序就是指令的集合,为使计算机按预定要求工作,首先要编制程序。程序是一个特定的指令序列,它告诉计算机要做哪些事,按什么步骤去做。指令是一组二进制信息的代码,用来表示计算机所能完成的基本操作。

1、程序

程序是为求解某个特定问题而设计的指令序列。程序中的每条指令规定机器完成一组基本操作。如果把计算机完成一次任务的过程比作乐队的一次演奏,那么控制器就好比是一位指挥,计算机的其它功能部件就好比是各种乐器与演员,而程序就好像是乐谱。计算机的工作过程就是执行程序的过程,或者说,控制器是根据程序的规定对计算机实施控制的。例如,对于算式

2cf38b4748cda80c544c0f3481e46589.png

① 指令部件:指令部件的主要功能是取指令和分析指令。它由指令指针IP(也叫指令计数器IC或程序计数器PC)、指令寄存器IR、指令译码器、地址计算部件组成。其中:

●指令指针IP的功能是指出当前指令的地址。它有加1功能,通常每取一条指令后自动加1,以指出下条指令的地址。遇到特殊情况(如转移)可通过地址计算部件形成下一条指令的地址。

●指令寄存器IR保存由存储器取来的指令,并分别把操作码OP和操作数地址AD送指令译码和地址计算部件。

●指令译码器也称操作码译码器。它按操作码的内容向操作控制部件提供相应的操作电信号。

●地址计算部件的作用是对指令中地址码进行(变址、间址等)运算,求出的操作数地址送存储器以取出数据;或者把转移指令中指出的下一条指令地址送IP。

② 时序部件:时序部件也叫节拍发生器,它能为各部件提供一个时间基准。时钟频率(如800MHz,1GHz,2 GHz,2.4 GHz,3 GHz…)越高,计算机的工作速度就越快。

③ 操作控制部件:该部件的功能是根据指令译码器的规定内容,在规定的节拍内向有关部件发出操作控制信号。

⑶ 指令的执行过程

通常,计算机执行一条指令的步骤如下:

① 把指令指针IP中的指令地址送存储器,从该地址取出指令送指令寄存器IR;

② 地址计算部件,根据IR中的地址码形成操作数地址送存储器,从该地址取出数据,送到运算器中的寄存器(或寄存器组);

③ 将IR中的操作码OP送指令译码器进行译码;

④ 在控制器发出的操作信号的控制下,计算机各有关部件执行操作码OP规定的操作;

⑤ 指令指针IP加1,形成下一条指令地址。如遇到转移指令,则按转移指令对状态标志寄存器测试的结果,决定是否将转移指令中指出的指令地址送指令指针IP。

程序的执行过程

当我们输入以下程序,编译运行,计算机从屏幕输出hello, world!。整个过程计算机都怎么运作的呢/p>

07509d573e99a8994807db0e64dd60f0.png

因为我们输入的hellow,world是人可以阅读和编写的,但是机器并不能直接识别他们,我们需要把这些文字翻译成机器可执行的二进制文件,这一部分的工作是由编译系统完成的。编译系统由预处理器、编译器、汇编器、连接器四部分组成。以hello, world程序为例,各部分共同完成将源文件编译成二进制可执行文件。各个部分完成的具体工作如下:

93a7e209eed68bcf01a4a9b70310ed0d.png

Shell:命令行解释器,当用户输入一行命令后,shell先判断它是不是一个shell内置命令,如果不是,shell会假定用户输入为一个可执行文件的名字,从而去加载并执行该文件。因此,当我们通过编译系统将源文件编译成可执行二进制文件后,在shell中输入我们得到的可执行二进制文件名,shell将其从磁盘中加载到主存当中,通过CPU进行解释运行,最终通过终端设备(屏幕)将他显示出来,程序运行结束。

主存储器:简称主存,是处理器执行程序时用于临时存放程序及其数据。主存由一组动态随机存储器芯片组成。

运算器:计算机中执行各种算术和逻辑运算操作的部件。

控制器: 计算机中执行各种算术和逻辑运算操作的部件。

三、CPU的组成

CPU是由四大部分所构成的:寄存器、控制器、运算器、时钟。

寄存器

CPU内部的内存,程序加载进CPU内部的寄存器中从而被用来解释和运行。

控制器

计算机的指挥中心,负责决定执行程序的顺序,给出执行指令时机器各部件需要的操作控制命令。

运算器

计算机中执行各种算术和逻辑运算操作的部件。

时钟

它是处理操作的最基本的单位,影响着指令的取出和执行时间。

CPU中的主要寄存器

f47e99eac9fcf877b6b47af8ead1e565.png

处理器的操作主要是围绕程序计数器、算术/逻辑运算单元、主存来进行运作的。处理器首先从PC所指向的主存存储单元读取指令,解释指令中的位,执行该指令指示的简单操作,然后更新PC寄存器,使其指向下一条要执行的指令。CPU会执行的操作有:

加载:把一个字节或一个字从主存复制到寄存器,覆盖掉寄存器中原来的值。

存储:把一个字节或一个从寄存器复制到主存,并覆盖主存中原来的值。

操作:把两个寄存器的内容复制到ALU,ALU对两个字做算术运算后存回其中的一个寄存器,该寄存器中原来的值会被覆盖。

跳转:从cpu执行的指令抽取一个字的内容存入PC,覆盖掉原来的值,从而改变下一条要执行的指令,达到跳转的目的。

a302c263b9f1d97893ff98723ba489af.png

hellow,world程序首先被加载,从磁盘中复制到寄存器中,寄存器将hwllow,world程序复制到主存中进行存储。程序运行过程中,CPU执行hellow,world机器指令,指令的结果是将”hellow,world”字符由内存复制到寄存器,寄存器再将结果复制到显示设备上显示出来。

相关资源:实例讲解分布式缓存软件Memcached的Java客户端使用-其它代码类…

来源:高顿CFA

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月5日
下一篇 2021年6月5日

相关推荐