程序是如何运行的——CPU是大舞台

在这里插入图片描述
你有没有考虑过,当你辛辛苦苦写了好多代码,最后编译运行的时候,计算机到底经历了什么过程?

如同施了魔法一般,计算机运行的程序实现了我们当初的构想。

而随着计算机技术的不断提高,我们可以利用集成开发环境开发程序,完全不需要知道底层硬件的运行机制。

但在享受的同时,也付出了代价,虽然有一定的编程能力,但是无法进一步提高。

今天想做的就是给程序运行机制去魅

首先,先了解一下程序运行的一般流程。

程序运行的流程

在这里插入图片描述
其中,今天将着重了解一下CPU的解释和执行程序功能,因为个人觉得是最重要的一个部分。未来,将会继续介绍程序编译的原理。

上述部分概念的解释

程序:指示计算机每一步动作的一组指令

机器语言:CPU可以直接识别并使用的语言。

内存:随机存取存储器(英语:Random Access Memory,缩写:RAM;也叫主存)是与CPU直接交换数据的内部存储器。计算器的主存储器,简称主存。主存通过控制芯片等与CPU相连,主要负责存储指令和数据。

主存由可读写的元素构成,每个字节(8bit)都带有一个地址编号。

CPU:中央处理器(Central Processing Unit,缩写:CPU)可以看成是计算机的大脑,功能主要是解释计算机指令以及处理计算机软件中的数据 。

CPU的组成:

寄存器、控制器、运算器和时钟,各部分之间由电流信号互相连通。

1.寄存器:暂存指令、数据等处理对象,可以当作内存的一种。根据种类的不同,一个CPU会有20—100个寄存器。

代表的有:

累加寄存器:存储执行运算的数据和运算后的数据。

程序计数器:存储下一条指令所在内存的地址。决定了程序的流程。而程序的流程分为顺序执行、条件执行和循环执行。

通用寄存器:存储任意数据。

此外还有很多寄存器,在这里就不一一介绍了。

2.控制器:负责把内存上的指令、数据等读入寄存器,并根据指令的执行结果来控制整个计算机。

3.运算器:负责运算从内存读入寄存器的数据。

4.时钟: 负责发出CPU开始计时的时钟信号。

CPU的运行机制

那么程序启动后,CPU到底是怎么运行的呢?

1.程序启动后,根据时钟信号,控制器会从内存中读取指令和数据到寄存器。

2.通过对这些指令加以解释和运行,运算器就会对寄存器里的数据进行运算,运算结果存入寄存器。

3.控制器根据运算结果来控制计算机(这里面的控制指的是:内存和磁盘等媒介的输入输出、键盘和鼠标的输入、显示器输出等)。

下面我们用动图实践一下,运行Java编写的简单的求和程序(1+2),计算机内存和CPU都发生了什么?

其中因为机器语言(那堆01010的东西)很难理解。所以,内存的存储内容就用注释的方式(如:指令:将0015地址的数据存放在累加寄存器中)。
在这里插入图片描述

为了进一步加深对CPU和内存的运行机制的理解,我们可以简单的类比一下,大家都从电视或者在现场看过晚会。

可以把内存看作是演员的候场区,候场区的功能就是容纳了准备上场的演员;内存也是用来容纳数据和指令。

CPU就相当于晚会舞台现场。舞台的功能就是想把排练好节目呈现给大家观看。晚会的节目都有总导演进行全场的统筹,就像CPU里面的控制器。当然除了总导演外,还有灯光师,音响师等等,各司其职,就像CPU里面的运算器、寄存器等等。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值