一、操作系统原理——单选题 2. 为正确使用临界资源,可把对临界资源的访问分成进入区、临界区、退出区和剩余区四部分。请指出下列飞机订票代码中while TS(&lock)语句属于哪一个区域?______
int booking(id)
{ int c;
while TS(&lock);
c=fetch(ticket);
show(c);
if (read(input)=1)
{c=c-1;
send(c);
}
lock=FALSE;
output(list);}
A.临界资源访问过程中的临界区 B.临界资源访问过程中的进入区 C.临界资源访问过程中的退出区 D.临界资源访问过程中的剩余区
A B C D
B
[解析] while TS(&lock)是Test-and-Set指令,其功能是读出指定标志后把该标志设置为TURE。在进入区利用TS进行检查和修改标志lock。因此,本题答案选择B选项。
11. 假设磁头当前位于第105道,正在向磁道序号增加的方向移动。现有一个磁道访问请求序列为35,45,12,68,110,180,170,195,采用SCAN调度(电梯调度)算法得到的磁道访问序列是______。
A.110,170,180,195,68,45,35,12 B.110,170,180,195,12,35,45,68 C.110,68,45,35,12,170,180,195 D.12,35,45,68,110,170,180,195
A B C D
A
[解析] 磁头当前位于第105道,正在向磁道序号增加的方向移动。访问请求序列为35,45,12,68,110,180,170,195;将依次升序访问比105大的道;然后降序访问比105小的道。因此,本题答案选择A选项。
15. 有如下C语言程序。
void *th_f(void *arg)
{
printf("Ni Hao");
pthread_join(2);}
int main(void)
{ pthread_t tid;
int at;
at==pthread_create(&tid,NULL,th_f,NULL);
if(at==0)
printf("I can not create thread\n");
exit(NULL);}
针对以上程序,pthread_join函数的意义是______。
A.线程th_f运行后主动退出 B.线程th_f运行后等待一个特定的线程退出 C.线程th_f运行后主动释放CPU给其他线程 D.线程th_f运行后成为僵尸
A B C D
B
[解析] pthread_join函数的含义是等待一个特定的线程退出,题意中,main函数中创建一个新线程,新线程创建后,从入口函数th_f开始执行,输出Ni Hao后,调用pthread_join等待线程ID为2的线程退出。因此,本题答案选择B选项。
22. 有如下C语言程序。
void *th_f(void *arg)
{ printf("Ni Hao");
pthread_exit(0);}
int main(void)
{ pthread_t tid;
int at;
at==pthread_create(&tid, NULL,th_f, NULL);
if(at==0)
printf("I can not create thread\n");
exit(NULL);}
在上述程序中,pthread_create函数表示______。
A.创建线程,线程名为th_f B.创建线程,线程名为tid C.创建线程,线程名为st D.创建线程,线程名为NULL
A B C D
A
[解析] pthread_create函数的作用是创建线程,包括有4个参数:第一个参数为指向线程标识符的指针;第2个参数用来设置线程属性;第3个参数是线程入口函数的起始地址。最后一个参数是入口函数的参数。一般以线程运行函数名来命名线程名,但线程标识信息放在tid里。因此,本题答案选择A选项。
二、操作系统原理——多选题 10. 某操作系统的当前资源分配状态如下表所示。
假设当前系统可用资源R
1 、R
2 和R
3 的数量为(3,3,2),系统采用银行家算法实施死锁避免策略,以下是安全序列的有______。
A.P2 P4 P3 P5 P1 B.P4 P2 P1 P3 P5 C.P2 P5 P4 P1 P3 D.P4 P5 P3 P1 P2 E.P2 P4 P3 P5 P1
A B C D E
ABCE
[解析] 若按D选项顺序分配,分配给P4 使之满足运行,按当前资源,可分配,则分配后可用资源为(3,2,1),P4 运行结束,全部释放资源后为(5,4,3),可以分配给P5 ,分配后可用资源为(1,1,2),P5 运行结束,全部释放资源后为(5,4,5),准备分配给P3 ,P3 当前资源需求量为(6,0,0),则发现R1 资源不足以分配给P3 ,所以D选项不是安全序列。因此,本题答案选择A、B、C、E选项。