四级网络工程师真题试卷汇编21
操作系统原理——单选题
1.操作系统的任务之一是组织和管理计算机系统中的硬件及软件资源,为此在操作系统内部设计了各种数据结构。这些数据结构在操作系统运行中( )。(B)
A. 可以由用户进程修改
B. 可以由系统动态更新
C. 自操作系统启动后保持不变
D. 只在退出系统或注销用户时保存改变的内容
解析:在操作系统内部,为了掌握整个计算机系统的硬件和软件资源,设计了各种不同类型的表格或数据结构,将所有的硬件和软件资源一一加以登记。资源的名称、类型、数量、用途、完好状态以及目前使用状态等信息,均在有关数据结构中保存,并动态、实时地不断更新着,可以由系统动态更新。
2.下列选项中,哪一项所列的寄存器组都是用户不可见寄存器?(B)
A. 数据寄存器、指令寄存器、程序状态字寄存器
B. 程序计数器、指令寄存器、程序状态字寄存器
C. 地址寄存器、程序计数器、指令寄存器
D. 条件码寄存器、数据寄存器、程序状态字寄存器
解析:用户可见寄存器通常对所有程序都是可用的,由机器语言直接使用。它一般包括数据寄存器、地址寄存器以及条件码寄存器。
3.下列哪一种事件产生的是中断而不是异常?(B)
A. 算术溢出
B. 计时器归零
C. 被零除
D. 执行访管指令
解析:中断是由外部事件引发的,而异常则是由正在执行的指令引发的。
典型的中断包括:
时钟中断、输入输出(I/O)中断。控制台中断、硬件故障中断。
典型的异常包括:
①程序性中断:在某些条件下由指令执行结果产生,例如算术溢出、被零除、目态程序试图执行非法指令、访问不被允许访问的存储位置、虚拟存储中的缺页等。
②访管指令异常:目的是要求操作系统提供系统服务。
4.下列关于系统调用和一般过程调用的叙述中,哪一项是正确的?(D)
A. 系统调用和一般过程调用都不允许直接调用
B. 系统调用和一般过程调用都允许直接调用
C. 系统调用允许直接调用,一般过程调用不允许直接调用
D. 系统调用不允许直接调用,一般过程调用允许直接调用
解析:由于操作系统的特殊性,应用程序不能采用一般的过程调用方式来调用这些功能过程,而是利用一种系统调用命令去调用所需的操作系统过程。因此,系统调用在本质上是应用程序请求操作系统核心完成某一特定功能的一种过程调用,是一种特殊的过程调用。所以系统调用不允许直接调用,一般过程调用允许直接调用。
5.在设计操作系统的调度算法时,应该针对不同的应用领域确定不同的设计目标。为获得较高吞吐量指标的调度算法适用于下列哪一种环境?(A)
A. 批处理系统
B. 交互式系统
C. 实时系统
D. 嵌入式系统
解析:运行大量批处理作业的大型计算中心的管理者们为了掌握其系统的工作状态,通常检查三个指标:吞吐量、周转时间以及CPU利用率。吞吐量是系统每小时完成的作业数量。为获得较高吞吐量指标的调度算法适用于批处理系统。
6.衡量多道程序设计系统效率的指标是( )。(B)
A. 处理器利用率
B. 系统吞吐量
C. 响应时间
D. 周转时间
解析:引入多道程序设计后,提高了设备资源利用率,使系统中各种设备经常处于忙碌状态,提高了内存资源利用率;同时进人系统中的多个程序可以保存于内存的不同区域中,提高了处理器资源利用率。最终,提高系统吞吐量。
7.某服务器装有四颗处理器,每颗处理器具有八个核。假设当前系统中共有240个进程,且系统支持多线程。那么,处于运行态的进程最少有几个?(D)
A. 32
B. 240
C. 1
D. 0
解析:如果系统中存在就绪状态的进程,那么只要该进程分配到CPU,就会立即运行,当该进程运行时占用了所有CPU资源,那么剩下的就绪进程只能等待。本题中服务器装有四颗处理器,每颗处理器有八个核,且系统支持多线程,所以处于运行态的进程最多有4*8=32个,最少为0个(所有的进程都运行完成了)。故本题选择D选项。
8.进程被阻塞后因为等待的事件出现而被唤醒,此时该进程将进入下列哪一个队列?(B)
A. 运行队列
B. 就绪队列
C. 阻塞队列
D. 挂起队列
解析:一个进程因为等待事件的发生而处于等待状态,当等待事件完成后,就用唤醒原语将其转换为就绪状态。具体操作过程是:在等待队列中找到该进程,置进程的当前状态为就绪状态,然后将它从等待队列中撤出并插入到就绪队列中排队,等待调度执行。
9.对于如下C语言程序
int main()
{
pid_t pid;
int a=20;
pid = fork();
if (pid = 0)
printf(\\(A)
A. This is the son process, a=21 This is the dad process, a=19
B. This is the son process, a=22
C. This is the dad process, a=18
D. This is the dad process, a=21 This is the son process, a=19
解析:在UNIX类操作系统中,父进程通过调用fork()函数创建子进程,子进程获得与父进程地址空间相同的一份拷贝,包括文本、数据和bss段、堆以及用户栈,fork()函数被调用一次,却返回2次:一次是在调用进程中,一次是在新创建的子进程中,所以题目程序中的变量a,在父进程和子进程中存在2份,初值都是20,程序运行后子进程输出a=21,父进程输出a=19。故本题答案选择A选项。
10.有如下C语言程序:
/*program Hello*/
void *p_th Hello(void * arg)
{
printf(\\(B)
A. 1
B. 2
C. 3
D. 0
解析:一般一个线程在继续运行前需要等待另一个线程完成它的工作并退出。可以通过pthread join线程调用来等待别的特定线程的终止。而要等待线程的线程标识符作为一个参数给出。当主程序发布以后,题目中程序变量为sta,初值为0,创建线程之后比较两个线程ID是否相等。所以当pthread_join运行成功后,进程Hello有2个线程。
11.进程间存在着相互制约关系。假设在篮球比赛中,每个队员是一个进程,篮球是资源。那么,下列哪一项是双方队员之间的关系?(A)
A. 互斥
B. 同步
C. 饥饿
D. 死锁
解析:进程同步是指多个进程中发生的事件存在某种时序关系,必须协同动作,相互配合,以共同完成一个任务。进程互斥是指由于共享资源所要求的排他性,进程间要相互竞争,以使用这些互斥资源。在篮球比赛中,每个队员是一个进程,篮球是资源,篮球对于队员来说是共享资源,双方队员都需要相互竞争来争夺篮球,故双方队员之间的关系互斥。
12.有如下民航订票程序:
int booking(id, char n, int c)//订票例程,id是用户号,n为航班号,c为票数
{ int i;
while TS(&lock); //Test-and-Set指令
i= fetch(n,s);/
本文档预览:3600字符,共28013字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载