一、内存寻址

1.内存地址分类: 逻辑地址、线性地址、物理地址

  逻辑地址:段选择符+偏移量

  线性地址:C语言中取地址符&打印出来的地址就是这个地址,也叫虚拟地址。

  物理地址:内存总线寻址的具体地址,是真实存在的。

  逻辑地址通过分段单元转换成线性地址,线性地址通过分页单元转换成具体的物理地址。

  逻辑地址---->分段单元---->线性地址------>分页单元------>物理地址

2.硬件分段

  6个段寄存器:存放段选择符,cs,ss,ds,es,fs,gs

  cs:代码段寄存器 

  ds:数据段寄存器

  ss:栈段寄存器

  段描述符:GDT(全局描述符表). LDT(局部描述符表)

  快速访问段描述符。

  分段单元:先检查TI字段找到段描述符所在的描述符表寄存器(GDTR or LDTR),将段选择符中的index字段乘8再加上TI指向的寄存器的值得到段描述符的具体地址,

  把逻辑地址的偏移量加上之前找到的段描述符中Base字段的值则得到了对应的线性地址。

  Linux中的分段:Linux下逻辑地址和线性地址总是相同的。

3.硬件分页: 4KB的页 32位:页目录(最高10位)  页表(中间10位) 偏移量(最低12位) 

  物理地址扩展分页机制(PAE)

  Linux分页:2.6内核版本采用4级分页模型: 

    页全局目录、页上级目录、页中间目录、页表

 

转载于:https://www.cnblogs.com/ciel12138/p/10563246.html

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

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

相关文章

如何使用Google TV设置Chromecast

Justin Duino贾斯汀杜伊诺(Justin Duino)Google changed up its streaming platform with the release of the Chromecast with Google TV. Instead of being a Cast-only device like Chromecasts before it, Google’s latest dongle runs the successor of Android TV. If y…

js之 foreach, map, every, some

js中array有四个方法 foreach, map, every, some,其使用各有倾向。 关注点一:foreach 和 map 无法跳出循环,每个元素均执行foreach 和 map 无法跳出循环,他们是对每个数组元素调用 callback; foreach 无返回值&#xf…

scala 方法、函数定义小结

2019独角兽企业重金招聘Python工程师标准>>> package scalapackage.testmethod/*** Created by Germmy on 2018/4/15.*/ object TesMethod {def main(args: Array[String]) {//定义方法的一种方法,高阶函数的一种定义方法def m1(x:Int)(y:Int)x*yval resm1(3)(4)pri…

ipad和iphone切图_如何在iPhone和iPad上密码保护照片

ipad和iphone切图Sometimes, you need to protect your iPhone or iPad photos from prying eyes that might also have access to your device. Unfortunately, Apple doesn’t provide an obvious, secure way to do this. However, there’s a work-around thanks to the No…

Java高级篇(二)——网络通信

网络编程是每个开发人员工具箱中的核心部分,我们在学习了诸多Java的知识后,也将步入几个大的方向,Java网络编程就是其中之一。 如今强调网络的程序不比涉及网络的更多。除了经典的应用程序,如电子邮件、Web浏览器和远程登陆外&…

Navigator 对象,能够清楚地知道浏览器的相关信息

Navigator 对象属性 appCodeName属性 功能:返回浏览器的代码名。该属性是一个只读的字符串。 语法:navigator.appCodeName 总结:在所有以Netscape代码为基础的浏览器中,它的值是"Mozilla"。为了兼容起见,在M…

Jerry和您聊聊Chrome开发者工具

2019独角兽企业重金招聘Python工程师标准>>> Chrome开发者工具是Jerry日常工作使用的三大调试器之一。虽然工具名称前面带了个"开发者", 但是它对非开发人员仍然有用。不信? 用Chrome打开我们常用的网站,按F12,在Consol…

BZOJ4314 倍数?倍数!

好神仙啊.... 题意 在$ [0,n) $中选$ k$个不同的数使和为$ n$的倍数 求方案数 $ n \leq 10^9, \ k \leq 10^3$ 题解 k可以放大到1e6的 先不考虑$ k$的限制 对答案构建多项式$ f(x)\prod\limits_{i0}^{n-1}(x^i1)$ 答案就是这个多项式所有次数为$ n$的倍数的项的系数和 考虑单位…

win2008R2管理员密码修改文档

场景:忘记了win2008R2服务器的管理员密码。解决办法:1、 制作一个U盘启动盘:2、 系统通过U盘启动进入WINpe系统3、 在知道Win2008安装位置的情况下;查找C:\windows\system32\osk.exe 将osk.exe文件修改为:osk.exe.bat&…

Python档案袋( 面向对象 )

类即是一个模型,根据模型建立起不同的对象,对象间拥有共同的一些属性 简单的类: 1 class P:2 #类变量,所有实例共享变量,推荐使用方法是:类名.类变量名3 pvarx"ppvar1"4 5 #构造函数6 def _…

javascript中的后退和刷新

转自&#xff1a;https://www.cnblogs.com/tylerdonet/p/3911303.html <input typebutton value刷新 οnclick"window.location.reload()"><input typebutton value前进 οnclick"window.history.go(1)"><input typebutton value后退 οncl…

第四周

7-2 选择法排序 &#xff08;20 分) 本题要求将给定的n个整数从大到小排序后输出。 输入格式&#xff1a; 输入第一行给出一个不超过10的正整数n。第二行给出n个整数&#xff0c;其间以空格分隔。 输出格式&#xff1a; 在一行中输出从大到小有序的数列&#xff0c;相邻数字间有…

checkPathValidity 检查所有agent的corridor的m_path是否有效

在checkPathValidity&#xff08;检查所有agent的corridor的m_path是否有效&#xff09; 如果是无效的要进行重新设置并且设置replan 首先获得第一个polygon&#xff0c;m_path[0] 这里&#xff0c;因为addagent的时候&#xff0c;ag->corridor.reset(ref, nearest); m_path…

来谈谈JAVA面向对象 - 鲁班即将五杀,大乔送他回家??

开发IDE为Eclipse或者MyEclipse。 首先&#xff0c;如果我们使用面向过程的思维来解决这个问题&#xff0c;就是第一步做什么&#xff0c;第二步做什么&#xff1f; 鲁班即将五杀&#xff0c;大乔送他回家 这个现象可以简单地拆分为两步&#xff0c;代码大概是这个样子的: publ…

Vue 教程第一篇——基础概念

认识 Vue 关于 Vue 的描述有不少&#xff0c;不外乎都会拿来与 Angular 和 React 对比&#xff0c;同样头顶 MVVM 双向数据驱动设计模式光环的 Angular 自然被对比的最多&#xff0c;但到目前为止&#xff0c;Angular 在热度上已明显不及 Vue&#xff0c;性能已成为最大的诟病。…

Microsoft Teams的Outgoing Webhook开发入门

Microsoft Teams的应用程序有几种形式&#xff1a; TabsBotsConnectorsMessaging extensionsActivity feed integrationsOutgoing web hooks 这篇我们主要介绍如何使用 ASP.NET Core来开发最简单的Outgoing web hook。 什么是outgoing webhook Outgoing webhooks allow you t…

0418 jQuery笔记(添加事件、each、prop、$(this))

1.添加点击事件、each、prop、$(this) 1 //全选框的被动操作2 //定义一个标志保存最终状态3 var flag false;4 //为每一个选择框添加点击事件&#xff0c;数组.click()5 $(.chex).click(function(){6 //遍历数组&#xff0c;数组.each()7 …

[WC2008]游览计划(斯坦纳树)

[Luogu4294] 题解 : 斯坦纳树 \(dp[i][j]\) 表示以\(i\)号节点为根&#xff0c;当前状态为\(j\)&#xff08;与\(i\)连通的点为\(1\)&#xff09; 当根\(i\)不改变时状态转移方程是&#xff1a; \(dp[i][j] \min_{s \in j}\{dp[i][s] dp[i][\complement_js] - val[i]\}\) 当根…

使用dotnet template快速开发Microsoft Teams Outgoing Web Hook

在上一篇文章中&#xff0c;我们一步步从无到有在Microsoft Teams中开发了一个简单的Outgoing Webhook&#xff0c;并和我们本地的Web API应用程序产生交互&#xff0c;总结起来的步骤大概如下&#xff1a; 导航到“团队” Tab页&#xff0c; 选中需要建立的Channel, 选中“应…

[Swift]LeetCode1013. 将数组分成和相等的三个部分 | Partition Array Into Three Parts With Equal Sum...

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号&#xff1a;山青咏芝&#xff08;shanqingyongzhi&#xff09;➤博客园地址&#xff1a;山青咏芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;➤GitHub地址&a…