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

你可能感兴趣的:(coursera 操作系统 第十三周 期末考试)