计算机是怎样运行程序的?

计算机是怎样运行程序的?,第1张

为了使计算机程序得以运行,计算机需要加载代码,同时也要加载数据,然后由处理器执行指令。整个过程可以总结为编译、链接、装载、执行。

1、编译

编译过程又可以被分为两个阶段:编译、汇编。

编译是指编译器读取字符流的源程序,对其进行词法与语法的分析,将高级语言指令转换为功能等效的汇编代码。

汇编器是将汇编代码转变成机器可以执行的命令,每一个汇编语句几乎都对应一条机器指令。汇编相对于编译过程比较简单,根据汇编指令和机器指令的对照表一一翻译即可。

2、链接

链接的主要内容是将各个模块之间相互引用的部分处理好,使得各个模块之间能够正确地衔接。链接又分为静态链接和动态链接:

静态链接是指在编译阶段直接把静态库加入到可执行文件中去,这样可执行文件会比较大;

动态链接则是指链接阶段仅仅只加入一些描述信息,而程序执行时再从系统中把相应动态库加载到内存中去。

3、装载

程序在经过链接后,得到了可执行文件,下一步就需要将可执行程序加载到内存中。

由于现代 *** 作系统均采用分页的方式来管理内存,所以 *** 作系统只需要读取可执行文件的文件头,之后建立起可执行文件到虚拟内存的映射关系,而不需要真正的将程序载入内存。

4、运行

加载器将可执行目标文件中的代码和数据从磁盘复制到内存中,然后通过跳转到程序的第一条指令或入口点来运行程序。

在程序的运行过程中,CPU发现有些内存页在物理内存中并不存在并因此触发缺页异常,此时CPU将控制权限转交给 *** 作系统的异常处理函数, *** 作系统负责将此内存页的数据从磁盘上读取到物理内存中。

数据读取完毕之后, *** 作系统让CPU jmp到触发了缺页异常的那条指令处继续执行,此时指令执行就不会再有缺页异常了。

扩展资料

为使计算机按预定要求工作,首先要编制程序,无论是最早的 *** 作系统还是现代 *** 作系统,程序的运行都是计算机工作的本质。

早期计算机是单任务执行,由程序员直接编写 *** 作系统可以识别的机器语言,到现在可以实现多道程序并行,并且程序的开发由更利于程序员理解的高级语言编写,源程序在经过一系列翻译过程,变成计算机理解的机器语言,再执行。

整个程序执行的过程,需要CPU、内存、程序代码、设备等配合,才能实现程序要表达的功能。

参考资料来源:百度百科-计算机

计算机从一开机就在执行程序,除了执行程序,它什么都不会干。执行程序的过程仅是以下4个过程的不断重复。

①CPU按指定的地址从存储器中取出指令。

②执行这条指令。

·每次执行指令一般是以下几种 *** 作之一或二:

·从指定存储单元或I/O接口单元取出数据。

·将数据写入指定的存储单元或I/O接口单元。

·对数据进行算术或逻辑运算。

③计算下一条指令在存储器中的地址(在大多数情况下,下一条指令地址紧接着上一条指令的地址)。

④返回到第1步开始下一个取指令、执行指令周期。

可以看出计算机的运行过程,就是执行程序的过程。CPU 不断地从存储器中取出指令执行,通过执行指令完成对存储器中数据的加工和实现对I/O设备的 *** 作。以上过程虽然很简单,每条指令能干的事情很少,但是计算机依靠高速地、大量地执行简单的指令来实现复杂的功能。所以计算机发展一直以提高速度为目标。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11030631.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存