操作系统知识点——内存管理(一)

一、内存管理的功能1、内存的分配和回收。2、地址变换。将逻辑地址转为物力地址。3、扩充内存。借助虚拟存储技术或其他自动覆盖技术,为用户提供比内存空间大的地址空间,从而实现漏记上扩充内存容量的目的。4、存储保护。二、应用程序的编译、链接与装入应用程序从源程序到执行程序的进程,经历了编译、链接、装入3个步骤。首先经过编译将源代码编译为若干目标模块;其次通过链接程序将编译好的目标模块以及所需的函数链接在...
摘要由CSDN通过智能技术生成

一、内存管理的功能

1、内存的分配和回收。

2、地址变换。将逻辑地址转为物力地址。

3、扩充内存。借助虚拟存储技术或其他自动覆盖技术,为用户提供比内存空间大的地址空间,从而实现漏记上扩充内存容量的目的。

4、存储保护。

二、应用程序的编译、链接与装入

应用程序从源程序到执行程序的进程,经历了编译、链接、装入3个步骤。首先经过编译将源代码编译为若干目标模块;其次通过链接程序将编译好的目标模块以及所需的函数链接在一起,形成完整的装入模块;最后通过装入程序将这些装入模块装入内存并执行。

 

(一)程序链接的3种方式

1、静态链接。在程序运行前,先把各个目标模块及所需库链接为一个完整的可执行程序,以后不再拆开。

2、装入时动态链接。将应用程序编译后得到的一组目标模块装入内存时采用边装入边链接的动态链接方式。

3、运行时动态链接。直到程序运行过程中需要一些模块时,才对这些模块进行链接。即,在执行过程中,当发现一个被调用模块尚未装入内存时,立即去找到该模块并将之装入内存,然后把它链接到调用者模块上。凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上。

(二)程序装入的3种方式

1、绝对装入。在编译时就知道程序要驻留在内存的物理地址,编译程序产生含有物理地址的目标代码。不适合多道程序设计。

2、可重定位装入。根据内存当前情况,将装入模块装入到内存的适当位置,地址变换通常在装入时一次完成,之后不再修改,这种方式也成为静态重定位。当操作系统为程序分配了一个以某地址为起始地址的连续内存区域后,重定位时将程序中指令或操作数的逻辑地址加上这个起始地址就得到了物理地址。

3、动态运行装入。允许程序运行时在内存中移动位置。把装入模块装入到内存后的所有地址都是逻辑地址(相对地址),在程序执行过程中每当访问到相应指令或数据时,才要将访问的程序或数据的逻辑地址(相对地址)转换为物理地址,这种方式也成为动态重定位。动态重定位的实现依靠重定位寄存器。当某个作业开始执行时,操作系统负责把该作业在内存中的起始地址送入重定位寄存器中,之后在作业的整个执行过程中,每当访问内存时,系统就会自动将重定位寄存器的内容加到逻辑地址中去,从而得到与该逻辑地址对应的物理地址。

(三&

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值