首页 > 系统相关 >5.3虚拟内存把磁盘作为部分内存来使用

5.3虚拟内存把磁盘作为部分内存来使用

时间:2023-02-05 11:12:04浏览次数:51  
标签:5.3 Windows 程序 内存 磁盘 运行 虚拟内存

接下来说一下虚拟内存
虚拟内存是指把磁盘的一部分作为假想的内存来使用。这与磁盘缓存是假想的磁盘(实际上是内存)相对,虚拟内存是假想的内存(实际上是磁盘)。

通过借助虚拟内存,在内存不足时也可以运行程序。例如,在只剩下5MB内存空间的情况下也能运行10MB大小的程序。不过,就如本章开头所讲述的那样,CPU只能执行加载到内存中的程序。虚拟内存虽说是把磁盘作为内存的一部分来使用,但实际上正在运行的程序部分,在这个时间点上是必须存在在内存中的。也就是说,为了实现虚拟内存,就必须把实际内存(也可称为物理内存)的内容,和磁盘上的虚拟内存的内容进行部分置换,并同时运行程序。

刚才已经说过,Windows提供了虚拟内存机制作为操作系统。在当前的Windows中,虚拟内存依然发挥着很大的作用。虚拟内存的方法有分页式和分段式两种。

分段式虚拟内存是指,把要运行的程序分割成以处理集合及数据集合等为单位的段落,然后再以分割后的段落为单位在内存和磁盘之间进行数据置换。

Windows采用的是分页式。该方式是指,在不考虑程序构造的情况下,把运行的程序按照一定大小的页(page)进行分割,并以页为单位在内存和磁盘间进行置换。在分页式中,我们把磁盘的内容读出到内存称为Page In,把内存的内容写入磁盘称为Page Out。一般情况下,Windows计算机的页的大小是4KB。也就是说,把大程序用4KB的页来进行切分,并以页为单位放入磁盘(虚拟内存)或内存中(如下图)。

 为了实现虚拟内存功能,Windows在磁盘上提供了虚拟内存用的文件(page file,页文件)。该文件由Windows自动做成和管理。文件的大小也就是虚拟内存的大小,通常是实际内存的相同程度至两倍程度。通过Windows的控制面板,可以查看或变更当前虚拟内存的设定。

 

 

 

标签:5.3,Windows,程序,内存,磁盘,运行,虚拟内存
From: https://www.cnblogs.com/z1218/p/17093048.html

相关文章

  • 熟练使用有棱有角的内存——4.1内存的物理机制很简单
    1.有十个地址信号引脚的内存IC(集成电路)可以指定的地址范围是多少?答:用二进制数来表示的话是0000000000~1111111111(用十进制数来表示的话是0~1023)2.高级编程语言中的数......
  • 4.2内存的逻辑模型是楼房
    虽然内存的实体是内存IC,不过从程序员的角度来看,也可以把它假想成每层都存储着数据的楼房,并不需要过多地关注内存IC的电源和控制信号等。因此,之后的讲解中我们也同样会使用......
  • 4.4数组是高效使用内存的基础
    数组是指多个同样数据类型的数据在内存中连续排列的形式。作为数组元素的各个数据会通过连续的编号被区分开来,这个编号称为索引(index)。指定索引后,就可以对该索引所对应地......
  • C语言学习: 结构体的内存对齐
    怎么对齐的?是对齐他占用内存的倍数,看下面的代码intmain(){typedefstructPerson{char*name;intage;char*id;}Person;structPerson......
  • 06 创建对象内存分析
    现在不太懂什么是栈,什么是堆?无关代码,个人此时喜好记录packagecom.zhan.base05Oop;publicclassTest06{publicstaticvoidmain(String[]args){P......
  • Go应用服务疑似内存泄露问题排查
    背景为了保障业务的可用性,增加应用服务请求依赖服务(grpc、http)的熔断降级策略,避免依赖服务不可用的情况下,出现级联服务故障产生雪崩,通过熔断降级尽可能把影响缩放到最小。因......
  • 论文阅读: CCF A(ICSE) 2022 MVD: 基于流敏感图神经网络的内存相关漏洞检测
    Abstract:内存相关漏洞对现代软件的安全构成了严重威胁。尽管基于深度学习的方法在一般性漏洞检测方面取得了成功,但在应用于内存相关漏洞检测时,仍然受到流信息利用不......
  • 一次因内存引用引发的数据重复的问题
    前言第一次使用expandablelistview,其中要创建一个二维的arraylist,但在使用过程中导致一直出现数据重复的状况,入图所示当独立打开一组并关闭其他组时,显示正常。但当打开......
  • 162-cas-server5.3修改自定义登录页,记住我
    新建src/main/resources资源目录将War包里的~/classes/templates/中的相关文件,复制过来:比如我修改到的圈红的哪些文件,复制过来修改就行。application.properties中添加......
  • c++虚拟内存
    可以通过调用vmemalloc类型对象的括号运算符(len,name)分配大小为len,文件名为name的虚拟内存。返回首地址的迭代器。无需delete,程序结束后会自动清空文件,但是保留文件名#......