多处理器调度与调度算法 进程调度算法不是关注的重点 多处理器调度主要是线程调度 几个典型的调度算法 负载共享调度算法 群调度算法 处理器专派调度算法 动态调度算法 负载共享调度算法 基本思想: 进程并不分配给一个特定的处理器,系统维护一个全局的就绪线程队列,当某个处理器空闲时,就选择一个就绪线程占有处理器运行。 CPU1 CPU2 CPU1 … 全局就绪线程队列 负载共享调度算法 优点: 把负载均匀分派到所有可用的处理器,保证了处理器的高效率 不需要一个集中的调度程序 运行进程的选择可以采用各种可行的策略 先来先服务、最少线程数优先、有剥夺的最少线程数优先 缺点: 就绪线程队列必须互斥访问,可能成为性能瓶颈 被抢占的线程很难在同一个处理器恢复执行,处理器高速缓存的恢复带来性能的下降 线程间没有优先级差别 群调度算法 基本思想: 把一组进程在同一时间一次性调度到一组处理器上运行。 优点: 当紧密相关的进程同时执行时,同步造成的等待将减少,进程切换也相应减少,提高系统运行效率 由于是一次调度一组进程,调度的代价减少 处理器专派调度算法 基本思想: 给一个应用专门指派一组处理器,一旦一个应用被调度,它的每个线程被分配一个处理器并一直占有该处理器,直到整个应用运行结束。 特点: 仅考虑单个应用的执行效率,不考虑处理器的利用率 动态调度算法 基本思想: 由操作系统和应用进程共同完成调度。
原创力文档

文档评论(0)