虚拟内存

虚拟内存

爷,独闯天下 提交于 2019-11-27 01:13:16
1、虚拟内存解决什么问题? 2、程序必须运行在物理内存上。每个程序运行需要一些内存,在32位机上,程序可以使用的内存为4G,实际需要的内存没有这么多。在32位机上,可使用的物理内存为4G,操作系统使用1个多G,留给应用程序的只有2G多。要运行很多应用程序,显然不够。怎么办? 3、操作系统提供一层封装,当然CPU也要支持。也就是说,让应用程序觉得,它有一块可以使用的物理内存(最多可使用4G),而且这些物理内存是连续的。而实际情况呢? 4、实际上,这块内存对应的是 一些物理内存碎片,和一些磁盘(保存临时数据,需要的时候,数据交换到物理内存)。因此,才叫虚拟内存。 转载于:https://www.cnblogs.com/nzbbody/p/4391678.html 来源: https://blog.csdn.net/weixin_30856725/article/details/99234784

Linux_内存、虚拟内存

感情迁移 提交于 2019-11-26 19:56:43
内存的管理方案: 分区:固定分区: 操作系统启动时将内存分配完成 大小相等的固定分区: 将内存分配成大小相等的区块,会产生内部碎片 放置策略:为每一个区块维护一给队列,为整体维护一个等待队列 大小不等的固定分区: 将内存分配成大小不等的区块,会产生内部碎片 放置策略:将程序放到能够容纳的最小分区,放到当前能够容纳的最小空闲分区 动态分区: 进程执行时,才会动态分配内存,会产生外部碎片, 动态分区的三种方式 首次适配:按分区在内存的先后次序,从上次分配的分区起找到合适的第一个 临近适配: 从上一次放置的地方开始扫描,找下一个合适的空闲分区 最佳适配:按分区在内存的次序从头查找,找到相差最小的空闲分区 分页: 在大小相等的固定分区上的扩展,操作系统会为每一个进程维护一个页表,一个进程可以占有多个页帧,同一个进程的加载空间可以不连续 分段: 动态分区上的扩展,操作系统为每一个进程维护一个段表,一个进程可以占有多个段表,同一个进程的所有段可以不连续,段号、基地址、段大小 伙伴系统: 分配内存时,如果可用的内存空间较大,则将其一分为二,直到分配的空间不能再次分割(再分割会小于申请空间),就将其中一个分配给申请的进程 虚拟内存技术: 交换分区: 放置策略: 为每一个区块维护一个等待队列 整体维护一个等待队列 进程的4G虚拟地址空间布局 来源: https://blog.csdn.net/Duc

Linux中Memory与Swap内存学习整理

☆樱花仙子☆ 提交于 2019-11-26 15:56:12
1.背景介绍 这篇文章介绍一下Linux中swap与memory。对于memory没什么可说的就是机器的物理内存,读写速度低于cpu一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存的造价是要高于磁盘的,虽然相对来说价格一直在降低。除此之外,内存的断电丢失数据也是一个原因说不能把所有数据和程序都保存在内存中。既然不能全部使用内存,那数据还有程序肯定不可能一直霸占在内存中。当内存没有可用的,就必须要把内存中不经常运行的程序给踢出去。但是踢到哪里去,这时候swap就出现了。 swap全称为swap place,即交换区 ,当内存不够的时候,被踢出的进程被暂时存储到交换区。当需要这条被踢出的进程的时候,就从交换区重新加载到内存,否则它不会主动交换到真实内存中。 2.swap介绍 在详细介绍swap之前,我们需要知道的是计算机对内存分为物理内存与虚拟内存(注意虚拟内存和虚拟地址空间的区别)。物理内存就是计算机的实际内存大小,由RAM芯片组成的。虚拟内存则是虚拟出来的、使用磁盘代替内存。虚拟内存的出现,让机器内存不够的情况得到部分解决。当程序运行起来由操作系统做具体虚拟内存到物理内存的替换和加载(相应的页与段的虚拟内存管理)。 这里的虚拟内存即所谓的swap 。 当用户提交程序,然后产生进程,在机器上运行

告诉你,虚拟内存多大合适

安稳与你 提交于 2019-11-26 11:27:54
在设置“虚拟内存”的大小时,我们都想知道系统到底需要多少内存才会够呢?因为“虚拟内存”的值设置得太大,会浪费硬盘空间;如果设置得太小,又会弹出警报信息,导致应用程序异常中止,甚至会导致系统死锁。最简单的方法是使用“任务管理器”来查看当前内存的使用情况。   先将我们常用的应用程序都打开,包括网络浏览器、输入法等,然后同时按住“Ctrl”、“Alt”和“Del”三个键,就可以调出“Windows任务管理器”窗口,然后,再选择“性能”,即可查看内存的使用情况。   我们主要查看“物理内存”和“认可用量”的使用情况。笔者的系统的物理内存为256M,虚拟内存的大小为300M,我的“物理内存”的“可用数”为70880K,应该没问题的;在“认可用量”中,我的“总数”为251408K,“峰值”达到274880K,这个数值离我设置的“虚拟内存”的大小很接近,如需要安装其它的消耗内存较多的软件,则需要增加“虚拟内存”的值。   虚拟内存使用技巧   不要将虚拟内存设置在系统分区中;   将虚拟内存设置在另一块高速磁盘中;   将虚拟内存设置在使用NTFS文件格式的分区中;   将最大值和初始大小设置为一个相同的值;   将初始大小设置为物理内存的1.5倍;   不要在同一块硬盘中设置“分页文件”。 转载于:https://www.cnblogs.com/dyc988/archive/2009/12

如何最大限度提升虚拟内存性能(组图)

随声附和 提交于 2019-11-26 11:27:43
如今已经进入大内存时代,如何设置虚拟内存才能获得最大限度的性能提升呢?本期董师傅将针对这个问题展开讨论。       禁用虚拟内存可提升系统性能?      在内存较小的年代,设置虚拟内存的必要性大家都比较清楚。现在内存的价格越来越便宜,很多朋友都用上了1GB的内存。在大内存环境下,是否可以完全禁用虚拟内存,以提高系统性能呢?      要了解这个问题,首先得明白什么是虚拟内存,以及虚拟内存有什么作用。在早期,因为内存价格非常昂贵,因此一般电脑上都不会配置太多。此时如果操作系统和应用程序需要的内存数量超过了计算机中安装的物理内存数量,操作系统就会暂时将不需要访问的数据通过一种叫做“分页”的操作写入到硬盘上一个特殊的文件中,从而给需要立刻使用内存的程序和数据释放内存,这个位于硬盘上的特殊文件就是分页文件(也就是虚拟内存文件,或叫做 交换 文件, Windows 2000/XP/2003中的分页文件名为pagefile.sys)。      而硬盘和内存的速度有天壤之别,因此有朋友认为,在内存较大的条件下,可以禁用虚拟内存,这样系统就不需要花时间将内存中的数据分页到硬盘上,从而提高系统的运行效率。      然而根据传统的设计, Windows 的许多核心功能都需要使用分页文件,如果你禁用了所有分页文件,有些第三方的应用软件就可能会遇到内存不足的错误。其实在不需要的时候

虚拟内存让系统更流畅

一曲冷凌霜 提交于 2019-11-26 11:27:36
1、虚拟内存的作用 广告:d_text   内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。举一个例子来说,如果电脑只有128MB物理内存的话,当读取一个容量为200MB的文件时,就必须要用到比较大的虚拟内存,文件被内存读取之后就会先储存到虚拟内存,等待内存把文件全部储存到虚拟内存之后,跟着就会把虚拟内里储存的文件释放到原来的安装目录里了。下面,就让我们一起来看看如何对虚拟内存进行设置吧。    2、虚拟内存的设置   对于虚拟内存主要设置两点,即内存大小和分页位置,内存大小就是设置虚拟内存最小为多少和最大为多少;而分页位置则是设置虚拟内存应使用那个分区中的硬盘空间。对于内存大小的设置,如何得到最小值和最大值呢?你可以通过下面的方法获得:选择“开始→程序→附件→系统工具→系统监视器”(如果系统工具中没有,可以通过“添加/删除程序”中的Windows安装程序进行安装)打开系统监视器,然后选择“编辑→添加项目”,在“类型”项中选择“内存管理程序”,在右侧的列表选择“交换文件大小”。这样随着你的操作,会显示出交换文件值的波动情况,你可以把经常要使用到的程序打开

海量数据处理分析经验和技巧

眉间皱痕 提交于 2019-11-26 07:39:13
什么叫海量数据: 1. 数据量函数过千万,或者过亿,必须用程序处理; 2. 数据量达到TB,普通机器无法处理,必须借助特殊的工具和程序。 海量数据处理的软硬件要求: 3. 合理使用工具; 4. 合理分配系统资源; 5. 利用适当的方法。 对程序员的要求:没有通用方法,有通用原则和原理。 1. 丰富的经验; 2. 灵活的处理方式。 海量数据处理的技巧 ## 一、选择优秀的数据库 ## 可以选择hadoop的HDFS,hbase、mysql。 ## 二、编写优良的程序代码 ## 优良的程序代码关于数据处理的正确率和效率问题。 ## 三、对海量数据进行分区处理 ## ## 四、对数据表建立索引 ## ## 五、建立缓存机制 ## 如果读取2亿行的数据,建立100,000行的buffer,在经验上是可行的。 缓存是避免频繁访问数据库或者磁盘而建立的一种临时快速存储器的。它是利用内存等比磁盘和数据库访问速度更快的设备,临时存储需要多次访问的数据,加快访问速度。对于某些需要多次从磁盘和数据库访问的数据,可以通过Map来缓存数据。也可以对某些中间计算结果,但计算耗时的,缓存下来。 缓存的更细和过期:如果缓存的实践超过某一时间间隔,则设定其过期,必须重新从数据库或磁盘读取数据,放入缓存。 也可通过缓存数据的版本比较得出是否过期,是否需要重新到磁盘或数据库读取新数据缓存。 ## 六、加大虚拟内存 #