操作系统(1)

家电修理 2023-07-16 19:16www.caominkang.com电器维修

目录

1.例题

2.例题

3.例题

4.例题

6.例题

7.例题

9.例题

9-14对于如下C语言程序


1.例题 •1- 14 操作系统能够“合理”地组织计算机工作流程、控制程序的执行,其中“合理”是指()。 • A )尽可能地利用资源,减少内存、硬盘等的浪费 • B )使得用户在操作计算机时易用、易学且易维护 •C)公平对待不同用户程序,不发生死锁和饥饿 • D )保证处理器高效率运转,提高处理器的利用率 •  【解析】操作系统要公平对待不同用户程序,保证不发生死锁和饥饿现象,答案为C 。 饥饿 是指系统不能保证某个进程的等待时间上界,从而使该进程长时间等待,当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。当饥饿到一定程度的进程所赋予的任务即使完成也不再具有实际意义时称该进程被饿死。 死锁 是指在多道程序系统中,一组进程中的每一个进程都无限期等待被该组进程中的另一个进程所占有且永远不会释放的资源。

1-19随机性是操作系统的特征之一。下列描述的四种现象中,哪一种具有“随机性”()。
A)进程在某一时刻需要显示图像信息
B)进程申请使用计算机的声卡
C)操作系统维护着系统的时钟
D)操作系统内核进行进程切换


 •【解析】操作系统的运行是在一种随机的环境下进行的。这种随机环境的含义是,操作系统不能对所运行的程序的行为以及硬件设备的情况做出任何事先的假定。,操作系统正处于什么样的状态之中是无法确切知道的,这就是随机性的含义。所以操作系统内核进行进程切换这一现象具有随机性,故本题选择D选项。

知识点四大计算机角度看操作系统主要作用

①应用角度——提供人机交互接口;

②软件设计与开发角度——提供软件开发平台;

③计算机安全保护角度——第一道安全防线(不是一道);

④系统发展角度——虚拟机和扩展机;

★1-21操作系统的任务之一是组织和管理计算机系统中的硬件及软件资源,为此在操作系统内部设计了各种数据结构。这些数据结构在操作系统运行中()。

A)可以由用户进程修改

B)可以由用户系统更新

C)自操作系统启动后保持不变

D)只在退出系统或注销用户时保存改变的内容

★1-(1)在操作系统的结构设计中,采用层次结构的操作系统其最大优点是

A)把整体问题局部化

B)大量调用同层模块

C)不同层次可以双向调用

D)数据可以作为全层量使用

★1-(2)★在操作系统的结构设计中,采用整体结构的操作系统其最大优点是

A)结构紧密,系统效率高

B)各模块独立性好

C)可以随意更改或替换一个模块

D)适应性较好

2.例题

2-14下列哪些资源在操作系统控制下可以“互斥共享”()。
A)中央处理器、存储器和可重入代码
B)中央处理器、存储器和打印机
C)中央处理器、外部设备和可重入代码
D)存储器、外部设备和内核调度模块

【解析】可重入代码是一种允许多个进程访问的代码,可以被多个进程共享。外部设备很多,有些是互斥共享,如打印机、扫描仪,有些是共享,如硬盘。所以选项A、C、D是错误的,答案为B。

2-17并发性是操作系统的特征之一。下列描述的四种现象中,哪一种具有“并发性”()。
A)单CPU系统交替运行积分计算和磁盘读写的进程
B)双CPU系统分别运行微分计算和打印输出进程
C)单CPU系统运行除法进程,网卡收发数据包
D)双CPU系统分别运行同一进程的多个不同线程
 
【解析】“并发性”是指计算机系统中存在若干个运行着的程序,也就是说指两个或者多个事件在同一时间的间隔内发生。A选项中在单处理机情况下,计算进程与磁盘读写进程微观上占用CPU交替执行,但宏观上计算进程与读写进程是在同一时间间隔内都活动着的,故选择A选项。

2-19下列哪一个状态位不包含在程序状态字(PSW)中()。
A)溢出标志位(OF)
B)驻留位(A)
C)虚拟中断待决标志位(VIP)
D)IO特权级别位(IOPL)
 
【解析】用一个专门的寄存器来指示处理器状态称为程序状态字(PSW),其包括的状态位有进位标志位(CF)、结果为零标志位(ZF)、符号标志位(SF)、溢出标志位(OF)、陷阱标志位(TF)、中断使能(中断屏蔽)标志位(IF)、虚拟中断标志位(VIF)、虚拟中断待决标志位(VIP)、IO特权级别(IOPL)。故本题答案选择B选项。

3.例题

3-4操作系统的一个重要概念是进程,下列哪一个不能作为进程来管理()。
A)内存换页程序
B)中断服务程序
C)打印程序
D)用户应用程序
 
B【解析】进程是程序的一次执行;进程是一个程序及其数据在处理机上顺序执行时所发生的活动;进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。中断服务程序,可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的,这种程序被称为中断服务程序。中断服务程序是固定在某个地址的代码段,没有进程的概念。故选择B选项。

3-5若用户编程需要打印输出,他可使用下列操作系统提供的哪一种系统调用()。
A)rite()
B)printf()
C)output()
D)list()
 
【解析】系统调用rite()会把缓冲区buf所指的内存写入count个字节到与文件描述符fildes关联的文件中。,文件读写位置也会随之移动。故选择A选项。
操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用的接口呈现给用户。系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,将处理结果返回给应用程序。
打印操作最终封装给用户的形式是printf()函数,查看printf()的定义,函数中调用了putc()函数来进行输出,继续跟踪putc()函数的定义,发现rite函

3-7当用户程序需要调用操作系统所提供的文件读写功能时,该功能执行的指令是()。
A)文件操作指令
B)访管指令
C)特权指令
D)I/O中断指令
 
【解析】调用操作系统的提供功能即是访管中断,所以该功能执行访管指令,故选择B选项。
访管指令是一条可以在用户态下执行的指令。在用户程序中,因要求操作系统提供服务而有意识地使用访管指令,从而产生一个中断事件,将操作系统转换为核心态,称为访管中断。访管中断由访管指令产生,程序员使用访管指令向操作系统请求服务。

3-11在操作系统中,既可以在内核态下运行又可以在用户态下运行的指令是()。
A)置程序计数器
B)清指令寄存器
C)清溢出标志
D)置移位方向标志
 
【解析】对于程序计数器、指令寄存器操作的指令都是特权指令,只能在内核态下运行。对于PSW程序状态字寄存器操作的指令,部分属于特权指令,部分是非特权指令,如设置移位方向标志位(DF位)则是非特权指令。所以选D选项。

3-12处理器中对用户可见的寄存器是()。
A)程序状态字寄存器
B)数据寄存器
C)程序计数寄存器
D)指令寄存器
 
【解析】处理器中对用户可见的寄存器一般包括数据寄存器、地址寄存器以及条件码寄存器。其他三项是控制和状态寄存器,一般由特权指令代码使用,对用户不可见。所以选B选项。

3-13处理器中对用户可见的寄存器是()。
A)程序状态字寄存器
B)地址寄存器
C)程序计数寄存器
D)指令寄存器
 
【解析】处理器中对用户可见的寄存器通常是对用户程序可用的,包括数据寄存器、地址寄存器以及条件码寄存器,而不可见的寄存器多是用于控制处理的操作,如程序计数器、指令寄存器、程序状态字等,所以选项A、C、D是不可见寄存器,选项B是可见寄存器,答案为B。

3-15处理器中对用户不可见的寄存器是()。
A)数据寄存器
B)地址寄存器
C)条件码寄存器
D)指令寄存器
 
【解析】处理器中用户可见的寄a存器包括数据寄存器、地址寄存器和条件码寄存器;选项D的指令寄存器(IR)包含了最近取出的指令,属于控制和状态寄存器,对用户不可见,答案选D。

3-17下列哪一个标志位或状态码不包含在程序状态字(PSW)中()。
A)修改位(M)
B)CPU工作状态码(S)
C)条件码(C)
D)中断屏蔽码(IF)
 
【解析】程序状态字(PSW)通常包括以下状态代码
①CPU的工作状态码——指明管态还是目态,用来说明当前在CPU上执行的是操作系统还是一般用户,从而决定其是否可以使用特权指令或拥有其它的特殊权力
②条件码——反映指令执行后的结果特征
③中断屏蔽码——指出是否允许中断
故选择A选项。

4.例题

4-2下列各种事件中,不属于I/O中断的事件是()。
A)数据传送完毕
B)设备出错
C)指令错
D)键盘输入
 
【解析】数据传送完毕、设备出错和键盘输入均产生I/O中断。故选择C选项。

I/O中断原理_啊我好菜啊-_-的博客-CSDN博客在Windos内核原理-同步IO与异步IO和《高性能网络通讯原理》两篇文章中,都出现了中断这两个字。本篇文章会对中断操作的原理进行说明。中断指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。我们知道CPU是按指令顺序进行执行的,操作系统每过大约15ms会发生一次线程调度(Windos下),根据线程优先级先调度优先级高的线程。实际情况并没有那么https://blog.csdn./qq_42824842/article/details/125773763

4-9中断是操作系统中为提高处理机效率而使用的一种技术,下列选项中,哪一个不是中断而是异常()。
A)时钟中断
B)被零除
C)控制台命令
D)存储器校验错
中断是外部事情引发的,异常是内部事情引发的 


B【解析】异常指的是在程序运行过程中发生的异常事件,通常是由硬件问题或者程序设计问题所导致的,被零除属于软件内部引起的事件。故选择B选项。
中断,也称外中断,指来自CPU执行指令以外的事件的发生。异常,也称内中断、例外或陷入(Trap),指源自CPU执行指令内部的事件。

4-18中断和异常都是将正常执行的程序打断,完成相应处理后再恢复执行,二者是有区别的。下列各种事件中,哪一项属于中断()
A、网卡上数据缓冲区满
B、算术溢出
C、内存保护出错
D、目态程序试图执行特权指令
正确答案A【解析】中断是由外部事件引发的,而异常是由正在执行的指令引发的,选项B算术溢出,选项C内存保护出措和选项D目态程序试图执行特权指令,都属于异常;而选项A网卡上数据缓冲区满属于中断。故本题答案选择A选项。


6.例题

6-7多道程序设计技术使得进程能够并发运行,相比单道程序运行,并发运行的多道程序不再具有下列哪个特性()。
A)独立性
B)随机性
C)共享性
D)可再现性
 
D【解析】在计算机内存中存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。多道程序并发执行的结果与其执行时的进程的推进速度有关,是不确定的,会导致不可再现。故选择D选项。

6-9进程创建时需要填写进程控制块,下列哪一类信息不需要保存在进程控制块中()。
A)进程调度信息
B)进程现场信息
C)进程打开的文件句柄
D)进程用户栈中的信息
 
D【解析】进程控制块的基本内容有进程标识符、进程调度状态、进程相应的程序和数据地址、进程优先级、CPU现场保护区、进程同步与通信机制、进程所在队列文件句柄、与进程有关的其他信息。进程的用户栈不保存在进程控制块中。故选择D选项。
 

6-10所谓“可再入程序”是指下列哪一类程序()。
A)纯代码程序,运行中不需要修改
B)过程调用子程序,可被其他过程调用
C)代码及堆栈,允许部分修改
D)中断服务程序,与用户代码无关
 
A【解析】可再入程序是由可重入代码组成的程序,可以被安全的并行执行,当该程序正在运行时,可以载入内存并执行它。具有如下特点它是纯代码的,即在执行过程中不可修改;调用它的进程应该提供属于它自己的数据区。选A选项。

6-15进程控制块(PCB)的内容一般可以分成调度信息和现场信息两大部分,下列哪一项属于调度信息()。
A)程序状态字
B)时钟信息
C)界地址寄存器
D)当前状态
 
D【解析】PCB的内容可以分成调度信息和现场信息两大部分,调度信息包括进程名、进程号、存储信息、优先级、当前状态、资源清单、“家族”关系、消息队列指针、进程队列指针和当前打开文件等;而现场信息有程序状态字、时钟信息、界地址寄存器等。答案为D。

6-18 在计算机系统中被创建的进程具有多种特性,所谓进程的 “ 独立性 ” 是指()。 A )进程可以控制自己的运行节奏,不依赖任何外部条件 B)一个进程是一个相对完整的资源分配单位 C )一个进程对应一段程序的代码 D )进程的运行不需要其他代码的支持 B 【解析】进程具有 并发性、动态性、独立性和异步性 , 其中独立性是指一个进程是一个相对完整的资源分配单位。 故本题答案选择 B 选项。

7.例题

7-2Linux操作系统中,进程有多种状态。下列状态中,哪一个不是Linux支持的状态()。
A)运行状态
B)安全状态
C)僵尸状态
D)睡眠状态
 
B【解析】Linux上进程有5种状态运行(正在运行或在运行队列中等待);中断(休眠中,受阻,在等待某个条件的形成或接收到信号);不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生);僵死(进程已终止,但进程描述符存在,直到父进程调用ait4()系统调用后释放);停止(进程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信号后停止运行)。故选择B选项。

7-12 某4核处理器的计算机系统中共有50个进程,那么,处于运行状态的进程最多有几个()。
A)4
B)50
C)1
D)0
 A【解析】由题目可知计算机系统中处理器是4核心的,也就是意味着可以执行4个进程的指令,所以处于运行状态的进程最多可以有4个。所以选A选项。

7-15某4核处理器的计算机系统中共有50个进程,那么,处于就绪状态的进程最多有几个()。
A)4
B)46
C)49
D)0
 
C【解析】处于就绪状态的进程已经获得了除处理机外的所需资源,此时再分配给它处理机,就可以执行;题目计算机系统有4核处理器,50个进程,假设50个进程都处于就绪状态,那么必将有一个进程会分配到处理机,转为运行状态,若此进程运行时所需处理机为4个,那么最多有49个进程处于就绪状态,答案为C。

7-18某八核处理器的计算机系统中共有150个进程,那么,任意时刻处于就绪状态的进程最多有几个()。
A)8
B)149
C)142
D)0
 
B【解析】如果系统中存在就绪状态的进程,那么只要该进程分配到CPU,就会立即运行,当该进程运行时占用了所有CPU资源,那么剩下的就绪进程只能等待,所以本题中任意时刻处于就绪状态的进程最多有149个。故本题答案选择B选项。

9.例题

9-2在Pthread线程包中,线程操作pthread_yield表示的是()。
A) 线程让出CPU
B) 创建一个线程
C) 阻塞一个线程
D) 等待一个特定的线程退出

知识点

pthread_yield线程让出CPU

pthread_join等待一个特定的线程退出

pthread_create 创建一个新的线程

pthread_exit()结束调用的线程

pthread_mutex_init()创建一个互斥量

9-3请分析以下程序。
int main()
{
pid t pid;
pid fork();
if(pid==0)
printf("I am the child process,my process ID is%dn",getpid());
else
printf("I am the parent process,my process ID is%dn",getpid());}
那么,该程序正确运行后的结果是()。
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)不输出任何信息

A【解析】计算机程序设计中的fork()函数。返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错讴回-1。
假设程序正确运行并创建子进程成功,那么,子进程中,返回值是O,走第一个if语句打印;父进程中,返回值不是0,执行else打印。故输出l am the child process, my process ID is 3744
l am the parent process, my process ID is 3987。故选择A选项。

小技巧全英文的时候,儿子在前,父亲在后
 

9-5分析下列程序,不考虑其他因素,程序正常运行时最多会派生出多少个进程()。
int main()
{
fork();
fork();
fork();}
A) 8
B) 6
C) 5
D) 4

A【解析】计算机程序设计中的fok)函数。返回值若成功调用一次则返回两个值,,子进程返回0,父进程返回子进程标记;否则,出错返回-1。第一个fork()函数调用后将有两个进程,第二个fok()函数调用后将有4个进程,第三个fok()函数调用后将有8个进程。故选择A选项。简单来说2^3=8

– int main()  //1 个进程 – { – fork ();  //2 个进程 – fork();  //4 个进程 – fork();}  //8 个进程

9-6分析下列程序。
int main()
{ printf("Hello");
fork();
printf("Hello");
fork();
printf("Hello");
fork();
printf("Hello");}
不考虑其他因素,程序正常运行后共打印出多少个"Hello”()。
A) 15
B) 11
C) 7
D) 4

A【解析】

1+2+4+8=15
方法一计算机程序设计中的ok)函数。返回值若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。在fok)之前,输出一个Helo;第一个fork()☒数调用后将有两个进程,输出两个Hello;第二个fork()函数调用后将有4个进程,输出四个Hello;第三个fork()函数调用后将有8个进程,输出八个Hello,,总计为15个Hello。.故选择A选项。
方法二函数fork的作用是通过系统调用创建一个与原来进程几乎完全相同的进程。被创建的子进程的起始执行指令地址却是从原进
程代码的所执行fork(0函数之后开始执行的。如若标记上述代码的第1个fork(为f1,第2个fork(0为f2,第3个fork()为f3,则父进程调用f1产生的子进程代码与父进程一样但起始执行指令地却是从1之后开始执行的。按此方法计算则打印行数为1+f1+1+f2+1+3+1行,f1执行后打印行数为1+f2+1+f3+1行,f2执行后打印行数为1+f3+1行,f3执行后打印行数为1行。合计15行。所以选B选项。

两种题型

9-9对于如下C语言程序
int main()
{
printf("Hello Worldn");
fork();
fork();
printf("Hello Worldn");
}
在UNIX操作系统中正确编译链接后,其正确的运行结果为()。
A)共打印出2行Hello World
B)共打印出3行Hello World
C)共打印出4行Hello World
D)共打印出5行Hello World
 

1+2^2=5
D【解析】
方法一计算机程序设计中的fork()函数。返回值若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。在创建进程之前输出一行Hello World。假设程序正确运行并创建子进程成功,fork()两次将有四个进程,故输出四行Hello World,输出5行Hello World。故选择D选项。
方法二函数fork()的作用是通过系统调用创建一个与原来进程几乎完全相同的进程。被创建的子进程的起始执行指令地址却是从原进程代码的所执行fork()函数之后开始执行的。如若标记上述代码的第1个fork()为f1,第2个fork()为f2,则父进程调用f1产生的子进程代码与父进程一样,但起始执行指令地却是从f2开始执行的。按此方法计算则打印行数为1+f1+f2+1行,f1执行后打印行数为f2+1行,f2执行后打印行数为1行。合计5行。所以选D选项。

9-11对于如下C语言程序
int main()
{
printf("Hello Worldn");
fork();
printf("HelloWorldn");
fork();
printf("Hello Worldn");
}

1+2+2^2=7
在UNIX操作系统中正确编译链接后,其正确的运行结果是()。
A)共打印出6行Hello World
B)共打印出7行Hello World
C)共打印出8行Hello World
D)共打印出9行Hello World
 
B【解析】

方法一计算机程序设计中的fork()函数。返回值 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。在fork()之前,输出一个Hello;第一个fork()函数调用后将有两个进程,输出两个Hello;第二个fork()函数调用后将有4个进程,输出四个Hello,总计为7个Hello。故选择B选项。
方法二函数fork()的作用是通过系统调用创建一个与原来进程几乎完全相同的进程。被创建的子进程的起始执行指令地址却是从原进程代码的所执行fork()函数之后开始执行的。如若标记上述代码的第1个fork()为f1,第2个fork()为f2,则父进程调用f1产生的子进程代码与父进程一样但起始执行指令地却是从f1之后开始执行的。按此方法计算则打印行数为1+f1+1+f2+1行 ,f1执行后打印行数为1+f2+1行,f2执行后打印行数为1行。合计7行。所以

13对于如下C语言程序
int main()
{
int i;
for ( i = 0; i < 1;i++)
{
fork();
printf("Hello Worldn");
}
}
在UNIX操作系统中正确编译链接后,其运行结果为()。
A)共打印出 2 行Hello World
B)共打印出 4 行Hello World
C)共打印出 6 行Hello World
D)共打印出 8 行Hello World
 
A【解析】UNIX系统中,fork()函数用来创建子进程,并且子进程从被创建的程序处开始执行,题目中的for循环执行一次(for ( i = 0; i < 1;i++)),所以执行fork()时,会有两个进程执行之后的printf()函数,输出2行Hello World,答案为A。

9-14对于如下C语言程序


int main()
{
int i;
for ( i = 0; i < 3;i++)
{
 fork();
 printf("Hello Worldn");
}
}
在UNIX操作系统中正确编译链接后,其运行结果为()。
A)共打印出 8 行Hello World
B)共打印出 10 行 Hello World
C)共打印出 12 行Hello World
D)共打印出 14 行Hello World

2+4+8=14

D【解析】UNIX系统中,fork()函数用来创建子进程,并且子进程从被创建的程序处开始执行,题目中的for循环执行3次(for ( i = 0; i < 3;i++)),所以第1次执行fork()时,会有两个进程执行之后的printf()函数,输出2行Hello World;所以第2次执行fork()时,会有四个进程执行之后的printf()函数,输出4行Hello World;所以第3次执行fork()时,会有八个进程执行之后的printf()函数,输出8行Hello World;共计输出2+4+8=14行Hello World。答案为D。

9-15

15对于如下C语言程序
int main()
{
int i;
for ( i = 0; i < 2;i++)
{
fork();
printf("Hello Worldn");
}
}
在UNIX操作系统中正确编译链接后,其运行结果为()。
A)共打印出 2 行Hello World
B)共打印出 4 行Hello World
C)共打印出 6 行Hello World
D)共打印出 8 行Hello World
 

C【解析】2+4=6;与9-14类似

10-1下列各种情况中,一定不会引起进程调度的操作是()。
A)一个进程完成工作后被撤销
B)一个进程从运行状态变成了阻塞状态或就绪状态
C)一个进程从阻塞状态变成了就绪状态
D)一个进程从就绪状态变成了运行状态(占用了CPU,无法让出)
 
D【解析】引起进程调度的原因(1)正在执行的进程执行完毕。(2)执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等状态。(3)执行中进程调用了阻塞原语操作,并且因为资源不足而被阻塞;或调用了唤醒原语操作激活了等待资源的进程。(4)在分时系统中时间片已经用完。(5)就绪对列中的某个进程的优先级高于当前运行进程的优先级。故选择D选项。题中只有D选项不会发生进程调度,因为进程调度最主要的原因是是否有CPU资源让出来,有CPU资源让出来不一定能发生调度,但没有CPU资源让出,则一定不会发生进程调度。而D选项是占用掉了CPU资源,没有CPU资源让出来,所以选D选项。
由于用户进程数一般都多于处理机数,这将导致它们互相争夺处理机。,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。
 

Copyright © 2016-2025 www.caominkang.com 曹敏电脑维修网 版权所有 Power by