coursera 操作系统 第十三周 期末考试

部分题目的解答见解

19.Question 19

有一台32位的计算机,每个页面的大小是4KB,如果一个进程在它的虚拟内存中实际使用了1024个页面。(可以认为每个页表项占据4个字节)

假设使用一级页表,那么该进程的页表大小是多少?

4KB

32KB

32MB

4MB

解析:如果是当前1024个页面占用的大小的话,因为页面是4kb,页表项为4b,一个页面刚好能装4kb/4b=1k=1024个页表项,也就是说只需要一个一级页表页面就能装载。就是4k。如果是页表规模的话,操作系统32位,页面是4kb,因此需要12位作为页内偏移,还剩20位作为页表偏移,因此可以表示2的20次方个页表项,每个页表项4b,因此总共页表项大小为2^20*4b=4m的大小。答案给的是4m。感觉是题目出的有点模糊

20.Question 20 

题干同19题。如果采用二级页表,且一级页表的大小和二级页表的大小相同(假设一级页表大小是1KB,则一个二级页表的大小也是1KB;假设一级页表大小是2KB,则一个二级页表的大小也是2KB),那么该进程的两级页表加起来,至少占据____KB? 

一级页表与二级页表大小相同,32位的操作系统,12位的业内偏移不变,将20位分为10位页目录偏移(即一级页表),10位页表偏移(即二级页表)。而页大小为4kb,页表项为4b,也就是说一页一级页表、二级页表,刚好就占用一个表框。

二级页表需要1024页表项,而二级页表每页可以表示2的10次方页表项,也就是说刚好需要一页二级页表项,对应着一个一级页表项。因此需要1个表框装载一级页表,一个表框装载二级页表,4k+4k=8k

21.Question 21 

题干同19题。如果采用二级页表,且一级页表的大小是二级页表大小的四倍(假设一级页表大小是4KB,则一个二级页表的大小是1KB;假设一级页表大小是8KB,则一个二级页表的大小是2KB),那么该进程的两级页表加起来,至少占据____KB?

此时将20位分为11位的目录偏移,9位的页表偏移。而一个表框只能最多表示2的十次方个页表项,也就是说一级页表需要2个表框。一页二级页表需要半个表框。那么对于二级页表要表示1024个,需要两个二级页表,一个一级页表,虽然二级页表只占了半个表框,但内碎片不能被利用,因此还是需要3个表框。即为3*4kb=12kb

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前段时间看了进程管理,觉得对编程简直大有裨益,至少对于多线程编程方面,对系统的进程管理有了非常深刻的理解,看来还是...
    KevinCool阅读 1,186评论 0 1
  • 一 预备 计算机的基本工作方式 在冯诺依曼体系结构的计算机中,计算机由五大部分组成:运算器,控制器,存储器,输入设...
    清雨季阅读 1,336评论 0 2
  • 非连续分配允许一个程序分散地装入到不相邻的内存分区中,根据分区的大小是否固定分为分页存储管理方式和分段存储管理方式...
    saviochen阅读 2,049评论 0 4
  • 详细内容欢迎跳转 : https://aiden-dong.gitee.io/2019/04/03/Linux-%...
    陌城小川阅读 1,344评论 4 6
  • 前言:为啥进行分段:(节省内存,方便管理) example:设定有100 空间, 进行访问 1),如果一级访问,...
    xuefeng_apple阅读 1,064评论 0 0