计算机四级网络工程师(操作系统原理)模拟试卷19
操作系统原理——单选题
1.为了便于操作系统进行控制,在操作系统内核中为进程定义了一个专门的数据结构,称为PCB。下列选项中,哪一项不是PCB的内容( )?(B)
A. 进程队列指针
B. 消息队列
C. 界地址寄存器
D. 当前打开文件清单
解析:进程控制块(PCB)的内容一般可以分成调度信息和现场信息两大部分,调度信息包括:进程名、进程号、存储信息、优先级、当前状态、资源清单、“家族”关系、消息队列指针、进程队列指针和当前打开文件等;现场信息包括:程序状态字、时钟、界地址寄存器等。故本题答案选择B选项。
2.为了便于系统控制和描述进程的活动过程,在操作系统核心中为进程定义了一个专门的数据结构,称为PCB。操作系统将PCB组织成不同的队列,下列哪一种队列与PCB无关( )?(A)
A. 创建队列
B. 就绪队列
C. 等待队列
D. 运行队列
解析:为了实现对进程的管理,系统将所有进程的PCB排成若干个队列。通常系统中的队列分成如下三类:就绪队列、等待队列和运行队列。故本题答案选择A选项。
3.一个进程一般由代码、数据和PCB组成,PCB的内容可以分成调度信息和现场信息。下列不属于调度信息的是(A)
A. 当前打开文件表
B. 进程优先级
C. 当前状态
D. 已运行时间
解析:进程控制块(PCB)的内容一般可以分成调度信息和现场信息两大部分,调度信息包括:进程名、进程号、存储信息、优先级、当前状态、资源清单、“家族”关系、消息队列指针、进程队列指针和当前打开文件等;现场信息包括:程序状态字、时钟、界地址寄存器等。当前打开文件表保存在文件控制块中,并不属于进程控制块中的信息,故选择A选项。
4.为了便于系统控制和描述进程的活动过程,在操作系统核心中为进程定义了一个专门的数据结构,称为PCB。操作系统将PCB组织成不同的队列,下列哪一种队列与PCB无关?(A)
A. 退出队列
B. 就绪队列
C. 等待队列
D. 运行队列
解析:系统中进程的队列分为三类:就绪队列、等待队列和运行队列。故答案选择A选项。
5.为了便于系统控制和描述进程的活动过程,在操作系统核心(内核)中为进程定义了一个专门的数据结构,称为(B)
A. DMA
B. PCB
C. TLB
D. SDT
解析:为了便于系统控制和描述进程的活动过程,在操作系统核心中为进程定义一个专门的数据结构,称为进程控制块(PCB)。故选择B选项。
6.下列哪一项包含的都是进程的组成部分?(B)
A. Code、Data、Operating System
B. Code、Data、PCB
C. Program、Data Struct、PCB
D. Linked List、Stack、Code
解析:进程由指令(Code)、数据(Data)和进程控制块(PCB)3部分组成。故本题答案选择B选项。
7.在Pthread线程包中,线程操作pthread_join的含意是( )。(C)
A. 创建一个新的线程
B. 撤销一个线程
C. 等待一个特定的线程退出
D. 参加一个新的线程
解析:线程操作pthread_join的含意是等待一个特定的线程退出。故本题答案选择C选项。
8.在Pthread线程包中,线程操作pthread_yield表示的是( )。(A)
A. 线程让出CPU
B. 创建一个线程
C. 阻塞一个线程
D. 等待一个特定的线程退出
解析:线程操作pthread_yield表示线程让出CPU。故本题答案选择A选项。
9.请分析以下程序。
int main()
{
pid_t pid;
pid = fork();
if(pid==0)
printf(“I am the child process, my process ID is%d\\
\\(A)
A. I am the child process, my process ID is 3744
I am the parent process, my process ID is 3987
B. I am the child process, my process ID is 3744
C. I am the parent process, my process ID is 3987
D. 不输出任何信息
解析:计算机程序设计中的fork()函数返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。假设程序正确运行并创建子进程成功,那么,子进程为0,父进程为进程号,故输出I am the child process,my process ID is 3744 I am the parent process,my process ID is 3987。故本题答案选择A选项。
10.请分析下列程序。
int main()
{
printf(“This is in main program”);
if(fork()==0)
printf(“I am in child process”);
else
printf(“I am in parent process”);}
程序正确运行后结果是( )。(A)
A. This is in main program I am in child process I am in parent process
B. This is in main program I am in child process
C. This is in main program I am in parent process
D. This is in main program I am in child process This is in main program I am in parent process
解析:计算机程序设计中的fork()函数的返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。假设程序正确运行并创建子进程成功,那么,子进程为0,父进程为进程号,故输出This is in main program I am in child process I am in parent process。故本题答案选择A选项。
11.分析下列程序,不考虑其他因素,程序正常运行时最多会派生出多少个进程( )。
int main()
{
fork();
fork();
fork();}(A)
A. 8
B. 6
C. 5
D. 4
解析:计算机程序设计中的fork()函数的返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。第一个fork()函数调用后将有两个进程,第二个fork()函数调用后将有4个进程,第三个fork()函数调用后将有8个进程。故本题答案选择A选项。
本文档预览:3600字符,共10319字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载