操作系统-课堂笔记-程序装入链接(南航)

程序装入链接

程序装入

引言

首先明确下从.c程序到跑在计算机中都经历了什么过程?

  • 首先将.c程序编译
  • 编译以后由于使用了各个模块,需要进行链接操作
  • 链接完成以后,生成了exe文件,需要将其装入内存中,此即装入
  • 我们双击一个exe文件,其实就是触发了装入
  • 装入以后就交给操作系统来完成(包括进程创建等过程)
  • 至此我们就知道了从.c到跑在计算机中的程序都经历了哪些过程

后面讲解虚拟内存的时候需要用到程序装入链接的知识,所以这里介绍一下。

  1. 绝对装入
  2. 可重定位装入
  3. 动态运行时装入

首先将例子拿出来,有两个文件,第一个为main.c第二个为f.c,main.c中的main函数调用了f函数,如下所示:

main.c
void main(){
	f();
}

f.c
int c=0;
void f(){
	c=c+1;
}

最后的可执行程序可以理解成如下:
在这里插入图片描述

1.绝对装入

所谓绝对装入,即将各个指令的地址都确定下来,如下所示:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值