作者mistel (Mistel)
看板Grad-ProbAsk
標題[理工] OS 相同資料區塊共享是怎麼做到的?
時間Wed Oct 9 01:16:20 2019
https://i.imgur.com/nbxhowb.jpg
第八題
1.我只知道page很容易達成資料/程式碼共享
但很難理解要怎麼把不同程式中相同的資料地址的virtual address去對到physical memory
中的同一頁?
2.請問題目中的分段,分頁式分段又是怎麼達到共享同一頁資料呢?
另外穿插問一下計組的東西:
aliasing跟aliasing problem到底是什麼?
aliasing:一些分頁被程式共享時(可能會被不同的虛擬位址存取),就有可能會發生alia
sing
《《《《為什麼不同的virtual address會存到同一頁?
aliasing problem:一頁的一個字組可能被快取到兩個不同的地方
這又是為什麼QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.50.75 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1570554982.A.996.html
1F:→ DLHZ: 1. table會讓你能對到同一個page10/09 01:32
2F:→ DLHZ: 2. 也一樣 我哪邊要共用就靠table來存取同一個部分10/09 01:33
3F:推 GeniusPuddin: aliasing應該很好理解:記憶體只有一份 程式有很多個10/09 01:36
4F:→ DLHZ: aliasing指如果有兩個程式a b都使用同一個page, a b可能有兩10/09 01:38
5F:→ DLHZ: 個資料都在同個位址, a在修改資料也同時修改到b的造成錯誤10/09 01:38
6F:→ DLHZ: 如果要分享同個部分就會對到同個位址10/09 01:40
感謝兩位
1、2我懂了
想問aliasing,為什麼在使用virtual address這種架構下才會造成這個問題?跟一般virtu
al轉physical的關鍵差異是什麼?
※ 編輯: mistel (223.137.50.75 臺灣), 10/09/2019 07:24:08
7F:推 ok8752665: 重點是virtual address不同 在cache的位置就不同10/09 08:46
8F:→ ok8752665: 明明對到同一個位置 寫其中一個 另一個沒改的話10/09 08:47
9F:→ ok8752665: 會造成inconsistent10/09 08:47
我懂了,總結一下就是因為program1跟program 2可能要同一頁資料,但因為virtual addre
ss不同,所以cache抓上來的同一頁可能在不同的cache block裡,這樣對嗎?
※ 編輯: mistel (223.137.174.132 臺灣), 10/09/2019 18:51:48
11F:→ ok8752665: 對阿 10/09 19:14