当前位置:文档之家› 32位系统认不到4G内存原因

32位系统认不到4G内存原因

32位系统认不到4G内存原因
32位系统认不到4G内存原因

32位系统认不了4G内存的原因

如果我们留心一下,我们就会发现,假如我们安装了2GB的内存条,32位的Win7系统可以显示内存大小是2.00GB。

当我们换用4GB的内存条时,我们的32位Win7一般会显示不到4GB的内存条(比如显示内存大小是3.31GB),有些用户觉得自己可能被不法商贩欺骗,原本应该购买的4GB内存被经销商缩水为3GB

真实情况如何呢?

第一个原因只会“吃掉”您一小部分的内存

众所周知,电脑中二进制中的换算关系是1GB=1024MB,实际生产时,硬件厂商厂商的换算单位是1GB=1000MB,当电脑厂商告诉您,您电脑中的内存是1GB的时候,其实您的内存是1000MB,系统识别时,用1000处以1024,也就显示您的内存是0.976GB,同理您安装了4G的内存,系统会显示您的内存是3.9GB。这并不是硬件厂商欺骗您。

第二个原因可能会“吃掉”您数量可观的一部分内存

内存(RAM,也就是您的系统的寻址总空间)=内存条(物理内存,您的内存条是4GB的)+bios内存+缓存+显存+...,,32位的电脑的寻址空间是2的32次方,也就是4G,系统将这4GB的地址分配给内存条,缓存,显存,硬件等。

系统分配寻址空间时是有优先级的,bios的内存,cpu的缓存,各个硬件的内存,显卡的显存等,他们的优先级比物理内存(也就是内存条)高,所以系

统先将寻址空间分配给bios的内存,cpu的缓存,各个硬件的内存,显卡的显存,最后才将剩余的寻址空间分配给内存条。比如您的显卡有500MB,那么可以分配的内存也就只剩下4GB-0.5GB=3.5GB了。(这里指的是集成显卡)

相当于一条街上有1000户居民,但是门牌号码确实只有800个,于是还有200户居民没能获得门牌号码,但是这200户居民并未消失。

如果在32位电脑上装上4G内存条依照优先级关系,你只能使用3G多的的内存条空间,因为前面的几百MB的寻址空间是给了各个硬件(包括显存),4GB的内存条只有其中的3.31GB获得了寻址空间,此时您只可以看到获得了寻址空间的那一部分内存条(见下图.)

如果是2G的内存条,因为电脑本身寻址能里是4G,前面几百MB给了硬件,依旧剩余3G多的寻址空间,2G的内存条可以完全获得2G的寻址空间,您也就

能看到2G的内存条了(见下图)

PS:按照上面的说法,我也观察了一下自己的笔记本,我的笔记本是6G内存的,win7专业版,破解了32位系统寻址限制,6G内存可正确识别,但是可用的只有5.8如下图:

那么为什么是5.8G可用呢?再看这里,发现系统为硬件保留了141MB内存:

那么按照上面的说法,我的物理内存实际大小应该是6G*1000MB=6000MB-为硬件保留的物理内存141MB=5859MB/1000≈5.86G

在任务管理器中,也可以看到类似结论:

回过头来再看下资源监视器截图中的已安装内存是6144MB,这又是为什么呢?因为这里的算法是按照1GB=1024MB来计算的,6*1024=6144MB

结论:

当我们再计算物理内存时,还是按照GB数*1000来算吧,这样更准确一些,另外看到上面的帖子讲的32位操作系统寻址,也可以很容易让我们理解为什么开PAE可以让32位系统认到更多内存,实际上开启PAE之后,就是把32位系统寻址能力由2^32=4G提升到了2^36=64GB,因此可以让系统识别更多的物理内存。

那么为什么有些人用4G内存,开了PAE之后,系统能识别的内存还只是达不到4G呢?因为2点:

1、内存容量的单位换算问题,1G=1000MB,4G也只是有4000MB;

2、计算机硬件本身吃掉的内存,这就与硬件本身有关系了,就说不太清楚了,因此假如你4G内存,开了PAE之后,还只是识别到3.8G,那么很剩余200MB

就是被硬件吃掉了,XP下看不到这些内存占用,用WIN的资源监视器就可以看到了,所以有疑惑可以尝试装下WIN7验证下。

操作系统内存管理复习过程

操作系统内存管理

操作系统内存管理 1. 内存管理方法 内存管理主要包括虚地址、地址变换、内存分配和回收、内存扩充、内存共享和保护等功能。 2. 连续分配存储管理方式 连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。 2.1 单一连续存储管理 在这种管理方式中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的操作系统。CP/M和 DOS 2.0以下就是采用此种方式。这种方式的最大优点就是易于管理。但也存在着一些问题和不足之处,例如对要求内

存空间少的程序,造成内存浪费;程序全部装入,使得很少使用的程序部分也占用—定数量的内存。 2.2 分区式存储管理 为了支持多道程序系统和分时系统,支持多个程序并发执行,引入了分区式存储管理。分区式存储管理是把内存分为一些大小相等或不等的分区,操作系统占用其中一个分区,其余的分区由应用程序使用,每个应用程序占用一个或几个分区。分区式存储管理虽然可以支持并发,但难以进行内存分区的共享。 分区式存储管理引人了两个新的问题:内碎片和外碎片。 内碎片是占用分区内未被利用的空间,外碎片是占用分区之间难以利用的空闲分区(通常是小空闲分区)。 为实现分区式存储管理,操作系统应维护的数据结构为分区表或分区链表。表中各表项一般包括每个分区的起始地址、大小及状态(是否已分配)。

分区式存储管理常采用的一项技术就是内存紧缩(compaction)。 2.2.1 固定分区(nxedpartitioning)。 固定式分区的特点是把内存划分为若干个固定大小的连续分区。分区大小可以相等:这种作法只适合于多个相同程序的并发执行(处理多个类型相同的对象)。分区大小也可以不等:有多个小分区、适量的中等分区以及少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。 优点:易于实现,开销小。 缺点主要有两个:内碎片造成浪费;分区总数固定,限制了并发执行的程序数目。 2.2.2动态分区(dynamic partitioning)。 动态分区的特点是动态创建分区:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小。与固定分区相比较其优点是:没有内碎

32位系统与4G内存限制的瓜葛

32位系统与4G内存限制的关系-32位系统真的只能用4G内存吗 32位系统与4G内存限制的关系-32位系统真的只能用4G内存吗? 为了这个32位系统与4G内存限制关系的问题,我们按顺序看看如下的分析。1、硬件。从硬件上讲,内存访问寻址,主要在CPU,CPU主要在寄存器(GPR)。32位的系统,指的是32位的CPU,也就是指32位的寄存器。 32位寄存器的寻址能力是2的32次方,这个是没错的,就是4GB。 但是10年前,32位的x86 奔腾pro处理器推出的时候,它的地址总线是多少位寻址?36位。整整多了2的4次方。也就是16倍。所以,这个32位的奔腾pro 处理器,可以寻址64GB。4GB的16倍,也就是64GB。 这个叫做PAE, 物理地址扩展。也叫PAE-36bit。 通过这个技术手段,32位系统进行了扩展,CPU(寄存器)对内存的寻址,可以到64GB。 2、既然32位系统的硬件可以寻址64GB。那么32位的操作系统当然应该有办法。32位操作系统肯定也有办法,沿着PAE的路,使用64GB内存。————————————— 标准的32 位地址最多可映射 4 GB 内存。因此,32 位进程的标准地址空间限制为4 GB。默认情况下,在32 位Microsoft Windows 操作系统中,将为操作系统保留2 GB 空间,另外 2 GB 空间可由应用程序使用。如果在Windows 2000 Advanced Server 的Boot.ini 文件中指定了/3gb参数,则操作系统将仅保留1 GB 的地址空间,应用程序最多可以访问3 GB 的空间。——————————————————————————– AWE 是Windows 的内存管理功能的一组扩展,它使应用程序(基于用户模式)能够使用的内存量超过通过标准32 位寻址可使用的2-3 GB 内存。AWE 允许应用程序获取物理内存,然后将非分页内存的视图动态映射到32 位地址空间。虽然32 位地址空间限制为4 GB,但是非分页内存却可以远远大于4 GB。这使需要大量内存的应用程序(如大型数据库系统)能使用的内存量远远大于32 位地址空间所支持的内存量。

linux内存管理子系统 笔记

4-4 linux内存管理子系统 4-4-1 linux内存管理(参考课件) 物理地址:cpu地址总线上寻址物理内存的地址信号,是地址变换的最终结果 逻辑地址:程序代码经过编译后,出现在汇编程序中的地址(程序设计时使用的地址) 线性地址:又名虚拟地址,32位cpu架构下4G地址空间 CPU要将一个逻辑地址转换为物理地址,需要两步: 1、首先CPU利用段式内存管理单元,将逻辑地址转换成线性地址; 2、再利用页式内存管理单元,把线性地址最终转换为物理地址 相关公式: 逻辑地址=段基地址+段内偏移量(段基地址寄存器+段偏移寄存器)(通用的) 16位CPU:逻辑地址=段基地址+段内偏移量(段基地址寄存器+段偏移寄存器) 线性地址=段寄存器的值×16+逻辑地址的偏移部分 物理地址=线性地址(没有页式管理) 32位CPU:逻辑地址=段基地址+段内偏移量(段基地址寄存器+段偏移寄存器) 线性地址=段寄存器的值+逻辑地址的偏移部分 物理地址<——>线性地址(mapping转换) ARM32位:逻辑地址=段基地址+段内偏移量(段基地址寄存器+段偏移寄存器) 逻辑地址=段内偏移量(段基地址为0) 线性地址=逻辑地址=段内偏移量(32位不用乘以32) 物理地址<——>线性地址(mapping转换) ************************!!以下都是x86模式下!!********************************* 一、段式管理 1.1、16位CPU:(没有页式管理) 1.1.1、段式管理的由来: 16位CPU内部有20位地址总线,可寻址2的20次方即1M的内存空间,但16位CPU 只有16位的寄存器,因此只能访问2的16次方即64K。因此就采用了内存分段的管理模式,在CPU内部加入了段寄存器,这样1M被分成若干个逻辑段,每个逻辑段的要求如下: 1、逻辑段的起始地址(段地址)必须是16的整数倍,即最后4个二进制位须全是0 (因此不必保存)。 2、逻辑段的最大容量为64K。 1.1.2、物理地址的形成方式: 段地址:将段寄存器中的数值左移4位补4个0(乘以16),得到实际的段地址。 段偏移:在段偏移寄存器中。 1)逻辑地址=段基地址+段内偏移量(段基地址寄存器+段偏移寄存器) 2)由逻辑地址得到物理地址的公式为:(因为没有页式管理,所以这一步就得到了物理地址)物理地址PA=段寄存器的值×16+逻辑地址的偏移部分(注意!!)(段与段可能会重叠)

解决系统内存不能为 Read 的方法(新添附件,不断收集中……)

运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。 “0x????????”指令引用的“0x????????”内存。该内存不能为“read”。 “0x????????”指令引用的“0x????????”内存,该内存不能为“written”。 总结我见过的内存不能为Read 问题,问题原因可以归纳为以下几点: 1、驱动不稳定,与系统不兼容,这最容易出现内存不能为Read 或者文件保护 2、系统安装了一个或者多个流氓软件,这出现IE 或者系统崩溃的机会也比较大,也有可能出现文件保护 3、系统加载的程序或者系统正在运行的程序之前有冲突,尤其是部分杀毒软件监控程序 4、系统本身存在漏洞,导致容易受到网络攻击。 5、病毒问题也是主要导致内存不能为Read、文件保护、Explorer.exe 错误…… 6、如果在玩游戏时候出现内存不能为Read,则很大可能是显卡驱动不适合(这里的不适合有不适合该游戏、不适合电脑的显卡),也有可能是DX9.0C 版本不够新或者不符合该游戏、显卡驱动 7、部分软件本身自身不足的问题 8、电脑硬件过热,也是导致内存不能为Read 的原因之一。 9、电脑内存与主板兼容性不好也是导致内存不能为Read 的致命原因! 希望以上总结能够对大家判断导致内存不能为Read 问题的原因有帮助。 分析: 一般来说,电脑硬件是很不容易坏的。内存出现问题的可能性并不大(除非你的内存真的是杂牌的一塌徒地),主要方面是:1。内存条坏了(二手内存情况居 多)、2。使用了有质量问题的内存,3。内存插在主板上的金手指部分灰尘太多。4。使用不同品牌不同容量的内存,从而出现不兼容的情况。5。超频带来的散 热问题。你可以使用MemT est 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。 二、如果都没有,那就从软件方面排除故障了。 先说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内 存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永远都招之即来、 用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知, 告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健 壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,继续在之后的执行中使用这块内存。真正的0地址内存区储存 的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健 壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就

操作系统内存管理系统

操作系统存管理 1. 存管理方法 存管理主要包括虚地址、地址变换、存分配和回收、存扩充、存共享和保护等功能。 2. 连续分配存储管理方式 连续分配是指为一个用户程序分配连续的存空间。连续分配有单一连续存储管理和分区式储管理两种方式。 2.1 单一连续存储管理 在这种管理方式中,存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的操作系统。CP/M和DOS 2.0以下就是采用此种方式。这种方式的最大优点就是易于管理。但也存在着一些问题和不足之处,例如对要求存空间少的程序,造成存浪费;程序全部装入,使得很少使用的程序部分也占用—定数量的存。

2.2 分区式存储管理 为了支持多道程序系统和分时系统,支持多个程序并发执行,引入了分区式存储管理。分区式存储管理是把存分为一些大小相等或不等的分区,操作系统占用其中一个分区,其余的分区由应用程序使用,每个应用程序占用一个或几个分区。分区式存储管理虽然可以支持并发,但难以进行存分区的共享。 分区式存储管理引人了两个新的问题:碎片和外碎片。 碎片是占用分区未被利用的空间,外碎片是占用分区之间难以利用的空闲分区(通常是小空闲分区)。 为实现分区式存储管理,操作系统应维护的数据结构为分区表或分区链表。表中各表项一般包括每个分区的起始地址、大小及状态(是否已分配)。 分区式存储管理常采用的一项技术就是存紧缩(compaction)。

2.2.1 固定分区(nxedpartitioning)。 固定式分区的特点是把存划分为若干个固定大小的连续分区。分区大小可以相等:这种作法只适合于多个相同程序的并发执行(处理多个类型相同的对象)。分区大小也可以不等:有多个小分区、适量的中等分区以及少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。 优点:易于实现,开销小。 缺点主要有两个:碎片造成浪费;分区总数固定,限制了并发执行的程序数目。 2.2.2动态分区(dynamic partitioning)。 动态分区的特点是动态创建分区:在装入程序时按其初始要求分配,或在其执行过程过系统调用进行分配或改变分区大小。与固定分区相比较其优点是:没有碎片。但它却引入了另一种碎片——外碎片。动态分区的分区分配就是寻找某个空闲分区,其大小需大于或等于程序的要求。若是大于要求,则将该分区分割成两个分区,其中一个分区为要

操作系统课程设计内存管理

内存管理模拟 实验目标: 本实验的目的是从不同侧面了解Windows 2000/XP 对用户进程的虚拟内存空间的管理、分配方法。同时需要了解跟踪程序的编写方法(与被跟踪程序保持同步,使用Windows提供的信号量)。对Windows分配虚拟内存、改变内存状态,以及对物理内存(physical memory)和页面文件(pagefile)状态查询的API 函数的功能、参数限制、使用规则要进一步了解。 默认情况下,32 位Windows 2000/XP 上每个用户进程可以占有2GB 的私有地址空间,操作系统占有剩下的2GB。Windows 2000/XP 在X86 体系结构上利用二级页表结构来实现虚拟地址向物理地址的变换。一个32 位虚拟地址被解释为三个独立的分量——页目录索引、页表索引和字节索引——它们用于找出描述页面映射结构的索引。页面大小及页表项的宽度决定了页目录和页表索引的宽度。 实验要求: 使用Windows 2000/XP 的API 函数,编写一个包含两个线程的进程,一个线程用于模拟内存分配活动,一个线程用于跟踪第一个线程的内存行为,而且要求两个线程之间通过信号量实现同步。模拟内存活动的线程可以从一个文件中读出要进行的内存操作,每个内存操作包括如下内容: 时间:操作等待时间。 块数:分配内存的粒度。 操作:包括保留(reserve)一个区域、提交(commit)一个区域、释放(release)一个区域、回收(decommit)一个区域和加锁(lock)与解锁(unlock)一个区域,可以将这些操作编号存放于文件。保留是指保留进程的虚拟地址空间,而不分配物理 存储空间。提交在内存中分配物理存储空间。回收是指释放物理内存空间,但在虚拟地址空间仍然保留,它与提交相对应,即可以回收已经提交的内存块。释放是指将物理存储和虚拟地址空间全部释放,它与保留(reserve)相对应,即可以释放已经保留的内存块。 大小:块的大小。 访问权限:共五种,分别为PAGE_READONLY,PAGE_READWRITE ,PAGE_EXECUTE,PAGE_EXECUTE_READ 和PAGE EXETUTE_READWRITE。可以将这些权限编号存放于文件中跟踪线程将页面大小、已使用的地址范围、物理内存总量,以及虚拟内存总量等信息显示出来。

让WINXPVistaWin7等32位x86系统完美支持4G以上内存

【XP系统】 4G内存已经成为很多中高档笔记本电脑的标准配置。前两篇文章介绍了WIN7系统4G内存的破解过程和4G内存的完美利用。但是,很多朋友还是习惯用32位XP系统。那么能不能让32位XP系统也能完美支持4G内存呢,当然也是可以的。今天,我们就来介绍如何在32位XP系统完美破解4G内存限制。 第一步、开启PAE 要破解32位XP系统4G内存限制,先要开启PAE (Physical Address Extension物理地址扩展)。打开Everest,看看主板的内存选项中,最后一项Physical Address Extension(PAE)下的“操作系统支持”“处理器支持”是否为“是。如果为“是”,恭喜您,您能够开启PAE。

要开启PAE并不难,只要简单编辑引导文件即可。在C盘中,点击工具-文件夹选项,在文件夹选项窗口中的查看选项,去掉“隐藏受保护的操作系统文件”前面的勾选,选择“显示所有文件和文件夹”。点击确定后,就会显示全部隐藏文件。

右键点击红圈中的boot文件,点击属性,去掉“只读”前面的勾选,点击确定退出,就可以对其进行编辑了。

用记事本打开这个boot文件,在其中的 “multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect”一行中间加入PAE,成为: “multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Win dows XP Professional" /PAE /noexecute=optin /fastdetect”。注意PAE后要有一个空格。 这里partition(1)表示您的XP系统安装在第一个分区即C盘,我是安装在第六个分区,所以是partition(6) 。

操作系统内存管理原理

内存分段和请求式分页 在深入i386架构的技术细节之前,让我们先返回1978年,那一年Intel 发布了PC处理器之母:8086。我想将讨论限制到这个有重大意义的里程碑上。如果你打算知道更多,阅读Robert L.的80486程序员参考(Hummel 1992)将是一个很棒的开始。现在看来这有些过时了,因为它没有涵盖Pentium处理器家族的新特性;不过,该参考手册中仍保留了大量i386架构的基本信息。尽管8086能够访问1MB RAM的地址空间,但应用程序还是无法“看到”整个的物理地址空间,这是因为CPU寄存器的地址仅有16位。这就意味着应用程序可访问的连续线性地址空间仅有64KB,但是通过16位段寄存器的帮助,这个64KB大小的内存窗口就可以在整个物理空间中上下移动,64KB逻辑空间中的线性地址作为偏移量和基地址(由16位的段寄存器给处)相加,从而构成有效的20位地址。这种古老的内存模型仍然被最新的Pentium CPU支持,它被称为:实地址模式,通常叫做:实模式。 80286 CPU引入了另一种模式,称为:受保护的虚拟地址模式,或者简单的称之为:保护模式。该模式提供的内存模型中使用的物理地址不再是简单的将线性地址和段基址相加。为了保持与8086和80186的向后兼容,80286仍然使用段寄存器,但是在切换到保护模式后,它们将不再包含物理段的地址。替代的是,它们提供了一个选择器(selector),该选择器由一个描述符表的索引构成。描述符表中的每一项都定义了一个24位的物理基址,允许访问16MB RAM,在当时这是一个很不可思议的数量。不过,80286仍然是16位CPU,因此线性地址空间仍然被限制在64KB。 1985年的80386 CPU突破了这一限制。该芯片最终砍断了16位寻址的锁链,将线性地址空间推到了4GB,并在引入32位线性地址的同时保留了基本的选择器/描述符架构。幸运的是,80286的描述符结构中还有一些剩余的位可以拿来使用。从16位迁移到32位地址后,CPU的数据寄存器的大小也相应的增加了两倍,并同时增加了一个新的强大的寻址模型。真正的32位的数据和地址为程序员带了实际的便利。事实上,在微软的Windows平台真正完全支持32位模型是在好几年之后。Windows NT的第一个版本在1993年7月26日发布,实现了真正意义上的Win32 API。但是Windows 3.x程序员仍然要处理由独立的代码和数据段构成的64KB内存片,Windows NT提供了平坦的4GB地址空间,在那儿可以使用简单的32位指针来寻址所有的代码和数据,而不需要分段。在内部,当然,分段仍然在起作用,就像我在前面提及的那样。不过管理段的所有责任都被移给了操作系统。

RamDisk使用32位win78G以上内存图文教程

32bit win7用上8G以上内存,附教程 本文整理自网络8G内存,32bit win7,用RamDisk,实现3.25G物理内存+4.67G虚拟硬盘(留点给寻址) 3.25G的物理内存都给系统,很少说不够用,剩下的都做虚拟硬盘,虚拟硬盘干嘛设这么大,下面有说明。

把日常的软件拉进去,QQ,浏览器,迅雷看看,快播等,设置ramdisk后,电脑重启后不会留任何痕迹,特别是浏览器,还设置了临时文件夹在虚拟硬盘,不会残留文件在硬盘上,减少硬盘的读写,和QQ打开的速度也相比在硬盘上快多了,迅雷看看和快播也一样,一般网络电影都是边看边下载的,现在看电影很少说要保留下来,而且珍藏也只是720P或1080P,把他们临时文件设到虚拟硬盘,电脑重启后文件就会自动消失,既不会下载在硬盘上也不需要你手工去删除,上面的电影是我拉进去筹够4.67G证明这虚拟硬盘是能用的,平时,我喜欢压制电影,制作VCD光碟,临时的文件我又可以放在虚拟硬盘上,一般刻完我就会不要这些临时文件的。还有平时迅雷下载,网页下载的东西也可以暂时放在虚拟硬盘,一般的软件,歌,试用之后觉得不好,大不了不用理,重启后又不见了,不用像以前那样找回下载文件夹删除。如果你的虚拟硬盘不够大,而你又设置了系统临时文件在虚拟硬盘,有时解压或者装软件时系统就会出现出错,如果足够大了,一般就可以放心,至于网友担心的系统不稳定,我用了半年没问题,游戏也一样。尝试跑OR 1个小时正常。

当然,既然是有硬盘功效,那虚拟内存设置在虚拟硬盘上也是可以的,挺讽刺的,微软搞了个虚拟内存占用硬盘,虽然经常读写谈不上伤硬盘,我个人总觉得很不爽,专业术语解释不写,直观来讲,好好的物理内存不用,搞我硬盘!我偏要你用回物理内存。 如果你有时既压制影片,同时上网,听歌,QQ,下载,那虚拟硬盘的4.67有时是刚足够你满足,当然,这只是根据我个人需求,有人设个512M也是够用的。 这虚拟硬盘的测试成绩还很惊人,理论成绩,软件运行还跟不上,还有很多很多的日常运用,这里就不多提了,其实个人觉得暂时最好设置就是SSD+虚拟内存,这样就能达到“纳秒”开了,哈哈,开玩笑的,有时还得看软件本身运行,目前双系统在运行,32位xp也是可以实现的,也许64位是今后潮流,把握现在的32位才是最重要的,毕竟还有很多好用的、经典的日常软件我暂时都未发现有64位,我喜欢的云端(很好用的软件,有空发帖介绍)就是一个例子。 最近比较忙,趁有时间上几张测试图

操作系统内存管理

操作系统内存管理 1. 内存管理方法 内存管理主要包括虚地址、地址变换、内存分配和回收、内存扩充、内存共享和保护等功能。 2. 连续分配存储管理方式 连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。 2.1 单一连续存储管理 在这种管理方式中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的操作系统。CP /M和DOS 2.0以下就是采用此种方式。这种方式的最大优点就是易于管理。但也存在着一些问题和不足之处,例如对要求内存空间少的程序,造成内存浪费;程序全部装入,使得很少使用

的程序部分也占用—定数量的内存。 2.2 分区式存储管理 为了支持多道程序系统和分时系统,支持多个程序并发执行,引入了分区式存储管理。分区式存储管理是把内存分为一些大小相等或不等的分区,操作系统占用其中一个分区,其余的分区由应用程序使用,每个应用程序占用一个或几个分区。分区式存储管理虽然可以支持并发,但难以进行内存分区的共享。 分区式存储管理引人了两个新的问题:内碎片和外碎片。 内碎片是占用分区内未被利用的空间,外碎片是占用分区之间难以利用的空闲分区(通常是小空闲分区)。 为实现分区式存储管理,操作系统应维护的数据结构为分区表或分区链表。表中各表项一般包括每个分区的起始地址、大小及状态(是否已分配)。 分区式存储管理常采用的一项技术就是内存紧缩

(compaction)。 2.2.1 固定分区(nxedpartitioning)。 固定式分区的特点是把内存划分为若干个固定大 小的连续分区。分区大小可以相等:这种作法只适合于多个相同程序的并发执行(处理多个类型相同的对象)。分区大小也可以不等:有多个小分区、适量的中等分区以及少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。 优点:易于实现,开销小。 缺点主要有两个:内碎片造成浪费;分区总数固定,限制了并发执行的程序数目。 2.2.2动态分区(dynamic partitioning)。 动态分区的特点是动态创建分区:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小。与固定分区相比较其优点是:没有内碎片。但它却引入了另一种碎片——外碎片。动态分区的分区分配就是寻找某个空闲分区,其大小需大于或等于程序的要求。

windows操作系统内存管理方式综述

一页式管理 1 页式管理的基本原理将各进程的虚拟空间划分成若干个长度相等的页(page),页式管理把内存空间按页的大小划分成片或者页面(page frame),然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。页式管理采用请求调页或预调页技术实现了内外存存储器的统一管理。 它分为 1 静态页式管理。静态分页管理的第一步是为要求内存的作业或进程分配足够的页面。系统通过存储页面表、请求表以及页表来完成内存的分配工作。静态页式管理解决了分区管理时的碎片问题。但是,由于静态页式管理要求进程或作业在执行前全部装入内存,如果可用页面数小于用户要求时,该作业或进程只好等待。而且作业和进程的大小仍受内存可用页面数的限制。 2 动态页式管理。动态页式管理是在静态页式管理的基础上发展起来的。它分为请求页式管理和预调入页式管理。 优点:没有外碎片,每个内碎片不超过页大小。一个程序不必连续存放。便于改变程序占用空间的大小(主要指随着程序运行而动态生成的数据增多,要求地址空间相应增长,通常由系统调用完成而不是操作系统自动完成)。 缺点:程序全部装入内存。 要求有相应的硬件支持。例如地址变换机构,缺页中断的产生和选择淘汰页面等都要求有相应的硬件支持。这增加了机器成本。增加了系统开销,例如缺页中断处理机,请求调页的算法如选择不当,有可能产生抖动现象。虽然消除了碎片,但每个作业或进程的最后一页内总有一部分空间得不到利用果页面较大,则这一部分的损失仍然较大。 二段式管理的基本思想 把程序按内容或过程(函数)关系分成段,每段有自己的名字。一个用户作业或进程所包含的段对应一个二维线形虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址影射机构把段式虚拟地址转换为实际内存物理地址。 程序通过分段(segmentation)划分为多个模块,如代码段、数据段、共享段。其优点是:可以分别编写和编译。可以针对不同类型的段采取不同的保护。可以按段为单位来进行共享,包括通过动态链接进行代码共享。 三段页式管理的实现原理 1 虚地址的构成 一个进程中所包含的具有独立逻辑功能的程序或数据仍被划分为段,并有各自的段号s。这反映相继承了段式管理的特征。其次,对于段s中的程序或数据,则按照一定的大小将其划分为不同的页。和页式系统一样,最后不足一页的部分仍占一页。这反映了段页式管理中的页式特征。从而,段页式管理时的进程的虚拟地址空间中的虚拟地址由三部分组成:即段号s,页号P和页内相对地址d。虚拟空间的最小单位是页而不是段,从而内存可用区也就被划分成为着干个大小相等的页面,且每段所拥有的程序和数据在内存中可以分开存放。分段的大小也不再受内存可用区的限制。 2 段表和页表

WIN7 32位 内存破解

第1页:为什么32位Win7不能用4GB内存? 随着Windows 7操作系统的发布,越来越多的用户开始体验到该系统的优势。不过目前32位操作系统从XP时代就不支持4GB容量内存,也使得很多用户开始不敢购买4GB内存,以免浪费。其实Vista和Win7本身是可以支持4GB容量内存的,只是通过程序将其锁定,那么下面笔者就教您一个小窍门来避开这个锁,可以让Win7完美支持4GB内存。 虽然现在64位操作系统可以很好的支持大容量内存,但是我们不得不提到现在64位的软件还不是非常的多,而且Vista和Win7的64位版本在兼容性上还是有所不足。另一反面,由于现在内存价格的走低,4GB容量内存价格已经不是绊脚石,所以4GB容量内存也已经成为主流配置。但是令用户苦恼的是,32位Windows7和Vista不允许使用4GB内存。 4GB DDR3内存需要64位系统么? 其实不足4GB内存的原因就在32位X86架构。32位X86架构是指个人电脑的地址总线是32位的,CPU、内存控制器、操作系统都是按32位地址总线设计。32位地址总线可以支持的内存地址代码是4096MB。这4GB个地址码正好可以分配给4GB内存。但是其它寄存器都需要系统分配给它们地址代码,所以总容量为4GB的内存就有一部分内存分配不到地址代码而不能使用。

内存仅使用3.25GB 其实,Vista/Win7自身完全支持超过4GB大内存,只是微软不让使用而已。但其实在Win7上可以通过程序破解Windows PAE内核文件ntkrnlpa.exe,绕过Zw Query License Value API 函数的许可限制,让32位的VISTA/Win7支持超过4GB物理内存,下面笔者就教您如何破解4GB内存之谜。 第2页:Win7破解4GB内存轻松三步搞定 918 首先,我们需要下载一款名叫Readyfor 4GB的软件,用户可以在搜索工具上搜索,下载地址有很多。 Readyfor 4GB软件

计算机操作系统内存管理系统可变分区存储管理方式的内存分配回收

课程设计2 可变分区存储管理方式的内存分配回收 一、课程设计目的 深入了解采用可变分区存储管理方式的内存分配回收的实现。 二、预备知识 存储管理中可变分区的管理方式。 三、小组成员 四、课程设计内容 编写程序完成可变分区存储管理方式的内存分配回收。 具体包括:确定内存空间分配表; 采用最优适应算法完成内存空间的分配和回收; 编写主函数对所做工作进行测试。 五、设计思路: 整体思路: 可变分区管理方式将内存除操作系统占用区域外的空间看做一个大的空闲区。当作业要求装入内存时,根据作业需要内存空间的大小查询内存中的各个空闲区,当从内存空间中找到一个大于或等于该作业大小的内存空闲区时,选择其中一个空闲区,按作业需求量划出一个分区装人该作业,作业执行完后,其所占的内存分区被收回,成为一个空闲区。如果该空闲区的相邻分区也是空闲区,则需要将相邻空闲区合并成一个空闲区。 设计所才用的算法: 采用最优适应算法,每次为作业分配内存时,总是把既能满足要求、又是最小的空闲分区分配给作业。但最优适应算法容易出现找到的一个分区可能只比作业所需求的长度略大一点的情行,这时,空闲区分割后剩下的空闲区就很小以致很难再使用,降低了内存的使用率。为解决此问题,设定一个限值minsize,如果空闲区的大小减去作业需求长度得到的值小于等于minsize,不再将空闲区分成己分分区和空闲区两部分,而是将整个空闲区都分配给作业。

内存分配与回收所使用的结构体: 为便于对内存的分配和回收,建立两张表记录内存的使用情况。一张为记录作业占用分区的“内存分配表”,内容包括分区起始地址、长度、作业名/标志(为0时作为标志位表示空栏目);一张为记录空闲区的“空闲分区表”,内容包括分区起始地址、长度、标志(0表空栏目,1表未分配)。两张表都采用顺序表形式。 关于分配留下的内存小碎片问题: 当要装入一个作业时,从“空闲分区表”中查找标志为“1”(未分配)且满足作业所需内存大小的最小空闲区,若空闲区的大小与作业所需大小的差值小于或等于minsize,把该分区全部分配给作业,并把该空闲区的标志改为“0”(空栏目)。同时,在已分配区表中找到一个标志为“0”的栏目登记新装人作业所占用分区的起始地址,长度和作业名。若空闲区的大小与作业所需大小的差值大于minsize。则把空闲区分成两部分,一部分用来装入作业,另外一部分仍为空闲区。这时只要修改原空闲区的长度,且把新装人的作业登记到已分配区表中。 内存的回收: 在可变分区方式下回收内存空间时,先检查是否有与归还区相邻的空闲区(上邻空闲区,下邻空闲区)。若有,则将它们合件成一个空闲区。程序实现时,首先将要释放的作业在“内存分配表”中的记录项的标志改为“0”(空栏目),然后检查“空闲区表”中标志为‘1’(未分配)的栏目,查找是否有相邻的空闲区,若有,将之合并,并修改空闲区的起始地址和长度。 六:数据结构 (1)已分配表的定义: struct {float address; //已分分区起始地址 float length; //已分分区长度,单位为字节 int flag; //已分配区表登记栏标志,"0"表示空栏目,实验中只支持一个字符的作业名

Win7内存占用高—怎么节省电脑Win7系统内存

Win7内存占用高—怎么节省电脑Win7系统内存 Win7系统在启动的过程中会启动许多服务,它们会占用一部分系统资源,事实上,有些服务大家根本不需要使用,因此,管理员可以关闭多余的服务,以节省内存。 节省Win7系统资源内存的办法: 1:单击按钮,在搜索框输入“服务”,然后在“程序”列表中选择“服 务”选项。 2:打开服务窗口后,双击要停用的服务。 3:打开“属性”对话框后,在“常规”选项卡中的“描述”区域查看该服务的作用,然后打开“依存关系”选项卡,查看该服务与其他服务的依存关系,如图1-1所示: 图1-1 在确定该服务不需使用而且停用后不会影响系统正常运行的情况下,在“常规”选项卡下禁用该服务。如图1-2所示:

图1-2 关于各项服务的功能,在服务的“描述”区域中有简单说明,此外,也可以通过互联网查找相关的资料。下面列举几个普通不常用的服务: 1:Adaptive brightness:监视氛围光传感器,以检测氛围光的变化并调节显示器的亮度。停止或禁用此服务后,显示器亮度将不根据照明条件进行调节。该服务的默认运行方式是手动,如果没有使用触摸屏这一类智能调节屏幕亮度的设备,就可以放心禁用该功能。 2:Bluetooth Support Service:蓝牙功能支持,如果电脑不连接蓝牙设备,可以停用该服务。 3:Certificate Propagation:智能卡证书支持,对于未配置智能卡的电脑而言,该服务没有任何作用。 4:Print Spooler:这项服务主要为打印功能提供支持,如果电脑没有安装打印机并且不需要使用虚拟打印功能,可关闭该服务。 更多WIN7系统下载敬请关注windows7之家

32位win7操作系统使用4G内存的处理

32位win7操作系统使用4G内存的处理 虽然现在64位操作系统可很好的支持大容量内存,但得提到64位的软件不是非常多,而且Vista和Win7的64位版本在兼容性上还有所不足。相反,由于现在内存价格走低,4GB 容量内存价格已不是绊脚石,已成主流配置。但32位Windows7和Vista不许使用4GB内存。 其实,Vista/Win7自身完全支持超过4GB大内存,微软不让使用。但Win7上可通过程序破解Windows PAE内核文件ntkrnlpa.exe,绕过Zw Query License Value API函数的许可限制,让32位的VISTA/Win7支持超过4GB物理内存。 具体操作如下: 1下载一款名叫Readyfor 4GB的软件,可在搜索工具上搜索下载地址。 2 下载解压后,先运行Readyfor 4GB,当程序打开后,依次点击检查和应用选项,此时程序会告诉你所用系统能够支持最大内存容量和当前内存容量。一下的图片是笔者已经破解后所示,最大允许4GB内存。 然后运行压缩包里面的AddBootMenu程序,当弹出对话框时,输入Y回车即可,此时系统提示破解操作成功完成。

依次选择我的电脑右键→属性→高级系统设置→启动和故障恢复→设置→选择那个破解的启动系统就可以,如下图。 5 最后重新启动计算机,在选择我的电脑属性后,内存被识别成4GB容量,如下图所示

6最后重新启动计算机,在选择我的电脑属性后,内存被识别成4GB容量,如下图所示

从测试中看出,虽然64位Windows7可完美支持4GB容量内存,但是成绩和32位Windows7并没有多大变化,可见没有良好64位软件的支持,根本无法发挥64位操作系统的性能。 全文总结:通过简单的三步可让最常用32位Win7支持到4GB内存,对拥有4GB以上内存用户是好消息。虽然64位操作系统的Windows 7可支持更大容量内存,但是仅在4GB 容量上并没领先破解后的32位Win7,所以想通过64位Win7支持4GB容量内存的用户暂 不必升级,毕竟现在兼容上64bit还存在一些兼容问题,所以感性用户可体验这种方法。

系统内存不足怎么办

系统“内存不足”怎么办 老是内存不足,怎么解决?教你几招吧! 一、剪贴板占用了太多的内存 实际上,剪贴板是内存中的一块临时区域,当你在程序中使用了“复制”或“剪切”命令后,Windows将把复制或剪切的内容及其格式等信息暂时存储在剪贴板上,以供“粘贴”使用。如果当前剪贴板中存放的是一幅图画,则剪贴板就占用了不少的内存。这时,请按下述步骤清除剪贴板中的内容,释放其占用的内存资源: 1.单击“开始”,指向“程序”或“所有程序”,指向“附件”,指向“系统工具”,然后单击“剪贴板查看程序”,打开“剪贴板查看程序”窗口。 2.在“编辑”菜单上,单击“删除”命令。 3.关闭“剪贴板查看程序”窗口。 为了与Microsoft Office程序提供的多重剪贴板相区分,上述所说的剪贴板,常被我们称为系统剪贴板。如果你正在使用Micros OftOffice程序,而且使用了其多重剪贴板功能,那么你应清空癘ffice剪贴板”上的项目,方法是:在“Office剪贴板”任务窗格(OfficeXP)或工具栏(Office2000)上,单击“全部清空”或“清空‘剪贴板’”。当清空“Office剪贴板”时,系统剪贴板也将同时被清空。 二、打开的程序太多 如果同时打开的文档过多或者运行的程序过多,就没有足够的内存运行其他程序。这时,对于多文档界面(MDl)程序,如Word、Excel等,请关闭当前文档外的所有文档,并退出当前未使用的程序,然后或许你就能够继续执行因“内存不足”而被中断的任务。 三、重新启动计算机 如果只退出程序,并不重新启动计算机,程序可能无法将内存资源归还给系统。请重新启动计算机以释放系统资源,然后再次运行程序或执行被中断的任务。 四、自动运行的程序太多 如果在启动Windows时自动运行的程序太多,那么,即使重新启动计算机,也没足够的内存用来运行其它程序。 (一)确定设置为自动运行的程序是否太多 1.单击“开始”,然后单击“运行”。

Win7等32位系统无法使用4G内存的原因及解决方法-理论篇

前几天给笔记本加到了4G内存,虽然自带的WIN7 32位系统能认出4G,但实际只能用到2.99G,如下图: 这不是浪费了足足1G内存?用GOOGLE搜了下,很多人说ReadyFor4GB这个软件可以破解Win7/Vista 无法支持4G内存的限制,但也有很多人持怀疑态度,粗略想下,同样的32位系统Win2008、Win2003 等系统不是能支持4G/4G以上的内存吗?WIN7、Vista、XP又凭什么不明不白的吃掉了我们差不多1G的内存呢?现在让我们一起来讨论这个问题,解开32 位系统无法支持4G之迷,测试ReadyFor4GB这个软件是否有效?以及其它的解决方法。 下面我们先看看微软对于这个问题的说法: http://support.mic ROS https://www.doczj.com/doc/ac11163930.html,/kb/929605/zh-tw ------------------------------------ 发生原因: 這種行為是某些硬體和軟體因素的預期結果。 一般電腦中的多種裝置都需要進行記憶體對應存取。這就稱為記憶體對應 I/O (MMIO)。為了使 MMIO 空間可供 32 位元作業系統使用,MMIO 空間必須位於位址空間的最前面 4 GB 之內。 例如,如果您擁有具 256 MB 內建記憶體的視訊卡,該記憶體就必須對應至位址空間的最前面 4 GB 之內。如果已經安裝了 4 GB 的系統記憶體,該位址空間的一部分就必須保留給圖形記憶體對應。圖形記憶體對應會覆寫系統記憶體的一部分。這些情況會減少可供作業系統使用之系統記憶體的總量。 可用系統記憶體所減少的數量,會取決於電腦中所安裝的裝置。然而,為了避免發生驅動程式相容性的潛在問題,32 位元版本 Windows Vista 將可用的記憶體總量限制到 3.12 GB。如需有關驅動程式相容性潛在問題的資訊,請參閱<其他相關資訊>一節。 如果電腦具有許多已安裝的裝置,可用的記憶體數量就可能減少到 3 GB 或者更少。然而,32 位元版本 Windows Vista 的可用記憶體上限一般是 3.12 GB。

win732位占用多大内存

win732位占用多大内存 win74g内存够用吗? 如果是win7 32位系统那么4g内存够用,因为32位系统最大识别内存数为2^32个字节(3.25g),大于这个数的内存是不会被使用的。 如果是win7 64位的话,并且没有特殊需求,只是普通用户的话,4g内存也完全够用,如果是软件开发,画图等行业的话,只能是根据实际需要来进行内存增加了。 64位操作系统,用2g 内存也能使用,但比较慢 以个人经验论:64位系统,在8g内存时使用,比较流畅 如果达到16g内存,运行效果是比较理想的 所以,只用4g内存,运行系统是没有问题,只是使用感受方面, 还是会发生有“慢”的感觉。 win7介绍: windows 7 是由微软公司(microsoft)开发的操作系统,内核版本号为windows nt 6.1。 windows 7可供家庭及商业工作环境、笔记本电脑、平板电脑、多媒体中心等使用。windows 7也延续了windows vista的aero 风格,并且在此基础上增添了些许功能。 windows 7可供选择的版本有:入门版(starter)、家庭普通

版(home basic)、家庭高级版(home premium)、专业版(professional)、企业版(enterprise)(非零售)、旗舰版(ultimate)。 2009年7月14日,windows 7正式开发完成,并于同年10月22日正式发布。10月23日,微软于中国正式发布windows 7。 2015年1月13日,微软正式终止了对windows 7的主流支持,但仍然继续为windows 7提供安全补丁支持,直到2020年1月14日正式结束对windows 7的所有技术支持。 2015年,微软宣布自2015年7月29日起一年内(除企业版),外所有版本的windows 7 sp1均可以免费升级至windows 10。

操作系统原理-内存分配与回收

内存的动态存储管理 一、实验内容 编写程序实现动态分区存储管理方式的主存分配与回收。具体内容包括:首先确定主存空间分配表;然后采用最先适应算法完成主存空间的分配与回收;最后编写主函数对所做工作进行测试 二、实验原理 模拟存储管理中内存空间的管理和分配内存空间的管理分为固定分区管理方式,可变分区管理方式,页式存储管理,段式存储管理。 题目:模拟内存分配与回收 三、实验步骤(或过程) 在Microsoft Visual C++ 6.0环境下运行 1.设计一个空闲分区表,空闲分区表通过空闲分区链表来管理,在进行内存分配时,系统优先使用空闲分区低端的空间。 2.设计一个内存分区表,可用链表管理,用以表示当前以内存使用情况。 3.设计一个进程申请队列以及进程完成后的释放顺序,实现主存的分配和回收。 4.要求每次分配和回收后把空闲分区的变化情况以及各进程的申请、释放情况以及各进程的申请、释放情况以图形方式显示、打印出来。 最佳适应算法: 该算法总是把满足要求、又是最小的空闲区分配给作业。检查空闲区说明表是否有满足作业要求的空闲区,也分为三种情况:大于,等于,小于。若检查到有“等于”的情况,就可以直接分配,若没有,则继续检查是否有“大于”的情况

代码实现如下: #include #include #include #define n 64 //定义内存的大小 int a[n],count=0;//数组a用来保存内存使用状况1为已分配0为未分配,count用来记name 数组中元素个数 char name[n];//已分配内存的名称(字符类型) typedef struct linknode{ char pid; int start; int length; struct linknode *left,*right; }de_node; //进程节点结构体定义 //head1表示未分配内存队列头指针,head2便是已分配进程队列头指针 de_node *head1,*head2=NULL; struct linknode* creat()//创建一个进程节点 { int len,flag1=1;//用于表示进程是否可以创建 char id; struct linknode* p; p = (de_node *)malloc(sizeof(de_node));//试图在系统内存中开辟空间创建一个进程 if (p==NULL) //p为空,说明系统没有可用内存用于创建此模拟进程 { printf("系统没有足够的内存可供使用!\n");//输出 return(NULL);//返回空指针 } printf("请输入进程id(字符类型)和长度:");//为进程输入id和分配的长度 scanf("%c %d",&id,&len); fflush(stdin);//清除输入缓存 if((id>='a'&&id<='z'||id>='A'&&id<='Z')&&(len>0)){ for(int i=0;i

相关主题
文本预览
相关文档 最新文档