ZKX's LAB

操作系统中的动态重定位和静态重定位? 静态地址的重定位如何实现

2020-10-05知识11

为什么说经过动态重定位(而不是静态重定位),目标程序可以不经过任何改动而装入物理内存单元

操作系统中的动态重定位和静态重定位? 静态地址的重定位如何实现

重定位是什么意思 一、定义:重定位就是把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程,也就是说在装入时对目标程序中指令和数据的修改过程。他是实现多道程序在内存中同时运行的基础。重定位有两种,分别是动态重定位与静态重定位二、分类1、静态重定位:即在程序装入内存的过程中完成,是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变,故成为静态重定位。2、动态重定位:它不是在程序装入内存时完成的,而是CPU每次访问内存时 由动态地址变换机构(硬件)自动进行把相对地址转换为绝对地址。动态重定位需要软件和硬件相互配合完成。三、时机将逻辑地址空间重定位到物理地址空间的时机有三种:1、程序编译连接时。2、程序装入内存时。3、程序执行时。四、扩展阅读:重定位是由操作系统安排的。在装入程序前,系统会计算未使用的内存,然后将程序装入,并记下开始地址。在执行有相对地址的指令时,会将所有的地址加个刚才记下的开始地址,就叫重定位。重定位与EXE文件无关,它是程序装入时的一种方式。利用重定位可提高内存空间的使用率。

操作系统中的动态重定位和静态重定位? 静态地址的重定位如何实现

什么是重定位?重定位有哪几种类型2为什么要进行重定位? 1.什么是重定位?由于一个作业装入到与其地址空间不一致的存储空间,对有关地址部分的调整过程称为重定位。2.重定位有哪几种类型?分为静态重定位和动态重定位两种类型。3.为什么要进行重定位?我们写正常程序的时候根本不用去关心变量(常量)的位置,因为源程序在编译的时候它的内存中的位置郡被计算好了。程序装入内存时,系统不会为它重定位。我们需要用到变量(常量)的时候直接用变量名访问它就行了。有的程序不可避免也要用到变量(常量),各个变量(常量)在内存中的位置自然也不相同。既然这些变量没有固定的地址,那么程序在运行的过程中只有重定位,才可以正常地访问相关资源。

操作系统中的动态重定位和静态重定位? 静态地址的重定位如何实现

操作系统中的动态重定位和静态重定位? 静态重定位:即在程序装入内存的过程中完成,是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变,故称为。

操作系统中的动态重定位和静态重定位? 静态重定位:即在程2113序装入内存的5261过程中完成,是指在程序开始运行前,程4102序中的各个地址有关的1653项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变,故称为静态重定位。动态重定位:它不是在程序装入内存时完成的,而是CPU每次访问内存时 由动态地址变换机构(硬件)自动进行把相对地址转换为绝对地址。动态重定位需要软件和硬件相互配合完成。扩展资料在装入程序前,系统会计算未使用的内存,然后将程序装入,并记下开始地址。在执行有相对地址的指令时,会将所有的地址加个刚才记下的开始地址,就叫重定位。程序放在不连续的实际物理空间中,要进行逻辑地址到物理地址的转换,实现动态重定位一般需要段页式存储管理,页式存储管理用的不是寄存器,使用的是称为page table(页表)的数据结构page table记录了所有逻辑地址到物理地址的转换信息,进程切换的时候需要冲洗硬件上的page table。参考资料来源:-动态重定位参考资料来源:-重定位

把【】转换为【】的工作称为地址转换或重定位。地址转换可分为两类:静态地址转换和动态地址转换 正确答案:逻辑地址绝对地址重定位就是把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程,也就是说在装入时对目标程序中指令和数据的修改过程。他是实现多道程序。

#动态#静态方法#地址#重定位

随机阅读

qrcode
访问手机版