当前位置:   article > 正文

北航991——内存管理_可以用户共享,又可以解决系统碎片的是请求分页系统,动态分区,分段系统,段页式

可以用户共享,又可以解决系统碎片的是请求分页系统,动态分区,分段系统,段页式

为什么要引入动态重定位?

  • 作业在运行过程中经常要在内存中移动位置(如对换、紧凑),引入动态重定位的目的就是为了满足程序的这种需求。
  • 动态重定位的实现需要一定的硬件支持,重定位的过程由硬件地址变换机构在程序执行每条指令时自动完成。

什么是交换技术?什么是覆盖技术?

  • 交换技术是让多个用户作业轮流进入主存(换入、换出)执行,也就是把主存中暂时不能运行的进程换出到外存,而把具备运行条件的进程换入主存,使其投入运行。
  • 覆盖技术把用户作业分成若干段,使主段成为作业执行过程中经常使用的信息,其他段不同时工作。作业执行时,把主段常驻主存区,其他段轮流装入覆盖区来执行。

简要比较主存的连续分配和离散分配

  • 连续分配是指为用户程序分配一端连续的内存空间,包括单一连续分配方式和分区分配方式。
    • 单一连续分配方式将内存分为系统区和用户区,系统区供操作系统使用,用户区供用户使用,是最简单的一种存储方式。但只能用于单用户、单任务的操作系统中。
    • 分区分配方式分为固定分区和动态分区
      • 固定分区是最简单的多道程序的存储管理方式,由于每个分区的大小固定,必然会造成存储空间的浪费;
      • 动态分区是根据进程的实际需要,动态地为之分配连续的内存空间,常用的分配算法有:
        • 首次适应算法:容易留下许多难以利用的小空闲分区,加大查找开销。
        • 循环首次适应算法:使内存中的空闲分区分布均匀,但会导致缺少大的空闲分区。
        • 最佳适应算法:容易留下许多难以利用的小空闲区
  • 离散分配方式基于将一个进程分配到多个不相邻的存储区中的思想,分为分页式存储管理、分段存储管理和段页式存储管理。
    • 分页式存储管理旨在提高内存利用率,满足系统管理的需要。
    • 分段式存储管理旨在满足用户的需要,在实现共享和保护方面优于分页式存储管理。
    • 段页式存储管理则是将两者结合起来,取长补短,既具有分段系统便于实现、可共享、易于保护、可动态链接等优点,又能像分页系统那样很好的解决外部碎片的问题,以及为各个分段可离散分配内存等问题,显然是一种比较有效的存储管理方式。

分页和分段存储方式的主要区别是什么

分页和分段系统有许多相似之处。两者都采用离散分配方式,且都要通过地址映射机构来实现地址变换。分页和分段的主要区别如下:

  • 页是信息的物理单位,分页仅仅是由于系统管理的需要;段是信息的逻辑单位,分段的目的是为了更好的满足用户的需要。
  • 分页的作业地址空间是一维的;分段的作业地址空间是二维的;
  • 分页以物理块为单位离散分配,无外部碎片,所以也无紧缩问题;分段以段为单位离散分配,会产生许多分散的小自由分区,即外部碎片,造成主存利用率低,须采用拼接解决碎片问题。
  • 分段便于处理变化的数据结构段,可动态增长;分页不能动态增长。
  • 分段提供动态链接的便利,运行中不用的模块可以不连接调入,节省内存空间;分页不能动态连接。
  • 分段便于控制存取访问,段是逻辑上的完整信息可根据各短信息决定存取访问权;分页存取访问控制困难。

什么是虚拟存储器,其特点是什么?为什么从逻辑上说采用虚拟存储器能扩大内存存储空间?

  • 虚拟存储器是操作系统提供的一个假象的特大存储器,是操作系统采用内外存的交换技术在逻辑上提供对物理内存的扩充
  • 采用虚拟存储器技术时,操作系统根据程序执行的情况,对每个程序进行换入、换出,用户却没有察觉,从而得到一个比真实内存空间大得多的地址空间。所以从逻辑上说,采用虚拟存储器能扩大内存存储空间。

在请求分页请求管理系统中,什么时候为进程分配内存?分配的单位是什么?

当进程访问到某个不再内存的页面而引起缺页中断时,操作系统才为进程分配内存,分配的单位是页帧或物理块。

覆盖技术与虚拟技术有何本质不同?

  • 在覆盖技术中,覆盖段由用户设计,用户对内存的划分也要参与操作(覆盖描述语言)
  • 虚拟存储技术是由系统提供空间给用户使用,用户并不需要了解内存的情况,物理空间的划分和管理均由系统来完成

却也中断与一般中断的主要区别

缺页中断作为中断,同样需要经历保护CPU现场、分析中断原因、转缺页中断处理程序进行处理、恢复CPU现场等步骤。但缺页中断又是一种特殊的中断,它与一般中断的区别主要体现在:

  • 在指令执行期间产生和处理中断信号。通常,CPU都是在指令执行完后去检查是否有中断请求到达,若有中断便去相应中断;否则继续执行下一条指令。而缺页中断是在指令执行期间,发现所要访问的指令和数据不在内存时产生和处理的。
  • 一条指令在执行期间可能产生多次缺页中断。例如,对于一条读取数据的多字节指令,指令本身可能跨过两个页面,假定指令后一部分所在页面和数据页面均不在内存中,则该指令的执行至少产生2次缺页中断。

简述操作系统是如何处理缺页中断和缺段中断的

缺页中断处理:

  • 查主存分配表找一个空闲主存块,若无空闲块,则采用某种页面置换算法来解决,即从主存中淘汰某个页面(称为淘汰页),然后查页表找出该页面在磁盘上的位置,启动磁盘读出该页面信息。
  • 将从磁盘上读出含有所需信息的新页面,装入到淘汰页所在的主存块中。
  • 修改页表中相应表目,表示新页面已在主存中。
  • 重新执行被中断的指令。

缺段中断处理:

  • 查主存分配表,找出一个足够大的连续区以容纳该分段。如果找不到,则检查空闲区总和。若空闲区总和能满足该段要求,那么采用拼接技术将分散的空闲区集中起来。
  • 若空闲区总和不能满足要求,可把主存中一段或几段调出,然后把当前要访问的新段装入主存。
  • 旧段被移动、调出和新段装入后,都要对段表中的相应表目做修改。
  • 新段装入后,让作业重新执行被中断的指令。

在请求分页存储管理中影响缺页中断有哪几个主要因素?

  • 分配给作业的主存块数越多,则缺页率越低;反之,则缺页中断率越高。
  • 页面越大,缺页中断率越低;反之,页面越小,缺页中断率越高。
  • 页面置换算法对缺页中断率影响很大,但不可能找到一种最佳算法。
  • 程序编制方法。以数组运算为例,如果每一行元素存放在一个页面中,则按行处理各元素,缺页中断率低;反之,按列处理各元素,缺页中断率高。

什么是请求分页管理方式?能满足用户哪些需要?

  • 把用户逻辑地址空间和内存都分成同样大小的页面和物理块,利用页表建立起逻辑页面和物理块之间的联系,通过地址变换将逻辑地址转换成物理地址。分页系统的逻辑地址分为页号和页内偏移量。页表包括页号和块号数据项,它们一一对应。根据逻辑空间的页号,查找页表对应项 找到对应的块号,块号乘以块长,加上偏移量就形成存储空间的物理地址。每个作业的逻辑地址空间是连续的,重定位到内存空间后就不一定连续了。
  • 请求分页管理方式是在作业运行时不需要把作业分成的所有页面都装入内存,而在作业运行时动态地装入所需要的页面,所以请求分页存储管理在动态地址转换过程中需要确定某一页面是否已经调入主 存,若调入主存,则可直接将逻辑地址转换为物理地址,如果该页面未调入主存,则产生缺页中断,以装入所需的页面。
  • 该管理方式能满足用户扩大内存的需求,请求分页管理提供了内存与外存统一管理的虚存实现方式; 内存利用率高;不要求作业连续存放,有效解决“碎片问题”。

在分页虚拟存储管理系统中,为什么说一条指令执行期问可能产生多次缺页中断?

  • 因为在分页虚拟管理方式中,只要作业的部分页在内存,该作业就能执行,而 在执行过程中发现所要访问的指令或者数据不在内存时,则产生缺页中断,将所需的页而调入内存
  • 在分页虚拟存储管理系统中,一条指令(如 Copy A to B)可能跨了两个页,而其中要访问的操作数可能 也跨了两个页,当要执行这类指令,而相应的页都不在内存时,就将产生多次缺页中断。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/236744?site
推荐阅读
相关标签
  

闽ICP备14008679号