金年会 金字招牌诚信至上,金年会 金字招牌诚信至上,金年会 金字招牌诚信至上,金年会 金字招牌诚信至上

 找回密碼
 注冊

QQ登錄

只需一步,快速開(kāi)始

查看: 1372|回復: 0
打印 上一主題 下一主題

[分享] 常見(jiàn)的計算機系統Windows內存出錯幾種情況分析和處理方法

跳轉到指定樓層
1#
k10911 發(fā)表于 2012-5-2 14:13:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式 來(lái)自 中國河南鄭州

馬上注冊,結交更多好友,享用更多功能。

您需要 登錄 才可以下載或查看,沒(méi)有帳號?注冊

x
大家在使用windows系統的時(shí)候,會(huì )出現內存的讀取錯誤,或者不能讀取
或者讀取失敗等錯誤,這一般都是在你電腦使用久了才會(huì )有這種情況出現的,
因為安裝的程序多了,或者有木馬等,使得內存分配 不過(guò)來(lái),造成的。
當然我們可以嘗試一下殺毒,或者刪除一些不必要的軟件,修復一下系統一般都能夠解決的。。。
下面詳細點(diǎn)了解一下出現這個(gè)問(wèn)題的原因,以及解決的辦法:
1,首先我們考慮的是程序自己本身有問(wèn)題,排除這點(diǎn)后,再去排除別的。

  在使用動(dòng)態(tài)分配的應用程序中,有時(shí)會(huì )有這樣的情況出現:程序試圖讀寫(xiě)一塊「應該可用」的內存,但不知為什么,這個(gè)預料中可用的光標已經(jīng)失效了。有可能是「忘記了」向操作系統要求分配,也可能是程序自己在某個(gè)時(shí)候已經(jīng)注銷(xiāo)了這塊內存而「沒(méi)有留意」等等。注銷(xiāo)了的內存被系統回收,其訪(fǎng)問(wèn)權已經(jīng)不屬于該應用程序,因此讀寫(xiě)操作也同樣會(huì )觸發(fā)系統的保護機制,企圖「違法」的程序唯一的下場(chǎng)就是被操作終止執行,回收全部資源。計算機世界的法律還是要比人類(lèi)有效和嚴厲得多!像這樣的情況都屬于程序自身的BUG,你往往可在特定的操作順序下重現錯誤。無(wú)效光標不一定總是0,因此錯誤提示中的內存地址也不一定為「0x00000000」,而是其它隨機數字。如果系統經(jīng)常有所提到的錯誤提示,下面的建議可能會(huì )有說(shuō)明 :
  1.檢視系統中是否有木馬或病毒。這類(lèi)程序為了控制系統往往不負責任地修改系統,從而導致操作系統異常。平常應加強信息安全意識,對來(lái)源不明的可執行程序絕不好奇。
  2.更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統檔案、修正系統參數。
  有時(shí)候操作系統本身也會(huì )有BUG,要注意安裝官方發(fā)行的升級程序。
  3.試用新版本的應用程序。
2,程序需要一塊內存用以?xún)Υ鏀祿䲡r(shí),就需要使用操作系統提供的「功能函數」來(lái)申請,如果內存分配成功,函數就會(huì )將所新開(kāi)辟的內存區地址返回給應用程序,應用程序就可以通過(guò)這個(gè)地址使用這塊內存。這就是「動(dòng)態(tài)內存分配」,內存地址也就是編程中的「光標」。內存不是永遠都招之即來(lái)、用之不盡的,有時(shí)候內存分配也會(huì )失敗。當分配失敗時(shí)系統函數會(huì )返回一個(gè)0值,這時(shí)返回值「0」已不表示新啟用的游標,而是系統向應用程序發(fā)出的一個(gè)通知,告知出現了錯誤。作為應用程序,在每一次申請內存后都應該檢查返回值是否為0,如果是,則意味著(zhù)出現了故障,應該采取一些措施挽救,這就增強了程序的「健壯性」。若應用程序沒(méi)有檢查這個(gè)錯誤,它就會(huì )按照「思維慣性」認為這個(gè)值是給它分配的可用游標,繼續在之后的執行中使用這塊內存。
  真正的0地址內存區儲存的是計算機系統中最重要的「中斷描述符表」,絕對不允許應用程序使用。
在沒(méi)有保護機制的操作系統下(如DOS),寫(xiě)數據到這個(gè)地址會(huì )導致立即當機,
而在健壯的操作系統中,如Windows等,這個(gè)操作會(huì )馬上被系統的保護機制捕獲,其結果就是由操作系統強行關(guān)閉出錯的應用程序,
以防止其錯誤擴大。這時(shí)候,就會(huì )出現上述的「寫(xiě)內存」錯誤,并指出被引用的內存地址為「0x00000000」。內存分配失敗故障的原因很多,
內存不夠、系統函數的版本不匹配等都可能有影響。因此,這種分配失敗多見(jiàn)于操作系統使用很長(cháng)時(shí)間后,安裝了多種應用程序(包括無(wú)意中「安裝」的病毒程序),更改了大量的系統參數和系統檔案之后。

了解了這個(gè)問(wèn)題存在的原因后,我們就好處理了。
  Win XP的「預讀取」技術(shù)
  這種最佳化技術(shù)也被用到了應用軟件上,系統對每一個(gè)應用軟件的前幾次啟動(dòng)情況進(jìn)行分析,然后新增一個(gè)描述套用需求的虛擬「內存映像」,并把這些信息儲存到WINDOWSPREFETCH數據夾。一旦建立了映像,應用軟件的裝入速度大大提高。XP的預讀取數據儲存了最近8次系統啟動(dòng)或應用軟件啟動(dòng)的信息。
  后敘:
  目前此方法亦是獨步網(wǎng)絡(luò )的(其碼自己針對此問(wèn)題查了許久),也是常見(jiàn)問(wèn)題,原本幾乎每天睡前關(guān)閉軟件時(shí)一些程序都會(huì )發(fā)生...read...
  現在就沒(méi)發(fā)生了。
  運行某些程序的時(shí)候,有時(shí)會(huì )出現內存錯誤的提示(0x后面內容有可能不一樣),然后該程序就關(guān)閉。
  “0x????????”指令引用的“0x????????”內存。該內存不能為“read”。
  “0x????????”指令引用的“0x????????”內存,該內存不能為“written”。
  不知你出現過(guò)類(lèi)似這樣的故障嗎?
  一般出現這個(gè)現象有方面的,一是硬件,即內存方面有問(wèn)題,二是軟件,這就有多方面的問(wèn)題了。

  將虛擬內存撤換
  答案:
  目前為止是肯定的,也就是如在下次冷天到來(lái)時(shí)亦沒(méi)再發(fā)生,就代表這是主因
  追加:
  如果你用 Ghost 恢復 OS 后建議 刪除WINDOWS\PREFETCH目錄下所有*.PF文件因為需讓windows重新收集程序的物理地址。
  有些應用程序錯誤 "0x7cd64998" 指令參考的 "0x14c96730" 內存。該內存不能為 "read"推論是此原因。
 

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

快速回復 返回頂部 返回列表
揭西县| 漳平市| 东方市| 德清县| 湘乡市| 平和县| 舒兰市| 永登县| 桑植县| 运城市| 鹤山市| 静宁县| 桦川县| 九江市| 钦州市| 大方县| 富宁县| 清新县| 横峰县| 蚌埠市| 聂拉木县| 新野县| 牡丹江市| 弥渡县| 宁武县| 桂林市| 平果县| 陆河县| 张家界市| 宜黄县| 龙井市| 伊春市| 历史| 青岛市| 台东县| 永春县| 库尔勒市| 莱州市| 阳高县| 吴堡县| 太康县|