多处理机系统中的调度教案
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 采用这一算法,处理器将不适用多道 程序设计,即该应用的一个线程阻塞 后,线程对应的处理器不会被调度给 其他线程,而处于空闲状态。
多处理器调度算法(14)
4)动态调度算法(1)
• 基本思想:由操作系统和应用进程共 同完成调度。
• 操作系统负责在应用进程之间划分处 理器。
• 应用进程在分配给它的处理器上执行 可运行线程的子集,哪一些线程应该 执行,哪一些线程应该挂起完全是应 用进程自己的事。
多处理器调度算法(6)
自调度算法不足
• 就绪线程队列将成为性能的瓶颈。
• 被抢占的线程很难在同一个处理 器上恢复运行,会带来性能下降。
• 线程都被放在公共线程池中,所 有线程获得处理器的机会相同。 如果一个程序的线程希望获得较 高优先级,进程切换将导致性能 的折衷。
多处理器调度算法(7)
2)群组调度算法
多处理器调度算法(4)
自调度算法优点
• 把负载均分到所有可用处理器上,保
证了处理器效率的提高。
• 不需要集中的调度程序,一旦一个处
理器空闲,调度程序就可以运行在该 处理器上以选择下一个运行的线程。
• 运行线程的选择可以采用各种可行的
策略。
多处理器调度算法(5)
自调度算法
(1)先来先服务。 (2)最少线程数优先。 (3)有剥夺的最少线程数优先。
个有4个线程,另一个有1个线程。 若使用统一的时间分配,每个应 用程序可获得50%的CPU时间, 由于后一个线程运行时,有三个 处理器是空闲的,于是浪费的 CPU资源为37.5%。
多处理器调度算法(11)
• 可选择的另种统一时间分配称线 程数加权调度法,具体来说,给 第一个应用程序分4/5CPU时间, 给第二个应用程序分1/5的时间, 则处理器时间浪费可降到15%。
多处理器调度算法(12)
群组调度的例子
统一划分 组1 组2
加权划分
组1
组2
空闲 空闲 空闲
浪费37.5%
空闲 空闲 空闲
浪费15%
多处理器调度算法(13)
3)专用处理器调度算法
• 基本思想:给一个应用指派一组处理 器,一旦一个应用被调度,它的每个 线程被分配一个处理器并一直占有处 理器运行直到整个应用运行结束。
二是将等待执行的就绪进程分配
到哪一个处理机上执行的问题。
• 在单机系统中,由于只有一个处理机, 在调度程序中选取了某个就绪状态的进 程之后,不须再选择处理机。而在多机 系统中,为了尽量做到让各处理机负荷 平衡,可能会将处理机在进程之间进行 多次切换。如果被切换进程正在执行其 临界区部分或系统中进程数目相当多, 这种频繁的上下文转换将会使系统效率 大大下降。
多处理机系统调度策略
(1) 多处理机系统与单机调度的区别
多处理机调度与单机调度的主要区别涉及两个资 源分配问题:
一是存放程序或数据的存储器分配及如何访问 他们的问题。
在多机系统中,由于各进程在物理上也同时执行 而不是单机系统那样的交叉执行,这些在物理上同时 执行的进程可能同时访问物理存储器的同一地址。处 理机对同一存储块的访问必须是顺序的。各进程同时 访问物理存储器上的同一地址是不允许的。
• 方法二 面向所有进程平均分配
多处理器调度算法(9)
群调度对处理器分配(1)
• 如果有N个处理器和M个应用程 序,每个应用程序有最多N个线 程,那么,使用时间片,每个应 用程序将被给予M个处理器中可 用时间的1/M,这个分配策略可 能效率不高。
多处理器调度算法(10)
群调度对处理器分配(2) • 考虑例子,有两个应用程序,一
• 实验证明,随着处理器数目的增 多,复杂低级调度算法的有效性 逐步下降。
• 多数采取动态分配策略的多处理 器系统中,低级调度算法往往采 用最简单的FCFS或优先数算法。
多处理器的调度算法(2)
• 多处理器调度的主要研究对象是线 程调度算法。
• 尽管线程也给单处理器系统带来很 大益处,但在多处理器环境中线程 的作用才真正得到充分发挥。
多处理机调度
➢ 什么是多处理机系统 ➢ 多处理机操作系统的分类 ➢ 多处理机系统调度策略
什么是多处理机系统
多处理机系统:是一个具有两个或多个处理 机并能相互进行通信以协同一个大的给定问题求 解的计算机系统。 特点: 1) 有两个或多个处理机 2) 共享主存或高速通信网络 3) 共享输入输出子系统 4) 有单一完整的操作系统 5) 各级硬件和软件相互作用
基本思想:把一组进程在同一时间一 次性调度到一组处理器上运行。它具 有的优点:
•当紧密相关的进程同时执行时,同步 造成的等待将减少,进程切换也相应 减少,系统性能得到提高。
•由于一次性同时调度一组处理器,调 度的代价也将减少。
多处理器调度算法(8)
群调度算法为应用进程分配CPU时间 • 方法一 面向应用进程平均分配
主要功能: ●进程分配 ●更好的利用多机硬件 ●资源在处理机之间的分配 ●改善程序的响应时间 ●处理机的负载平衡 ●处理机间的协调和同步 ●因处理机故障引起的系统重组
广义上说,使用多处理机协调工作,来完成用户
所要求任务的计算机系统。这包扩了并行处理系统 (parallel processing system),例如数据流机 (dataflow machine)和细胞阵列处理机(Celluar array processors)等,也包扩了在物理上分散且通 过不同的物理传输媒体传输数据的计算机网络系统 和计算机网络为基础的,对用户透明的分布式系统, 以及在同一的计算机系统里共享内存的多处理机系 统. 广义的计算机系统的一个共同的特点是有n个处 理器(n>1),能做到真正的并行处理,也就是能同时执 行n条指令.
多处理机系统பைடு நூலகம்调度目标是:以最高的可 靠性,使用最少的处理机在最短的时间 内完成最多的可以并行完成的进程。
多处理器调度的设计要点
• 设计要点之一是如何把处理器分配 给进程:
静态分配策略
动态分配策略
• 设计要点之二是否要在单个处理器 上支持多道程序设计。
• 设计要点之三是如何指派进程。
多处理器的调度算法(1)
多处理器调度算法(15) 动态调度算法(2)
• 如果有空闲处理器,满足要求。否则,对 新到达进程,从当前分配了一个以上处理 器的进程中收回一个,并把它分给新到达 进程。
• 如果要求不能被满足,则保留申请直到出 现可用处理器或要求取消。
• 释放了一个或多个处理器后,扫描申请处 理器的进程队列,按照FCFS原则把处理器 逐一分配给每个申请进程直到没有可用处 理器。
多处理器调度算法(14)
4)动态调度算法(1)
• 基本思想:由操作系统和应用进程共 同完成调度。
• 操作系统负责在应用进程之间划分处 理器。
• 应用进程在分配给它的处理器上执行 可运行线程的子集,哪一些线程应该 执行,哪一些线程应该挂起完全是应 用进程自己的事。
多处理器调度算法(6)
自调度算法不足
• 就绪线程队列将成为性能的瓶颈。
• 被抢占的线程很难在同一个处理 器上恢复运行,会带来性能下降。
• 线程都被放在公共线程池中,所 有线程获得处理器的机会相同。 如果一个程序的线程希望获得较 高优先级,进程切换将导致性能 的折衷。
多处理器调度算法(7)
2)群组调度算法
多处理器调度算法(4)
自调度算法优点
• 把负载均分到所有可用处理器上,保
证了处理器效率的提高。
• 不需要集中的调度程序,一旦一个处
理器空闲,调度程序就可以运行在该 处理器上以选择下一个运行的线程。
• 运行线程的选择可以采用各种可行的
策略。
多处理器调度算法(5)
自调度算法
(1)先来先服务。 (2)最少线程数优先。 (3)有剥夺的最少线程数优先。
个有4个线程,另一个有1个线程。 若使用统一的时间分配,每个应 用程序可获得50%的CPU时间, 由于后一个线程运行时,有三个 处理器是空闲的,于是浪费的 CPU资源为37.5%。
多处理器调度算法(11)
• 可选择的另种统一时间分配称线 程数加权调度法,具体来说,给 第一个应用程序分4/5CPU时间, 给第二个应用程序分1/5的时间, 则处理器时间浪费可降到15%。
多处理器调度算法(12)
群组调度的例子
统一划分 组1 组2
加权划分
组1
组2
空闲 空闲 空闲
浪费37.5%
空闲 空闲 空闲
浪费15%
多处理器调度算法(13)
3)专用处理器调度算法
• 基本思想:给一个应用指派一组处理 器,一旦一个应用被调度,它的每个 线程被分配一个处理器并一直占有处 理器运行直到整个应用运行结束。
二是将等待执行的就绪进程分配
到哪一个处理机上执行的问题。
• 在单机系统中,由于只有一个处理机, 在调度程序中选取了某个就绪状态的进 程之后,不须再选择处理机。而在多机 系统中,为了尽量做到让各处理机负荷 平衡,可能会将处理机在进程之间进行 多次切换。如果被切换进程正在执行其 临界区部分或系统中进程数目相当多, 这种频繁的上下文转换将会使系统效率 大大下降。
多处理机系统调度策略
(1) 多处理机系统与单机调度的区别
多处理机调度与单机调度的主要区别涉及两个资 源分配问题:
一是存放程序或数据的存储器分配及如何访问 他们的问题。
在多机系统中,由于各进程在物理上也同时执行 而不是单机系统那样的交叉执行,这些在物理上同时 执行的进程可能同时访问物理存储器的同一地址。处 理机对同一存储块的访问必须是顺序的。各进程同时 访问物理存储器上的同一地址是不允许的。
• 方法二 面向所有进程平均分配
多处理器调度算法(9)
群调度对处理器分配(1)
• 如果有N个处理器和M个应用程 序,每个应用程序有最多N个线 程,那么,使用时间片,每个应 用程序将被给予M个处理器中可 用时间的1/M,这个分配策略可 能效率不高。
多处理器调度算法(10)
群调度对处理器分配(2) • 考虑例子,有两个应用程序,一
• 实验证明,随着处理器数目的增 多,复杂低级调度算法的有效性 逐步下降。
• 多数采取动态分配策略的多处理 器系统中,低级调度算法往往采 用最简单的FCFS或优先数算法。
多处理器的调度算法(2)
• 多处理器调度的主要研究对象是线 程调度算法。
• 尽管线程也给单处理器系统带来很 大益处,但在多处理器环境中线程 的作用才真正得到充分发挥。
多处理机调度
➢ 什么是多处理机系统 ➢ 多处理机操作系统的分类 ➢ 多处理机系统调度策略
什么是多处理机系统
多处理机系统:是一个具有两个或多个处理 机并能相互进行通信以协同一个大的给定问题求 解的计算机系统。 特点: 1) 有两个或多个处理机 2) 共享主存或高速通信网络 3) 共享输入输出子系统 4) 有单一完整的操作系统 5) 各级硬件和软件相互作用
基本思想:把一组进程在同一时间一 次性调度到一组处理器上运行。它具 有的优点:
•当紧密相关的进程同时执行时,同步 造成的等待将减少,进程切换也相应 减少,系统性能得到提高。
•由于一次性同时调度一组处理器,调 度的代价也将减少。
多处理器调度算法(8)
群调度算法为应用进程分配CPU时间 • 方法一 面向应用进程平均分配
主要功能: ●进程分配 ●更好的利用多机硬件 ●资源在处理机之间的分配 ●改善程序的响应时间 ●处理机的负载平衡 ●处理机间的协调和同步 ●因处理机故障引起的系统重组
广义上说,使用多处理机协调工作,来完成用户
所要求任务的计算机系统。这包扩了并行处理系统 (parallel processing system),例如数据流机 (dataflow machine)和细胞阵列处理机(Celluar array processors)等,也包扩了在物理上分散且通 过不同的物理传输媒体传输数据的计算机网络系统 和计算机网络为基础的,对用户透明的分布式系统, 以及在同一的计算机系统里共享内存的多处理机系 统. 广义的计算机系统的一个共同的特点是有n个处 理器(n>1),能做到真正的并行处理,也就是能同时执 行n条指令.
多处理机系统பைடு நூலகம்调度目标是:以最高的可 靠性,使用最少的处理机在最短的时间 内完成最多的可以并行完成的进程。
多处理器调度的设计要点
• 设计要点之一是如何把处理器分配 给进程:
静态分配策略
动态分配策略
• 设计要点之二是否要在单个处理器 上支持多道程序设计。
• 设计要点之三是如何指派进程。
多处理器的调度算法(1)
多处理器调度算法(15) 动态调度算法(2)
• 如果有空闲处理器,满足要求。否则,对 新到达进程,从当前分配了一个以上处理 器的进程中收回一个,并把它分给新到达 进程。
• 如果要求不能被满足,则保留申请直到出 现可用处理器或要求取消。
• 释放了一个或多个处理器后,扫描申请处 理器的进程队列,按照FCFS原则把处理器 逐一分配给每个申请进程直到没有可用处 理器。