iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 16
0

Cache只是單純的copy,而且copy的資料是暫時性的,所以你可以隨時把它砍掉,都不會造成你的損失。

https://ithelp.ithome.com.tw/upload/images/20181018/20111939dI1lLCKLje.png

因為它有很多cache,所以你要make sure它的資料必須是一致的如果今天有cache的話,運作就像這邊看見的,它我們在做data access的時候,一定是從CPU來的,CPU就會從最近的那一層去找資料,如果有它會直接讀,沒有當然就往下一層,下一層沒有它就再下一層,所以一層一層的往後看,eventually資料不會掉所以它會找到,但是它讀回來的時候,就會被cache住,所以其實這時候是會變慢一點,如果你cache一個miss的話,它其實有時候會比沒有cache還會再更慢,因為我們知道它必須一層一層檢查,而且回來的時候它還要做copy,所以copy是一個花時間的動作,所以它可能就會變慢。

可是我們的目的就是我們知道人還在用電腦,程式的特性遠重於重要於系統它本來的目的,所以我們access的data其實都有pattern,常用的東西就是那些,所以你cache一次或許很慢,第一次miss很慢,可是之後會非常非常快,所以total總和起來,你會發現cache還是有助於整個系統效能的,因為使用的特性,如果今天沒有使用這個特性的話,你要重新想一下,我的cache要怎麼設計,我還要不要cache?事實上,現在有些系統它是沒有cache的,因為cache一點作用都沒有還會把事情變慢。

最簡單的例子就是big data,要處理很大量的資料然後來做些應用,因為資料量這麼大,所以你讀這些資料的時候一定是掃過一遍就丟掉,不可能在那邊來來回回看來看去,或是說它一定大到你的memory都塞不下,這種狀況下你還要cache嗎?不用嘛,因為沒有意義,你讀完下次回來它已經滿了,那你早就被丟出去了,所以處理這些巨量資料的系統,它們的這些系統裡面甚至於就是沒有cache,它資料不cache,效能更好一點,所以不是OS要cache的。


上一篇
第十五天 Storage-6
下一篇
第十七天 Storage-8
系列文
30天~作業系統學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言