一、操作系统原理——单选题9. 有如下C语言程序。
int main()
{ int i;
for(i=0;i<2;i++)
{
fork();
printf("HH\n");
}}
在UNIX操作系统中正确编译链接后,其正确的运行结果是______。
- A.共打印出2行HH
- B.共打印出4行HH
- C.共打印出5行HH
- D.共打印出6行HH
A B C D
D
[解析] 在UNIX类操作系统中,父进程通过调用fork()函数创建子进程,fork()函数执行的特点是:调用一次,返回两次,子进程从当前位置开始执行;程序在for循环中调用fork()函数,当i为0时,调用fork()函数创建一个子进程,此时父进程A、子进程B都接着执行printf()函数,输出两行HH;接着父子进程的变量i自增为1,接着执行for循环,父进程A接着创建自己的子进程C,子进程B也创建自己的子进程D,接着四个进程A、B、C、D都执行printf()函数,再次输出四行HH,最终程序执行for结束,所以本题程序总共输出6行HH。因此,本题答案选择D选项。
10. 有如下C语言程序。
void *th_f(void *arg)
{ printf("Ni Hao");
pthread_yiled(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_yiled的意义是______。
- A.线程th_f运行后主动退出
- B.线程th_f运行后等待一个特定的线程退出
- C.线程th_f运行后主动释放CPU给其他线程
- D.线程th_f运行后成为僵尸
A B C D
C
[解析] 题目程序在main()函数中调用pthread_create()函数创建一个新线程,设置新线程的入口函数为th_f,所以新线程创建后执行th_f函数,在th_f函数中输出Ni Hao,接着调用pthread_yield()函数,pthread_yield()函数是用来释放CPU来运行另外一个线程。因此,本题答案选择C选项。
23. 假设磁头当前位于第143道,正在向磁道序号减小的方向移动。现有一个磁道访问请求序列为37,87,149,188,134,58,121,160,155,193,137,153,采用SCAN调度(电梯调度)算法得到的磁道访问序列是______。
- A.37,87,149,188,134,58,121,160,155,193,137,153
- B.137,134,121,87,58,37,149,153,155,160,188,193
- C.149,153,155,160,188,193,138,134,121,87,58,37
- D.137,134, 149,153,155,160,121 ,87,58,37,188,193
A B C D
B
[解析] SCAN调度算法是一种寻道优化的算法,它不止考虑磁道的距离,还考虑方向,且以方向优先。题中磁头位于143道,且正向磁道序号减小的方向移动,所以对于访问请求序列,首先访问磁道序号减小方向的距离143道最近的137道,访问后磁头继续向磁道序号减小的方向移动,访问134道,接着是121、87、58、37,访问完37道后,磁道序号减小方向没有请求磁道,所以改变磁头移动方向,向磁道序号增大的方向移动,并顺序访问各个磁道:149、153、155、160、188、193。因此,本题答案选择B选项。
30. 某计算机系统中共有3个进程P
1、P
2和P
3,4类资源r
1、r
2、r
3和r
4。其中r
1和r
3每类资源只有1个实例,r
2资源有2个实例,r
4有3个实例。
当前的资源分配如下:
E={<P
1,r
1>,<P
2,r
3>,<r
2,P
1>,<r
1,P
2>,<P
2,r
2>,<r
3,P
3>,<P
3,r
4>}
若进程P
2申请一个r
4类资源<P
2,r
4>,则系统可能会发生的现象是______。
A B C D
A
[解析] 题目中r4类资源共有3个实例,题中(P3,r4)表示P3申请分配1个r4类资源,则分配1个r4,还剩余2个r4实例,可以再分配给P2进程,系统资源分配正常。因此,本题答案选择A选项。
二、操作系统原理——多选题10. 某操作系统的当前资源分配状态如下表所示。
假设当前系统可用资源R
1、R
2和R
3的数量为(3,3,2),系统采用银行家算法实施死锁避免策略,以下是安全序列的有______。
- A.P2P4P3P5P1
- B.P4P2P1P3P5
- C.P2P5P4P1P3
- D.P4P5P3P1P2
- E.P2P4P3P5P1
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选项。