[理工] page fault計算疑問 (更新圖

作者: eggy1018 (羅密歐與豬過夜)   2018-11-18 23:14:14
想請教大家一題原文書上面的題目,請參考下圖
https://i.imgur.com/NCvhvIR.jpg
我自己的想法是記憶體是row major存放資料,所以如果最外面的迴圈存的是row所以
可以一直存,直到一個page大小用完,即使外面迴圈跑兩次也沒關係,這是我看答案
的理解,但一直很難說服自己為什麼可以這樣。
相對的,如果外迴圈存的是column就沒辦法想像會怎麼跑了,只知道會產生相對多很
多的page fault。
另外再請教一個問題,在這兩種存矩陣的方式下所佔用的記憶體大小都一樣嗎?
是在new int[100][100]時就固定大小了嗎?
應該不會受到page fault的影響吧?這邊我會一直這樣卡住是因為會想到cache miss
會一直搬要存的block上來,懷疑說到底有沒有額外的記憶體空間浪費。
以上問題還有勞考題版各位幫忙,祝大家都金榜題名!
作者: aggress5566 (哩賀)   2018-11-19 00:45:00
http://bfy.tw/KvEa至於new int[100][100] 我記得如果沒有 assign value似乎是不會去 allocate memory 這要看實作了
作者: skyHuan (Huan)   2018-11-19 13:38:00
所以樓上有回答到問題嗎,小的資質駑鈍看不是很懂,更不太懂是在噓?
作者: eggy1018 (羅密歐與豬過夜)   2018-11-19 16:52:00
抱歉我沒有引用好文章,但這題還是不能明白,希望各位大大能幫忙
作者: aggress5566 (哩賀)   2018-11-19 17:47:00
我的回答就是先去理解C-like 2D array memory layout我是根據原文的疑問猜想原PO的問題是什麼至於dynamic memory allocation 我自己的經驗是call malloc的話 如果沒有assign value似乎是不會真的被swap out new的話也許概念上會類似 實作我沒有深究 另外推噓這種在PTT上沒什麼 大可以質疑我的推文

Links booklink

Contact Us: admin [ a t ] ucptt.com