分页存储管理,分段存储管理,段页式存储管理

2023-11-06

概括的挺详细的,然后我加上了纯分页系统和请求式分页系统的基本概念,也对有些部分稍作修改

一、分页存储管理

1、基本概念(页面和物理块)

    将一个进程的逻辑地址空间划分成若干大小相等的部分,每一部分称为页或页面(页面的大小通常是2的次幂,大约在512B~4MB之间);同样,将内存空间也划分为与页面大小相同的若干个存储块,即物理块或页框。可将用户的任一页放在内存的任一块中,实现离散分配。

2、分页技术地址结构:

页号P 页内位移d

设给定逻辑地址为A,页面大小为L

页号: P=INT[A/L]

页内位移: d=[A] MOD L

举例:

设某系统的页面大小为1KB,A=3456,则P=3;d=384

3、页表

    在分页系统中,允许将进程的各个页面离散地装入内存的任何空闲块中,为了能在内存中找到每个页面对应的物理块,系统为每个进程设立一张页面映像表,简称页表。在进程空间内的所有页(0~n-1)依次在页表中有一个页表项,其中记载了相应页面在内存中对应的物理块号。页表的作用是实现从页号到物理块号的地址映射。

页号 块号 存储控制(存储控制用于对该存储块中的内容进行保护)

0 2

1 15(F)

2 14(E)

3 1

4、地址转换

(1) 程序执行时,从PCB中取出页表始址和页表长度(4),装入页表寄存器PTR。

(2)由分页地址变换机构将逻辑地址自动分成页号和页内地址。

例:11406D=0010|110010001110B=2C8EH

  页号为2,位移量为C8EH=3214D

或11406 DIV 4096=2

 11406  MOD  4096=3214

(3) 将页号与页表长度进行比较(2<4),若页号大于或等于页表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。

(4)将页表始址与页号和页表长度(页表项所占的内存空间大小,因为计算机是通过计算得到相应的位置,不能一眼看出)的乘积相加,便得到该页表项在页表中的位置。

(5)取出页描述子得到该页的物理块号。 2 14(E)

(6) 对该页的存取控制进行检查。

(7)将物理块号送入物理地址寄存器中,再将有效地址寄存器中的页内地址直接送入物理地址寄存器的块内地址字段中,拼接得到实际的物理地址。

例:0010|110010001101B

1110|110010001101B=EC8EH=60558D

或 14*4096+3214=60558D

5、快表的地址转换

    页表存放在内存中,使CPU每要存取一个数据,都要两次访问(访问页表,寻找物理块号;访问内存,读写数据);这使计算机的处理速度降低1/2。为提高地址变换速度,可在地址转换机构中增设一个具有并行查寻能力的特殊高速缓冲存储器,又称快表(TLB),用以存放当前访问最频繁的那些少量页表项。

6、纯分页系统

    所谓纯分页系统是指在调度一个作业时,必须把它的所有页一次装入到内存的物理块中,如果当时物理块不足,则该作业必须等待,直到有足够的物理块为止,这时系统可再调度另外的作业

    纯分页系统同样有地址转换和快表,和基础分页系统求地址过程差不多

7、请求式分页系统

    是目前常用的一种实现虚拟存储器的方式;基本思想是,作业在运行之前,只把当前需要的一部分页面装入内存,当需要其他页面是,才自动选择一些页交换到辅存,同时调入所需的页到内存中

二、分段存储管理

1.基本思想

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

  1. 分段存储方式的引入

方便编程

分段共享

分段保护

动态链接

动态增长

  1. 分段地址结构

作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。例程序段、数据段等。每个段都从0开始编址,并采用一段连续的地址空间。

段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。整个作业的地址空间是二维的。

15 12 11 0

   段号            段内位移量

段号4位,每个作业最多24=16段,表示段号从00001111(24-1);段内位移量12位,212=4k,表示每段的段内地址最大为4K(各段长度不同),从000000000000111111111111

  1. 段表

段号 段长 起始地址 存取控制

0 1K 4096

1 4K 17500

2 2K 8192

  1. 地址变换

(1). 程序执行时,从PCB中取出段表始址和段表长度(3),装入段表寄存器。

(2). 由分段地址变换机构将逻辑地址自动分成段号和段内地址。

例:7310D=0001|110010001110B=1C8EH

段号为1,位移量为C8EH=3214D

(3). 将段号与段表长度进行比较(1<3),若段号大于或等于段表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。

(4). 将段表始址与段号和段表项长度的乘积相加,便得到该段表项在段表中的位置。

(5). 取出段描述子得到该段的起始物理地址。1 4K 17500

(6). 检查段内位移量是否超出该段的段长(3214<4K),若超过,产生越界中断。

(7). 对该段的存取控制进行检查。

(8). 将该段基址和段内地址相加,得到实际的物理地址。

例:0001|110010001101B

起始地址17500D+段内地址3214D=20714D

三、分页与分段的主要区别

分页和分段有许多相似之处,比如两者都不要求作业连续存放.但在概念上两者完全不同,主要表现在以下几个方面:

(1)页是信息的物理单位,分页是为了实现非连续分配,以便解决内存碎片问题,或者说分页是由于系统管理的需要.段是信息的逻辑单位,它含有一组意义相对完整的信息,分段的目的是为了更好地实现共享,满足用户的需要.

(2)页的大小固定,由系统确定,将逻辑地址划分为页号和页内地址是由机器硬件实现的.而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分.

(3)分页的作业地址空间是一维的.分段的地址空间是二维的.

四、段页式存储管理

1.基本思想:

分页系统能有效地提高内存的利用率,而分段系统能反映程序的逻辑结构,便于段的共享与保护,将分页与分段两种存储方式结合起来,就形成了段页式存储管理方式。

在段页式存储管理系统中,作业的地址空间首先被分成若干个逻辑分段,每段都有自己的段号,然后再将每段分成若干个大小相等的页。对于主存空间也分成大小相等的页,主存的分配以页为单位。

段页式系统中,作业的地址结构包含三部分的内容:段号 页号 页内位移量

程序员按照分段系统的地址结构将地址分为段号与段内位移量,地址变换机构将段内位移量分解为页号和页内位移量。

为实现段页式存储管理,系统应为每个进程设置一个段表,包括每段的段号,该段的页表始址和页表长度。每个段有自己的页表,记录段中的每一页的页号和存放在主存中的物理块号。

2.地址变换的过程:

(1)程序执行时,从PCB中取出段表始址和段表长度,装入段表寄存器。

(2)由地址变换机构将逻辑地址自动分成段号、页号和页内地址。

(3)将段号与段表长度进行比较,若段号大于或等于段表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。

(4)将段表始址与段号和段表项长度的乘积相加,便得到该段表项在段表中的位置。

(5)取出段描述子得到该段的页表始址和页表长度。

(6)将页号与页表长度进行比较,若页号大于或等于页表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。

(7)将页表始址与页号和页表项长度的乘积相加,便得到该页表项在页表中的位置。

(8)取出页描述子得到该页的物理块号。

(9)对该页的存取控制进行检查。

(10)将物理块号送入物理地址寄存器中,再将有效地址寄存器中的页内地址直接送入物理地址寄存器的块内地址字段中,拼接得到实际的物理地址。

五、在网上找到了一个比较形象的比喻,挺不错的,呵呵,列出来如下:

打个比方,比如说你去听课,带了一个纸质笔记本做笔记。笔记本有100张纸,课程有语文、数学、英语三门,对于这个笔记本的使用,为了便于以后复习方便,你可以有两种选择。

第一种是,你从本子的第一张纸开始用,并且事先在本子上做划分:第2张到第30张纸记语文笔记,第31到60张纸记数学笔记,第61到100张纸记英语笔记,最后在第一张纸做个列表,记录着三门笔记各自的范围。这就是分段管理,第一张纸叫段表。

第二种是,你从第二张纸开始做笔记,各种课的笔记是连在一起的:第2张纸是数学,第3张是语文,第4张英语……最后呢,你在第一张纸做了一个目录,记录着语文笔记在第3、7、14、15张纸……,数学笔记在第2、6、8、9、11……,英语笔记在第4、5、12……。这就是分页管理,第一张纸叫页表。你要复习哪一门课,就到页表里查寻相关的纸的编号,然后翻到那一页去复习
六、虚拟内存的置换算法
1、先进先出页面置换算法

    总是选择在内存中停留最长的页淘汰,即先进入内存的页先被换出内存

2、最佳页面置换算法

    当调入一个新的页面必须预先淘汰某个老页面时,所选择的老页面应是将来不再被使用,或者是在很久以后才被使用的页面。采用这种算法,理论上能保证有最少的缺页率,但无法实现,因为它需要人们预先知道作业整个运行期间的页面走向情况。

3、最近最少使用页面置换算法

    根据页面调入内存后的使用情况,选择最近最少使用的页面予以淘汰。

4、第2此机会页面置换算法

    对最老页面的R位进行检查,如果R位是0,那么这个页既老又没用,可立即被置换掉,如果R位是1,就清除掉这个位,并将该页放到链表的尾端,修改它的装入时间就像刚装入一样

5、时钟页面置换算法

    把所有页面都保存在一个类似时钟表面的环形链表中,用一个指针指向最老的页面。当发生缺页中断时,算法检查指针指向的页面,如果R位是0就淘汰掉这页,并把新页插入这个位置,再把指针前移一个位置;是1,就清除R位并把指针前移一个位置
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分页存储管理,分段存储管理,段页式存储管理 的相关文章

  • 计算机网路基础 - 一些基本概念与网络结构

    1 基本概念 计算机网络 通信技术 计算机技术 是两项技术紧密结合的产物 通信系统的基础模型 计算机网络 是指将地理位置不同 具有独立功能的多台计算机及其外部设备 通过通信线路连接 在网络操作系统 网络管理软件及网络通信协议的管理和协调下
  • System.getProperty用法

    转自 http blog darkmi com 2011 03 16 1666 html System getProperty 用于获取当前的系统属性 比如java版本 操作系统名称 区域 用户名等 这些属性一般由jvm自动获取 不能手工设
  • 线程和进程的区别(面试必备)

    参考文章 https www jianshu com p 2dc01727be45 线程与进程的区别通俗的解释 https www jianshu com p 8ad441510860 附加可参考文章 https baijiahao bai
  • Win11微软账号登录不上?Win11登录Microsoft账户出错的解决方法

    Win11微软账号登录不上 近期有部分Win11用户反映在登录微软账号会出现一直转圈 无法登录的情况 这样导致部分功能都不能正常使用了 为此十分令人头疼 那么对于这一情况 有没有什么方法可以有效的解决呢 下面小编教给大家操作方法 大家可以去
  • windows下命令行修改系统时间;修改系统时间的软件

    找了很久 都没有找到 还找了关键词 dos下修改系统时间 因为看到linux下修改系统时间是用hwclock 命令写入主板芯片 而我由于某些原因想自动化修改系统时间 所以找windows下修改系统时间的软件 没有找到 有一个 意天禁止修改系
  • Linux网络安全-Zabbix入门(一)

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

    复杂度2 5 机密度2 5 最后更新2021 04 19 AIX中对设备会有如下五个操作 define aix下能看到设备的定义 但驱动程序并没有加载或初始化 该设备不可用 lsdev看到设备时defined 很多逻辑设备 vg lv等 只
  • office2013 excel 打开时提示excel词典xllex.dll文件丢失或损坏

    今天打开Excel时 发现报错 xllex dll文件丢失或损坏 我用的是office2013 网上找了好多都是2007的dll文件 导入不了 于是乎重装office 问题解决 但还是把xllex dll烤出来做个备份吧 参考下面步骤即可
  • Linux使用nvida-smi查看GPU类型

    nvida smi提供一个查看GPU信息的方法 然而这种方式不能查看GPU型号 型号被省略成了GeForce RTX 208 如果我们需要查看GPU的型号 只需要运行nvidia smi L即可 mrfive ubuntu nvidia s
  • Java堆的自动垂直缩放

    多年以来 java一直是贪婪的应用程序的同义词 这种类型的应用程序在晚上打开冰箱并吞噬所有可用资源 直到崩溃 该行为的主要原因是缺乏一种有效的方式来将操作系统在Java堆中分配且不再使用的内存交还给操作系统 However with the
  • win10 Enable developer Mode

    经过漫长的安装过程 win10终于装上了vs2015 rc 写个小程序试试 结果提示 根据提示打开 设置 更新 for developer 据说应该有这么个界面 但是这个界面根本出不来 直接闪退的说 翻 MSDN 终于翻出了解决方法 htt
  • 操作系统 段页式存储管理

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

    CentOS7命令大全 Linux系统简介 Unix Linux发展史 Linux目录结构 树形结构 查看 切换以及创建目录 文本内容操作 grep工具 关机和重启 Linux命令 基本用法 ls list 使用通配符 mkdir 别名 g
  • 通过源码包*.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
  • [架构之路-185]-《软考-系统分析师》-3-操作系统基本原理 - 文件索引表

    目录 一 文件的索引块 二 索引分配表 三 索引表的链接方案 四 多层索引 五 混合索引分配 一 文件的索引块 存放在目录中的文件 并非是文件的真实内容 目录中记录了文件的索引块是几号磁盘块 文件对应的索引表是存放在指定的磁盘块中的 二 索
  • 图解五种磁盘调度算法, FCFS, SSTF, SCAN, C-SCAN, LOOK

    一 FCFS 调度 先来先服务 磁盘调度的最简单形式当然是先来先服务 FCFS 算法 虽然这种算法比较公平 但是它通常并不提供最快的服务 例如 考虑一个磁盘队列 其 I O 请求块的柱面的顺序如下 98 183 37 122 14 124
  • 操作系统常见面试题

    1 什么是进程 Process 和线程 Thread 有何区别 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动 进程是系统进行资源分配和调度的一个独立单位 线程是进程的一个实体 是CPU调度和分派的基本单位 它是比进程更小的能
  • java IO、NIO、AIO详解

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 一 IO流 同步 阻塞 二 NIO 同步 非阻塞 三 NIO2 异步 非阻塞 正文 回到顶部 概述 在我们学习Java的IO流之前 我们都要了解几个关键词 同步与异步 sy
  • I/O设备模型

    I O设备模型 绝大部分的嵌入式系统都包括一些I O Input Outut 输入 输出 设备 例如仪器上的数据显示屏 工业设备上的串口通信 数据采集设备上用于保存数据的Flash或SD卡 以及网络设备的以太网接口等 I O设备模型框架 R
  • 【操作系统xv6】学习记录4-一级页表与二级页表

    占位

随机推荐

  • 人脸图像数据增强

    为什么要做数据增强 在计算机视觉相关任务中 数据增强 Data Augmentation 是一种常用的技术 用于扩展训练数据集的多样性 它包括对原始图像进行一系列随机或有规律的变换 以生成新的训练样本 数据增强的主要目的是增加模型的泛化能力
  • 技术前言 - 芯片制造工序详解

    制造工序 芯片简介 工序简介 硅片制造 生产流程 行业壁垒 IC设计 设计流程 行业壁垒 芯片制造 封装测试 制造流程 封装测试 行业壁垒 九大核心设备 参考文档 芯片简介 种类 1 按照性质 数字 模拟芯片 2 按照用途 计算机 家电 手
  • 对象检测工具包mmdetection简介、安装及测试代码

    mmdetection是商汤和港中文大学联合开源的基于PyTorch的对象检测工具包 属于香港中文大学多媒体实验室open mmlab项目的一部分 该工具包提供了已公开发表的多种流行的检测组件 通过这些组件的组合可以迅速搭建出各种检测框架
  • 常用序列的MATLAB代码(一)

    1 典型序列函数 1 单位冲激序列 function x n impseq n0 ns nf ns 序列的起点 nf 序列的终点 n0 序列在n0处有一个单位脉冲 x 产生的单位采样序列 n 产生序列的位置信息 n ns nf x n n0
  • vue-cli 3.0 使用 npm 报错

    问题 vue cli 3 0 使用 npm 报错 最近 vue 项目打算 使用 vue cli 3 0 生成模板 全部默认 配置 生成模板后 使用了 npm 安装依赖后 项目不能正常运行 看npm install 后的执行 代码 好像在 不
  • 老孙的爬虫(四)-------储存多层次的数据,使用递归不断请求,设置id与p_id确定数据的父子关系

    测试网站 https d qianzhan com xdata list xfyyy0yyIxPyywyy2xDxfd html 数据的储存要求 储存的数据能看出父子关系 思路 因为该网站数据是层层打开的 使用递归不断请求 需要额外储存一些
  • PB错误代码

    string ls msgchoose case error number case 1 by zero ls msg 发生被 0 除错误 case 2 2 Null object reference ls msg 空对象引用 case 3
  • 自动实现的属性-Auto-Implemented Properties

    自动实现的属性 C 编程指南 2015 07 20 作者 在 C 3 0 及更高版本 当属性访问器中不需要任何其他逻辑时 自动实现的属性会使属性声明更加简洁 它们还允许客户端代码创建对象 当你声明以下示例中所示的属性时 编译器将创建仅可以通
  • 影视剪辑,视频剪辑流程,如何进行混剪

    一个人如何在家自学剪辑 今天经验分享来啦 视频剪辑流程 一 建立好项目文件夹 根据时间 地点 大体拍摄内容等分类 在不同的文件夹存入对应的物料和工程 二 获取素材 提前收集好要用的包装素材与音乐网站 进行及时补充素材 三 回看和分类 按照脚
  • 磁链

    1 定义 为通电线圈的匝数与磁通量的乘积 通常用 lambda 或 psi 标记 即 N 或 N 其国际单位制单位与磁通量同为韦伯 由于法拉第对电磁学的解释 一个线圈的磁链也可以表示为通过线圈的电压对其时间的积分 即 因此其单位也可以用伏特
  • 阿里云SDK上传视频

    1 老样子 先看效果图 2 首先到阿里云下载所需要用到的SDK 3 下载好的 解压之后 目录以及运行起来是以下这个样子的 4 在实际项目中引用 先将SDK添加到项目中 放到public目录下 5 在public文件下的index html引
  • GDI映射:设备坐标与逻辑坐标

    1 设备坐标 对显示器而言就是屏幕 其单位是像素 对打印机而言就是打印机的像素点 这个坐标与具体的设备相关 所以叫设备坐标 目前用到的就是显示器的像素 显示器的设备坐标有三种 屏幕坐标 窗口坐标 客户区坐标 屏幕坐标 以整个屏幕为显示区 屏
  • BoT-SORT与Strong-SORT论文对比及思考总结

    BoT SORT与Strong SORT论文对比及思考总结 接上篇BoT SORT论文阅读笔记 并对Strong SORT论文研读与BoT SORT的更新点对比有了以下的思考总结 Strong SORT论文 Strong SORT代码 通过
  • ES学习笔记

    01 REST 指的是客户端和服务器之间的交互在请求之间是无状态的 从客户端到服务器的每个请求都必须包含理解请求所必须的信息 同时在请求之间的任意间隔时间点 若服务器重启 那么客户端是得不到相应的通知的 所以无状态的请求可以由任何可用的服务
  • 在MacOS构建Python深度学习开发环境

    目录 构建环境 Step 1 搭建初始环境 安装Homebrew 安装Pyenv Step 2 构建开发环境 安装多版本Python 设置虚拟环境 Step 3 完善Python开发环境 训练测试 Step 1 下载源代码 Step 2 准
  • python数据挖掘分析案例_基于Python的Titanic【案例分析】

    这次数据分析的案例是 经典的数据分析案例 泰坦尼克号生还预测 本案例的分析思路包括以下三个部分 数据集描述与来源展示 数据分析过程 明确分析问题 理解数据 数据清洗 数据探索性分析 数据建模与分析 模型选择与结果输出 数据分析总结 数据集描
  • python 计算置信区间,计算置信区间(示例代码)

    proc freq data datain by group tables var missprint nowarn binomial level 1 cl exact alpha 0 05 weight n zero 对发生的做置信区间
  • C语言数据结构之链表的增删改查

    C语言数据结构之链表的增删改查 tips 昨天学习了c语言结构体 今天来看看c语言数据结构之链表 单链表 的增删改查操作 首先我们创建一个简单的学生信息结构体 作为后面增删改查的主体 student结构体包含 数据域 学号 分数 指针域 一
  • jupyter报错

    1 打开anaconda jupyter notebook时报错 Traceback most recent call last File E python anaconda Scripts jupyter notebook script
  • 分页存储管理,分段存储管理,段页式存储管理

    概括的挺详细的 然后我加上了纯分页系统和请求式分页系统的基本概念 也对有些部分稍作修改 一 分页存储管理 1 基本概念 页面和物理块 将一个进程的逻辑地址空间划分成若干大小相等的部分 每一部分称为页或页面 页面的大小通常是2的次幂 大约在5