內存網格關鍵技術探析
(二)Cache一致性問題
在單處理器(uniprocessor)系統中,由于處理器與10子系統看到的內存視圖不同而產生了Cache一致性問題。這是因為10子系統直接讀寫的是內存區域:處理器在寫回(write-back)策略下,首先讀寫的是Cache,只有當讀寫的塊要被替換時,才將該Cache中的塊內容寫回到內存。這就產生了處理器看到的內存視圖與10子系統看到的不一樣的情況。在多處理器(multiprocessors)系統中,Cache一致性問題是由對共享數據的緩存引發。在RAM Grid系統中。由于RAM Grid所擴展的緩存層次位于主存和磁盤之間,處理器并不會直接進行讀寫。所以RAM Grid系統并不存在Cache一致性問題。
四 異步緩存寫入
為了不影響系統效率,內存網格系統采用了異步緩存寫入的方法來完成內存客戶節點對內存服務節點的數據更新。內存網格系統使用函數截獲方法來修改磁盤10的執行流程,異步寫操作發生在函數截獲過程中,而函數截獲過程發生在核心態,所以異步緩存寫入不得不選擇在核心態實現。為了使寫入過程不對原來的。系統執行流程造成較大的性能損失,采用了內核線程的方法來完成寫入過程。在內核模塊中,我們設立了一個全局緩存區用以記錄內存客戶節點磁盤讀寫函數中產生的“新”緩存數據,而使用一個內核線程來將內存客戶節點中的新緩存數據周期性的寫入到內存服務節點的虛擬塊設各中。這樣,整個問題演變成了傳統操作系統中的讀者/寫者問題。緩存數據區的每一個塊中存放著一個緩存數據結構信息。這個數據結構中包含有設備號、塊號、塊大小、緩存數據內容和使用標志位等元信息,這些信息主要用于緩存數據本身的管理和緩存數據在內存服務節點上數據的定位。
更多醫療電子信息請關注:21ic醫療電子頻道
評論