四级网络工程师真题试卷汇编13
操作系统原理——单选题
1.计算机系统中,操作系统作为系统软件集中了下列哪两类主要功能( )。(A)
A. 资源管理和控制程序执行
B. 资源管理和硬件控制
C. 软件代码的运行和控制
D. 硬件接口和人机界面
解析:在计算机系统中,操作系统作为系统软件,集中了资源管理功能和控制程序执行功能,答案为A。
2.处理器中对用户可见的寄存器是( )。(B)
A. 程序状态字寄存器
B. 地址寄存器
C. 程序计数寄存器
D. 指令寄存器
解析:处理器中对用户可见的寄存器通常是对用户程序可用的,包括:数据寄存器、地址寄存器以及条件码寄存器,而不可见的寄存器多是用于控制处理的操作,如程序计数器、指令寄存器、程序状态字等,所以选项A、C、D是不可见寄存器,选项B是可见寄存器,答案为B。
3.中断是指CPU对系统中或系统外发生的异步事件的响应,中断请求是指( )。(B)
A. 引起中断的那些事件
B. 中断控制器向处理器发出的信号
C. 正在执行的程序暂停,请求处理
D. 使处理器暂停当前程序转而处理中断过程的指令
解析:操作系统中,我们把引起中断的事件称为中断事件或中断源,中断源向处理器发出的请求信号称为中断请求,把处理中断事件的程序称为中断处理程序,处理器暂停当前程序转而处理中断的过程称为中断响应;选项A是指中断事件或中断源,错误;选项C是指中断响应,错误;选项D是指中断处理程序,错误;在中断系统中,中断源是通过中断控制器向处理器发出中断请求的,所以答案为B。
4.系统调用与一般过程调用是不同的,下列对调用程序与被调用程序的描述中,哪一个是正确的( )。(D)
A. 过程调用和系统调用的调用程序与被调用程序均位于核心态
B. 过程调用和系统调用的调用程序与被调用程序均位于用户态
C. 过程调用时通过改变状态字,从用户态的调用程序转到核心态的被调用程序
D. 系统调用时需要通过陷入机制,从用户态的调用程序转到核心态的被调用程序
解析:一般过程调用,其调用程序和被调用程序都运行在相同的状态,即核心态或用户态,而系统调用中调用程序运行在用户态,被调用程序则运行在系统态,答案A、B错误;一般过程调用是不涉及系统状态转换的,答案C错误;而系统调用由于调用程序和被调用程序运行在不同的系统状态,所以需要通过软中断机制,即陷入机制,从调用程序所在的用户态转到被调用程序的核心态。答案为D。
5.进程控制块PCB是描述进程基本情况以及进程的运行变化过程的数据结构,下列哪一项不是进程控制块中记录的信息?( )(A)
A. 中断源
B. 进程名
C. 进程号
D. 代码段
解析:进程控制块(PCB)的内容一般可以分成调度信息和现场信息两大部分,调度信息包括:进程名、进程号、存储信息、优先级、当前状态、资源清单、“家族”关系、消息队列指针、进程队列指针和当前打开文件等;现场信息包括:程序状态字、时钟、界地址寄存器等。中断源不属于进程控制块中记录的信息。故本题答案选择A选项。
6.进程控制块(PCB)的内容一般可以分成调度信息和现场信息两大部分,下列哪一项属于现场信息( )。(D)
A. 当前状态
B. 存储信息
C. 优先级
D. 时钟信息
解析:进程控制块(PCB)可以分成调度信息和现场信息,调度信息包括进程名、进程号、存储信息、优先级、当前状态、资源清单等,供进程调度时参考使用;而现场信息需要记录那些可能会被其他进程改变的寄存器,如程序状态字、时钟信息、界地址寄存器等,选项A、B、C属于调度信息,错误;选项D属于现场信息,答案为D。
7.某4核处理器的计算机系统中共有50个进程,那么,处于运行状态的进程最少是几个( )。(D)
A. 4
B. 50
C. 1
D. 0
解析:一般情况下,4核的处理器中可以同时运行4个进程,但当计算机系统中的50个进程由于竞争资源等原因导致系统处于死锁状态而无法运行,那么此时处于运行状态的进程为0个,答案为D。
8.当使用进程撤销原语撤销进程时,下列哪一个选项描述的顺序是正确的( )。(A)
A. 找到对应进程的PCB,撤销其下的子孙进程,释放该进程资源,撤销该PCB
B. 找到对应进程的PCB,清空该PCB,释放该进程资源,撤销其下的子孙进程
C. 找到对应进程的PCB,清空该PCB,撤销其下的子孙进程,跳转到调度程序
D. 找到对应进程的PCB,撤销其下的子孙进程,释放该进程资源,跳转到调度程序
解析:撤销进程的实质是撤销进程PCB,具体撤销过程是:找到要被撤销进程的PCB,将它从所在的队列中除去,撤销属于该进程的一切“子孙进程”,释放被撤销进程所占用的全部资源,并消去被撤销进程的PCB,答案为A。
9.对于如下C语言程序
int main()
{
int i;
for (i= 0;i< 1;i++)
{
fork();
printf(\\(A)
A. 共打印出2行Hello World
B. 共打印出4行Hello World
C. 共打印出6行Hello World
D. 共打印出8行Hello World
解析:UNIX系统中,fork()函数用来创建子进程,并且子进程从被创建的程序处开始执行,题目中的for循环执行一次,所以执行fork()时,会有两个进程执行之后的printf()函数,最后输出2行Hello World,答案为A。
10.对于如下C语言程序
void *th_f(void * arg)
{
printf(\\(B)
A. 线程th_f运行后主动退出
B. 线程th_f运行后等待一个特定的线程退出
C. 线程th_f运行后主动释放CPU给其他线程
D. 线程th_f运行后成为僵尸
解析:Pthread线程包中,pthread_join函数是等待一个特定的线程退出,题意中,main函数中创建一个新线程,新线程的创建后,从入口函数th_f开始执行,输出Hello World后,调用pthread_join等待线程ID为2的线程退出,答案为B。
11.两个相互间接感知(都与第三方交互,例如使用同一个资源)的进程,其潜在的控制问题是( )。(B)
A. 两个进程相互竞争,可能造成互斥、死锁或饥饿
B. 两个进程共享协作,但可能造成互斥、死锁或饥饿
C. 两个进程通过通信方式协作,但可能造成互斥、死锁或饥饿
D. 两个进程相互不竞争、不协作,但可能造成互斥或死锁
解析:进程间的相互制约关系如下:
相互感知程度交互关系一个进程对其他进程的影响潜在的控制问题
相互不感知(完全不了解其他进程的存在)竞争关系一个进程的操作对其他进程的结果无影响互斥、死锁(可释放资源)、饥饿间接感知(双方都与第三方交互,如共享资源)通过共享进行协作一个进程的结果依赖于从其他进程获得的信息互斥、死锁(可释放的资源)、饥饿、数据一致性
直接感知(双方直接交互,如通信)通过通信进行协作一个进程的结果依赖于从其他进程获得的信息死锁、饥饿
其中间接感知(都与第三方交互,如共享资源)的交
本文档预览:3600字符,共31725字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载