页表长度和页表大小_OS——关于页面大小与页表项的问题

2023-11-18

一、采用分页管理方式时,操作系统将进程划分成若干个页面,将内存划分为若干个内存块(or页),页面和内存块大小一致并且一一对应,但是由于进程划分页面时,最后一个页面大小可能小于内存块大小,导致存放的最后一个内存块存在内部碎片,成为页内碎片。为了方便查找还引入了页表机制,如下图(页面数量多时可以使用多级表)。

页表是一种数据结构,其中每一项成为页表项,存放内存块号(每个页表项对应一个内存块),并且将页表放在内存块中。例如一个页面大小为4kb,页表项为4k,那么一个内存块(内存块大小与页面大小相同)就能存放1024(4kb/4b)个页表项,即页表的一页有1024个页表项。举一个现实中的例子,有一本书的目录很长,按照常规的做法,必须拆分开印到很多页上,但是如果有一张很长的纸,那便不需要拆分也能把目录全都包括在一张纸上。页表存放在内存块里也是如此,如果有一个内存块足够大存放下一张页表,那么就不需要割分开页表了,但是页面大小过大的话也就失去了划分页面的意义。

e21c8c8a64d5b3e6633c26c99db1caad.png

二、页表占用一定的内存。

(一)现在假设有2GB内存,页面大小为4KB,页表项大小为4B。那么它一共有2GB/4KB=512K个内存块(or页,内存块大小=页面大小),也就是说页表项有512K项(一个页表项对应一个块号),而每个页表项的大小4B,那么页表在内存中占用的大小是:512K*4B=2MB,意味着,只要2MB就可以表示512K个页(每个页是4KB,总内存大小是2G),它页表本身占用了2MB/4KB=512个页。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

页表长度和页表大小_OS——关于页面大小与页表项的问题 的相关文章

  • python二元操作符是什么_python笔记—06 讲:Pyhon 之常用操作符

    本期内容详解 1 算术运算符 加 减 乘 除 幂运算 地板除 1 和 的区别 在 Python 中的除运算符与其它程序语言的不太一样 表示真正的除号 例如 1 3 0 3333333333333333 而 4 2 的值为 2 0 说明两个数
  • Flask处理前台POST过来的JSON

    POST JSON数据的JS代码 ajax url http 127 0 0 1 5000 calc type post dataType json headers Content Type application json charset
  • 数据结构——线性表(C++)

    线性表 一 线性表的定义 二 线性表的抽象数据类型 三 线性表的顺序存储 1 顺序存储定义 2 顺序存储的实现方式 四 线性表的链式存储 五 其他线性表 参考 一 线性表的定义 线性表 零个或多个数据元素的有限序列 线性表是最常用且是最简单
  • 开启防火墙脚本

    sc config MpsSvc start AUTO net start MpsSvc
  • VMware ESX与VMware ESXi区别

    VMware ESX 与 VMware ESXi 区别 现在来讲vSphere就是ESXI 只是两种叫法而已 我们来看看VMware服务器虚拟化产品的历程 Vmware 服务器虚拟化第一个产品叫ESX 该产品只有60天测试 没有官方认可的免
  • DAY18:Xss 靶场通关手册

    DAY18 Xss 靶场通关手册 常见的xss注入 lt img src x onerror alert 1 gt
  • nvidia深度学习加速库apex简单介绍

    介绍地址 https docs nvidia com deeplearning sdk mixed precision training index html 本人英文水平有限 有误请指正 使用理由 使用精度低于32位浮点的数值格式有许多好
  • 设计模式(二十二) 策略模式

    有时候对象需要按照某种策略改变行为 我们可以利用策略模式 将策略或算法提取出来 作为单独的类实现 使用策略模式 可以让具体算法和应用对象分离 方便的根据不同条件替换策略 下面举一个例子 我们有一个计算器 它会按照快和慢两种策略来计算结果 所
  • 解决Linux普通用户使用Wireshark的权限不足的问题

    dumpcap需要root权限才能使用 如果是普通用户 Wireshark就没有权限使用dumpcap进行截取封包 解决方法 将dumpcap更改为Wireshark用户组 sudo chgrp wireshark usr bin dump
  • vue3_父子组件传参

    最近在看b站 小满zs 的vue3教程 巩固一下 1 父 gt 子组件 父组件自定义一个属性 用v bind 绑定在子组件上
  • couldn't find native method

    有两个原因 1 java这边native方法没有 native void renderFrameStart 2 c这边没有实现native方法 12 29 15 52 27 901 32735 32735 com ffmpegtest E
  • vue模板语法(上)

    目录 一 插值 什么是插值 建立一个html来编写插值 输出结果 二 指令 什么是指令 建立一个html来编写指令 输出结果 编辑 动态参数 输出结果 三 过滤器 什么是过滤器 建立一个html来编写过滤器 输出结果 4 计算属性 监听属性
  • STM32F103C8T6驱动舵机SG90 配置定时器TIM2,TIM3,TIM4的多种重映射模式下的不同IO口

    STM32F103C8T6驱动舵机SG90 配置定时器TIM2 TIM3 TIM4的多种重映射模式下的不同IO口 1 使用到的工具介绍 2 整个简单介绍 3 程序的介绍 1 使用到的工具介绍 keil5 烧写软件FlyMcu exe 硬件为
  • CS143-project2 局部特征匹配 Local Feature Matching

    本项目通过harris算法对图像进行兴趣点的检测和提取 然后计算兴趣点周围4 4区域的8个方向特征向量 最后对获取到的特征向量对进行匹配 本算法对旋转 缩放 亮度变化保持一定程度的稳定性 环境 操作系统 WIN7 实现平台 MATLAB20
  • Flask 项目部署(Docker + Flask + uwsgi + Nginx)

    文章目录 一 项目背景 二 项目部署 2 1 项目基础环境 2 2 获得 Python 环境的所需依赖 2 3 配置 gunicorn 2 4 编写 Dockerfile 2 5 编写 docker compose 选用 2 6 Docke
  • CS224W 第一讲 图论基本知识回顾

    网络的组成 一个网络由 对象 关系 系统 组成 网络的表示 有向图和无向图 节点的度 这里平均度数分别为 2E N 和 E N 同时 有向图有一个很重要的概念就是 所有的出度和入度是相同的 完全图 clique or Complete gr
  • 前端传递base64编码,java后端接收,并转为MultipartFile对象

    前端传递的base64 通过url Base64中的 和 字符变为形如 XX 的形式 所以后端接收的字符串是带 的 所以需要解码 String decode URLDecoder decode avatar 下面是工具类 base64转为m
  • 3DMax 卡死、白屏、渲染死机问题总结

    白屏 3dmax出现白屏解决方法 以下是ChatGPT给出的答案 内存不足 3DsMax需要大量的内存才能正常运行 如果你的计算机内存不足 3DsMax就会卡死 解决办法是升级你的计算机内存或者关闭一些不必要的程序来释放内存 显卡驱动过时
  • C++之tuple

    2023年6月4日 周日下午 今天下午简单学习了一下tuple 现在来简单介绍一下tuple 功能 生成一个含不同数据类型的元素列 创建 可以通过声明或make tuple来创建tuple include

随机推荐

  • 在Qt中,如何布局,让控件显示在自己想要的位置

    想到一个办法 可以使用QGridLayout 使用空的QLabel填充空白位置 空的QLabel是透明的 所以看起来就是被填充区域为空白 可以让自己想要显示的控件显示在右上方或者左下方或者任何想要显示的地方 绿色为填充的空QLabel 如图
  • 网课重学宣言:御风计划

    当前状态 我报了网课 2023年4月份报的花了1w3 现在是快7月份了 但是我没学多少 这一份课程的学习困难重重 如今我面临两个选择 一个是放弃这么课 跟着流程继续学习 能学一点是一点 然后把其他精力放在别的方面 另一个是重新延期学习 重新
  • Qt下监测内存泄漏

    在写Qt应用程序时 由于是采用C 语言 经常会碰到一个令人棘手的问题 那就是内存泄漏 虽然后面C 为了防止内存泄漏 发布了智能指针以用来避免内存泄漏 但是并不能完全避免 而且智能指针使用不当 同样会造成非常严重的问题 这里智能指针就不在赘述
  • 项目在was 7.0上部署问题解决方案

    年前 在做项目的时候 遇到客户要求应用服务器采用WebSphere服务器 之前从来没有接触过该类服务器 所以项目在架构部署上遇到了很多问题 现在给自己做个笔记 记录一下在websphere应用上遇到的问题 为以后做参考 同时 给有遇到此问题
  • 谈GPT-2(附大量网址)

    文章目录 前言 关于GPT 2 各个版本的GTP 2 中文版GTP 2 语料链接 15亿参数版GPT 2 OpenGPT 2 前言 GPT 2这个名字不知有多少人知道 但有很多人应该都知道埃隆 马斯克的OpenAI吧 OpenAI 由诸多硅
  • Python时间模块之calendar模块

    目录 简介 calendar month isleap calendar leapdays monthcalendar monthrange timegm 总结 简介 在项目开发中做功能经常会用到关于时间的操作 比如会员过期的定时任务 一些
  • 计算机视觉需要学什么?CV知识点

    最近有人问计算机视觉需要学什么 我自己本身是通过自学然后找到了计算机视觉相关的工作 这里我分享一下自己的当初掌握的知识点 希望能帮助到你 以下内容仅供参考 计算机视觉需要学什么 学习计算机视觉需要具备的知识储备有 1 图像处理的知识 图像处
  • 记录一次rabbitmq ConfirmCallback不生效的问题

    记录一次rabbitmq回调函数不生效的问题 application yml里是否存在 springboot版本的问题 改为2 1 7 RELEASE即可 以上都未生效的话 检查一下是否自己写了连接rabbitmq的bean 在里面加上下面
  • Unity 3D中的帧动画播放

    帧动画 Frame By Frame 的原理 链接 项目实例资源 关键是连续的关键帧分解动作 也就是在时间轴的每帧上逐帧绘制不同的内容 使其连续播放而成动画 虽然每一帧都不一样 处理的信息量大 但是 帧动画具有非常大的灵活性 几乎可以表现任
  • C/C++之内存四区

    程序运行时 将内存大致分为四个区域 代码区 存放函数体的二进制代码 由操作系统进行管理的 全局区 存放 全局变量和 静态变量以及 常量 栈区 由编译器自动分配释放 存放函数的参数值 局部变量等 堆区 由程序员分配和释放 若程序员不释放 程序
  • numpy——mgrid

    x1 x2 np mgrid x1min x1max num1j x2min x2max num2j x1返回的是x1min到x1max间均匀分成num1个数 进行横向扩展为方阵 x2返回的是x2min到x2max间均匀分成num2个数 进
  • 企业级数据单表全量增量抽取数据模型(Kettle版)

    最近在使用Kettle进行ETL的工作 现在总结一下 需求是将MYSQL中的表数据增量备份到HIVE仓库中 第一次是全量 我只想给大伙来点实用的 避免大家踩坑 Kettle是一个基于图形化的ETL工具 也可以用于集成各种作业 比如Sqoop
  • Spring Boot之自定义JSON转换器

    JSON是前后端数据交互最流行的格式 在目前的项目开发中 常见的JSON的转换器有三种 json lib由于自身的缺陷基本不用 最广泛的还是Jackson Jackson 在springboot中默认添加了jackson databind作
  • 使用go语言整合gin,驱动bartender打印标签程序

    可以用来当中间件 项目地址 github GitHub wjdsg0327 printer barTender 使用go语言整合gin驱动bartender打印标签 gitee printer barTender 使用go整合gin驱动ba
  • [kubernetes]step3-kubeadm更新证书有效期

    kubeadm更新kubernetes集群证书 接着上面阿里云上的kubernetes集群 一步步搭建服务 因为kubernetes要上云测试了 不想到时候突然因为证书导致服务挂掉 挨批 就把证书更新一下 感觉10年差不多了 查看证书过期时
  • Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore

    Java并发编程 CountDownLatch CyclicBarrier和 Semaphore 2016 10 07 分类 基础技术 7 条评论 标签 并发 分享到 0 原文出处 海子 在java 1 5中 提供了一些非常有用的辅助类来帮
  • linux源码安装git 教程 ,设置远程库,客户端访问完整版

    1 linux 在 github 下载 git 安装包 然后解压 wget https github com git git archive v2 21 0 tar gz tar zxvf git v2 21 0 tar gz 2 安装gi
  • C++的文件操作open与close

    先看一下相应的打开文件的不同参数的作用 C open 打开文件 含打开模式一览表 打开模式可以用多个 但符号是 不是 注意啦 比如 ios in ios binary表示用二进制模式 以读取的方式打开文件 ios out ios binar
  • 3. 类指针与智能指针

    3 类指针与智能指针 本篇主要解答以下问题 类的对象与类指针的区别 为什么要用智能指针 unique ptr 和 shared ptr 3 1 类对象与类指针 实例化一个类的时候 有两种方式 一是创建对象 二是创建指针 以2 1中的stud
  • 页表长度和页表大小_OS——关于页面大小与页表项的问题

    一 采用分页管理方式时 操作系统将进程划分成若干个页面 将内存划分为若干个内存块 or页 页面和内存块大小一致并且一一对应 但是由于进程划分页面时 最后一个页面大小可能小于内存块大小 导致存放的最后一个内存块存在内部碎片 成为页内碎片 为了