关于lab2文档的一个错误描述

3 views
Skip to first unread message

Yu Chen

unread,
Apr 8, 2012, 7:39:23 AM4/8/12
to os-course, yos-c...@googlegroups.com
在lab2文档的第七页(大约倒数第三段的结束部分)的内容:
"页表的空间大小取决与页表要管理的物理页数n,一个页表项(32位,即4字节)可管理一个物理页,页表需要占n/256个物理页空间。这样页目录表和页表所占的总大小为4096+1024*n字节。"
有误,应该是
"页表的空间大小取决与页表要管理的物理页数n
(n>0),一个页表项(32位,即4字节)可管理一个物理页,页表需要占((n-1)/1024)+1个物理页空间。这样页目录表和页表所占的总大小为(1
+ ((n-1)/1024+1)) *4096字节。"
解释如下:
一个二级页表占4KB,一个页表项占4B,故一个二级页表有1024个页表项,每个页表项描述了一个物理页的映射信息。如果系统有n个物理页,如果0<n<1024,则需要1个物理页空间。general化,则为((n-1)/1024)+1。由于总有一个页目录表,所以页目录表和二级页表所占的总大小为(1
+ ((n-1)/1024+1)) *4096字节。

感谢洪燕辉同学指出的错误。欢迎更多的同学提出问题、意见和建议。

--
Best Regards
==============================================
Chen Yu
Ph.D. Associate Professor
System Software&Software Engineering Group,
Laboratory of Pervasive Computing,
Dept. of Computer Science and Technology
Tsinghua University, Beijing 100084, P.R. China
E-Mail: mailto:yuc...@tsinghua.edu.cn chy...@gmail.com
==============================================

Yu Chen

unread,
Apr 9, 2012, 5:55:38 AM4/9/12
to os-course, yos-c...@googlegroups.com
感谢张檬的评论!
看来大家还需对课堂上和实验中讲解的二级页表,自映射等有关物理内存分页管理的实现加强理解!

在 2012年4月9日 下午5:07,ZHANG Meng <zml...@foxmail.com> 写道:
> 陈老师:
>
> 您好!我觉得首先最好明确解释一下n所代表的量。n是指"页表要管理的物理页数",从结论看,页目录表和二级页表不包含其中。页目录表不属于"页表要管理的"比较明显;而二级页表也不属于"页表要管理的",在我们的概念中它属于"页目录表要管理的",换言之,"页目录表"不属于这里所讲的"页表"的范畴。

我认为:n是指"页表要管理的物理内存的页数",但页表本身也在此物理内存中。所以页目录表和二级页表包含在其中。

>
> 其次,我认为得出这个结论的解释有点瑕疵。最好解释为"(在前面定义的n的含义下)如果0<n≤1024,则需要1个二级页表管理。一般化,则需要((n-1)/1024)+1个二级页表管理。"否则的话,如果取0<n<1024,为什么不一般化为(n/1024)+1呢?因此我觉得解释时考虑这个边界情况可以更好地理解这个问题。顺便一提,这里除号代表的是计算机界的整数除法也是比较郁闷的事情......在这个上下文中,把((n-1)/1024)+1写为ceil(n/1024.0)或许是更直观的表达。

对,我用的是计算机界的整数除法,需要注意,在OS里面的主要部分基本上看不到浮点运算,原因是考虑性能优化。即使要用浮点计算,也是尽量通过整数运算来模拟浮点计算。

>
> 敬请
> 教安
>
> 计94 张檬
>
>
> ------------------ Original ------------------
> From: "陈渝"<chy...@gmail.com>;
> Date: Sun, Apr 8, 2012 07:39 PM
> To: "os-course"<osco...@googlegroups.com>;
> "yos-course"<yos-c...@googlegroups.com>;
> Subject: 关于lab2文档的一个错误描述

> --
> You received this message because you are subscribed to the Google Groups
> "os-course" group.
> To post to this group, send email to osco...@googlegroups.com.
> To unsubscribe from this group, send email to
> oscourse+u...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/oscourse?hl=en.

Reply all
Reply to author
Forward
0 new messages