02323操作系统概论 第三章进程调度与死锁

第一节 进程调度的功能与时机

1. 功能

2. 时机

当一个进程运行结束, 进程阻塞, 中断返回, 更高优先级的进程到来, 时间片用完, 都会进行调度

第二节 进程调度算法

1. 选择调度方式和算法的若干准则

  1. 周转时间短
  • 周转时间是指从作业被提交给系统开始, 到作业完成为止的这段时间间隔.
  • 包括4部分: 作业在外存后备队列上等待调度的时间, 进程在就绪队列上等待进程调度的时间, 进程在CPU上执行的时间, 进程等待IO操作完成的时间.
  • 使用平均周转时间和带权平均周转时间来衡量系统的时间性能.
  • 平均周转时间:N个作业的周转时间之和除以N.
  • 带权平均周转时间: N个作业的周转时间与CPU执行时间的比值之和除以N
  1. 响应时间快
  2. 截止时间的保证
  3. 系统吞吐量高:
  • 吞吐量是单位时间内完成的作业数.
  1. 处理机利用率好

2. 调度算法

  1. 先来先服务调度算法(FirstCome,FirstService , FCFS)
  • 调度算法描述:
  • 性能分析
    • 适合长进程, 不利于短进程, 有利于CPU密集型进程, 不利于IO密集型进程
  1. 短进程优先调度算法
  2. 优先权调度算法
  • 非抢占式优先权调度算法
  • 抢占式优先权调度算法
  • 优先权的类型
    • 静态优先权
    • 动态优先权
  • 优先权调度算法的一个主要问题是: 无穷阻塞或称饥饿问题, 解决方案: 老化技术 :逐渐增加在系统中等待时间很长的进程的优先权.
  1. 时间片轮转调度算法
    现代分时系统中广泛使用的进程调度算法
  • 时间片大小的选择时的影响因素:
  • 系统对响应时间的要求
  • 就绪队列中的进程的数目, 当设定了系统的最长响应时间值后, 时间片的大小就与系统允许的最大进程数成反比.
  • 系统的处理能力
  1. 多级队列调度
  2. 多级反馈队列调度

第三节 实时系统中的调度

一. 实现实时调度的基本条件

  1. 提供必要的调度信息
    1). 就绪时间,
    2). 开始截止时间和完成截止时间
    3). 处理时间
    4). 资源要求
    5). 优先级

  2. 系统处理能力强
    限制条件:
    若m个进程, 处理时间表示为C, 周期时间表示为P,则m个C/P比值之和, 应该小于等于1.否则称为系统不可调度
    如6个进程, 每个周期时间都是50ms, 处理时间为10ms, 则6*(10/50)=1.2, 已经大于1了,所以此时,是不可调度的, 可以提高 CPU的处理能力, 或增加CPU数量
    N个处理器的情况,也需要满足这样的限制.

  3. 采用抢占式调度机制
    实时系统广泛采用抢占式调度.
    分为基于时钟中断的抢占立即抢占

  4. 具有快速的切换机制
    1). 对外部中断的快速响应能力
    2). 快速的进程切换能力

二. 常用的几种实时调度算法

  1. 最早截止时间优先(Earlist Deadline First, EDF)
  2. 最低松弛度优先(Least Laxity First LLF), 松弛度是用来表示实时进程的紧迫程序. 如果一个进程的完成截止时间为T, 当前时间为Tc, 处理完该任务还需要的时间为Ts, 则松弛度L的表达式为: L = T - Tc - Ts

第四节 进程切换

第五节 多处理器调度

一. 多处理器系统(MultiProcessor Systems, MPS)

  1. 紧密耦合的多处理器系统和松弛耦合的多处理系统
  • 紧密耦合的多处理系统通常通过高速总线或高速交叉开关实现多个处理器之间的互连, 它们共享主存储器系统和IO设备
  • 松弛耦合的多处理器系统 通过通道或通信线路来实现多台计算机之间的互连.
  1. 对称多处理器系统和非对称多处理器系统

二. 多处理器系统中的进程分配方式

  1. 对称多处理系统中的进程分配 方式
  • 静态分配
  • 动态分配
  1. 非对称多处理系统中的进程分配方式

三. 进程(线程)调度方式

  1. 自调度: 当前处理器系统中最常用的调度方式之一, 也是最简单的一种调度方式
  2. 成组调度
  3. 专用处理器分配

第六节 死锁

在多道程序系统中, 多个进程可能竞争数量有限的资源, 如果一个进程所申请的资源被其他处于阻塞状态的进程占有, 该进程就会因为不能获得所申请的资源而被阻塞. 若此时该进程恰好又占用了前述进程所需要的资源, 那么这一组进程就可能因为等待释放自己所需要但又被其他进程已占有的资源而无法向前推进, 这种由多个进程竞争共享资源而引起的进程不能向前推进的僵死状态称为死锁.

一. 产生死锁的原因和必要条件

1 .原因:
竞争共享资源且分配资源顺序不当.
2. 必要条件:

  • 互斥条件
  • 请求和保持条件
  • 不可剥夺条件
  • 环路等待条件
    只有当这4个条件同时满足时,才会发生死锁

二. 处理死锁的基本方法

  • 预防死锁: 根据以上的必要条件, 通过保证至少其中一个条件不成立来达到预防发生死锁的目的.
    1). 摒弃请求和保持条件
    2). 摒弃不可剥夺条件
    3). 摒弃环路等待条件
  • 避免死锁: 把系统的资源分为安全状态和不安全状态
  • 检测并解除死锁
  • 忽略死锁问题

三. 银行家算法

基本思路是一个进程提出资源请求后, 系统先进行资源的试分配 , 然后检测本次的试分配是否会使系统处理于安全状态, 若安全, 则按试分配方案分配资源 , 否则不分配资源.
available: 系统中资源可供使用的数量
max: 需要的资源最大数量
allocation: 已分配的资源
need: 需求的资源
request: 请求的资源

第一步:
if request<=need:
去第二步:
else:
出错

第二步:
if request <= available:
去第三步:
else:
阻塞该进程

第三步: 执行资源的试分配
available = available-request;
allocation = allocation +request
need = need-request

四. 死锁的检测和解除

  1. 何时调用检测算法
  2. 资源分配图
  3. 死锁定理: 死锁定理用于检测系统所处的资源分配状态S是否为死锁状态.
    S为死锁状态的充分条件是当且仅当S状态的资源分配图是不可完全简化的
  4. 死锁的解除: 有两个途径: 终止处于死锁状态的进程, 抢占死锁进程占有的资源
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值