内存不能“read”
??????? 內(nèi)存不能被讀取和寫入,我想大家一定見過這種類似的問題。最近公司一直出現(xiàn)這種問題:
而且有的時(shí)候桌面上的任何圖標(biāo)都是顯示不完整,從事件查看器中出現(xiàn)很多莫名的提示錯(cuò)誤。這個(gè)真的很頭疼,為了弄清事件的來源(是否是系統(tǒng)出現(xiàn)問題)每一次都是重新啟動(dòng)。每次重啟完成之后,系統(tǒng)就正常啦。但這也不能解決實(shí)際問題啊。問題好像就是系統(tǒng)在啟動(dòng)的時(shí)候,有些文件沒有加載上或者是加載并不完整。
????? ? 下面我希望和大家分享一下我的所得,有更好的方法大家可以一起去探討啊!一般情況下出現(xiàn)這種問題有兩根方面的原因:一是.硬件即內(nèi)存方面的問題;二是軟件,這個(gè)方面可就多啦。電腦硬件一般不是特別愛出現(xiàn)問題,可能的情況是內(nèi)存條壞啦,存在質(zhì)量問題;內(nèi)存條和插槽接觸不是很好,還有就是兼容性的問題。當(dāng)然我們可以下載一個(gè)軟件來檢測內(nèi)存的使用情況。現(xiàn)在就來說說軟件的問題吧,原理大致是這樣的,當(dāng)系統(tǒng)中的某個(gè)程序把數(shù)據(jù)放置內(nèi)存中的緩存區(qū)域的時(shí)候,程序需要操作系統(tǒng)提供的“功能函數(shù)”來為其分配內(nèi)存空間。如果分配成功的話,函數(shù)將會(huì)把新開辟的內(nèi)存地址返回給應(yīng)用程序,應(yīng)用程序就可以根據(jù)這個(gè)地址來使用這個(gè)內(nèi)存空間。這就是“動(dòng)態(tài)內(nèi)存分配”。出現(xiàn)錯(cuò)誤的原因就是內(nèi)存并不是永遠(yuǎn)能夠分配成功的。當(dāng)分配失敗的時(shí)候系統(tǒng)函數(shù)將會(huì)返回一個(gè)0值。而程序應(yīng)用程序在每一次申請(qǐng)內(nèi)存后都會(huì)檢查返回值是否為“0”。如果是的話那就好說啦,應(yīng)用程序一般都會(huì)采取一些自救的措施。如果應(yīng)用程序沒有檢查這個(gè)錯(cuò)誤呢,它就是認(rèn)為這個(gè)“0”地址就是它將要使用的內(nèi)存空間地址。實(shí)際上真正的“0”地址內(nèi)存區(qū)域存儲(chǔ)的是計(jì)算機(jī)系統(tǒng)中重要的“中斷描述符表”,絕對(duì)不能夠被應(yīng)用程序占用。在windows操作系統(tǒng)中這個(gè)操作會(huì)被系統(tǒng)自我保護(hù)機(jī)制所捕獲,結(jié)果就是這個(gè)應(yīng)用程序?qū)?huì)被強(qiáng)行關(guān)閉。這個(gè)時(shí)候就會(huì)出現(xiàn)像上面的情況一樣:內(nèi)存不能被“read”,并指出被引用的內(nèi)存地址不能為“0x000xxxxx”的錯(cuò)誤。內(nèi)存分配失敗的原因很多:內(nèi)存不足,系統(tǒng)中的函數(shù)出現(xiàn)錯(cuò)誤等。這種情況多出現(xiàn)于系統(tǒng)已經(jīng)使用很長時(shí)間,安裝的很多應(yīng)用軟件,結(jié)果造成修給了大量的系統(tǒng)參數(shù)等。在動(dòng)態(tài)分配應(yīng)用程序的過程中,有可能會(huì)出現(xiàn)這樣的情況:應(yīng)用程序被分配的內(nèi)存地址已經(jīng)消失,程序本身在某個(gè)時(shí)間“注銷”了這個(gè)內(nèi)存空間。當(dāng)這個(gè)內(nèi)存空間被系統(tǒng)收回的時(shí)候,這個(gè)內(nèi)存空間的訪問權(quán)已經(jīng)不再屬于該應(yīng)用程序,所以這個(gè)程序的讀寫操作同樣會(huì)被系統(tǒng)終止掉!
?????? 基本上面是我自己的理解,下面是我個(gè)人的一些建議:首先先保證自己的系統(tǒng)是一個(gè)比較干凈的系統(tǒng),查殺系統(tǒng)中的病毒,讓系統(tǒng)檢查被***的可能。平時(shí)的使用中,對(duì)系統(tǒng)修復(fù)一些漏洞。使用一些穩(wěn)定版的應(yīng)用軟件。還有就是一種:先停止掉“windows management instrumentation”這個(gè)服務(wù),在運(yùn)行里面輸入“services.msc"打開服務(wù)管理界面--將這個(gè)服務(wù)停止。然后進(jìn)到這個(gè)文件夾中:c:\windows\system32\Wbem\Repository?刪除里面的所有文件(要是自己是在沒有把握的話,可以先對(duì)這些文件做好備份),然后啟動(dòng)剛才停止的服務(wù)或者重新啟動(dòng)電腦也可以。被刪除的文件會(huì)在注冊(cè)表中的?HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM\Autorecover MOFs 這個(gè)信息重新創(chuàng)建出來。
轉(zhuǎn)載于:https://blog.51cto.com/weipengfei/390461
總結(jié)
以上是生活随笔為你收集整理的内存不能“read”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度地图应用
- 下一篇: 对宾得新手配镜头的几点建议(转载)