版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國(guó)]-中央處理器空閑時(shí)間

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

基本概念

在計(jì)算機(jī)中,CPU的運(yùn)行速度遠(yuǎn)遠(yuǎn)快于I/O設(shè)備的速度,當(dāng)內(nèi)存中僅有一道程序時(shí),每逢該程序在運(yùn)行中發(fā)出I/O請(qǐng)求后,CPU空閑,CPU等待I/O設(shè)備完成I/O請(qǐng)求的時(shí)間,稱為CPU空閑時(shí)間。操作系統(tǒng)采用了多種措施來(lái)利用和縮短CPU的空閑時(shí)間。除了CPU的空閑時(shí)間,計(jì)算機(jī)網(wǎng)絡(luò)中也有空閑時(shí)間這個(gè)術(shù)語(yǔ),主要應(yīng)用在信道信息傳輸中。

空閑時(shí)間這個(gè)術(shù)語(yǔ)在計(jì)算機(jī)科學(xué)中是指等待時(shí)間,這里并沒(méi)有指出哪個(gè)部分的等待時(shí)間。因?yàn)樵谟?jì)算機(jī)中不同對(duì)象的空閑時(shí)間的含義是不相同的。例如CPU空閑時(shí)間是指PU等待I/O設(shè)備完成I/O請(qǐng)求的時(shí)間。進(jìn)程的空閑時(shí)間是指進(jìn)程等待服務(wù)的時(shí)間,為了減少進(jìn)程的空閑時(shí)間,會(huì)采用不同的調(diào)度算法。在異步串行通信中,空閑時(shí)間是指一個(gè)字符結(jié)束和下一個(gè)字符開始的時(shí)間間隔,這個(gè)時(shí)間可以持續(xù)任意長(zhǎng),但要求傳送方必須使線路空閑狀態(tài)至少達(dá)到某一最小時(shí)間,通常所選定的最小時(shí)間就是傳輸一位所需的時(shí)間1。

CPU空閑時(shí)間百分比空閑時(shí)間百分比就是系統(tǒng)空閑進(jìn)程所占的總的進(jìn)程的百分比。

System idle Process 是WIN2000/xp以上系統(tǒng)所有的。System idle Process”進(jìn)程其實(shí)是“系統(tǒng)空閑進(jìn)程”,是在cpu空閑的時(shí)候,發(fā)出一個(gè)idle命令,使cpu掛起(暫時(shí)停止工作),可有效的降低CPU內(nèi)核的溫度。在操作系統(tǒng)服務(wù)里面,都沒(méi)有禁止它的選項(xiàng),默認(rèn)它是占用除了當(dāng)前應(yīng)用程序所分配的處理器(CPU)百分比之外的所有占用率,一旦應(yīng)用程序發(fā)出請(qǐng)求,處理器會(huì)立刻響應(yīng)的。在這個(gè)進(jìn)程里出現(xiàn)的CPU占用數(shù)值并不是真正的占用而是體現(xiàn)的CPU的空閑率,也就說(shuō)這個(gè)數(shù)值越大CPU的空閑率就越高,反之就是CPU的占用率越高。

原因及解決方案CPU的空閑時(shí)間主要是因?yàn)镃PU與于I/O設(shè)備運(yùn)行速度不匹配造成的,在計(jì)算機(jī)中,CPU資源是十分寶貴的,要充分利用。一般是從利用CPU空閑時(shí)間和減少CPU空閑時(shí)間兩個(gè)方面來(lái)提出解決方案,常見的方法有多道程序、DMA和I/O通道。

多道程序多道程序設(shè)計(jì)技術(shù)是在計(jì)算機(jī)內(nèi)存中同時(shí)存放幾道相互獨(dú)立的程序,使它們?cè)诠芾沓绦蚩刂葡?,相互穿插運(yùn)行,兩個(gè)或兩個(gè)以上程序在計(jì)算機(jī)系統(tǒng)中同處于開始到結(jié)束之間的狀態(tài),,這些程序共享計(jì)算機(jī)系統(tǒng)資源。與之相對(duì)應(yīng)的是單道程序,即在計(jì)算機(jī)內(nèi)存中只允許一個(gè)的程序運(yùn)行。特征1)多道:即計(jì)算機(jī)內(nèi)存中同時(shí)存放幾道相互獨(dú)立的程序。2)宏觀上并行:同時(shí)進(jìn)入系統(tǒng)的幾道程序都處于運(yùn)行過(guò)程中,即它們先后開始了各自的運(yùn)行,但都未運(yùn)行完畢。3)微觀上串行:從微觀上看,內(nèi)存中的多道程序輪流地或分時(shí)地占有CPU。優(yōu)點(diǎn):1、提高CPU的利用率。在多道程序環(huán)境下,多個(gè)程序共享計(jì)算機(jī)資源當(dāng)某個(gè)程序等待I/O操作時(shí),CPU可以執(zhí)行其他程序,大大提高CPU的利用率。2、提高設(shè)備的利用率。在多道程序環(huán)境下,多個(gè)程序共享系統(tǒng)的設(shè)備,大大提高系統(tǒng)設(shè)備的利用率。3、提高系統(tǒng)的吞吐量。在多道程序環(huán)境下,減少了程序的等待時(shí)間,提高了系統(tǒng)的吞吐量。

DMADMA(Direct Memory Access,直接內(nèi)存存取) 是所有現(xiàn)代電腦的重要特色,它允許不同速度的硬件裝置來(lái)溝通,而不需要依賴于 CPU 的大量中斷負(fù)載。否則,CPU 需要從來(lái)源把每一片段的資料復(fù)制到暫存器,然后把它們?cè)俅螌懟氐叫碌牡胤健T谶@個(gè)時(shí)間中,CPU 對(duì)于其他的工作來(lái)說(shuō)就無(wú)法使用。

DMA 傳輸將數(shù)據(jù)從一個(gè)地址空間復(fù)制到另外一個(gè)地址空間。當(dāng)CPU 初始化這個(gè)傳輸動(dòng)作,傳輸動(dòng)作本身是由 DMA 控制器來(lái)實(shí)行和完成。典型的例子就是移動(dòng)一個(gè)外部?jī)?nèi)存的區(qū)塊到芯片內(nèi)部更快的內(nèi)存區(qū)。像是這樣的操作并沒(méi)有讓處理器工作拖延,反而可以被重新排程去處理其他的工作。DMA 傳輸對(duì)于高效能 嵌入式系統(tǒng)算法和網(wǎng)絡(luò)是很重要的。

在實(shí)現(xiàn)DMA傳輸時(shí),是由DMA控制器直接掌管總線,因此,存在著一個(gè)總線控制權(quán)轉(zhuǎn)移問(wèn)題。即DMA傳輸前,CPU要把總線控制權(quán)交給DMA控制器,而在結(jié)束DMA傳輸后,DMA控制器應(yīng)立即把總線控制權(quán)再交回給CPU。一個(gè)完整的DMA傳輸過(guò)程必須經(jīng)過(guò)DMA請(qǐng)求、DMA響應(yīng)、DMA傳輸、DMA結(jié)束4個(gè)步驟。

DMA技術(shù)的出現(xiàn),使得外圍設(shè)備可以通過(guò)DMA控制器直接訪問(wèn)內(nèi)存,與此同時(shí),CPU可以繼續(xù)執(zhí)行程序.那么DMA控制器與CPU怎樣分時(shí)使用內(nèi)存呢?通常采用以下三種方法:(1)停止CPU訪內(nèi)存;(2)周期挪用;(3)DMA與CPU交替訪問(wèn)內(nèi)存。

I/O通道I/O 通道方式是 DMA 方式的發(fā)展, 它可進(jìn)一步減少 CPU 的干預(yù), 即把對(duì)一個(gè)數(shù)據(jù)塊的讀(或?qū)?為單位的干預(yù)減少為對(duì)一組數(shù)據(jù)塊的讀(或?qū)?及有關(guān)的控制和管理為單位的干預(yù)。同時(shí),又可實(shí)現(xiàn) CPU、通道和 I/O 設(shè)備三者的并行操作,從而更有效地提高整個(gè)系統(tǒng)的資源利用率。例如,當(dāng) CPU 要完成一組相關(guān)的讀(或?qū)?操作及有關(guān)控制時(shí),只需向 I/O 通道發(fā)送一條 I/O 指令,以給出其所要執(zhí)行的通道程序的首址和要訪問(wèn)的 I/O 設(shè)備,通道接到該指令后,通過(guò)執(zhí)行通道程序便可完成 CPU 指定的 I/O 任務(wù)2。