操作系统概念--期末试卷2018

一、选择题
1、下面哪些行为会导致CPU进入内核模式
(1) 执行陷阱指令 (2)执行IO操作 (3)出现异常 (4)执行计算操作
A. (1)
B. (1)(2)
C. (1)(2)(3)
D. (1)(2)(3)(4)
答案:C

2.系统发生一次中断最多有一个进程的状态发生切换
A. 对
B. 错
答案:B

3.依据Amdahl’s Law:
A. 随着并行节点数的增多,性能收益呈线性增长
B. 随着并行节点数的增多,性能可以不断增长
C. 即使并行节点数不断增多,性能也有上限
D. 性能加速比由系统中的并行节点数量决定
答案:C

4.Peterson算法
A. 可以用于乱序执行的处理器
B. 是软硬结合的临界区问题解法
C.不能用于三个及以上的进程间的同步
D.flag[i]=true和turn=j两条语句的顺序可以交换
答案:C

5.下面关于虚拟内存说法正确的是:
A. 启用虚拟内存管理后不需要使用内存
B. 虚拟内存利用磁盘作为后备存储
C. 启用虚拟内存后不能使用分段内存管理
D. 无论何种结构的计算机,启用虚拟内存后只要给进程分配1页物理帧即可让进程正常运行。
答案:B

二、简答题
1.什么是多道程序的度(degree of multiprogramming),它的上限由哪些因素确定?

解答:多道即计算机内存中同时存放几道相互独立的程序。多道程序的度就是操作系统将多少个进程放入了内存。上限的限制因素有CPU的核数、所采用的的调度算法、内存的大小等。

2.请说明为什么对调度程序而言,区分CPU约束程序和I/O约束程序很重要?

解答:CPU约束型进程可以利用整个时间片,且不会做任何阻碍I/O操作的工作;另一方面,I/O约束型进程有在运行I/O操作前只运行很少数量的计算机操作的性质。这种进程一般不会使用很多的CPU。所以,通过给I/O约束型进程优先权和允许在CPU约束型进程之前运行,可以很好地利用计算机资源。

3.试描述最优页面置换算法,并解释其为什么是最优的。

解答:最优置换算法会置换最长时间不会使用的页。当发生缺页时,我们需要置换一个页。因为置换的是最长时间不会使用的页,使用最优置换算法确保对于给定数量的帧会产生最低可能的页错误率。

4.某请求分页系统,每进程拥有逻辑空间128页,每页4KB。主机拥有物理空间4MB。
(1) 写出逻辑地址的组成格式。
(2) 若不考虑访问权限位,进程的页表有多少项?每页表项至少要包含多少位?

解答:
(1)4KB=2^12B,所以页偏移d为12位。
因为有128页,128=2^7,所以7位表示页号。
在这里插入图片描述
(2)页表项是指:在分页系统中,为每个进程配置了一张页表,进程逻辑地址空间中的每一页,在页表中都对应有一个页表项。逻辑空间128页,所以对应最多为128个页表项;逻辑空间每页的大小和物理空间每页大小是相同的,所以物理块数=物理空间大小/页大小=4M/4K=2^10,故每个页表项至少有10位;

5.试说明安全状态与死锁之间的关系。

解答:安全状态代表着存在一个进程的安全序列,可以保证不会发生死锁。并非所有的不安全状态都是死锁状态,但当系统进入不安全状态后,便可能进入死锁状态;反之,只要系统处于安全状态,系统便可以避免进入死锁状态;死锁状态必定是不安全状态。

三、在UFS文件系统中,inode节点中包含15个文件指针,其中12个指针指向直接块,其余3个指针分别指向一级间接块,二级间接块和三级间接块,如果块大小为4KB,文件指针均占4B,试计算该系统支持的最大文件大小是多少(精确到KB)。并说明这样设计在支持不同大小文件时的主要优势。

解答:
直接索引的文件指针可以表示12x4KB=48KB的大小
一级间接块,一个指针的大小就是4个字节,那么该4K大小的块,就能够存储1K个指针,然后每个指针又指向块区域中某个4K大小的块,用于存储文件数据。所以 一级间接块指针中的全部空间就是4M的大小。
二级间接块,二级间接块指针块中的1K个指针中的每个指针分别指向一个 一级间接块指针的 4K 地址块,即二级间接块指针可以保存4M * 4M =16G 的大小
三级间接块,三级指针块中的每个指针 指向一个二级间接块指针块,即三级间接块指针 可以保存4M * 4M * 4M=64T大小的文件。
所以该系统支持的最大文件大小为48KB+4M+16G+64T
由此可见,UFS文件系统的优势是可以容纳大文件

四、一个系统中,设页的大小为512字节,int型数据大小为4字节,假定数组A位于某一页的起始位置,且数组A占用的所有页均未分配物理帧,系统给该进程分配的物理帧总数为64帧,采用LRU页置换算法。对于如下的程序:

int A[][] = new int[128][128]
for( int j=0; j<128; j++)
for(int i=0; i<128; i++)
	A[i][j] = 0

(1) 试计算会发生多少页错误,并给出相应的理由。
(2) 改写上述程序,使页错误发生的次数最少。

解答:
(1)LRU页置换是置换最近最少使用的页。
数组在分配时是按行分配的,即A[1][n]将会被分配在一起。int类型大小为4个字节,一个页大小为512个字节,一个页可以容纳128个数组元素,刚好为1行。
①开始会将64个物理帧全部装满,此时也会发生页面置换64次;
②从第65页开始,发生页面置换,直到所有的64个帧重新置换一遍,发生了64次页面置换。
③然后回到第一页,这个时候还要发生页面置换,64次置换。
④然后回到②循环,直到128次结束。
由此可知,发生了128*128次页面置换,即页错误=2^14
(2)因为是频繁的行变换引起的页错误过高,所以只需要改变i和j的顺序就可以了

int A[][] = new int[128][128]
for( int j=0; j<128; j++)
for(int i=0; i<128; i++)
	A[j][i] = 0

五、一座小桥(最多只能承重两个人)横跨南北两岸,任意时刻同一方向只允许一个人过桥,南侧桥段和北侧桥段较窄只能通过一个人,桥中央一处宽敞,允许两个人通过或歇息。试用P(wait)V(signal)操作实现行人(进程)的过桥同步,请给出同步设计的理由和相应的伪代码。

解答:把南北两岸换成左右两岸,桥可分为以下区:
操作系统概念--期末试卷2018_第1张图片
按题意:左岸过河者同时只能有一个(互斥),过河顺序为1,2,4。右岸过河者同时只能有一个(互斥),过河顺序为4,3,1。
每个区也都是互斥的,过河者走到下一个区时要使上一
个区可用。

semaphore s1=1,s2=1;              //左右岸过河者的互斥
semaphore a1=1,a2=1,a3=1,a4=1;   //四个区的互斥

左岸过河者:
P(s1)
   P(a1);
        走到1区;
   P(a2);
        走到2区;
   V(a1);2区后要释放1P(a4);
        走到4区;
   V(a2);4区后要释放2区;
        到达右岸;
   V(a4); 到对岸要释放4区;
V(s1);

右岸过河者:
P(s2)
   P(a4);
        走到4区;
   P(a3);
        走到3区;
   V(a4);3区后要释放4P(a1);
        走到1区;
   V(a3);1区后要释放3区;
        到达左岸;
   V(a1); 到对岸要释放1区;
V(s2);

六、In demand paging(请求分页),the page table of a process is as following(某进程的页表如下)
操作系统概念--期末试卷2018_第2张图片
假定页面大小为4K,为该进程分配的物理帧数固定为2,采用最近最少使用页面置换算法(LRU)和局部淘汰策略;一次内存访问时间是100ns,一次快表(TLB)的访问时间是10ns,处理一次缺页(page fault)处理的时间为8ms(包含更新TLB和页表的时间);TLB初始化为空,地址访问时,先访问TLB,若TLB未命中,再访问页表(忽略访问页表之后的TLB更新时间);有效位为0,表示页面不在内存中,产生缺页处理。设有虚拟地址访问序列2082H、1324H、204H,请计算:

  1. 依次访问该序列地址对应的各个物理内存所需要的时间;
  2. 基于上述访问序列,虚拟地址465H对应的物理地址;
  3. 若希望请求分页时内存的有效访问时间(EAT)为120ns, 缺页的概率应该控制在多少之内。

解答:
1、由于页面大小为4KB=2^12B,故逻辑地址末尾12位表示页内偏移d,前4位表示页号p。 设访问内存时间为t,查找快表时间为a,处理缺页中断的时间为T。

  • 对于逻辑地址2082H,其表示的页号为2,访问次序依次为:访问TLB未命中(10ns); 访问页表命中2号页面,并将页表项副本放入TLB(100ns),得到物理地址,访问内存(100ns)。
    故逻辑地址2362H的访问时间为:EAT=a+t+t=10+100+100=210ns;
  • 对于逻辑地址1324H,其表示的页号为1,访问次序依次为,访问TLB未命中(10ns);访问页表未命中(100ns);发生缺页中断(8ms);访问TLB命中1号页面(10ns);得到物理地址访问内存(100ns)。此时驻留集已满(0号页面和2号页面)
    故逻辑地址1324H的访问时间为:
    EAT=a+t+T+a+t=T+2×(a+t)=8ms+2×(100+10)=8000220ns。
  • 对于逻辑地址204H,其表示的页号为0,访问次序依次为:访问TLB未命中(10ns);访问页表未命中(100ns);发生缺页中断(8ms);访问TLB命中0号页面(10ns);得到物理地址访问内存(100ns)。
    故逻辑地址25A5H的访问时间为:
    EAT=a+t+T+a+t=T+2×(a+t)=8ms+2×(100+10)=8000220ns。

最终所需要的时间为210+8000220+8000220=16000630ns

2、物理地址就是页框号*页框大小+页内偏移量。用十六进制表示的话可以直接组合,则地址由内存块号和页内偏移量拼接得到物理地址为:101465H。

3、
根据公式,EAT=(1-p)x100+px8x10^6≤120
p为缺页的概率=0.0000025
所以缺页的概率应控制在0.0000025以内。

你可能感兴趣的:(操作系统概念,操作系统)