程序是怎样跑起来的 简述

程序是怎样跑起来的。。。刚刚看别人些的东西一点点小总结。
一、高级语言----机器语言
 1、从高级语言到机器语言这个过程大概有以下几个 步骤:

  a、预处理:删除注释、展开宏定义、处理预编译指令 等等,最后生成一个文件可供编译处理。

  b、编译:编译就对 预处理 中生成的文件 进行各种分析和优化使之生成一个汇编代码文件。

  c、汇编:汇编就是将编译出的文件转换成机器指令,这些指令打包成一种叫object的文件,俗称目标代码。

  d、链接:将目标代码拼接起来,生成一个可执行文件。

二、装载

我们写的程序是一个普通的文件,是机器指令和数据的集合。这些指令和数据存储在磁盘上的 可执行映像(executeable image)中。要使之能运行起来就需要 装载。

1、装载器:装载器长驻内存中,他可以把可执行映像中的数据 装载到内存中。

2、当数据装载到内存中之后就可以运行了,在指令指针寄存器的控制下,指令一条条的传入CPU中运行;  这些指令控制的对象一搬是各种存储器: 内存、外存、CPU寄存器等等。 这些存储器中存有 待运行的指令和待处理的数据,所以我们看到程序的“跑” 大概就是这些指令和数据 的不断变化。于是,我们可以这么理解:程序的执行过程实际上就是一个集合,这个集合里的各种指令和数据为了做成某件事情在不断的变化。我们把这个集合称作“进程”,它代表程序的执行过程,是一个动态的实体,它随着程序中指令的执行而不断地变化。在某个特定时刻的进程的内容被称为进程映象(process image)。

3、虚拟内存:外存中分配的空间吧。


//感谢:http://m.blog.csdn.net/blog/pmpmp2006/4639029


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值