线任务中的区别

概览

本文档内容属于
多核编程基础白皮书系列

多核编程基础白皮书系列

多核编程基础白皮书系列

在本文档中,您将了解在应用程序中使用多任务和多线程的重要性。

内容

背景

多核系统是包含两个或多个核的单处理器CPU,每个核都有独立的微处理器。多核微处理器在单个物理封装中执行多处理任务。多核系统共享多处理器系统中具有多份的计算资源,如L2缓存和前端总线。

多核系统提供的性能类似于多处理器系统,但通常成本较低,因为不需要支持多处理器(如多处理器插槽)的主板。

任务

在计算领域,多任务处理是指多个任务(又称进程)共享CPU等常见处理资源的方法。使用Windows XP等多任务操作系统,用户可同时运行多个应用程序。多任务是指操作系统能够在每个计算任务之间快速切换,对于用户来说,多任务就是不同的应用程序同时执行不同的操作。

随着CPU时钟速度稳步提高,不仅应用程序运行速度更快,操作系统在应用程序间的切换速度也更快。这改善了整体性能。许多操作可在一台计算机上同时发生,单个应用程序可更快运行。

单核

对于单CPU内核的计算机,任何时候都只能运行一个任务,也就是CPU只能同时处理一个任务的指令。多任务通过安排可以在任何给定时间运行的任务,以及另一个等待的任务的运行时间来解决这个问题。

 

单核系统启用多任务操作系统

图1.单核系统在单CPU上安排任务以实现多任务处理

 

多核

在多核系统上运行时,多任务操作系统可真正同时执行多个任务。多个计算引擎可以独立处理不同的任务。

例如,在双核系统上,4个应用程序(例如,文字处理软件、电子邮件客户端、网页浏览器和杀毒软件)可同时访问独立的处理器内核。用户可以通过同时查看电子邮件和输入信件内容执行多任务,从而提高应用程序的整体性能。

 

双核系统启用多任务操作系统同时执行两个任务

图2.双核系统启用多任务操作系统同时执行两个任务

 

操作系统通过在独立的CPU核之间分配不同的应用程序或进程,更高效地执行多个应用程序。计算机可以分散工作量(每个核管理和切换的应用程序数量是之前的一半),并改善整体吞吐量和性能。实际上,这些应用程序是并行运行的。

 

线程

多线程将多任务的概念扩展到应用程序中,因此用户可将单个应用程序中的特定操作细分为单独的线程。每个线程可并行运行。操作系统不仅可以给不同的应用程序分配处理时间,也可以给同一个应用程序中的每个线程分配处理时间。

在多线程NI LabVIEW程序中,范例应用程序可分为4个线程:用户界面线程、数据采集线程、网络通信线程和日志记录线程。用户可对每个线程进行优先级排序,使其独立运行。因此,在多线程应用程序中,多个任务可与系统中运行的其他应用程序并行执行。

双核系统启用多任务操作系统同时执行两个任务

图3.双核系统启用多线程

利用多线程技术的应用程序有以下优势:

  • 更高效地使用CPU
  • 更好的系统可靠性
  • 更优化的多处理器性能

在许多应用程序中,用户可对资源(如仪器)进行同步调用。这些仪器调用通常需要很长时间才能完成。在单线程应用中,同步调用会阻碍或挂起应用程序中的其他任务,直到调用完成。多线程可避免发生这种情况。

当同步调用在一个线程上运行时,程序的其他部分仍然可以在不同的线程上运行。应用程序会继续执行,而不是挂起至同步调用结束。通过这种方法,多线程应用程序最大限度地提高了CPU的效率,因为当应用程序的线程准备就绪时,CPU不会处于空闲状态。

使用LabVIEW进行线程

LabVIEW自动将每个应用程序分为多个执行线程。线程管理的复杂任务内化在LabVIEW执行系统之中。

 

图4.LabVIEW使用多个执行线程

LabVIEW中的任务

LabVIEW在支持抢占式多线程的操作系统上使用这种功能。LabVIEW也使用协同式多线程。在抢占式多线程技术中,操作系统和处理器只能使用有限数量的线程,所以在特定情况下,这些系统会使用协同式多线程技术。

执行系统利用线程使VI执行抢占式多任务机制。然而,可用线程的数量是有限的。对于高度并行的应用程序,在可用线程繁忙的情况下,执行系统使用协同式多任务。操作系统也会在应用程序和其他任务之间处理抢占式多任务。

Was this information helpful?

Yes

No