作者ok8752665 ()
看板Grad-ProbAsk
标题[理工] OS Inverted Page Table的问题
时间Sat Sep 21 21:20:10 2019
想问说
为什麽这种方法可以缩减page table size
即使有多个page table其entry总数也比实体记忆体的entry少吧
我哪里搞错了吗
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.46.77.184 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1569072014.A.B23.html
1F:推 bitetw: 如果每个process的page table会比physical memory小的话 09/21 22:19
2F:→ bitetw: 就不用virtual memory 了吧 09/21 22:19
3F:推 bitetw: 啊抱歉以上有误xd 09/21 22:34
4F:→ ok8752665: 目前上课讲的是main memory 应该还跟virtual没关系吧 09/21 22:34
5F:→ DLHZ: page table每个process都一个 inverted的话整个系统只有一个 09/21 23:50
6F:→ DLHZ: 所以会说inverted无法share memory 09/21 23:50
7F:推 KaryuuIssen: Page table是Lookup table entry总数是固定的 09/22 04:18
8F:→ KaryuuIssen: 总大小随Process数目等比例增长 09/22 04:19
9F:→ ok8752665: 所以 一般的page table里面可能会有一堆空白栏位吗 09/22 08:04
10F:→ ok8752665: @DLHZ 你的意思是藉由去除share memory特性来降低table 09/22 09:21
11F:→ ok8752665: 大小吗 09/22 09:21
12F:→ DLHZ: 原本每个process都拿一个table process一多自然table就开始 09/22 11:15
13F:→ DLHZ: 占空间了 如果用inverted那就是用一个table记录哪些记忆体被 09/22 11:15
14F:→ DLHZ: 那个process拿去 但是当然就只能记录一个 所以就算其他proce 09/22 11:15
15F:→ DLHZ: ss要用同样的内容也没办法 只能自己再找个记忆体搬进去 09/22 11:15
16F:→ ok8752665: 所以各个table大小是一样的吗 我是想说每个process的en 09/22 12:11
17F:→ ok8752665: try都对到一个memory的frame 所以总数不会超过那张大ta 09/22 12:11
18F:→ ok8752665: ble 09/22 12:11
20F:→ ok8752665: are的情况下 左边的entry小於等於右边的entry数 09/22 13:27
21F:→ DLHZ: 这边不太确定 process的page table大小应该是取决於binding 09/22 13:27
22F:→ DLHZ: 时分配的大小 给的大一点page table就要大一点 09/22 13:27
23F:→ DLHZ: 大部分都有提到是最大的size怎麽计算但好像没特别说到底多大 09/22 13:30
24F:→ ok8752665: 好ㄅ 09/22 15:04
25F:推 KaryuuIssen: 知道Virtual address是几bit 知道Page size多大 09/22 17:28
26F:→ KaryuuIssen: 自然就可推得Page table的entry数 09/22 17:28
27F:→ KaryuuIssen: Page table里面可能会有一堆无效栏位(valid bit=0) 09/22 17:29
28F:→ KaryuuIssen: 代表Page上的资料不在记忆体中 09/22 17:30
29F:→ ok8752665: 喔喔 忘了有些不会全部载进去了 谢谢 09/22 17:49