操作系统:前三章复习题

一、选择题

1、在现代操作系统中引入了( D ),从而使并发和共享成为可能。

A.单道程序      B. 磁盘      C. 对象      D.多道程序

2、(B  )操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。

A.网络        B.分布式        C.分时             D.实时

3、从用户的观点看,操作系统是(A  )。

A. 用户与计算机硬件之间的接口               B.控制和管理计算机资源的软件

C. 合理组织计算机工作流程的软件             D.计算机资源的的管理者

4、当 CPU 处于管态时,它可以执行的指令是( A)。

A. 计算机系统中的全部指令       B. 仅限于非特权指令     

C. 仅限于访管指令        D. 仅限于特权指令

5、用户在程序中试图读取某文件的第 100 个逻辑块时,使用操作系统提供的(A     )接口。

A. 系统调用    B.图形用户接口     C.原语      D.键盘命令

6、下列几种关于进程的叙述,(A     )最不符合操作系统对进程的理解?

A.进程是在多程序并行环境中的完整的程序。      B.进程可以由程序、数据和进程控制块描述。

C.线程是一种特殊的进程。  D.进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。

【进程是正在运行的完整程序。它与运行环境无关】

7、当一个进程处于(   B   )状态时,称其为等待(或阻塞)状态。

A. 它正等待中央处理机    B. 它正等待合作进程的一个消息     C. 它正等待分给它一个时间片 D. 它正等待进入内存

8、一个进程释放一种资源将有可能导致一个或几个进程(  D  )。

A.由就绪变运行     B.由运行变就绪    C.由阻塞变运行                     D.由阻塞变就绪

9、下面关于线程的叙述中,正确的是(C  )。

A.不论是系统支持线程还是用户级线程,其切换都需要内核的支持。                                                                

B.线程是资源的分配单位,进程是调度和分配的单位。

C.不管系统中是否有线程,进程都是拥有资源的独立单位。   

D.在引入线程的系统中, 进程仍是资源分配和调度分派的基本单位。

10、设有 3 个作业,它们同时到达,运行时间分别为 T1、T2 和 T3,且 T1≤T2≤T3,若它们在单处理机系统中按单道运行,采用短作业优先调度算法,则平均周转时间为(D)。

A. T1+T2+T3    B. (T1+T2+T3)/3    C. T1+T2/3+2*T3/3               D.T3/3+2*T2/3+T1

周转时间T=作业完成时间-作业的提交时间

【平均周转时间={T1+(T1+T2)+(T1+T2+T3)}/3=T1+2/3T2+1/3T3】

11、在下面的 I/O 控制方式中,需要 CPU 干预最少的方式是(D   )。

A.程序 I/O 方式  

B.中断驱动 I/O 控制方式

C.直接存储器访问 DMA 控制方式

D.I/O 通道控制方式

【程序IO方式,是采用busy-waiting的方式,即CPU会采用轮询的方式来询问数据-------效果最差

中断IO方式,是设备控制器当取出一个数据之后向CPU发送一个中断,然后CPU将数据从控制器中取到CPU寄存器,再然后转移到内存中。这种方式,CPU是以字节的方式来响应数据的。

DMA方式,是CPU通过向DMA控制器设定若干参数,然后DMA打开了一条内存到设备的通道,这样,设备(内存)中的数据可以不通过CPU来进行数据交互。缺点是,DMA是多少设备就需要多少DMA,而且,DMA方式下,CPU的访问设备是以数据块为周期的。

到了IO通道方式,IO通道相当于一个简单的处理机,有自己的指令,也可以执行指令。指令存储在内存。

IO通道相当于一条PCI总线,一条IO通道可以连接所有的设备控制器。然后CPU向IO通道发出指令,IO通道将会自动进行获取数据。

另外,IO通道是以一组块为单位进行获取的。所以,IO通道方式需要最少的CPU干预】

12、有 m 个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量的变化范围是(A   )。

A.1 至 –(m-1)        B.1 至 m-1       C.1 至–m          D.1 至 m

13、对资源编号,要求进程按照序号顺序申请资源,是破坏了死锁必要条件中的哪一条?(D   )

A. 互斥     B. 请求与保持     C. 不可剥夺    D. 循环等待

14、某系统采用了银行家算法,则下列叙述正确的是(B  )。

A.系统处于不安全状态时一定会发生死锁           B.系统处于不安全状态时可能会发生死锁

C.系统处于安全状态时可能会发生死锁             D.系统处于安全状态时一定会发生死锁

二、填空题

21、 操作系统是计算机系统中的一个     系统软件       ,它管理和控制计算机系统中的    资源             

22、 进程主要由 程序          数据          PCB       三部分内容组成,其中    PCB    是进程存在的惟一标识,而          数据     部分也可以为其它进程共享。

23、在一个具有 2 个处理器的操作系统中共有 n 个进程,在不考虑进程状态过渡的情况下,阻塞进程队列中最多有个进程。

某一时刻,处于执行状态的进程为 0 个,且当前处理机空闲,处于就绪状态的进程有   n    个。

24、当处理器空闲时,调度程序从   就绪    进程队列中选择一个进程给其分配 CPU,处于        阻塞        状态的进程是不会获得 CPU 的。

25、在响应比最高者优先的作业调度算法中,当各个作业等待时间相同时,运行时间短       的作业将得到优先调度;

当各个作业要求运行的时间相同时,  _等待时间长   _的作业得到优先调度。

26、某系统中共有 10 台磁带机被 m 个进程竞争,每个进程最多要求 3 台磁带机,那么当m 的取值为_不超过 4 的整数 时,系统不会发生死锁。

三、简答题

31、什么是进程?什么是线程?进程与线程有何区别?

答:进程是具有独立功能程序某个数据集合上一次执行过程。(2 分)

线程是进程内一个执行实体或执行单元。(2 分)

进程和线程的区别:

(a)不同进程的地址空间是独立的,而同一进程内的线程共享同一地址空间一个进程的线程在另一个进程内是不可见的

(b) 在引入线程的操作系统中,进程是资源分配和调度的单位线程是处理机调度和分配的单位,资源是分配给进程的,线程只拥有很少资源,因而切换代价比进程切换低。(2 分)

32、什么是死锁?产生死锁的原因和必要条件是什么?

答:在多道程序系统中,当一组进程中的每个进程无限期地等待被改组进程中的另一进程所占有且永远不会释放的资源,此时的系统处于死锁状态,简称死锁。(2 分)

死锁产生的原因:(a)系统提供的资源有限;(b)进程推进顺序不当。(2 分)

产生死锁的必要条件:互斥条件、不可剥夺条件、请求和保持条件、循环等待条件。(2 分)

33、说明作业调度,中级调度和进程调度的区别,并分析下述问题应由哪一级调度程序负责。

  1. 在可获得处理机时,应将它分给哪个就绪进程;
  2. 在短期繁重负载下,应将哪个进程暂时挂起。

答:(1) 作业调度用于决定把外存中处于后备队列中的哪些作业调入内存,并为它们创建进程,分配资源,然后将新创建进程插入就绪队列

中级调度负责将内存中暂时不具备运行条件的进程换到外存交换区存放,但内存空闲时,又将外存中具备运行条件的进程重新换入内存

进程调度决定将处理机分配给就绪进程队列的哪个进程(4 分)

(2)进程调度、中级调度(2 分)

四、综合题(本大题共 2 小题,第 1 题 9 分,第 2 题 13 分,计 22 分)

34、(9 分)在一个请求分页系统中,假设系统分配给某进程的物理块数为 3,开始时内存为空,执行如下访问页号序列:

1,2,3,4,1,2,5,1,2,3,4,5

试说明采用先进先出(FIFO) 、最近最少使用(LRU)和最佳置换算法(OPT)进行页面置换时,缺页次数各是多少?

答:(1)FIFO: 9 次  (3 分)

(2)LRU:10 次 (3 分)

(3)OPT:7 次  (3 分)

说明:没有计算过程,本题不得分。如果结果有误,根据步骤酌情给分。

35、(13 分)如图 2 所示,系统中有三个进程 GET、PRO 和 PUT,共用两个缓冲区 BUF1 和 BUF2。

假设 BUF1 中最多可放 11 个信息,现已放入了两个信息;BUF2 最多可放 5 个信息。

GET 进程负责不断地将输入信息送入 BUF1 中,

PRO 进程负责从 BUF1 中取出信息进行处理,并将处理结果送到 BUF2 中,

PUT 进程负责从 BUF2 中读取结果并输出。

试写出正确实现 GET、PRO、PUT 的同步与互斥的算法

(要求:(1)用类 C 语言描述,条理清楚,注释恰当;(2)信号量原语统一使用 wait signal。)

 答:

semaphore
empty1=9;//空 buf1 的数目
full1=2;	//有数据的 buf1 的数目
empty2=5; //空 buf2 的数目
full1=0;	//有数据的 buf2 的数目
mutex1=mutex2=1; //互斥信号量
int main(){
Cobegin	//并发开始
GET();
PRO();
PUT();
Coend	//并发结束
return 0;	}	(3 分)


//GET 进程
void GET(){
while(1)
{
…
wait(empty1);
wait(mutex1);
将信息送入buf1;
signal(mutex1);
signal(full1);
…
}
}	(3 分)


//PRO 进程
void PRO(){
while(1)
{
wait(full1);
wait(mutex1);
从 buf1 中取出信息;
signal(mutex1);
signal (empty1);
wait(empty2);
wait(mutex2);
将信息送入 buf2;
signal(mutex2);
signal(full2);
}
}	(4 分)


//PUT 进程
void PUT(){
while(1)
{
wait(full2);
wait(mutex2);
从 buf2 中取出信息;
signal(mutex2);
signal (empty2);
}	(3 分

猜你喜欢

转载自blog.csdn.net/aiqq136/article/details/124180288