程序员人生 网站导航

操作系统(八)―虚拟存储管理

栏目:服务器时间:2015-06-27 08:10:19

 

             虚拟存储管理



     在前面总结了集中存储管理的刚上,要求作业的逻辑地址空间连续的寄存主存储器

的某个区域中。当主存储器中没有足够大的区域是,则作业是没法装入的,或必须移动

某些作业后才能装入。是不是有可能吧作业的连续逻辑地址空间分散到几个不连续的主存

区域,且仍能使作业正确履行呢? 若可行的话,则可充分利用主存空间有可减少移动所

花费的开消。不但如此,还可采取虚拟存储管理技术,实现在较小的主存空间里运行较

大的作业。


虚拟存储管理:实现较小主存空间运行较大的作业。




1、页式存储管理:把主存储器分成大学相当的许多区,每个区称块,编制逻辑分成

页,页与块等大小。

    分页式存储器的逻辑地址由两部份组成:
            
例如:地址总长15,其中页号5,页内地址10――得出逻辑地址32


就是2的5次方得32,其中编号是从0―31;每页2的10次方为1024,编号从0―1023.


注意:1、 逻辑地址是连续的,编程序时无需斟酌如何分页。


      2、分左右主存块可以不连续,可按页分散主存空间中。



1、页管理条件:
  1)怎样知道哪些块用或未用

  2)左右分散后如何正确履行

        


分配条件:首先空闲块能否满足左右要求。 


2、相干的计算:

  1)、块号=字号*字长  +  位号
  2)、柱面号=块号/32
  3)、磁头号=块号先Mod32  / 4
  4)、扇区号= 块号先Mod32 在Mod 4


3、页表和 地址转换(动态重定位):

     在主存中空闲块能满足作业要求是,存储管理就找出这些空闲块分配给作业,同时

为作业建立1张页表,指出逻辑地址中的页号与主存中的块号的对应关系。


页表:首先空闲块能满足作业要求同时,为作业建1张表,指出逻址页号与主存中块号

对应关系。

页表长度:有作业所占页的多少而定。比如:4页――A页表长度4个登记项。


4、页式存储管理
   1)、动态重定位方式装入作业,要硬件地址转换机构,逻址――绝址。
                地址=块号*块长+页内地址

   2)、页表放主存储器中,访问两次主存,1是读出页表,2是按计算出绝址进行读写。――延长指令履行周期,下降履行速度。
   3)、引入高速缓冲存储器
快表:寄存在高速缓冲存储器中的页表叫块表。


块表容量小,填满后要新登记,所以要淘汰旧的:“先进先出”发。

比如:主存储器200 ,高速缓冲存储器40(运行90%),如果没有高速缓冲存储器:

200+200=400

有了高速缓冲存储器的话:(200+40)*90%+(200+200)*10%=256

   

   4)、全部系统只1个高速缓冲存储器,只占用途理器者才能使用它。

快表是动态的,左右占处理器时快表在高速缓冲存储器中,否则快表在进程块中。



5、页表同享保护:页表同享可节省主存空间,所以同享又必须解决信息保护问题,

――在页表中增“标志”。比如“只可履行”、“只可读”、“只可写”表等。




2、虚拟存储器


甚么是虚拟存储器呢?

    程序有些事互斥的,即把作业都装入主存中,作业的履行实际上没有同时履行这些

信息,有些在全部进程中乃至没有用到。所以我们能不能不把作业都同时准个人主存储

器中,而是将其中的1部份先装入主存中,另外一部份先放入磁盘上,作业履行时要用到

不在存储器中信息时,在把他们调入主存储器中。

     从这我们引出,当主存空间小于作业需求是,作业也能履行,用户编制程序是可以

没必要斟酌主存储器的实际容量,可以用户逻辑地址空间大于主存储器的绝对地址空间,

这对用户来讲,好久计算机系统具有1个容量很大的主存储器,这称为虚拟存储器。



特点

1、不把作业全同时装入主存,先装1部份,另外一部份放磁盘,作业履行中用到不在主存

中的再将其装入主存。


2、主存空间小于作业需求量,作业也能履行,主存空间充分利用,没必要斟酌主存器实际

大小。


3、虚拟存储器容量有计算机的地址结构和辅助存储器容量决定。


4、实质上是为扩大主存容量而采取的1种管理技能。



    允许用户逻辑 > 主存储器绝址空间。


对用户来讲好像有1个容量很大的主存储器,这叫虚拟存储器。



程序互斥:程序1次运行中,履行了这部份程序,就不会去履行那部份程序。




3、页式 虚拟存储管理



1、页式管理如何改成虚拟存储器:将作业全信息作为副本寄存磁盘上。

   支持哪些页已在主存器,指出每页副本在磁盘上的位置。若“1” 装,有硬件地

址转换机构差页表为“1”转绝址,如“0”发出“缺页中断”(该页不在主存器中,查

有没有空闲块)



2、页面调度:欲调入1页是,主存器没有空闲块是,先调出已在主存器中某页,在调

入当前页,同时对页表做相应修改的方法叫页面调度。



调度法分类
1)先进先出FIFO:淘汰呆最久那1页。(对经常使用的不利)
2)最近最久未用Least Recently Used(LRU) 距离当前最长时间内没有用过的调出。
  (1)增加1个“援用位”标志,必须对每页时时刻刻记录,更新;实现困难、开消大。
  (2)页号队列法:规定队首最久未用页,队尾最近页,所以产生中断时队首页面调出,比FIFO中断次数少,好。
3)最近不经常使用:(最近1段时间使用最少的。)



3、抖动(颠簸):选用1不适调度法,刚被调出要立即用又被调入,调入不久有被调

出,频繁的调度,使大部份时间在来回的调度上的现象叫抖动。





4、多级页表:程序履行时有局部性的。
1级页表::第1级的页面组表,成为1级页表。
2级页表:组内页面表,吧页表存 辅助存储器中。


注:1个主存块正好放1张表。




5、程序履行的进程:程序履行时1级页表――到主器地址转换,按逻辑地址查1级页

表――根据“标志位”至2级页表是不是在主存中(在房屋2次),若没(访问4次)――

可按页号2查2级页表,表项若无,应先装入主存中。



2级页表不想把页表1次装入主存器,它是分散寄存,用高速缓冲存储器加快地址转

换。



注:页表级别越多,灵活性越大,但是管理起来越复杂。




小结

 首先了解甚么是页式存储,再了解甚么是虚拟存储,以后再结合起来页式虚拟存储

器,并且分别掌握他们对应的管理方式,调度方式和相应的计算就容易上手了。

  这在我们的现实生活中用途极大,比如自己的内存不够大,就能够建立虚拟内存,使

得计算机用起来顺手、方便。赶快试1试,让自己的计算机运行起来更高效、更方便。














------分隔线----------------------------
------分隔线----------------------------

最新技术推荐