苏州区网站建设,网站前台乱码,做自己的优惠券网站,快递空包网站建设一、 内存的存储保护 1.1 上、下限寄存器方式#xff1a; 上、下限寄存器#xff08;Limit Registers#xff09;#xff1a;这是一种硬件级别的内存保护机制。每个进程都有一对上、下限寄存器#xff0c;用于定义该进程能够访问的内存范围。上限寄存器存储进程能够访问的…一、 内存的存储保护 1.1 上、下限寄存器方式 上、下限寄存器Limit Registers这是一种硬件级别的内存保护机制。每个进程都有一对上、下限寄存器用于定义该进程能够访问的内存范围。上限寄存器存储进程能够访问的最高地址下限寄存器存储进程能够访问的最低地址。当进程尝试访问内存时CPU会检查该访问是否在合法的范围内以确保没有越界访问。 越界检查在执行每个内存访问指令之前CPU会检查目标地址是否在上、下限寄存器定义的范围内。如果越界CPU将阻止对该地址的访问触发相应的异常或中断。 1.2 重定位寄存器和界地址寄存器方式 重定位寄存器Base Register这个寄存器存储进程的起始物理地址。当进程试图访问内存时该寄存器中的基地址会被加到逻辑地址上从而得到物理地址。 界地址寄存器Limit Register这个寄存器存储了进程的最大逻辑地址。在进行内存访问时CPU会检查计算出的物理地址是否在合法的范围内即不超过界地址寄存器定义的最大逻辑地址。 越界检查通过检查计算出的物理地址是否在合法范围内系统可以防止进程越界访问。 二、 地址转换 绝对装入Absolute Loading 描述在这种方式中编译器负责将程序的逻辑地址直接映射到物理地址生成可执行文件时就已经确定了程序在内存中的位置。特点适用于单道程序的阶段通常在没有操作系统的环境中整个计算机系统只运行一个程序程序在内存中的位置是固定的不会发生变化。 可重定位装入Relocatable Loading 描述在可重定位装入方式中装入程序Loader负责将程序加载到内存并进行地址转换使得程序可以被加载到内存的不同位置而不需要重新编译。特点主要应用于早期多道批处理系统的阶段允许多个程序在内存中并发执行每个程序可以独立加载并运行而不影响其他程序。 动态运行时装入Dynamic Loading 描述在动态运行时装入方式中地址转换是在程序运行时由操作系统动态完成的。程序的某一部分在需要执行时才被加载到内存而且可以加载到内存的任意位置。特点通常在现代操作系统中应用允许程序按需加载减少内存的浪费提高系统的灵活性和资源利用率。
这三种方式代表了不同的演进阶段和系统设计思想。绝对装入适用于简单的单道程序环境可重定位装入适用于早期多道批处理系统而动态运行时装入更适用于现代操作系统能够支持多任务并灵活利用系统资源。 三、覆盖与交换
3.1 覆盖技术
描述覆盖技术是一种通过将程序的不同部分加载到相同的内存地址上但在不同的时间点上进行的技术。这样每次只有一个部分被加载到内存中而其他部分被保存在外部存储器中。工作原理当程序执行到需要覆盖的部分时系统会将当前加载的部分替换为新的部分从而实现对程序的连续运行。这样做的目的是减少整个程序的内存占用尤其是在内存较小的环境中以便让更大的程序能够在有限的内存空间中运行。应用覆盖技术在早期的计算机系统和操作系统中经常用于处理内存受限的情况允许运行大型程序而不需要一次性将整个程序加载到内存中。 3.2 交换技术 交换对换技术的设计思想内存空间紧张时系统将内存中某些进程暂时换出外存把外存中某些已具备运行条件的进程换入内存进程在内存与磁盘间动态调度暂时换出外存等待的进程状态为挂起状态挂起态suspend)挂起态又可以进一步细分为就绪挂起、阻塞挂起两种状态。
描述交换技术涉及将整个进程从内存中移到外部存储器通常是磁盘以释放内存空间供其他进程使用。当需要运行被交换出的进程时它会被重新调入内存。工作原理系统会定期检查内存中运行的进程并根据优先级或其他策略将一些进程交换到外部存储器中以便为新的进程或高优先级的进程腾出内存空间。应用交换技术通常用于处理多道程序设计的环境其中多个进程并发执行但系统的总内存容量可能无法同时容纳所有进程。
四、 连续分配管理方式 4.1 单一连续分配 4.2 固定分区分配 4.3动态分配分区 五、 动态分区回收 动态分区分配又称为可变分区分配。这种分配方式不会预先划分内存分区而是在进程装入内存时根据进程的大小动态地建立分区并使分区的大小正好适合进程的需要。因此系统分区的大小和数目是可变的。动态分区分配没有内部碎片但是有外部碎片。内部碎片分配给某进程的内存区域中如果有些部分没有用上。外部碎片是指内存中的某些空闲分区由于太小而难以利用。
情况一回收区的后面有一个相邻的空闲分区
情况二回收区的前面有一个相邻的空闲分区
情况三回收区的前、后各有一个相邻的空闲分区
情况四回收区的前、后都没有相邻的空闲分区 六、 动态分配算法
1. 首次适应算法
描述首次适应算法是一种简单而直观的回收算法。它从分区链表的头开始查找第一个能够容纳需要回收的内存大小的空闲分区并将该分区标记为已分配。特点相对简单容易实现但可能导致碎片问题即分区中剩余的小块空间难以利用。 2. 最佳适应算法
描述最佳适应算法选择能够满足回收内存大小需求的空闲分区中最小的一个。这样可以最小化碎片问题但可能导致分区链表频繁变动。特点能够尽量减小碎片但分区链表可能会变得复杂且搜索最佳分区可能比较耗时。 3. 最坏适应算法
描述最差适应算法选择能够容纳回收内存大小需求的空闲分区中最大的一个。这种策略有助于减少外部碎片但可能导致剩余的空闲分区较小。特点降低了外部碎片但可能导致空闲空间分布不均匀。 4.邻近适应算法
描述循环首次适应算法类似于首次适应算法但它从上次结束的位置开始查找。这样可以减少搜索的开销。特点相对于首次适应算法减少了搜索的开销但仍可能导致碎片问题。