操作系统笔记(八)

第八章

主要内容:进程调度算法

背景

上下文切换

  • 切换CPU的当前任务, 从一个进程/线程到另一个

  • 保存当前进程/线程在PCB/TCB中的执行上下文(CPU状态)

  • 读取下一个进程/线程的上下文

CPU调度

  • 从就绪队列中挑选一个进程/线程作为CPU将要运行的下一个进程/线程

  • 调度程序: 挑选进程/线程的内核函数(通过一些调度策略)

  • 什么时候进行调度?

内核运行调度程序的条件

  • 一个进程从运行状态切换到等待状态

  • 一个进程被终结

不可抢占

调度程序必须等待事件结束

可以抢占

  • 调度程序在中断被响应后执行

  • 当前的进程从运行切换到就绪, 或者一个进程从等待切换到就绪

  • 当前运行的进程可以被换出

调度原则

调度策略

目标

  • 减少响应事件

  • 减少平均响应事件的波动

  • 增加吞吐量:减少开销(操作系统开销,上下文切换),系统资源高效率利用

  • 减少等待时间

评价指标

  • CPU利用率

  • 吞吐量

  • 周转时间:一个进程从初始化到结束所花费的时间

  • 等待时间

  • 响应时间

调度算法

FCFS(先来先服务)

如果进程在执行中阻塞,队列中的下一个会得到CPU

优点: 简单

缺点:

  • 平均等待时间波动较大

  • 花费时间少的任务可能排在花费时间长的任务后面

  • 可能导致IO和CPU之间的重叠处理(CPU密集型进程会导致IO设备闲置时,IO密集型进程也在等待)

SPN(短作业优先)

选择完成时间最少的进程优先占用cpu资源,最优平均等待时间

缺点

  • 可能导致饥饿

    • 连续的短任务流会使长任务饥饿

    • 短任务可用时的任何长任务的CPU时间都会增加平均等待时间

  • 需要预测未来

HRRN(最高响应比优先)Highest Response Ratio Next

响应比= (等待时间+要求服务时间)/ 要求服务时间

Round Robin(时间片轮循)

使用时间切片和抢占来轮流执行任务

Multilevel Feedback Queues(多级反馈队列)

  • 就绪队列分成独立的队列

  • 每个队列拥有自己的调度策略

  • 进程可以在不同队列中移动

优点:CPU密集型任务的优先级下降很快,IO密集型任务停留在高优先级

Fair Share Scheduling(公平共享调度)

FSS控制用户对系统资源的访问

  • 一些用户组比其他用户组更重要

  • 保证不重要的组无法垄断资源

  • 未使用的资源按照每个组所分配的资源的比例来分配

  • 没有达到资源使用率目标的组获得更高的优先级

评价方式

确定性建模: 确定一个工作量,然后计算每个算法的表现

队列模型: 用来处理随机工作负载的数学方法

实现/模拟: 建立一个允许算法运行实际数据的系统;最灵活,最具一般性

实时调度

实时系统

定义:系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行。

性能指标:时间约束的及时性,速度和平均性能相对不重要

主要特征:时间约束的可预测性

分类

  • 强实时系统:需要在保证时间内完成重要的任务,必须完成

  • 弱实时系统:要求重要的进程的优先级更高,尽量完成,并非必须

静态优先级调度/动态优先级调度

  • 单调速率(RM)

    • 最佳静态优先级调度

    • 通过周期安排优先级

    • 周期越短优先级越高

    • 执行周期最短的任务

  • 截止日期最早优先(EDF)

    • 最佳的动态优先级调度

    • Deadline越早优先级越高

    • 执行Deadline最早的任务

多处理器调度

  • 多个相同的单处理器组成一个多处理器

  • 优点: 复杂共享

对称多处理器(SMP)

  • 每个处理器运行自己的调度程序

  • 需要在调度程序中同步

优先级反转

可以发生在任务基于优先级的可抢占的调度机制中

当系统内的环境强制使高优先级任务等待低优先级任务时发生

解决方法

优先级继承

低优先级任务即成高优先级任务的优先级,这个依赖于他们共享的资源。

优先级"天花板":“拥有资源”的优先级和“所有可以锁定该资源任务中优先级最高的那个任务”的优先级相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值