操作系统-存储管理

小编整理了一些关于存储管理的知识,第一次学操作系统的时候,这些问题我就没有搞清楚,还好,现在还有机会再去学一遍,终于搞清楚了,下面,开始介绍内容。

我们之前提到分区化管理,就是我们在内存中划分一个区域,供用户调用内存时使用的,这种方式往往是把一整个程序调入到内存当中,这也就意味着如果说程序是4G大,用户空间2个G,如果我要运行2G以上的程序,是完全不可能的,甚至我要运行1G以上的程序都会出现错误,因为我们在运行程序时,他这个2G的空间很有可能是被打碎的,不是一整个2G空间,所以分成的N个片段,可能每个片段都足够小,导致无法运行程序。
为了解决上述问题,我们便提出了段页式存储。

  • 页式存储组织
    做法:把用户程序分成等分大小的页,比如说这里有一个用户程序,我们把该程序分成4K一个块的等分程序,每一个4K的块称为一个页,把内存当中的存储区也分为4K一个,然后调入程序时,不再是把整个程序都调入,而是我想运行哪个块调入哪个块,这样一来,就需要一个页表来记录他们之间的对应关系,就是程序页号对应内存中的块号。
    当采用这种方法时,还可能运行超过内存空间大小的程序,因为只需要调入要运行的块,而不是整个程序。
    优点:内存的利用率高、碎片小、分配及管理简单
    缺点:增加了系统开销,可能产生抖动现象
    在这里插入图片描述
    高级程序语言使用逻辑地址
    运行状态,内存中使用物理地址

    在这里插入图片描述
    逻辑地址与物理地址,他们的页内地址是相同的,页号是不同的,因为逻辑地址的页号对应物理地址的块号,页号和块号需要查询页表才能知道,至于页内地址相同是因为,我们调入时,都是采取页的方式调入,那页面偏移量就是相同的。
    在这里插入图片描述
    题中,要求物理地址,很显然,求物理地址,首先要将逻辑地址当中的页号和逻辑页内地址分开,首先,题中给出了页面大小为4K,换为2进制,也就是2的12次,也就是说逻辑地址的后12位代表页内大小,那么其他位则表示页号,而每4位二进制则等于1位16进制,12进制则等于三位16进制,那么5A29 中,A29则是页面大小,5是页号,看表得对应的物理地址页号是6,那么物理地址就是6A29H。
    第二问,如果页面4不在内存,要淘汰其他页面,必然淘汰的是在内存里面的,所以看这些页号的访问位,状态位为1代表在内存中,也就是在0125中选择,访问位为1代表刚刚被访问过,不能被淘汰,所以应该淘汰访问位为0的,也就是1号页面。
  • 段式存储组织
    段式是按照逻辑结构划分的,比如说,我会把程序中的main函数作为一个段,第一个子函数function1作为一个段,第二个子函数function2作为一个段,段的大小不要求一致,可随意,这也是与页式存储的差别之一,页式存储的大小是固定的,而段式是不固定的。
    优点:多道程序共享内存,各段程序修改互不影响
    缺点:内存利用率较低,内存碎片较大浪费较大在这里插入图片描述
    段式存储中的段表存放的是段号、段长、基址(起始地址)
    在这里插入图片描述
  • 段页式存储组织
    优点:空间浪费小,存储共享容易、存储保护容易、能动态连接
    缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有多增加,使得执行速度大大下降
    在这里插入图片描述
    快表:是一块小容量的相联存储器,由高速缓存器组成,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值