cpu的调度算法
引自:https://www.jianshu.com/p/b7a1464b86ca
1."不使用算法"的算法——FCFS(FIRST COME FIRST SCHEDULE)
2.先做简单的——SJF(SHORTEST JOB FIRST)
3.先做离截止时间最短的--SRTF(SHORTEST REMAINING TIME FIRST)
4.重要的优先——PS(PRIORITY SCHEDULE)
实时调度:
5.紧急的先完成——EDD(EARLIEST DUE DATE)&
EDF(EARLIEST DEADLINE FIRST)
EDD:是对waiting task 进行排序,早到的 排到前面
EDF:是对ready task 进行排序,比较绝对截止时间(最晚开始时间+执行消耗时间),小的排在前面。
6. 实时系统的杀手——延迟(DELAY)
7.主动把任务拆解——RR(ROUND ROBIN)时间片轮询
EDD(Earliest Deadline Due)和EDF(Earliest Deadline First)都是任务调度算法中的策略,用于实时系统中对任务进行排序和调度。
-
EDD(Earliest Deadline Due):
- EDD算法的核心思想是按照任务的最早截止期限来排序和调度。具体来说,系统会根据每个任务的截止时间(Deadline)和执行时间(Execution Time)来决定执行顺序,优先执行最早截止时间最近的任务。
- 如果一个任务的最早截止时间快到了,而另一个任务的截止时间较远,EDD算法会优先执行最早截止期限接近的任务,以确保任务能在其截止时间之前完成。
-
EDF(Earliest Deadline First):
- EDF算法也是基于任务的截止时间来排序和调度,但不同于EDD,它是按照最早的截止时间来决定任务执行顺序,而不考虑任务的执行时间。
- 在EDF算法中,系统会始终选择当前截止时间最早的任务来执行,这样可以最大程度地保证任务能够按时完成。
比较两者:
- 共同点:都以任务的截止时间作为调度的依据,都属于实时系统中的静态优先级调度算法,适用于对任务响应时间有严格要求的场景。
- 不同点:
- EDD考虑了任务的执行时间,尽量先执行最早到期且耗时短的任务。
- EDF只关注截止时间,始终选择最早截止的任务执行,不考虑任务的执行时间长短。
选择使用哪种算法取决于实时系统的具体要求和性能特征,包括任务的截止时间分布、任务的执行时间变化等因素。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)