精华内容
下载资源
问答
  • 操作系统分页存储管理

    千次阅读 2016-04-19 07:42:47
    系统把程序分成大小相等的块儿---页,也把内存分为大小相等的块儿---物理块,都从零开始编号,把页放进物理页,离散分离,这样利用率高。 每个页的地址为逻辑地址包括页号,和页内地址(偏移量),高位页号,低位...

    基本概念:

    系统把程序分成大小相等的块儿---页,也把内存分为大小相等的块儿---物理块,都从零开始编号,把页放进物理页,离散分离,这样利用率高。

    每个页的地址为逻辑地址包括页号,和页内地址(偏移量),高位页号,低位偏移量,如页号占20位,那么地址空间最多有2的20次方=1M个页,页内地址占12为,那么每个页大小为2的12次方4KB

    若给定一个逻辑地址为A,页大小L,则 页号P=INT[A/L],页内偏移量W=A MOD L

    进程里面维护一个逻辑地址到物理地址的表(页号到物理页的号的映射),物理地址 = 物理块儿号*页面大小(例如刚刚的2的12次方) + 页内地址W(也叫偏移量)


    展开全文
  • 真正的模拟操作系统中 内存的分配 (分页存储管理)(操作系统模拟多进程内存分配) 连续的分配方式会形成许多碎片,虽然通过紧凑的方法将血多碎片拼接成可用的大块空间 但须付出很大的开销。如果允许将一个进程...
  • 真正的模拟操作系统中 内存的分配 (分页存储管理)(操作系统模拟多进程内存分配) 连续的分配方式会形成许多碎片,虽然通过紧凑的方法将血多碎片拼接成可用的大块空间 但须付出很大的开销。如果允许将一个进程...
  • 为啥多级页表机制,各级页表的大小不能超过一个页面? 为啥多级页表机制,各级页表的大小不能超过一个页面? 为啥多级页表机制,各级页表的大小不能超过一个页面?
  • 操作系统 请求分页存储管理

    千次阅读 2020-12-22 13:06:04
    请求分页存储管理中的页表机制 缺页中断机构 地址转换 页置换算法 页分配和页置换策略 工作集及抖动现象的消除 请求分页存储管理的优缺点 请求分页存储管理中的页表机制 系统需要解决的问题 系统如何获知进程当前...

    目录

    • 请求分页存储管理中的页表机制
    • 缺页中断机构
    • 地址转换
    • 页置换算法
    • 页分配和页置换策略
    • 工作集及抖动现象的消除
    • 请求分页存储管理的优缺点

    请求分页存储管理中的页表机制

    系统需要解决的问题

    • 系统如何获知进程当前所需页面不在主存
      当发现缺页时,如何把所缺页面调入主存
      当主存中没有空闲的页框时,为了要接受一个新页,需要把老的一页淘汰出去,根据什么策略选择欲淘汰的页面

    页表机制

    页描述子的扩充(页表机制 )

    • 状态位P(中断位)指示该页是在内存还是在外存
    • 访问位A 用于记录本页在一段时间内被访问的次数或记录本页在最近多长时间未被访问
    • 修改位M 表示该页在内存中是否被修改过
    • 外存地址 该页在外存上的地址,通常是物理块号

    在这里插入图片描述

    缺页中断机构

    • 在请求分页系统中,每当所要访问的页面不在内存时,便产生一缺页中断。相应的中断处理程序把控制转向缺页中断子程序,执行此子程序,即把所缺页面装入主存,然后处理机重新执行缺页时打断的指令。这时,就将顺利形成物理地址。
    • 缺页中断与一般中断的区别
      • 在指令执行期间产生和处理中断信号
      • 一条指令在执行期间可能产生多次缺页中断,例如:在请求分页存储管理中,当中断位反映出进程当前欲访问的页不在内存时(1表示该页在内存,0表示该页不在内存),就产生一次缺页中断。系统收到缺页中断信号后就立即执行相应的缺页中断处理程序。
      • 特点:
        (1)缺页中断的产生和处
        理(中断的响应)出现在一条指令的
        执行期内。
        (2)程序运行过程中,一条指令的执行
        期间内可能会产生多次缺页中断。
        在这里插入图片描述

    地址变换机构

    • 如果在快表中未找到该页的页表项,则应再到内存中去查找页表,再从找到的页表项中的状态位P,该页是否调入内存。其结果可能是:
      (1)该页已经调入内存,这是应将此页的页表项写入快表,当快表已满时,应先调出按某种算法所确定的页的页表项,然后再写入该页的页表项。
      (2)该页尚未调入内存,这时便应产生缺页中断,请求OS从外存中把该页调入内存。

    请求分页中的地址变换过程
    在这里插入图片描述
    页面调入过程

    在这里插入图片描述

    页置换算法

    缺页率

    • 假设一个进程的逻辑空间为n页,系统为其分配的内存物理块数为m(m≤n)
    • 如果在进程的运行过程中,访问页面成功(即所访问页面在内存中)的次数为S,访问页面失败(即所访问页面不在内存中,需要从外存调入)的次数为F,则该进程总的页面访问次数为A=S+F,那么该进程在其运行过程中的缺页率即为
      在这里插入图片描述

    影响缺页率的因素

    • 分配给进程的物理页面数
    • 页面本身的大小
    • 程序的编制方法
    • 页面淘汰算法

    最佳(Optimal)置换算法

    • 最佳置换算法是由Belady于1966年提出的一种理论上的算法
    • 其所选择的被淘汰页面,将是以后永不使用的,或许是在最长(未来)时间内不再被访问的页面
    • 采用最佳置换算法,通常可保证获得最低的缺页率
    • 采用最佳置换算法可保证获得最低的缺页率。
    • 由于人们目前还无法预知一个进程在内存的若干个页面中,哪一个页面是未来最长时间内不再被访问的,因而该算法也是无法实现的,但是可利用该算法去评价其它算法。

    利用最佳页面置换算法时的置换图

    在这里插入图片描述

    先进先出(FIFO)页面置换算法

    • 该算法总是淘汰最先进入内存的页面,即选择在内存中的驻留时间最久的页面予以淘汰。
    • 该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老页面。
    • 但该算法与进程实际运行的规律不相适应,因为在进程中,有些页面经常被访问,含有全局变量、常用函数、例程等的页面,FIFO置换算法并不能保证这些页面不被淘汰。

    利用FIFO置换算法时的置换图

    在这里插入图片描述

    最近最久未使用(LRU)置换算法

    • 最近最久未使用(LRU)的页面置换算法,是根据页面调入内存后的使用情况。
    • 由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似。
    • LRU置换算法是选择最近最久未使用的页面予以淘汰。

    LRU页面置换算法
    在这里插入图片描述

    LRU置换算法的硬件支持
    • 把LRU算法作为页面置换算法是比较好的,它对于各种类型的程序都能适用,但实现起来有相当大的难度,因为它要求系统具有较多的支持硬件。所要解决的问题有:

      • 一个进程在内存中的各个页面各有多久时间未被进程访问;
        如何快速地知道哪一页最近最久未使用的页面。
        为此,须利用以下两类支持硬件:
      1. 移位寄存器:
        定时右移
      2. 栈:
        当进程访问某页时,将其移出压入“栈顶”,“栈底”换出。
    • 寄存器

      • 为了记录某进程在内存中各页的使用情况,须为每个在内存中的页面配置一个移位寄存器,可表示为
        在这里插入图片描述

      • 访问时将Rn-1位置成1,定时信号每隔一时间间隔右移一位,则具有最小数值的寄存器所对应的页面,就是最近最久未使用的页面
        在这里插入图片描述
        某进程具有8个页面时的LRU访问情况
        在这里插入图片描述

      • 进程访问某页时,将该页面的页号从栈中移出,再压入栈顶
      • 用栈保存当前使用页面时栈的变化情况
        在这里插入图片描述

    最少使用(LFU: Least Frequently Used)置换算法

    • 为内存中的每个页面设置一个移位寄存器,用来记录该页面被访问的频率

    • 该算法选择在最近使用最少的页面作为淘汰页
      在这里插入图片描述

    • 与最近最少用算法LRU的区别

      • 只考虑一段时间内使用的次数,而不管其使用的

    注意:这种算法并不能真正反映出页面的使用情况,因在每一时间间隔内只是用寄存器的一位来记录页的使用情况,因此访问1次和10000次是等效的

    简单的Clock置换算法

    • 利用Clock算法时,只须为每页设置一位访问位,在将内存中的所有页面都通过链接指针链成一个循环队列。当某页被访问时,其访问位被置1。置换算法在选择一页淘汰时,只须检查其访问位。
      在这里插入图片描述
    • 各字段说明如下
      (1)状态位(存在位)P。用于指示该页是否调入内存,供程序访问时参考。
      (2)访问字段A。用于记录本页在一段时间内被访问的次数,或最近已有多长时间未被访问,提供给置换算法选择换出页面时参考
      (3)修改位M。表示该页在调入内存后是否被修改过。由于内存中的每一页都在外存上保留一份副本,因此,若未被修改,在置换该页时就不须将该写回到外存上,以减少系统的开销和启动磁盘的次数;若已被修改,则必须将该页重写到外存上,以保证外存中所保留的始终是最新副本。
      (4)外存地址。用于指出该页在外存上的地址,通常是物理块号,供调入该页时使用。

    简单的CLOCK置换算法(近似的LRU算法)

    • 当采用简单的CLOCK算法时,只需为每页设置一位访问位,再将内存中的所有页面都通过链接指针链接成一个循环队列
    • 当某页被访问时,其访问位被置1
    • 置换算法在选择一页淘汰时,只需检查页的访问位,是0换出,是1重新置0且暂不换出,再按FIFO检查下一个页面。检查到最后一个页面,若其访问位仍为1,则再返到队首检查
    • 由于该算法是循环地检查各页面的访问情况,故称为CLOCK算法,置换的是未使用过的页,又称为最近未用算法NRU(Not Recently Used)

    简单Clock置换算法的流程和示例
    在这里插入图片描述

    改进型Clock置换算法

    • 在将一个页面换出时,如果该页已被修改过,便须将它重新写到磁盘上;但如果该页未被修改过,则不必将它拷回磁盘。同时满足两条件的页面作为首选淘汰的页。

    在这里插入图片描述

    • 各字段说明如下:
      (1)状态位(存在位)P。用于指示该页是否调入内存,供程序访问时参考。
      (2)访问字段A。用于记录本页在一段时间内被访问的次数,或最近已有多长时间未被访问,提供给置换算法选择换出页面时参考。
      (3)修改位M。表示该页在调入内存后是否被修改过。由于内存中的每一页都在外存上保留一份副本,因此,若未被修改,在置换该页时就不须将该写回到外存上,以减少系统的开销和启动磁盘的次数;若已被修改,则必须将该页重写到外存上,以保证外存中所保留的始终是最新副本。

      (4)外存地址。用于指出该页在外存上的地址,通常是物理块号,供调入该页时使用。

    改进型Clock置换算法说明

    • 考虑使用情况和置换代价,换出的最好是未使用且未被修改过的
    • 由访问位A和修改位M组合:
      • 1类**(A=0, M=0)**:表示该页最近既未被访问,又未被修改,是最佳淘汰页
      • 2类**(A=0, M=1)**:表示该页最近未被访问,但已被修改,并不是很好的淘汰页
      • 3类**(A=1, M=0)**:最近已被访问,但未被修改, 该页有可能再被访问
      • 4类**(A=1, M=1)**:最近已被访问且被修改,该页可能再被访问
        在这里插入图片描述
    • 其执行过程可分成以下三步
    1. 从指针所指示的当前位置开始, 扫描循环队列, 寻找A=0且M=0的第一类页面, 将所遇到的第一个页面作为所选中的淘汰页。 在第一次扫描期间不改变访问位A
    2. 如果第一步失败,即查找一周后未遇到第一类页面, 则开始第二轮扫描,寻找A=0且M=1的第二类页面,将所遇到的第一个这类页面作为淘汰页。在第二轮扫描期间,将所有扫描过的页面的访问位A都置0
    3. 如果第二步也失败,亦即未找到第二类页面,则将指针返回到开始的位置,并将所有的访问位A复0。 然后重复第一步,如果仍失败,必要时再重复第二步,此时就一定能找到被淘汰的页

    改进型Clock置换算法-示例

    在这里插入图片描述

    未完待续。。。

    展开全文
  • 操作系统 请求分页存储管理模拟实现111111111111
  • 操作系统 分页存储

    2021-04-10 14:26:09
    分页存储管理方式 一、分页管理存储方式可以解决“可用存储总容量足够大”但是“大作业不能运行”的情况 ① 把装入模块(即链接后的可执行程序)切分为一系列等长的片段,每个片段称为一个页面(页面长度为512B、1KB...

    分页存储管理方式

    一、分页管理存储方式可以解决“可用存储总容量足够大”但是“大作业不能运行”的情况

    ① 把装入模块(即链接后的可执行程序)切分为一系列等长的片段,每个片段称为一个页面(页面长度为512B、1KB、2KB、4KB等,小于动态分区的很多碎片),页号依次为0、1、2、…,(具有n-1个页面的进程大小是多少字节)
    ② 也把系统物理内存划分为一系列等长的片段,每个片段称为一个物理块(或一个页帧),物理块长度与页面长度相同,块号为0、1、2、…
    ③ 用户程序运行时,操作系统将其各个页面装载到一系列任意的物理块(地址可能不连续)
    ④ 结果:只要系统可用物理内存块之和满足作业内存容量要求,就可为作业分配内存,任何一个空闲的内存块都是可以利用的,因此,分页存储管理圆满地解决了可变分区的碎片问题。
    在这里插入图片描述

    ** 二、分页存储管理下的相对地址和物理地址**
    1、两种地址是同样计算方式

    ① 一般情况下,进程的相对地址(物理地址)都从0开始安排,各单元编号就是其相对地址
    ② 第0页起始地址为0,若页长为L,第P页起始相对地址(起始物理地址)为P×L,第P页离页首偏移量(页内地址)为d的位置,其相对地址(物理地址)为:LA=P×L+d
    ③ 若逻辑地址(物理地址)为LA,页长为L,则页号P={LA/L}(取下限),页内偏移量d=LA-P*L=LA mod L

    2、相对地址和物理地址变换方法

    ①从逻辑地址LA中提取页号P;
    ②用页号P查页表,得到物理块号Q;
    ③用物理块号Q和页内地址d,计算物理地址PA。

    3、分页存储管理的实际实现
    计算机的实现是使用二进制0和1来实现的,但是计算方法和上面讲到(相对地址和逻辑地址)的都是一样的,只是具体实现需要转换二进制代码来计算

    一般来说,页长L是取2的幂

    例如:若逻辑地址(物理地址)长度为W位(通常W=32或64),页长为K,则逻辑地址(物理地址)结构为:
    在这里插入图片描述
    也就是说,页内地址(偏移量)的位数就是我们的页长,它的数值就是我们的偏移量,前面的w-k 位的数值是我们要找的页号

    • 逻辑地址=87654321H 页面大小1024B
      则页号=21d950H 页内偏址=321H
    • 解释:87654321H=1000 0111 0110 0101 0100 0011 0010 0001 B
      因为页长=1024B=2的10次方,所以页内偏移量d= 11 0010 0001 B=321 H
      前面的就是页号=1000 0111 0110 0101 0100 00 B=21d950H

    4、地址变换机构
    变换过程:
    ①从逻辑地址LA中提取页号P、页内地址d
    ②若页号>页表长度,则越界异常
    ③页号+页表地址得到页表项地址(页表地址存的是块号为0的那个初始地址)
    ④查页表,得物理块块号Q,即PT[P]
    ⑤将物理块号Q与页内地址拼接,的物理地址PA
    在这里插入图片描述
    三、提高地址转换效率

    • 分页存储操作每次都需要两次访问内存位置
      第一次访问内存是获取到物理地址PA
      第二次访问地址是获取PA中的数据

    • 为了提高获取数据的速率,我们引入了快表——将经常使用的页表项放在联想存储器(即快表),它通常比内存块5倍以上

    • 效率计算方法

    记快表查找时间为λ,实际物理内存访问所需时间为t,内存有效访问时间为EAT,则有效范围时间EAT计算方法如下:

    • 被访问页在内存,对应页表项在在快表:
      EAT= λ+t
    • 被访问页在内存,对应页表项不在快表:
      快表、主存页表同时查找:EAT= λ+t +t
      以上 快表命中率为h,页表、快表查找同时进行:
      EAT=(1-h)[2 (λ+t)] +h(λ+t)

    四、空闲页面管理
    在这里插入图片描述

    展开全文
  • 操作系统分页存储管理方式 页表实际上就是进程的虚存空间与系统中的物理存储空间的一个映射关系。 因为每个进程都有自己独立的虚存空间,所以操作系统需要为每个进程保存一个页表。 进程切换的时候操作系统就会把...

    操作系统的分页存储管理方式

    页表实际上就是进程的虚存空间与系统中的物理存储空间的一个映射关系。

    因为每个进程都有自己独立的虚存空间,所以操作系统需要为每个进程保存一个页表。

    进程切换的时候操作系统就会把即将调度运行的那个进程的页表加载MMU,完成地址空间的切换。

    在页式管理中,页表的作用是实现从页号到物理块号的地址映射,存储页表的作用是记录内存页面的分配情况。

    转载自博客
    https://blog.csdn.net/qq_28602957/article/details/53588362

    空间划分

    将一个用户进程的地址空间(逻辑空间)划分成若干个大小相等的区域,称为页或页面,各页从 0 开始编号。
    内存空间也分成若干个与页大小相等的区域,称为块(物理块)或页框(frame) ,同样从 0 开始编号。
    内存分配

    在为进程分配内存时以块为单位,将进程中若干页装入到多个不相邻的块中,最后一页常装不满一块而出现页内碎片。
    在这里插入图片描述

    页表

    为了便于在内存找到进程的每个页面所对应块,分页系统中为每个进程配置一张页表,进程逻辑地址空间中的每一页,在页表中都对应有一个页表项。

    页表存放在内存中,属于进程的现场信息。
    用途:1.记录进程的内存分配情况 2.实现进程运行时的动态重定位。
    访问一个数据需访问内存 2 次 (页表一次,内存一次)。
    页表的基址及长度由页表寄存器给出。
    在这里插入图片描述

    物理页可以在进程间共享

    物理页可以在进程间共享,两个进程共使用了1,2,3,4,6,7,9,共7个物理页。

    某操作系统采用分页存储管理方式,下图给出了进程A和进程B的页表结构。如果物理页的大小为512字节,那么进程A与进程B的物理内存总共使用了____字节。
    进程A页表:
    逻辑页 物理页

    0 9

    1 2

    2 4

    3 6

    4

    5

    进程B页表:
    逻辑页 物理页
    0 1
    1 3
    2 4
    3 7
    4 2
    5

    7*512=3584

    展开全文
  • 由于连续分配方式的以下两点不足:①固定分区分配会导致产生大量的内部碎片,内存的利用率很低,缺乏灵活性;...基本分页存储管理的思想:把内存分为一个个相等的小分区,在按照分区大小把进程拆分成一...
  • 操作系统简单分页存储管理(含代码)

    千次阅读 多人点赞 2019-05-19 01:03:39
    本实验通过程序模拟操作系统的基本分页存储管理方式,进一步理解这一内存分配方式的原理和特点,加深对理论知识的掌握。 实验要求: (1) 给出初态; (2) 程序入口参数: 分配时,参数为进程名及请求分配的内存...
  • 操作系统分页存储管理

    千次阅读 2019-04-17 09:36:58
    分页存储管理:离散分配的基本单位是页 分段式存储管理:离散分配的基本单位是段 段页式存储管理:离散分配的基本单位是段、页 空间划分 1)对于进程:将一个用户进程的地址空间(逻辑空间)划分成若干个大小...
  • 操作系统基本分页存储管理方式

    千次阅读 2014-05-01 22:54:03
    操作系统基本分页存储管理方式 连续分配内存方式会形成许多“碎片”,通过紧凑的方式将碎片拼接成一块大的空间,但是拼接过程系统开销太大。如果允许将一个进程直接分散地装入到许多不相邻的分区中,那么就不需要再...
  • 操作系统分页存储管理方式

    万次阅读 多人点赞 2016-12-12 21:16:25
    分页存储管理:离散分配的基本单位是页 分段式存储管理:离散分配的基本单位是段 段页式存储管理:离散分配的基本单位是段、页 页面和物理块空间划分 将一个用户进程的地址空间(逻辑空间)划分成若干个大小相等的...
  • 题目:分页存储管理系统:建立一个基本分页存储管理系统的模型。(1-2人) 首先分配一片较大的内存空间,作为程序运行的可用存储空间; 建立应用程序的模型; 建立进程的基本数据结构及相应算法 建立管理存储空间的...
  • 存储器管理 1实验内容模拟请求页式存储管理中硬件的地址转换和缺页中断并用先进先出调度算法FIFO处理缺页中断 2要求 指令序列的设定可以执行拟定格式如表3 在完成了FIFO换页策略后可以选做LRU的换页策略并进行比较 ...
  • 分页存储管理 操作系统课程设计 课程设计 内容全面 到手可用
  • 操作系统之基本分页存储管理方式

    千次阅读 2014-07-18 15:19:26
    操作系统之基本分页存储管理方式
  • 操作系统 实验4【基本分页存储管理
  • 操作系统实验四 基本分页存储管理

    千次阅读 2020-05-21 19:06:57
    目的:熟悉并掌握基本分页存储管理的思想及其实现方法,熟悉并掌握基本分页存储管理的分配和回收方式。 任务:模拟实现基本分页存储管理方式下内存空间的分配和回收。 二、内容、要求与安排 1、实验内容 内存空间的...
  • 3、基本分页存储管理思维导图 思维导图
  • 模拟实现虚拟分页存储管理的基本功能,包括内存的分配、内存的回收、地址变换,在发生缺页时采用LRU页面置换算法。 显示每一次内存分配和回收后内存的使用状况,每一个进程占据的内存(页表),计算给定的逻辑地址...
  • word word专业资料 word word专业资料 请求分页存储管理的实现 写出方案实现代码 (1) page 类 package homework; public class Page { private int page numb ;// 页号 private int physics numb ;// 物理块号 ...
  • 操作系统:基本分页存储管理方式

    千次阅读 2019-01-21 11:16:40
    1、离散分配方式 ----连续分配方式(分区存储管理)要求把作业放在一个连续的存储区中,因而会形成许多“碎片”,固定分区会产生内部碎片,动态分区会产生外部...如果离散分配的基本单位是页,则称为分页存储管理...
  • 操作系统课程设计,简单的基本分页存储管理系统模拟实现。
  • 操作系统分页存储管理方式中,写道: 将页表始址与页号和页表项长度的乘积相加,便得到该表项在页表中的位置。 于是可从中得到该页的物理块号,将之装入物理地址寄存器中。 列出式子出来:页表始址+页号x页表...
  • 模拟请求分页存储管理一、实验内容二、实验要求三、实验过程1、设计思想2、数据结构四、实验代码五、实验结果 一、实验内容 模拟请求分页存储管理方式。 二、实验要求 1、模拟请求分页存储管理方式,采用最近最久未...
  • 基本分页存储管理一、实验内容及要求二、实验环境三、设计思想四、数据结构五、实验代码六、运行结果 一、实验内容及要求 模拟分页存储管理方式; 模拟分页存储管理方式,定义地址变换机构函数; 程序要添加适当的...
  • 基本分页存储管理的思想——把内存分为一个个相等的小分区,再按照分区大小把进程拆分成一个个小部分。 二、分页存储管理的基本概念 将内存空间分为一个个大小相等的分区(比如:每个分区4KB),每个分区就是一个“页...
  • 基本分页存储管理 思想:把内存分为一个个相等的小分区,再按照分区大小将进程拆分成一个个小部分。 分区:页框/页帧/内存块/物理块 每一个页框有一个编号,叫做页框号/页帧号/内存块号/物理块号,从0开始 我们将...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,337
精华内容 534
关键字:

操作系统分页存储管理