多核CPU算法

多核CPU环境下的进程调度算法有哪些,与单核CPU环境下的进程调度有何不同?

多核CPU调度算法

  • 全局队列调度
    • 操作系统维护一个全局的任务等待队列。
    • 当系统中有一个CPU核心空闲时,操作系统就从全局任务等待队列中选取就绪任务开始在此核心上执行。
    • 这种方法的优点是CPU核心利用率较高。
  • 局部队列调度。
    • 操作系统为每个CPU内核维护一个局部的任务等待队列。
    • 当系统中有一个CPU内核空闲时,便从该核心的任务等待队列中选取恰当的任务执行。
    • 这种方法的优点是任务基本上无需在多个CPU核心间切换,有利于提高CPU核心局部Cache命中率。
    • 目前多数多核CPU操作系统采用的是基于全局队列的任务调度算法。

单核CPU调度算法

  • FCFS调度

    • 先来的任务先被执行
    • 容易造成convoy effect(护航效果)
    • 其余进程在等待一个大进程释放CPU,可能导致CPU和设备的使用率变低
  • 优先级调度

    • CPU调度程序根据任务的优先级来选择谁先被分配到资源
    • 可能造成inddefinite blocking/starvation(无限等待/饥饿)
    • 某个低优先级进程会被 无穷等待
    • 解决方法
      • ”老化” 技术: 随着进程等待时间的增加, 优先级随之增加
  • SJF调度(shortest-job-first,SJF)

    • 选取CPU区间最短的任务执行
    • SJF算法常用于长期调度,控制多道程序设计的程度,平衡IO和CPU的组合进程
    • 不能在短期CPU调度上实现
    • 抢占SJF(shortest-remaining-time-first scheduling)
    • 如果有新到的进程的CPU时间 比正在执行的进程的剩余时间短,则发生抢占
  • RR调度(轮转法)

    • 专门为分时系统设计的

    • 时间片技术

    • 定义一个较小的时间单元

    • 为每个进程分配不超过一个时间片的CPU

      • 若进程在一个时间片里结束,则释放CPU
      • 若进程不能在一个时间片里结束,还是要释放CPU,并进行上下文切换,将进程加入到就绪队列的尾部
    • 时间片的安排

    • 时间片长度和CPU利用率不是线性相关的

这里写图片描述

  • 多级队列调度

    • 将ready队列分成多个独立的队列
    • 举例(前后台)

这里写图片描述

  • 多级反馈队列调度

    • 多级队列调度算法的各各独立的队列之间的进程是不能在队列之间移动的
    • 反馈队列调度可以移动

这里写图片描述

多核CPU调度算法与单核CPU调度算法对比

  1. 多核CPU的调度算法更为复杂

  2. 锁竞争导致串行化

    • 有两个线程A和B使用同一个lock,但运行在不同的CPU核上,如果A得到了锁,则B就发生堵塞。B所在的CPU就浪费了一个CPU运行时间

    这里写图片描述

  3. 负载均衡的区别

    在单核CPU中,并不需要考虑CPU间负载均衡的问题,因为无论线程如何切换,CPU始终处于工作状态,它并不会影响程序运行的总时间。

    但对于多核CPU,则一定要考虑负载均衡的问题,避免出现负载小的CPU出现空闲等待的现象。

  4. 任务调度策略的区别

    单核CPU:保证优先级高的线程可以抢占CPU时间,先运行。在这种情况下程序员更多的是需要考虑任务的优先级。

    多核CPU:不单是要考虑任务的优先级,也要考虑各个任务的耗时,使负载均衡,提高加速比和CPU效率。

  5. CPUcache存取区别

    • 在单核系统中,同一时刻只有一个硬件线程在执行,因此单核CPU是不存在Cache存储问题的。
    • 但在多核CPU中,情况则发生了变化。问题主要是因为CPU读取Cache时是以行为单位。
      • 如果两个硬件线程同时执行时,会造成两个硬件线程写同一Cache的问题,造成竞争降低效率

参考链接

https://blog.csdn.net/liu857279611/article/details/71967601

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
光电经纬仪是最早、最广泛应用于飞行器测控领域的光电跟踪测量设备,它 的组成部分包括大地测量光学经纬仪、激光跟踪测量系统、微机控制系统与图像 处理系统组成。光电经纬仪通过记录飞行过程中的目标图像,并测量传动机架的 角度,从而获得目标飞行参数,它在飞行实况记录中发挥重要的作用 [1] 。此外, 它还可以实现迅速定位目标位置和自动跟踪高速目标,已被广泛地应用于诸如航 天发射、飞行器测控等光电测量领域 [1] 。 随着数字图像处理等技术的发展,光电经纬仪由胶片式成像向数字式成像转 变。此外,高帧速率、高分辨率成像传感器技术已被广泛应用于光电经纬仪。这 些给光电经纬仪实时图像处理平台的发展带来新的挑战:复杂图像处理算法的实 现和数据吞吐量的巨大需求 [1-2] 。 DSP 作为一种密集型数据运算与实时信号处理的微处理器,能够很好的满足 复杂图像处理算法、实时性处理的需求。DSP 技术经过多年的发展,被广泛应用 在信号、图像、通信等技术领域,尤其是高性能计算、高速实时图像处理、超大 数据量处理的军用电子领域 [2] 。现今的图像处理平台由于芯片单片运算能力受到 限制,绝大部分使用了多个 DSP + FPGA 的架构,才能勉强实现实时图像处理任 务 [3] 。但是这样的平台带来的困难是显而易见的: 1. 系统结构复杂。采用多片 DSP+FPGA 的架构,系统的整体处理性能受片 间(DSP 与 FPGA 之间、DSP 与 DSP 之间)通信带宽瓶颈而下降。 2. 系统功耗大。多片 DSP 在单块电路板上的集成度越高,带来了单板整体 功耗的增加和散热的问题,导致单板多片 DSP 整体处理性能的可靠性和稳定性。 3. 系统调试困难。由于系统结构的复杂,导致系统的调试异常的困难。芯 片之间的任务分配、数据传输、并行处理非常复杂,使得产品在设计、调试、生 产阶段的难度加大。 本文研究的课题来源于光电经纬仪图像处理平台由多片 DSP 架构升级到多 核 DSP 架构而提出的系统应用需求。结合实验室的项目情况,本文将重点放在 多核 DSP 并行的以下相关技术: 1. DSP+FPGA 架构下图像数据流的设计。光电经纬仪的图像处理系统需要 兼容前端的多种图像输入格式,包括 CameraLink、SDI 以及光纤接口,DSP+FPGA载板搭配不同的子板就可以实现输入的灵活性;此外,DSP+FPGA 图像处理系 统中的高速 SRIO 接口用于图像数据通信。本文在 CameraLink 和 SRIO 这两个关 键接口做了一定的研究工作。 2. 多核环境下并行访问共享/外部存储器的性能研究和设计原则分析。多核 DSP 中存在多个主设备,包括多个 DSP 内核、多个 EDMA 设备等,它们并行访 问存储器的数据带宽,对于应用程序存储资源的安排、软件结构的设计是至关重 要的。 3. 多核 DSP 并行调度方案的研究。多核 DSP 图像处理平台,一方面要实 现复杂的图像处理算法,另一方面要满足超大运算量对实时性处理的需求。基于 多核的系统应用开发关键的一步,就是选择合适的处理模型实现任务并行调度。 本文将介绍多核 DSP 并行调度的几种方案,并以算法实例对主从模型进行分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值