您当前的位置:首页 > 美文欣赏 > 内容

虚拟存储器的工作原理(应用程序如何使用和管理虚拟存储器)

虚拟存储器的工作原理(应用程序如何使用和管理虚拟存储器)

这是在系统中运行的程序的一个例子。比如我们可以同时运行多个QQ程序,用Office打开多个文档等等。系统给我们展示的多进程界面,其实就是多个进程交替共享CPU和主存资源。但是,共享会带来直接的问题,比如:如果很多进程同时运行,所需的存储容量可能会超过我们的物理存储,导致一些运行错误;或者进程修改了其他进程的内存,也会导致直接运行错误。因此,为了更好地管理内存,现代系统引入了虚拟内存作为实际主存的上层抽象,使得所有进程占用的存储空间具有一致的形式。这方面有两个主题:1 .了解虚拟内存的工作原理;2.应用程序如何使用和管理虚拟内存。今天,让让我们首先了解虚拟内存是如何工作的。

*******

和虚拟寻址。

物理3354计算机系统的主存储器被组织成一个M个连续字节的数组,可以记录为0,1,2,3。M-1,每个都有一个明确的物理地址(PA)。早期的CPU直接将物理地址发送到主存来获取数据和指令。

虚拟寻址——现代系统CPU集成了地址翻译硬件(MMU),可以将CPU识别的虚拟地址(VA)翻译成与主存对应的PA。

#引入虚拟存储的一个优点是,我们可以建立{va}-{pa}的映射,这样虚拟存储地址空间可以大于实际地址空间#

******

虚拟内存主要使用——缓存工具。

就像我们在CPU和主存之间增加缓存一样,系统也在主存和硬盘之间增加虚拟内存,减少数据传输的时间。Windows下的虚拟内存是虚拟内存的一种。

虚拟内存(VM)和物理内存(PM)之间的数据交换单位。虚拟页面存储在磁盘上,物理页面缓存在DRAM(主内存)中。

页表——在物理存储器中存储页表(数据结构)。这个页表记录了虚拟页和物理页之间的映射。每条记录称为一个页表项,其基本格式为:有效位(1bit)物理页号或磁盘地址。

当系统运行时,CPU发送一个虚拟地址请求,在虚拟内存的虚拟页表中查找PTE。此时:

如果匹配并且有效位是1 ,表示数据已经缓存在主存中,直接读取后面的物理页号就可以得到数据;

如果匹配但有效的位是0 & gt;这意味着数据在VM上,而不在PM上。此时,需要替换PM上的页面以获得所需的页面。

实际上,所有现代系统都采用按需调度页面的方法,即只有在请求时才替换页面。

******

虚拟内存主应用程序3354存储管理

直接结果是,由于VM空间通常大于PM空间,所以PM空间地址将被共享。比如进程需要使用相同的内核代码,调用相同的系统函数,C标准库中的函数。此时,多个进程可以共享部分地址空间。节省了多个进程的存储空间需求。

******

虚拟内存3354内存保护的主要应用

系统中有太多的数据是不允许用户随便访问和更改的,比如进程的只读文本段,比如内核中的代码和数据,还有其他进程的私有内存。因此,现代系统总是为操作系统提供控制存储系统访问的手段。实际上,可以将更多有效位添加到页表中,以控制特殊页的读写操作,例如:

SUP:只有超级用户被授权读写吗?

读取:您有读取权限吗?

写:你有写权限吗?

******

地址转换

虚拟地址由CPU发送到内存,让CPU直接面对抽象一致的内存对象。但这需要MMU做地址翻译。MMU会使用页表基址寄存器来确定虚拟页表中虚拟地址的PTE,然后进行PA转换。主要步骤如下:

1.CPU生成一个虚拟地址并发送给MMU。

2.MMU生成PTE地址,并从缓存/主存储器请求中获取该地址

3.缓存/主存储器将PTE(记录)返回给MMU

4.判断:

如果PTE的有效位为真,MMU读取PTE中的物理地址,并将其发送到缓存/主存储器。

5.高速缓存/主存储器将所请求的数据返回给CPU

如果判断PTE有效位为假或无效,

6.MMU触发一个异常,控制转移到CPU异常控制处理器。

7.缺失页处理程序确定PM中的牺牲页,如果该页已被修改,它将被写回磁盘。

8.将丢失的页面处理程序调入新页面,并更新内存中的PTE

9.缺页处理程序返回-4

标签:系统内存地址


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 夏普9020价格(请问夏普的SH9020C上市时间和上市价钱是多少)

下一篇: 大神直播app免费下载(大神们谁知道有哪些直播平台是可以用手机直播的具体点)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号