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只关注截止时间,始终选择最早截止的任务执行,不考虑任务的执行时间长短。
选择使用哪种算法取决于实时系统的具体要求和性能特征,包括任务的截止时间分布、任务的执行时间变化等因素。