全国销售热线:

13395113888

公海贵宾会线路中心手机版

您所在的位置:公海贵宾会线路中心手机版 > 公海贵宾会线路中心手机版 >

操作系统--存储管理的任务

发布时间:2020-10-24 23:06    点击次数:51次   

  程序装入内存之后,由操作系统将逻辑地址改为逻辑地址起始地址,得到的实际的物理地址。

  采用软件手段,在硬件的配合下,将部分外存空间虚拟为内存空间,并将内存和外存有机的结合起来,得到一个容量相当与外存,速度接近于内存,价十分便宜的虚拟存储系统。

  上面我们简单介绍了操作系统中存储器的使用功能。现在我们来对上面的这些功能处理中遇到的问题来做一些详细的介绍:

  划分预先进行的,创建新进程的时候,在内存中找到一个合适的分区分配给他们。一旦划分完毕,分区大小和数目将不再改变。静态划分分为分区和分页两个方式。

  创建新进程时,根据进程申请的空间大小,依照某种方式(下面的四个算法)在这个分区中动态的划分一部分空间。

  从一个内存的某一端开始查找,选择一个超过进程申请大小的空闲分区。如果找到的分区的大小恰好与申请的进程的存储空间的大小相同或者相差的很少的话,这个时候,我们就将这个分区全部分配给这个申请进程。否则,系统将这个分区划分为两个分区,一个分区的长度等于进程申请的空间大小,并将其分配给申请进程。然后,将另一个子分区链接到空闲分区链表中。

  下次适应算法能记住上次分配分区的位置,下次实施分配时,从上次的分配位置之后开始查找,选择一个大小足够的空闲分区。

  绝对装入:程序运行之前,按照程序的逻辑地址,将程序和数据装入内存指定的地方。(和绝对地址对应)

  重定位装入:允许程序装入与逻辑地址不同的物理内存空间。即程序可以装入到内存的任何位置,其逻辑地址与装入内存后的物理地址无关。

  运动时动态装入:程序的地址转换不是在装入时进行,而是在程序运行时动态运行。通过重定位寄存器内的起始物理地址和指令或者数据的逻辑地址逐条计算出物理地址。(和相对地址对应,需要重定位寄存器(硬件支持))

  (Load-Time Dynamic linking):是在目标模块装入内存时,边装入边链接。即在装入一个目标模块时,若发现一个外部模块调用,即引起装入程序去找出相应的外部模块,并将它装入内存以及修改目标模块中的相对地址。 二、

  (Run-Time Dynamic linking): 这种链接方式,可将某些目标模块的链接,推迟到执行时才进行。即在执行过程中,若发现一个被调用模块尚未装入内存时,由OS去找到该模块,将它装入内存,并把它链接到调用者模块上。

  页框:系统事先将物理内存划分成许多尺寸相等的页框,并将进程划分成许多大小相同的页面,页面与页框大小相等。

  页面:装入内存时进程被分割成许多个页面,每一个页面的指令和数据是连续的,他们的地址相对于其所属页的第一条语句的地址,称为页内偏移量。就是说进程逻辑地址被分为两个部分:页号和页内偏移量。

  页表:系统为每一个进程建立一张页面映射表。用于记载进程中的各个页面到物理内存中页框的映射信息。

  页表寄存器:页表基地址寄存器用来指向页表的起始地址;页表长度寄存器用来指示页表的大小,即对于当前任务,它总共包含有多少个页面。

  段的概念:基于模块化的程序设计时,常常需要将一个大任务划分为若干相对独立的子任务,对应的子任务编写子程序,称为段。就是说一个段,就是一个大程序中的子程序。

  处理:当一个进程被装入物理内存时,系统将为该进程的每一段独立的分配一个分区。同一个进程中的多段不必存放在连续的多个分区中。

  段表:每一个进程建立一个,用于描述进程的分段情况,记载进程的各个段的物理内存中分区的映射情况。(其中包括段号,段长,段基址以及对本段的存取控制权限等信息)

  虚拟存储:通过系统提供缺页/段中断功能和交换技术,动态装入进程的程序代码和数据,使得一个打得用户程序能在一个相对较小的内存空间中运行,也使得有限的内存能同时容量更多的进程。

  页面放置策略:系统应当在内存的什么位置为活跃进程分配页框。可以考虑首次适应算法,下次适应算法,最佳适应算法,最差适应算法等等。

  页面置换算法:最佳置换算法,最近最少使用算法,先进先出算法,时钟算法。(与上面的页面置换策略相结合,是页面置换策略中的一部分。)

  页面清除策略:将由页面置换算法选择的被修改的置换页面保存到外存。如果是未修改的页面,则不保存到外存,也不需要保存到外存。

  当进程的缺页率和高的时候,驻留集太小,需要增加页框;当缺页率一段时间内都保持很低时,可以在不会明显增加进程缺页录的前提下,回收其中一部分页框,减小进程的驻留集。

  全局置换策略:​在整个内存空间内判断有无空闲页框,并允许从其他进程的驻留集中选择一个页面换出内存。

  最佳置换算法:被置换的页面是将来不在访问,或者在最远的将来才会被访问的页面。(这个算法无法实现)

  最近最少使用算法:根据页面装入内存以后的使用情况,选择淘汰最近最久未使用的一个页面,置换这个页面。

  先进先出置换算法:淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。在实现时,只需把一个进程已调入内存的页面,按照先后次序链接成一个队列,并设置一个指针,使它总是指向最老的页面。


热门推荐