操作系统 段页式存储管理

2023-11-20

一、引入

  • ★分页系统是以页面作为内存分配的基本单位,能有效地提高内存利用率,但信息共享等不方便;
  • ★分段系统是以段作为内存分配的基本单位,它能够更好地满足用户多方面的需要(信息共享、动态链接等),但采用分区方式管理物理内存,仍然存在碎片问题;
  • ★段页式存储管理方式是对两种存储管理方式的“各取所长”,既具有分段系统的便于实现、分段可共享、易于保护、可动态链接等一系列优点,又能像分页系统那样,很好地解决内存的外部碎片问题。

二、基本思想——先分段,再分页

  • 地址空间划分:作业的地址空间仍按其逻辑结构分段。每个段又被进一步分成若干大小相同的页面。内存空间则分成与页面大小相等的物理块。
  • 作业装入:在作业装入内存时,一个页面装入内存一个块中。各个段的页面装入内存时可以占用互不连续的内存块
  • 采用虚拟存储技术:作业的页面不必一次全部装入内存,而采用请求页式管理的方法,当要访问的页面不在内存时,就产生缺页中断

问题:说明请求分段系统中的缺页中断处理过程

  • 程序请求访问一页–>页号>页表长度?–是–>越界中断
  • 程序请求访问一页–>页号>页表长度?–否–>cpu检索块表–>页表项在块表中?–否–>访问页表–>页在内存?–否–>保留cpu现场–>从外存中找到缺页–>内存满否–否–>os命令cpu从外存读缺页–>启动I/o硬件–>将一页从外存换入内存–修改页表。
  • 程序请求访问一页–>页号>页表长度?–否–>cpu检索块表–>页表项在块表中?–否–>访问页表–>页在内存?–否–>保留cpu现场–>从外存中找到缺页–>内存满否–是–>选择一页换出–>该页被修改否?–是–>将该页写回外存–>os命令cpu从外存读缺页–>启动I/o硬件–>将一页从外存换入内存–修改页表。

三、作业地址空间和地址结构(虚拟地址)
在这里插入图片描述
四、段表和页表
在这里插入图片描述
五、地址变换过程

  • 逻辑地址中的段号和段表长度比较,看是否越界,是就执行中断程序
  • 没有越界,利用段号+段表始址=对应段号的地址,读取地址中的数据,也就是这个段的页表始址
  • 利用逻辑地址中的页号+页表始址=对应页的页表项位置,也就是找到这个页号
  • 通过这个页号找到对应的物理块号
  • 物理块号+页内地址w=物理地址
    在这里插入图片描述

举一个例子:每页大小4KB,计算逻辑地址 (0,2,500)的物理地址?
在这里插入图片描述
逻辑地址 (0,2,500)所在段为第0段,页表是第0段页表,页号是2,对应的物理块号是19,因此
物理地址 PA=19*4K+500= 78324

六、总结段页存储管理的碎片问题

  • 结论:段页存储不会产生外部碎片,但是会产生内部碎片
    • 首先是程序会先进行分段,再对每一段进行分页,称为页面,对于内存,是按照页面的长度划分为若干的内存块,在存储的时候,每一个页面存储在一个内存块中,所以自然不会产生外部碎片
    • 但是不是每一个段都刚好可以切分成满足内存块大小的若干块,所以段页式存储是会产生内部碎片的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

操作系统 段页式存储管理 的相关文章

  • texlive支持中文的简单方法

    1 确保tex文件的编码方式是UTF 8 2 在文档开始处添加一行命令即可 即 usepackage UTF8 ctex 如下所示 documentclass article usepackage UTF8 ctex begin artic
  • System.getProperty用法

    转自 http blog darkmi com 2011 03 16 1666 html System getProperty 用于获取当前的系统属性 比如java版本 操作系统名称 区域 用户名等 这些属性一般由jvm自动获取 不能手工设
  • java调优总结

    JVM调优总结 序 几年前写过一篇关于JVM调优的文章 前段时间拿出来看了看 又添加了一些东西 突然发现 基础真的很重要 学习的过程是一个由表及里 再由里及表的过程 呵呵 所谓的 温故而知新 而真正能走完这个轮回的人 也就能称为大牛或专家了
  • Win11微软账号登录不上?Win11登录Microsoft账户出错的解决方法

    Win11微软账号登录不上 近期有部分Win11用户反映在登录微软账号会出现一直转圈 无法登录的情况 这样导致部分功能都不能正常使用了 为此十分令人头疼 那么对于这一情况 有没有什么方法可以有效的解决呢 下面小编教给大家操作方法 大家可以去
  • 小白学协程笔记2-c语言实现协程-2021-2-10

    文章目录 前言 一 c语言中协程切换方式 二 使用setjmp 和 longjmp实现协程切换 1 setjmp和longjmp函数简介 2 协程实现 三 使用switch case实现协程切换 1 switch case小技巧 2 协程实
  • linux 如何创建卷组

    1 创建一个物理卷 Pvcreate dev sd1 dev sd2 dev sd3 dev sd4 2 用刚才创建的物理卷创建一个卷组 Vgcreate 卷组名 dev sd1 dev sd2 dev sd3 dev sd4 3 创建逻辑
  • Linux网络安全-Zabbix入门(一)

    一 基本概念 1 监控目的 运行情况 提前发现问题 2 监控资源类别 公开 tcp udp 端口 私有 cpu 磁盘 监控一切需要监控的东西 只要能够想到 能够用命令实现的都能用来监控 如果想远程管理服务器就有远程管理卡 比如Dell id
  • 操作系统学习(九)进程通信

    一 知识总览 二 定义 进程通信是指进程之间的信息交换 每个进程都拥有自己的内存空间 是相互独立的 这样在每个进程执行时 才不会被其他进程所干扰 三 进程通信的方式 1 共享存储 1 两个进程对共享区的访问必须是互斥的 即在同一时间内 只允
  • JSON.stringify()

    JSON stringify 将一个JavaScript值 对象或者数组 转换为一个 JSON字符串 如果指定了replacer是一个函数 则可以选择性的替换值 或者如果指定了replacer是一个数组 可选择性的仅包含数组指定的属性 语法
  • 红帽7.9部署telnet服务

    升级ssh 为预防万一提前配置telnet服务 安装软件包 yum install telnet server yum install xinetd xinetd加入开机自启 systemctl enable xinetd service
  • 操作系统笔记六(文件管理)

    1 文件逻辑结构 1 1逻辑结构的文件类型 分类 有结构文件 例如 PNG文件 无结构文件 1 2顺序文件 1 3索引文件 2 辅存的存储空间分配 2 1分配方式 连续分配 直接分配连续的存储空间 链接分配 隐式链接 在盘块内指定下一个盘块
  • Linux,Network manager 导致节点异常重启

    推断是Network manager 导致的 原因待查今天在VmWare的虚拟机上装了个测试RAC 又遇到了一个摸不到头绪的问题CRS装好后 一旦登陆图形界面 节点就重启 事情就有这么巧不登陆图形界面 观察了1个小时没问题 一旦登陆后 立刻
  • 《一个操作系统的实现》读书笔记-- 第一章--最小的“操作系统”

    一 最简单的 操作系统 最最简单的 操作系统 就是一个最最简单的引导扇区 Boot Sector 虽然它不具有任何功能 但是它却能够直接在裸机上运行 不依赖其他软件 一个引导扇区是512个字节 并且以0xAA55为结束标识的扇区 下面就是那
  • 深入ftrace kprobe原理解析

    Linux krpobe调试技术是内核开发者专门为了编译跟踪内核函数执行状态所涉及的一种轻量级内核调试技术 利用kprobe技术 内核开发人员可以在内核的绝大多数指定函数中动态插入探测点来收集所需的调试状态信息而基本不影响内核原有的执行流程
  • 通过源码包*.src.rpm定制开发rpm

    为什么80 的码农都做不了架构师 gt gt gt 1 基本流程 1 下载 安装相应的src rpm包 wget xxx src rpm rpm ivh xxx src rpm 这里的 安装 是指把xxx src rpm中的tar gz p
  • 图解五种磁盘调度算法, FCFS, SSTF, SCAN, C-SCAN, LOOK

    一 FCFS 调度 先来先服务 磁盘调度的最简单形式当然是先来先服务 FCFS 算法 虽然这种算法比较公平 但是它通常并不提供最快的服务 例如 考虑一个磁盘队列 其 I O 请求块的柱面的顺序如下 98 183 37 122 14 124
  • linux 使用systemctl 启动服务报错: Error: No space left on device

    By default Linux only allocates 8192 watches for inotify which is ridiculously low And when it runs out the error is als
  • 【操作系统】王道考研 p42 段页式管理方式

    段页式管理方式 知识总览 分段 分页管理方式中最大的优缺点 关于段式管理会产生外部碎片 ps 分段管理中产生的外部碎片也可以用 紧凑 来解决 只是需要付出较大的时间代价 分段 分页 段页式管理 示意图 先分段 后分页 段页式管理的逻辑地址结
  • MacOS中清除原有ssh公钥方法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 用ssh的跳转登录服务器后 ssh会把你每个你访问过计算机的公钥 public key 都记录在 ssh known hosts 当下次访问相同计算机时 SSH会核对公钥
  • 使用ShellJS提升你的开发效率(一)

    Shelljs Unix shell commands for Node js Shelljs是Node js下的脚本语言解析器 具有丰富且强大的底层操作 Windows Linux OS X 权限 Shelljs本质就是基于node的一层

随机推荐

  • crm系统服务器要求,crm系统需要配备什么云服务器

    crm系统需要配备什么云服务器 内容精选 换一换 登录云服务器的用户名和密码 Windows操作系统用户名 AdministratorLinux操作系统用户名 root如忘记登录密码 可通过控制台提供的 重置密码 功能设置新密码 重置密码
  • docker中设置容器健康检查

    文章目录 一 docker compose方式 二 Dockerfile方式 三 docker run方式 四 查看检查日志 一 docker compose方式 在docker compose中加入healthcheck healthch
  • c语言图案代码简单,求个用最简单的的代码来实现图形界面…

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 include Declare Windows procedure LRESULT CALLBACK WindowProcedure HWND UINT WPARAM LPARAM Make t
  • 大雨

    大雨生彷徨 以为天人兮溯鎏妆 轰鸣兮悠远 望长水东来去也 长生共兴
  • ImportError: C extension: No module named 'pandas._libs.tslibs.timestamps' not built.解决方法

    想用一下pandas遇到了这个情况 错误的意思是没有名叫 pandas libs tslibs timestamps 的模块 网上说要这样做 进入pyinstaller包的安装目录 在python安装目录的Lib site packages
  • ubuntu 18.04.5中flow, smarts & xingtian 多智能体RL环境构建

    ubuntu 18 04 5中flow smarts xingtian 多智能体RL环境构建 Flow 虚拟环境构建 由于需要在同一个主机上运行多个环境 不同的环境具有不同的依赖包 因此每个智能体环境单独构建一个虚拟python环境 首先安
  • AutoDL上传数据详细步骤(自己用的步骤,可能没有其他大佬用的那么高级)

    写在前面 先推荐一下另一篇关于使用AutoDL的教程 AutoDL使用教程 1 创建实例 2 配置环境 上传数据 3 PyCharm2021 3专业版下载安装与远程连接完整步骤 注意 在AutoDL的终端键入命令运行时 通常是一定要先cd进
  • 华为OD机试 - 密室逃生游戏(Java)

    题目描述 小强正在参加 密室逃生 游戏 当前关卡要求找到符合给定 密码K 升序的不重复小写字母组成 的箱子 并给出箱子编号 箱子编号为 1 N 每个箱子中都有一个 字符串s 字符串由大写字母 小写字母 数字 标点符号 空格组成 需要在这些字
  • 随手学习笔记

    1 正点原子zynq视频教程 真人版 P128 P132讲解ADDA 第30 1讲高速ADDA实验 ADC芯片简介 哔哩哔哩 bilibili 2 正点原子zynq视频教程 真人版 关于zynq FPGA讲解非常详细 可逐个详细学习 第1讲
  • 使用QZXing生成并解析二维码

    QZxing 是对 zxing 的一个封装 用于在 Qt 程序中加入条形码和二维码识别的功能 这里就讲讲如何编译和使用这个库 前几年 QZXing 的代码是放到 sourceforge net 上的 现在迁移到了 github com 所以
  • sql手工注入

    information schema 系统数据库 包含所有数据库相关信息 information schema schemata中schema name列 字段为所有数据库名称 information schema tables中table
  • 中山大学App校园地图功能分析

    中山大学App校园地图简单功能分析介绍 用户入口 进入中山大学App首页 即可看到校园地图 点击后进入校园地图主界面 校区选取 进入地图主界面后 即可呈现出校园地图 顶上正中间是选取校区的功能按钮 单击后出现全部4个校区可供选择 路线导航
  • 如何在手机上打开xmind文件_如何高效率整理电脑上的文件 ?

    个人电脑 01 没有时间整理 也不想整理 怎么办 1 1 只整理电脑桌面 电脑桌面放着各种文件 已经成为多数人的习惯 一打开电脑 就可以从电脑桌面上看见自己有哪些文件等着处理 当天处理的文件存放在桌面 第二天要用的时候 直接在桌面打开就可以
  • python遍历文件夹中的图片

    import cv2 import os mainFolder Images RectSmall myFolders os listdir mainFolder print myFolders for folder in myFolders
  • jre jdk更改目录后Java无法运行问题解决方案

    问题 在将Java文件 包含jdk jre 由C盘直接剪贴到D盘后 所有Java程序无法运行 且其Java图标不再显示 解决方案 首先更改环境变量 当我们单纯地将Java文件更改位置后 我们计算机的环境变量仍未改变 依旧是当时安装Java时
  • Verilog中if- else if语句和case语句用法:

    一 if语句 1 两种情况 if 条件语句 begin end else begin end 2 多种情况 if 条件语句 begin end else if 条件语句 begin end else if 条件语句 begin end el
  • 编程大师-Netty

    45 张图深度解析 Netty 架构与原理 里奥ii的博客 CSDN博客 netty全过程图解 最详细清晰版 netty流程 PANDA的博客 CSDN博客
  • Kafka学习(三)简单实例(可以简单做测试)

    java客户端连接kafka简单测试 本案例kafka版本是kafka 2 11 0 9 0 1 用java来实现kafka生产者 消费者的示例 在测试的过程中遇到的特别的问题以及解决办法 其他小问题就不一一列举了 1 使用kafka cl
  • libero-soc许可证申请和环境配置

    环境 64位机 在哪台电脑上安装libero soc 就用哪台电脑申请许可证 1 注册 https www microsemi co 在官网注册 之后申请的许可证会发到注册时填写的邮箱 2 申请许可证 https www microsemi
  • 操作系统 段页式存储管理

    一 引入 分页系统是以页面作为内存分配的基本单位 能有效地提高内存利用率 但信息共享等不方便 分段系统是以段作为内存分配的基本单位 它能够更好地满足用户多方面的需要 信息共享 动态链接等 但采用分区方式管理物理内存 仍然存在碎片问题 段页式