操作系统复习(3)处理机调度与死锁

一、概述

1.1了解调度的层次

  • 调度是指,在一个队列中,按照某种方法(算法),选择一个合适的个体的过程。
  • 进程调度的功能就是按一定策略、动态地把CPU分配给处于就绪队列中的某一进程,并使之执行。
  1. 作业调度(高级调度):内存与外存之间的调度
  2. 内存调度(中级调度):挂起态和就绪态间的相互转换
  3. 进程调度(低级调度):就绪态转到运行态

 

高级调度 

高级调度(长程调度或作业调度)仅在批处理,外存上处于后备队列的作业调入内存

(1)接纳多少作业到内存:从磁盘的后备队列到内存

(2)接纳哪些作业到内存:通过调度算法选择

抢占的原则有: 

(1)优先权原则。

(2) 短作业(进程)优先原则。

(3) 时间片原则。   

低级调度

低级调度(进程调度或短程调度):就绪队列中选哪个进程应获得处理机

作业控制块JCB

(1)进程调度的任务:保存cpu的现场;选取要执行的进程执行;把处理机分配给进程

(2)进程调度实现:排队器:队列等数据结构;分派器:调度程序;上下文切换器

(3)进程的调度方式::

        1)非抢占方式:仅在进程运行完或者阻塞才进行调度

        2)抢占方式:进程在运行过程中可以被抢占CPU,抢占的原则:优先级和时间片

引起进程调度的原因:

①正在运行的进程运行完毕;

②运行中的进程要求I/O操作;

③执行某种原语操作(如P操作)导致进程阻塞;

④一个比正在运行进程优先级更高的进程申请运行(抢占调度方式);

⑤分配给运行进程的时间片已经用完等等。 

中级调度

中级调度(内存调度):暂时不能执行的进程调入外存等待(仅了解) 

1.2衡量指标 

(1)资源利用率:资源处于忙状态时间所占的百分比

(2)吞吐量:单位时间内完成的进程数量

(3)周转时间:进程从初始化到结束(包括等待)的总时间

(4)等待时间:进程在就绪队列中的总时间。或者用带权周转时间:带权周转时间=周转时间/服务时间

(5)响应时间:从提交请求到产生响应所花费的总时间

 1.3调度算法

FCFS

特点:实现简单、公平

缺点:没考虑任务特性,周转时间(平均等待时间)可以提高

会计算平均周转时间:计算时,要先找到调度顺序,然后是每个进程的完成时间

FCFS与SJF 举例

SJF 

SJF(SPF)、   SRJF

是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。

优点:有最小的平均周转时间

缺点:不公平,可能出现进程饥饿,未考虑作业的紧迫程度,对长作业不利

RR

基于时间片的轮转调度算法是一种常见的CPU调度算法,它将CPU时间划分成一定大小的时间片,每个进程在该时间片内运行,然后轮转到下一个进程。如果一个进程不能在该时间片内完成任务,则将其放回就绪队列,等待下一个时间片重新运行

RR:按时间片来轮转调度

易于满足交互式任务

 

高优先级优先 

非抢占式优先权算法

 在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成; 或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。这种调度算法主要用于批处理系统中;

抢占式优先权调度算法

 在这种方式下,系统同样是把处理机分配给优先权最高的进程,使之执行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程。 

如何确定优先级:

静态优先级:进程类型、对资源的需求、根据用户的特点

静态优先级问题是不公平

动态优先级:优先级动态调整,随着等待时间增长而不断增高

问题:算法开销

优先权算法例题

 多级队列调度

 

实现简单

多级反馈队列

结合上面算法优点,简单实用的算法

实时调度

FCFS、SJF(SPF)、   SRJF、RR会计算平均周转时间

 1.4死锁

死锁的概念:

多个进程因竞争资源而造成的一种相互等待的局面,若无外力作用,进程将无法向前推进

注意:僵局,是局部现象,可以传播

死锁产生的原因

(1)竞争资源:资源是不可被抢占的临界资源

(2)进程推进次序不当

死锁产生的必要条件

  • 互斥
  • 请求和保持
  • 不可抢占
  • 循环等待(出现了环)

处理方法

预防、避免、检测与接触、忽略

死锁的预防-破坏必要条件

1、互斥:不能破坏,资源的固有属性

2、请求和保持:比如:所需要的资源一次性全分配

3、不可抢占:允许抢占,会出现资源反复申请释放、推迟进程的执行

4、循环等待:对资源排序,只能按序申请资源。

死锁的避免 (银行家算法)

引入安全状态的概念。

安全状态:如果系统中的所有进程存在一个可使全部完成的执行序列P1,…Pn,则称系统处于安全状态。不存在这样的全部执行序列时就是不安全状态

安全状态一定没有死锁,不安全状态可能会产生死锁

 银行家算法

   设Requesti是进程Pi的请求向量,如果Requesti[j]=K,表示进程Pi需要K个Rj类型的资源。当Pi发出资源请求后,系统按下述步骤进行检查:      

 (1) 如果Requesti[j]≤Need[i,j],便转向步骤2;否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。      

(2) 如果Requesti[j]≤Available[j],便转向步骤(3);否则, 表示尚无足够资源,Pi须等待。

 (3) 系统试探着把资源分配给进程Pi,并修改下面数据结构中的数值:   Available[j]∶=Available[j]-Requesti[j];   Allocation[i,j]∶=Allocation[i,j]+Requesti[j];   Need[i,j]∶=Need[i,j]-Requesti[j];      

 (4) 系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程Pi,以完成本次分配;否则, 将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待。

  (2) P1请求资源:P1发出请求向量Request1(1,0,2),系统按银行家算法进行检查:         ① Request1(1, 0, 2)≤Need1(1, 2, 2)        

② Request1(1, 0, 2)≤Available1(3, 3, 2)        

③ 系统先假定可为P1分配资源,并修改Available, Allocation1和Need1向量,由此形成的资源变化情况如图 3-15 中的圆括号所示。        

④ 再利用安全性算法检查此时系统是否安全。

死锁的检测与解除

资源分配图

理解资源分配图的顶点、边的含义,比如:进程节点、资源节点、分配边、请求边,孤立节点、阻塞节点(有请求边,但可用资源不够用的进程节点

2、资源分配图的简化:在资源分配图中找既不是阻塞也不是孤立的进程节点,可得到资源完成;完成后释放资源,即删除它的分配边和请求边,使成为孤立节点;重复为之,若能消去所有的边,所有节点都为孤立节点,则资源分配图为可完全简化的,反之为不可完全简化的。

3、死锁定理:死锁状态的充分条件,当且仅当该状态的资源分配图是不可完全简化的。

4、死锁的检测的解除(了解)

检测过程就是简化资源分配图,实现算法和银行家算法类似的,开销较大,有时候完全忽略死锁,不处理死锁。

二、习题

1.时间片轮转调度算法是为了()。
A.多个终端能够得到系统及时响应
B.使系统变得高效
C.优先级较高的进程得到及时响应
D.需要CPU时间最少的进程最先做.

答案:A。 时间片轮转调度算法是一种基于时间片的调度算法,其主要目的是保证多个终端用户能够得到系统及时响应,从而提高系统的交互性。当一个进程占用CPU的时间达到了限定的时间片长度后,便会被系统强制中断,然后放入后备队列,让其他进程继续执行。这种算法能够确保每个进程都能够及时获得CPU的执行时间,从而提高系统的效率和响应速度。

 2.下面有关选择进程调度算法的准则中不正确的是()。·
A.尽快响应交互式用户的请求
B.尽量提高处理器利用率
C.尽可能提高系统吞吐量
D.适当增长进程就绪队列的等待时间

D.适当增长进程就绪队列的等待时间是不正确的,因为进程等待时间越长,用户体验越差。正确的准则是尽可能减少进程等待时间并提高系统吞吐量

 3.设有4个作业同时到达,每个作业的执行时间均为2h,它们在一台处理器上按单道运行,则平均周转时间为()。。
A.1h
B.5h
C.2.5h
D.8h.

B5h。

假设这4个作业按照顺序分别为A、B、C、D。如果按照单道运行,那么每个作业都需要等待前一道作业执行完毕后才能开始执行。因此,作业A的等待时间为0,作业B的等待时间为2h,作业C的等待时间为4h,作业D的等待时间为6h。

则这4个作业的平均周转时间为为:

(2+4+6+8)/4=5h

4.若每个作业只能建立一个进程,为了照顾短作业用户,应采用(B):为了照顾紧急作业用户,应采用(E):为了能实现人机交互,应采用(C):而能使短作业.长作和交互作业用户都满意,应采用(D)。。
A.FCFS调度算法
B.短作业优先调度算法
C.时间片轮转调度算法
D.多级反馈队列调度算法
E.剥夺式优先级调度算法

答案:

A. FCFS调度算法只考虑作业的到达顺序,不能够照顾短作业用户。

B. 短作业优先调度算法可以照顾短作业用户,因为它优先调度执行时间短的作业。

C. 时间片轮转调度算法可以实现人机交互,因为它将CPU划分为时间片,每个进程轮流执行。

D. 多级反馈队列调度算法可以同时照顾短作业、长作业和交互作业用户,因为它将作业划分为多个队列,并根据作业的特点进行调度。

E. 剥夺式优先级调度算法只考虑优先级高的进程,不能照顾紧急作业用户。

因此,正确答案为B短作业优先调度算法照顾短作业用户,E剥夺式优先级调度算法照顾紧急作业用户,C时间片轮转调度算法实现人机交互,D多级反馈队列调度算法照顾短作业、长作业和交互作业用户。

5.设有三个作业,其运行时间分别是2h,5h,3h,假定它们同时到达,并在同一台处理器上以单道方式运行,则平均周转时间最小的执行顺序是()。·
A.J1,J2,J3
B.J3,J2,J1
C.J2,J1,J3
D.J1,J3,J2.

根据最短作业优先(SJF)调度算法,应该先运行运行时间短的作业。因此,执行顺序应该是J1,J3,J2,即选项D。

6.下列调度算法中,()调度算法是绝对可抢占的。
A.先来先服务
B.时间片轮转
C.优先级
D.短进程优先

答案:B. 时间片轮转。

解析:

先来先服务算法是非可抢占的,一旦进程开始运行就一直运行到结束,不会被其他进程抢占CPU资源。

优先级调度算法可以是可抢占的或非可抢占的,取决于是否存在更高优先级的进程需要运行。

短进程优先算法也是非可抢占的,一旦进程开始运行就一直运行到结束,不会被其他进程抢占CPU资源。

时间片轮转算法是绝对可抢占的,每个进程分配一个时间片运行,当时间片用完时,进程会被抢占,被放回就绪队列等待执行。

7.【2011年计算机联考真题】下列选项中,满足短作业优先且不会发生饥饿现
象的是()调度算法。
A.先来先服务
B.高响应比优先
C.时间片轮转
D.非抢占式短作业优先
 8.死锁的避免是根据()采取措施实现的。。
A.配置足够的系统资源
B.使进程的推进顺序合理。
C.破坏死锁的四个必要条件之一
D.防止系统进入不安全状态

AB与题意不符,C是预防

 8.某系统中有三个并发进程都需要四个同类资源,则该系统必然不会发生死锁
的最少资源是()。
A.9
B.10
C.11
D.12.

3个进程要想不死锁 每个进程都需要4个同类资源 所以。。 
只要每个进程都有3个资源 另外一个在给一个额外的资源。 那么3个进程中有一个可以运行。。运行完以后 释放资源然后其余的 进程在申请资源就可以了啊 。

9.采用资源剥夺法可以解除死锁,还可以采用()方法解除死锁。·
A.执行并行操作
B.撤销进程
C.拒绝分配新资源
D.修改信号量

资源剥夺法允许一个进程强行剥夺其他进程所占有的系统资源。而撤销进程是强行释放一个进程己占有的系统资源,与资源剥夺法同理,都是通过破坏死锁的“请求和保持”条件来解除死锁。拒绝分配新资源只能维持死锁的现状,无法解除死锁。

10.以下有关资源分配图的描述中正确的是()。~
A.有向边包括进程指向资源类的分配边和资源类指向进程申请边两类
B.矩形框表示进程,其中圆点表示申请同一类资源的各个进程
C.圆圈节点表示资源类
D.资源分配图是一个有向图,用于表示某时刻系统资源与进程之间的状态

在资源分配图中,用圆圈代表一个进程,用矩形框代表一类资源。由于一种类型的资源可能有多个,用矩形框中的一个点代表一类资源中的一个资源。从进程到资源的有向边叫请求边,表示该进程申请一个单位的该资源;从资源到进程的边叫分配边,表示该资源已经有一个被分配给了该进程。由上所述知D选项为正确答案。

11.死锁检测时检查的是()。·
A.资源有向图
B.前驱图
C.搜索树
D.安全图.

死锁检测一般采用两种方法:资源有向图法和资源矩阵法。前驱图只是说明进程之间的同步关系,搜索树用于数据结构的分析,安全图并不存在。

12.系统的资源分配图在下列情况中,无法判断是否处于死锁的情况有()。。
I.出现了环路
II.没有环路
III.每种资源只有一个,并出现环路
IV.每个进程节点至少有一条请求边
A.I、II、III、IV
B.I、III、IV
C.I、IV
D.以上答案都不正确

解析:

I:出现了环路,只是满足了循环等待的必要条件,但是并不能保证一定出现死锁。

II:没有环路,说明破坏了循环等待条件,所以一定不会发生死锁。

III:每种资源只有一个,又出现了环路,这是死锁的充分必要条件,所以,一定会有死锁的出现。

IV:每个进程至少有一条请求边的时候,如果资源充足,则不会发生死锁,但若资源不充足,就有发生死锁的可能。故只有I,IV可以确定是否产生死锁

13一个进程在获得资源后,只能在使用完资源后由自己释放,这属于死锁必要条件的()。
A.互斥条件
B.请求和痒放条件
C.不剥夺条件
D.防止系统进入不安全状态

14.某一个系统中,测得其处理机的利用率为1%,I/0的利用率为1%,就绪队列中
有进程两个,阻塞队列31个,我们判断,此时系统出现异常,有极大可能系统
中有进程()
A空闲
B饥饿
C死锁
D抖动.

C死锁。因为就绪队列中只有两个进程,阻塞队列中却有31个进程,这表明阻塞队列中的进程无法继续执行,可能是因为它们在等待某些资源被释放。这种情况很可能是死锁,即多个进程相互等待彼此所持有的资源,导致它们都无法继续执行。同时,系统中的处理机和I/O设备的利用率都很低,也说明进程无法正常执行,从而加剧了死锁的可能性。

15.银行家算法是一种死锁()的算法。·
A忽略
B检测与恢复

C避免
D预防.

16.资源的有序分配是一种死锁(1)的算法,他起到(2)作用。·
(1)A忽略B检测与恢复C避免D预防
(2)A提高系统利用率B自动处理故障C资源的合理利用.D打破循环等待条件

17.

记住这样一个知识点,你就知道怎么做了。

  1. 计算要占CPU
  2. I/O不占CPU
  3. 先出发的先执行
  4. 计算使用CPU可以与I/O一起进行,但是i/o操作不能并行

18.下列关于银行家算法的叙述中,正确的是
A.银行家算法可以预防死锁
B.当系统处于安全状态时,系统中一定无死锁进程
C.当系统处于不安全状态时,系统中一定会出现死锁进程
D.银行家算法破坏了死锁必要条件中的“请求和保持”条件

死锁的必要条件有:

1、互斥条件(任一时刻一个资源仅为一个进程独占)

2、占有且等待条件

3、不剥夺条件(任一进程不呢从其他资源处抢夺资源)

4、循环等待条件(存在一个循环等待链)

死锁的发生必定有上述四个条件的同时成立,同理,只要破坏四个条件中的任何一个就可预防死锁的发生

A-->“死锁的预防”是破坏四个必要条件的任何一个;“死锁的避免”是掌握系统中并发进程的状态和与这些进程有关的资源动态申请情况,做出合理选择,避免死锁的发生,“银行家算法”属于“死锁的避免”

C-->“不安全状态”并不一定导致死锁的发生

D-->“银行家算法”属于死锁的避免,没有破坏死锁发生的四个必要条件中的任何一个

 19.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/118436.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【qemu逃逸】HWS2017-FastCP

前言 虚拟机用户名:root 虚拟机密码:无密码 本题有符号,所以对于设备定位啥的就不多说了,直接逆向设备吧。 设备逆向 在 realize 函数中设置一个时钟任务,并且可以看到只注册了 mmio,大小为 0x100000。…

小白必看!企业开源知识库管理系统优势和选择

在当今信息爆炸的时代,企业面临着海量的知识和信息需要管理和利用。为了提高团队的协作效率、促进知识共享和创新,越来越多的企业开始关注和采用开源企业知识库管理系统。这种系统为企业提供了一个集中化的平台,用于存储、组织和分享知识资产…

fio数据整理之二

fio数据简单抓取 上文我们完成了一些fio output数据的简单抓取,本文将针对抓取的数据做进一步的处理,输出到表格之中,方便我们查看,统计结果。 本文先使用最简单的方法创建csv档案 我们现有个基本认知,在csv档案中&am…

CBAM:Convolutional Block Attention Module

CBAM(Convolutional Block Attention Module)是一种深度学习领域的注意力机制,旨在增强卷积神经网络对图像特征的建模和表示能力。CBAM引入了通道和空间两种不同的注意力机制,使模型能够动态调整特征图的权重,以适应不…

MVC、MVP、MVVM区别

MVC、MVP、MVVM区别 MVC(Model-View-Controller) 。是一种设计模式,通常用于组织与应用程序的数据流。它通常包括三个组件:模型(Model)、视图(View)和控制器(Controller&…

sql中的加减乘除

自学SQL网(教程 视频 练习全套)

[vmware]vmware虚拟机压缩空间清理空间

vmware中的ubuntu使用如果拷贝文件进去在删除,vmare镜像文件并不会减少日积月累会不断是的真实物理磁盘空间大幅度减少,比如我以前windows操作系统本来只有30GB最后居然占道硬盘200GB,清理方法有2种。 第一种:vmware界面操作 第二…

阿里云服务器省钱购买和使用方法(图文详解)

阿里云服务器使用教程包括云服务器购买、云服务器配置选择、云服务器开通端口号、搭建网站所需Web环境、安装网站程序、域名解析到云服务器公网IP地址,最后网站上线全流程,新手站长xinshouzhanzhang.com分享阿里云服务器详细使用教程: 一&am…

数学建模比赛中常用的建模提示词(数模prompt)

以下为数学建模比赛中常用的建模提示词,希望对你有所帮助! 帮我总结一下数学建模有哪些预测类算法? 灰色预测模型级比检验是什么意思? 描述一下BP神经网络算法的建模步骤 对于分类变量与分类变量相关性分析用什么算法 前10年的数据分别是1&a…

从传统货架到智能货架电子标签PTL仓储亮灯系统的革新

在现代物流仓储行业中,仓库的管理和物料的寻找一直是一个难题。仓库内物料数量种类繁多,寻找物料耗时长、困难大,盘点更是耗费人力多、成本高、速度慢。此外,货物存储位置不清晰,经常性找不到物料。多发、少发、错料现…

centos7安装oxidized备份软件

首先需要提前下载ruby,因为默认yum安装的版本太低 https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0.tar.gz 1、yum remove ruby ruby-devel(有就卸载,没有则忽略) 2、将下载好的ruby包解压到/opt下 [rootoxidized ruby-…

【广州华锐互动】VR历史古城复原:沉浸式体验古代建筑,感受千年风华!

在科技日新月异的今天,虚拟现实(VR)技术已经成为了我们生活中不可或缺的一部分。从娱乐游戏到医疗健康,从教育培训到房地产销售,VR技术的应用领域日益广泛。而近年来,VR技术在文化遗产保护和古迹复原方面的…

阿里云安全恶意程序检测(速通一)

阿里云安全恶意程序检测 赛题理解赛题介绍赛题说明数据说明评测指标 赛题分析数据特征解题思路 数据探索数据特征类型数据分布箱型图 变量取值分布缺失值异常值分析训练集的tid特征标签分布测试集数据探索同上 数据集联合分析file_id分析API分析 特征工程与基线模型构造特征与特…

【stack题解】最小栈 | 栈的压入、弹出序列

目录 最小栈 思路 ​编辑 实现 栈的压入、弹出序列 思路 实现 需要注意的 最小栈 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。…

​软考-高级-信息系统项目管理师教程 第四版【第15章-项目风险管理-思维导图】​

软考-高级-信息系统项目管理师教程 第四版【第15章-项目风险管理-思维导图】 课本里章节里所有蓝色字体的思维导图

K8s学习笔记——资源组件篇

引言 前一篇文章我们介绍了K8s的概念理解和常用命令,这篇我们重点介绍K8s的资源组件和相关配置使用。 1. Node & Pod Node: 是 Pod 真正运行的主机,可以是物理机,也可以是虚拟机。为了管理 Pod,每个 Node 节点上至少要运行…

军用机场信息化数字孪生监测平台助力企业运营

随着直升机的不断发展,其在军用和民用领域得到越来越广泛的应用,在民用领域直升机广泛用于客货运输、紧急救援、农林作业、地质勘探、油气开发、公安巡逻等。直升机相关经营数据也逐渐被重视起来,数字孪生公司深圳华锐视点通过web3d开发构建虚…

XR Interaction ToolKit

一、简介 XR Interaction Toolkit是unity官方的XR交互工具包。 官方XRI示例地址:https://github.com/Unity-Technologies/XR-Interaction-Toolkit-Examples 2023.3.14官方博客,XRIT v2.3 https://blog.unity.com/engine-platform/whats-new-in-xr-int…

8-3、T型加减速单片机程序【51单片机控制步进电机-TB6600系列】

摘要:根据前两节内容,已完成所有计算工作,本节内容介绍具体单片机程序流程及代码 一、程序流程图 根据前两节文章内容可知,T型加减速的关键内容是运动类型的判断以及定时器初值的计算,在输出运动参数后即可判断出运动…