在电影 The Social Network 中,当Mark Zuckberg上课时,老师问了这个问题:
假设我们有一台计算机,具有16位虚拟地址,页面大小为256字节,系统使用从地址十六进制400开始的一级页表,可能是您想要的DMA(直接您的16位系统上的内存访问。谁知道?第一页保留用于硬件标志等。假设页表条目具有八个状态位。那么八个状态位将是......
Mark Zuckberg回答:
一个有效位,一个修改位,一个参考位和五个许可位。
他是怎么得到的?
答案 0 :(得分:2)
答案 1 :(得分:0)
英特尔在括号中的命名法。有效的' (现在),'修改' (脏)和'参考' (访问)位是请求分页管理器和MMU所需的最小位数。 有效的' MMU使用(当前)位来了解页面是否映射到有效的物理地址。
'已修改'请求调页管理器使用(脏)位来确定被驱逐的页面是否需要写入后备媒体。由于访问支持媒体可能被认为是一项昂贵的操作,因此您真的希望将其保持在最低限度 - 特别是在写入时,因为这通常比从中读取要慢。
'参考' (已访问)位对请求分页管理器有用,可以确定如何对其控制的页面进行老化。您不想逐出最频繁使用的页面,因为这需要从后备存储(已经被称为SLOW)重复保存和/或加载它们。
剩下的五位是肉汁。它们可以自由地用作许可和/或选项位。例如,主管和/或用户线程是否可以访问该页面?页面是否可用于写入,还是只读?在页面上使用的缓存策略是什么?
希望这有帮助。
Sparky的
答案 2 :(得分:0)
他是如何得到答案的?---那只是电影BS。
如果取地址中的位数并减去用于表示页面的位数,则可获得处理器可用作系统状态位的位数。
利用该信息,他可以识别系统状态位的数量
这些位的使用是另一回事。系统状态位的分配取决于系统。也许它们存在,但我不知道任何16位虚拟寻址系统。所以他并没有提到任何特定类型的系统。
所有系统(例如VMS)都不使用参考位。这甚至不是强制性的。
好莱坞魔术。