CN101268445A - 用于分区的多处理器系统的实时线程服务 - Google Patents

用于分区的多处理器系统的实时线程服务 Download PDF

Info

Publication number
CN101268445A
CN101268445A CNA2006800345301A CN200680034530A CN101268445A CN 101268445 A CN101268445 A CN 101268445A CN A2006800345301 A CNA2006800345301 A CN A2006800345301A CN 200680034530 A CN200680034530 A CN 200680034530A CN 101268445 A CN101268445 A CN 101268445A
Authority
CN
China
Prior art keywords
thread
application program
nuclear
storehouse
executive routine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006800345301A
Other languages
English (en)
Other versions
CN101268445B (zh
Inventor
Y·库巴克
D·莎玛雅
S·雷诺
J·海尔德
R·加伯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101268445A publication Critical patent/CN101268445A/zh
Application granted granted Critical
Publication of CN101268445B publication Critical patent/CN101268445B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)

Abstract

本发明的一个实施例是一种向多核环境中的应用程序提供实时线程服务的技术。在操作系统(OS)的最高特权级下,在多核环境内的实时核上发起执行程序。该实时核与OS隔离。在最低特权级下在该实时核上使用库为应用程序创建实时线程。该库由应用程序载入。该实时线程与该应用程序共享虚拟地址空间。

Description

用于分区的多处理器系统的实时线程服务
背景
发明领域
本发明的各实施例涉及操作系统领域,尤其涉及实时线程。
相关领域的描述
实时操作系统(RTOS)是为实时应用程序开发的操作系统(OS)。典型地,实时应用程序在与真实世界环境交互时要求确定性的响应时间。
在现有OS下开发的应用程序并不具有不受潜在OS限制的完全专用和可预测的环境。它或者需要与在隔离的环境之上或之内运行的特殊硬件和软件平台相协调。隔离环境可以是在同一或另一处理器上其本身虚拟地址空间内的独立进程,通常带有完全独立的RTOS环境。应用程序不得不通过显式消息和数据缓冲交互来与这一隔离的环境交互。这就导致了资源利用效率低下,并会引起不确定的响应时间。
附图简述
通过参考以下用于说明本发明的实施例的描述和附图将最好地理解本发明的实施例。附图中:
图1是示出其中可实施本发明的一个实施例的系统的图示。
图2是根据本发明一个实施例示出多核实时线程服务的图示。
图3是根据本发明一个实施例示出实时线程服务的组件交互的图示。
图4是示出根据本发明的一个实施例的共享虚拟地址空间的图示。
图5是示出根据本发明的一个实施例的虚拟地址空间映射的图示。
图6是根据本发明一个实施例示出连续的实时线程事件的图示。
图7是根据本发明一个实施例示出支持多核环境中的实时线程服务的模块的图示。
描述
本发明的一个实施例是一种向多核环境中的应用程序提供实时线程服务的技术。这些实时的核与OS隔离。驱动程序在操作系统(OS)的内核中发起。执行程序则由驱动程序发起以自举并控制隔离的核。使用OS上的库为应用程序创建实时线程。该库露出用户级应用程序接口(API)以便与驱动程序和执行程序通信。实时线程与该应用程序共享虚拟地址空间并受执行程序和驱动程序的控制。
在以下的描述中,陈述了众多特定的细节。然而,应理解可在没有这些特定的细节的情况下实施本发明的实施例。在其它的例子中,没有示出公知的电路、结构和技术,以免混淆对本发明的理解。
可将本发明的一个实施例描述为进程,一般将该进程描述为流程图、流程图解、结构图或框图。
尽管流程图将操作描述为顺序进程,但很多操作可并行或同时执行。此外,可重新安排操作的顺序。进程在其操作完成时终止。进程可以对应于方法、程序、过程、生成或制造方法等。
本发明的一个实施例是一种为多核或多处理器系统实现实时线程服务的技术。术语“实时”在这里指的是响应于真实世界事件或事务的确定性时间。各线程在用户级处暴露。因此,可将其称为轻型线程,因为要保存的上下文信息的量很小。提供该线程服务以支持隔离的对称多核或多处理器系统(SMP)或核多处理器系统(CMP)。隔离的SMP/CMP平台是多处理器/多核系统,在其中主机OS被引导并且仅知晓部分核或处理器。其余的处理器对OS不可见。不可见的处理器也可称为隔离的处理器。驱动程序和执行程序一起工作,从而允许程序器经由用户级库提供的API,在与主OS隔离的分区SMP平台内的核/处理器上执行线程。线程服务还允许程序器使用现成的和将来的多处理器(MP)平台来用实时子系统扩展现今的非实时OS,其中实时子系统使用在其中隔离的处理器与OS空间的处理器共享统一的虚拟地址空间的软件模型。这样就能够方便地移植现有的代码并能利用多个核的有效工作来快速开发这一OS扩展,而不会产生对现有OS的限制。
本发明的实施例的元件可由硬件、固件、软件或其任意组合来实现。术语硬件一般指的是具有诸如电子、电磁、光、电光、机械、电机部件、组件或器件等物理结构的元件。术语软件一般指的是逻辑结构、方法、过程、程序、例程、进程、算法、公式、函数、表达式等。术语固件一般指的是实现或包含在硬件结构(例如,闪存)中的逻辑结构、方法、过程、程序、例程、进程、算法、公式、函数、表达式等。固件的例子可包括微代码、可写控制存储、微编程结构。
当实现在软件或固件中时,本发明的实施例的元件本质上是执行必需的任务的代码段。软件/固件可包括用于执行本发明的一个实施例中所述的操作的实际代码或用于仿真或模拟操作的代码。程序或代码段可存储在处理器或机器可访问介质中,或通过包含在载波中的计算机数据信号或由载波调制的信号在传输介质上发送。“处理器可读或可访问介质”或“机器可读或可访问介质”可包括能存储、发送或传送信息的任何介质。处理器可读或机器可访问介质的例子包括电子电路、半导体存储设备、只读存储器(ROM)、闪存、可擦除ROM(EROM)、可擦除可编程ROM(EPROM)、软盘、致密盘(CD)ROM、光盘、硬盘、光纤介质、射频(RF)链路等。计算机数据信号可以包括能够经诸如电子网络信道、光纤、空气、电磁、RF链路等传输介质传播的任何信号。代码段可以经由诸如因特网、内联网等的计算机网络下载。机器可访问介质可以具体化为产品。机器可访问介质可包括数据,该数据在被机器访问时,使得机器执行以下操作。机器可访问介质还可包括嵌入其中的程序代码。程序代码包括执行以下描述的操作的机器可读代码。术语“数据”在此指的是为了机器可读的目的而编码的任何类型的信息。因此,它可以包括程序、代码、数据、文件等。
本发明的全部或部分实施例可由硬件、软件、固件或其任意组合来实现。硬件、软件或固件元件可具有互相耦合的多个模块。硬件模块通过机械、电、光电磁或其它物理连接耦合到另一个模块。软件模块通过函数、过程、方法、子程序、或子例程调用、跨接、链路、参数、变量以及变元传递、函数调用返回等耦合到另一个模块。软件模块被耦合到另一个模块以接收变量、参数、变元、指针等和/或生成或传递结果、更新的变量、指针等。固件模块通过以上的硬件和软件耦合方法的任意组合来耦合到另一个模块。硬件、软件或固件模块可被耦合到另一个硬件、软件或固件中的任何一个。模块还可以是与在该平台上运行的操作系统交互的软件驱动程序或接口。模块还可以是被配置为构造、建立、初始化、发送数据给硬件设备或从中接收数据的硬件驱动程序。装置可包括硬件、软件和固件模块的任意组合。
可将本发明的一个实施例描述为进程,一般将该进程描述为流程图、流程图解、结构图或框图。尽管流程图将操作描述为顺序进程,但很多操作可并行或同时执行。流程图中的环路或迭代可由单个迭代来描述。应理解,维持环路索引或计数器以更新相关联的计数器或指针。此外,可重新安排操作的顺序。进程在其操作完成时终止。进程可对应于方法、程序、过程等。框图可包含描述元件、项、组件、器件、单元、子单元、结构、方法、进程、功能、操作、功能性、任务等的块或模块。可自动或手动地执行功能性或操作。
图1A是示出其中可实施本发明的一个实施例的系统100的图示。系统10包括处理器单元110、存储器控制器集线器(MCH)120、主存储器130、输入/输出控制器集线器(ICH)140、互连145、大容量存储接口150、以及输入/输出(I/O)设备1801至180K
处理器单元110表示任何类型的体系结构的中央处理单元,诸如利用超线程、安全、网络、数字媒体技术的处理器、多核处理器、嵌入式处理器、移动处理器、微控制器、数字信号处理器、超标量计算机、向量处理器、单指令多数据(SIMD)计算机、复杂指令集计算机(CISC)、精简指令集计算机(RISC)、超长指令字(VLIW)或混合式体系结构。更具体,处理器单元110可以具有其中多核或处理器并行操作的多核或多处理器体系结构。
MCH 120提供对诸如主存储器130、ICH140之类的存储器和输入/输出设备的控制和配置。可将MCH 120集成为芯片组,该芯片组集成了诸如图形、媒体、隔离执行模式、主机-外围总线接口、存储器控制、电源管理等多种功能。MCH 120或MCH 120中的存储器控制器功能可集成在处理器单元110中。在某些实施例中,处理器单元110内部或外部的存储器控制器可为处理器单元110中的所有核或处理器工作。在其它实施例中,它可包括可分开地为处理器单元110中的不同的核或处理器工作的不同的部分。
主存储器130存储系统代码和数据。主存储器130通常以动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)或包括不需要刷新的存储器的任何其它类型的存储器来实现。主存储器130可以包括存储器设备双倍数率(DDR2)DRAM的多条通道。更具体地,存储器130包括多核实时(RT)线程服务135。多核RT线程服务135向应用程序提供服务以在多核环境中创建并管理RT线程。
ICH 140具有设计成支持I/O功能的多种功能。ICH 140还可与MCH 20一起集成为芯片组,或与MCH 20分离以执行I/O功能。ICH 140可包括多个接口和I/O功能,诸如外围组件互连(PCI)总线接口、处理器接口、中断控制器、直接存储器访问(DMA)控制器、电源管理逻辑、定时器、系统管理总线(SMBus)、通用串行总线(USB)接口、大容量存储接口、低引脚数(LPC)接口等。
互连145提供至外围设备的接口。互连145可以是点对点的,或连接到多个设备。为了清楚起见,没有示出所有的互连。可预想互连145可包括任何互连或总线,诸如外围组件互连(PCI)、PCI快速、通用串行总线(USB)、以及直接媒体接口(DMI)等。
大容量存储接口150提供对大容量存储设备的接口,这些大容量存储设备存储诸如代码、程序、文件、数据和应用程序之类的档案信息。大容量存储设备可包括致密盘(CD)只读存储器(ROM)152、数字视频/通用盘(DVD)154、软盘驱动器156和硬盘驱动器158、以及任何其他磁或光存储设备。大容量存储接口150提供了用于读取机器可访问介质的机构。I/O设备1801至180K可包括用于执行I/O功能的任何I/O设备。I/O设备1801至180K的例子包括用于输入设备(例如,键盘、鼠标、跟踪球、点击设备)的控制器、媒体卡(例如,音频、视频、图形显示)、网卡以及任何其他的外围控制器。
图2是根据本发明一个实施例示出图1所示的多核实时(RT)线程服务135的图示。多核RT线程服务135包括主核210、N个RT核心2201至220N、OS 230、最高特权级(MPL)240以及最低特权级(LPL)250。
主核210是其上载有并运行OS 230的核。存在OS 230可以在上运行的一个以上的主核。N个RT核心2201至220N是由基本输入输出系统(BIOS)在引导期间隔离的核或处理器,或者它们也可由OS 230隔离。N个RT核心2201至220N对OS 230不可见。它们可被称为轻型核,与稍后描述的在用户级上运行的轻型线程相对应。
一旦由用户205引导,OS 230可被载入并在主核210上运行。OS 230支持分区的对称多处理(SMP)系统。在一个实施例中,OS 230是MicrosoftWindows Server 2003 OS。应该预料到也可以使用支持分区MP的其他OS。OS230支持表示各种特权级别的分层。MPL 240是其上运行OS 230内核的最高特权级。LPL级别250是其中运行用户应用或程序的最低特权级。在一个实施例中,MPL 240和LPL 250分别对应于Microsoft Windows Server 2003 OS中的内核模式和用户模式。
OS 230具有驱动程序260、库285、以及称为应用程序280的应用程序或OS线程。驱动程序260在OS 230启动时由OS 230发起。随后,驱动程序260发起N个执行程序2701至270N,每个执行程序用于N个RT核心2201至220N中的每个核。每个N个RT核心2201至220N都具有自己的执行程序实例。也可以为所有的RT核发起单个执行程序。驱动程序260和N个执行程序2701至270N在MPL 240中操作。应用程序280则在LPL 250中由用户280发起。它载入库285。应用程序280随后请求在RT核290k上创建RT线程,诸如RT线程290k。如有需要,N个RT核心2201至220N中的每一个都可以代表OS应用程序执行RT线程。没有执行RT线程的RT核被认为是空闲的。在本发明的其它实施例中,单个RT核可以代表单个OS应用程序执行若干RT线程,或者代表若干OS应用程序执行若干RT线程。OS 230没有在核心2201至220N上操作。这样,执行程序2701至270N和RT线程2901至290N因受核处理器支持而在MPL 240和LPL 250处操作。
图3是根据本发明一个实施例示出RT线程服务的组件交互的图示。
如上所述,驱动程序260和执行程序270在MPL 240中运行。应用程序280、库285和RT线程290k在LPL 250中运行。这些组件共同形成用于隔离的SMP系统的多核RT线程服务。
驱动程序260在启动时在每个可用核220k上发起执行程序270k。它可以发起、联结和删除RT线程。它可以钉住分配给RT线程或应用程序的存储器区域或者取消该区域的钉住。它还保持与所有执行程序的通信。
执行程序270k切换至RT线程290k或从其切换。换句话说,它分别执行在MPL 240和LPL 250之间任务的转换。它还执行异常处理和其他任务,诸如占先和信令。
库285是含有许多有用函数的动态链接库,从而执行与提供线程服务支持有关的多种任务。它代理来自主核210的驱动程序260的服务,包括发起和联结RT线程290k和存储器钉住。它还代理执行程序270k的服务,包括管理线程退出。此外,它还可以执行任何运行时间任务,诸如堆管理、调试打印以及同步。
应用程序280使用线程服务创建线程,这些线程在图2所示的RT核心或处理器2201至220N上运行。例如,它使用线程服务来创建RT线程290k。RT线程创建开始于来自OS 230内的应用程序280对库285的调用,以请求创建RT线程。该调用提供入口点(例如,函数名)和自变量。库285随后请求驱动程序260从N个RT核心2201至220N中分配RT核。驱动程序260通过N个RT核心2201至220N以确定或找出可用于创建线程的核。假设核k可用。驱动程序270随后被请求向下钉住RT线程正确操作所需的存储器页面。消息随后被发送给执行程序270k,以请求其在核220k上发起RT线程。执行程序270k随后创建RT线程290k
执行程序270k建立页面目录和表,从而作为应用程序280的虚拟地址空间一对一映射。它随后切换至LPL 250并跳至用户的入口点。当RT线程290k退出或者有外部事件(例如,中断)出现时,控制返回至执行程序270k。执行程序270k随后或者服务该事件并将控制返回给应用程序280,或者清除并发信号通知驱动程序260和库285该RT线程290k已完成执行。在RT线程290k执行期间出现的大多数可恢复异常可由执行程序270k处理,诸如在OS 230内完成对用户定义的处理程序的调用。
图4是示出根据本发明的一个实施例由RT线程共享的虚拟地址空间的图示。RT线程对虚拟地址空间的共享经由OS应用程序及其实时线程共享同一页面目录来实现。
主核210具有指向页面目录430的页面目录基寄存器(PDBR)415。核心2201至220N分别具有PDBR 4251至425N。主核210上的每个应用程序都具有自己的页面目录。页面目录是每个应用程序上下文的一部分,因而在上下文切换上保存并恢复。当RT线程被创建并执行时,关联核的PDBR则改变为发起应用程序的PDBR。可选地,核心2201至220N的PDBR可以指向父进程的页面目录的副本,该副本持有该父进程虚拟地址空间的子集。由此,该RT线程就与调用它的应用程序共享同一虚拟地址空间。
页面目录430含有根据应用程序此刻的物理存储器需求指向K个页面表4401至440K的指针。页面表4401至440K指向位于物理存储器450内相应的页面4601至460M
此外,还可以执行处理器钉住以确保由RT线程使用的应用程序页面不被OS存储器管理器所驱逐。这可以使用设置在OS内核中的API来实现。库285自动钉住执行RT线程290k所需的代码和数据段。经要求的锁定和分页可得到高效使用。
图5是示出根据本发明的一个实施例由执行程序执行的虚拟地址空间映射500的图示。映射500示出了执行程序270k的页面目录。所有的执行程序使用同一个页面目录。图5所示的执行程序的页面目录与图4所示的RT线程的页面目录不同。对RT线程页面目录的分配在关联核被分配给应用程序时进行。另一方面,执行程序页面目录可在该核尚未被分配时使用。映射500包括OS虚拟地址空间510、物理存储器地址空间520以及执行程序虚拟地址空间530。
执行程序代码作为驱动程序260的一部分被编译,因此被载入大于2千兆字节(2G)的线性地址。所有的动态分配都从OS系统堆中执行,这就确保所有的执行程序存储器都免受用户代码的侵占,而只能由内核模式代码访问。执行程序页面目录是OS系统(>2G)线性存储器的很小的、一对一子集。它可用于映射执行程序正确操作所需的结构。这些结构的示例是:执行程序代码和数据、全局描述符表(GDT)、中断描述符表(IDT)、先进可编程中断控制器(APIC)信息、大小合理的堆或缓冲区(例如,64K)、执行程序管理结构、消息缓冲区(例如,存储器管道)和栈。
OS虚拟地址空间510占据了由主核210提供的整个虚拟地址空间。它包括由驱动程序260、执行程序270k和执行程序存储器结构540占据的存储器区域。执行程序存储器结构540可以包括执行程序堆、GDT和IDT。物理存储器地址空间520包含由OS内的软件组件映射的存储器区域。所有的存储器分配都由主核210(图2)完成。对执行程序页面目录/页面表的映射则通过钉住页面并在随后将一对一的物理/线型复本从OS页面目录映射到执行程序页面目录。例如,驱动程序260可被映射至存储器区域550和552,执行程序270k可被映射至存储器区域560和562,而执行程序存储器结构540则可被映射至存储器区域570和572。执行程序虚拟地址空间530在一对一映射上对应于OS虚拟地址空间510。
图6是根据本发明一个实施例示出连续的RT线程事件的图示。这一连续的RT线程事件包括用户205、OS 230、驱动程序260、执行程序270k、应用程序280和RT线程290k。这些事件的顺序由时标A至L指示。
开始时,在时刻A,用户205引导系统,且OS 230被载入。在初始化之后,在时刻B,OS 230以内核模式发起驱动程序260。在时刻C,驱动程序260发起对所有隔离的核的执行程序270k。此刻,多核RT线程服务135向上并运行。在时刻D,在发起执行程序270k之后,用户205开始应用程序280,该应用程序280可以使用多核RT线程服务135。
在时刻E,应用程序280请求经由库285创建RT线程。于是就创建合适的结构并钉住所有相关的线性段。这一请求经由库285发送至驱动程序260。驱动程序260于是验证可用核存在。在时刻F,驱动程序260发送请求至可用核k上的执行程序270k,以请求执行程序270k引发(spawn)RT线程。在时刻G,执行程序270k在可用核220k上引发RT线程290K。RT线程290k随后在最低特权级250中运行。
在时刻H,应用程序280通过使用共享变量来发信号通知RT线程290k停止的方式来终止RT线程290K。在时刻I,应用程序280将RT线程290k联结至驱动程序260,以请求驱动程序260等待直到RT线程290k实际已停止。在时刻J,RT线程290k终止并经由库函数调用退出。控制随后转移至执行程序270k。在时刻K,执行程序270k通知驱动程序260该RT线程290k终止。在时刻L,驱动程序260发信号给应用程序280,以指示RT线程290k已被联结。驱动程序260解除对应用程序280的阻止以允许其接收RT线程退出状态并继续运行。此刻,应用程序280已经完成它对RT线程290k的使用。
图7是根据本发明一个实施例示出支持在多核环境中的RT线程服务的模块700的图示。模块700包括资源管理功能710、驱动程序-执行程序通信720、存储器钉住功能730和存储器钉住跟踪740。
资源管理功能710是基于记住RT核活动的机制。在一个实施例中,驱动程序维持两个列表。第一列表包括所有未分配的或自由的执行程序。第二列表包括为使用RT线程服务的每个用户应用程序分配的执行程序。在每次发起RT线程时,驱动程序在第一列表中找出可用执行程序,并将该执行程序移至第二列表。如果所有的执行程序都已分配,则驱动程序向调用应用程序返回错误。该列表由执行程序首部的指针所链接。无论什么时候,执行程序都刚好属于一个列表。使用这一列表结构,就可以实现额外的或者更为复杂的资源管理策略。
驱动程序-执行程序通信720在驱动程序和执行程序之间提供通信机制。在一个实施例中,该通信机制使用存储器管道。该管道可用循环存储器缓冲区来实现。执行程序和驱动程序具有它们自己的管道来作为引入消息队列。发送器找到合适的消息队列,将消息写入该队列,并发信号通知接受器读取其队列。每个存储器管道都具有锁,以防止多个消息被同时写入队列。
存储器钉住功能730向RT线程分配并钉住存储器区域。完成上述功能以确保OS虚拟存储器管理器不会使由RT线程使用的页面出页面。可通过驱动程序使用OS内核的存储器管理器服务来向下钉住这些页面。在一个实施例中,库自动钉住执行RT线程所需的代码和数据段。在最为简单的方法中,进程930在载入该库之时锁定所有的代码和数据段,包括堆缓冲区。这一简单方法会导致为每个应用程序钉住大量的存储器。更为高效的方法则可使用按要求的锁定和分页。
执行存储器钉住跟踪功能740,以便向OS主存进程提供存储器钉住服务。驱动程序不依赖用户应用程序,以在退出前释放其所有钉住的区域。通过跟踪钉住的区域,驱动程序如有需要,可以执行任何清除。跟踪可通过使用单链接列表结构来执行。在一个实施例中,使用Windows 2003 OS中的存储器描述符列表(MDL)。在这一单个列表上记录有来自使用RT线程服务的所有应用程序的所有被钉住的存储器区域。对列表的访问可由互斥机制保护。当驱动程序260从库接收RT线程被终止的通知时,该功能740就解除对存储器区域的钉住。这可以通过遍历被钉住缓冲区的列表并解除对分配给已终止RT线程的任何缓冲区的钉住而实现。
本发明的实施例为分区的多处理器系统提供有效的RT线程服务。该线程服务向用户提供在专用和可预测子系统上运行要求实时性能(例如,媒体编码)的强计算的能力,而免受OS调度程序的任意性和不确定性性质的影响。应用程序和RT线程通过多线程协作模型进行协作,并通过同一虚拟地址空间进行通信,从而能够方便地开发新的应用程序并能方便地移动现有的应用程序。更具体地,不再需要预先确定在OS上执行代码的哪部分,而在RT核或处理器上执行哪部分。计算可以在两边完成,从而允许OS线程在其备用循环内提供额外的计算能力。此外,相同的代码无需重新编译,就能够在OS和RT核两者上运行。最后,不存在封装这一复杂因素。不再需要为两个OS编译同一程序,或编译两个程序,每个OS使用一个。RT线程服务仅需要标准的OS(例如,Windows)开发环境。
尽管根据几个实施例描述了本发明,但本领域的技术人员将意识到本发明不限于所述的实施例,而是可用所附权利要求的精神和范围内的修改和改变来实施本发明因此将说明书视为说明性的而不是限制性的。

Claims (20)

1.一种方法,包括:
在操作系统(OS)的最高特权级(MPL)下,在多核环境内的实时(RT)核上发起执行程序,所述RT核与所述OS隔离;以及
在最低特权级(LPL)下在所述RT核上使用库为应用程序创建RT线程,所述库由所述应用程序载入,所述RT线程与所述应用程序共享虚拟地址空间。
2.如权利要求1所述的方法,其特征在于,创建所述RT线程包括:
接收来自所述库的创建请求,所述库传递来自所述应用程序的所述创建请求;
验证所述RT核可用;以及
将引发请求发送给所述执行程序,所述执行程序在所述RT核上引发所述RT线程。
3.如权利要求1所述的方法,其特征在于,还包括:
改变所述RT线程的页面目录基寄存器(PDBR)以指向所述OS内的父进程的页面目录,或者指向持有所述父进程虚拟地址空间子集的所述页面目录的副本。
4.如权利要求3所述的方法,其特征在于,还包括:
与所述应用程序通信;
管理由所述RT线程使用的存储器区域的钉住;以及
经由共享的存储器缓冲区与所述执行程序通信。
5.如权利要求4所述的方法,其特征在于,与所述应用程序通信包括:
接收来自所述应用程序的等待请求,以等待所述RT线程停止;
接收来自所述执行程序的信号,所述信号指示所述RT线程已停止;以及
解除对所述应用程序的阻止,以允许所述应用程序接收来自所述RT线程的退出状态。
6.如权利要求4所述的方法,其特征在于,管理所述存储器区域的钉住包括:钉住给所述RT线程的存储器区域;
跟踪所述存储器区域;
从所述库接收所述RT线程终止的通知;以及
解除对所述存储器区域的钉住。
7.如权利要求1所述的方法,其特征在于,还包括:
管理在所述多核环境上的资源。
8.一种制品,包括:
一种包括数据的机器可访问介质,当所述数据由机器访问时,使得所述机器执行如下动作:
在操作系统(OS)的最高特权级(MPL)下,在多核环境内的实时(RT)核上发起执行程序,所述RT核与所述OS隔离;以及
在最低特权级(LPL)下在所述RT核上使用库为应用程序创建RT线程,所述库由所述应用程序载入,所述RT线程与所述应用程序共享虚拟地址空间。
9.如权利要求8所述的制品,其特征在于,所述使得所述机器执行创建所述RT线程的数据包括在由机器访问时,使得所述机器执行如下操作的数据:
接收来自所述库的创建请求,所述库传递来自所述应用程序的所述创建请求;
验证所述RT核可用;以及
将引发请求发送给所述执行程序,所述执行程序在所述RT核上引发所述RT线程。
10.如权利要求8所述的制品,其特征在于,所述数据还包括在由机器访问时,使得所述机器执行如下操作的数据:
改变所述RT线程的页面目录基寄存器(PDBR)以指向所述OS内的父进程的页面目录,或者指向持有所述父进程虚拟地址空间子集的所述页面目录的副本。
11.如权利要求10所述的制品,其特征在于,所述数据还包括在由机器访问时,使得所述机器执行如下操作的数据:
与所述应用程序通信;
管理由所述RT线程使用的存储器区域的钉住;以及
经由共享的存储器缓冲区与所述执行程序通信。
12.如权利要求11所述的制品,其特征在于,所述使得所述机器执行与所述应用程序通信的数据包括在由机器访问时,使得所述机器执行如下操作的数据:
接收来自所述应用程序的等待请求,以等待所述RT线程停止;
接收来自所述执行程序的信号,所述信号指示所述RT线程已停止;以及
解除对所述应用程序的阻止,以允许所述应用程序接收来自所述RT线程的退出状态。
13.如权利要求11所述的制品,其特征在于,所述使得所述机器执行管理所述存储器区域的钉住的数据包括在由机器访问时,使得所述机器执行如下操作的数据:
钉住给所述RT线程的存储器区域;
跟踪所述存储器区域;
从所述库接收所述RT线程终止的通知;以及
解除对所述存储器区域的钉住。
14.如权利要求8所述的制品,其特征在于,还包括在由机器访问时,使得所述机器执行如下操作的数据:
管理在所述多核环境上的资源。
15.一种系统,包括:
具有操作系统(OS)的主核,所述OS支持最高特权级和最低特权级;
与所述OS隔离的多个核,所述核支持所述最高和最低特权级;
在所述最低特权级下运行的应用程序;以及
允许所述应用程序在隔离的核上创建实时(RT)线程的RT线程服务,所述RT线程服务包括:
在所述最高特权级下运行并由所述OS发起的驱动程序,所述驱动程
序控制所述RT线程,
由所述驱动程序在所述隔离的核上发起并在所述最高特权级下运行
以引发所述RT线程的执行程序,所述RT线程与所述应用程序共享虚拟
地址空间,以及
由在所述最低特权级下运行的所述应用程序载入的库。
16.如权利要求15所述的系统,其特征在于,所述驱动器验证所述隔离的核是可用的并且在接收到来自所述库的创建请求时,将引发请求发送给所述可用隔离核上的所述执行程序。
17.如权利要求15所述的系统,其特征在于,所述执行程序改变所述RT线程的页面目录基寄存器(PDBR)以指向所述OS内的父进程的页面目录,或者指向持有所述父进程虚拟地址空间子集的所述页面目录的副本。
18.如权利要求15所述的系统,其特征在于,所述驱动程序解除对所述应用程序的阻止,以允许所述应用程序在从所述执行程序接收指示所述RT线程已停止的信号之后,接收来自所述RT线程的退出状态。
19.如权利要求15所述的系统,其特征在于,所述执行程序钉住给所述RT线程的存储器区域,跟踪所述存储器区域,并且从所述库接收到所述RT线程终止的通知之后解除对所述存储器区域的钉住。
20.如权利要求15所述的系统,其特征在于,所述驱动程序管理在所述多核环境上的资源。
CN200680034530.1A 2005-09-21 2006-09-12 用于向多核环境中的应用程序提供实时线程服务的方法、装置 Expired - Fee Related CN101268445B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/231,697 US7827551B2 (en) 2005-09-21 2005-09-21 Real-time threading service for partitioned multiprocessor systems
US11/231,697 2005-09-21
PCT/US2006/035961 WO2007038011A1 (en) 2005-09-21 2006-09-12 Real-time threading service for partitioned multiprocessor systems

Publications (2)

Publication Number Publication Date
CN101268445A true CN101268445A (zh) 2008-09-17
CN101268445B CN101268445B (zh) 2012-12-05

Family

ID=37460921

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680034530.1A Expired - Fee Related CN101268445B (zh) 2005-09-21 2006-09-12 用于向多核环境中的应用程序提供实时线程服务的方法、装置

Country Status (4)

Country Link
US (1) US7827551B2 (zh)
EP (1) EP1927049A1 (zh)
CN (1) CN101268445B (zh)
WO (1) WO2007038011A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744342A (zh) * 2014-01-22 2014-04-23 大连理工计算机控制工程有限公司 一种基于双核处理器的pac实时控制系统
CN107577185A (zh) * 2017-09-14 2018-01-12 浙江国自机器人技术有限公司 一种任务执行方法及基于多核处理器的控制器
CN108132834A (zh) * 2017-12-08 2018-06-08 西安交通大学 多级共享高速缓冲存储器架构下的任务分配方法和系统
CN108153597A (zh) * 2017-12-22 2018-06-12 西安烽火电子科技有限责任公司 一种linux设备管理模型及方法
CN112667420A (zh) * 2021-01-18 2021-04-16 科东(广州)软件科技有限公司 实现异构系统内部通信的方法、装置、设备及存储介质

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
WO2009010982A2 (en) * 2007-07-18 2009-01-22 Feldman, Moshe Software for a real-time infrastructure
US8006254B2 (en) * 2007-10-04 2011-08-23 International Business Machines Corporation Bequeathing privilege to a dynamically loaded module
US8417848B2 (en) * 2007-11-20 2013-04-09 Hangzhou H3C Technologies Co., Ltd. Method and apparatus for implementing multiple service processing functions
US8800002B2 (en) * 2008-02-18 2014-08-05 Microsoft Corporation Inter-process networking for many-core operating systems
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8336056B1 (en) 2009-12-22 2012-12-18 Gadir Omar M A Multi-threaded system for data management
CA2693938A1 (en) * 2010-02-22 2011-08-22 Ibm Canada Limited - Ibm Canada Limitee Software object lock management using observations
US8438341B2 (en) 2010-06-16 2013-05-07 International Business Machines Corporation Common memory programming
US9420049B1 (en) 2010-06-30 2016-08-16 F5 Networks, Inc. Client side human user indicator
US9503375B1 (en) 2010-06-30 2016-11-22 F5 Networks, Inc. Methods for managing traffic in a multi-service environment and devices thereof
WO2012158854A1 (en) 2011-05-16 2012-11-22 F5 Networks, Inc. A method for load balancing of requests' processing of diameter servers
US8875146B2 (en) 2011-08-01 2014-10-28 Honeywell International Inc. Systems and methods for bounding processing times on multiple processing units
US8621473B2 (en) 2011-08-01 2013-12-31 Honeywell International Inc. Constrained rate monotonic analysis and scheduling
US8954492B1 (en) 2011-11-30 2015-02-10 F5 Networks, Inc. Methods for inlining content externally referenced in a web page prior to providing the web page to a requestor and devices thereof
US9207977B2 (en) 2012-02-06 2015-12-08 Honeywell International Inc. Systems and methods for task grouping on multi-processors
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
EP2853074B1 (en) 2012-04-27 2021-03-24 F5 Networks, Inc Methods for optimizing service of content requests and devices thereof
US9286116B2 (en) 2012-07-06 2016-03-15 Microsoft Technology Licensing, Llc Multiple core real-time task execution
US20140095847A1 (en) * 2012-09-28 2014-04-03 Doron Orenstein Instruction and highly efficient micro-architecture to enable instant context switch for user-level threading
US10033837B1 (en) 2012-09-29 2018-07-24 F5 Networks, Inc. System and method for utilizing a data reducing module for dictionary compression of encoded data
US9612868B2 (en) 2012-10-31 2017-04-04 Honeywell International Inc. Systems and methods generating inter-group and intra-group execution schedules for instruction entity allocation and scheduling on multi-processors
US9578090B1 (en) 2012-11-07 2017-02-21 F5 Networks, Inc. Methods for provisioning application delivery service and devices thereof
US9497614B1 (en) 2013-02-28 2016-11-15 F5 Networks, Inc. National traffic steering device for a better control of a specific wireless/LTE network
US9288163B2 (en) * 2013-03-15 2016-03-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Low-latency packet receive method for networking devices
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
CN105138360A (zh) * 2015-08-19 2015-12-09 惠州Tcl移动通信有限公司 一种可穿戴设备的系统函数调用方法及其可穿戴设备
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
CN105718320B (zh) * 2016-01-18 2020-11-06 华为技术有限公司 一种时钟任务处理方法、装置及设备
US10331897B2 (en) * 2016-01-20 2019-06-25 Oracle International Corporation System and method for protecting plain text scripting language programs in a mainframe rehosting platform
US10691712B2 (en) 2016-01-20 2020-06-23 Oracle International Corporation System and method for merging a mainframe data file to a database table for use by a mainframe rehosting platform
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US10970277B2 (en) 2016-01-20 2021-04-06 Oracle International Corporation System and method for dynamic conversion of database accessing scripts during runtime in a mainframe rehosting platform
US10379914B2 (en) 2016-01-20 2019-08-13 Oracle International Corporation System and method for achieving specific behaviors by intercepting file access calls in a mainframe rehosting platform
WO2017155523A1 (en) * 2016-03-09 2017-09-14 Hewlett Packard Enterprise Development Lp Server virtual address space
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11042471B2 (en) 2017-08-25 2021-06-22 Oracle International Corporation System and method for providing a test manager for use with a mainframe rehosting platform
US10884785B2 (en) * 2018-11-29 2021-01-05 International Business Machines Corporation Precise accounting of processor time for multi-threaded time-critical applications

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515538A (en) 1992-05-29 1996-05-07 Sun Microsystems, Inc. Apparatus and method for interrupt handling in a multi-threaded operating system kernel
US6801943B1 (en) * 1999-04-30 2004-10-05 Honeywell International Inc. Network scheduler for real time applications
US6662289B1 (en) * 2001-05-15 2003-12-09 Hewlett-Packard Development Company, Lp. Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems
US6904490B2 (en) * 2002-10-10 2005-06-07 International Business Machines Corporation Method and system of managing virtualized physical memory in a multi-processor system
US20040199919A1 (en) * 2003-04-04 2004-10-07 Tovinkere Vasanth R. Methods and apparatus for optimal OpenMP application performance on Hyper-Threading processors

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744342A (zh) * 2014-01-22 2014-04-23 大连理工计算机控制工程有限公司 一种基于双核处理器的pac实时控制系统
CN103744342B (zh) * 2014-01-22 2016-09-14 大连理工计算机控制工程有限公司 一种基于双核处理器的pac实时控制系统
CN107577185A (zh) * 2017-09-14 2018-01-12 浙江国自机器人技术有限公司 一种任务执行方法及基于多核处理器的控制器
CN107577185B (zh) * 2017-09-14 2019-10-25 浙江国自机器人技术有限公司 一种任务执行方法及基于多核处理器的控制器
CN108132834A (zh) * 2017-12-08 2018-06-08 西安交通大学 多级共享高速缓冲存储器架构下的任务分配方法和系统
CN108132834B (zh) * 2017-12-08 2020-08-18 西安交通大学 多级共享高速缓冲存储器架构下的任务分配方法和系统
CN108153597A (zh) * 2017-12-22 2018-06-12 西安烽火电子科技有限责任公司 一种linux设备管理模型及方法
CN108153597B (zh) * 2017-12-22 2021-08-03 西安烽火电子科技有限责任公司 一种linux设备管理装置及方法
CN112667420A (zh) * 2021-01-18 2021-04-16 科东(广州)软件科技有限公司 实现异构系统内部通信的方法、装置、设备及存储介质
CN112667420B (zh) * 2021-01-18 2022-03-25 科东(广州)软件科技有限公司 实现异构系统内部通信的方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US7827551B2 (en) 2010-11-02
WO2007038011A1 (en) 2007-04-05
CN101268445B (zh) 2012-12-05
EP1927049A1 (en) 2008-06-04
US20070067771A1 (en) 2007-03-22

Similar Documents

Publication Publication Date Title
CN101268445B (zh) 用于向多核环境中的应用程序提供实时线程服务的方法、装置
CN101627377B (zh) 从操作系统中抽象出操作环境
CN101233489B (zh) 自适应进程分派的方法和系统
CN109522087B (zh) 基于国产申威处理器的虚拟机构建方法和系统
CN101364189B (zh) 在操作系统协助下实现运行时间处理器迁移的方法和装置
CN102103517B (zh) 高效嵌套虚拟化
CN101911012B (zh) 执行配置虚拟拓扑变化
CN101038543B (zh) 用于持续性用户级线程的设备、系统和方法
US3805247A (en) Description driven microprogrammable multiprocessor system
CN103064796B (zh) 虚拟机内存的共享方法与计算机系统
CN103309786A (zh) 用于在非可抢占式图形处理单元上交互调试的方法和装置
CN101243396B (zh) 用于在虚拟化环境中支持通用串行总线装置的方法和设备
CN105830026A (zh) 用于调度来自虚拟机的图形处理单元工作负荷的装置和方法
CN104050010A (zh) 在协同设计的处理器中创建隔离执行环境
US20140237151A1 (en) Determining a virtual interrupt source number from a physical interrupt source number
CN104094224A (zh) 超虚拟化非对称gpu处理器
CN103782276A (zh) 从原始虚拟机到目的地虚拟机的操作转移
CN114371907A (zh) 一种芯片系统、处理虚拟中断的方法及相应装置
CN101154202A (zh) 管理多处理器计算机系统中的系统管理中断的系统和方法
CN105556473A (zh) 一种i/o任务处理的方法、设备和系统
CN102609324B (zh) 一种虚拟机死锁后的恢复方法、装置及系统
CN102047217A (zh) 重新获取对执行外部执行上下文的处理资源的控制
CN205103599U (zh) 一种跨境贸易bpo应用云终端装置
CN105677481A (zh) 一种数据处理方法、系统及电子设备
CN103631648A (zh) 一种任务处理方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121205

Termination date: 20180912

CF01 Termination of patent right due to non-payment of annual fee