现代操作系统day8:调度

实时调度:

速率单调调度:

最佳静态调度算法,
通过周期安排优先级,
周期越短优先级也越高,
执行周期最短的任务

最早期限调度:

最佳动态调度算法,
deadline越早优先级越高,
执行deadline最早的任务

多处理器调度:

现代操作系统的处理器越来越多,和之前的调度(针对一个CPU)都有区别
要考虑的问题
1.正常情况下,队列中的进程都是在一个CPU中执行,现在考虑的是进程在哪个CPU上执行
2.确保所有CPU的进程比较均匀(负载平衡),不会有的忙有的空闲,需要动态探测CPU的忙/空闲的情况

优先级反转:

正常运行情况下会有三个进程T1、T2、T3,T1优先级最高,T3最低。问题是,如果T1不能及时完成,会认为系统处于不稳定状态,从而重启系统。问题在于,T1需要等待T3完成了才能继续进行并完成,但T2又优先于T3使用CPU资源,导致T3还没完成,T2就开始了,间接导致T1要等待T2完成才能继续,结果T1未能及时完成任务

解决这种低优先级任务影响高优先级任务的办法是:
1.优先级继承
T3访问了资源,T1如果也要共享该资源,此时把T3优先级提升到和T1一样(也就是继承了T1的优先级),从而不会被T2抢占,让T3和T1都完成任务后再让给T2。

2.优先级天花板
一开始就统计哪些进程需要什么资源,然后把资源也定优先级,其等级等于【需要到该资源的所有进程中】最高的优先级

你可能感兴趣的:(操作系统)