4.1存储器管理 程序的装入与链接

知识回顾:

  • 主存:保存进程运行时的程序和数据
  • 寄存器:速度最快,价格昂贵容量不大,一般以字为单位,只要存放指令一次操作的数据就够了 。
  • 高速缓存:一种速度比内存快的存储设备,一般同寄存器一样集成在CPU中,存放内存的部分拷贝,把常用的数据放这里可以提高速度
  • 磁盘缓存:内存的一部分,将频繁使用的一部分磁盘数据信息预读入在磁盘缓存,减少磁盘读写时间

在这里插入图片描述
1.程序的装入和链接
多道程序环境下,程序运行必须为之先建立进程。
创建进程的第一件事:将程序和数据装入内存。
2.程序进内存的一般过程:
编译compiler:编译程序:将用户源代码编译成若干个目标模块。
链接link:链接程序:将形成的一组目标模块,及它们需要的库函数链接在一起,形成一个完整的装入模块。
装入load:由装入程序将装入模块装入内存,构造PCB,形成进程,开始运行(使用物理地址)。
在这里插入图片描述
3、地址
逻辑地址(相对地址,虚地址)
物理地址(绝对地址,实地址)
地址映射:
将用户程序中的逻辑地址转换为运行时由机器直接寻址的内存物理地址的过程。
4、程序装入中的地址处理
逻辑地址 ====== 物理地址:
绝对装入方式(absolute loading)

逻辑地址 重定位 物理地址:
静态可重定位装入方式(relocatable loading mode)
动态运行时(重定位)装入方式(dynamic run-time loading)
绝对装入方式
编译程序生成的“目标代码”就是”装入模块” ,逻辑地址直接从某个地址R处增长,装入模块直接装入内存地址R处。

5、重定位
把目标程序中的指令和数据的逻辑地址变成内存中的物理地址的地址变换过程。
在这里插入图片描述

6.静态可重定位装入方式
地址映射在程序执行之前进行,重定位后物理地址不再改变。
可由专门设计的重定位装配程序完成(软):装入时根据所定位的内存地址去修改每个逻辑地址,添加相应偏移量,重定位为物理地址。
7.不同的程序连接方式
根据链接时间的不同,分成三种:

  • 静态链接:装入运行前将多个目标模块及所需库函数链接成一个整体,以后不再拆开。
  • 装入时动态链接:装入内存时,边装入边链接的链接方式。
  • 运行时动态链接:对某些目标模块的链接,在执行中需要该目标模块时,才对它进行链接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值