zoukankan      html  css  js  c++  java
  • 20、深入理解计算机系统笔记,虚拟存储器,基本原理(2)

    2)页命中

    wps_clip_image-2283

    3)缺页

    DRAM缓存不命中称为缺页(page fault)。

    wps_clip_image-32142

    VM page fault (before). The reference to a word in VP 3 is a miss and triggers a

    page fault.

    wps_clip_image-20798

    VM page fault (after). The page fault handler selects VP 4 as the victim and

    replaces it with a copy of VP 3 from disk. After the page fault handler restarts the

    faulting instruction, it will read the word from memory normally, without generating

    an exception.

    在虚拟存储器的习惯用法中,块被称为页。在磁盘和存储器之间传送页面的活动收做交换(swapping)或者页面调度(paging)。一直等待,直到最后时刻,也就是当有不命中发生时,才换入页面的这种策略被称为换需页面调度(demand paging)。

    4)分配页面

    wps_clip_image-7248

    Allocating a new virtual page. The kernel allocates VP 5 on disk and points PTE

    5 to this new location.

    6)利用unixgetrusage函数监测缺页的数量。

    6、虚拟存储器作为存储器管理的工具

    OS为每个进程提供一个独立的页表,因而也就是一个独立的虚拟地址空间。

    wps_clip_image-6117

    How VM provides processes with separate address spaces. The operating maintains a

    separate page table for each process in the system.

    1)简化链接

    每个linux进程都使用如图示格式。

    wps_clip_image-16696

        用户栈总是从虚拟地址0xbfffffff向下伸展。程序总是从虚拟地址0x08048000处开始,共享对象总是加载在从虚拟地址0x4000000处开始的区域。

    2)简化共享

    一般,每个进程都有自己私有的代码,数据,堆,栈区域,是不和其他进程共享页面的。

    然而,在一些情况下,还是需要进程来共享代码,数据,如内核代码,C的库函数。OS通过将不同进程中适当的虚拟页面映射到相同的物理页面,从而安排多个进程共享这部分代码的一个拷贝。

    3)简化存储器分配

    当一个运行在用户进程中的程序要额外堆空间时,OS分配一个适当数字,如k个连续的虚拟地址空间,并且将它们映射到物理存储器中任意位置的k个任意的物理页面(不必要连续,可以是分散地分配)。

    4)简化加载

    映射一个连续虚拟页面的集合到任意一个文件中的任意一个位置的概念叫做存储器映射(memory mapping)。

    7、虚拟存储器作为存储器保护的工具

    wps_clip_image-6584

  • 相关阅读:
    Bitmap\Bytes\BitmapImage相互转换
    枚举值为什么使用1,2,4,8,16,32等2的幂方(转)
    获取电脑信息
    操作内存的帮助类
    C#调用DLL(整理)
    [原]java集合类TreeMap和TreeSet
    [原]《面试题精选》08.颠倒句子中单词的顺序
    [原]数据结构与对象的区别
    [原]初步了解Hadoop平台
    [原]《程序员面试题精选》06.查找最小的k个元素
  • 原文地址:https://www.cnblogs.com/mydomain/p/2088339.html
Copyright © 2011-2022 走看看