-处理机调度与死锁
Posted 吹灭读书灯 一身都是月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了-处理机调度与死锁相关的知识,希望对你有一定的参考价值。
第三章 处理机调度与死锁
3.1 处理机调度的层次和调度算法的目标
作业概念:
- 作业是用户向计算机提交任务的任务实体。 进程是完成用户任务的执行实体,是资源分配的基本单位。 没有作业任务,进程无事可干; 没有进程,作业任务没法完成。
- 作业建立完毕后,是放在外存等待运行。 进程一经创建,总由相应的部分存于内存。
3.1.1 处理机调度的层次
-
高级调度 = 作业调度 / 长调度【用于多批道】
作用:外存后备队列 —> 内存 ----> (创建进程,分配资源)就绪队列
-
低级调度 = 进程调度 / 短程调度 【所有系统都需要】
作用:就绪队列 --> 进程获得处理机
-
中级调度 = 存储器管理的对换 = 内存调度(用于提高内存利用率和系统吞吐率)
作用:挂起(外存->内存)、调用、唤醒(等待->就绪)
3.1.2 处理机调度的目标
1、批处理系统的目标
-
周转时间短
-
系统吞吐量高(单位时间完成作业数)
-
处理机利用率高
2、分时系统目标
-
响应时间快
-
均衡性
3、实时系统的目标
- 截止时间的保证
- 可预测性
共同的目标:
3.2 作业与作业调度
1、基本概念
作业:包括程序、数据、作业说明书
多用于:批处理系统
控制块:JCB
阶段:收容、运行、完成
2、作业调度的主要任务
执行作业调度时考虑:(1)接纳多少作业
(2)接纳哪些作业
3、先来先服务FCFS 和 短作业优先SJF算法
- 先来先服务(First-come first-served):对长作业友好,不利于短作业
- 短作业优先(short job first):不利于长作业;不考虑时间紧迫;必须先预知作业的运行时间
4、优先级调度PSA 和 高响应比优先HRRN调度算法
-
优先级调度:根据作业的紧迫程度赋予响应优先权
-
高响应比优先:引入动态优先级
R=(w+s)/s w: 等待时间(waiting time) s: 执行时间(service time)
3.3 进程调度
3.3.1 进程调度的任务和方式
1、进程调度的任务
- 保存处理机的现场信息,如程序计数器,通用寄存器的内容。
- 按某种算法选取进程(调度算法)
- 把处理机分配给进程
2、进程调度的方式
(1)非抢占方式:适用大多批处理系统
一旦把进程分配给某进程后,就让他一直运行下去,不会因为时钟中断或其他原因去抢占当前正在运行进程的处理机,直至完成或者阻塞,才把处理机分配给其他进程。
处理机:计算机系统中存储程序和数据,并按照程序规定的步骤执行指令的部件。程序是描述处理机完成某项任务的指令序列。指令则是处理机能直接解释、执行的信息单位。处理机包括中央处理器(cpu),主存储器,输入-输出接口。
CPU:中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
(2)抢占式方式:
- 优先权原则
- 短作业优先原则
- 时间片原则(时间片用完则重新调度)
3.3.2 轮转调度RR算法
1、轮转法原理:先按FCFS
排序,给每个进程固定相等时间长度,轮转执行
2、进程切换时机:(1)当前进程已完成 (2)时间片已用完
3、时间片大小确定:(1)太小:进程频繁切换,系统开销大
(2)太大:直接退化FCFS
算法
(3)适合:大多数交互过程能在一个时间片完成
3.3.3 优先级调度算法
1、算法类型:非抢占 / 抢占
2、优先级类型:
-
静态优先级:在创建进程时确定
依据:①进程类型:系统类型
>
一般用户进程 ②对资源的需求:要求少的高
③用户需求
-
动态优先级
优先级随 进程推进/等待时间的增加而改变
3.3.4 多级反馈队列调度算法MLFQ
1、调度机制
- 设置多个就绪队列,优先级递减,时间片长度递增(第一个队列优先级最高,时间片最小)
- 每个队列采用
FCFS
算法(如果没有在第一个时间片完成,就到第二个队列末尾…) - 按队列优先级调度:仅当第
1~(i-1)
所有队列为空,才会调度第i
队列中的进程运行
2、调度算法性能
总结:
3.4 实时调度
3.4.1 基本条件
- 必要信息:①就绪时间 ②开始截止时间 & 完成截止时间 ③处理时间 ④资源要求 ⑤优先级
- 系统处理能力强
- 采用抢占式调度
- 有快速切换机制
3.4.2 算法分类
- 非抢占式:①非抢占式轮转算法 ②非抢占式优先调度
- 抢占式
- 基于时钟中断的抢占优先权
- 立即抢占的优先权调度
3.4.3 最早截止时间截止算法EDF
3.4.4 最低松弛度优先算法LLF
根据任务的紧急程度:松弛度 = 必须完成时间点 - 需要运行时间 - 当前时间
3.4.5 优先级倒置算法
3.5 死锁概述
死缺:多个进程因竞争资源而造成的一种僵局,若无外力作用这些进程将永远不能向前推进。
原因:
- 竞争资源
- 竞争非抢占性资源
- 可消耗资源(临时性资源)指由一个进程产生,被另一进程使用一短暂时间便无用的资源
- 进程推进顺序不当
3.5.3 死锁的定义、必要条件和处理方法
-
定义:如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程就是死锁。
-
必要条件:①互斥 ②请求和保持 ③不可抢占 ④循环等待(一定存在进程—资源的环形链)
-
处理方法:不让死锁发生:预防、避免;让死锁发生:检测与解除
3.6 预防死锁
1、互斥:不可破坏
2、破坏“请求和保持”
- 开始运行前一次性申请全部资源
- 先获得运行初期资源,释放后再请求新资源
3、破坏“不可抢占”条件:申请不能得到满足时,释放已经保持的所有资源
缺点:代价大,复杂,可能导致进程的执行被无限推迟
4、破坏“循环”等待条件
把资源编号,进程必须按资源号的递增次序申请
3.7 避免死锁
3.7.1 系统安全状态
1、安全状态:能按照某种进程顺序为每个进程分配所需资源直至每个进程都能顺利完成
完全状态一定没有死锁发生;
不安全状态可能导致死锁发生;
2、举例
3.7.2 利用银行家算法避免死锁
银行家算法例题
3.8 死锁的检测与解除
1、检测
死锁的充分条件是:当且仅当资源分配图是不可完全简化的。
2、解除:(1)剥夺资源 (2)撤销进程
以上是关于-处理机调度与死锁的主要内容,如果未能解决你的问题,请参考以下文章