操作系统第三章 处理机调度与死锁

1.对于批量型来说,必须经过作业调度(又称高级调度或长程调度)、进程调度(又称低级调度或短程调度)才能获得处理机;对于终端型作业,通常只需要经过进程调度。有些系统还存在终级调度(又称中程调度)。

  • 高级调度:主要功能是根据某种算法将外存上处于后备队列中的作业调入内存。
    概念:作业、作业步、作业控制块(JCB)
    作业调度的任务:(1)决定接纳多少个作业(2)决定接纳哪些作业

  • 低级调度:用于决定就绪队列中的哪个进程应获得处理机,然后在由分派程序执行把处理机分配给该进程的具体操作。主要功能如下:
    (1)保存处理机的现场信息
    (2)按某种算法选取进程
    (3)把处理机分配给进程
    进程调度的三个基本机制:排队器、分派器、上下文切换机制
    进程调度方式:非抢占方式(优点实现简单、系统开销小、但难以满足紧急任务的要求)、抢占方式(优先权原则、短作业优先原则、时间片原则)

  • 中级调度:引入的目的是提高内存利用率和系统吞吐量,功能将挂起状态的进程调入内存,并修改其状态为就绪,挂在就绪等待队列上。

2.调度队列模型

  • 仅有进程调度的调度队列模型:在分时系统中,一般仅设置了进程调度,命令和数据直接送入内存。(考虑只有就绪队列和阻塞队列)
  • 具有高级和低级调度的调度队列模型:批处理系统中(就绪队列采用优先权队列,多个阻塞队列)
  • 同时具有三级调度的调度队列模型:即中程调度将外存就绪转为内存就绪等

3.选择调度方式和算法的原则

  • 面向用户的准则:周转时间短、响应时间快、截止时间的保证、优先权准则
  • 面向系统的准则:系统吞吐量高、处理机利用率好、各类资源的平衡利用

4.调度算法
- 先来先服务调度算法(FCFS):作业调度、进程调度皆可。有利于长作业/进程、不利于短作业/进程。
- 短作业(进程)调度算法优先(SJ/PF):作业调度、进程调度皆可。缺点:不利于长作业,不能紧迫性作业/进程被及时处理,时间的长短只是估计因此不一定能真正做到短作业优先。
- 高优先权调度算法(FPF):非抢占式优先权算法、抢占式优先权算法。其中优先权也可分为静态优先权、动态优先权。
- 基于时间片的轮转调度算法:一般分时系统中。早期时间片轮转法,但时间片大小的选择较为重要,后多级反馈队列调度算法,即设置多个就绪队列,每个队列的优先级不同,且每个队列的时间片均比上一队列长一点。

5.实时调度
实现实时调度的基本条件:

  • 提供必要的信息:就绪时间、开始时间和完成截止时间、处理时间、资源要求、优先级
  • 系统处理能力强
  • 采用抢占式调度机制
  • 具有快速切换机制

按调度方式的不同分类:

  • 非抢占式调度算法:非抢占式轮转调度算法(常用于工业生产的群控系统中)、非抢占式优先调度算法(不同的任务赋予不同的优先级)
  • 抢占式调度算法:基于时钟中断的抢占式算法、力计抢占的优先权调度算法

    几种常用的实时调度算法

  • 最早截止时间优先EDF算法:抢占用于非周期实时任务、非抢占式用于周期实时任务。

  • 最低松弛优先LLF算法:主要用于抢占式调度算法中

6.死锁
产生死锁的原因:竞争资源、进程间推进顺序非法
产生死锁的必要条件:互斥条件、请求和保持条件、不剥夺条件、环路等待条件
处理死锁的基本方法:

  • 预防死锁:破坏产生死锁的四个条件之一。摒弃“请求与保持”条件:即一次性获取所需的全部资源;摒弃“不剥夺”条件:即某个资源请求不被满足时,放弃所拥有的资源;摒弃“环路等待”条件:即对资源的请求必须按资源序号来,从而避免形成环路
  • 避免死锁:防止系统进入不安全状态从而避免死锁。银行家算法
  • 检测死锁:
  • 解除死锁:与检测死锁一般在一起。资源分配图的概念。两种方法:剥夺资源、撤销进程。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值