操作系统期末复习

记录一些自己不会做的题目

1.题目如图 关于时钟算法可以看https://blog.csdn.net/Gu_fCSDN/article/details/103979067

 

首先是第一问:对于FIFO算法,FIFO是先进先出算法,由于系统访问的下一个页号是6,但是系统中没有6,因此未命中,需要进行内存块的置换。因为块号为3的内存块最早进入队列,处于队首,根据FIFO算法,发生置换时,需要将队首和待置换的页面进行交换,进程首先将块号为3的内存块换出。

其次是第二问:CLOCK算法是时钟置换算法,R表示每个内存块的访问位,0表示可以置换,1表示不能置换。每个内存块每被访问一次,无论命中与否,都会将改变置换位。CLOCK算法原理就是顺指针访问每个内存块,检查是否命中,如果不命中且R为0,就将其置换。否则不置换,但是也要将R改变。

 

由于块号为0的内存块最早被访问,又由于内存块只有4块,所以当前系统已经经过一次循环,指针指向了块号为0的内存块。

因为不命中,而且块号为0的内存块R=0,所以将其置换,淘汰块号为0的内存块。(此题谢谢Gao同学的详细解答^~^点赞)

 

 

 

2.题目如图  关于内存地址和空间的解释可以看https://blog.csdn.net/vincentxj2008/article/details/80562252

 

第一问: 因为主存是1MB=1*1024*1024B,也就是2^20B,可以看到一共需要20个二进制才可以表示其大小。所以问需要多少二进制表示时,便需要20位、

第二问:现在知道了总大小和一共有多少块,问每一块的大小(简单来说页就是块)。所以就用2^20 / 2^9 = 2^11 所以一共需要11位。

第三问:作业1对应25块,(0对应14)按顺序来,然后每一块大小是2^11也就是2KB大,所以35*2KB=70KB。

 值得注意,内存地址只是一个编号,代表一个内存空间。那么这个空间是多大呢?原来在计算机中存储器的容量是以字节为基本单位的。也就是说一个内存地址代表一个字节(8bit)的存储空间。一般大写的B表示字节,而小写的b表示比特。

 

 

3.题目如图 

第一问:总共容量是16GB也就是2^34B,每一块大小为1KB也就是2^10B,所以就有2^24个(虽然题目已经给出了),便需要24个二进制表示。

第二问:使用位示图法,一个扇区占一位,也就是1bit(不是B),所以求扇区数就需要用2^24 / 1^8 * 8 = 2^11 = 2048个扇区。https://zhidao.baidu.com/question/104112816.html

 
 
 
 
 
 
 
 
 
 

posted on 2021-06-25 16:29  stuMartin  阅读(87)  评论(0)    收藏  举报

导航