美文网首页
程序是怎么运行的

程序是怎么运行的

作者: 刘小小楠 | 来源:发表于2020-04-04 11:18 被阅读0次

        作为一个计算机专业的学生,你有没有认真思考过,当你在编译器里写出程序的时候,它是如何在计算机上运行的?接下来我们以最简单的C语言的"Hello world"代码来告诉你,程序是如何运行

//文件名称为sum;#include<stdio.h>

int main(void)

{

inta=1,b=2,sum;

sum=a+b;

printf("%d\n",sum);}

1.编写完程序后,一个sum.c文件就保存在了桌面上,这个叫做C源文件。那桌面又属于计算机的哪一个部分呢?一台计算机包含如下基本五个部分:

在计算机中,存储器用来保存信息。存储器又分为内部存储器和外部存储器,内部存储器即我们所说的内存,而外部存储器就是我们说的磁盘,磁盘又分为硬盘和软盘(软盘基本已经从PC中消失),而我们电脑中的大部分就都是硬盘了,这里也分为固态硬盘和传统机械硬盘。不管怎么说吧,磁盘也好内存也罢,就是用来存放数据的,那么我们就知道了这个C源文件应该就是存放在电脑中的硬盘中了。

代码被保存到硬盘之后,当计算机要运行程序的时候,就把代码从硬盘复制到内存中。那么在这个过程中,CPU起到什么作用?

CPU与内存的关系

通过这张图,我们可以清晰直观的了解到CPU,内存和硬盘三者之间的关系。我们之前的代码被保存到了硬盘中,如果要执行这段程序的话,需要把这段代码从硬盘中读取到内存中,此时的代码已经变成了二进制文件存储在内存中。代码的作用是把求出a + b 的值并输出显示到屏幕上,CPU收到“加”这个指令后,就把a的值和b的值读入到寄存器中?那么问题又来了,寄存器是个啥?要了解寄存器,先了解CPU。

2.CPU是个什么东西?

CPU基本由四部分组成,如下图所示:

CPU组成

CPU的作用主要有以下几种功能:

CPU功能

接下来,我们重点介绍寄存器和运算器。

寄存器是存储部件,容量非常有限,能存储的数据的大小。寄存器用来存放指令、数据等处理对象。现在来说一般有两种,也就是我们常听说的32位和64位,32位的寄存器就能存储4个字节的数据,64位的寄存器就能存储8个字节的数据,另外CPU也分为32位和64位其实就是由其中的寄存器的位数决定的。现在的CPU一般都内置了很多的寄存器,依此来完成比较复杂的操作。

运算器是计算的核心,主要的作用负责从内存读入寄存器的数据。需要注意的是:运算器是没法直接操作内存中的数据的,运算器操作的数据是寄存器中存放的数据。

3.CPU和内存的交互

程序代码被读取到内存中了,现在要执行这段代码,那就需要CPU出马了,首先,CPU会去读取需要进行操作的数据。继续看这代码:也就是需要读取数据a和b,那么读取到的数据a和b存放在哪了呢?根据我们上面对CPU简单的了解可知,数据a和b是被放到了CPU中的寄存器中,如下图所示:

在CPU中有两个比较重要的组件就是运算器和寄存器,CPU中的寄存器可以有很多个,再看内存,是一个个类似楼房形状,每层楼房都有编号,比如说现在数据a和b分别存放在#1和#2上,然后CPU将他们读取放在寄存器R1和R2上。

这个时候就要计算a和b的和,这就用到了运算器,它会拿到寄存器R1和R2,也就是拿到数据a和b,然后做加法运算

计算之后的结果即sum,运算器会再次把它放到寄存器,比如R1中,这个时候之前的数据b就会被覆盖,如此一来,CPU和内存就一起完成一次加法运算操作。

接下里,我们的关注点从加法运算转移到内存,实际上,程序代码被加载到内存的时候会产生数据和指令两部分,数据我们都清楚,那指令是什么?

指令就是说明程序该怎么执行。对于CPU来说就是告诉CPU该做什么,比如告诉CPU,读取数据a和b,然后再将他们相加,即CPU是根据指令干活,指令让怎么干,CPU就执行什么操作。

这就是程序从编写到执行的全部过程,怎么样,是不是感觉豁然开朗。

相关文章

  • 程序是怎么运行的

    作为一个计算机专业的学生,你有没有认真思考过,当你在编译器里写出程序的时候,它是如何在计算机上运行的?接下...

  • 程序是怎么跑起来的——虚拟内存与动态链接

    Linux程序是怎么执行的——动态链接 0、前言 计算机的核心任务就是运行程序,而程序是如何运行的?这个问题一直困...

  • 三行情书

    我的程序很简单 怎么运行 都是我爱你

  • 小程序

    1. 小程序的运行机制?它是怎么和微信交互的? 小程序是 WebView + 原生组件的Hybrid 方式,小程序...

  • CPU中的程序是怎么运行起来的

    总述 最近一位朋友问我,开发的代码是怎么在芯片运行起来的,我就开始给他介绍代码的预编译、汇编、编译、链接然后到一般...

  • 基础

    书 一个程序的运行环境包括:内存、运行库、系统调用 1、程序的内存布局 内存:是承载程序运行的介质,是程序进行各种...

  • 程序是如何运行的

    程序编译和程序解释 计算机是理解不了人类的语言、同样也理解不了高级编程语言的,CPU能直接解析并运行的不是源代码而...

  • 程序是如何运行的?

    在我们学习编程时,往往关注的是某种语言以及对应的使用环境,在此基础上完成我们的业务开发并部署运行。抛开这个最常见的...

  • 程序是如何运行的

    做任何事情,对整体有个宏观的把握是非常有必要的,把握住了整体,就有了宏观概念,相当于有个骨架,以后所有的东西无非是...

  • Python多任务之进程

    Process多进程 进程的概念 程序是没有运行的代码,静态的; 进程是运行起来的程序,进程是一个程序运行起来之后...

网友评论

      本文标题:程序是怎么运行的

      本文链接:https://www.haomeiwen.com/subject/aivdphtx.html