一、单项选择题
23. 下列关于批处理系统的叙述中,正确的是( )。
Ⅰ.批处理系统允许多个用户与计算机直接交互
Ⅱ.批处理系统分为单道批处理系统和多道批处理系统
Ⅲ.中断技术使得多道批处理系统的I/O设备可与CPU并行工作
A.仅Ⅱ、Ⅲ B.仅Ⅱ C.仅Ⅰ、Ⅱ D.仅Ⅰ、Ⅲ
答案:A。在批处理系统中用户与计算机可进行简单的交互,比如提交作业,接收计算结果或错误信息等。
24.某单CPU系统中有输入和输出设备各1台,现有3个并发执行的作业,每个作业的输入、计算和输出时间均分别为2ms、3ms和4ms,且都按输入、计算和输出的顺序执行,则执行完3个作业需要的时间最少是( )。
A.15ms B.17ms C.22ms D.27ms
答案:B。
输入├2┤2┤2┤
计算 ├ 3 ┤ 3┤ 3┤
输出 ├4 ┤ 4 ┤ 4 ┤
2 + 3 + 4 + 4 + 4 = 17
25.系统中有3个不同的临界资源R1、R2和R3,被4个进程p1、p2、p3及p4共享。各进程对资源的需求为:p1申请R1和R2,p2申请R2和R3,p3申请R1和R3,p4申请R2。若系统出现死锁,则处于死锁状态的进程数至少是( )。
A.1 B.2 C.3 D.4
答案:C。
分析。本题有两点表述不清,1.没有说明是否只申请资源不释放资源。2.没有说明进程申请资源的顺序,比如“p1申请R1和R2”,它的意思是先申请R1再申请R2,还是可任意申请。
通常,当某进程用完资源后会释放资源,我们按这种思路来分析这道题目。
如果按题目描述的先后申请资源,即p1先申请R1后申请R2,且各进程在使用完资源后会释放资源,那么这个4个进程都不会发生死锁。但本题重点是“若系统出现死锁”,这就说明“p1申请R1和R2”的意思是可能先申请R1后申请R2,也可能是先申请R2后申请R1。按这种思路分析,系统中的4个进程都有可能进入死锁状态,比如,当p1获得R1,p2获得R2, p3获得R3,则继续下去4个进行都进入死锁状态。最少有3个进程进入死锁状态,即p4获得R2,用完后释放,然后,p1、p2和p3出现上述状况。
26.某系统采用改进型CLOCK置换算法,页表项中字段A为访问位,M为修改位。A=0表示页最近没有被访问,A=1表示页最近被访问过。M=0表示页没有被修改过,M=1表示页被修改过。按(A,M)所有可能的取值,将页分为四类:(0,0)、(1,0)、(0,1)和(1,1),则该算法淘汰页的次序为( )。
A.(0,0),(0,1),(1,0),(1,1)
B.(0,0),(1,0),(0,1),(1,1)
C.(0,0),(0,1),(1,1),(1,0)
D.(0,0),(1,1),(0,1),(1,0)
答案:A。
27.使用TSL(Test and Set Lock)指令实现进程互斥的伪代码如下所示。
do{
……
while(TSL(&lock));
critical section;
lock=FALSE;
……
}while(TRUE);
下列与该实现机制相关的叙述中,正确的是( )。
A.退出临界区的进程负责唤醒阻塞态进程
B.等待进入临界区的进程不会主动放弃CPU
C.上述伪代码满足“让权等待”的同步准则
D. while(TSL(&lock))语句应在关中断状态下执行
答案:B。
28.某进程的段表内容如下所示。段号段长内存起始地址权限状态
01006000只读在内存
1200—读写不在内存
23004000读写在内存
当访问段号为2、段内地址为400的逻辑地址时,进行地址转换的结果是( )。
A.段缺失异常 B.得到内存地址4400
C.越权异常 D.越界异常
答案:D。第2段的段长为300,访问段内地址400明显越界。
29.某进程访问页面的序列如下所示。
若工作集的窗口大小为6,则在t时刻的工作集为( )。
A.{6,0,3,2} B.{2,3,0,4}
C.{0,4,3,2,9} D.{4,5,6,0,3,2}
答案:A。在任一时刻t,都存在一个集合,它包含所有最近k次(该窗口大小为6)内存访问所访问过的页面。这个集合w(k,t)就是工作集。该题中最近6次访问的页面分别为6、0、3、2、3、2,去除重复的页面,形成的工作集为{6,0,3,2},故选A。
30.进程P1和P2均包含并发执行的线程,部分伪代码描述如下所示。//进程P1
int x=0;
Thread1( ) {
int a;
a=1;
x+=1;
}
Thread2( ) {
int a;
a=2;
x+=2;
}//进程P2
int x=0;
Thread3( ) {
int a;
a=x;
x+=3;
}
Thread4( ) {
int b;
b=x;
x+=4;
}
下列选项中,需要互斥执行的操作是( )。
A.a=1与a=2 B.a=x与b=x
c.x+=1与x+=2 D.x+=1与x+=3
答案:C。A中的两个赋值语句所涉及的变量均为局部变量,且在不同的线程中,无需互斥。B所涉及的两个赋值语句都是取x的值赋值给不同线程中的局部变量,无需互斥。C所涉及的两个赋值语句均对同一个进程中的全局变量x进行赋值,需要互斥。D所涉及的两个赋值语句分别对不同进程中的全局变量进行赋值,无需互斥。
31.下列关于SPOOLing技术的叙述中, 错误的是( )。
A.需要外存的支持
B.需要多道程序设计技术的支持
C.可以让多个作业共享一台独占设备
D.由用户作业控制设备与输入/输出井之间的数据传送
答案:D。
32.下列关于管程的叙述中, 错误的是( )。
A.管程只能用于实现进程的互斥
B.管程是由编程语言支持的进程同步机制
C.任何时候只能有一个进程在管程中执行
D.管程中定义的变量只能被管程内的过程访问
答案:A。
二、综合应用题
46.(6分)某进程调度程序采用基于优先数(priority)的调度策略,即选择优先数最小的进程运行,进程创建时由用户指定一个nice作为静态优先数。为了动态调整优先数,引入运行时间cpuTime和等待时间waitTime,初值均为0。进程处于执行态时, cpuTime定时加1,且waitTime置0;进程处于就绪态时, cpuTime置0, waitTime定时加1。请回答下列问题。
(1)若调度程序只将nice的值作为进程的优先数,即priority=nice,则可能会出现饥饿现象,为什么?
(2)使用nice、cpuTime和waitTime设计一种动态优先数计算方法,以避免产生饥饿现象,并说明waitTime的作用。
答案要点:(1)由于采用了静态优先数,当就绪队列中总有优先数较小的进程时,优先数较大的进程一直没有机会运行,因而会出现饥饿现象。
(2)优先数priority的计算公式为:
priority=nice+k1×cpuTime-k2×waitTime,其中k1>0, k2>0, 用来分别调整cpuTime和waitTime在priority中所占的比例。waitTime可使长时间等待的进程优先数减小,从而避免出现饥饿现象。
47.(9分)某磁盘文件系统使用链接分配方式组织文件,簇大小为4 KB。目录文件的每个目录项包括文件名和文件的第一个簇号,其他簇号存放在文件分配表FAT中。
(1)假定目录树如下图所示,各文件占用的簇号及顺序如下表所示,其中dir、 dir1是目录,file1、 file2是用户文件。请给出所有目录文件的内容。
(2)若FAT的每个表项仅存放簇号,占2个字节,则FAT的最大长度为多少字节?该文件系统支持的文件长度最大是多少?
(3)系统通过目录文件和FAT实现对文件的按名存取,说明file1的106、 108两个簇号分别存放在FAT的哪个表项中。
(4)假设仅FAT和dir目录文件已读入内存,若需将文件dir/dir1/file1的第5000个字节读入内存,则要访问哪几个簇?
答案要点:(1)两个目录文件dir和dir1的内容如下表所示。
dir目录文件
文件名 簇号dir148
dir1目录文件
文件名 簇号file1100
file2200
(2)FAT的最大长度为216*2B=128KB。文件的最大长度是216*4KB=256MB。
(3)file1的簇号106存放在FAT的100号表项中,簇号108存放在FAT的106号表项中。
(4)需要访问目录文件dir1所在的48号簇,以及文件file1的106号簇。