“假设给你一台虚拟地址为 16 位、页面大小为 256 字节的计算机。系统使用从地址十六进制 400 开始的一级页表。也许你想要 DMA...谁知道呢?第一个为硬件标志等保留了很少的页。假设页表条目有 8 个状态位,这 8 个状态位将是...”
http://www.youtube.com/watch?v=-3Rt2_9d7Jg
有人可以解释为什么答案是马克/杰西所描述的吗?
根据此页面记录了社交网络的一些技术不准确之处,该问题(严重)源自于实际哈佛课程中的问题。
一个示例问题:假设我们有一台 16 位的计算机 虚拟地址,页大小为 256 字节。该系统使用 一级页表,从地址 0x0400 开始。 (前几 页面是为硬件标志等保留的。也许你想要 你的 16 位系统上的 DMA,谁知道?)假设页表条目有 8 个状态位:1 个有效位、1 个修改位、1 个参考位和 5 个 权限位(这是一个非常安全的系统)。
有多少页?页表需要多少内存?
8 个状态位与体系结构相关,并且在这个特定问题中,是作为虚拟计算机的假设而构成的。电影制片人只是简单地接受了问题描述,并将其中一个假设作为问题——这个问题一开始就没有意义。
为了更容易理解这一点,想象您有如下问题
一辆车穿过马路1小时。假设汽车的速度为 100公里/小时,汽车行驶了多少距离?
问题变成了
一辆车穿过马路1小时。汽车的速度是……?
编辑:没有意识到原始文章使用了与我类似的类比。
让我解释一下我对页面大小和虚拟寻址的理解。 这就是我所知道的: 当页面大小为 256 字节时,我们有一个 16 位虚拟地址系统,其中:
据我所知,这 8 位分为状态位和权限位,它们在每个页面的页表条目中指定: 前 3 个状态位
Valid bit
Modified bit
Reference bit
我仍在了解它们的具体工作原理,一旦我更好地理解它们,我就会更新。 权限位(5 位) 假设我们有像 00400 这样的权限位。这就是它的含义: 前两位数字 (00) 表示特殊许可标志:
0 = nothing special
4 = setuid (lets you run file with owner's permissions)
2 = setgid (lets you run file with group's permissions)
1 = sticky bit (only file owner can delete it)
最后三位数字(400)控制常规文件权限:
First digit = what the user can do
Second digit = what the group can do
Third digit = what others can do
数字的含义:
4 = read (r)
2 = write (w)
1 = execute (x)
0 = no permissions
你可以将它们结合起来:
5 = read and execute (4 + 1)
6 = read and write (4 + 2)
7 = read, write, and execute (4 + 2 + 1)
我仍然需要更多地研究前三位(有效、修改和参考)。一旦我更好地理解了它们的工作原理,我就会更新它。