操作系统页表

news2025/1/12 4:46:28

页和段的区别

页式,一个程序的各页是根据你的程序空间连续编址的,程序地址空间只有一维;

而段式,一个程序拆分成各段,独立编址(各段都从零开始编址),程序地址空间有两维。

例如一个50KB的程序,页式分配,不妨设每页4KB,各页地址分别为0~4,4~8 ...... 44~48;

而段式分配,各段地址则可能是0~20,0~20,0~10

对于page table我们可以优化,用下标代替页号,只保留frame no

我们来算一个我的操作系统的页的m和n

1.可以看到我的操作系统是64位 也就是m为64

2.可以看到我的操作系统默认的page size是4K那么4k等于2^2*2^10=2^12,那么n就等于12

页表的优缺点

块表

硬件页表

页表也是放在内存中的

我们读取对应的寄存器PTBR的值,page-table base register(PTBR)指向页表

我们每次转化物理地址都需要访问主存访问,第一次访问对应的页表(页表是在内存中的),第二次才根据页表定位到页号。

TLB(Translation look-aside Buffer)这里不翻译,翻译太多了大家理解英文就行

是一种专用的页表缓存,能非常快的查找

学过计算机组成原理,我们都知道cache的优劣完全由命中率决定

原理都是命中即直接取cache值,未命中就去内存中的page-table中查找,这里如果要提高命中率就需要把程序常用的表录入TLB。

访问流程

命中直接防

命中率分析

百分之八十命中率(命中只需要访问一次内存),未命中就访问两次内存

百分之九十九命中率

0.99 * 100 + 0.01 * 200 = 99 + 2= 101 ns

保护机制

操作系统基本单位为2KB

整个虚拟地址大小为12287,分页可以得到12287B/2048B左取值得到5,也就是只能分五页,五页离散放入内存中,page-table页只要0-5的下标里有对应的frame number且valid-invalid bit值有效。而剩下两个下标对应valid-invalid bit值无效,代表frame number无效,如果取到报越界错误。

这个valid-invalid bit可是是bits,因为有些页可能是只读,也能是读写,所以可以添加更多有效位去代表更多属性,但这个是要消耗资源的,所以需要权衡利弊。

共享

这里有个pure code概念,前面我们说了有些页的内容是只读或读写,这个code可以让很多人读取,但是如果要是多人写入那么会出很多问题,所以一般是只读

但是页表也是存入内存中的,那么如果页表过大,我们如何解决页表连续的问题

我们引入一个问题

每个进程都有页表

这只是一个进程的表可能就要达到4MB,所以我们还是需要将表拆分,离散存储。

我们根据上面的问题发现,如果表离散存储有需要一个记录离散表的东西

页目录(page of page-table)

上面这个叫做两级页表,而我们举例的是32位的,64位就需要更多级

x86-64位架构的机器用的是四级的页表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/379740.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能高等数学--微积分_导数意义_求导公式_绝对值函数_relu函数_导数物理意义_几何意义---人工智能工作笔记0025

实际上这里看了看,这些数学的概念,有一定作用,但是综合来看,也可以先把人工智能课程都看一遍,大概知道怎么回事, 带着目的再来看人工智能的高等数学部分,这里,这些内容很花时间... 首先看人工智能用到的数学中的微积分~ 首先看这里的导数是什么意思? 其实就是,导数的公式是…

Ajax学习笔记01

引入 翻译成中文就是“异步的Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。 AJAX 不是新的编程语言,而是一种使用现有标准的新方法。 AJAX 最大的优点…

word中运行Mathtype报错、以及WordCmds.dot报错问题解决方案

1. 首先,先把电脑里的Mathtype卸载干净,然后重新安装。也可以尝试直接覆盖安装。 2. 安装之后将Mathtype里面的以下几个文件拷出来安装到不同的文件夹中: Office Support文件夹中: MathType Commands 2016.dotm WordCmds.dot …

【Leedcode】栈和队列必备的面试题(第三期)

【Leedcode】栈和队列必备的面试题(第三期) 文章目录【Leedcode】栈和队列必备的面试题(第三期)一、题目(用两个栈实现队列)二、思路图解1.定义两个栈2.初始化两个数组栈3. 将数据放入pushST数组栈中4.删除…

指标体系—北极星指标体系

北极星指标体系 每个产品都有很多指标,每个指标都反映了对应业务的经营情况。但是在实际业务经营中,却要求我们在不同的产品阶段寻找到合适的指标,让这个指标可以代表当前产品阶段的方向和目标,让这个指标不仅对业务经营团队,而且对产品的用户、对产品的价值都能有很好的…

③【Java 组】蓝桥杯省赛真题 [黄金连分数][马虎的算式]持续更新中...

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 蓝桥杯真题--持续更新中...一、黄金连分数&…

echarts图表设置关于图例legend,限制图例可点击时最少保留显示一个图例

echarts图表设置关于图例legend,限制图例可点击时最少保留显示一个图例 echarts图表设置关于图例legend,限制图例可点击时最少保留显示一个图例,亲测有效; 代码如下: // 初始化ecahrts let echartsWrapper this.$e…

【Leedcode】栈和队列必备的面试题(第二期)

【Leedcode】栈和队列必备的面试题(第二期) 文章目录【Leedcode】栈和队列必备的面试题(第二期)一、题目(用两个队列实现栈)二、思路图解1.定义两个队列2.初始化两个队列3.往两个队列中放入数据4.两个队列出…

Linux 自带按键驱动

目录 一、内核检查 二、驱动文件 三、设备树 四、验证 一、内核检查 内核一般默认已经使能了 KEY 驱动,但是还是要检查一下。按照如下路径找到相应的配置选项: Device Drivers -> Input device support -> Generic in…

WebRTC拥塞控制原理解析

WebRTC包含三种拥塞控制算法,GCC、BBR和PCC。其中,BBR一开始是针对TCP的拥塞控制提出来的。它的输入为ACK/SACK,输出为拥塞窗口(congestion_window)发送速度(pacing_rate)。BBR是怎样运用到UDP,甚至运用到实时流媒体传输之上的&am…

Java-封装、继承、多态

封装 访问控制权限又成为“封装”,是面向对象三大特征中的一种。核心是,只对需要的类可见。 继承 继承是所有OOP(Object Oriented Programming)语言和Java语言都不可或缺的一部分。 只要创建一个类,就隐式继承自Obje…

【计算机组成原理】计算机硬件的基础组成、认识各个硬件部件

计算机组成原理(一) 计算机内部是通过电信号传递数据 电信号:分为高电平和低电平,分别代表1/0 数字、文字、图像如何用二进制表示? CPU如何对二进制数进行加减乘除? 如何存储这些二进制数的? 如何从内存中取出想要的数…

RuoYi-Flowable-Plus搭建(若依)

项目简介 1.本项目基于 RuoYi-Vue-Plus 进行二次开发,采用 Flowable 扩展工作流应用场景,支持在线表单设计和丰富的工作流程设计能力。2.本项目主要针对Flowable工作流场景开发,采用MIT开源协议,完全免费给个人及企业使用。3.环境…

(小甲鱼python)函数笔记合集七 函数(IX)总结 函数的递归、递归和迭代的区别详解

一、基础复习 函数的基本用法 创建和调用函数 函数的形参与实参等等函数的几种参数 位置参数、关键字参数、默认参数等函数的收集参数*args **args 解包参数详解函数中参数的作用域 局部作用域 全局作用域 global语句 嵌套函数 nonlocal语句等详解函数的闭包(工厂函…

华为OD机试题【有效子字符串】用 C++ 进行编码 (2023.Q1)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明有效子…

如何使用New Bing的ChatGPT聊天机器人

New Bing是微软推出的一款基于GPT4模型的智能搜索引擎,可以提供更加人性化、交互式和多样化的搜索体验。在中国使用New Bing的ChatGPT聊天机器人需要以下几个步骤: 一、准备工作 1.1 申请微软邮箱 用来登录Edge浏览器和接收来自微软New Bing使用邀请的…

代码随想录算法训练营 || 贪心算法 435 763 56

Day31435. 无重叠区间力扣题目链接给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3]…

TryHackMe-hackerNote

hackerNote 自定义 Web 应用程序,引入用户名枚举、自定义单词列表和基本权限提升漏洞。 端口扫描 循例 nmap Web 80和8080都是一样的页面,并且存在一个登录页面 除此之外还有另一个信息就是它只有一个用户 存在注册功能,我们注册一个用户…

AntDB数据库首个社区版正式发布,携手生态更多可能

3月1日,亚信科技AntDB数据库社区版正式开放免费下载。作为AntDB数据库的首个社区版产品,AntDB-CE(Community Edition ) V7.2.0具有完整、易用、兼容度高的企业级分布式数据库产品特性,提供了详细的在线文档支持&#x…

Kafka基本原理

总述 简介 Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各…