操作系统第三章 处理机调度与死锁课后习题

文章目录

1、高级调度与低级调度的主要任务是什么?为什么要引入中级调度?

2、何谓作业和 JCB(job control block,作业控制块)?

3、在什么情况下需要使用 JCB?其中包含了哪些内容?

4、在作业调度中应如何确定接纳多少个作业和接纳哪些作业?

5、试说明低级调度的主要功能。

6、(考研真题)简述引起进程调度的原因。

7、在抢占式调度算法中,抢占的原则是什么?

8、在选择调度方式和调度算法时,应遵循哪些准则?

9、何谓静态优先级和动态优先级?确定进程优先级的依据是什么?

10、试比较 FCFS 和 SJF 这两种调度算法。

11.在基于时间片的 RR(round robin,轮转)调度算法中,应如何确定时间片的大小?

12、为什么说多级反馈队列调度算法能较好地满足各方面用户的需求?

13、为什么在实时系统中要求系统(尤其是CPU)具有较强的处理能力?

14、按照调度方式可将实时调度算法分为哪几种?

15、实时系统常用的调度算法有哪些?请分别介绍它们。

16、在批处理系统、分时系统和实时系统中,各采用哪几种进程(作业)调度算法?

17、(考研真题)什么是死锁?产生死锁的原因和必要条件是什么?如何预防死锁?

18、在解决死锁问题的几个方法中,哪个方法最易于实现?哪个方法可使资源利用率最高?

1、高级调度与低级调度的主要任务是什么?为什么要引入中级调度?

①高级调度的对象是作业。它的主要任务是根据某种算法,决定将外存上处于后备队列中的哪几个作业调人内存,为它们创建进程、分配必要的资源,并将它们放入就绪队列。
②低级调度的对象是进程(或内核级线程)。它的主要任务是根据某种算法,决定就绪队列中的哪个进程获得处理机,并由分派程序将处理机分配给被选中的进程。
引人中级调度的主要目的是提高内存利用率和系统吞吐量。为此,应把那些暂时不能运行的进程调至外存等待,把进程状态改为就绪驻外存状态或挂起状态。当它们已具备运行条件目内存又有空间时,由中级调度来决定把外存上的那些已具备运行条件的就绪进程再重新调入内存,并修改它们的状态为就绪状态,挂在就绪队列上等待。

2、何谓作业和 JCB(job control block,作业控制块)?

①作业包含通常所说的程序和数据,还配有作业说明书。系统根据该说明书对程序的运行进行控制。批处理系统中是以作业为基本单位将其从外存调人内存的。
②JCB是作业在系统中存在的标志。为了管理和调度作业,为每个作业设置一个JCB,用于记录管理和调度乍业所需的全部信息。

3、在什么情况下需要使用 JCB?其中包含了哪些内容?

当一个作业进入系统时,便由“作业注册”程序为该作业建立一个JCB,再根据作业类型,将其插入相应的后备队列中等待调度。调度程序依据一定的调度算法来调度它
们,被调度到的作业将被装入内存。在作业运行期间,系统会按照JCB中的信息和作业说明书来对作业进行控制。当一个作业执行结束并进入完成状态时,系统负责回收已分配给它的资源并撤销其ICB。
JCB包含的内容通常有作业标志、用户名称、用户账户、作业类型(CPU繁忙型、I/O繁忙型、批量型、终端型)、作业状态、调度信息(优先级、作业已运行)、资源要求、人系统时间、开始处理时间、作业完成时间、作业退出时间、资源使用情况等。

4、在作业调度中应如何确定接纳多少个作业和接纳哪些作业?

作业调度每次接纳进人内存的作业数取决于多道程序度,即取决于系统允许多少个作业同时在内存中运行。应选择哪些作业从外存调人内存,取决于所采用的作业调度算法,最简单的是FCFS(first come first served,先来先服务)调度算法,较常用的是SJF(shortjob first,短作业优先)调度算法和基于优先级的调度算法

5、试说明低级调度的主要功能。

低级调度是在就绪队列中选择某个进程,由分派程序把CPU分配给该进程,低级调度的主要功能有:
①保存当前进程的CPU现场信息;
②按某种算法选择投入执行的新进程;
③恢复新进程的CPU现场,从而将CPU分配给新进程

6、(考研真题)简述引起进程调度的原因。

引起进程调度的常见原因有:
①正在执行的进程正常终止或异常终止;
②正在执行的进程因某种原因而阻塞,如提出IO请求后被阻塞、在调用wait操作时因资源不足而阻塞、因其他原因执行bock原语而阻塞等;
③在引人时间片的系统中,时间片用完;
④在抢占式调度方式中,就绪队列中某进程的优先级比当前正在执行进程的高,或者有优先级更高的进程进入就绪队列。

7、在抢占式调度算法中,抢占的原则是什么?

抢占的原则有:
①优先级原则,指允许优先级高的新到进程抢占当前进程的处理机:
②短进程优先原则,指允许新到的短进程抢占当前长进程的处理机:
③时间片原则即各进程按时间片轮转运行时,当正在执行的进程的一个时间片用完后,便停止该进程的执行而重新进行调度。

8、在选择调度方式和调度算法时,应遵循哪些准则?

一般而言,在设计一个OS时,应如何选择调度方式和调度算法,很大程度上取决于OS的类型及其设计目标。在批处理系统、分时系统和实时系统中,通常会采用不同的调度方式和调度算法。遵循的准则包括:
①处理机调度算法的共同目标,即资源利用率高、保证公平性与平衡性以及策略强制执行;
②批处理系统的目标,即平均周转时间短、系统吞吐量大、处理机利用率高;
③分时系统的目标,即响应时间快、保证均衡性;
④实时系统的目标,即保证截至时间和可预测性

9、何谓静态优先级和动态优先级?确定进程优先级的依据是什么?

①静态优先级是指在创建进程时确定的、在进程的整个运行期间保持不变的优先级。②动态优先级是指在创建进程之初,先赋予进程一个优先级,然后其值会随进程的推进或等待时间的增加而改变,如此而为的目的是获得更好的调度性能。此外,确定进程优先级的依据有进程类型、进程对资源的需求和用户要求等

10、试比较 FCFS 和 SJF 这两种调度算法。

本题分步解答如下。
(1)相同点:这两种调度算法都可以用于作业调度和进程调度。
(2)不同点:FCFS调度算法每次都从后备队列中选择一个或多个最先进人该队列的作业,将它们调入内存、分配资源、创建进程、插人就绪队列。该算法有利于长作业/长进程,不利于短作业/短进程。SJF调度算法每次调度都从后备队列中选择一个或若干个估计运行时间最
短的作业,将其调入内存运行。该算法有利于短作业/短进程,不利于长作业/长进程。

11.在基于时间片的 RR(round robin,轮转)调度算法中,应如何确定时间片的大小?

在RR调度算法中,时间片的大小对系统性能有很大的影响。通常,时间片应略大于一次典型的交互所需的时间,使大多数交互式进程能在一个时间片内完成,从而获得小的响应时间。在确定时间片的大小时,一般应考虑3个因素:系统对相应时间的要求、就绪队列中进程的数目和系统的处理能力。

12、为什么说多级反馈队列调度算法能较好地满足各方面用户的需求?

本题分步解答如下。
(1)对于终端型作业用户,其所提交的作业大都属于较小的交互型作业,系统只要使这些作业在第1队列规定的时间片内完成,终端型作业用户就会感到满足。
(2)对于短批处理作业用户,如果其作业在第1队列中执行一个时间片即可完成,便可获得与终端作业一样的响应时间。对于稍长批处理作业用户,其作业通常只须在第2队列和第3队列各执行1个时间片即可完成,周转时间仍然较短。
(3)对于长批处理作业用户,其将依次在第1,2,…,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。因此,多级反馈队列调度算法能满足多用户需求。

13、为什么在实时系统中要求系统(尤其是CPU)具有较强的处理能力?

在实时系统中都存在着若干个实时进程或任务,它们用来反映或控制某个(些)外部事件,往往带有某种程度的紧迫性,因而对实时系统中的调度提出了某些特殊要求。若CPU的处理能力不够强,则有可能会因CPU忙不过来而使某些实时任务得不到及时处理,从而导致发生难以预料的后果。

14、按照调度方式可将实时调度算法分为哪几种?

按照调度方式可将实时调度算法分为非抢占式调度算法和抢占式调度算法两种。①非抢占式调度算法,包括非抢占式RR调度算法和非抢占式优先级调度算法;②抢占式调度算法,根据抢占时机的不同分为基于时钟中断的抢占式优先级调度算法和立即抢占的优先级调度算法。

15、实时系统常用的调度算法有哪些?请分别介绍它们。

实时系统的调度算法主要是基于任务开始/截止时间的EDF(earliest deadlinfirst,最早截止时间优先)调度算法,以及基于任务紧急/松弛程度的LLF(1east laxity first,最低松弛度优先)调度算法。
(1)EDF调度算法。该算法是根据任务的开始/截止时间确定任务的优先级的,截止时间越早则优先级越高。算法要求在系统中保持一个实时任务就绪队列,该队列按各任务截止时间的先后顺序进行排序。
(2)LLF调度算法。该算法是根据任务的紧急/松弛程度确定任务的优先级的。任务的紧急程度越高,赋予该任务的优先级就越高,以使其优先执行。例如,一个任务在200ms时必须完成,而它本身所需的运行时间就是100ms,因此,调度程序必须在100ms或之前调度执行,该任
务的紧急程度(松弛程度)为100ms。

16、在批处理系统、分时系统和实时系统中,各采用哪几种进程(作业)调度算法?

①在批处理系统中可采用的调度算法有SIF、优先级、高响应比优先、多级反馈队列等调度算法。②在分时系统中常用的调度算法是RR调度算法。
③在实时系统中可采用的
调度算法有EDF调度算法和LLF调度算法。

17、(考研真题)什么是死锁?产生死锁的原因和必要条件是什么?如何预防死锁?

死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法向前推进。产生死锁的原因有:
①竞争不可抢占性资源;
②竞争可消耗资源;
③进程间推进顺序不当。产生死锁必须同时具备4个必要条件:互斥条件、请求和保持条件、不可抢占条件、循环等待条件。
预防死锁是通过破坏产生死锁的4个必要条件中的一个或几个来实现的。其中互斥条件是设备固有属性,不能改变,因此主要破坏产生死锁的其他3个必要条件。
①破坏“请求和保持”条件。当一个进程在请求资源时,它不能持有不可抢占性资源。
②破坏“不可抢占”条件。当一个已经保持了某些不可抢占性资源的进程提出新的资源请求而不能得到满足时,它必须释放已经保持的所有资源,待以后需要时再重新申请。
③破坏“循环等待”条件。对系统所有资源类型进行线性排序,并赋予它们不同的序号,规定每个进程必须按序号递增的方式请求资源。

18、在解决死锁问题的几个方法中,哪个方法最易于实现?哪个方法可使资源利用率最高?

解决死锁的方法有预防死锁、避免死锁、检测和解除死锁,其中预防死锁这一方法最容易实现,但由于所施加的限制条件过于严格,资源利用率和系统吞吐量会降低;而检测和解除死锁这一方法可使系统获得较好的资源利用率和系统吞吐量。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值