内存管理

内存管理,第1张

给用户程序分配一个连续的内存空间。

便于内存分配,将分区按照大小排队,建立一张分区说明表。 回忆之 。包含每个分区的起始地址,大小和状态。

两个问题,程序可能太大而放不进任何一个分区里,这时需要使用覆盖技术来使用内存空间。内部碎片,当程序小于固定分区大小的时候,也占用了一个完整的内存分区空间。

首次适应算法会使得在内存的低地址处出现很多小的空闲分区(因为一般在内存低地址处分配空间),每次分配查找的时候,要经过这些分区,增加了查找的开销。

邻近适应算法会在内存的末尾分配空间,内存在前面使用后释放,不会参与分配,然后分裂成小碎片,通常比首次适应算法的结果要差。

最佳适应算法以容量递增的形式分配分区,会留下很小的难以利用的内存块,因此会产生最多的外部碎片。

最坏适应算法以容量递减的形式分配分区,会把最大的连续内存划分开,会很快导致没有可用的大的内存块。

允许一个程序分散的装入到不相邻的内存分区中,需要额外的空间去存储它们分散区域的索引,非连续分配方式的存储密度小于连续存储方式。

但是实际执行的时候只需尘简腊要几十个页面进入内存页框就可以运行,但是如果要将10个页面的页表都放入内存,却只用几十个页面,不到一个页面的页表,这样就极大的降低了内存利用率。并且大部分情况下,映射需要的页表项都在页表的同一个页面中。

使用层次结构的页表:将页表的10页空间也进行地址映射,建立上一级页表,存储页表的映射关系,10个页面进行映射只需要10个页表项,而上一级页表仅仅需要1页就足够了,1页可以存储1024个页表项。

所以需要一张索引表来寻找对应的表,并且不用把所有的页表都调入内存,只有需要的时派滑候才调入。构造一个页表的页表,就是二级页表。 顶级页表最多只能由1个页面,也就是1024个页表项,对应1024个页面,占用的地址位数是10位,log2(1024)=10

所以对于一个32位的逻辑地址空间,32-10-12(页内偏移地址)=10位,所以二级页表大小也在一页之内。

所以假设第一级页表有10个页表项,则说明页表有10个页面,如果第一级页表有1024个页表项,说明页表有1024个页面,也就是32位逻辑空间最大的页表项了。然后第一级页表的页表项分别索引第二级页表,假设第一个页表项下的第二级页表,这就是说明索引了原来第一个页表页面的所有页表项咐谨。所以10个页面的页表恰好被整个二级页表索引完全。第一级页表大小在一页之内,第二级页表大小也在一页之内。

换一种说法就是第一级页表的页表项表示你想索引哪一个页面的页表,第二级页表的页表项就是表明你想索引的页面的页表的所有能索引到物理块的页表项都在这里了。

段号和段内偏移一定要显示给出,因此分段管理的地址空间是二维的。

连续分配存储管理方式

连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。

1、单一连续存储管理在这种管理方式中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的 *** 作系统。CP/M和DOS 2.0以下就是采用此种方式。

这种方式的最大优点就是易于管理。但也存在着一些问题和不足之处,例如对要求内存空间少的程序,造成内存浪费;程序全部装入,使得很少使用的程序部分也占用—定数量的内存。

2、分区式存储管理为了支持多道程序系统和分时系统,支持多个程序并发执行,引入了分区式存储管理。分区式存储管理是把内存分为一些大小相等或不等的分区, *** 作系统占用其中一个分区,其余的分区由应用程序使用,每个应用程序占用一个或几个分区。分区式存储管理虽然可以支持并发,但难以进行内存分区的共享。

内存 *** 作系统(RAM

OS)是一种宏闹慧启动后不依赖硬盘的 *** 作系统,其启动后会将所有文件加载到内存弯激运行,运行速度快,绝对不会中毒,还能更好保护系统的核心文件不受破坏。

内存 *** 作系统早在win98时代就已出现,由于硬盘速度的限制和内存条价格的降低,内存 *** 作系统现在已完全突破硬件的限制,在启动后可以将硬盘断电,完全不依赖硬盘运行。但蔽答目前其应用范围还较窄,主要应用有学校教学机房等。

系统调用 *** 作系统是管理软硬件资源,控制程序执行,改善人机界面,合理组织计算机工作流程。为用户使用计算机提供良好运行环境的程序和系统软件。从资源管理的角度来看,运营部该系统具有以下主要功能。(1)处理器管理处理器管理中断时间和处理器调度悄迹。(2)存储管理存储管理的主要任务是管理内存资源,为多程敏运磨序运行提供强有桥斗力的支持。存储管理的主要功能包括?1)存储分配:存储管理会根据用户程序的需求给用户程序分配存储。设备资源。2)存储共享:存储管理使主存中的多个用户程序共享存储资源,从而提高存储效率。内存利用率高。3)存储保护:存储管理要将各个用户程序相互隔离,互不干扰。此外,不允许用户程序访问 *** 作系统的程序和数据,从而保护用户程序存储在存储器中的信息。没有被摧毁。4)存储扩展:由于物理内存容量有限,很难满足用户程序、存储管理的需要它还应该能够在逻辑上扩展内部存储器,为用户提供比存储器实际容量大得多的编程空间。方便用户编程和使用。(3)设备管理设备管理的主要任务是:1)管理各种外围设备,完成用户取车的I/O信息。提高传输速度,发挥I/O设备的并行性,提高I/O设备的利用率。2)为每台设备提供设备。驱动程序和中断处理程序为用户提供硬件使用的细节。设备管理应具备以下功能:1)提供外围设备的控制和处理。2)提供缓冲管理。3)提供外围设备的分布。4)提供共享外围设备的驱动程序。5)实施虚拟设备。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12232722.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存