操作系统:处理机调度与死锁 练习题(带有解析和答案)

1.处理机调度的层次和调度算法的目标

1.1.处理机调度的层次

操作系统中,(A)负责对进程进行调度。

A.处理机管理
B.高级调度管理
C.存储和设备管理
D.作业管理

解析:进程管理属于处理机管理的内容,因此首先排除C选项。由于处理机调度可以分为高级、低级和中级三个层次,高级调度(作业调度)的调度对象是作业,因此排除B选项和D选项,因此处理机管理负责对进程进行调度。

作业调度和进程调度相互配合实现多道程序的并行执行(A)

A.对
B.错

解析:本题为概念题。计算机必须通过作业调度和进程调度的相互配合来实现多道程序的并行执行。

1.2.处理机调度算法的目标

确定作业调度算法时应主要考虑系统资源的均衡使用,使I/O繁忙作业和CPU繁忙作业搭配运行。(A)

A.正确
B.错误

解析:本题考察处理机调度算法的共同目标。此处所指的正是共同目标中的平衡性,需要使得系统中CPU和各种外部设备都能经常处于忙碌状态。

下列哪些选项描述的时间不属于响应时间的一部分(D)

A.处理机对请求信息进行处理的时间
B.对键盘输入的请求信息传送到处理机的时间
C.所形成的响应回送到终端显示器的时间
D.用户查看响应回送到的消息的时间

解析:响应时间分为三部分:一是请求信息从键盘输入开始直到将其传送到处理机的时间;二是处理机对请求信息进行处理的时间;三是将所形成的响应信息回送到终端显示器的时间。

求解周转时间和带权周转时间例题

题目如下:
在这里插入图片描述
在这里插入图片描述
解析:
在这里插入图片描述

2.作业与作业调度

2.1.批处理系统中的作业

作业调度程序从处于(D)状态的队列中选取适当的作业调入主存运行。

A.执行
B.提交
C.完成
D.后备

解析:作业调度程序每次选择处于后备状态的作业中选择出若干个调入主存中运行,使得这些作业的状态转变为执行状态。

在操作系统中,作业处于©时,已处于进程的管理之下。

A.后备状态
B.阻塞状态
C.执行状态
D.完成状态

解析:首先排除B,因为阻塞状态并不是作业的三种状态之一。只有当作业处于执行状态时,操作系统才会为作业分配资源和建立进程,因此作业与进程有关的状态只能是执行状态。

操作系统作业管理的主要功能是(A)

A.作业调度与控制
B.作业提交
C.作业准备
D.编制程序

解析:本题为概念题:操作系统作业管理的主要功能就是作业调度与控制。

用户在一次计算过程中,或者一次事物处理中,要求计算机完成所做的工作的集合,这是指(C)。

A.进程
B.程序
C.作业
D.系统调用

解析:本题考察对作业的定义的理解。用户为计算机布置的一项工作任务称为作业,程序只是作业的一部分,进程是程序的动态执行。

一个作业或任务在运行,可以对应多个进程执行(A)。

A.对
B.错

解析:本题考察作业和进程的对应关系,一个作业可以对应多个进程。

操作系统中用以表征“作业”的数据结构是作业控制块JCB(A)

A.对
B.错

解析:本题考察作业控制块的相关概念,容易判断是正确的。

作业一旦被作业调度程序选中,即占有了CPU。(B)

A.对
B.错

解析:作业被作业调度程序选中后,此作业变为运行状态并被放入内存中,以进程的形式存放于系统,并放入进程就绪队列。

作业从后备作业到被调度程序选中的时间称为(C)。

A.周转时间
B.响应时间
C.等待调度时间
D.运行时间

解析:本题中考察等待调度时间的定义。等待调度时间是周转时间的一部分。

通用操作系统中,通常把终端作业称为后台作业,批处理作业称为前台作业。(A)

A.正确
B.错误

解析:顺序错误。通常把终端作业称为前台作业,批处理作业称为后台作业。

2.2.作业调度的主要任务

作业调度必须做接纳多少个作业和接纳哪些作业两个决定。(A)

A.正确
B.错误

解析:本题考察作业调度的两个主要任务,属于概念题。

2.3.先来先服务和短作业优先调度算法

按照作业到达的先后次序调度作业,排队等待时间最长的作业被优先调度,这是指(B)调度算法。
A.优先数法
B.先来先服务
C.最短作业优先
D.定时轮转法

解析:本题考察调度算法的判断,容易看出本题中采用的是先来先服务算法。

2.4.优先级调度算法和高响应比调度算法

在进行作业调度时,要想兼顾作业等待时间和计算时间,应选取(B)。

A.均衡调度算法
B.响应比高者优先算法
C.先来先服务算法
D.优先数调度算法

解析:本题考察响应比高者优先算法的概念。该算法同时考虑了作业等待时间和服务时间两部分,而先来先服务算法和短作业优先算法都没有考虑;优先数调度算法由外部赋予优先级而没有使用等待时间和服务时间信息。

在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和(A)相同。

A.先来先服务调度算法
B.短作业优先调度算法
C.时间片轮转调度算法
D.长作业优先调度算法

解析:当动态优先权算法中所有进程的优先权初值相同时,又因为所有进程的优先权按照相同的速率增长,因此此时的优先权调度算法与先来先服务调度算法在本质上是相同的。

作业调度算法提到的响应比是指(B)。

A.作业计算时间与周转时间之比
B.作业周转时间与计算时间之比
C.系统调度时间与作业等待时间之比
D.作业等待时间与系统调度时间之比

解析:作业调度算法中的响应比是指作业周转时间(响应时间)与要求服务时间(计算时间)的比值。

(C)优先数是在创建进程时确定的,确定之后在整个进程运行期间不再改变。

A.先来先服务
B.短作业
C.静态
D.动态

解析:优先数即优先级。优先级调度算法可以分为静态和动态两种:静态优先级在进程创建时确定,进程运行的整个过程中不改变;动态优先级会随着进程的运行过程而发生变化。

为了照顾紧迫型作业,应采用(D)。

A.先来先服务调度算法
B.短作业优先调度算法
C.时间片轮转调度算法
D.优先权调度算法

解析:通过优先权调度算法,可以给紧迫性作业分配更高的优先权使得其能尽早执行,因此本题最好采用优先权调度算法。

一个作业8:00到达系统,估计运行时间为1小时,若10:00开始执行该作业,其响应比是3。(A)

A.正确
B.错误

解析:响应比是指等待时间与服务时间之和与服务时间的比值。本题中等待时间为2小时,服务时间为1小时,因此响应比=(1+2)/1=3。

3.进程调度

3.1.进程调度的任务、机制和方式

在抢占调度方式中,抢占的原则主要是时间片原则、短作业优先、优先权原则。(A)
A.正确
B.错误

解析:抢占方式的进程调度需要遵循三个原则:优先权原则、短进程分配原则、时间片原则。

3.2.轮转调度算法

时间片轮转调度算法是为了(A)

A.多个终端都能得到系统及时响应
B.使系统变得高效
C.优先级较高的进程得到及时响应
D.需要CPU时间最少的进程最先做

解析:时间片轮转调度算法的本质就是让所有进程轮流接受服务,这样可以使得多个终端都能得到系统的及时响应。

下列调度算法中,不可能导致饥饿现象的是(A)。

A.时间片轮转
B.静态优先数调度
C.非抢占式短任务优先
D.抢占式短任务优先

解析:时间片轮转就是为了让每一个进程都能接受服务,因此不可能导致饥饿现象。静态优先数调度可能使得优先数太低的进程始终不被服务;短任务优先可能导致长任务不被服务。

下列选项中,(C)不可能是非强占方式进程调度中引起调度的原因。

A.当前的运行进程调用阻塞原语而进入阻塞状态
B.当前的运行进程因提出申请I/O而阻塞
C.有更高优先级的进程到达而从执行状态变为就绪状态
D.正在执行的进程执行了P原语操作,由于资源不足而阻塞

解析:非强占方式进程调度中,有三种情况可能引起进程调度:正在执行的进程运行完毕,或因为发生某事件而使其无法再继续运行;正在执行中的进程因提出I/O请求而暂停执行;在进程通信或同步的过程中,执行了某种原语操作,如Block原语。非抢占方式下进程的运行不会被其他进程主动抢占,因此不会因为更高优先级的进程到达而变为就绪状态。

对进程的管理和控制使用(B)

A.指令
B.原语
C.信号量
D.信箱

解析:对进程的管理和控制功能是通过执行各种原语进行实现的。

采用时间片轮转调度算法分配CPU时,当处于运行态的进程用完一个时间片后,它的状态是(B)状态。

A.运行
B.就绪
C.消亡
D.阻塞

解析:当一个运行态的进程用完一个时间片后,其状态变为就绪状态,等待下一个时间片。

3.5.多级反馈队列

为什么说多级反馈队列能较好地满足各种用户的需要?
解析:

多级反馈队列调度算法中,如果规定第一个队列的时间片略大于大多数人机交互所需之处理时间时,便可以很好地满足各种类型用户的需要。
①终端型用户。由于终端型用户提交的作业多属于交互型作业,通常较小,系统只要能使这些作业在第一队列规定的时间片内完成,便可使终端型用户感到满意。
②短批处理作业用户。对于这些作业,如果可在第一队列中执行完成,便获得与终端型作业一样的响应时间。对于稍长的短作业,也只需在第二和第三队列各执行一时间片完成,其周转时间仍然较短。
③长批处理作业用户。对于长作业,它将按照顺序在队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。

5.死锁概述

5.1.资源问题

两个进程争夺同一个资源(B)

A.一定死锁
B.不一定死锁
C.不会死锁
D.以上说法都不对

解析:两个进程争夺不可抢占性资源时会引起死锁,争夺可消耗资源也会引起死锁。但是争夺可重用性资源和可抢占性资源不会引起死锁。

5.2.计算机系统中的死锁

进程P1使用资源情况:申请资源S1,申请资源S2,释放资源S1;进程P2使用资源情况:申请资源S2,申请资源S1,释放资源S2,系统并发执行进程P1,P2,系统将(B)。

A.必定产生死锁
B.可能产生死锁
C.会产生死锁
D.无法确定是否会产生死锁

解析:如果按照一定的顺序执行P1和P2,则不会产生死锁;但是进程的执行有异步性:当进程推进顺序非法时则会产生死锁。因此只能判断可能产生死锁。

5.3.死锁的定义、必要条件和处理方法

计算机的死锁俗称“死机”。(B)

A.正确
B.错误

解析:计算机的死锁当然不是死机,参照死锁的定义。

解决死锁的途径是(D)。

A.立即关机排除故障
B.立即关机再重新开机
C.不要共享资源,增加独占资源
D.设计预防死锁方法,运行检测并恢复

解析:立即关机重启等都不是解决死锁的科学方法;不共享资源不利于多个进程之间的相互通信,因此不可取;综上所述只能选D。处理死锁可以使用预防死锁、避免死锁、检测死锁和解除死锁四种方法。

产生死锁的原因有哪些?举例说明。

解析:

①竞争不可抢占性资源引起死锁。通常系统中所拥有的不可抢占性资源其数量不足以满足多个进程运行的需要,使得进程在运行过程中,会因争夺资源而陷入僵局。
例如,当系统中有两个进程P1和P2,它们都准备写两个文件F1和F2,而这两个都属于可重用和不可抢占性资源。进程P1先打开F1,然后再打开文件F2;进程P2先打开文件F2,后打开F1。当P1和P2在并发执行时,如果P1在打开F1的同时,P2在打开F2,每个进程都占用一个打开的文件,此时就可能出现问题。因为当P1试图取打开F1时,这两个进程都会因文件已被打开而阻塞,都希望对方关闭自己所需要的文件,但是谁都无法运行,因此这两个进程会无限期等待下去而形成死锁。
②竞争可消耗资源引起死锁:如果两个进程P1和P2之间利用消息通信机制进行通信,则通信的内容是可消耗资源。两个进程都向另一个进程发出信息并从另一个进程接受信息。如果两个进程都先执行接收信息操作再执行发出信息操作,则会陷入死锁。
③进程推进顺序不当引起死锁:除了系统中多个进程对资源的竞争会引发死锁外,进程在运行过程中,对资源进行申请和释放的顺序是否合法,也是在系统中是否会产生死锁的一个重要因素。
例如,非法的进程推进顺序就会导致死锁。

判断死锁存在性的两道例题

判断方法:假设计算机中有N个进程,共有M个资源,每个进程需要K个资源。如果满足不等式:M/N+M%N>=K,那么就不存在死锁问题。

有相同类型的5个资源被4个进程所共享,且每个进程最多需要2个这样的资源就可以运行完毕。试问该系统是否会由于对这种资源的竞争而产生死锁。

解析:

本题考察死锁现象存在性的判断。在该系统中可以每一个进程获得一个资源,而还剩下一个自由资源,每个进程都申请这个自由资源。当任意一个进程申请该资源成功,都可以将本进程运行完成从而释放两个资源,这样就不会发生死锁。

一台计算机有8台磁带机。它们由N进程争时使用,每个进和可能需要3 台磁带机。请问N 为多少时,系统没有死锁危险,并说明原因。

6.预防死锁

资源静态分配法可以预防死锁的发生,因为使死锁四个条件中的(D)不成立。

A.互斥条件
B.请求和保留条件
C.不可剥夺条件
D.环路等待条件

解析:资源静态分配法的原理是使得死锁的四个必要条件中环路等待条件不成立。

7.避免死锁

7.2.银行家算法

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

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

解析:银行家算法中,如果系统处于不安全状态,则有可能会发生死锁。

银行家算法例题

在这里插入图片描述
解析:
在这里插入图片描述

8.死锁的检测与解除

8.1.死锁的检测

下列选项中,属于检测死锁的方法是(B)

A.剥夺资源法
B.资源分配图简化法
C.银行家算法
D.资源静态分配法

解析:剥夺资源法是解除死锁的方法;银行家算法是避免死锁的方法;资源静态分配法是预防死锁的方法;因此只有资源分配图简化法是检测死锁的方法。

8.2.死锁的解除

下列选项中,属于解除死锁的方法是(A)

A.剥夺资源法
B.资源分配图简化法
C.银行家算法
D.资源静态分配法

解析:参照上一题的解释内容。

  • 11
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
处理机调度是指操作系统对CPU的分配和调度,以便高效地完成各种任务。在多道程序环境下,由于有多个进程需要占用CPU,因此需要进行处理机调度,以便各个进程都能够得到合理的CPU时间片,并且能够尽早地完成任务。 处理机调度算法主要有以下几种: 1. 先来先服务 (FCFS):按照进程到达的先后顺序进行处理机分配,即谁先到谁先得到CPU的使用权。 2. 短作业优先 (SJF):按照进程的执行时间进行处理机分配,即先处理执行时间最短的进程。 3. 优先级调度 (Priority Scheduling):按照进程的优先级进行处理机分配,即优先级高的进程先执行。 4. 时间片轮转 (Round Robin):将CPU时间片分成多个时间段,每个进程在一个时间段内执行一定时间,然后切换到下一个进程,直到所有进程都执行完毕。 死锁是指在多进程环境下,由于资源竞争而导致的一种进程无限等待的现象。死锁的发生通常由于以下四个条件的同时满足: 1. 互斥条件:一个资源同时只能被一个进程使用。 2. 不可抢占条件:进程在使用一个资源时,不能被其他进程抢占。 3. 占有和等待条件:一个进程在持有一个资源的同时,可以等待其他资源。 4. 循环等待条件:多个进程之间形成一种循环等待资源的关系。 避免死锁的方法主要有以下几种: 1. 破坏互斥条件:允许多个进程同时访问一个资源。 2. 破坏不可抢占条件:允许进程在使用一个资源时被抢占。 3. 破坏占有和等待条件:一个进程在申请资源时,必须释放已经占有的资源。 4. 破坏循环等待条件:对所有资源进行编号,每个进程按照编号顺序申请资源,释放资源时按照相反的顺序释放。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值