操作系统虚拟存储技术_虚拟存储

操作系统虚拟存储技术_虚拟存储虚拟存储管理   在前面总结了集中存储管理的刚上,要求作业的逻辑地址空间连续的存放主存储器的某个区域中。当主存储器中没有足够大的区域是,则作业是无法装入的,或必须移动某些作业后才能装入。是否有可能吧作业的连续逻辑地址空间分散到几个不连续的主存区域,且仍能使作业正确执行呢?若可行的话,则可充分利用主存空间有可减少移动所花费的开销。不仅如此,还可采用虚拟存储管理技

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

 

             虚拟存储管理

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

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

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

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

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

大的作业。


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

操作系统虚拟存储技术_虚拟存储


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

页,页与块等大小。

    分页式存储器的逻辑地址由两部分组成:
            操作系统虚拟存储技术_虚拟存储
例如:地址总长15,其中页号5,页内地址10——得出逻辑地址32


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


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


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

1、页管理条件:
  1)怎样知道哪些块用或未用操作系统虚拟存储技术_虚拟存储

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

        操作系统虚拟存储技术_虚拟存储


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


2、相关的计算:

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

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

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

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


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

对应关系。

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

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

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


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

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

200+200=400

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

   

   4)、整个系统只一个高速缓冲存储器,只占用处理器者才能使用它。

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

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

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


二、虚拟存储器


什么是虚拟存储器呢?

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

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

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

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

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

不必考虑主存储器的实际容量,可以用户逻辑地址空间大于主存储器的绝对地址空间,

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

特点

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

中的再将其装入主存。


2、主存空间小于作业需求量,作业也能执行,主存空间充分利用,不必考虑主存器实际

大小。


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


4、实质上是为扩大主存容量而采用的一种管理技巧。

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


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

程序互斥:程序一次运行中,执行了这部分程序,就不会去执行那部分程序。

三、页式 虚拟存储管理

操作系统虚拟存储技术_虚拟存储


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

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

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

有无空闲块)

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

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

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


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

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

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

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


5、程序执行的过程:程序执行时一级页表——到主器地址转换,按逻辑地址查一级页

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

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

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

换。

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

小结

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189447.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号