[理工] OS 相同資料區塊共享是怎麼做到的?

看板Grad-ProbAsk作者 (Mistel)時間6年前 (2019/10/09 01:16), 6年前編輯推噓2(209)
留言11則, 3人參與, 6年前最新討論串1/1
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://www.ptt.cc/bbs/Grad-ProbAsk/M.1570554982.A.996.html

10/09 01:32, 6年前 , 1F
1. table會讓你能對到同一個page
10/09 01:32, 1F

10/09 01:33, 6年前 , 2F
2. 也一樣 我哪邊要共用就靠table來存取同一個部分
10/09 01:33, 2F

10/09 01:36, 6年前 , 3F
aliasing應該很好理解:記憶體只有一份 程式有很多個
10/09 01:36, 3F

10/09 01:38, 6年前 , 4F
aliasing指如果有兩個程式a b都使用同一個page, a b可能有兩
10/09 01:38, 4F

10/09 01:38, 6年前 , 5F
個資料都在同個位址, a在修改資料也同時修改到b的造成錯誤
10/09 01:38, 5F

10/09 01:40, 6年前 , 6F
如果要分享同個部分就會對到同個位址
10/09 01:40, 6F
感謝兩位 1、2我懂了 想問aliasing,為什麼在使用virtual address這種架構下才會造成這個問題?跟一般virtu al轉physical的關鍵差異是什麼? ※ 編輯: mistel (223.137.50.75 臺灣), 10/09/2019 07:24:08

10/09 08:46, 6年前 , 7F
重點是virtual address不同 在cache的位置就不同
10/09 08:46, 7F

10/09 08:47, 6年前 , 8F
明明對到同一個位置 寫其中一個 另一個沒改的話
10/09 08:47, 8F

10/09 08:47, 6年前 , 9F
會造成inconsistent
10/09 08:47, 9F

10/09 08:50, 6年前 , 10F
我懂了,總結一下就是因為program1跟program 2可能要同一頁資料,但因為virtual addre ss不同,所以cache抓上來的同一頁可能在不同的cache block裡,這樣對嗎? ※ 編輯: mistel (223.137.174.132 臺灣), 10/09/2019 18:51:48

10/09 19:14, 6年前 , 11F
對阿
10/09 19:14, 11F
文章代碼(AID): #1TdCHccM (Grad-ProbAsk)