當前位置:首頁 » 編程語言 » c語言一級緩存
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言一級緩存

發布時間: 2022-12-21 13:27:14

c語言的輸入緩沖怎麼回事,哪裡有詳細介紹啊

緩沖是標准C中的標准I/O里的機制,標准庫里的I/O語句為了提高讀寫的效率,在實際讀寫之前將數據保存到一段內存中,這段內存就叫緩沖,分全緩沖,行緩沖兩種,全緩沖在緩沖的內存滿了之後做實際的讀寫,行緩沖在遇到換行符之後做實際的讀寫,unix高級環境編程里第五章里有詳細的說明,或者網路也有

㈡ c語言如何按任意鍵返回上一級

關於getchar()函數的說明,請參考http://..com/question/150979107.html
因為緩存中存有數據,所以,getchar()讀取時,會讀到返回數據,而不等待用戶輸入鍵盤按鍵。修改方法為:
一、getchar()之前加清除緩存(在windows系統下有效)
fflush(stdin) ;//清除緩存
getchar(); //等待用戶按鍵(回車)
system("cls");
二、採用系統命令pause,替換掉getchar();
system("pause"); //調用系統命令pause暫停,等待按"任意"鍵!
system("cls");
三、調用conio.h中的getch()函數
getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值(不讀,也不清除緩存中的數據),不等待用戶按回車,只要用戶按一個鍵,getch()就立刻返回。
#include <conio.h> //引用相關頭文件

getch(); //等待用戶按鍵(回車)
system("cls");

㈢ C語言中清除內存緩沖區的函數是什麼

是I/O 函數分為「帶緩沖」的和「不帶緩沖」的兩類。

帶緩沖的 I/O 函數寫數據時,並不直接寫磁碟介質,而是將數據先寫到這塊內存緩沖中,之後用戶空間緩沖中的數據會被傳送到系統緩沖中。

linux 內核會將系統緩沖中的數據送完磁碟驅動器(fsync函數可以加速這一過程),這之後,數據才真正的被寫入磁碟。

因為目前內存的讀寫速度往往遠大於硬碟的讀寫速度(常 ms 級)。因此,緩沖區的建立可以盡力避免太過頻繁的寫磁碟。

對於硬碟來說,寫入一個位元組可能跟寫入一個扇區沒什麼兩樣,程序員每次寫入的數據也許就幾個位元組,所以可以將每次寫入的幾個位元組放入緩沖區,排列組合成一整塊數據再寫入,也能極大的提升效率。

(3)c語言一級緩存擴展閱讀

1、帶緩沖的 I/O 讀函數讀取數據之前,則會首先判斷用戶空間的進程緩沖區是否包含數據,如果沒有,則繼續判斷系統緩沖區是否包含數據。

2、「帶緩沖」的 I/O 讀函數從磁碟讀取數據時,並不只讀取調用者指定的讀取位元組數。讀函數可能一次性讀取一個扇區(常常是 512B)保存在緩沖區里,只返回給程序員需要的 10 位元組。

㈣ CPU基礎知識大全詳解

CPU基礎 知識大全 詳解有哪些? CPU在電腦中是最核心關鍵的硬體之一,相當於人的大腦,決定了電腦運算能力,因此CPU的選擇至關重要。下面就讓我帶你去看看CPU基礎知識大全詳解,希望對你有所幫助吧!

程序員必須了解的CPU知識 - 科普篇

1導讀

對於一名程序員來說,無論你使用的是什麼語言,代碼最終都會交給CPU來執行。所以了解CPU相關的知識一方面屬於程序員的內功,另一方面也可以幫助你在日常編寫代碼時寫出更加高效的代碼

本文不打算對CPU進行深入探究,相反是以簡單的語言來幫助大家了解CPU的工作原理以及不得不提到的CPU緩存相關知識,其中晦澀的內容我會通過配圖來幫助大家理解,最後會以幾個例子來幫助大家更直觀的感受到CPU緩存帶來的性能影響

2CPU基礎知識

CPU即Central Processing Unit(中央處理器),是我們的代碼打交道最多的硬體之一,要想讓一個CPU工作,就必須給它提供指令和數據,而這里的指令和數據一般就放在我們的內存當中。其中指令就是由我們平常編寫的代碼翻譯而來,數據也是我們代碼中需要用到的數據(例如一個int值、一串字元串等等)

以C語言為例,從我們開始編寫到運行的生命周期可以粗略的用下圖表示:

大致分為以下幾個步驟

我們日常中使用編輯器或者IDE敲入代碼

代碼編寫完成後使用編譯和鏈接工具生成可以被執行的程序,也就是機器語言(指令的集合)

當程序被運行時,整個程序(包括指令和數據)會被完整的載入到內存當中

CPU不停的向內存讀取該程序的指令執行直到程序結束

通過上述第4步我們知道,CPU自身是沒有保存我們的程序的,需要不停的向內存讀取

那麼有個問題是CPU是如何向內存讀取的呢?

這里其實存在一個「匯流排」的概念,即CPU會通過地址匯流排、控制匯流排、數據匯流排來與我們的內存進行交互。其中地址匯流排的作用是定址,即CPU告訴內存需要哪一個內存地址上的數據;控制匯流排的作用是對外部組件的控制,例如CPU希望從內存讀取數據則會在控制匯流排上發一個「讀信號」,如果希望往內存中寫一個數據則會發一個「寫信號」;而數據匯流排的作用顧名思義就是用來傳輸數據本身的了

例如CPU需要希望從內存中讀一條數據,那麼整個過程為:

到這里我們已經知道了CPU在執行我們程序的過程中會不斷的與內存交互,讀取需要的指令和數據或者寫入相關的數據。這個過程是非常非常快的,一般CPU與內存交互一次需要200個時鍾周期左右,而現代的處理器單個時鍾周期一般都短於1納秒(1秒 = 十億納秒)

但我們的前輩們仍然對這個速度不滿足,所以又對CPU設計了一套緩存系統來加速對內存中數據的讀取

3CPU緩存

現代CPU通常設計三級緩存(L1、L2、L3),其中L1、L2緩存是每個CPU核心獨享的,L3緩存是所有CPU核心共享的,而L1緩存又分為數據緩存和指令緩存

我們的數據就從內存先到L3緩存中,再到L2緩存中,再到L1緩存中,最後再到CPU寄存器中

按照大小來看,通常L1 < L2 < L3 < 內存 < 磁碟,如果你手邊有一台Linu__機器的話,可以通過下面的命令查看CPU各級緩存的大小

以我手上這台伺服器為例,L1指令緩存大小為32K、數據緩存大小為32K,L2緩存大小為1MB,L3緩存大小為35.75MB

按照速度來看,通常L1 > L2 > L3 > 內存 > 磁碟,以時鍾周期為計量單位

L1緩存:約 4 個CPU時鍾周期

L2緩存:約 10 個CPU時鍾周期

L3緩存:約 40 個CPU時鍾周期

內存:約 200 個CPU時鍾周期

也就意味著如果能命中緩存,我們程序的執行速度至少提升5倍左右,如果能命中L1緩存則提升50倍左右,這已經屬於相當大的性能提升了

有了緩存系統後,CPU就不必要每條指令或數據都讀一次了,可以一次性讀取若干條指令或數據然後放到緩存里供以後查詢,因為根據局部性原理,CPU訪問內存時,無論是讀取指令還是數據,所訪問的內存單元都趨於聚集在一個較小的連續區域中,所以一次性讀取一塊連續的內存有利於後續的緩存命中

現實中,CPU通常情況下每次的讀取內存時都會一次性讀取內存中連續的64個位元組,這個連續的64位元組術語就叫做Cache Line(緩存行),所以每一級CPU緩存就像下面這樣

如果你手邊有一台Linu__機器的話,可以通過下面的命令查看你的機器使用的CPU的Cache Line大小是多少

對於我的伺服器來說,L1緩存就有 32KB / 64B = 512 個Cache Line

到這里,我們已經知道了CPU緩存的工作原理和載入方式,這里實際上還遺留了兩個話題沒有講,一個是如何組織每一級的 Cache Line(例如 L1 的 512 個Cache Line)來提升訪問的命中率;另一個更加復雜一點,在現代CPU都是多核的場景下如何保證數據的一致性,因為每個核都有自己的L1和L2緩存,那麼如果核心1修改的時候只修改了緩存的數據而沒有修改內存中的數據,其他核心讀到的就是舊數據了,如何解決這一問題?

由於本篇 文章 只是期望對CPU知識進行一個科普,不希望對於小白來說一次性接觸大量的新內容,所以這兩個問題我准備在後面的另外兩篇再進行更細致的討論

4性能對比

下面以幾個實際的例子來加深大家對Cache Line如何影響程序性能的理解

示例一

我們假設有一個5000萬長度的int數組,接著把這個數組的其中一些元素乘以2,考慮下面這兩份代碼

直覺上代碼一比代碼二少循環了4倍,並且也少乘2了4倍,理論上代碼一比代碼二快4倍左右才合理

但在我的伺服器上運行的結果是代碼一平均花費90毫秒,代碼二平均花費93毫秒,性能幾乎是差不多的,讀者可以自行思考一下原因,再點擊下方空白處查看解析

點擊下方空白區域查看解析

解析

這里最主要的原因還是Cache Line,雖然代碼一需要執行的指令確實比代碼二要少4倍,但由於CPU一次會把連續的64個位元組都讀入緩存,而讀寫緩存的速度又特別快(還記得嗎?L1的讀取速度只有約4個時鍾周期,是內存的50倍),以至於我們很難察覺到這4倍指令的差距

示例二

假設我們需要遍歷一個二維數組,考慮下面這兩種遍歷 方法 :

由於數組長度是一模一樣的,直覺上我們期望的是兩份代碼運行時間相差無幾。但在我的伺服器上代碼一運行需要23毫秒,代碼二運行需要51毫秒,讀者可以自行思考一下原因,再點擊下方空白處查看解析

點擊下方空白區域查看解析

解析

這里最主要的原因依然是Cache Line,由於C語言中二維數組的內存是連續的,所以我們按行訪問的時候訪問的一直都是連續的內存,而Cache Line也是連續的64個位元組,所以按行訪問對Cache Line更友好,更容易命中緩存

而按列訪問的話每次訪問的內存不是連續的,每次的跨度都是256__sizeof(int)也就是1KB,更容易出現緩存Miss

示例三

假設我們有一個數組,我們希望計算所有大於100的元素的和,考慮下面兩份代碼

其中代碼一是隨機生成了個長度為1000W的數組,然後統計大於100的所有數字的和;代碼二也是隨機生成了個長度為1000W的數組,但是是先排完序,再統計大於100的所有數字的和。並且可以看到,兩份代碼都是只計算了統計sum的那段代碼的消耗時間,所以兩份代碼都不考慮隨機生成數組和排序花費的時間

理論上來講兩份代碼花費時間應當是相差無幾的,但實際上在我的機器上跑出來第一份代碼輸出的是46毫秒,第二份代碼輸出的是23毫秒

讀者可以自行思考一下原因,再點擊下方空白處查看解析,提示:第二份代碼中在統計sum之前數組是有序的

電腦CPU如何選購? 台式機 CPU知識掃盲和選購建議

CPU有幾個重要的參數:架構、主頻、核心、線程、緩存、介面。

架構:

有句老話叫「拋開架構看核心主頻都是耍流氓」,那什麼是架構?假如我們把架構想像成交通工具,那麼老的架構就是火車,而新的架構就是高鐵,所以架構的提升直接影響CPU的性能。這也就是為什麼老式的CPU雖然也有超高的主頻但性能還是被現在的i3碾壓的原因了。

電腦CPU如何選購?台式機CPU知識掃盲和選購建議

主頻:

我們常在CPU的信息里看到 某某CPU主頻3.6GHz,這里的主頻其實是CPU內核工作的時鍾頻率,並不直接等於CPU的運算速度,但是高的主頻對於CPU的運算速度卻至關重要。

核心:

核心又稱內核,是CPU用來完成所有計算、接受/存儲命令、處理數據等任務的裝置。我們可以簡單的把核心理解為人的手,單核就是一隻手、雙核就是兩只手、四核就是四隻手。

核心數並不是越多越好的,要看使用場景,比如在打字的時候,兩只手就比一隻手效率高,但是在操作滑鼠的時候,使用兩只手只會起到適得其反的效果。至於什麼場景需要使用多少核心的CPU在下面會講到。

電腦CPU如何選購?台式機CPU知識掃盲和選購建議

線程:

我們通常會看到「四核四線程」 和「四核八線程」這兩種說法,我們可以簡單的把工廠里的流水線比作線程,把工人比作核心,早先由於工人工作技能不高,一個工人只能處理一條流水線的任務,我們可以把這個稱為單核單線程,但是後來工人技術熟練了,覺得操作一條流水線很無聊,不能體現自己的價值,於是就給又分配一條流水線,讓這個工人同時處理兩條流水線的任務,我們可以把這個稱為「單核雙線程」。

緩存:

緩存也是CPU里的一項非常重要的參數,由於CPU的運算速度比內存條的讀寫速度要快很多,這會讓CPU花費很長的時間等待數據的到來或是把數據寫入內存條,這個時候CPU內的高速緩存可以作為臨時的存儲介質來緩解CPU的運算速度與內存讀寫速度不匹配的矛盾,所以緩存越大越好。

電腦CPU如何選購?台式機CPU知識掃盲和選購建議

介面:

CPU需要通過介面安裝在主板上才能工作,而目前CPU的介面都是針腳式介面,AMD和英特爾的CPU在介面上就有很大的差別,所以需要使用適配介面的主板才能正常工作。目前英特爾主流的介面類型為LGA-1151介面(6、7、8代i3 i5 i7都是這種介面);AMD平台主流的介面類型有AM4介面(銳龍系列)和FM2+介面(速龍系列、APU系列)。

PS:英特爾最新的酷睿8代CPU雖然也是LGA-1151介面,但不適配老式的LGA-1151介面主板的平台,需要另購主板

說完了這些重要的參數,相信你也對CPU有了一個大概的了解,我們再談談不同場景對CPU的選擇。

計算機系統基礎:CPU相關知識筆記

1、什麼是CPU

計算機的基本硬體系統由運算器、控制器、存儲器、輸入設備、輸出設備5大部件組成。

運算器和控制器等部件被集成在一起稱為中央處理單元(Central Processing Unit,CPU).CPU

是硬體系統的核心。

2、CPU的用途

CPU主要負責獲取程序指令、對指令進行解碼並加以執行。

CPU的功能如下:

3、CPU的組成

CPU主要由運算器、控制器、寄存器和內部匯流排等部件組成。

3.1 運算器

運算器包括算術邏輯單元(ALU)、累加器、緩沖寄存器、狀態條件寄存器等。它的主要工作是完成所規定的的各種算術和邏輯運算。

算術邏輯單元(ALU):ALU的重要組成部件,負責處理數據,實現算術和邏輯運算。

累加器(AC):當執行算術或邏輯運算時,為ALU提供一個工作區。

數據緩沖器(DR):作為CPU和內存、外部設備之間數據傳送的中轉站、操作速度的緩沖;

在單累加器結構的運算器中,DR還可以作為操作數寄存器。

狀態寄存器(PSW):保存算術指令和邏輯指令運行或測試的結果建立的的各種條件碼內容,分為狀態標志和控制標志。

3.2 控制器

用於控制這個CPU的工作,不僅要保證程序的正確執行,還要能處理異常事件。

控制器主要包括指令控制邏輯、時序控制邏輯、匯流排控制邏輯、中斷控制邏輯。

3.2.1 指令控制

指令寄存器(IR):當執行一條指令時,需要先把它從內存存儲器取到緩沖寄存器中,再送入IR中暫存,指令解碼器會根據IR的內容產生各種微操作命令,控制其他部件協調工作,完成指令的功能。

程序計數器(PC):PC具有寄存和計數兩種功能。又稱為指令計數器。

地址寄存器(AR):用來保存當前CPU所訪問的內存單元地址。

指令解碼器(ID):包含指令操作碼和地址碼兩部分,為了能執行任何給定的指令必須對操作碼進行分析,以便識別要進行的操作。

3.2.2 時序控制

時序控制要為每條指令按時間順序提供應有的控制信號。

3.2.3 匯流排控制

為多個功能部件提供服務的信息通路的控制電路。

3.2.4 中斷控制

用於控制各種中斷請求,並根據優先順序排隊,逐個交給CPU處理。

3.3 寄存器組

分為專用寄存器、通用寄存器。運算器和控制器中的寄存器是專用寄存器,作用是固定的。

通用寄存器用途廣泛由程序員規定其用途。

4、什麼是多核CPU

內核:CPU的核心稱為內核,是CPU的最重要組成部分。CPU的所有計算、接收/存儲命令、處理數據都是由核心執行。

多核:在一個單晶元上集成兩個或者更多個處理器內核,並且每個內核都有自己的邏輯單元、控制單元、中端處理器、運算單元、一級Cache、二級Cache共享或獨有。

多核CPU優點:可滿足用戶同時進行多任務處理等要求。


CPU基礎知識大全詳解相關文章:

★ CPU的基礎知識大全有哪些

★ CPU基礎知識拓展大全

★ 電腦主板應用知識大全

㈤ 使用GPU編程,一定能夠提高運行速度嗎

主頻也叫時鍾頻率,單位是MHz(或GHz),用來表示CPU的運算、處理數據的速度。CPU的主頻=外頻×倍頻系數。很多人認為主頻就決定著CPU的運行速度,這不僅是個片面的,而且對於伺服器來講,這個認識也出現了偏差。至今,沒有一條確定的公式能夠實現主頻和實際的運算速度兩者之間的數值關系,即使是兩大處理器廠家Intel英特爾和AMD,在這點上也存在著很大的爭議,從Intel的產品的發展趨勢,可以看出Intel很注重加強自身主頻的發展。像其他的處理器廠家,有人曾經拿過一塊1G的全美達處理器來做比較,它的運行效率相當於2G的Intel處理器。
主頻和實際的運算速度存在一定的關系,但並不是一個簡單的線性關系. 所以,CPU的主頻與CPU實際的運算能力是沒有直接關系的,主頻表示在CPU內數字脈沖信號震盪的速度。在Intel的處理器產品中,也可以看到這樣的例子:1 GHz Itanium晶元能夠表現得差不多跟2.66 GHz至強( Xeon)/Opteron一樣快,或是1.5 GHz Itanium 2大約跟4 GHz Xeon/Opteron一樣快。CPU的運算速度還要看CPU的流水線、匯流排等等各方面的性能指標。
主頻和實際的運算速度是有關的,只能說主頻僅僅是CPU性能表現的一個方面,而不代表CPU的整體性能。
外頻
外頻是CPU的基準頻率,單位是MHz。CPU的外頻決定著整塊主板的運行速度。通俗地說,在台式機中,所說的超頻,都是超CPU的外頻(當然一般情況下,CPU的倍頻都是被鎖住的)相信這點是很好理解的。但對於伺服器CPU來講,超頻是絕對不允許的。前面說到CPU決定著主板的運行速度,兩者是同步運行的,如果把伺服器CPU超頻了,改變了外頻,會產生非同步運行,(台式機很多主板都支持非同步運行)這樣會造成整個伺服器系統的不穩定。
目前的絕大部分電腦系統中外頻與主板前端匯流排不是同步速度的,而外頻與前端匯流排(FSB)頻率又很容易被混為一談,下面的前端匯流排介紹談談兩者的區別。
前端匯流排(FSB)頻率
前端匯流排(FSB)頻率(即匯流排頻率)是直接影響CPU與內存直接數據交換速度。有一條公式可以計算,即數據帶寬=(匯流排頻率×數據位寬)/8,數據傳輸最大帶寬取決於所有同時傳輸的數據的寬度和傳輸頻率。比方,現在的支持64位的至強Nocona,前端匯流排是800MHz,按照公式,它的數據傳輸最大帶寬是6.4GB/秒。
外頻與前端匯流排(FSB)頻率的區別:前端匯流排的速度指的是數據傳輸的速度,外頻是CPU與主板之間同步運行的速度。也就是說,100MHz外頻特指數字脈沖信號在每秒鍾震盪一億次;而100MHz前端匯流排指的是每秒鍾CPU可接受的數據傳輸量是100MHz×64bit÷8bit/Byte=800MB/s。
其實現在「HyperTransport」構架的出現,讓這種實際意義上的前端匯流排(FSB)頻率發生了變化。IA-32架構必須有三大重要的構件:內存控制器Hub (MCH) ,I/O控制器Hub和PCI Hub,像Intel很典型的晶元組 Intel 7501、Intel7505晶元組,為雙至強處理器量身定做的,它們所包含的MCH為CPU提供了頻率為533MHz的前端匯流排,配合DDR內存,前端匯流排帶寬可達到4.3GB/秒。但隨著處理器性能不斷提高同時給系統架構帶來了很多問題。而「HyperTransport」構架不但解決了問題,而且更有效地提高了匯流排帶寬,比方AMD Opteron處理器,靈活的HyperTransport I/O匯流排體系結構讓它整合了內存控制器,使處理器不通過系統匯流排傳給晶元組而直接和內存交換數據。這樣的話,前端匯流排(FSB)頻率在AMD Opteron處理器就不知道從何談起了。
CPU的位和字長
位:在數字電路和電腦技術中採用二進制,代碼只有「0」和「1」,其中無論是 「0」或是「1」在CPU中都是 一「位」。
字長:電腦技術中對CPU在單位時間內(同一時間)能一次處理的二進制數的位數叫字長。所以能處理字長為8位數據的CPU通常就叫8位的CPU。同理32位的CPU就能在單位時間內處理字長為32位的二進制數據。位元組和字長的區別:由於常用的英文字元用8位二進制就可以表示,所以通常就將8位稱為一個位元組。字長的長度是不固定的,對於不同的CPU、字長的長度也不一樣。8位的CPU一次只能處理一個位元組,而32位的CPU一次就能處理4個位元組,同理字長為64位的CPU一次可以處理8個位元組。
倍頻系數
倍頻系數是指CPU主頻與外頻之間的相對比例關系。在相同的外頻下,倍頻越高CPU的頻率也越高。但實際上,在相同外頻的前提下,高倍頻的CPU本身意義並不大。這是因為CPU與系統之間數據傳輸速度是有限的,一味追求高主頻而得到高倍頻的CPU就會出現明顯的「瓶頸」效應—CPU從系統中得到數據的極限速度不能夠滿足CPU運算的速度。一般除了工程樣版的Intel的CPU都是鎖了倍頻的,少量的如Inter 酷睿2 核心的奔騰雙核E6500K和一些至尊版的CPU不鎖倍頻,而AMD之前都沒有鎖,現在AMD推出了黑盒版CPU(即不鎖倍頻版本,用戶可以自由調節倍頻,調節倍頻的超頻方式比調節外頻穩定得多)。
緩存
緩存大小也是CPU的重要指標之一,而且緩存的結構和大小對CPU速度的影響非常大,CPU內緩存的運行頻率極高,一般是和處理器同頻運作,工作效率遠遠大於系統內存和硬碟。實際工作時,CPU往往需要重復讀取同樣的數據塊,而緩存容量的增大,可以大幅度提升CPU內部讀取數據的命中率,而不用再到內存或者硬碟上尋找,以此提高系統性能。但是由於CPU晶元面積和成本的因素來考慮,緩存都很小。
L1 Cache(一級緩存)是CPU第一層高速緩存,分為數據緩存和指令緩存。內置的L1高速緩存的容量和結構對CPU的性能影響較大,不過高速緩沖存儲器均由靜態RAM組成,結構較復雜,在CPU管芯面積不能太大的情況下,L1級高速緩存的容量不可能做得太大。一般伺服器CPU的L1緩存的容量通常在32—256KB。
L2 Cache(二級緩存)是CPU的第二層高速緩存,分內部和外部兩種晶元。內部的晶元二級緩存運行速度與主頻相同,而外部的二級緩存則只有主頻的一半。L2高速緩存容量也會影響CPU的性能,原則是越大越好,以前家庭用CPU容量最大的是512KB,現在筆記本電腦中也可以達到2M,而伺服器和工作站上用CPU的L2高速緩存更高,可以達到8M以上。
L3 Cache(三級緩存),分為兩種,早期的是外置,現在的都是內置的。而它的實際作用即是,L3緩存的應用可以進一步降低內存延遲,同時提升大數據量計算時處理器的性能。降低內存延遲和提升大數據量計算能力對游戲都很有幫助。而在伺服器領域增加L3緩存在性能方面仍然有顯著的提升。比方具有較大L3緩存的配置利用物理內存會更有效,故它比較慢的磁碟I/O子系統可以處理更多的數據請求。具有較大L3緩存的處理器提供更有效的文件系統緩存行為及較短消息和處理器隊列長度。
其實最早的L3緩存被應用在AMD發布的K6-III處理器上,當時的L3緩存受限於製造工藝,並沒有被集成進晶元內部,而是集成在主板上。在只能夠和系統匯流排頻率同步的L3緩存同主內存其實差不了多少。後來使用L3緩存的是英特爾為伺服器市場所推出的Itanium處理器。接著就是P4EE和至強MP。Intel還打算推出一款9MB L3緩存的Itanium2處理器,和以後24MB L3緩存的雙核心Itanium2處理器。
但基本上L3緩存對處理器的性能提高顯得不是很重要,比方配備1MB L3緩存的Xeon MP處理器卻仍然不是Opteron的對手,由此可見前端匯流排的增加,要比緩存增加帶來更有效的性能提升。
CPU擴展指令集
CPU依靠指令來計算和控制系統,每款CPU在設計時就規定了一系列與其硬體電路相配合的指令系統。指令的強弱也是CPU的重要指標,指令集是提高微處理器效率的最有效工具之一。從現階段的主流體系結構講,指令集可分為復雜指令集和精簡指令集兩部分,而從具體運用看,如Intel的MMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)、SSE3、SSE4系列和AMD的3DNow!等都是CPU的擴展指令集,分別增強了CPU的多媒體、圖形圖象和Internet等的處理能力。通常會把CPU的擴展指令集稱為」CPU的指令集」。SSE3指令集也是目前規模最小的指令集,此前MMX包含有57條命令,SSE包含有50條命令,SSE2包含有144條命令,SSE3包含有13條命令。目前SSE4也是最先進的指令集,英特爾酷睿系列處理器已經支持SSE4指令集,AMD會在未來雙核心處理器當中加入對SSE4指令集的支持,全美達的處理器也將支持這一指令集。
CPU內核和I/O工作電壓
從586CPU開始,CPU的工作電壓分為內核電壓和I/O電壓兩種,通常CPU的核心電壓小於等於I/O電壓。其中內核電壓的大小是根據CPU的生產工藝而定,一般製作工藝越小,內核工作電壓越低;I/O電壓一般都在1.6~5V。低電壓能解決耗電過大和發熱過高的問題。
製造工藝
製造工藝的微米是指IC內電路與電路之間的距離。製造工藝的趨勢是向密集度愈高的方向發展。密度愈高的IC電路設計,意味著在同樣大小面積的IC中,可以擁有密度更高、功能更復雜的電路設計。現在主要的180nm、130nm、90nm、65nm、45納米。最近inter已經有32納米的製造工藝的酷睿i3/i5系列了。
而AMD則表示、自己的產品將會直接跳過32nm工藝(2010年第三季度生產少許32nm產品、如Orochi、Llano)於2011年中期初發布28nm的產品(名稱未定)
指令集
(1)CISC指令集
CISC指令集,也稱為復雜指令集,英文名是CISC,(Complex Instruction Set Computer的縮寫)。在CISC微處理器中,程序的各條指令是按順序串列執行的,每條指令中的各個操作也是按順序串列執行的。順序執行的優點是控制簡單,但計算機各部分的利用率不高,執行速度慢。其實它是英特爾生產的x86系列(也就是IA-32架構)CPU及其兼容CPU,如AMD、VIA的。即使是現在新起的X86-64(也被成AMD64)都是屬於CISC的范疇。
要知道什麼是指令集還要從當今的X86架構的CPU說起。X86指令集是Intel為其第一塊16位CPU(i8086)專門開發的,IBM1981年推出的世界第一台PC機中的CPU—i8088(i8086簡化版)使用的也是X86指令,同時電腦中為提高浮點數據處理能力而增加了X87晶元,以後就將X86指令集和X87指令集統稱為X86指令集。
雖然隨著CPU技術的不斷發展,Intel陸續研製出更新型的i80386、i80486直到過去的PII至強、PIII至強、Pentium 3,Pentium 4系列,最後到今天的酷睿2系列、至強(不包括至強Nocona),但為了保證電腦能繼續運行以往開發的各類應用程序以保護和繼承豐富的軟體資源,所以Intel公司所生產的所有CPU仍然繼續使用X86指令集,所以它的CPU仍屬於X86系列。由於Intel X86系列及其兼容CPU(如AMD Athlon MP、)都使用X86指令集,所以就形成了今天龐大的X86系列及兼容CPU陣容。x86CPU目前主要有intel的伺服器CPU和AMD的伺服器CPU兩類。
(2)RISC指令集
RISC是英文「Reced Instruction Set Computing 」 的縮寫,中文意思是「精簡指令集」。它是在CISC指令系統基礎上發展起來的,有人對CISC機進行測試表明,各種指令的使用頻度相當懸殊,最常使用的是一些比較簡單的指令,它們僅占指令總數的20%,但在程序中出現的頻度卻佔80%。復雜的指令系統必然增加微處理器的復雜性,使處理器的研製時間長,成本高。並且復雜指令需要復雜的操作,必然會降低計算機的速度。基於上述原因,20世紀80年代RISC型CPU誕生了,相對於CISC型CPU ,RISC型CPU不僅精簡了指令系統,還採用了一種叫做「超標量和超流水線結構」,大大增加了並行處理能力。RISC指令集是高性能CPU的發展方向。它與傳統的CISC(復雜指令集)相對。相比而言,RISC的指令格式統一,種類比較少,定址方式也比復雜指令集少。當然處理速度就提高很多了。目前在中高檔伺服器中普遍採用這一指令系統的CPU,特別是高檔伺服器全都採用RISC指令系統的CPU。RISC指令系統更加適合高檔伺服器的操作系統UNIX,現在Linux也屬於類似UNIX的操作系統。RISC型CPU與Intel和AMD的CPU在軟體和硬體上都不兼容。
目前,在中高檔伺服器中採用RISC指令的CPU主要有以下幾類:PowerPC處理器、SPARC處理器、PA-RISC處理器、MIPS處理器、Alpha處理器。
(3)IA-64
EPIC(Explicitly Parallel Instruction Computers,精確並行指令計算機)是否是RISC和CISC體系的繼承者的爭論已經有很多,單以EPIC體系來說,它更像Intel的處理器邁向RISC體系的重要步驟。從理論上說,EPIC體系設計的CPU,在相同的主機配置下,處理Windows的應用軟體比基於Unix下的應用軟體要好得多。
Intel採用EPIC技術的伺服器CPU是安騰Itanium(開發代號即Merced)。它是64位處理器,也是IA-64系列中的第一款。微軟也已開發了代號為Win64的操作系統,在軟體上加以支持。在Intel採用了X86指令集之後,它又轉而尋求更先進的64-bit微處理器,Intel這樣做的原因是,它們想擺脫容量巨大的x86架構,從而引入精力充沛而又功能強大的指令集,於是採用EPIC指令集的IA-64架構便誕生了。IA-64 在很多方面來說,都比x86有了長足的進步。突破了傳統IA32架構的許多限制,在數據的處理能力,系統的穩定性、安全性、可用性、可觀理性等方面獲得了突破性的提高。
IA-64微處理器最大的缺陷是它們缺乏與x86的兼容,而Intel為了IA-64處理器能夠更好地運行兩個朝代的軟體,它在IA-64處理器上(Itanium、Itanium2 ……)引入了x86-to-IA-64的解碼器,這樣就能夠把x86指令翻譯為IA-64指令。這個解碼器並不是最有效率的解碼器,也不是運行x86代碼的最好途徑(最好的途徑是直接在x86處理器上運行x86代碼),因此Itanium 和Itanium2在運行x86應用程序時候的性能非常糟糕。這也成為X86-64產生的根本原因。
(4)X86-64 (AMD64 / EM64T)
AMD公司設計,可以在同一時間內處理64位的整數運算,並兼容於X86-32架構。其中支持64位邏輯定址,同時提供轉換為32位定址選項;但數據操作指令默認為32位和8位,提供轉換成64位和16位的選項;支持常規用途寄存器,如果是32位運算操作,就要將結果擴展成完整的64位。這樣,指令中有「直接執行」和「轉換執行」的區別,其指令欄位是8位或32位,可以避免欄位過長。
x86-64(也叫AMD64)的產生也並非空穴來風,x86處理器的32bit定址空間限制在4GB內存,而IA-64的處理器又不能兼容x86。AMD充分考慮顧客的需求,加強x86指令集的功能,使這套指令集可同時支持64位的運算模式,因此AMD把它們的結構稱之為x86-64。在技術上AMD在x86-64架構中為了進行64位運算,AMD為其引入了新增了R8-R15通用寄存器作為原有X86處理器寄存器的擴充,但在而在32位環境下並不完全使用到這些寄存器。原來的寄存器諸如EAX、EBX也由32位擴張至64位。在SSE單元中新加入了8個新寄存器以提供對SSE2的支持。寄存器數量的增加將帶來性能的提升。與此同時,為了同時支持32和64位代碼及寄存器,x86-64架構允許處理器工作在以下兩種模式:Long Mode(長模式)和Legacy Mode(遺傳模式),Long模式又分為兩種子模式(64bit模式和Compatibility mode兼容模式)。該標准已經被引進在AMD伺服器處理器中的Opteron處理器.
而今年也推出了支持64位的EM64T技術,再還沒被正式命為EM64T之前是IA32E,這是英特爾64位擴展技術的名字,用來區別X86指令集。Intel的EM64T支持64位sub-mode,和AMD的X86-64技術類似,採用64位的線性平面定址,加入8個新的通用寄存器(GPRs),還增加8個寄存器支持SSE指令。與AMD相類似,Intel的64位技術將兼容IA32和IA32E,只有在運行64位操作系統下的時候,才將會採用IA32E。IA32E將由2個sub-mode組成:64位sub-mode和32位sub-mode,同AMD64一樣是向下兼容的。Intel的EM64T將完全兼容AMD的X86-64技術。現在Nocona處理器已經加入了一些64位技術,Intel的Pentium 4E處理器也支持64位技術。
應該說,這兩者都是兼容x86指令集的64位微處理器架構,但EM64T與AMD64還是有一些不一樣的地方,AMD64處理器中的NX位在Intel的處理器中將沒有提供。
超流水線與超標量
在解釋超流水線與超標量前,先了解流水線(pipeline)。流水線是Intel首次在486晶元中開始使用的。流水線的工作方式就象工業生產上的裝配流水線。在CPU中由5—6個不同功能的電路單元組成一條指令處理流水線,然後將一條X86指令分成5—6步後再由這些電路單元分別執行,這樣就能實現在一個CPU時鍾周期完成一條指令,因此提高CPU的運算速度。經典奔騰每條整數流水線都分為四級流水,即指令預取、解碼、執行、寫回結果,浮點流水又分為八級流水。
超標量是通過內置多條流水線來同時執行多個處理器,其實質是以空間換取時間。而超流水線是通過細化流水、提高主頻,使得在一個機器周期內完成一個甚至多個操作,其實質是以時間換取空間。例如Pentium 4的流水線就長達20級。將流水線設計的步(級)越長,其完成一條指令的速度越快,因此才能適應工作主頻更高的CPU。但是流水線過長也帶來了一定副作用,很可能會出現主頻較高的CPU實際運算速度較低的現象,Intel的奔騰4就出現了這種情況,雖然它的主頻可以高達1.4G以上,但其運算性能卻遠遠比不上AMD 1.2G的速龍甚至奔騰III。
封裝形式
CPU封裝是採用特定的材料將CPU晶元或CPU模塊固化在其中以防損壞的保護措施,一般必須在封裝後CPU才能交付用戶使用。CPU的封裝方式取決於CPU安裝形式和器件集成設計,從大的分類來看通常採用Socket插座進行安裝的CPU使用PGA(柵格陣列)方式封裝,而採用Slot x槽安裝的CPU則全部採用SEC(單邊接插盒)的形式封裝。現在還有PLGA(Plastic Land Grid Array)、OLGA(Organic Land Grid Array)等封裝技術。由於市場競爭日益激烈,目前CPU封裝技術的發展方向以節約成本為主。
多線程
同時多線程Simultaneous multithreading,簡稱SMT。SMT可通過復制處理器上的結構狀態,讓同一個處理器上的多個線程同步執行並共享處理器的執行資源,可最大限度地實現寬發射、亂序的超標量處理,提高處理器運算部件的利用率,緩和由於數據相關或Cache未命中帶來的訪問內存延時。當沒有多個線程可用時,SMT處理器幾乎和傳統的寬發射超標量處理器一樣。SMT最具吸引力的是只需小規模改變處理器核心的設計,幾乎不用增加額外的成本就可以顯著地提升效能。多線程技術則可以為高速的運算核心准備更多的待處理數據,減少運算核心的閑置時間。這對於桌面低端系統來說無疑十分具有吸引力。Intel從3.06GHz Pentium 4開始,所有處理器都將支持SMT技術。
多核心
多核心,也指單晶元多處理器(Chip multiprocessors,簡稱CMP)。CMP是由美國斯坦福大學提出的,其思想是將大規模並行處理器中的SMP(對稱多處理器)集成到同一晶元內,各個處理器並行執行不同的進程。與CMP比較, SMT處理器結構的靈活性比較突出。但是,當半導體工藝進入0.18微米以後,線延時已經超過了門延遲,要求微處理器的設計通過劃分許多規模更小、局部性更好的基本單元結構來進行。相比之下,由於CMP結構已經被劃分成多個處理器核來設計,每個核都比較簡單,有利於優化設計,因此更有發展前途。目前,IBM 的Power 4晶元和Sun的 MAJC5200晶元都採用了CMP結構。多核處理器可以在處理器內部共享緩存,提高緩存利用率,同時簡化多處理器系統設計的復雜度。
2005年下半年,Intel和AMD的新型處理器也將融入CMP結構。新安騰處理器開發代碼為Montecito,採用雙核心設計,擁有最少18MB片內緩存,採取90nm工藝製造,它的設計絕對稱得上是對當今晶元業的挑戰。它的每個單獨的核心都擁有獨立的L1,L2和L3 cache,包含大約10億支晶體管。
SMP
SMP(Symmetric Multi-Processing),對稱多處理結構的簡稱,是指在一個計算機上匯集了一組處理器(多CPU),各CPU之間共享內存子系統以及匯流排結構。在這種技術的支持下,一個伺服器系統可以同時運行多個處理器,並共享內存和其他的主機資源。像雙至強,也就是所說的二路,這是在對稱處理器系統中最常見的一種(至強MP可以支持到四路,AMD Opteron可以支持1-8路)。也有少數是16路的。但是一般來講,SMP結構的機器可擴展性較差,很難做到100個以上多處理器,常規的一般是8個到16個,不過這對於多數的用戶來說已經夠用了。在高性能伺服器和工作站級主板架構中最為常見,像UNIX伺服器可支持最多256個CPU的系統。
構建一套SMP系統的必要條件是:支持SMP的硬體包括主板和CPU;支持SMP的系統平台,再就是支持SMP的應用軟體。為了能夠使得SMP系統發揮高效的性能,操作系統必須支持SMP系統,如WINNT、LINUX、以及UNIX等等32位操作系統。即能夠進行多任務和多線程處理。多任務是指操作系統能夠在同一時間讓不同的CPU完成不同的任務;多線程是指操作系統能夠使得不同的CPU並行的完成同一個任務 。
要組建SMP系統,對所選的CPU有很高的要求,首先、CPU內部必須內置APIC(Advanced Programmable Interrupt Controllers)單元。Intel 多處理規范的核心就是高級可編程中斷控制器(Advanced Programmable Interrupt Controllers–APICs)的使用;再次,相同的產品型號,同

㈥ C語言程序 如何把當前程序的內存狀態保存下來(到硬碟),下次運行時接著上次保存的內存狀態運行

有稻草
當懷疑係統重新啟動之前針對計算機所進行的更改可能導致故障,可以在啟動系統時按F8鍵,選擇「最後一次正確的配置」來恢復對系統所做的更改。

2.自動登陸
單擊開始→運行,輸入「rundll32 netplwiz.dll,UsersRunDll」(不帶引號),然後在User Accounts中取消「Users must enter a user name and password to use this computer」,單擊「OK」,接著在彈出的對話框中輸入你想自己登陸的用戶名和密碼即可。

3.快速關機或重啟的快捷鍵(可定時)
在桌面點擊滑鼠右鍵,選擇新建(快捷方式,在彈出的向導中輸入位置為:C:/WINDOWS/system32/shutdown.exe -s -t 10(其中的-s可以改為-r,也就是重新啟動,而-t 10表示延遲10秒,你可以根據自己的需要更改這個數字)。製作完這個快捷鍵後,按照上面的方法為它指定一個圖標。這個快速關機或重啟的技巧會顯示一個比較漂亮的對話框提示關機(重啟),而且你可以在後面加上「-c "我要關機啦!"」,這樣這句話會顯示在對話框中,當然文字你可以隨意寫,但要注意不能超過127個字元。

4.關機、重啟只要1秒鍾
如果你想讓Windows XP瞬間關機,那麼可以按下CTRL+ALT+DEL,接著在彈出的任務管理器中點擊「關機」→「關機」,與此同時按住CTRL,不到1秒鍾你會發現系統已經關閉啦,簡直就在眨眼之間。同樣道理,如果在「關機」菜單中選擇「重啟」,即可快速重啟。

5. 尋找丟失的快速啟動欄
把滑鼠移到任務欄的空白區域,單擊右鍵從彈出的菜單中選擇「屬性」,在彈出的窗口中選擇「任務欄」選項卡,再從「任務欄外觀」框中把「顯示快速啟動」的復選框選中,「確定」就行了。

6. 快速鎖定計算機
在桌面上單擊滑鼠右鍵,在隨後出現的快捷菜單上選擇新建「快捷方式」,接著系統便會啟動創建快捷方式向導,在文本框中輸「rundll32.exe user32.dll,LockWorkStation」,點擊「下一步」,在彈出的窗口中輸入快捷方式的名稱,點擊「完成」即可。當然最簡單的鎖定計算機的方法是直接按WinKey + L。

7.恢復「開始」菜單
Windows XP新的「開始」菜單還是挺方便的,對系統資源的影響也不大。如果你喜歡過去的經典菜單的話,用滑鼠右鍵單擊任務欄空白處,選擇「屬性」菜單,進入「任務欄和開始菜單屬性」的設置窗口,選擇「[開始]菜單」選項卡,選擇「經典[開始]菜單」即可恢復到從前的模樣了。

8.優化視覺效果
Windows XP的操用界面的確是很好看,好看的背後是以消耗大量內存作為代價的,相對於速度和美觀而言,我們還是寧願選擇前者,右鍵單擊「我的電腦」,點擊「屬性/ 高級」,在「性能」一欄中,點擊「設置/視覺效果」,在這里可以看到外觀的所有設置,可以手工去掉一些不需要的功能。在這里把所有特殊的外觀設置諸如淡入淡出、平滑滾動、滑動打開等所有視覺效果都關閉掉,我們就可以省下「一大筆」內存

9.禁用多餘的服務組件
Windows XP和Windows 2000一樣可以作為諸如Http伺服器、郵件伺服器、FTP伺服器,所以每當Windows XP啟動時,隨之也啟動了許多服務,有很多服務對於我們這些普通用戶來說是完全沒用的,所以關掉它們是一個很好的選擇。操作的方法是:右鍵單擊「我的電腦」,依次選擇「管理/服務和應用程序/服務」,將不需要的服務組件禁用。
注意:有些服務是Windows XP必需的,關閉後會造系統崩潰。查看詳細說明確認後再禁止。

10.減少啟動時載入項目
許多應用程序在安裝時都會自作主張添加至系統啟動組,每次啟動系統都會自動運行,這不僅延長了啟動時間,而且啟動完成後系統資源已經被吃掉不少!我們可以減少系統啟動時載入的程序,方法是:選擇「開始」菜單的「運行」,鍵入「msconfig」啟動「系統配置實用程序」,進入「啟動」標簽,在此窗口列出了系統啟動時載入的項目及來源,仔細查看你是否需要它自動載入,否則清除項目前的復選框,載入的項目愈少,啟動的速度自然愈快。此項需要重新啟動方能生效。

11.關閉系統還原功能
「系統還原」功能是Windows系列操作系統的一個重要特色,當Windows運行出現問題後,還原操作系統。「系統還原」雖然對經常犯錯誤的人有用,但是它會讓你的硬碟處於高度繁忙的狀態,你會發現你的硬碟總是忙個不停,因為Windows XP要記錄操作,以便日後還原。如果你對自己有信心,那麼就不要使用它,因為它可占不少內存。
關閉系統還原功能方法是:單擊「開始/所有程序/附件/系統工具/系統還原」,在系統還原界面,單擊「系統還原設置」進入「系統還原設置」窗口,清空「在所有驅動器上關閉系統還原」復選框,這樣Windows XP就會刪除備份的系統還原點,從而釋放它佔用的磁碟空間。

12.關閉自動更新
「自動更新」是Windows XP為了方便用戶升級系統而推出的一種新功能,這種功能可以在微軟推出系統升級補丁或系統安全補丁的時候,自動提醒用戶升級自己的系統,不過這種功能有一個要求,就是用戶必須時時在線,但是對於我們這些缺鐵少銀的「窮人」來說,這個要求未免苛刻,所以我們把「自動升級」功能關閉掉,改為「手動升級」。
關閉自動更新具體操作為:右鍵單擊「我的電腦/屬性/自動更新」,在「通知設置」一欄選擇「關閉自動更新。我將手動更新計算機」一項。

13.關閉遠程桌面
這個功能的一個特點就是可以讓別人在另一台機器上訪問你的桌面。在區域網中,這個功能很有用。比如你有問題了可以向同事求助,他可以不用到你的跟前,直接通過「遠程桌面」來訪問你的機器幫你解決問題。但是對於我們只有一台計算機的普通用戶來說這個功能就顯得多餘了,所以我們把它關掉,不讓它在那兒白白浪費內存。具體操作為:右鍵單擊「我的電腦」,選擇「屬性/遠程」,把「遠程桌面」里的「允許用戶遠程連接到這台計算機」勾去掉。

14.禁用消休眠功能
Windows XP的休眠可以把內存中當前的系統狀態完全保存到硬碟,當你下次開機的時候,系統就不需要經過載入、系統初始化等過程,而直接轉到你上次休眠時的狀態,因此啟動非常快。但它會佔用大量的硬碟空間(和你的內存大小一樣),可以到「控制面板/電源選項/休眠」中將其關閉,以釋放出硬碟空間,待到要需要使用時再打開即可。方法是:單擊「開始/控制面板/電源管理/休眠」,將「啟用休眠」前的勾去掉。

15.合理設置虛擬內存
對於虛擬內存文件,Windows XP為了安全默認值總是設的很大,浪費了不少的硬碟空間,其實我們完全可以將它的值設小一點。方法是:進入「控制面板/系統/高級/性能/設置/高級/虛擬內存/更改」,來到虛擬內存設置窗口,首先確定你的頁面文件在哪個驅動器盤符,然後將別的盤符驅動器的頁面文件全部禁用。建議你把它是設置到其他分區上,而不是默認的系統所在的分區,這樣可以提高頁面文件的讀寫速度,有利於系統的快速運行。根據微軟的建議,頁面文件應設為內存容量的1.5倍,但如果你的內存比較大,那它佔用的空間也是很可觀的,所以,建議如果內存容量在256MB以下,就設置為1.5倍,最大值和最小值一樣,如果在512MB以上,設置為內存容量的一半完全可行。

16.刪除多餘文檔
Windows XP中有許多文件平時我們很少用到,放在硬碟中,白白浪費空間,降低系統性能。我們完全可以把這些用不到的文件刪除,需要刪除的文件有:
幫助文件:在C:/Windows/Help目錄下。
驅動備份:C:/Windows/driver cache/i386目錄下的Driver.cab文件。
系統文件備份: 一般用戶是不怎麼用的,利用命令sfc.exe /purgecache刪除。
備用的dll文件:在C:/Windows/system32/dllcache目錄下。
輸入法:在C:Windows/Ime文件夾下直接刪除chtime、imjp8_1、imkr6_1三個目錄即可,分別是繁體中文、日文、韓文輸入法。

17.禁止MSN隨Windows啟動
每次啟動Windows時,Messenger總是自動運行,即使你不想啟動它,可是它也自動運行,非常煩人,我們能不能禁止它,不讓它隨Windows啟動呢?回答是可以的。
第一種方法:
1.在「開始」菜單中單擊「運行」,在「打開」框中輸入「msconfig」,「確定」後打開「系統配置實用程序」窗口。
2.單擊「啟動」選項卡,在「啟動項目」列表中,清除「MSMSGS」前的復選框,單擊「確定」按鈕。
3.當系統提示「重新啟動計算機」時,請單擊「是」按鈕。
第二種方法:
1.打開「注冊表編輯器」窗口。
2.依次展開「KEY_CURRENT_」分支,然後在右窗格中右鍵單擊「MSMSGS」,再單擊快捷菜單中的「刪除」命令,當系統提示確認刪除時,請單擊「是」按鈕。
經過設置,MSN就再也不會隨Windows XP的啟動而啟動了。

18.刪除多餘字體
Windows XP中安裝的字體越多,就會佔用更多的內存的系統資源,減慢系統的運行速度,因此,對於不常用的字體,我們最好把它從系統中刪除。字體文件存放在C:/Windows/font目錄下,你完全可以根據需要選擇一些字體,對於更多不用的字體,一刪了之。

19.更改IE臨時文件夾
上網時產生的大量臨時文件都存放在IE臨時文件夾中,默認情況下,臨時文件夾是在系統分區上,大量的臨時文件會影響硬碟讀寫系統文件的性能。你可以更改臨時文件的位置來避免出現這種情況。方法是單擊「開始/控制面板/Internet選項」,在「常規」選項卡中單擊「設置」按鈕,在打開的窗口中單擊「移動文件夾」按鈕,指定一個非系統分區上的文件夾,單擊「確定」後,臨時文件就會移到指定的文件夾上。

20.加快「網上鄰居」共享的速度
不知道各位使用者用Windows XP開「網上鄰居」裡面的共享資源時,有沒有發現所花的時間相當的長,這是因為它會檢查其它計算機中的設定工作,有時甚至就在那邊停了將近一分鍾,相當討厭,大家可以通過下面的方法將其檢查的步驟取消:選擇「開始/運行」,輸入regedit,在彈出注冊表編輯器中尋找 [HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Explorer/RemoteComputer/NameSpace],按滑鼠右將在此位置的刪除之即可。

21.清除預讀文件
當Windows XP使用一段時間後,安裝目錄下的預讀文件夾(C:/Windows/prefetch)里的文件會變的很大,裡面會有死鏈接文件,這會減慢系統時間,建議你定期刪除這些文件。

22.設置預讀以提高速度
Windows XP使用預讀設置這一新技術,以提高系統速度。如果你的電腦配置不錯,擁有PIII 800, 512M內存以上,你可以進行以下修改:單擊「開始/運行」,輸入「regedit」,打開注冊表,找到 [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Memory Management/PrefetchParameters/EnablePrefetcher],設置數值0,1,2,3(0-Disable,1- 預讀應用程序,2-啟動預讀,3-前兩者皆預讀),推薦使用「3」,這樣可以減少啟動時間。

23.啟用DMA傳輸模式
所謂DMA,即直接存儲器存儲模式,指計算機周邊設備(主要指硬碟)可直接與內存交換數據,這樣可加快硬碟讀寫速度,提高速據傳輸速率。由於某些原因, Windows XP有時會在IDE通道上使用PIO並行輸入輸出傳輸模式,而不是DMA模式。如果有這種情況,用戶可以手動把IDE通道改為DMA模式,這樣可以減少該設備佔用的CPU周期。方法是:右鍵點擊「我的電腦」,選「屬性」,點選「硬體」選項卡,單擊「設備管理器」按鈕,打開「設備管理器」,然後點擊展開 「IDE ATA/ATAPI 控制器」分支,其中「IDE控制器」有兩項「主要IDE通道」及「次要IDE通」,分別選中,依次進入「屬性/高級設置」,該對話框會列出目前IDE介面所連接設備的傳輸模式,檢查「傳輸模式」下拉菜單,把它們全部設「DMA(若可用)」,點擊「確定」。

24.關閉計算機時自動結束任務
在關機的時候,有時會彈出討厭的對話框,提醒某個程序仍在運行,是否結束任務。其實完全可以通過一點點修改讓Windows自動結束這些仍在運行的程序。在注冊表中打開HKEY_CURRENT_USER/Control Panel/Desktop 目錄,把裡面的AugoEndTasks鍵值改為1。
注意:可能會找不到AutoEndTasks鍵值,如果是這樣的話,自己建一個串值並把它改為這個名字,值設為1就可以了。

25.減少磁碟掃描等待時間
WindowsXP雖然號稱穩定,但是並不是永不死機,偶爾也會給你個藍臉,非法操作後系統會自動掃描,出現大段大段的E文,告訴你剛才系統非正常結束,現在需要檢查一下是否出錯,可是還要等待一段時間才開始,所以我們可以在dos下,鍵入「chkntfs/t:0」,表示等待時間為0秒。

26.設置共享文件夾的許可權
Windows 2000操作系統中用戶在設置文件夾的共享屬性時操作非常簡便,只需用滑鼠右擊該文件夾並選擇屬性,就可以找到共享設置標簽,來設置文件夾的訪問許可權,只允許特定用戶訪問,可在Windows XP中卻找不到這個功能了。難道在Windows XP中不能使用這個功能嗎?其實不然,你可以這樣操作:打開「我的電腦」中的「工具」,選擇「文件夾屬性」,調出「查看」標簽,在「文件和文件夾」部分將 「使用簡單文件共享(推薦)」項前面的選擇取消,這樣修改後用戶就可以象使用Windows 2000一樣對文件夾屬性進行方便修改了。

27.徹底隱藏文件
每個人的機器上都或多或少有一點不願意別人看見的東西,怎麼辦,直接隱藏起來嗎?一打開顯示隱藏文件就什麼都看見了,其實你只要HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/explorer/Advanced/Folder/Hidden/SHOWALL下, DWORD值Checkedvalue設為0(如果沒有這一項可新建一個),這樣當有非法用戶開啟顯示隱藏文件功能後,你的文件也不會被顯示出來。

28.快速鎖定計算機
如果你因為有急事而需要離開,但又不希望電腦進行系統注銷。這時你可以選擇「新建/快捷方式」,接著系統便會啟動創建快捷方式向導,在文本框中輸入 "rundll32.exe user32.dll,LockWorkStation",單擊「下一步」,在彈出的窗口中輸入快捷方式的名稱。比如我們可將它命名為「鎖定計算機」或選用你所喜歡的任何名稱,單擊「完成」。以後,我們就可以簡單地點擊這個快捷方式,鎖定計算機。

29.禁止隱藏不活動的圖標
在使用一段時間後,Windows XP會自動檢測並隱藏不活動的圖標,我們可以通過下面的方法來禁止它:在任務欄的空白處單擊滑鼠右鍵,在彈出的快捷菜單中選擇「屬性」,在「任務欄」標簽中將「隱藏不活動的圖標」取消即可,如果你不想完全禁止這項功能,可以單擊「自定義」按鈕,自行設置有關項目的隱藏和顯示。

30.讓歡迎窗口更清晰
Windows XP系統的顯示效果得到了較大提高,這主要是基於它使用了名「ClearType」的清晰化技術,該技術特別讓使用筆記本電腦及液晶顯示器的用戶在運行 Windows XP操作系統時感受到與以往系統不同的效果。但由於該清晰效果只有當Windows啟動完畢後才能調用,因此在系統啟動過程中的歡迎窗口仍然無法實現這一效果。為了使歡迎窗口更加清晰,用戶可以使用注冊表編輯器進行修改,尋找到這兩個主鍵:
HKEY_USERS/.Default/Control Panel/Desktop/FontSmoothing
HKEY_USERS/.Default/Control Panel/Desktop/FontSmoothingType
將鍵值修改為「2」,這樣便可以實現清晰顯示效果了。

31.隱藏桌面圖標
在Windows XP中增加了隱藏桌面圖標的功能,你只需用滑鼠單擊桌面空白處,在彈出的右鍵菜單中選定「排列圖標」命令,然後在其下一級級聯菜單中取消對「顯示桌面圖標」命令的選定,系統就會自動將所有桌面圖標隱藏。

32.縮短等待時間
HKEY_CURRENT_USER\Control Panel\Desktop 鍵,將右邊窗口的 WaitToKillAppTimeout 改為 4000(原設定值:20000),即關閉程序時僅等待1秒。將 HungAppTimeout 值改為:2000(原設定值:5000),表示程序出錯時等待0.5秒。

33.優化「啟動和故障恢復」設置:
右鍵單擊「我的電腦」,點擊屬性,點擊「高級」,在「啟動和故障恢復」
一欄中,點擊「設置」,其中的「系統失敗」一欄中,只選擇「自動重新啟動」,寫入調試信息選擇「無」。

34.定製特殊的啟動提示注冊表:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Winlogon中的"LegaNoticeCaption"是登陸提示語言,「LegalNoticeText」是歡迎詞。

35.windowsXP的內存優化!!!!!!!!!!!!(警告!!!!!以下設置需要有256M以上的內存才能有好的效果!!!)
注冊表:
HKEK_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/SessionManager/Memory Management
中的:禁用內存頁面調度: DisablePagingExecutive 值改為「1」
提升系統緩存: LargeSystemCache 值改為「1」

36.卸載無用的動態鏈接
資源管理器經常在內存中留下無用的動態鏈接,為了消除這種現象,你可以打開注冊表編輯器,設置鍵值:HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows\CurrentVersion\Explorer/AlwaysUnloadDLL(字元串值)將其設為1

37.在關機時清空頁面文件
打開「控制面板」,點擊「性能和維護」-「管理工具」→「本地安全策略」→「本地策略」→「安全選項」,雙擊其中「關機:清理虛擬內存頁面文件」
一項,點擊彈出選單中的「已啟用」選項,單擊「確定」即可

38.Windows XP 安裝好後,如何把FAT 32轉化為NTFS
使用convert命令,在命令行模式下用convert.exe這個命令隨時轉化的。例如:convert c: /fs:ntfs把c盤轉化為NTFS

39.上網時在地址欄內輸入網址,系統會記錄下來,雖然方便以後不用再重復,不過如果是公用的機子,又不想讓別人知道自己到過哪些地方,可以用「CTRL+ O(字母O,不是0)」,這時對彈出一個「打開」對話框,在其中的地址欄內 輸入網址,就不會被記錄下來了.

電腦死機原因大全
由硬體原因引起的死機

顯示器、電源和CPU在工作中發熱量非常大,因此保持良好的通風狀況非常重要,如果顯示器過熱將會導致色彩、圖象失真甚至縮短顯示器壽命。工作時間太長也會導致電源或顯示器散熱不暢而造成電腦死機。CPU的散熱是關繫到電腦運行的穩定性的重要問題,也是散熱故障發生的「重災區」。

在電腦移動過程中受到很大振動常常會使機器內部器件松動,從而導致接觸不良,引起電腦死機,所以移動電腦時應當避免劇烈振動。

機器內灰塵過多也會引起死機故障。如軟碟機磁頭或光碟機激光頭沾染過多灰塵後,會導致讀寫錯誤,嚴重的會引起電腦死機。

如主板主頻和CPU主頻不匹配,老主板超頻時將外頻定得太高,可能就不能保證運行的穩定性,因而導致頻繁死機。

三維軟體和一些特殊軟體,可能在有的微機上就不能正常啟動甚至安裝,其中可能就有軟硬體兼容方面的問題。

主要是內存條松動、虛焊或內存晶元本身質量所致。應根據具體情況排除內存條接觸故障,如果是內存條質量存在問題,則需更換內存才能解決問題。

主要是硬碟老化或由於使用不當造成壞道、壞扇區。這樣機器在運行時就很容易發生死機。可以用專用工具軟體來進行排障處理,如損壞嚴重則只能更換硬碟了。另外對於在不支持UDMA 66/100的主板,應注意CMOS中硬碟運行方式的設定。

超頻提高了CPU的工作頻率,同時,也可能使其性能變得不穩定。究其原因,CPU在內存中存取數據的速度本來就快於內存與硬碟交換數據的速度,超頻使這種矛盾更加突出,加劇了在內存或虛擬內存中找不到所需數據的情況,這樣就會出現「異常錯誤」。解決辦法當然也比較簡單,就是讓CPU回到正常的頻率上。

是由於音效卡或顯示卡的設置沖突,引起異常錯誤。此外,其它設備的中斷、DMA或埠出現沖突的話,可能導致少數驅動程序產生異常,以致死機。解決的辦法是以「安全模式」啟動,在「控制面板」→「系統」→「設備管理」中進行適當調整。對於在驅動程序中產生異常錯誤的情況,可以修改注冊表。選擇「運行」,鍵入「REGEDIT」,進入注冊表編輯器,通過選單下的「查找」功能,找到並刪除與驅動程序前綴字元串相關的所有「主鍵」和「鍵值」,重新啟動。

內存容量越大越好,應不小於硬碟容量的0.5~1%,如出現這方面的問題,就應該換上容量盡可能大的內存條。

少數不法商人在給顧客組裝兼容機時,使用質量低劣的板卡、內存,有的甚至出售冒牌主板和Remark過的CPU、內存,這樣的機器在運行時很不穩定,發生死機在所難免。因此,用戶購機時應該警惕,並可以用一些較新的工具軟體測試電腦,長時間連續考機(如72小時),以及爭取盡量長的保修時間等。

由軟體原因引起的死機

病毒可以使計算機工作效率急劇下降,造成頻繁死機。這時,我們需用殺毒軟體如KV3000、金山毒霸、瑞星等來進行全面查毒、殺毒,並做到定時升級殺毒軟體。

該故障現象很普遍,如硬碟參數設置、模式設置、內存參數設置不當從而導致計算機無法啟動。如將無ECC功能的內存設置為具有ECC功能,這樣就會因內存錯誤而造成死機。

由於Windows 9x啟動需要有Command.com、Io.sys、Msdos.sys等文件,如果這些文件遭破壞或被誤刪除,即使在CMOS中各種硬體設置正確無誤也無濟於事。解決方法:使用同版本操作系統的啟動盤啟動計算機,然後鍵入「SYS C:」,重新傳送系統文件即可。

由於Windows 9x啟動需要讀取System.ini、Win.ini和注冊表文件,如果存在Config.sys、Autoexec.bat文件,這兩個文件也會被讀取。只要這些文件中存在錯誤信息都可能出現死機,特別是System.ini、Win.ini、User.dat、System.dat這四個文件尤為重要。

在Windows操作系統中還有一類文件也相當重要,這就是擴展名為DLL的動態鏈接庫文件,這些文件從性質上來講是屬於共享類文件,也就是說,一個DLL文件可能會有多個軟體在運行時需要調用它。如果我們在刪除一個應用軟體的時候,該軟體的反安裝程序會記錄它曾經安裝過的文件並准備將其逐一刪去,這時候就容易出現被刪掉的動態鏈接庫文件同時還會被其它軟體用到的情形,如果丟失的鏈接庫文件是比較重要的核心鏈接文件的話,那麼系統就會死機,甚至崩潰。我們可用工具軟體如「超級兔仔」對無用的DLL文件進行刪除,這樣會避免誤刪除。

如果硬碟的剩餘空間太少,由於一些應用程序運行需要大量的內存、這樣就需要虛擬內存,而虛擬內存則是由硬碟提供的,因此硬碟要有足夠的剩餘空間以滿足虛擬內存的需求。同時用戶還要養成定期整理硬碟、清除硬碟中垃圾文件的良好習慣。

應備份BIOS以防不測,但如果你的系統需要對BIOS進行升級的話,那麼在升級之前最好確定你所使用BIOS版本是否與你的PC相符合。如果BIOS升級不正確或者在升級的過程中出現意外斷電,那麼你的系統可能無法啟動。所以在升級BIOS前千萬要搞清楚BIOS的型號。如果你所使用的BIOS升級工具可以對當前BIOS進行備份,那麼請把以前的BIOS在磁碟中拷貝一份。同時看系統是否支持BIOS恢復並且還要懂得如何恢復。

大多數人可能認為軟體升級是不會有問題的,事實上,在升級過程中都會對其中共享的一些組件也進行升級,但是其它程序可能不支持升級後的組件從而導致各種問題。

最好少用軟體的測試版,因為測試軟體通常帶有一些BUG或者在某方面不夠穩定,使用後會出現數據丟失的程序錯誤、死機或者是系統無法啟動。

不要把軟體安裝所在的目錄直接刪掉,如果直接刪掉的話,注冊表以及Windows目錄中會有很多垃圾存在,久而久之,系統也會變不穩定而引起死機。

因為這些軟體可能隱藏著病毒,一旦執行,會自動修改你的系統,使系統在運行中出現死機。

這種情況是常見的,如在Win 98中運行那些在DOS或Windows 3.1中運行良好的16位應用軟體。Win 98是32位的,盡管它號稱兼容,但是有許多地方是無法與16位應用程序協調的。還有一些情況,如在Win 95下正常使用的外設驅動程序,當操作系統升級後,可能會出現問題,使系統死機或不能正常啟動。遇到這種情況應該找到外設的新版驅動。

這使系統資源消耗殆盡,使個別程序需要的數據在內存或虛擬內存中找不到,也會出現異常錯誤。

用非法格式或參數非法打開或釋放有關程序,也會導致電腦死機。請注意要牢記正確格式和相關參數,不隨意打開和釋放不熟悉的程序。

㈦ 求答案,c語言

D B B C B B C A D D C D C B C D B B A C B
4次 第一步:分成3組:27,27,26,將前2組放到天平上
有獲勝策略 第1次在第5堆中取32顆石子
10,10
6 28 496 8128 33550336
5
6 2 5 4 3 7 9 9 7 3 4 5 2 6

① k=n (或n=k)
② count mod 5=0
③ perm(k+1)
④ a[k]:=a[j];a[j]:=t
⑤ perm(1)
2.⑥ break
⑦ t mod 50=0
⑧ a-p*b(或a-b*p)
⑨ c*10+1 (或10*c+1)
⑩ n

㈧ 淺析C語言中堆和棧的區別

一、堆棧空間分配區別:
1、棧(操作系統):由操作系統自動分配釋放 ,存放函數的參數值,局部變數的值等。其操作方式類似於數據結構中的棧;
2、堆(操作系統): 一般由程序員分配釋放, 若程序員不釋放,程序結束時可能由OS回收,分配方式倒是類似於鏈表。
二、堆棧緩存方式區別:
1、棧使用的是一級緩存, 他們通常都是被調用時處於存儲空間中,調用完畢立即釋放;
2、堆是存放在二級緩存中,生命周期由虛擬機的垃圾回收演算法來決定(並不是一旦成為孤兒對象就能被回收)。所以調用這些對象的速度要相對來得低一些。
三、堆棧數據結構區別:
堆(數據結構):堆可以被看成是一棵樹,如:堆排序;
棧(數據結構):一種先進後出的數據結構。