精华内容
下载资源
问答
  • 请求分页虚拟存储管理技术是把作业地址空间的全部信息存放磁盘上。当作业被选中运行时,先把作业的开始几页装入主存并启动运行。为此为作业建立页表时,应说明哪些页已主存,哪些页不主存。
  • 先说下什么是页(页面):就是将用户的程序的的地址空间分成固定大小的区域,称为”页“,或者”页面...第5章虚拟存储器,学习了请求分页管理方式(除了解决碎片问题外,又“扩充”了内存的大小(虚拟)) ...

    先说下什么是页(页面):就是将用户的程序的的地址空间分成固定大小的区域,称为”页“,或者”页面“

    之后将这些页离散的放进内存中,这样解决了内存的碎片问题

    记得老师上课说了下这两个概念不能混,现在区分下:

    在第4章存储器管理,学习了分页式存储管理方式(是为了解决内存的碎片问题)

    在第5章虚拟存储器,学习了请求分页式管理方式(除了解决碎片问题外,又“扩充”了内存的大小(虚拟))

    在这里为了使得固定数目的内存来运行较多的进程,增加了调页功能和页面置换功能。

    (在这可以看书或者笔记上的例题更好理解)

    请求分页式存储管理需要一些硬件设备的支持:

    1.请求页表机构

    页号,物理块号,状态位(该页是否调入内存),访问字段(用于选择换出页),修改位(换出页是否要重写到外存),外存地址(换入页的地址)

    2.缺页中断机构(这个是请求分页式存储管理特有的)

    3.地址转换机构

     

     

    就这些吧。

    转载于:https://www.cnblogs.com/ldphoebe/p/4845007.html

    展开全文
  • Linux系统采用了虚拟内存管理机制,就是交换和请求分页存储管理技术。这样,当进程运行时,不必把整个进程的映像都放在内存,只需内存保留当前用到的那一部分页面。当进程访问到某些尚未内存的页面时,就由...

    From: http://blog.sina.com.cn/s/blog_4cbc6fdd01000ap2.html


    Linux系统采用了虚拟内存管理机制,就是交换和请求分页存储管理技术。这样,当进程运行时,不必把整个进程的映像都放在内存中,只需在内存保留当前用到的那一部分页面。当进程访问到某些尚未在内存的页面时,就由核心把这些页面装入内存。

    请求分页机制

    分页存储管理的基本方法如下:

    (1)逻辑空间分页
    将一个进程的逻辑地址空间划分成若干个大小相等的部分,每一部分称作页面或页。每页都有一个编号,叫做页号,页号从0开始依次编排,如0、1、2...

    (2)内存空间分页
    把内存也划分成与页面相同大小的若干个存储块,称作内存块或内存页面。同样,它们也进行编号,内存块号从0开始依次顺序排列:0#块、1#块、2#块....
    页面和内存块的大小是由硬件确定的,它一般选择为2的若干次幂。不同机器中页面大小是有区别的。在x86平台上的Linux系统的页面大小为4KB。

    (3)逻辑地址表示
    地址由两个部分组成,前一部分表示该地址所在页面的页号p;后一部分表示页内位移d,即页内地址。两部分构成的地址长度为32位,其中0~11为页内位移,即每页的大小为4KB;12~31位为页号,表示地址空间中最多可容纳1M个页面。

    (4)内存分配原则
    在分页情况下,系统以内存块为单位把内存分给作业或进程,并且一个进程的若干页可分别装入物理上不相邻的内存块中。

    (5)页表
    在分页系统中允许将作业或进程的各页面离散地装入内存的任何空闲块中,这样一来就出现作业的页号连续、而块号不连续的情况。怎样找到每个页面在内存中对应的物理块呢?为此,系统又为每个进程设立一张页面映像表,简称页表。

     

    请求分页存储管理技术是在简单分页技术基础上发展起来的,二者根本区别在于请求分页提供虚拟存储器。它的基本思想是,当要执行一个程序时才把它换入内存;但并不把全部程序都换入内存,而是用到哪一页时才换入它。这样,就减少了对换时间和所需内存数量,允许增加程序的道数。
    为了表示一个页面是否已装入内存块,在每一个页表项中增加一个状态位,Y表示该页对应的内存块可以访问;N表示该页不对应内存块,即该页尚未装入内存,不能立即进行访问。如果地址转换机构遇到一个具有N状态的页表项时,便产生一个缺页中断,告诉CPU当前要访问的这个页面还未装入内存。操作系统必须处理这个中断:它装入所要求的页面,并相应调整页表的记录,然后再重新启动该指令。
    由于这种页面是根据请求而被装入的,所以这种存储管理方法叫做请求分页存储管理。通常在作业最初投入运行时,仅把它的少量几页装入内存,其它各页是按照请求顺序动态装入的,这样就保证用不到的页面不会被装入内存。


    Linux 的多级页表
    在x86平台的Linux系统中,地址码采用32位,因而每个进程的虚存空间可达4GB。Linux内核将这4GB的空间分为两部分:最高地址的1GB是“系统空间”,供内核本身使用;而较低地址的3GB是各个进程的“用户空间”。

    系统空间由所有进程共享。虽然理论上每个进程的可用用户空间都是3GB,但实际的存储空间大小要受到物理存储器 (包括内存及磁盘交换区或交换文件) 的限制。
    由于Linux系统中页面大小为4KB,因此进程虚存空间要划分为1M个页面。如果直接用页表描述这种映射关系,那么每个进程的页表就要有1M个表项。很显然,用大量的内存资源来存放页表的办法是不可取的。为此,Linux系统采用三级页表的方式。

    PMD表示中间目录,PT表示页表。一个线性的虚拟地址在逻辑上从高位到低位划分成4个位段,分别用作页面目录PGD中的下标、中间目录PMD中的下标、页表PT中的下标和物理页面(即内存块)内的位移。
    这样,把一个线性地址映射成物理地址分为以下四步:
    (1) 以线性地址中最高位段作下标,在PGD中找到相应的表项,该表项指向相应的PMD。
    (2) 以线性地址中第二个位段作下标,在PMD中找到相应的表项,该表项指向相应的PT。
    (3) 以线性地址中第三个位段作下标,在PT中找到相应的表项,该表项指向相应的物理页面(即该物理页面的起始地址)。
    (4) 线性地址中的最低位段是物理页面内的相对位移量,此位移量与该物理页面的起始地址相加就得到相应的物理地址。
    地址映射是与具体的CPU和MMU(内存管理单元)相关的。对于i386来说,CPU只支持两级模型,所以,实际上跳过了中间的PMD这一级。从Pentium Pro开始,允许将地址从32位提高到36位,并且在硬件上支持三级映射模型。


    Linux系统采用位图和链表两种方法来管理内存页。

    利用位图可以记录内存单元的使用情况。用一个二进制位(bit)记录一个内存页的使用情况:如果该内存页是空闲的,则对应的位是1;如果该内存页已经分配出去,则对应的位是0。例如有1024KB的内存,内存页的大小是4KB,则可以用32个字节构成的位图来记录这些内存的使用情况。


    分配内存时就检测该位图中的各个位,找到所需个数的连续位值为1的位图位置,进而就获得所需的内存空间。利用链表可以记录已分配的内存单元和空闲的内存单元。采用双向链表结构将内存单元链接起来,从而可以加速空闲内存的查找或链表的处理。


    利用链表可以记录已分配的内存单元和空闲的内存单元。采用双向链表结构将内存单元链接起来,从而可以加速空闲内存的查找或链表的处理。Linux系统的物理内存页分配采用链表和位图相结合的方法,数组free_area的每一项描述某一种内存页组(即由相邻的空闲内存页构成的组)的使用状态信息。
    其中,头一个元素描述孤立出现的单个内存页的信息,第二个元素描述以两个连续内存页为一组的页组的信息,第三个元素描述以四个内存页为一组的页组的信息,依此类推,页组中内存页的数量依次按2的倍数递增。


    当系统启动时,交换守护进程由内核的init(初始化)进程启动。它在一些简单的初始化操作之后便进入无限循环,在每次循环的末尾会进入睡眠。内核在一定时间以后又会唤醒并调度它继续运行,这时它就又回到该无限循环开始的地方。


    交换守护进程所做的工作主要分为两部分。第一部分是在发现可用的内存页面已经短缺的情况下,则找出若干不常用的内存页面,使它们从活跃状态(至少有一个进程的页表项指向该页面)变为不活跃状态(不再有任何进程的页表项指向该页面),为页面换出作好准备。第二部分是每次都要执行的工作,把那些已经处于不活跃状态的“脏”页面(即内存页的内容与盘上页面的内容不一致)写入交换设备,使它们成为不活跃“干净”页面(内存页内容与盘上页面内容一致)继续缓冲,或者进一
    步回收一些内存页,使之成为空闲的内存页。


    展开全文
  • 请求分页存储管理方式

    千次阅读 2017-10-08 10:22:57
    ----- 请求分页系统是建立基本分页的基础上的,为了能支持虚拟存储器功能而增加了请求调页功能和页面置换功能。 相应地,每次调入和换出的基本单位都是长度固定的页面,这使得请求分页系统实现上要比请求分段...

    ----- 请求分页系统是建立在基本分页的基础上的,为了能支持虚拟存储器功能而增加了请求调页功能和页面置换功能。

    相应地,每次调入换出基本单位都是长度固定的页面,这使得请求分页系统在实现上比请求分段系统简单(请求分段系统在换进和换出时是可变长度的段)。因此,请求分页便成为目前最常用的一种实现虚拟存储器的方式。

    请求分页中的硬件支持 --20160621 16:15

    -- 为了实现请求分页,系统必须提供一定的硬件支持。除了需要一台具有一定容量的内存及外存的计算机系统外,还需要有页表机制缺页中断机构以及地址变换机构

    1)页表机制

    在请求分页系统中所需要的主要数据结构页表。其基本作用仍然是将用户空间中的逻辑地址变换为内存空间中的物理地址由于只将应用程序的一部分调入内存,还有一部分仍在盘上,故需在页表中再增加若干项,供程序(数据)在换进、换出时参考。

    在请求分页系统中的每个页表项如下所示:

    各字段的说明如下:

    ---- 状态位P:用于指示该页是否已调入内存,供程序访问时参考。

    ---- 访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问,供选择换出页面时参考。

    ---- 修改位M:表示该页在调入内存后是否被修改过。供置换页面时参考。

    由于内存中的每一页都在外存上有一份副本,因此,若未被修改,在置换该页时就不需要将该页写回到外存上,以减少系统的开销启动磁盘的次数;若已被修改,则必须将该页重写到外存上,以保证外存中所保留的始终是最新副本。

    ---- 外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考。

    2)缺页中断机构

    -- 在请求分页系统中,每当所要访问的页面不在内存中时,便产生一次缺页中断,请求OS将所缺之页调入内存。

    -- 缺页中断作为中断,同样需要经历诸如保护CPU现场分析中断原因、转入缺页中断处理程序进行处理、恢复CPU现场等几个步骤。

    -- 但缺页中断又是一种特殊的中断,它与一般的中断相比,有着明显的区别,主要表现在下面两个方面:

    ---- 在指令执行期间产生和处理中断信号。通常,CPU都是在一条指令执行完成后,才检查是否有中断请求到达。若有,便去响应,否则,继续执行下一条指令。然而,缺页中断是在指令执行期间,发现所要访问的指令或数据不在内存时所产生和处理的。

    ---- 一条指令在执行期间,可能产生多次缺页中断。所以,系统中的硬件机构应能保存多次中断时的状态,并保证最后能返回到中断前产生缺页中断的指令处继续执行。

    3)地址变换机构

    -- 请求分页系统中的地址变换机构,是在分页系统地址变换机构的基础上,为实现虚拟存储器而增加了某些功能而形成的,产生和处理缺页中断,以及从内存中换出一页的功能等等。

    ---- 在进行地址变换时,首先去检索快表,试图从中找出所要访问的页。若找到,便修改页表项中的访问位。对于写指令,还需将修改位置成“1”,然后利用页表项中给出的物理块号和页内地址形成物理地址。地址变换过程到此结束。

    ---- 如果在快表中未找到该页的页表项时,应到内存中去查找页表,再根据找到的页表项中的状态位P,了解该页是否已调入内存

    ---- 若该页已调入内存,这时应将此页的页表项写入快表,当快表已满时,应先调出按某种算法所确定的页的页表项;然后再写入该页的页表项。

    ---- 若该页尚未调入内存,这时应产生缺页中断,请求OS从外存该页调入内存


    例题:

    在请求分页管理中,已修改过的页面再次装入时应来自()。

    解答:磁盘对换区

    由于内存中的每一页都在外存上有一份副本,因此,若未被修改,在置换该页时就不需要将该页写回到外存上,以减少系统的开销启动磁盘的次数;若已被修改,则必须将该页重写到外存上,以保证外存中所保留的始终是最新副本。
    

    例题:
    在采用请求分页存储管理的系统中,如果页面不在内存则发生缺页中断,它属于()
    
    外部设备中断
    硬件故障中断
    .I/O中断
    程序中断
    解答:D

    程序中断是指:CPU在执行程序的过程中,因出现某种随机事件而收到中断请求,暂时停止现行程序的执行,转去执行一段中断服务程序,以处理该事件,并在处理完毕后自动恢复程序的执行。 
    缺页中断正是因为所需页面不在内存,向CPU发出中断请求,暂停现行程序,执行缺页中断处理程序,然后返回到原来的指令执行。所以,缺页中断是程序中断。

    展开全文
  • 请求分页系统是建立基本分页的基础上的,为了能支持虚拟存储器功能而增加了请求调页功能和页面置换功能。 相应地,每次调入和换出的基本单位都是长度固定的页面,这使得请求分页系统实现上要比请求分段系统简单...

    请求分页系统是建立在基本分页的基础上的,为了能支持虚拟存储器功能而增加了请求调页功能和页面置换功能。

    相应地,每次调入换出的基本单位都是长度固定的页面,这使得请求分页系统在实现上要比请求分段系统简单。

    请求分段系统在换进和换出时是可变长度的段,因此,请求分页便成为目前最常用的一种实现虚拟存储器的方式。

    请求分页中的硬件支持

     为了实现请求分页,系统必须提供一定的硬件支持。除了需要一台具有一定容量的内存及外存的计算机系统外,还需要有页表机制缺页中断机构以及地址变换机构

    1)页表机制

    在请求分页系统中所需要的主要数据结构页表。其基本作用仍然是将用户空间中的逻辑地址变换为内存空间中的物理地址

    由于只将应用程序的一部分调入内存,还有一部分仍在盘上,故需在页表中再增加若干项,供程序(数据)在换进、换出时参考。

    在请求分页系统中的每个页表项如下所示:

    各字段的说明如下:

    •  状态位P用于指示该页是否已调入内存,供程序访问时参考。
    •  访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问,供选择换出页面时参考。
    •  修改位M:表示该页在调入内存后是否被修改过。供置换页面时参考。

    由于内存中的每一页都在外存上有一份副本,因此,若未被修改,在置换该页时就不需要将该页写回到外存上,以减少系统的开销启动磁盘的次数;若已被修改,则必须将该页重写到外存上,以保证外存中所保留的始终是最新副本。

    •  外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考。

    2)缺页中断机构

    • 在请求分页系统中,每当所要访问的页面不在内存中时,便产生一次缺页中断,请求OS将所缺之页调入内存。
    • 缺页中断作为中断,同样需要经历诸如保护CPU现场、分析中断原因、转入缺页中断处理程序进行处理、恢复CPU现场等几个步骤。
    •  但缺页中断又是一种特殊的中断,它与一般的中断相比,有着明显的区别,主要表现在下面两个方面:
    • 在指令执行期间产生和处理中断信号。通常,CPU都是在一条指令执行完成后,才检查是否有中断请求到达。若有,便去响应,否则,继续执行下一条指令。然而,缺页中断是在指令执行期间,发现所要访问的指令或数据不在内存时所产生和处理的。
    • 一条指令在执行期间,可能产生多次缺页中断。所以,系统中的硬件机构应能保存多次中断时的状态,并保证最后能返回到中断前产生缺页中断的指令处继续执行。

    3)地址变换机构

    •  请求分页系统中的地址变换机构,是在分页系统地址变换机构的基础上,为实现虚拟存储器而增加了某些功能而形成的,

    产生和处理缺页中断,以及从内存中换出一页的功能等等。

    • 在进行地址变换时,首先去检索快表,试图从中找出所要访问的页。若找到,便修改页表项中的访问位。对于写指令,还需将修改位置成“1”, 然后利用页表项中给出的物理块号和页内地址形成物理地址。地址变换过程到此结束。
    • 如果在快表中未找到该页的页表项时,应到内存中去查找页表,再根据找到的页表项中的状态位P,了解该页是否已调入内存
    • 若该页已调入内存,这时应将此页的页表项写入快表,当快表已满时,应先调出按某种算法所确定的页的页表项;然后再写入该页的页表项。
    • 若该页尚未调入内存,这时应产生缺页中断,请求OS从外存该页调入内存
    • 地址变换机构:
    •  

    从何处调入页面?

     在请求分页系统中的外存分为两部分:用于存放文件的文件区和用于存放对换页面的对换区。通常,由于对换区是采用连续分配方式,而文件是采用离散分配方式,故对换区的磁盘I/O速度比文件区的高。这样,每当发生缺页请求时,系统应从何处将缺页调入内存,可分成如下三种情况:          

    1) 系统拥有足够的对换区空间,这时可以全部从对换区调入所需页面,以提高调页速度。

    2) 系统缺少足够的对换区空间,这时凡是不会被修改的文件,都直接从文件区调入;而当换出这些页面时,由于它们未被修改而不必再将它们换出,以后再调入时,仍从文件区直接调入。但对于那些可能被修改的部分,在将它们换出时,便须调到对换区,以后需要时,再从对换区调入。        

    3) UNIX方式。由于与进程有关的文件都放在文件区,故凡是未运行过的页面,都应从文件区调入。而对于曾经运行过但又被换出的页面,由于是被放在对换区,因此在下次调入时,应从对换区调入。由于UNIX系统允许页面共享,因此, 某进程所请求的页面有可能已被其它进程调入内存,此时也就无须再从对换区调入。 

    页面调入过程:

    1. 向CPU发出缺页中断
    2. 中断处理程序保存CPU环境转中断处理程序
    3. 该程序查找页表,得到该页在外存中的块号
    4. 若内存未满,启动磁盘I/O读入;若内存已满,先置换,再调入
    5. 最后修改页表对应项的内容,并将此页表项写入快表
    展开全文
  • 分页存储管理方式 ...而请求分页管理方式 是支持虚拟存储的 具备了页面的对换功能 调度作业时 是将它的 一部分(而不是全部) 放入内存 当发现页面缺少时 会发出一个缺页请求 从外存调用页面文件进入内
  • 虚拟技术和分页存储结合起来,那么当一个程序内存无法装下时,就先装入部分程序执行,分页存储管理方式是将程序分成一个个页,那么内存也就是先存放部分页。 步骤: 在虚拟技术的管理下,页表的属性不页号和...
  • 还支持请求调页的存储管理方式。 当进程运行需要访问某部分程序和数据时,发现其所在页面不内存,就立即提出请求(向CPU发出缺中断),由系统将其所需页面调入内存。这种页面调入方式叫请求调页。 2. 页.....
  • 操作系统——存储管理:分区、分页、分段、请求分页虚拟内存 1. 综述  突然把这么多概念弄到一起,让人有点儿困惑。自己的一些理解:  分区式管理:最简单直观的方式,内存分配一个区,将整个进程放入...
  • 虚拟存储管理

    2018-12-06 09:05:54
    2.请求分页存储管理方式 *硬件支持、地址变换、分配算法 *页面置换算法 *性能分析 3.请求分段存储管理方式 虚拟存储器的基本概念 分析常规存储器管理不足的原因: 1)常规存储器管理方式的特征 一次性:作业运行...
  • 请求分段存储管理方式请求分段存储管理系统与请求分页存储管理系统一样,为用户提供了一个比内存空间大得多的虚拟存储器。 在请求分段存储管理系统,作业运行之前,只要求将当前需要的若干个分段装入内存,便可...
  • 第一部分:模拟请求分页虚拟存储管理技术的硬件地址变换和缺页中断的过程 提示: 1、 请求分页虚拟存储管理技术是把作业地址空间的全部信息存放磁盘上,当作业被选中运行时,先把作业的开始几页装入主存并启动...
  • 2、此基础上实现请求分页的地址转换;实现请求页式地址转换出现的缺页现象,用到的先进先出、最近最久未使用、最佳置换算法。掌握内存的分配方法和虚拟存储器的概念和原理。 利用键盘输入本模拟系统分配给...
  • 虚拟存储管理器的页面调度

    千次阅读 2017-03-25 16:25:11
    请求分页存储管理:每访问一个地址时,首先要计算该地址所在的页的页号,然后查页表,判断该页是否主存;如果该页不主存且内存块未满,则调入该页;如果该页不主存且内存块已满,则按页面淘汰算法淘汰一页后...
  • 操作系统简单分页存储管理(含代码)

    千次阅读 多人点赞 2019-05-19 01:03:39
    在分页存储管理方式,如果不具备页面置换功能,则称为基本的分页存储管理方式,或称为纯分页存储管理方式,它不具备支持虚拟存储器的功能,显示一次性的特征。本实验通过程序模拟操作系统的基本分页存储管理方式...
  • 请求分段存储管理方式

    千次阅读 2019-03-31 21:16:05
    以段为单位进行换入换出,与请求分页虚拟存储系统的实现原理和硬件支持十分相似 请求分段的硬件支持 请求段表机制 字段说明 存取方式:该字段有两位,存取属性是只执行,只读和允许读写 增补位:请求分段...
  • 分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页加以编号,从0开始,如第0页、第1页等。相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame)...
  • 在分页存储管理方式,如果不具备页面对换功能,则称为基本分页存储管理方式,或称为纯分页存储管理方式,它不具有支持实现虚拟存储器的功能,它要求把每个作业全部装入内存后方能运行。 虚拟内存技术 即拿出一...
  • 传统存储管理方式的特征 上一节所讨论的各种内存管理策略都是为了同时将多个进程保存内存以便允许多道程序设计。它们都具有以下两个共同的特征: 1) 一次性 作业必须一次性全部装入内存后,方能开始运行。这...
  • 绪论 虚拟储存管理时这样的一种储存管理方式:他采用全部的分页储存管理方式的特点,但对某些特点给予了优化:程序的所有页程序运行时不必全部载入,只要载入部分页就能开始运行。当程序运行至未被载入的页时,...
  • 页面调度策略是针对于分页式(段页式)内存管理,将数据从主存->辅存,此时如果一个进程所需内存大于当前系统内存,那么该进程仍然可以系统正常运行,因为该进程的一部分可以被还出到外存上。 虚拟存储器系统...
  • 文章目录概述基本概念分区存储管理分区保护分页存储管理地址组成页面映射表快表两级页表分段存储管理地址组成段映射表段页式存储管理虚拟存储管理实现方式请求分页管理页面置换算法 概述 操作系统的概念,存储...
  • 实验五 存储管理.docx

    2020-10-21 09:36:16
    通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。 [实验学时] 4学时 [实验类型] 设计...
  • 虚拟存储器管理

    2020-07-11 20:37:40
    设计一个请求页式存储管理方案,编写模拟程序实现具体过程,并计算缺页率(所有内存开始都是空的,凡第一次用到的页面都产生一次缺页中断)。 要求实现下列页面置换算法: (1)先进先出算法(FIFO) (2)最近最久未使用...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 139
精华内容 55
关键字:

在请求分页虚拟存储管理中