四级网络工程师真题试卷汇编23
操作系统原理——单选题
1.操作系统的任务之一是向用户提供各种服务功能。下列对服务功能的描述中,哪一项是正确的?(D)
A. 满足用户的各种应用需求
B. 提供联网所需的路由和交换服务
C. 向用户提供CPU和内存等各种资源
D. 向开发人员提供高效的编程接口
解析:为了从操作系统中获得服务,用户程序必须使用系统调用,系统调用是操作系统提供给编程人员的唯一接口,编程人员利用系统调用,动态请求和释放系统资源,调用系统中已有的系统功能来完成与计算机硬件部分相关的工作以及控制程序的执行速度等。故选择D选项。
2.处理器的状态由系统态到用户态的转换是通过下列哪一种方式实现的?(C)
A. 使用特权指令
B. 系统调用
C. 修改程序状态字
D. 执行访管指令
解析:机器处于系统态是可以执行硬件所提供的全部指令,包括特权指令和非特权指令,在系统态时可利用特权指令修改程序状态字转换为用户态。而用户态转换为系统态唯一的途径是访管中断。故选择C选项。
3.中断系统是现代计算机系统的核心机制之一。下列叙述中,哪一项是正确的?(D)
A. 中断系统是由硬件独立实现的
B. 中断系统是由软件独立实现的
C. 中断系统是由硬件和软件分别独立实现的
D. 中断系统是由硬件和软件相互配合实现的
解析:中断系统是现代计算机系统的核心机制之一,是硬件和软件相互配合、相互渗透而使得计算机系统得以充分发挥能力的计算模式。故选择D选项。
4.系统调用的返回值是通过下列哪一种方式传递的?(D)
A. 通过全局变量
B. 通过临时文件
C. 通过共享存储区
D. 通过专用堆栈区
解析:在系统调用的参数传递过程中,不同的系统调用需要传递给系统子程序以不同的参数,而且,系统调用的执行结果也要以参数形式返回给用户程序。用户程序和系统程序之间的参数传递通常使用以下几种方法。一种是由陷入指令自带参数;另一种是通过有关通用寄存器来传递参数,不过,由于寄存器长度也是较短的,从而无法传递较多的参数,因此,在较多的系统中,大多在内存中开辟专用堆栈区来传递参数。故选择D选项。
5.在设计操作系统的调度算法时,应该针对不同的应用领域确定不同的设计目标。为满足截止时间的调度算法适用于下列哪一种环境?(A)
A. 实时系统
B. 交互式系统
C. 批处理系统
D. 嵌入式系统
解析:设计调度算法的目标取决于环境,系统分类通常分为批处理、交互式和实时系统三类。CPU利用率常常用于对批处理系统的度量。对于交互式系统,特别是分时系统和服务器,最重要的是最小响应时间,即从发出命令到得到响应之间的时间。实时系统的特点是或多或少必须满足截止时间。故选择A选项。
6.多道程序设计技术的引入改善了资源的使用情况。为了防止内存中的各个程序互相干扰或干扰操作系统,需要解决的问题是(D)
A. 处理器调度问题
B. 文件的合理使用问题
C. 使用设备时发生的冲突问题
D. 程序装入内存时的重定位问题
解析:当用户程序进入计算机系统请求执行时,存储管理要为它分配合适的内存空间。为了保证程序的正确执行,必须根据分配给程序的内存区域对程序中指令和数据的存放地址进行重定位,即要把逻辑地址转换成绝对地址。故选择D选项。
7.某服务器装有四颗处理器,每颗处理器具有八个核。假设当前系统中共有240个进程,且系统支持多线程。那么,处于就绪态的进程最少有几个?(D)
A. 208
B. 239
C. 1
D. 0
解析:就绪状态是指一个进程已经具备运行条件,但由于没有获得CPU而不能运行所处的状态。根据题意,当前系统中共有240个进程,如果全部运行完毕,那么就没有进程就绪状态,最少有0个进程。故选择D选项。
8.下列哪一种操作不是进程控制原语?(D)
A. 激活进程
B. 挂起进程
C. 唤醒进程
D. 切换进程
解析:用于进程控制的源语一般有:创建进程、撤销进程、挂起进程、激活进程、阻塞进程、唤醒进程以及改变进程优先级等。故选择D选项。
9.对于如下C语言程序
int main()
{
pid_t pid;
int a =1;
pid = fork();
if (pid == 0)
printf(\\(A)
A. This is the son process, a=0
This is the dad process, a=2
B. This is the son process, a-0
C. This is the dad process, a=2
D. This is the dad process, a=0
This is the son process, a=2
解析:在UNIX类操作系统中,父进程通过调用fork()函数创建子进程,子进程获得与父进程地址空间相同的一份拷贝,包括文本、数据和bss段、堆以及用户栈, fork()函数被调用一次,却返回2次:一次是在调用进程中,一次是在新创建的子进程中,所以题目程序中的变量a,在父进程和子进程中存在2次,初值都是1,程序运行后子进程输出a=0,父进程输出a=2。故选择A选项。
10.有如下C语言程序:
/*program Hello*/
void *p_th_Hello (void *arg)
{
printf(\\(D)
A. 4
B. 3
C. 2
D. 1
解析:当一个线程完成分配给它的工作时,可以通过调用pthread_exit来终止,这个调用终止该线程并释放它的栈。根据题意,pthread_exit函数调用运行成功,线程创建完成并退出,所以进程中Hello有1个线程。故选择D选项。
11.进程间存在着相互制约关系。假设在足球比赛中,每个队员是一个进程,足球是资源。那么,下列哪一项是双方队员之间的关系?(A)
A. 互斥
B. 同步
C. 饥饿
D. 死锁
解析:进程同步是指多个进程中发生的事件存在某种时序关系,必须协同动作,相互配合,以共同完成一个任务。进程互斥是指由于共享资源所要求的排他性,进程间要相互竞争,以使用这些互斥资源。在足球比赛中,每个队员是一个进程,足球是资源,同队队员需要通过相互配合,协同动作来完成足球比赛,故队友之间的关系同步。双方队员都需要相互竞争来争夺足球,故双方队员之间的关系互斥。故选择A选项。
12.有如下民航订票程序:
int booking(id, char n, int c)//订票例程,id是用户号,n为航班号,c为票数
{ int i;
while TS(&lock); //Test-and-Set指令
i= fetch(n,s); //从主服务器取航班n的机票余额s
i=s-c; //购票数额为c
send(n,i); //送回新机票余额
lock = FALSE; //置标志为F
output(void); //打印行程单
}
其中,output(void)语句的作用是(D)
本文档预览:3600字符,共26584字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载