02操作系统

07-深入解析操作系统虚拟存储

2021-07-25 87 2

简介 操作系统虚拟存储管理的原理-Virtual Memory Management

    现代计算机一般都采用磁盘存储器作为辅助存储器,磁盘的盘片表面上的磁道划分为若干个扇区,每个扇区的大小通常等于1个主存页面。

磁盘的实地址由磁盘机号、柱面号、磁头号和扇区号组成。


    计算机读取磁盘中的一个文件时,需要将文件内容加载到内存中,但是文件可大可小,内存确是固定的8G或者16G甚至更大。那么如何做到呢? ---虚拟存储管理


http://www.ylaihui.com/blog/article/9276?rootCategoryId=16

一文中介绍了虚拟存储管理以及页式、段式、段页式存储管理以及页面置换算法,本文基于以上理论继续深入介绍虚拟存储管理。


    虚拟存储( virtual memory)技术的概念是:把很大的程序(数据)分成许多较小的块,全部存储在辅存(硬盘、U盘)中。运行时,把要用到的程序(数据)块先调入主存,并且把马上就要用到的程序块从主存调入高速缓存(catch)。这样,一边运行程序,一边进行所需程序(数据)块的调进调出只要及时供应所需处理的程序与数据,程序就能顺利而高速地运行下去。因此,对于应用程序员来说就好像有一个比实际主存大得多且可以放下整个程序的虚拟主存空间。当辅存中的程序块调入主存时,必须使程序在主存中定位(程序运行时找到数据在内存中的位置),该工作由系统自动完成,应用程序员不用考虑如何把程序地址映像和变换成实际主存的物理地址,因此,虚存技术对于应用程序员来说是透明的。


    假设磁盘中的文件加载到了内存中,我们通过键盘对数据进行了修改, 点击保存时候,磁盘中的文件就永久的保存了,这其中发生了什么?


    通过键盘修改文件内容,实际首先修改的是内存中的内容,然后内存中的内容再回写到磁盘中,那么内存如何知道该在磁盘的哪个位置回写呢? 这就需要理解“外页表”的原理。外页表中记录了虚拟地址到磁盘物理地址的映射,当我们修改了内存中的内容, 通过虚拟地址找到磁盘的实际地址,写回到磁盘。


    虚拟存储管理还有“页表”的一个东西,它是记录了虚拟地址到内存物理地址的映射关系,当我们写内存操作内存时,实际上是通过虚拟地址找到内存的物理地址,然后改变内存中的内容。


    缺页中断如何处理的?


    如果发生缺页中断,即为要访问的数据不在内存,那么首先要看“页表”是否有空闲的空间,如果有,直接将磁盘中的数据加载到内存中。如果页表已经满,需要淘汰页面,所要淘汰的页面如果已经被修改,需要借助于“外页表”找到磁盘中该数据的位置,写回到磁盘(试想一下,如果不写回,你的数据是不是就丢失了?)

    

    通过外页表,也就是虚拟地址到磁盘实际地址的映射关系,找到要访问的数据,从磁盘中读取,然后更新“页表”,重新维护虚拟地址到内存物理地址的映射,然后将数据加载到内存。



    这里注意“外页表”和“页表”的区别 ,外页表是虚拟地址到磁盘实际地址的映射, 页表是虚拟地址到内存物理地址的映射。


    下图辅助理解全部过程,这个图详细介绍了操作系统的地址变换流程。


upfile




点赞 2

文章评论

欢迎您:

纸上得来终觉浅,绝知此事要躬行!

112 文章 36783 浏览 3 评论

联系我

  •   QQ:    361352119
  •  Email:  lisimmy@sina.com
  • 微信: