动态重定位在动态运行时装入的方式中,作业装入内存后的所有地址都仍然是相对地址,将相对地址转换为物理地址的工作,被推迟到程序指令要真正执行时进行 。
动态重定位分区分配法是利用分区的“拼接”(对空白区而言)或“紧凑”(作业程序而言)技术 解决“零头” 。
对换对换指把内存中暂不能运行的进程或暂时不用和程序和数据,换到外存上,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需要的程序和数据,换入内存 。
对换是系统行为,是提高内存的利用率的有效措施 。
- 整体对换(进程对换)
- 页面对换(分段对换)
为实现对换,系统需要三方面的功能:
对换空间的管理
进程的换入
换出
对换空间的管理外存被分为两部分,文件区和对换区,文件区用于存放文件,它采取离散分配方式 。对换(续) 即一个文件可根据当前外存的使用情况 ,被分成多块 ,分别存储到不邻接的多个存储区域中 ,用指针相连 。对换区存放从内存换出的进程 ,它们在外存的存放时间较短,换入 、换出频繁 。对对换区的管理,采用连续分配方式。
分配算法可以是首次适应算法、循环首次适应算 法和最佳适应算法 。
进程的换出和换入1、换出(swap out)
①选择:首先选择阻塞或睡眠状态的进程,若有多个,按优先级由低到高进行选择 。若没有此状态进程,则选择就绪状态的,仍然按优先级由低到高进行选择 。
②为避免某进程被频繁的换入换出,还应考虑进程在内存中的驻留时间,优先选择驻留时间长的进程 。
2、换入(swap in)
①从 PCB集合中查找“就绪且换出”的进程,有多个,则选择换出时间最长的 。
②根据进程大小申请内存,成功则读入,否则要先执行换出,再换入 。
③若还有可换入进程,则转向① 。直至无“就绪且换出”进程或无法获得足够内存空间为止 。
离散分配方式程序在内存中不一定连续存放 。
1)离散的基础
• 分页(Pages):将程序地址空间分页
• 分块(Frames):将内存空间分块
2)离散分配的体现
• 内存一块可以装入程序一页
• 连续的多个页不一定装入连续的多个块中 •
注:系统中页块的大小是不变的 。
根据离散时的基本单位不同,可分为三种:
分页存储管理
分段存储管理
段页式存储管理
优点:没有外零头,仅有小于一个页面的内零头
分页存储管理注意:
页面或页,是逻辑空间的概念
物理块或页框,是内存空间/物理空间的概念
页表,每个进程对应 1 个页表,描述该进程的各页面在内存中对应的物理块号 。包括页号、物理块号,存放在主存的系统专用区 。( 平时存于PCB中,要运行时才装入PTR中)
作业表,整个系统1张,记录作业的页表情况,包含进程号、页表长度、页表始址等信息 。
空闲块表,整个系统1张,记录主存当前空闲块 。
Δ" role="presentation" style="box-sizing: border-box; position: relative;">ΔΔ地址变换过程(非快表)(1)根据逻辑地址,计算出页号和页内偏移量;
(2)从PTR中得到页表首址,然后检索页表,查找指定页面对应的页框号;
(3)用页框号乘以页面大小获得其对应的起始 地址,并将其送入物理地址的高端 。
(4)将页内偏移量送入物理地址低端,形成完整的物理地址 。
快表为了提高地址变换速度,为进程页表设置一个专用的高速缓冲存储器,称为快表 TLB(Translation Lookaside Buffer),或联想存储器(Associative Memory) 。专门保存当前进程最近访问过的一组页表项 。
Δ" role="presentation" style="box-sizing: border-box; position: relative;">ΔΔ地址变换过程(快表)根据逻辑地址中的页号 ,查找快表中是否存在对应的页表项 。
若快表中存在该表项,称为命中(hit),取出其中的页框号,加上页内偏移量 ,计算出物理地址 。
若快表中不存在该页表项 ,称为命中失败 ,则再查找页表,找到逻辑地址中指定页号对应的页框号 。同时,更新快表,将该表项插入快表中 。并计算物理地址.
访问内存的有效时间 EAT定义:从进程发出指定逻辑地址的访问请求,经过地址变换,再到内存中找到对应的物理单元并取出数据,所花费的总时间 。
推荐阅读
- 辞职后全职开发的操作系统 SerenityOS 到底是个怎样的系统
- Android 13 虚拟化技术支持安装 Windows 和 Linux 操作系统
- 怎样设置电脑共享计算机,局域网共享设置,小编教你怎么设置共享
- 专业网站SEO人员精通的基础技能
- 要想成为黑客,离不开这十大基础知识
- 鸿蒙操作系统 HarmonyOS 你值得拥有
- Windows 10找不到共享计算机怎么办
- 计算机为什么偏爱用矩阵表示?因为设计简单、能硬件优化加速
- Windows操作系统|最重要Windows 11更新要来了:微软将敲定22H2时间 修复重大Bug
- python基础知识集合