精华内容
下载资源
问答
  • 创建请求页表,通过编程模拟缺页中断和地址变换,实现请求调页功能和页面置换功能。
  • 实验ppt
  • OS- -请求分页系统请求分段系统请求段页式系统(二) 文章目录OS- -请求分页系统请求分段系统请求段页式系统(二)一、基本分段存储管理方式1.分段系统的组成:2.段表3.查找过程4.分段和分页的对比二、段页式内存...

    OS- -请求分页系统、请求分段系统和请求段页式系统(二)

    一、基本分段存储管理方式

    • 分段 : 进程的地址空间会按照自身的逻辑关系划分为若干个段, 每个段都有一个段名, 每段从0开始编址
    • 内存分配规则 : 以段为单位进行分配, 每个段在内存中占据连续空间, 但各段之间可以不相邻

    1.分段系统的组成:

    • 段号------ 段号的位数决定了每个进程最多可以分为几个段
    • 段内地址------段内地址的位数决定了每个段的最大长度是多少

    在这里插入图片描述

    2.段表

    • 程序分为多个段, 各个段离散地装入内存, 为了保证程序能正常运行, 就必须能从物理内存中找到各个逻辑段的存放位置. 为此,需为每个进程建立一张段映射表, 简称 " 段表 " .
      在这里插入图片描述
    • 关于段表 :
    • 每个段对应一个段表项, 记录着该段在内存中的起始位置 ( 基址 ) 和 段长
    • 各个段表项的长度是相同的, 因此和页号一样, 段号是" 隐含"的, 不占据存储空间

    3.查找过程

    在这里插入图片描述

    4.分段和分页的对比

    • 页是信息的物理单位, 分页的主要目的是为了实现离散分配, 提高内存利用率. 分页仅仅是系统管理上的需要, 完全是系统行为,对用户是不可见的
    • 段是信息的逻辑单位, 分段的主要目的是更好地满足用户需求. 一个段通常包含着一组属于一个逻辑模块的信息, 分段对用户是可见的,用户编程时需要显式地给出段名
    • 页的大小是固定且由系统决定, 段的长度却不固定, 决定于用户编写的程序
    • 分页的用户进程地址空间是一维的, 分段的用户进程是二维的.
      在这里插入图片描述
    • 分段比分页更容易实现信息的共享和保护

    二、段页式内存管理方式

    1.分页, 分段管理的优缺点分析

    在这里插入图片描述

    2.段页式管理的结构

    • 先分段 , 再分页
      在这里插入图片描述
    • 段页式管理的逻辑地址结构 :由段号, 页号, 页内偏移 组成
      在这里插入图片描述
    • 段号的位数决定了每个进程最多可以分为几个段
    • 页号位数决定了每个段最大有多少页
    • 页内偏移量决定了页面大小和内存块的大小
    • 注意 :

    • "分段"对用户是可见的, 而将各段"分页"对用户是不可见的, 系统会根据段内地址自动划分页号和段内偏移量,

    • 因此段页式管理的地址结构是"二维"的.

    3.段表, 页表

    • 每一个进程对应一个段表, 每一个段又对应一个页表, 因此一个进程可能对应多个页表.
      在这里插入图片描述

    4.查找过程

    在这里插入图片描述

    1. 逻辑地址得到段号, 页号, 页内偏移
    2. 段号与段表寄存器的段长度比较, 检查是否越界
    3. 由段表始址, 段号找到对应段表项 ---- ( 一次访存)
    4. 根据段表中记录的页表长度, 检查页号是否越界
    5. 由段表中的页表地址, 页号得到查询页表, 找到相应页表项 ---- ( 二次访存)
    6. 由页面存放的内存块号, 页内偏移得到最终的物理地址
    7. 访问目标单元 ---- ( 三次访存)

    三、虚拟内存

    • 传统存储管理方式的特征, 缺点:
      在这里插入图片描述
    • 一次性 : 作业必须一次性全部装入内存才能开始运行
    • 作业很大时, 无法装入导致大作业无法运行
    • 大量作业要求运行时内存无法容纳所有作业, 导致多道程序并发度下降
    • 驻留性 : 一旦作业被装入内存, 就会一直驻留在内存中, 直到作业运行结束, 这样会导致内存中驻留大量的, 暂时用不到的数据,浪费内存资源

    虚拟内存—基于局部性原理

    1. 在程序装入时, 将程序中很快会用到的部分装入内存, 暂时用不到的部分留在外存, 就可以让程序开始执行.
    2. 在程序执行过程中, 当所访问的信息不在内存时, 由操作系统负责将所需信息由外存调入内存, 然后继续执行程序.
    3. 内存空间不够时, 操作系统负责将内存中暂时用不到的信息换出到外存
    4. 在用户看来, 就有一个比实际内存大很多的内存, 这就叫虚拟内存

    注意 :

    • 虚拟内存的最大容量是由计算机的地址结构 ( CPU的寻址范围 ) 确定的,
    • 虚拟内存的实际容量 = 𝑚𝑖𝑛(内存容量+外存容量,𝐶𝑃𝑈寻址范围)
      在这里插入图片描述
    • 虚拟内存的实现 :

    • 请求分页存储管理

    • 请求分段存储管理

    • 请求段页式存储管理

    • 操作系统需要提供的功能 :

    • 请求调页 ( 段 )

    • 页面置换 ( 段置换 )

    • 缺页时请求掉页不一定页面置换, 若还有可用的内存块, 就不用进行页面置换

    四、请求分页管理方式

    1.页表机制

    在这里插入图片描述

    2.缺页中断机构

    • 在请求分页操作系统中, 每当要访问的页面不在内存时, 便产生一个缺页中断, 然后由操作系统的缺页中断处理程序处理中断

    • 此时缺页的进程阻塞, 放入阻塞队列, 调页完成后再将其唤醒, 放回就绪队列

    • 如果内存中有空闲块, 则为进程分配一个空闲块, 将所缺页面装入该块, 并修改页表中相应的页表项

    • 如果内存中没有空闲块, 则由页面置换算法选择一个页面淘汰, 若该页面在内存期间被修改过, 则要将其写回外存, 未修改过的页面不用写回外存

    • 缺页中断是因为当前执行的指令想要访问目标页面未调入内存而产生的, 因此属于内中断 :
      在这里插入图片描述

    3.页面置换算法

    • 最佳置换算法OPT

    • 每次选择淘汰的页面是以后永不使用或者在最长时间内不会使用的页面, 保证最低的缺页率 . 但是操作系统无法预判页面访问序列, 这种算法是无法实现的

    • 先进先出置换算法 FIFO

    • 每次淘汰的页面是最早进入内存的页面

    • 实现 : 将调入内存的页面根据调入的先后顺序排成一个队列, 需要置换页面的时候选择队首的页面.

    • 实现简单, 算法性能差, 不适应进程实际运行时的规律

    • 最近最久未使用算法 LRU
      在这里插入图片描述

    • 当需要淘汰一个页面的时候, 选择现有页面中t值最大的, 即最近最久未使用的页面.

    • 需要淘汰页面时, 逆向检查此时在内存中的几个页面号, 最后一个出现的页号就是需要被淘汰的

    • LRU算法的特点 : 性能好, 但实现起来需要专门的硬件支持, 算法开销大

    • 时钟置换算法 ( CLOCK ) / 最近未用算法 ( NRU )

    他们是同一种算法.

    • 简单的CLOCK算法的实现方法 :
      在这里插入图片描述
    • 简单的时钟置换算法仅考虑到了一个页面最近是否被访问过
    • 但是事实上, 如果被淘汰的页面没有被修改过, 就不需要执行I/O操作写回外存. 只有被淘汰的页面被修改过时, 才需要写回外存
    • 因此, 除了考虑一个页面最近有没有被访问过之外, 操作系统还应该考虑页面有没有被修改过.
    • 在其他条件都相同时, 应该优先淘汰没有修改过的页面, 避免I/O操作, 这就是改进型的时钟置换算法的思想.

    利用 (访问位, 修改位) 的形式表示各页面状态

    在这里插入图片描述

    • 特点 : 开销小, 性能也不错

    四、页面分配策略

    1.驻留集

    • 请求分页存储管理器中给进程分配的物理块的集合. ( 系统给进程分配了n各物理块 ----的另一种表述 : 驻留集大小为n)

    • 在采用虚拟存储技术的系统中, 驻留集的大小一般小于进程的总大小

    • 如果驻留集太小, 会导致缺页频繁, 系统要花大量的时间来处理缺页, 实际用于进程推进的时间很少

    • 如果驻留集太大, 会导致多道程序并发度下降, 资源利用率降低

    2.几种分配策略

    在这里插入图片描述

    • 固定分配全局置换不存在, 因为进程物理块固定后不会再分配给别人
      在这里插入图片描述
    • 可变分配全局置换 : 只要缺页就给分配新物理块
    • 可变分配局部置换 : 根据发生缺页的频率来动态地增加或减少进程的物理块

    3.何时调入页面

    • 预调页策略
    • 请求调页策略
      在这里插入图片描述
      在这里插入图片描述

    4.何处调入页面

    在这里插入图片描述

    • 文件区用于调入不会被修改的数据, 对换区用用于调入可能被修改的数据

    5.抖动(颠簸)现象

    在这里插入图片描述

    6.工作集

    在这里插入图片描述

    • 一般来说 驻留集的大小不能小于工作集的大小, 否则进程运行过程中将频繁缺页.
    展开全文
  • 实验八:请求分页系统页面淘汰算法 内容:设计页表结构,编制一个请求分页的仿真程序,通过指令访问随机的虚页。通过页面映射,判断是否命中当前工作集中的实页。如果没有命中,则从自由队列获得一个空闲内存页;...
  • 内容:设计页表结构,编制一个请求分页的仿真程序,通过指令访问随机的虚页。通过页面映射,判断是否命中当前工作集中的实页。如果没有命中,则从自由队列获得一个空闲内存页;如果工作集中的实页总数已满,则采用某...
  • 2.能够模拟内存的分页式分配和回收过程,可查看内存分配位示图和进程页表; 3.可根据内存分配状态进行地址转换。 4.能够模拟基于虚拟存储器的内存分配和回收过程,可查看交换空间位示图和扩 展的页表; 5.在虚拟...
  • 操作系统请求分页

    2017-12-04 21:27:41
    为了简单起见。页面淘汰算法采用 FIFO页面淘汰算法,并且在淘汰一页时,判断它是否被改写过,如果被修改过,将它写回到辅存。
  • 通过实现一个操作系统的内存管理的模拟系统,观察内存空闲分区管理、内存分配和回收过程,了解内存管理技术等特点,掌握内存管理中的分配、回收和置换算法,加深对请求调页系统的原理和实现过程的理解。
  • 利用键盘输入本模拟系统的物理块的大小,作业的页表中的块号;完成逻辑地址转换成相应的物理地址的过程。 1、建立一张位示图,用来模拟内存的分配情况,利用随机数产生一组0和1的数对应内存的使用情况。 2、输入块...
  • 通过《操作系统》课程实训,达到以下目的:(1)巩固和加深对操作系统(OS)原理的理解,初步掌握操作系统组成模块和应用接口的使用方法,提高进行工程设计和系统分析的能力;(2)通过相关课题的设计,锻炼学生解决...
  • 1. 项目需求 1.1 基本任务 ​ 假设每个页面可存放10条指令,分配给一个作业的内存块为4。模拟一个作业的执行过程,该作业有320条指令,即它的地址空间为32页,目前所有页还没有调入内存。 1.2 功能描述 ...
  • 请求分页系统中最主要的数据结构是请求页表 请求页表,其基本作用:将用户地址空间中的逻辑地址映射为内存空间中的物理地址 为了满足页面换入换出功能,在请求页表中增加四个字段 状态位P:由于在请求分页系统中,...
    • 请求页表机制
    • 在请求分页系统中最主要的数据结构是请求页表
    • 请求页表,其基本作用:将用户地址空间中的逻辑地址映射为内存空间中的物理地址
    • 为了满足页面换入换出功能,在请求页表中增加四个字段
    • 状态位P:由于在请求分页系统中,只将应用程序的一部分调入内存,还有一部分在外存磁盘上, 故在页表中增加一个存在位字段。用于指示该页是否已调入内存
    • 访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问
    • 修改位M:标识该页调入内存后是否被修改。内存中的每一页都在外存上有副本。在置换该页时,若未被修改,就不需要再把该页写回外存上。若已经被修改,则必须将该页重新写回外存上。
    • 外存地址:用于指出该页在外存上的地址。

    缺页中断机制
    在请求分页系统中,每当所要访问的页面不在内存时,便产生一缺页中断,请求OS将所缺之页调入内存。
    缺页中断是一种特殊的中断
    (1)在指令执行期间产生和处理中断信号。通常,CPU都是在一条指令执行完后,才检查是否有中断请求到达。但是,缺页中断是在指令执行期间,若发现要访问的指令或数据不存在内存时,便立即产生和处理缺页中断信号
    (2)一条指令在执行期间可能多次产生缺页中断

    地址变换机制

    展开全文
  • 请求分页系统工作机制

    千次阅读 2016-11-13 15:53:01
    请求分页系统建立在基本分页系统基础之上,为了支持虚拟存储器功能而增加了请求调页功能和页面置换功能。请求分页是目前最常用的一种实现虚拟存储器的方法。 在请求分页系统中,只要求将当前需要的一部分页面装入...
    请求分页系统建立在基本分页系统基础之上,为了支持虚拟存储器功能而增加了请求调页功能和页面置换功能。请求分页是目前最常用的一种实现虚拟存储器的方法。
    

    在请求分页系统中,只要求将当前需要的一部分页面装入内存,便可以启动作业运行。在作业执行过程中,当所要访问的页面不在内存时,再通过调页功能将其调入,同时还可以通过置换功能将暂时不用的页面换出到外存上,以便腾出内存空间。

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

    页表机制

    请求分页系统的页表机制不同于基本分页系统,请求分页系统在一个作业运行之前不要求全部一次性调入内存,因此在作业的运行过程中,必然会出现要访问的页面不在内存的情况,如何发现和处理这种情况是请求分页系统必须解决的两个基本问题。为此,在请求页表项中增加了四个字段,如图3-24所示。


    图3-24  请求分页系统中的页表项

    增加的四个字段说明如下:
    • 状态位P:用于指示该页是否已调入内存,供程序访问时参考。
    • 访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页最近己有多长时间未被访问,供置换算法换出页面时参考。
    • 修改位M:标识该页在调入内存后是否被修改过。
    • 外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考。

    缺页中断机构

    在请求分页系统中,每当所要访问的页面不在内存时,便产生一个缺页中断,请求操作系统将所缺的页调入内存。此时应将缺页的进程阻塞(调页完成唤醒),如果内存中有空闲块,则分配一个块,将要调入的页装入该块,并修改页表中相应页表项,若此时内存中没有空闲块,则要淘汰某页(若被淘汰页在内存期间被修改过,则要将其写回外存)。

    缺页中断作为中断同样要经历,诸如保护CPU环境、分析中断原因、转入缺页中断处理程序、恢复CPU环境等几个步骤。但与一般的中断相比,它有以下两个明显的区别:
    • 在指令执行期间产生和处理中断信号,而非一条指令执行完后,属于内部中断。
    • 一条指令在执行期间,可能产生多次缺页中断。

    地址变换机构

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


    图3-25请求分页中的地址变换过程

    如图3-25所示,在进行地址变换时,先检索快表:
    • 若找到要访问的页,便修改页表项中的访问位(写指令则还须重置修改位),然后利用页表项中给出的物理块号和页内地址形成物理地址。
    • 若未找到该页的页表项,应到内存中去查找页表,再对比页表项中的状态位P,看该页是否已调入内存,未调入则产生缺页中断,请求从外存把该页调入内存
    展开全文
  • 1) 实现请求分页存储管理方式的页面置换算法:近期最少使用算法(LFU) 2) 内存物理块数固定为15个,对多个作业采用可变分配全局置换的策略分配物理块 3) 作业数量与作业大小(10-20页)可在界面进行设置 4) 所有...
  • 里面含有代码和课程设计报告!!!!本次课程设计是通过用python去模拟实现OPT、FIFO、LRU、LFU、简单和改进的CLOCK六种页面置换算法,程序能够动态的显示置换的过程,同时研究各算法缺页率与物理块数、随机性之间的...
  • 请求分页存储管理Python实现源代码+课设报告文档-海南大学信息学院操作系统课设。请求分页存储管理Python实现源代码+课设报告文档-海南大学信息学院操作系统课设。
  • 操作系统课设 请求分页存储管理系统
  • 请求分页存储管理系统设计与实现可课程设计
  • 操作系统请求分页存储管理模拟模拟程序,程序相对简单,通过这个模拟程序能够帮助学习者会更好的学习os,供有需要的人学习使用。
  • 请求分页请求分段管理方式

    千次阅读 2020-05-12 11:56:45
    请求分页系统建立在基本分页系统基础之上,为了支持虚拟存储器功能而增加了请求调页功能和页面置换功能。请求分页是目前最常用的一种实现虚拟存储器的方法。 在请求分页系统中,只要求将当前需要的一部分页面装入...

                              请求分页与请求分段管理方式

    请求分页管理方式 

    1 概述

    请求分页系统建立在基本分页系统基础之上,为了支持虚拟存储器功能而增加了请求调页功能和页面置换功能。请求分页是目前最常用的一种实现虚拟存储器的方法。

    在请求分页系统中,只要求将当前需要的一部分页面装入内存,便可以启动作业运行。在作业执行过程中,当所要访问的页面不在内存时,再通过调页功能将其调入,同时还可以通过置换功能将暂时不用的页面换出到外存上,以便腾出内存空间。

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

    2 页表机制

    请求分页系统在一个作业运行之前不要求全部一次性调入内存,因此在作业的运行过程中,必然会出现要访问的页面不在内存的情况。为解决此类问题,在请求页表项中增加了四个字段:

    说明如下:

    • 状态位P:用于指示该页是否已调入内存,供程序访问时参考。
    • 访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页最近己有多长时间未被访问,供置换算法换出页面时参考。
    • 修改位M:标识该页在调入内存后是否被修改过。
    • 外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考。

    3 缺页中断机构

    在请求分页系统中,每当所要访问的页面不在内存时,便产生一个缺页中断,请求操作系统将所缺的页调入内存。此时应将缺页的进程阻塞(调页完成唤醒),如果内存中有空闲块,则分配一个块,将要调入的页装入该块,并修改页表中相应页表项,若此时内存中没有空闲块,则要淘汰某页(若被淘汰页在内存期间被修改过,则要将其写回外存)。

    缺页中断作为中断同样要经历,诸如保护CPU环境、分析中断原因、转入缺页中断处理程序、恢复CPU环境等几个步骤。但与一般的中断相比,它有以下两个明显的区别:

    • 在指令执行期间产生和处理中断信号,而非一条指令执行完后,属于内部中断(又称异常或陷入)。
    • 一条指令在执行期间,可能产生多次缺页中断。

    4 地址变换机构


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

    如图所示,在进行地址变换时,先检索快表:

    • 若找到要访问的页,便修改页表项中的访问位(写指令则还须重置修改位),然后利用页表项中给出的物理块号和页内地址形成物理地址。
    • 若未找到该页的页表项,应到内存中去查找页表,再对比页表项中的状态位P,看该页是否已调入内存,未调入则产生缺页中断,请求从外存把该页调入内存。

    请求分段管理方式

    1 概述

    在请求分段存储管理系统中,作业运行之前,只要求将当前需要的若干个分段装入内存,便可启动作业运行。在作业运行过程中,如果要访问的分段不在内存中,则通过调段功能将其调入,同时还可以通过置换功能将暂时不用的分段换出到外存,以便腾出内存空间。

    为实现请求分段系统,系统应该配置段表机制、缺段中断机构、机制变换机构硬件支持。

    2 段表机制

    • 存取方式:存取属性(执行、只读、允许读/写)
    • 访问字段A:记录该段被访问的频繁程度
    • 修改位M:表示该段在进入内存后,是否被修改过。
    • 存在位P:表示该段是否在内存中。
    • 增补位:表示在运行过程中,该段是否做过动态增长。
    • 外存地址:表示该段在外存中的起始地址。

    3 缺段中断机制

    缺段中断机构与缺页中断机构类似,它同样需要在一条指令执行期间,产生和处理中断,以及一条指令执行期间可能产生多此缺段中断。由于分段是信息的逻辑单元,因而不可能出现一条指令被分割在两个分段中和一个信息被分割在两个分段中的情况。

    缺段中断的处理过程如图:

    4 地址变换机构

    请求分段系统中地址变换机构是在分段系统地址变换机构的基础上形成的。如下图所示:

    5 分段共享与保护

    5.1 分段共享

    为了实现分段共享,设置一个数据结构——共享段表,以及对共享段进行操作的过程。

     

    所有的共享段都在共享段表中对应一个表项。其中:

    • 共享进程计数器count:记录有多少个进程需要共享该分段,设置一个整型变量count。
    • 存取控制字段:设定存取权限。
    • 段号:对于一个共享段,不同的进程可以各用不同的段号去共享该段。

    5.2 分段保护

    在分段系统中,由于每个段在逻辑上是独立,因而比较容易实现信息保护。目前分段管理的保护主要有三种:

    • 地址越界保护
      先利用段表寄存器中的段表长度与逻辑地址中的段号比较,若段号超界则产生越界中断;再利用段表项中的段长与逻辑地址中的段内位移进行比较,若段内位移大于段长,也会产生越界中断。
      注:在允许段动态增长的系统中,允许段内位移大于段长。

    • 访问控制保护(存取控制保护)
      在段表中设置了一个存取控制字段,用于规定对该段的访问方式。

    • 环保护机构
      环的构成:OS核心在内环;重要的实用程序和操作系统服务在中间环;一般应用程序在外环。
      在环系统中,程序的访问和调用应遵循一定的规则:
      (1)一个程序可以访问同环或较低特权环中的数据;
      (2)一个程序可以调用同环或较高特权环中的服务;

     

    参考文献

    https://www.jianshu.com/p/2bec3defcb3f

     

     

    一.  分页存储管理

     

    1.基本思想

     

    用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配。

    1)      等分内存

    页式存储管理将内存空间划分成等长的若干物理块,成为物理页面也成为物理块,每个物理块的大小一般取2的整数幂。内存的所有物理块从0开始编号,称作物理页号。

    2) 逻辑地址

    系统将程序的逻辑空间按照同样大小也划分成若干页面,称为逻辑页面也称为页。程序的各个逻辑页面从0开始依次编号,称作逻辑页号或相对页号。每个页面内从0开始编址,称为页内地址。程序中的逻辑地址由两部分组成:页号P和页内位移量W。

    在执行一个程序之前,内存管理器需要的准备工作:

    1) 确定程序的页数

    2) 在主存中留出足够的空闲页面

    3) 将程序的所有页面载入主存里。(静态的分页,页面无需连续)

    2. 分页存储管理的地址机构

    页号x位,每个作业最多2的x次方页,页内位移量的位数表示页的大小,若页内位移量y位,则2的y次方,即页的大小,页内地址从000000000000开始到2的y次方

    若给定一个逻辑地址为A,页面大小为L,则

    页号P=INT[A/L],页内地址W=A  MOD  L

    3.内存分配

        相邻的页面在内存中不一定相邻,即分配给程序的内存块之间不一定连续。对程序地址空间的分页是系统自动进行的,即对用户是透明的。由于页面尺寸为2的整数次幂,故相对地址中的高位部分即为页号,低位部分为页内地址。

    4. 页表

    分页系统中,允许将进程的每一页离散地存储在内存的任一物理块中,为了能在内存中找到每个页面对应的物理块,系统为每个进程建立一张页表,用于记录进程逻辑页面与内存物理页面之间的对应关系。页表的作用是实现从页号到物理块号的地址映射,地址空间有多少页,该页表里就登记多少行,且按逻辑页的顺序排列,形如:

    5. 地址变换

    页式虚拟存储系统的逻辑地址是由页号和页内地址两部分组成,地址变换过程如图7-3所示。假定页面的大小为4K,图7-3中所示的十进制逻辑地址8203经过地址变换后,形成的物理地址a应为十进制。 
                 

    页号: 8203/4096 = 2;页内偏移:8203%4096= 11;物理地址:物理块号*页面大小+ 页内偏移= 28683。

    6. 具有快表的地址变换机构

    分页系统中,CPU每次要存取一个数据,都要两次访问内存(访问页表、访问实际物理地址)。为提高地址变换速度,增设一个具有并行查询能力的特殊高速缓冲存储器,称为“联想存储器”或“快表”,存放当前访问的页表项。

    7.页面的共享与保护

        当多个不同进程中需要有相同页面信息时,可以在主存中只保留一个副本,只要让这些进程各自的有关项中指向内存同一块号即可。同时在页表中设置相应的“存取权限”,对不同进程的访问权限进行各种必要的限制。
     

    二.分段存储管理

    1.基本思想

    页面是主存物理空间中划分出来的等长的固定区域。分页方式的优点是页长固定,因而便于构造页表、易于管理,且不存在外碎片。但分页方式的缺点是页长与程序的逻辑大小不相关。例如,某个时刻一个子程序可能有一部分在主存中,另一部分则在辅存中。这不利于编程时的独立性,并给换入换出处理、存储保护和存储共享等操作造成麻烦。

    另一种划分可寻址的存储空间的方法称为分段。段是按照程序的自然分界划分的长度可以动态改变的区域。通常,程序员把子程序、操作数和常数等不同类型的数据划分到不同的段中,并且每个程序可以有多个相同类型的段。

     段表本身也是一个段,可以存在辅存中,但一般是驻留在主存中。

    将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配。

    2. 分段地址结构

    作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。例程序段、数据段等。每个段都从0开始编址,并采用一段连续的地址空间。段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。整个作业的地址空间是二维的。

    在段式虚拟存储系统中,虚拟地址由段号和段内地址组成,虚拟地址到实存地址的变换通过段表来实现。每个程序设置一个段表,段表的每一个表项对应一个段,每个表项至少包括三个字段:有效位(指明该段是否已经调入主存)、段起址(该段在实存中的首地址)和段长(记录该段的实际长度)。

    3. 地址变换

    针对每一个虚拟地址,存储管理部件首先以段号S为索引访问段表的第S个表项。若该表项的有效位为1,则将虚拟地址的段内地址D与该表项的段长字段比较;若段内地址较大则说明地址越界,将产生地址越界中断;否则,将该表项的段起址与段内地址相加,求得主存实地址并访存。如果该表项的有效位为0,则产生缺页中断,从辅存中调入该页,并修改段表。段式虚拟存储器虚实地址变换过程如图所示。

    绝对地址=根据段号找到段表中的起始地址+段内地址 (如果段内地址超过限长则产生“地址越界”程序性中断事件达到存储保护)

    4. 分段存储方式的优缺点

    分页对程序员而言是不可见的,而分段通常对程序员而言是可见的,因而分段为组织程序和数据提供了方便。与页式虚拟存储器相比,段式虚拟存储器有许多优点:

    (1)    段的逻辑独立性使其易于编译、管理、修改和保护,也便于多道程序共享。

    (2)    段长可以根据需要动态改变,允许自由调度,以便有效利用主存空间。

    (3)    方便编程,分段共享,分段保护,动态链接,动态增长

     因为段的长度不固定,段式虚拟存储器也有一些缺点:

    (1)    主存空间分配比较麻烦。

    (2)    容易在段间留下许多碎片,造成存储空间利用率降低。

    (3)    由于段长不一定是2的整数次幂,因而不能简单地像分页方式那样用虚拟地址和实存地址的最低若干二进制位作为段内地址,并与段号进行直接拼接,必须用加法操作通过段起址与段内地址的求和运算得到物理地址。因此,段式存储管理比页式存储管理方式需要更多的硬件支持。

    三.段页式存储

    1.  段页式存储管理的基本思想

    段页式存储组织是分段式和分页式结合的存储组织方法,这样可充分利用分段管理和分页管理的优点。

       (1) 用分段方法来分配和管理虚拟存储器。程序的地址空间按逻辑单位分成基本独立的段,而每一段有自己的段名,再把每段分成固定大小的若干页。

         (2) 用分页方法来分配和管理实存。即把整个主存分成与上述页大小相等的存储块,可装入作业的任何一页。程序对内存的调入或调出是按页进行的。但它又可按段实现共享和保护。


     地址空间图

          (3)    逻辑地址结构。一个逻辑地址用三个参数表示:段号S;页号P;页内地址d。

     

     

    (4)段表、页表、段表地址寄存器。为了进行地址转换,系统为每个作业建立一个段表,并且要为该作业段表中的每一个段建立一个页表。系统中有一个段表地址寄存器来指出作业的段表起始地址和段表长度。

    2.地址变换过程

    1)   慢速地址转换过程

    一个逻辑地址为:基地址x、段号s、页号p和页内地址d,求物理地址(((x)+s)+p)*2^(11)+d

    在段页式系统中,为了便于实现地址变换,须配置一个段表寄存器,其中存放段表始址和段表长TL。

    1) 进行地址变换时,首先利用段号S,将它与段表长TL进行比较。若S<TL,表示未越界

    2) 于是利用段表始址和段号来求出该段所对应的段表项在段表中的位置,从中得到该段的页表始址

    3) 利用逻辑地址中的段内页号P来获得对应页的页表项位置,从中读出该页所在的物理块号b

    4) 再利用块号b和页内地址来构成物理地址。

    上图示出了段页式系统中的地址变换机构。在段页式系统中,为了获得一条指令或数据,须三次访问内存。第一次访问是访问内存中的段表,从中取得页表始址;第二次访问是访问内存中的页表,从中取出该页所在的物理块号,并将该块号与页内地址一起形成指令或数据的物理地址;第三次访问才是真正从第二次访问所得的地址中,取出指令或数据。

    显然,这使访问内存的次数增加了近两倍。为了提高执行速度,在地址变换机构中增设一个高速缓冲寄存器。每次访问它时,都须同时利用段号和页号去检索高速缓存,若找到匹配的表项,便可从中得到相应页的物理块号,用来与页内地址一起形成物理地址;若未找到匹配表项,则仍须再三次访问内存。

    3.段页式存储管理的优缺点

     优点

    (1) 它提供了大量的虚拟存储空间。

    (2) 能有效地利用主存,为组织多道程序运行提供了方便。

    缺点:

    (1) 增加了硬件成本、系统的复杂性和管理上的开消。

    (2) 存在着系统发生抖动的危险。

    (3) 存在着内碎片。

    (4) 还有各种表格要占用主存空间。

     段页式存储管理技术对当前的大、中型计算机系统来说,算是最通用、最灵活的一种方案。
    在这里插入图片描述

    展开全文
  • OS- -请求分页系统请求分段系统请求段页式系统(一) 文章目录OS- -请求分页系统请求分段系统请求段页式系统(一)一、内存管理的概念二、内存空间的扩充覆盖与交换三、内存空间的分配和回收连续分配管理方式非...
  • C++编写的请求分页储存管理的页置换算法模拟程序,模拟OPT,FIFO和LRU算法。可以输入序列也可以随机生成访问序列。可以输出整个调度的流程(表),缺页次数和缺页率。
  • 请求分页存储系统

    2012-01-07 21:08:24
    操作系统请求分页存储系统课程设计、含OPT FIFO LRU CLOCK算法源代码、可运行、、
  • 模拟请求分页系统中的地址变换过程 创建请求页表,通过编程模拟缺页中断和地址变换,实现请求调页功能和页面置换功能。 环境 JDK8+eclipse 步骤 (一)请求页表及快表的创建 0 1 2 3 4 5 页号 物理块号 状态...
  • 操作系统 请求分页存储管理

    千次阅读 2020-12-22 13:06:04
    请求分页存储管理中的页表机制 缺页中断机构 地址转换 页置换算法 页分配和页置换策略 工作集及抖动现象的消除 请求分页存储管理的优缺点 请求分页存储管理中的页表机制 系统需要解决的问题 系统如何获知进程当前...
  • 目的:(1)通过编写程序实现请求分页存储管理页面Optimal、FIFO、LRU调度算法,使学生掌握虚拟存储管理中有关缺页处理方法等内容,巩固有关虚拟存储管理的教学内容。 (2)了解Windows2000/XP中内存管理机制,掌握...
  • C语言编写的请求分页调度的源代码。 首先输入页号和辅存地址;例如: 0 2 1 5 2 10 3 15 4 20 等等,辅存地址不要重复,输入 -1 0即可终止输入; 然后输入主存块号,-1结束。例如:3 8 10即意味着3个主存块。 然后...
  • 前言 参考王道书。 后续会进一步整理,包括添加笔记内容,标明参考资料。 更新中。。...目录一、页表机制二、缺页中断机构...与基本分页管理相比,请求分页管理中,为了实现“请求调页”,操作系统需要知道每个页面是否
  • C#编写的模拟操作系统虚拟内存分页请求管理 计算机操作系统第三版 汤小丹等编著 根据课本算法流程编写 原创

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 91,692
精华内容 36,676
关键字:

分页请求系统