操作系统 - 地址重定位



一、主存的无力组织和逻辑组织

1. 绝对地址

计算机中,存储器是按字组织,每个字由若干”位“组成(不同计算机子长不同),每个字分配一个地址

目前以多字节为单位进行编址

系统对存储器中的单元进行统一编号,这些编号就是绝对地址

寻址容量与地址线长度有关,n 条地址线可寻址空间为:2n

绝对地址是内存的真实地址——物理地址

存储空间(物理地址空间):绝对地址集合

2. 虚拟地址(相对地址)

虚拟地址:相对于某个基准量(通常是 0)编址时所使用的地址,用户程序编写和编译过程中使用相对地址

名空间:程序员所写符号名组成名空间

地址空间:一个目标程序所限定的地址集合

名空间 ==> 地址空间 ==> 存储空间

二、地址转换

程序执行时,必须将地址空间变为绝对地址才能访问系统分配的内存

地址重定位:操作系统把用户程序指令中的相对地址变换成为所在存储中的绝对地址的过程

地址重定位实现了:从逻辑地址到物理地址的转换

按照重定位时机分类:静态重定位、动态重定位

1. 地址的静态重定位

定义:在程序运行之前,为用户程序实行了地址重定位工作

一般由操作系统中的重定位装入程序完成

重定位装入程序的输入:用户把自己的作业链接装配成一个相对于 0 编址的目标程序

过程:

重定位装入程序根据当前内存的分配情况,按照分配区域的起始地址逐一调整目标程序指令中的地址部分。目标程序在经过重定位装入程序加工之后,不仅进入到分配给自己的绝对地址空间中,而且程序指令中的地址部分全部进行了修正,反映出了自己正确的存储位置,保证了程序的正确运行

特点:

在装入前实现调整

地址要有标识

每次装入都要进行定位

装入后地址不再改变(静态)

2. 地址的动态重定位

定义:在程序执行寻址时进行重定位,访问地址时,通过地址变换机构改变为内存地址

用户程序原封不动的装入内存,运行时再完成地址的定位工作

动态重定位需要硬件的支持,要求系统中配备定位寄存器加法器

特点:

程序可装入任意内存区域(不要求占用连续的内存区)

只装入部分程序代码即可运行

改变系统时不需要改变程序(程序占用的内存空间动态可变,只需要改变定位寄存器中的值即可)

程序可方便共享

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
页式地址重定位操作系统是一种常见的内存管理技术,通常用于将虚拟内存地址转换为物理内存地址。在这种系统中,内存被划分为大小相等的页框,而程序使用的内存也被划分为相同大小的页面。每个页面都有一个唯一的页号,而每个页号都映射到一个特定的页框。 当程序引用一个虚拟地址时,操作系统将虚拟地址分解为页号和页内偏移量,并将页号映射到相应的页框。然后,操作系统将页内偏移量添加到页框的物理地址中,从而获得物理地址。 但是,当操作系统将进程从一个物理地址空间移动到另一个物理地址空间时,所有的虚拟地址都必须被重新映射到新的物理地址。这个过程就被称为页表重定位。 在页式地址重定位系统中,页表存储在主存储器中,并通过页表寄存器来访问。当一个程序引用一个虚拟地址时,处理器将虚拟地址中的页号发送到页表寄存器,并获取与该页号相关联的页表项。页表项包括该页号所映射的物理页框号。然后,处理器将物理页框号与虚拟地址中的页内偏移量组合,从而计算物理地址。 当操作系统需要将一个进程从一个地址空间移动到另一个地址空间时,页表必须被更新,以便将旧的物理页框号映射到新的物理页框号。这个过程通常涉及到页表基址寄存器和页表长度寄存器的更新,以及所有虚拟地址的重新映射。 总之,页式地址重定位操作系统是一个基于分页内存管理的系统,它通过将虚拟地址映射到物理地址来管理内存。在这个系统中,页表被用来存储虚拟页号和物理页框号之间的映射关系,并且在地址空间移动时需要进行重定位操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值