操作系统中的动态重定位和静态重定位?
发布网友
发布时间:2022-04-24 17:32
我来回答
共6个回答
懂视网
时间:2023-02-16 14:03
静态重定位和动态重定位区别:
1、静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的地址。对每个程序来说,这种地址变换只是在装入时一次完成,在程序运行期间不再进行重定位;
2、动态重定位是在程序执行期间每次访问内存之前进行重定位。这种变换是靠硬件地址变换机构实现的。通常采用一个重定位寄存器,其中放有当前正在执行的程序在内存空间中的起始地址,而地址空间中的代码在装入过程中不发生变化。
热心网友
时间:2023-02-16 11:11
静态重定位:即在程序装入内存的过程中完成,是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变,故称为静态重定位。
动态重定位:它不是在程序装入内存时完成的,而是CPU每次访问内存时 由动态地址变换机构(硬件)自动进行把相对地址转换为绝对地址。动态重定位需要软件和硬件相互配合完成。
扩展资料
在装入程序前,系统会计算未使用的内存,然后将程序装入,并记下开始地址。在执行有相对地址的指令时,会将所有的地址加个刚才记下的开始地址,就叫重定位。
程序放在不连续的实际物理空间中,要进行逻辑地址到物理地址的转换,实现动态重定位一般需要段页式存储管理,页式存储管理用的不是寄存器,使用的是称为page table(页表)的数据结构page table记录了所有逻辑地址到物理地址的转换信息,进程切换的时候需要冲洗硬件上的page table 。
参考资料来源:百度百科-动态重定位
参考资料来源:百度百科-重定位
热心网友
时间:2023-02-16 12:29
操作系统中静态重定位是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变。而动态重定位即在程序运行过程中要访问数据时再进行逻辑地址与物理地址的变换。
动态重定位根据每次程序运行的情况重新定位,地址在每一次程序运行时候都是变动的,容易共享同一程序副本,即共享同一程序中相同的的原始子程序,而静态重定位装入时地址就已经确定,难以共享同一程序副本。
扩展资料:
一、操作系统中静态重定位特点:
1、在装入前实现调整。
2、地址要有标识。
3、每次装入都要进行定位。
4、装入后地址不再改变(静态)。
二、操作系统中动态重定位特点:
1、程序可装入任意内存区域(不要求占用连续的内存区)。
2、只装入部分程序代码即可运行。
3、改变系统时不需要改变程序(程序占用的内存空间动态可变,只需要改变定位寄存器中的值即可)。
4、程序可方便共享。
参考资料来源:百度百科-动态重定位
参考资料来源:百度百科-静态重定位
热心网友
时间:2023-02-16 14:04
程序和数据装入内存时需对目标程序中的地址进行修改。这种把逻辑地址转变为内存的物理地址的过程叫重定位。
对程序进行重定位的技术按重定位的时机可分为两种:静态重定位和动态重定位。
静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的地址。对每个程序来说,这种地址变换只是在装入时一次完成,在程序运行期间不再进行重定位。
静态重定位的优点是无需增加硬件地址转换机构,便于实现程序的静态连接。在早期计算机系统中大多采用这种方案。
它的主要缺点是:(1)程序的存储空间只能是连续的一片区域,而且在重定位之后就不能再移动。这不利于内存空间的有效使用。(2)各个用户进程很难共享内存中的同一程序的副本。
动态重定位是在程序执行期间每次访问内存之前进行重定位。这种变换是靠硬件地址变换机构实现的。通常采用一个重定位寄存器,其中放有当前正在执行的程序在内存空间中的起始地址,而地址空间中的代码在装入过程中不发生变化。
动态重定位的主要优点是:(1)程序占用的内存空间动态可变,不必连续存放在一处。(2)比较容易实现几个进程对同一程序副本的共享使用。
它的主要缺点是需要附加的硬件支持,增加了机器成本,而且实现存储管理的软件算法比较复杂。
现在一般计算机系统中都采用动态重定位方法。追问为什么静态重定位各个用户进程很难共享内存中的同一程序的副本?
热心网友
时间:2023-02-16 15:55
动态重定位的话,程序可以装入任意内存区域(不要求占用连续的内存区),只装入部分程序代码就可以运行。改变系统时不需要改变程序(程序占用的内存空间动态可变,只需要改变定位寄存器中的值即可),所以程序可以方便共享同一个程序的副本。
热心网友
时间:2023-02-16 18:03
动态重定位 地址转换 怎么算呢 谁可以举个例子 谢谢
操作系统中的动态重定位和静态重定位?
静态重定位:即在程序装入内存的过程中完成,是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变,故称为静态重定位。动态重定位:它不是在程序装入内存时完成的,而是CPU每次访问内存时 由动态地址变换机构(硬件)自动进行把相对地址转换为...
uwb人员定位
广州联网科技有限公司被评为全球性的10cm高精度定位系统提供商。精通UWB定位,联网科技始终致力于为用户提供全面的定制化服务,包括集成定位软硬件。联网科技致力于为物联网和工业4.0的蓬勃发展做出贡献。5年UWB定位产品及定制开发平台产品开发...
操作系统中的动态重定位和静态重定位
操作系统中静态重定位是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变。而动态重定位即在程序运行过程中要访问数据时再进行逻辑地址与物理地址的变换。动态重定位根据每次程序运行的情况重新定位,地址在每一次程序运行时候都是变动的,容易...
静态重定位和动态重定位区别
1、静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的地址。对每个程序来说,这种地址变换只是在装入时一次完成,在程序运行期间不再进行重定位;2、动态重定位是在程序执行期间每次访问内存之前进行重定位。这种变换是靠硬件地址变换机...
动态重定位和静态重定位的区别
1、实现方式不同:动态重定位是在程序执行的过程中,根据执行的需要动态地装入、链接和定位,静态重定位是在程序装入时实现的重定位,将程序装入内存后,立即根据其装入位置将程序中需重定位的逻辑地址转换成物理地址。2、特点不同:动态重定位的特点是重定位后,内存中的代码没有发生变化,允许程序在执行...
动态重定位和静态重定位的区别
1、执行时间:动态重定位是在程序运行时进行的,当程序加载到内存执行时,动态重定位会根据实际的内存布局将程序中的相对地址转换为绝对地址。静态重定位在程序编译阶段就完成了,将程序中的相对地址转换为绝对地址,生成可以直接执行的可执行文件。2、处理方式:动态重定位要在程序运行时进行地址转换和更新...
静态地址重定位跟动态地址重定位的区别?
静态重定位和动态重定位的区别:①静态重定位是在作业装入的时候一次完成, 动态重定位是在作业执行时再实现的。②静态重定位是软件支持的, 动态重定位是硬件和软件 合作实现的。③静态重定位不能实现主存的移动,而动态重定位可以。④动态重定位还可能 提供虚拟存储空间。
请简述静态重定位和动态重定位各自的特点。
查看答案解析 【正确答案】 静态重定位:由于装入主存储器的作业信息已经都是用绝对地址,因此作业在执行过程中是不能移动位置的。动态重定位:由于装入主存的作业仍保持原来的逻辑地址,所以必要时可改变它在主存中的存放区域。【答案解析】 参见教材P39。本题知识点:重定位,我整理的相关历年试题及答案...
操作系统的页式地址转换、段式地址转换、静态重定位、动态重定位的大致...
使一个作业被分成两半、多半。段式中,每段被分配一个连续的存储空间,各段之间是独立的,每段均有自己的地址。静态重定位:在装入作业时,将作业中指令地址和数据地址全部转换为物理地址。动态重定位:在装入作业时不进行转换,而是在执行过程中将每一条指令都由硬件的地址转换机构转换成绝对地址。
简述程序的静态再定位和动态再定位的含义及实现方法
静态再定位:在目的程序装入主存时,通过调用装入程序,用软件方法把目的程序的逻辑地址变换成物理地址的方法称为静态重定位方法。动态再定位:在程序执行时,通过地址加法器将逻辑地址加上基址寄存器的程序基点地址形成物理地址后进行访存的方法称为动态再定位 ...
什么是重定位?重定位有哪几种类型2为什么要进行重定位?
分为静态重定位和动态重定位两种类型。3.为什么要进行重定位?我们写正常程序的时候根本不用去关心变量(常量)的位置,因为源程序在编译的时候它的内存中的位置郡被计算好了。程序装入内存时,系统不会为它重定位。我们需要用到变量 (常量)的时候直接用变量名访问它就行了。有的程序不可避免也要用...