问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

【操作系统基础】内存管理——虚拟内存概念及分页机制

发布网友 发布时间:2024-09-28 00:19

我来回答

1个回答

热心网友 时间:2024-10-28 23:13

操作系统与CPU共同实现的内存虚拟化技术是虚拟内存,这种技术通过虚拟化内存使得每个程序都面对一个完整的、连续的虚拟地址空间。

虚拟内存的好处在于它避免了程序直接面对物理地址,主要解决了以下问题:

具体来说,操作系统通过查表的方式将虚拟内存与物理内存进行映射。操作系统使用页表来记录程序中所有虚拟地址与物理地址的映射关系,这种表格称为页表。因此,连续递增的逻辑虚拟地址对应的物理地址不一定是连续的。

现代操作系统对于虚拟内存调度的最小单位是“页”,一般使用4k大小的连续物理空间作为一个内存页。也就是说,页表中所记录的最小单位是4k的页,因此一个虚拟地址可以分为两部分:页地址和页内偏移地址。通常这里需要计算。

在了解了分页存储管理的基本概念之后,我们需要了解地址映射的原理。由于操作系统通过页表进行虚拟地址与物理地址的映射,因此首先需要认识页表。每个程序都有自己的页表,页表是程序运行所需的资源,通常也存储在物理内存中,只能由操作系统访问。

虚拟地址作为页表的索引,查询到对应的物理页起始地址,再通过页内偏移定位到实际的物理地址空间。

在这种映射机制下,CPU向操作系统提供了页表基址寄存器,用于指向程序页表所存放的物理地址的基地址。同时,CPU会提供专门的地址映射单元进行地址管理,称为内存管理单元(MMU)。操作系统会为每个程序维护页表的基地址,在程序运行期间写入到页表基址寄存器,在进行地址映射时,MMU向CPU访问页表基址寄存器,通过加上虚拟页号找到存放物理页号的内存地址(页表项),再进行地址的翻译。

关于页表基址寄存器和虚拟地址的联合机制只是个人的理解,如页表基址和虚拟页号是否是相加的关系不得而知,如何索引到页表项也暂时不确定,后续如果有更深的理解会更新。

页表既然是存放在内存中,也就存在物理大小的概念。由于页表需要记录所有地址的映射关系,因此页表的大小与虚拟内存容量正相关。假设虚拟内存的地址位宽为32bit,其中12bit为页内偏移,则剩下的20bit为页的数量。既然每个页都需要被记录,则页表项为2^20个。通常一个页表项需要记录20bit的物理页号,因此这样一个虚拟内存管理系统分配给一个程序的页表至少需要2^20*20bit的容量,至少是2.6MByte,而如果是64bit的地址空间,一个页表至少是11,258,999GByte。这种机制显然是不合理的。因此,操作系统通过多级页表的方法减少驻留在内存中的页面尺寸,减小页表。

具体来说,高层页表的页表项并不保存物理页号,而是保存下一级页表的起始地址,如同页表基址寄存器的功能一样。在这种方式下,操作系统不需要把所有的页表项都存放到内存中,部分页表项成为空洞,在需要用到这个页表项对应的空间时才进行填写。如图所示的*页表,其中只用到了最低地址和最高地址的页表项,因此只需要在内存中驻留2级页表、最高和最低地址的1级页表以及最高和最低地址的0级页表,共5个页表子集。其中单个高层的页表项所对应的页表项数量由不同的CPU和操作系统决定。

多级页表使得虚拟地址的虚拟页号有了更多的含义。在四级页表情况下,一个虚拟地址可以分为:

在使用多级页表后,存在着页表项动态填写的需求。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
探歌自动启停怎么关闭不了怎么办 探歌停车自动熄火 一汽大众sagitar自动档换档位的时候震动什么原因 大众速滕挂档车身会抖动 大众速腾变速箱挡杆抖动是哪里的问题? 我的爸爸欠了一千多块,妈妈才发现因此很生气,打架怎么办?我好害怕... 我的情况是属于心理障碍吗? 我的爸爸特别喜欢强势,导致我现在非常害怕爸爸,怎么办呢? 我怕我的爸爸妈妈(亲人)死 歌唱祖国的合唱怎么排练,怎么分声部,怎么轮唱重唱领唱比较合理 柯南最后一集是什么?他有没有边会新一? 74年虎女一生的婚姻,虎女47岁一生婚姻 74年属虎48岁背叛婚姻,74年属虎的女人婚姻背叛了对方,是否能得到对 渭南站到怀仁站火车多少钱 k2672次列车去不去繁峙车站 g2672列车途经站点 西门子冰箱冷藏室1-5档代表什么意思啊? 西门子冰箱冷藏室1-5档功能介绍是什么 西门子冰箱冷藏室1-5档,什么意思? 西门子冰箱冷藏室1到5档代表什么意思? 兰戈 电影最后村子变成浴场之后的背景音乐 节奏很快 好像是“everybody... 兰戈原声资料 新上的荣威i5车子挺便宜,后期养车费用高不,一个月需要多少? 华为Mate 40 Pro是否会继续采用刘海屏并支持3D人脸识别? 九代雅阁雨刷最贵多少钱 货拉拉预约要先付款么 LOL卡密尔开大,蛤蟆能大招带人出去吗 英雄联盟里,被卡密尔大招控制住的话闪现是不是也没办法逃 卡密尔大招闪现可以躲吗 想买件M65,身高1.77体重62公斤,买什么尺码好呢? m65风衣质量问题 已知,x是第二象限角,则tanx= A B C D 怎样用手机叫货拉拉 丁丁历险记中文译本 卡-50“黑鲨”武装直升机技术规格 中国计量学院外国语学院团总支学生会部门简介 为什么经济如此发达,年轻人却如此贫穷 使命召唤19现代战争2本体和战区区别大吗-本体和战区对比一览 ...引用的“0x00000023”内存。该内存不能为“read"---是啥意思啊... 法律服务计入什么科目 无主之地3配置要求高不高-配置要求一览 美学珍玩内容简介 肺炎会通过空气传播吗 王倩获奖情况 读书切戒在慌忙涵泳工夫兴味长是什么意思 读书切戒在慌忙涵泳工夫兴味长... 确诊乙流的话,怎么治疗最有用? 乙流弱阳性严重吗 我的电信宽带是包月的每个月84元。我现在外地我已经几个月没用了那电... 租房多久以上办暂住证 租房满多久才能申请暂住证 颈椎突出做牵引有用吗 山东考生多少分能上白城职业技术学院