进程调度算法 笔记总结

程调度算法也称 CPU 调度算法,毕竟进程是由 CPU 调度的。

  1. 先来先服务调度算法(FCFS)

    1. 执行机制:每次从就绪队列中选择最先进入队列的进程,然后一直运行,直到进行正常退出或异常终止

    2. 优缺点:对长时间执行的任务有利,也就是说对CPU密集型任务有利,不适合I/O密集型任务

  2. 短作业优先调度算法

    1. 执行机制:每次从队列中选择执行最短的作业来执行,有助于提升系统的吞吐量

    2. 优缺点:如果就绪队列中有一个长作业待执行,此时队列又进来许多短作业,导致长作业一直得不到CPU执行,可能会导致长作业饿死

  3. 高相应比调度算法

    1. 执行机制:定义一个优先级 优先权 = (要求服务时间 + 等待时间)/ 要求服务时间,每次运行任务时候,根据优先权进行执行

    2. 优缺点:平衡了长短作业,比较公平

  4. 时间片轮转调度算法

    1. 执行机制:每个进程被分配一个时间段,称为时间片。

      1. 如果一个任务在分配的时间片内运行完成或阻塞,则会立即切断CPU

      2. 如果未完成,则当前进程把CPU释放,并把CPU让给另一个进程执行

    2. 优缺点:是使用最广泛、最古老、最简单的调度方式。同时时间片长度的设置也会影响系统的吞吐量

      1. 分配时间过长:对短作业响应时间会变长

      2. 分配时间过短:可能会导致CPU切换过于频繁,降低CPU利用率

  5. 高优先级调度算法

    1. 执行机制:通过设置静态优先级(进程在创建时候,就已经确定了执行的优先级顺序,此后也不再改变)或动态优先级(动态设置优先级,该进程在长时间执行时,优先级会逐渐降低,如果处于等待时间,则优先级逐步增加)。同时有两种方式处理高优先级的方式。

      1. 抢占式:当就绪队列中出现高优先级的进程后,直接挂起当前进程,转而执行高优先级的进程

      2. 非抢占式:当出现高优先级进程后,待该进程执行完成之后,再执行新的高优先级进程。

  6. 多级反馈队列调度算法

    1. 执行机制:结合高优先级调度算法与时间片轮转算法。根据每个队列分配的时间片长短设计多个队列。每次从第一级队列中运行任务,如果在该队列规定的时间片内没有运行完成,则直接放入第二级队列,待后续分配更长时间片继续执行该任务,否则继续放入下一层队列。

    2. 优缺点:短作业在第一级队列中优先快速处理完成,对于长作业,第一级队列中运行没有完成之后,放入第二级队列中,获得更多执行时间,该算法兼顾了长短作业,同时又有较好的响应时间。

吞吐量:单位时间内系统完成的任务数量,使用TPS(每秒事务数)来表示

相关推荐
wanhengidc8 小时前
云手机 高振畅玩不踩坑
运维·服务器·安全·web安全·智能手机
有谁看见我的剑了?8 小时前
linux 添加硬盘后系统识别不到硬盘处理
linux·运维·服务器
码途漫谈8 小时前
Easy-Vibe开发篇阅读笔记(四)——前端开发之结合 Agent Skills 美化界面
人工智能·笔记·ai·开源·ai编程
JoyCong19988 小时前
ToDesk远程屏幕墙技术白皮书:如何重塑全局运维视界
运维·电脑·远程工作
酿情师9 小时前
yihan:一款面向连续网页学习的智能侧边栏插件
学习·学习方法·工具·学习工具
偶尔上线经常挺尸9 小时前
《100个“反常识”经验15:Nginx 502排查:从应用到内核》
运维·nginx·性能调优·反向代理·502错误·http排错
yc_12249 小时前
用 Visual Studio 远程调试 Linux:从零到流畅的完整指南
linux·ide·visual studio
思茂信息9 小时前
CST软件如何进行参数化扫描?
运维·开发语言·javascript·windows·ecmascript·软件工程·软件需求
瞎某某Blinder9 小时前
DFT学习记录[6]基于 HES06的能带计算+有效质量计算
python·学习·程序人生·数据挖掘·云计算·学习方法
计算机安禾10 小时前
【Linux从入门到精通】第31篇:防火墙漫谈——iptables与firewalld防护指南
linux·运维·php