當前位置:首頁 » 硬碟大全 » 存儲器功能緩存管理
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

存儲器功能緩存管理

發布時間: 2023-06-30 02:50:06

A. 在操作系統中,()是負責管理計算機主存儲器的功能

寄存器、高速緩存、主存儲器和磁碟緩存均屬於操作系統存儲管理的管轄范疇,掉電後它們存儲的信息不再存在。固定磁碟和可移動存儲介質屬於設備管理的管轄范疇,它們存儲的信息將被長期保存。

計算機的存儲器可分成內存儲器和外存儲器。內存儲器在程序執行期間被計算機頻繁地使用,並且在一個指令周期期間是可直接訪問的。外存儲器要求計算機從一個外貯藏裝置例如磁帶或磁碟中讀取信息。

(1)存儲器功能緩存管理擴展閱讀

訪問內存的有效時間

從進程發出指定邏輯地址的訪問請求,經過地址變換,到在內存中找到對應的實際物理地址單元並取出數據,所需要花費的總時間,稱為內存的有效訪問時間(EAT)。

假設訪問一次內存的時間為t,在基本分頁存儲管理方式中,有效訪問時間分為第一次訪問內存時間(即查找頁表對應的頁表項所耗費的時間t)與第二次訪問內存時間(即訪問頁表項中的物理塊號與頁內地址所拼接成的實際物理地址所耗費的時間t)之和: EAT = t + t = 2t;

在快表中查找到所需表項存在著命中率的問題。所謂命中率,是指使用快表並在其中成功查找到所需頁面的表項的比率。

則:EAT = а×λ + (t+λ)(1-а) + t = 2t + λ - t×а;

上式中,λ表示查找快表所需要的時間,а表示命中率,t表示訪問一次內存所需要的時間。

B. 如何清楚蘋果手機緩存

  • 1

    首先需要確定蘋果手機當中緩存比較大的應用,一般就是我們經常使用的應用,比如微信,QQ等,也可以通過手機存儲空間管理查看佔用內存較大的應用,然後清除該應用產生的緩存。打開手機的「設置」,如圖所示。

  • 總結

  • 1

    蘋果手機怎麼清除緩存

    1、確定手機當中緩存較大的應用

    1)打開手機上面的設置,進入系統設置

    2)進入通用設置,選擇手機存儲空間

    3)確定哪些應用佔用手機空間比較大

    2、打開緩存較大的應用清除緩存

    1)打開登錄要清除緩存的應用

    2)打開該應用的設置,進入系統設置

    3)找到其中的清除緩存功能進行緩存的清除

  • 注意事項

  • tips:可以啟用手機的「卸載未使用的應用」功能,然後當手機存儲空間不足時會自動卸載未使用的應用,或者直接手動刪除不使用的應用,釋放手機存儲空間。

  • tips:本文以QQ清除緩存為例,介紹了應用怎麼清除緩存數據,所有應用都可以通過進入「設置」->「清除緩存」操作來刪除產生的緩存數據。

C. 存儲器管理不包含的功能是

存儲器管理不包含的功能是緩沖管理。根據查詢相關資料信息顯示,存儲器管理的功能有內存保護、內存擴充、地址映射,不包含緩沖管理。存儲器管理的對象是主存,也稱內存。主要功能包括分配和回收主存空間、提高主存利用率、擴充主存、對主存信息實現有效保護。

D. 存儲器層次結構中的緩存

《深入理解計算機系統》p422

6.1 存儲器層次結構中的緩存

一般而言,高速緩存( cache ,讀作「 cash 」)是一個小而快速的存儲設備,它作為存儲在更大、也更慢的設備中的數據對象的緩沖區域。使用高速緩存的過程稱為緩存( caching ,讀作「 cashing 」)。存儲器層次結構的中心思想是,對於每個 k ,位於 k 層的更快更小的存儲設備作為位於 k 十1層的更大更慢的存儲設備的緩存。換句話說,層次結構中的每一層都緩存來自較低一層的數據對象。例如,本地磁碟作為通過網路從遠程磁碟取出的文件(例如 Web 頁面)的緩存,主存作為本地磁碟上數據的緩存,依此類推,直到最小的緩存—— CPU 寄存器組。圖6-22展示了存儲器層次結構中緩存的一般性概念。第 k 十1層的存儲器被劃分成連續的數據對象組塊( chunk ),稱為塊( block )。每個塊都有一個唯一的地址或名字,使之區別於其他的塊。塊可以是固定大小的(通常是這樣的),也可以是可變大小的(例如存儲在 Web 伺服器上的遠程 HTML 文件)。例如,圖6-22中第 k 十1層存儲器被劃分成16個大小固定的塊,編號為0~15。

類似地,第 k 層的存儲器被劃分成較少的塊的集合,每個塊的大小與 k 十1層的塊的大小一樣。在任何時刻,第 k 層的緩存包含第 k 十1層塊的一個子集的副本。例如,在圖6-22中,第 k 層的緩存有4個塊的空間,當前包含塊4、9、14和3的副本。

數據總是以塊大小為傳送單元( transfer unit )在第 k 層和第 k +1層之間來回復制的。雖然在層次結構中任何一對相鄰的層次之間塊大小是固定的,但是其他的層次對之間可以有不同的塊大小。例如,在圖6-21中,L1和 LO 之間的傳送通常使用的是1個字大小的塊。L2和L1之間(以及I3和I2之間、L4和I3之間)的傳送通常使用的是幾十個位元組的

塊。而L5和L4之間的傳送用的是大小為幾百或幾千位元組的塊。一般而言,層次結構中較低層(離 CPU 較遠)的設備的訪問時間較長,因此為了補償這些較長的訪問時間,傾向於使用較大的塊。

1. 緩存命中

當程序需要第 k 十1層的某個數據對象 d 時,它首先在當前存儲在第 k 層的一個塊中查找 d 。如果 d 剛好緩存在第 k 層中,那麼就是我們所說的緩存命中( cache hit )。該程序直接從第 k 層讀取 d ,根據存儲器層次結構的性質,這要比從第 k +1層讀取 d 更快。例如,一個有良好時間局部性的程序可以從塊14中讀出一個數據對象,得到一個對第 k 層的緩存命中。

2. 緩存不命中

另一方面,如果第 k 層中沒有緩存數據對象 d ,那麼就是我們所說的緩存不命中( cache miss )。當發生緩存不命中時,第 k 層的緩存從第 k 十1層緩存中取出包含 d 的那個塊,如果第 k 層的緩存已經滿了,可能就會覆蓋現存的一個塊。

覆蓋一個現存的塊的過程稱為替換( replacing )或驅逐( evicting )這個塊。被驅逐的這個塊有時也稱為犧牲塊( victim block )。決定該替換哪個塊是由緩存的替換策略( replace — ment policy )來控制的。例如,一個具有隨機替換策略的緩存會隨機選擇一個犧牲塊。一個具有最近最少被使用 LRU )替換策略的緩存會選擇那個最後被訪問的時間距現在最遠的塊。

在第 k 層緩存從第 k 十1層取出那個塊之後,程序就能像前面一樣從第 k 層讀出 d 了。例如,在圖6-22中,在第 k 層中讀塊12中的一個數據對象,會導致一個緩存不命中,因為塊12當前不在第 k 層緩存中。一旦把塊12從第 k 十1層復制到第 k 層之後,它就會保持在那裡,等待稍後的訪問。

3. 緩存不命中的種類

區分不同種類的緩存不命中有時候是很有幫助的。如果第 k 層的緩存是空的,那麼對

任何數據對象的訪問都會不命中。一個空的緩存有時被稱為冷緩存( cold cache ),此類不命中稱為強制性不命中( compulsory miss )或冷不命中( cold miss )。冷不命中很重要,因為它們通常是短暫的事件,不會在反復訪問存儲器使得緩存暖身( warmed up )之後的穩定狀態中出現。

只要發生了不命中,第 k 層的緩存就必須執行某個放置策略( placement policy ),確定把它從第 k 十1層中取出的塊放在哪裡。最靈活的替換策略是允許來自第 k +1層的任何塊放在第 k 層的任何塊中。對於存儲器層次結構中高層的緩存(靠近 CPU ),它們是用硬體來實現的,而且速度是最優的,這個策略實現起來通常很昂貴,因為隨機地放置塊,定位起來代價很高。

因此,硬體緩存通常使用的是更嚴格的放置策略,這個策略將第 k 十1層的某個塊限制放置在第 k 層塊的一個小的子集中(有時只是一個塊)。例如,在圖6-22中,我們可以確定第 k 十1層的塊 i 必須放置在第 k 層的塊( i mod 4)中。例如,第 k 十1層的塊0、4、8和12會映射到第 k 層的塊0;塊1、5、9和13會映射到塊1;依此類推。注意,圖6-22中的示例緩存使用的就是這個策略。

這種限制性的放置策略會引起一種不命中,稱為沖突不命中( conflict miss ),在這種情況中,緩存足夠大,能夠保存被引用的數據對象,但是因為這些對象會映射到同一個緩存塊,緩存會一直不命中。例如,在圖6-22中,如果程序請求塊0,然後塊8,然後塊0,然後塊8,依此類推,在第 k 層的緩存中,對這兩個塊的每次引用都會不命中,即使這個緩存總共可以容納4個塊。

程序通常是按照一系列階段(如循環)來運行的,每個階段訪問緩存塊的某個相對穩定不變的集合。例如,一個嵌套循環可能會反復地訪問同一個數組的元素。這個塊的集合稱為這個階段的工作集( working set )。當工作集的大小超過緩存的大小時,緩存會經歷容量不命中( capacity miss )。換句話說就是,緩存太小了,不能處理這個工作集。

4. 緩存管理

正如我們提到過的,存儲器層次結構的本質是,每一層存儲設備都是較低一層的緩存。在每一層上,某種形式的邏輯必須管理緩存。這里,我們的意思是指某個東西要將緩存劃分成塊,在不同的層之間傳送塊,判定是命中還是不命中,並處理它們。管理緩存的邏輯可以是硬體、軟體,或是兩者的結合。

例如,編譯器管理寄存器文件,緩存層次結構的最高層。它決定當發生不命中時何時發射載入,以及確定哪個寄存器來存放數據。L1、L2和L3層的緩存完全是由內置在緩存中的硬體邏輯來管理的。在一個有虛擬內存的系統中, DRAM 主存作為存儲在磁碟上的數據塊的緩存,是由操作系統軟體和 CPU 上的地址翻譯硬體共同管理的。對於一個具有像 AFS 這樣的分布式文件系統的機器來說,本地磁碟作為緩存,它是由運行在本地機器上的 AFS 客戶端進程管理的。在大多數時候,緩存都是自動運行的,不需要程序採取特殊的或顯式的行動。

6.3.2 存儲器層次結構概念小結

概括來說,基於緩存的存儲器層次結構行之有效,是因為較慢的存儲設備比較快的存儲設備更便宜,還因為程序傾向於展示局部性:

1)利用時間局部性: 由於時間局部性,同一數據對象可能會被多次使用。一旦一個數據對象在第一次不命中時被復制到緩存中,我們就會期望後面對該目標有一系列的訪問命中。因為緩存比低一層的存儲設備更快,對後面的命中的服務會比最開始的不命中快很多。

2)利用空間局部性: 塊通常包含有多個數據對象。由於空間局部性,我們會期望後面對該塊中其他對象的訪問能夠補償不命中後復制該塊的花費。現代系統中到處都使用了緩存。正如從圖6-23中能夠看到的那樣, CPU 晶元、操作系統、分布式文件系統中和萬維網上都使用了緩存。各種各樣硬體和軟體的組合構成和管理著緩存。注意,圖6-23中有大量我們還未涉及的術語和縮寫。在此我們包括這些術語和縮寫是為了說明緩存是多麼的普遍。

E. 計算機的存儲器,寄存器和緩存的作用及聯系

高速緩沖存儲器是一種特殊的,存儲單元以及由Cache緩存控制部件。用相同類型的CPU高速緩存存儲單元中通常使用的半導體存儲裝置中,存儲器訪問時間,甚至比10倍的速度。高速緩沖存儲器控制器組件包括主存儲器地址寄存器,高速緩存地址的寄存器,主存儲器-cache地址轉換單元和更換控制部件。由於每個以及它們如何工作,什麼樣的作用,所以,我覺得我們沒有必要做進一步的研究,知道一般的緩存分為一級緩存(其中又分為數據緩存,代碼緩存),二級緩存就行了