CPU cache對於作業系統是透明的嗎,linux能否獲取CPU cache的相關內容?

時間 2021-05-07 01:36:42

1樓:

能抓到CPU到記憶體之間的資料介面通訊的話,是可以通過介面通訊一定程度上重建cache內容的。

ARM的有些核支援cache debug。但是應該需要debugger介入。

2樓:qin meng

設計上和理論上應該是透明的,但是並非完全不能控制,不少處理器還是有cache的預取和清除等指令的,程式設計加入可以更有效利用cache,當然用不好也會更劣化。

實際當中呢,並不完全透明。能不能讀取cache內容呢?能,但是方法比較特殊,僅限於現在有meltdown bug的處理器上,這個bug的方式就是靠一些邪門歪道的方式取cache裡面的東西,然後讀取寫不該讀取到的東西。

但這些都是意外,理論上不應該出現這種情況。

3樓:zr scat

對使用者態程式是透明的。

對於核心態程式,特別是某些驅動,硬體傳輸資料到記憶體之後,cpu其實是並不知情的,此時如果cache沒有重新整理,會出現資料不一致。

通常可以在讀取資料之前invalid cache,或者簡單粗暴的對某記憶體區域禁止cache來解決此問題。

4樓:張驍

半透明吧,說他透明是因為軟體真的不好精確控制快取的寫入時機,說他半透明是因為軟體還是有機會參與控制讀寫策略,有能力精準的清快取。這塊,可以看看頁表操作,找個DMA對映函式跟進去看一下。

debian作業系統相對於ubuntu有什麼優勢?

挨踢 Debian是ubuntu的爸爸,包括國內的UOS和deepin都是Debian的兒子。Debian乙個字穩反對新手不太友好適合伺服器使用。 xq114 從桌面使用的角度講,其實就是不想折騰 顏值問題,ubuntu自帶的主題太醜了還不好換 網路上的第三方主題很多有bug debian自帶就很不...

作業系統是如何被製作的?

仗賤走天涯 沒有作業系統的時候就沒有作業系統啊,這麼問沒有意義啊。古代的計算機使用穿孔卡的,先把作業 包括指令和資料 打在穿孔卡上,然後計算機讀取穿孔卡上的程式,計算完畢再用穿孔卡輸出。這樣子的話每個作業都要人工輸入程式,人工取結果。有一群懶人們想要是一次可以按批次輸入多個作業,結果也只需要取一次,...

作業系統排程如何實現?

the gc 系統裡的程序可以理解為乙個鍊錶,每個節點都儲存了對應程序的資訊,然後定時器會定時觸發中斷,中斷處理程式會判斷當前程序的時間片是否用完,是否處於就緒狀態等等,然後找到乙個可執行的程序,切換上下文。細節挺多的。 用心閣 一般來說,多工有搶占式多工和協作式多工。前者就是到了乙個時間片,作業系...