搜档网
当前位置:搜档网 › 磊科NW618升级64M内存焊盘脱落修复

磊科NW618升级64M内存焊盘脱落修复

磊科NW618升级64M内存焊盘脱落修复
磊科NW618升级64M内存焊盘脱落修复

磊科NW618升级64M内存焊盘脱落修复

前段时间沉迷于路由升级,打算参照网友的经验自己升级内存,并从淘宝上买了片三星64M SDR内存。但由于家里的工具实在是简陋,虽然对自己的焊功很有信心,不过最终结果还是焊盘脱落。一气之下就扔杂物堆了,折腾劲没了,所以最近从DW论坛入手了500U

这两天没事干,心想就死马当活马医吧,把NW618拿出来修复一下看有没有希望救活。当然这次得找个工具全点的地方。那就把PCBA拆拆下来去公司整吧。

工具先进了不少啊,呵呵。准备开工!

首先要先焊盘脱落的照片拍下来,我打印了一份出来,用于后面对线位。

接着将所有需要焊接的trace从端部刮绿漆。

需要从内存底部接线的先出线,这需要找一些比较细的镀锡铜线。并在显微镜下焊接。(前面一张图中右面一黄色箭头处未引出)

接着就是摆好内存芯片,位置固定好后,将下排左右两pin先焊接,用以固定。

的5根引线参照之前打印的图片并在上图位置刮除绝缘漆进行测试,蓝色的2根引线是接地

pin),OK后切断多余长度的镀锡铜线,接着就是其焊盘脱落的修复(同样使用镀锡铜线端接对应pin)经过漫长的焊接过程,焊盘脱落处终于修补完成了,确认一遍后,切断多余长度的镀锡铜线。最后下排引脚简单焊接以下。

马上插电测试,4个绿灯闪烁并熄灭之后红色wan指示灯亮起,接着不时闪烁(白色的灯不记得有没有亮)应该OK了,接着就找个软毛刷蘸酒精清洗助焊剂。

了。等段时间想折腾再说了。嘿嘿!

关于VB内存映射文件的使用

VB内存映射文件的使用 引言 文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,再以通常的文件处理方法进行处理显然是行不通的。目前,对于上述这种大文件的操作一般是以内存映射文件的方式来加以处理的,本文下面将针对这种Windows核心编程技术展开讨论。 内存映射文件 内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,只是内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而非系统的页文件,而且在对该文件进行操作之前必须首先对文件进行映射,就如同将整个文件从磁盘加载到内存。由此可以看出,使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件的回写以及释放内存块等步骤,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。另外,实际工程中的系统往往需要在多个进程之间共享数据,如果数据量小,处理方法是灵活多变的,如果共享数据容量巨大,那么就需要借助于内存映射文件来进行。实际上,内存映射文件正是解决本地多个进程间数据共享的最有效方法。 内存映射文件并不是简单的文件I/O操作,实际用到了Windows的核心编程技术--内存管理。所以,如果想对内存映射文件有更深刻的认识,必须对Windows操作系统的内存管理机制有清楚的认识,内存管理的相关知识非常复杂,超出了本文的讨论范畴,在此就不再赘述,感兴趣的读者可以参阅其他相关书籍。 内存映射文件使用方法 1) 首先要通过CreateFile()函数来创建或打开一个文件内核对象,这个对象标识了磁盘上将要用作内 存映射文件的文件。 2)在用CreateFile()将文件映像在物理存储器的位置通告给操作系统后,只指定了映像文件的路径, 映像的长度还没有指定。为了指定文件映射对象需要多大的物理存储空间还需要通过 CreateFileMapping()函数来创建一个文件映射内核对象以告诉系统文件的尺寸以及访问文件的方式。 3)在创建了文件映射对象后,还必须为文件数据保留一个地址空间区域,并把文件数据作为映射到该 区域的物理存储器进行提交。由MapViewOfFile()函数负责通过系统的管理而将文件映射对象的全部或部分映射到进程地址空间。此时,对内存映射文件的使用和处理同通常加载到内存中的文件数据的处理方式基本一样。 4)在完成了对内存映射文件的使用时,还要通过一系列的操作完成对其的清除和使用过资源的释放。 这部分相对比较简单,可以通过UnmapViewOfFile()完成从进程的地址空间撤消文件数据的映像、通过CloseHandle()关闭前面创建的文件映射对象和文件对象。 内存映射文件相关函数 在使用内存映射文件时,所使用的API函数主要就是前面提到过的那几个函数,下面分别对其进行介绍:

最新整理win7系统如何释放磁盘空间

w i n7系统如何释放磁盘空间 有时候磁盘空间装的东西太多了,造成电脑慢,那么w i n7系统如何释放磁盘空间的呢?下面是学习啦小编收集整理的w i n7系统如何释放磁盘空间,希望对大家有帮助~~ w i n7系统释放磁盘空间的方法 禁用休眠功能: 1W i n d o w s在默认设置下安装完成后会自动启用休眠功能,在系统分区的根目录下会自动创建一个名为 h i b e r f l e.s y s的文件,这个文件与物理内存的大小相同,对于不需要使用休眠功能的用户来说,可以禁用休眠功能 2选择开始--控制面板菜单命令,打开控制面板窗口,接着单击窗口中的硬件和声音链接,再单击窗口中的电源选项链接 3单击窗口左侧任务窗口格中的更改计算机睡眠时间链接,进入控制面板硬件和声音电源选项编辑计划设置窗口 4在此窗口中单击使计算机进入睡眠状态右侧的下三角按钮,选择从不选项,单击保存修改按钮即可使设置生

效。(如果是使用笔记本电脑,请将用电池和接通电源 两个选项都进行类似的设置) 清理磁盘: 1打开计算机窗口,然后在C盘(w i n7系统所在盘)上右击鼠标,从弹出的快捷菜单中选择属性命令 2切换到本地磁盘(C):属性对话框中的常规选项卡,再单击对话框右下角的磁盘清理按钮 3单击磁盘清理后,系统会开始自动扫描,扫描完毕后弹出磁盘清理对话框。在此对话框中选中休眠文件清理器复选框,并根据需要选中其它需要清理的一项或多项,然后单击确定按钮,弹出磁盘清理对话框,在此话框中单击删除文件按钮,即可将选中的项目清理干净 转移我的文档: 我的文档即用户(U s e r s)文件夹,它们的默认路径在系统根目录,随着用户的使用,系统所在分区中的硬盘空间会变小,如果系统盘的空间过小,会影响系统的正常运行。为了不影响系统的正常运行,可以将我的文档转移到其它磁盘来解决

内存映射文件

内存映射文件: 内存映射文件有三种,第一种是可执行文件的映射,第二种是数据文件的映射,第三种是借助页面交换文件的内存映射.应用程序本身可以使用后两种内存映射. 1.可执行文件映射: Windows在执行一个Win32应用程序时使用的是内存映射文件技术.系统先在进程地址空间的0x00400000以上保留一个足够大的虚拟地址空间(0x00400000以下是由系统管理的),然后把应用程序所在的磁盘空间作为虚拟内存提交到这个保留的地址空间中去(我的理解也就是说,虚拟内存是由物理内存和磁盘上的页面文件组成的,现在应用程序所在的磁盘空间就成了虚拟地址的页面文件).做好这些准备后,系统开始执行这个应用程序,由于这个应用程序的代码不在内存中(在页面文件中),所以在执行第一条指令的时候会产生一个页面错误(页面错误也就是说,系统所访问的数据不在内存中),系统分配一块内存把它映射到0x00400000处,把实际的代码或数据读入其中(系统分配一块内存区域,把它要访问的在页面文件中的数据读入到这块内存中,需在注意是系统读入代码或数据是一页一页读入的),然后可以继续执行了.当以后要访问的数据不在内存中时,就可以通过前面的机制访问数据.对于Win32DLL的映射也是同样,不过DLL文件应该是被Win32进程共享的(我想应该被映射到x80000000以后,因为0x80000000-0xBFFFFFFF是被共享的空间). 当系统在另一个进程中执行这个应用程序时,系统知道这个程序已经有了一个实例,程序的代码和数据已被读到内存中,所以系统只需把这块内存在映射到新进程的地址空间即可,这样不就实现了在多个进程间共享数据了吗!然而这种共享数据只是针对只读数据,如果进程改写了其中的代码和数据,操作系统就会把修改的数据所在的页面复制一份到改写的进程中(我的理解也就是说共享的数据没有改变,进程改写的数据只是共享数据的一份拷贝,其它进程在需要共享数据时还是共享没有改写的数据),这样就可以避免多个进程之间的相互干扰. 2.数据文件的内存映射: 数据文件的内存映射原理与可执行文件内存映射原理一样.先把数据文件的一部分映射到虚拟地址空间的0x80000000 - 0xBFFFFFFF,但没有提交实际内存(也就是说作为页面文件),当有指令要存取这段内存时同样会产生页面错误异常.操作系统捕获到这个异常后,分配一页内存,映射内存到发生异常的位置,然后把要访问的数据读入到这块内存,继续执行刚才产生异常的指令(这里我理解的意思是把刚才产生异常的指令在执行一次,这次由于数据已经映射到内存中,指令就可以顺利执行过去),由上面的分析可知,应用程序访问虚拟地址空间时由操作系统管理数据在读入等内容,应用程序本身不需要调用文件的I/O函数(这点我觉得很重要,也就是为什么使用内存映射文件技术对内存的访问就象是对磁盘上的文件访问一样). 3.基于页面交换文件的内存映射: 内存映射的第三种情况是基于页面交换文件的.一个Win32进程利用内存映射文件可以在进程共享的地址空间保留一块区域(0x8000000 - 0xBFFFFFFF),这块区域与系统的页面交换文件相联系.我们可以用这块区域来存储临时数据,但更常见的做法是利用这块区域与其他进程通信(因为0x80000000以上是系统空间,进程切换只是私有地址空间,系统空间是所有进程共同使用的),这样多进程间就可以实现通信了.事实上Win32多进程间通信都是使用的内存映射文件技术,如PostMessage(),SentMessage()函数,在内部都使用内存映射文件技术. 使用内存映射文件的方法: 1.利用内存映射文件进行文件I/O操作: CreateFile()-->CreateFileMapping()-->MapViewOfFile()......

win7垃圾清理方法

1.打开“控制面板”-“工具”-“文件夹选项”-“查看”-在“显示所有文件和文件夹”选项前 打勾-“确定 2.删除以下文件夹中的内容: x:\Documents and Settings\用户名\Cookies\下的所有文件(保留index文件) x:\Documents and Settings\用户名\Local Settings\Temp\下的所有文件(用户临时文件) x:\Documents and Settings\用户名\Local Settings\TemporaryInternet Files\下的所有文件(页面文件) x:\Documents and Settings\用户名\Local Settings\History\下的所有文件(历史纪录) x:\Documents and Settings\用户名\Recent\下的所有文件(最近浏览文件的快捷方式) x:\WINDOWS\Temp\下的所有文件(临时文件) x:\WINDOWS\ServicePackFiles(升级sp1或sp2后的备份文件) x:\WINDOWS\Driver Cache\i386下的压缩文件(驱动程序的备份文件) x:\WINDOWS\SoftwareDistribution\download下的所有文件(可以操作) 3.如果对系统进行过windows update升级,则删除以下文件: x:\windows\下以$u... 开头的隐藏文件(不建议操作,删除后补丁无法卸载) 4、然后对磁盘进行碎片整理,整理过程中请退出一切正在运行的程序(不要频繁 整理,整理的时候最好切换到安全模式,在正常情况下一些文件无法移动) 5、打开“计算机”-右键点系统盘-“属性”-“磁盘清理”-“其他选项”-单击系统还原一栏 里的“清理”-选择“是”-ok了 6、删除掉x:\Users的示例文件,n卡的用户删除掉x:\Users\NVIDIA Corporation(这个是3D示例文件) 7、在各种软硬件安装妥当之后,其实win7需要更新文件的时候就很少了。删除系 统备份文件吧:开始→附件→运行→sfc.exe /purgecache近3xxM。(该命令的作用是立即清除"Windows 文件保护"文件高速缓存,释放出其所占据的空间) 8、删掉\windows\system32\dllcache下dll档(减去200——300mb),这是备 用的dll档,只要你已拷贝了安装文件,完全可以这样做。(除非硬盘实在没有空间才清理,清理此处对系统提升不会有明显改善,但是可以腾出空间) 9、win7会自动备份硬件的驱动程序,但在硬件的驱动安装正确后,一般变动硬件 的可能性不大,所以也可以考虑将这个备份删除,文件位于\windows\driver cache\i386目录下,名称为driver.cab,你直接将它删除就可以了,通常这个文件是74M。(除非以后确定不增加硬件可以这么做,不然以后增加硬件会很麻烦) 10、删除不用的输入法:对很多网友来说,Windows 7系统自带的输入法并不全部 都合适自己的使用,比如IMJP8_1 日文输入法、IMKR6_1 韩文输入法这些输入法,如果用不着,我们可以将其删除。输入法位于x:\windows\ime\文件夹中,全部占用了88M的空间。(可能遇到删除不掉的情况) 11、另外,保留着x:\windows\help目录下的东西对我来说是一种伤害,呵呵。。。 都干掉!(帮助还是很重要的,万一碰到没有碰到过的情况就要哭死了) 12、关闭系统还原:系统还原功能使用的时间一长,就会占用大量的硬盘空间。因 此有必要对其进行手工设置,以减少硬盘占用量。打开"系统属性"对话框,选择" 系统保护"选项,选择"关闭系统还原"复选框以关闭系统还原。也可仅对系统所在的磁盘或分区设置还原。先选择系统所在的分区,单击"配置"按钮,在弹出的对话框

解决win7系统c盘变小方法,释放c盘空间,删除c盘无用文件

释放C盘空间的小技巧 文章编号:43809 2011-9-27 9:23:20 1、打开“我的电脑”-“工具”-“文件夹选项”-“查看”-在“显示所有文件和文件夹”选项前打勾-“确定”。 2、删除以下文件夹中的内容: x:\\DocumentsSettings\\用户名\\Cookies\\下的所有文件(保留index文件) x:\\DocumentsSettings\\用户名\\LocalSettings\\Temp\\下的所有文件(用户临时文件) x:\\DocumentsSettings\\用户名\\LocalSettings\\TemparyInternetFiles\\下的所有文件(页面文件) x:\\DocumentsSettings\\用户名\\LocalSettings\\Histy\\下的所有文件(历史纪录) x:\\DocumentsSettings\\用户名\\Recent\\下的所有文件(最近浏览文件的快捷方式) x:\\WINDOWS\\Temp\\下的所有文件(临时文件) x:\\WINDOWS\\ServicePackFiles(升级sp1或sp2后的备份文件) x:\\WINDOWS\\DriverCache\\i386下的压缩文件(驱动程序的备份文件) x:\\WINDOWS\\SoftwareDistribution\\download下的所有文件 3、如果对系统进行过windoesupdade升级,则删除以下文件: x:\\windows\\下以$u...开头的隐藏文件。

4、然后对磁盘进行碎片整理,整理过程中请退出一切正在运行的程序。 5、碎片整理后打开“开始”-“程序”-“附件”-“系统工具”-“系统还原”-“创建一个还原点”(最好以当时的日期作为还原点的名字)。 6、打开“我的电脑”-右键点系统盘-“属性”-“磁盘清理”-“其他选项”-单击系统还原一栏里的“清理”-选择“是”。 7、在各种软硬件安装妥当之后,其实XP需要更新文件的时候就很少了。删除系统备份文件吧:开始→运行→sfc.exe/purgecache近3xxM。(该命令的作用是立即清除'Windows文件保护'文件高速缓存,释放出其所占据的空间)。 8、删掉\\windows\\system32\\dllcache下dll档(减去200――300mb),这是备用的dll档,只要你已拷贝了安装文件,完全可以这样做。 9、XP会自动备份硬件的驱动程序,但在硬件的驱动安装正确后,一般变动硬件的可能性不大,所以也可以考虑将这个备份删除,文件位于\\windows\\drivercache\\i386目录下,名称为driver.cab,你直接将它删除就可以了,通常这个文件是74M。 10、删除不用的输入法:对很多网友来说,WindowsXPt系统自带的输入法并不全部都合适自己的使用,比如IMJP8_1日文输入法、IMKR6_1韩文输入法这些输入法,如果用不着,我们可以将其删除。输入法位于\\windows\\ime\\文件夹中,全部占用了88M的空间。 11、升级完成发现windows\\多了许多类似$NtUninstallQ311889$这些目录基本无用。 12、另外,保留着\\windows\\help目录下的东西基本也没有作用! 13、关闭系统还原:系统还原功能使用的时间一长,就会占用大量的硬盘空间。因此有必要对其进行手工设置,以减少硬盘占用量。打开'系统属性对话框,选择'系统还原'选项,选择'在所有驱动器上关闭系统还

内存映射和普通文件访问的区别

在讲述文件映射的概念时, 不可避免的要牵涉到虚存(SVR 4的VM). 实际上, 文件映射是虚存的中心概念, 文件映射一方面给用户提供了一组措施, 好似用户将文件映射到自己地址空间的某个部分, 使用简单的内存访问指令读写文件;另一方面, 它也可以用于内核的基本组织模式, 在这种模式种, 内核将整个地址空间视为诸如文件之类的一组不同对象的映射. 中的传统文件访问方式是, 首先用open系统调用打开文件, 然后使用read, write以及lseek等调用进行顺序或者随即的I/O. 这种方式是非常低效的, 每一次I/O操作都需要一次系统调用. 另外, 如果若干个进程访问同一个文件, 每个进程都要在自己的地址空间维护一个副本, 浪费了内存空间. 而如果能够通过一定的机制将页面映射到进程的地址空间中, 也就是说首先通过简单的产生某些内存管理数据结构完成映射的创建. 当进程访问页面时产生一个缺页中断, 内核将页面读入内存并且更新页表指向该页面. 而且这种方式非常方便于同一副本的共享. VM是面向对象的方法设计的, 这里的对象是指内存对象: 内存对象是一个软件抽象的概念, 它描述内存区与后备存储之间的映射. 系统可以使用多种类型的后备存储, 比如交换空间, 本地或者远程文件以及帧缓存等等. VM系统对它们统一处理, 采用同一操作集操作, 比如读取页面或者回写页面等. 每种不同的后备存储都可以用不同的方法实现这些操作. 这样, 系统定义了一套统一的接口, 每种后备存储给出自己的实现方法. 这样, 进程的地址空间就被视为一组映射到不同数据对象上的的映射组成. 所有的有效地址就是那些映射到数据对象上的地址. 这些对象为映射它的页面提供了持久性的后备存储. 映射使得用户可以直接寻址这些对象. 值得提出的是, VM体系结构独立于Unix系统, 所有的Unix系统语义, 如正文, 数据及堆栈区都可以建构在基本VM系统之上. 同时, VM体系结构也是独立于存储管理的, 存储管理是由操作系统实施的, 如: 究竟采取什么样的对换和请求调页算法, 究竟是采取分段还是分页机制进行存储管理, 究竟是如何将虚拟地址转换成为物理地址等等(Linux中是一种叫Three Level Page Table的机制), 这些都与内存对象的概念无关. 下面介绍Linux中 VM的实现. 一个进程应该包括一个mm_struct(memory manage struct), 该结构是进程虚拟地址空间的抽象描述, 里面包括了进程虚拟空间的一些管理信息: start_code, end_code, start_data, end_data, start_brk, end_brk等等信息. 另外, 也有一个指向进程虚存区表(vm_area_struct: virtual memory area)的指针, 该链是按照虚拟地址的增长顺序排列的. 在Linux进程的地址空间被分作许多区(vma), 每个区(vma)都对应虚拟地址空间上一段连续的区域, vma是可以被共享和保护的独立实体, 这里的vma就是前面提到的内存对象. 下面是vm_area_struct的结构, 其中, 前半部分是公共的, 与类型无关的一些数据成员, 如: 指向mm_struct的指针, 地址范围等等, 后半部分则是与类型相关的成员, 其中最重要的是一个指向vm_operation_struct向量表的指针 vm_ops, vm_pos向量表是一组虚函数, 定义了与vma类型无关的接口. 每一个特定的子类, 即每种vma类型都必须在向量表中实现这些操作. 这里包括了: open, close, unmap, protect, sync, nopage, wppage, swapout这些操作. 1.struct vm_area_struct { 2./*公共的, 与vma类型无关的 */ 3.struct mm_struct * vm_mm;

内存映射文件

内存映射文件 内存映射文件是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数(CreateFileMapping)。这样,文件内的数据就可以用内存读/写指令来访问,而不是用ReadFile和WriteFile这样的I/O系统函数,从而提高了文件存取速度。 这种函数最适用于需要读取文件并且对文件内包含的信息做语法分析的应用程序,如对输入文件进行语法分析的彩色语法编辑器,编译器等。把文件映射后进行读和分析,能让应用程序使用内存操作来操纵文件,而不必在文件里来回地读、写、移动文件指针。 有些操作,如放弃“读”一个字符,在以前是相当复杂的,用户需要处理缓冲区的刷新问题。在引入了映射文件之后,就简单的多了。应用程序要做的只是使指针减少一个值。 映射文件的另一个重要应用就是用来支持永久命名的共享内存。要在两个应用程序之间共享内存,可以在一个应用程序中创建一个文件并映射之,然后另一个应用程序可以通过打开和映射此文件把它作为共享的内存来使用。 VC++中使用内存映射文件处理大文件(1) 关键词:VC++ 内存映射 阅读提示:本文给出了一种方便实用的解决大文件的读取、存储等处理的方法,并结合相关程序代码对具体的实现过程进行了介绍。 引言 文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC 提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,再以通常的文件处理方法进行处理显然是行不通的。目前,对于上述这种大文件的操作一般是以内存映射文件的方式来加以处理的,本文下面将针对这种Windows核心编程技术展开讨论。 内存映射文件 内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,只是内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而非系统的页文件,而且在对该文件进行操作之前必须首先对文件进行映射,就如同将整个文件从磁盘加载到内存。由此可以看出,使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件的回写以及释放内存块等步骤,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。另外,实际工程中的系统往往需要在多个进程之间共享数据,如果数据量小,处理方法是灵活多变的,如果共享数据容量巨大,那么就需要借助于内存映射文件来进行。实际上,内存映射文件正是解决本地多个进程间数据共享的最有效方法。 内存映射文件并不是简单的文件I/O操作,实际用到了Windows的核心编程技术--内存管理。所以,如果想对内存映射文件有更深刻的认识,必须对Windows操作系统的内存管理机制有清楚的认识,内存管理的相关知识非常复杂,超出了本文的讨论范畴,

通过VC++内存映射修改大文件方法

通过VC++内存映射修改大文件方法 本文介绍利用VC++内存映射文件修改大文件的方法:在大文件内存前加入一段数据,若要使用内存映射文件,必须执行下列操作步骤: 1.创建或打开一个文件内核对象,该对象用于标识磁盘上你想用作内存 映射文件的文件; 2.创建一个文件映射内核对象,告诉系统该文件的大小和你打算如何访 问该文件; 3.让系统将文件映射对象的全部或一部分映射到你的进程地址空间中;当完成对内存映射文件的使用时,必须执行下面这些步骤将它清除: 1.告诉系统从你的进程的地址空间中撤消文件映射内核对象的映像; 2.关闭文件映射内核对象; 3.关闭文件内核对象; 下面将用一个实例详细介绍这些操作步骤,(本实例的目的就是将一个文件A其内容前面加入一些内容存入文件B,我想大家在程序开发当中会遇到这种情况的)。 一、我们打开关于A文件内核对象,并创建一个关于B文件的内核对象若要创建或打开一个文件内核对象,总是要调用CreateFile函数: HANDLE CreateFile( PCSTR pszFileName, DWORD dwDesiredAccess, DWORD dwShareMode, PSECURITY_ATTRIBUTES psa, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile); CreateFile函数拥有好几个参数,这里只重点介绍前3个参数,即szFileName,dwDesiredAccess 和dwShareMode。你可能会猜到,第一个参数pszFileName用于指明要创建或打开的文件的名

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位,我喜欢的云端(很好用的软件,有空发帖介绍)就是一个例子。 最近比较忙,趁有时间上几张测试图

linux下的内存映射函数mmap详解及示例代码

自:https://www.sodocs.net/doc/e613180628.html,/flying5/blog 不错的博客,大家可以去看看 Linux的mmap文件内存映射机制 mmap: memory map 在讲述文件映射的概念时, 不可避免的要牵涉到虚存(SVR 4的VM). 实际上, 文件映射是虚存的中心概念, 文件映射一方面给用户提供了一组措施, 好似用户将文件映射到自己地址空间的某个部分, 使用简单的内存访问指令读写文件;另一方面, 它也可以用于内核的基本组织模式, 在这种模式种, 内核将整个地址空间视为诸如文件之类的一组不同对象的映射. 中的传统文件访问方式是, 首先用open系统调用打开文件, 然后使用read, write以及lseek等调用进行顺序或者随即的I/O. 这种方式是非常低效的, 每一次I/O操作都需要一次系统调用. 另外, 如果若干个进程访问同一个文件, 每个进程都要在自己的地址空间维护一个副本, 浪费了内存空间. 而如果能够通过一定的机制将页面映射到进程的地址空间中, 也就是说首先通过简单的产生某些内存管理数据结构完成映射的创建. 当进程访问页面时产生一个缺页中断, 内核将页面读入内存并且更新页表指向该页面. 而且这种方式非常方便于同一副本的共享. VM是面向对象的方法设计的, 这里的对象是指内存对象: 内存对象是一个软件抽象的概念, 它描述内存区与后备存储之间的映射. 系统可以使用多种类型的后备存储, 比如交换空间, 本地或者远程文件以及帧缓存等等. VM 系统对它们统一处理, 采用同一操作集操作, 比如读取页面或者回写页面等. 每种不同的后备存储都可以用不同的方法实现这些操作. 这样, 系统定义了一套统一的接口, 每种后备存储给出自己的实现方法. 这样, 进程的地址空间就被视为一组映射到不同数据对象上的的映射组成. 所有的有效地址就是那些映射到数据对象上的地址. 这些对象为映射它的页面提供了持久性的后备存储. 映射使得用户可以直接寻址这些对象. 值得提出的是, VM体系结构独立于Unix系统, 所有的Unix系统语义, 如正文, 数据及堆栈区都可以建构在基本VM系统之上. 同时, VM体系结构也是独立于存储管理的, 存储管理是由操作系统实施的, 如: 究竟采取什么样的对换和请求调页算法, 究竟是采取分段还是分页机制进行存储管理, 究竟是如何将虚拟地址转换成为物理地址等等(Linux中是一种叫Three Level Page Table的机制), 这些都与内存对象的概念无关. 下面介绍Linux中VM的实现. 一个进程应该包括一个mm_struct(memory manage struct),该结构是进程虚拟地址空间的抽象描述, 里面包括了进程虚拟空间的一些管理信息: start_code, end_code, start_data, end_data, start_brk, end_brk等等信息. 另外, 也有一个指向进程虚存区表(vm_area_struct: virtual memory area)的指针, 该链是按照虚拟地址的增长顺序排列的. 在Linux进程的地址空间被分作许多区(vma), 每个区(vma)都对应虚拟地址空间上一段连续的区域, vma是可以被共享和保护的独立实体, 这里的vma就是前面提到的内存对象. 下面是vm_area_struct的结构, 其中, 前半部分是公共的, 与类型无关的一些数据成员, 如: 指向mm_struct的指针, 地址范围等等, 后半部分则是与类型相关的成员, 其中最重要的是一个指向vm_operation_struct向量表的指针vm_ops, vm_pos向量表是一组虚函数, 定义了与vma类型无关的接口. 每一个特定的子类, 即每种vma类型都必须在向量表中实现这些操作. 这里包括了: open, close, unmap, protect, sync, nopage, wppage, swapout这些操作. struct vm_area_struct { /*公共的, 与vma类型无关的*/ struct mm_struct * vm_mm; unsigned long vm_start; unsigned long vm_end; struct vm_area_struct *vm_next;

win7怎么释放硬盘内存

win7怎么释放硬盘内存 随着Win7系统的问世,很多用户已经把系统换成了Win7,但很多朋友在使用时都发现了一个问题:电脑刚被买回来时,我们往往都把C盘预留50G左右的空间,而且东西都从不装到C盘,等过了一段时间,C盘磁盘空间居然变小了,只剩下10多个G。自己也没装什么东西啊,C盘没怎么用就占了40G呢,而且还在继续扩张,系统反应也越来越迟钝。接下来,小编就告诉大家清理C盘空间的方法。 清理硬盘空间的方法: 方法一:删除休眠文件hiberfil.sys 该文件在C盘根目录为隐藏的系统文件,隐藏的这个hiberfil.sys文件大小正好和自己的物理内存是一致的,当你让电脑进入休眠状态时,Windows7在关闭系统前将所有的内存内容写入hiberfil.sys文件。而后,当你重新打开电脑,操作系统使用hiberfil.sys把所有信息放回内存,电脑恢复到关闭前的状态。可Windows7并不会将这个文件删除,而是一直放在硬盘上,会白白地占用一部分磁盘空间,时间长了你的硬盘可就吃不消了。Windows7下面安全删除休眠文件的方法:用管理员身份运行cmd.exe打开命令行窗口,然后输入:powercfg -h off,回

车运行。 方法二:清除应用程序产生的临时文件这类文件一般保存在windowstemp文件夹中,和用户文件夹的temp文件夹中。(路径为:我的电脑-C盘-windowstemp文件夹)。 方法三:清除IE等浏览器产生的临时文件清理方法:打开浏览器,工具—INTERNET选项——浏览历史记录下面点击删除,删除cookie和IE临时文件即可,尤其实在备份系统前最好删除的干干净净。 方法四:清除系统还原,System Volume Information文件夹SystemVolume Information 文件夹,中文名称可以翻译为“系统卷标信息”。这个文件夹里就存储着系统还原的备份信息。“系

内存映射文件使用方法

内存映射文件 要点:MapViewOfFile函数中映射文件的偏移地址必须为系统分配粒度的整数倍,但一次映射的文件长度则不受此限制。 摘要:本文给出了一种方便实用的解决大文件的读取、存储等处理的方法,并结合相关程序代码对具体的实现过程进行了介绍。 引言 文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,再以通常的文件处理方法进行处理显然是行不通的。目前,对于上述这种大文件的操作一般是以内存映射文件的方式来加以处理的,本文下面将针对这种Windows核心编程技术展开讨论。 内存映射文件 内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,只是内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而非系统的页文件,而且在对该文件进行操作之前必须首先对文件进行映射,就如同将整个文件从磁盘加载到内存。由此可以看出,使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件的回写以及释放内存块等步骤,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。另外,实际工程中的系统往往需要在多个进程之间共享数据,如果数据量小,处理方法是灵活多变的,如果共享数据容量巨大,那么就需要借助于内存映射文件来进行。实际上,内存映射文件正是解决本地多个进程间数据共享的最有效方法。 内存映射文件并不是简单的文件I/O操作,实际用到了Windows的核心编程技术--内存管理。所以,如果想对内存映射文件有更深刻的认识,必须对Windows操作系统的内存管理机制有清楚的认识,内存管理的相关知识非常复杂,超出了本文的讨论范畴,在此就不再赘述,感兴趣的读者可以参阅其他相关书籍。下面给出使用内存映射文件的一般方法: 首先要通过CreateFile()函数来创建或打开一个文件内核对象,这个对象标识了磁盘上将要用作内存映射文件的文件。在用CreateFile()将文件映像在物理存储器的位置通告给操作系统后,只指定了映像文件的路径,映像的长度还没有指定。为了指定文件映射对象需要多大的物理存储空间还需要通过CreateFileMapping()函数来创建一个文件映射内核对象以告诉系统文件的尺寸以及访问文件的方式。在创建了文件映射对象后,还必须为文件数据保留一个地址空间区域,并把文件数据作为映射到该区域的物理存储器进行提交。由MapViewOfFile()函数负责通过系统的管理而将文件映射对象的全部或部分映射到进程地址空间。此时,对内存映射文件的使用和处理同通常加载到内存中的文件数据的处理方式基本一样,在完成了对内存映射文件的使用时,还要通过一系列的操作完成对其的清除和使用过

怎么释放win7系统内存

怎么释放win7系统内存 win7系统弹出内存不足的问题,让很多用户手足无措,该如何操作解决该问题呢?怎么将win7系统内存释放呢?小编为大家分享了将win7系统内存释放的方法,下面大家跟着小编一起来了解一下吧。 释放win7系统内存方法 我们可以采用系统自带清空内存命令,然后在桌面上创建一个快捷方式,以后直接双击快捷方式就可以快速释放系统内存了哦,方法如下。 1、首先在桌面的空白处右击鼠标选择“新建-快捷方式”选项;

2、然后在弹出来的创建快捷方式的窗口中,在“请键入对象的位置”中把下面的代码复制粘贴进去; 代码:%windir%system32 undll32.exe advapi32.dll,ProcessIdleTasks 3、然后返回桌面,右击选择刚才新建的快捷方式修改名称为快速释放内存,以后需要释放内存的时候,只要双击快捷方式就可

以快速释放内存了。 提升win7系统运行速度方法 方法一、关闭一些无用的服务 在win7旗舰版系统中已经有了非常多的服务功能,但一些没用的服务还是关掉为好,一是从安全考虑,另一个原因也是节省我们的内存,关闭一些服务完全可以实现减少电脑内存占用率,使得我们的电脑运行速度也会变得快些。 方法二、关闭“自动更新”功能 自动更新是Windows给我们带来更新快捷而设置的一种自动功能,这一功能会占用我们操作系统的内存,一般也没必要让他随时去更新,关闭方法:进入“控制面板”,找到“Windows Update”,然后进行更改设置即可。

方法三、定期整理内存 电脑运行速度的快慢还与你是否有正确的电脑使用习惯,而常常整理电脑中的文件以及内存也是好的电脑操作习惯中的一种,这无疑是可以减少电脑内存使用的。 方法四、尽可能的少装一些无关紧要的程序 我们都知道只要安装了一款程序就会占用一定的磁盘,同时很多程序还是后台运行的,最为关键的是很多程序安装后都会设置一些自动启用功能,这样只要我们一开机就运行了这些程序,特别是一些监控软件、杀毒软件尤为值得注意,不要因为怕病毒而安装多款杀毒瘾软件。 方法五、优化“视觉效果”设置

如何节省win7硬盘空间

很多人发现装完win7系统之后,即便未安装任何应用程序C盘占用空间已达到10G以上。其实有很多东西是我们不需要的,这些东西从我们的电脑里去除之后,一点都不影响系统,而且也大大节约了空间。下面就来看看如何省出我们的硬盘空间: 1.删除休眠文件hiberfil.sys 很多人经常没搞清楚究竟什么是电脑休眠。实际上,电脑中有两种低功率运行状态,休眠和睡眠。我们电脑常用的是睡眠功能,也就是电脑不用一定时间后,进入低功耗状态,工作态度保存在内存里,恢复时1-2秒就可以恢复到原工作状态。这个功能是很实用的,也是最常用的。然而休眠是把工作状态即所有内存信息写入硬盘,以4G 内存为例,即要写入4G的文件到硬盘,然后才关机。开机恢复要读取4G的文件到内存,才能恢复原工作界面。而4G文件的读写要花大量的时间,已经不亚于正常开机了,所以现在休眠功能很不实用。而休眠的HIBERFIL.SYS这个文件就是用来休眠时保存内存状态用的。会占用C盘等同内存容量的空间(以4G 内存为例,这个文件也为4G),所以完全可以删掉而不影响大家使用。 操作方法:以管理员权限运行CMD,打以下命令: POWERCFG -H OFF 即自动删除该文件。(如何以管理员运行:在“所有程序”-》“附件”-》“命令提示符”上右键,选“以管理员运行”) 2.正确设置虚拟内存 内存在计算机中的作用很大,电脑中所有运行的程序都需要内存,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,WINDOWS运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,这部分空间即称为虚拟内存,虚拟内存在硬盘上的存在形式就是PAGEFILE.SYS这个页面文件。虚拟内存只是物理内存不足的补充,所以不要加以神化,虚拟内存的读写性能(即硬盘的读写速度)只有物理内存性能的几十分之一,而且高频率的读写操作对硬盘损伤很大!容易出现硬盘坏道!能不用则不用,能少用则少用!原则是够用+留少量余量即可。 Win7系统环境下,一般512MB内存,根据实际使用内存占用,可以设虚拟内存为512-768MB(内存+虚拟内存之和一般比正常占用高256MB即可)。1GB内存,根据实际使用内存占用情况,可以设虚拟内存为128-512MB(内存+虚拟内存之和一般比正常占用高256-512MB即可)。内存为2G及以上的,一般可以禁用虚拟内存(有软件限制的可以设少量虚拟内存,如128MB)。部分确实会使用大量内存的人,如玩大型3D游戏、制作大幅图片、3D建模等,并收到系统内存不足警告的,才需要酌情增加虚拟内存。 一般可以先把虚拟内存禁用,重启电脑进安全模式(这时不要运行大量程序),然后进行碎片整理,完成后重新设定虚拟内存,可使页面文件不含碎片,读写更快。或用PE/应急盘引导进系统,删除页面文件,整理磁盘,重启即可。以WIN7

【IT专家】使用.so(共享对象)中的内存映射文件

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 使用.so(共享对象)中的内存映射文件 使用.so(共享对象)中的内存映射文件[英]Using memory-mapped files from within a .so (shared object) I am getting a segfault when accessing shared memory (memory mapped file, using a fixed address of 0x60000000 ) from within a share object (.so). 当从共享对象(.so)中访问共享内存(内存映射文件,使用固定地址 0x60000000)时,我得到一个段错误。 We have many applications accessing this shared memory without difficulty. My app is different in that I create a small .so with it and the .so is the one calling mmap and accessing the shared memory. 我们有很多应用程序毫无困难地访问此共享内存。我的应用程序不同之处在于我 用它创建一个小的.so 而.so 是调用mmap 并访问共享内存的.so。 The mmap() returns just fine. My requested address is returned back properly. But as soon as I try to access the memory from within this .so, it seg faults. mmap()返回正常。我要求的地址已正确退回。但是一旦我尝试从这个.so 中访 问内存,就会出现故障。 I can’t figure out what is unique about a .so that would prevent it from accessing shared memory this way. 我无法弄清楚.so 的独特之处在于它会阻止它以这种方式访问共享内存。 Anyone have thoughts? 有人有想法吗? 2 In general, accessing mmaped memory from a shared library is in no way different from accessing it from a main executable, and you are likely barking up the wrong tree. That said, this: 通常,从共享库访问mmaped 内存与从主可执行文件访问mmaped 内存完全不

相关主题