关于程序代码转换的管理进程文件系统的方法及设备的制作方法

文档序号:6456051阅读:156来源:国知局
专利名称:关于程序代码转换的管理进程文件系统的方法及设备的制作方法
技术领域
本发明主要涉及计算机及计算机软件的领域,更具体地讲,涉及可用在 例如转换? 1用进程文件系统的程序代码的代码转换器、仿真器及加速器中的 程序代码转换方法及设备。
背景技术
在整个嵌入式及非嵌入式CPU市场中常见的有指令集架构(ISA),其含 有多种软件,能被"加速,,以提高性能或被"转换,,至各种可能的处理器以 提供更好的成本/性能效益,只要这些处理器能够透明地存取相关的软件即 可。然而,目前主要的CPU架构在时间上锁定其ISA而无法提高性能与扩大 市场,因此"合成CPU,,的共同架构会有帮助。
常希望能将针对第一类型的计算机处理器("主体"(subject)处理器) 而写的程序代码在第二类型的处理器("目标"处理器)上运行。于此,仿真 器或转换器用来执行程序代码的转换,使得主体程序可在目标处理器上运行。 第WO00/22521号PCT申请揭露程序代码转换方法及设备以促进此类加速、 转换及共同架构的能力,这些将为本发明的实施例所利用。
在某些操作系统中,特别包括类似Unix的操作系统,会提供进程文件系 统。可由一个进程使用进程文件系统以存取关于其它进程及关于处理器所提 供的硬件环境的信息。例如,来自太阳微系统公司(Sun Microsystems Inc.) 的所罗斯(Solaris)操作系统提供进程文件系统,其包含在称为/proc的目录 中的虚拟文件系统。在进程运行时由操作系统动态建立/proc的内容与结构, 通常为每一个现存的进程产生并维持一个子目录。
提供如上所述的进程文件系统可能会使程序代码转换复杂化。举三个明 显的例子。第一,若目标操作系统不提供进程文件系统,但主体代码引用进 程文件系统,则会有固有不兼容性。
第二,若目标操作系统确实提供进程文件系统,其配置与操作仍可能会
与主体代码所引用的进程文件系统不兼容。第三,若目标操作系统确实提供兼容的进程文件系统,则可能难以区分 转换器进程与目标进程文件系统中的其它进程。
允许关于主体进程的信息整合至目标操作系统的进程文件系统的一种作 法是变更目标处理器的操作系统。变更目标操作系统可改变目标进程文件系
统建构与管理的方式,并且通过建立内核(kernel)模块并将其插入至目标操 作系统中来实现,或通过直接变更目标操作系统的源代码来实现。然而,变 更目标操作系统是难度很高的工作,且可能使目标操作系统变得不稳定。
提供关于主体程序代码的转换管理进程文件系统的方法。可配置能将主 体代码转换为目标代码的转换器,而得以识别出主体程序中对主体进程文件
系统的引用,并产生目标代码。所产生的目标代码能使转换器以与主体处理 器的预期行为 一致的方式引用并提供进程信息。
本发明的优选实施例使转换器能方便地管理主体进程信息,而不需变更 目标操作系统。这可避免目标操作系统的不稳定,并允许转换器在转换期间 正确地处理潜在不稳定的主体进程的行为。
本发明可由此改善进行程序代码转换时的性能。

发明内容
根据本发明,提供在权利要求中所提出的设备及方法。根据从属权利要 求以及以下描述,本发明的优选特征将会清楚。
在一个示例性方面中,提供一种计算机设备,包含目标处理器以及转 换器进程,响应于接收的在主体处理器上执行的主体代码指令建立该转换器 进程;其中,该转换器进程配置成(a)以有关建立的转换器进程的信息填 充进程数据结构,以及(b)响应于接收的主体代码中对主体进程文件系统中 的信息的引用而引用步骤(a)的进程数据结构。
该转换器进程可配置成响应于接收的各主体代码指令建立另外的转换器 进程,其中,当在主体处理器上执行该主体代码指令时,该主体代码指令将 建立主体进程。多个转换器进程的各转换器进程可填充及引用共同的进程数 据结构。进程数据结构适当地包含下列之一或两者(a)各转换器进程可访 问的目录,以及(b)各转换器进程可访问的共享的内存区域。该计算机设备 可进一步包含审核器,所述审核器配置成检查其信息存在于进程数据结构中 的转换器进程的状态,并从该进程数据结构移除关于不再运行的转换器进程
6的信息。
在另 一示例性方面中,提供一种关于程序代码转换的管理进程文件系统 的方法,该程序代码转换将在主体处理器上执行的主体代码转换成在目标处 理器上执行的目标代码,该方法包含下列步骤(a)响应于接收的主体代码 指令建立转换器进程,其中,当在主体处理器上执行该主体代码指令时,该 主体代码指令将建立主体进程;(b)以关于响应于接收的主体代码而建立的
一个或多个转换器进程的信息填充转换器进程可访问的进程数据结构;以及
(c)响应于在接收的主体代码中对主体进程文件系统中的信息的引用而引用
步骤(b)中填充的数据结构。
该方法可进一步包含下列步骤检查其信息存储于该进程数据结构中的 进程的状态,以及从该进程数据结构移除关于不再运行的转换器进程的信息, 例如,周期性地执行检查其信息存储于该数据结构中的进程的状态。该方法 可进一步包含下列步骤(d)通过记录已对进程数据结构中的信息作出引用 的转换器进程的识别符并记录其信息已被引用的转换器进程的识别符,来记 录该引用。该方法可进一步包含下列步骤当其信息被引用的转换器进程不 再运行时从该进程数据结构移除于步骤(d)所记录的数据。
在另一方面中,提供一种计算机可读介质,其上记录有可由计算机实施 以执行关于从在主体处理器上执行的主体代码转换成在目标处理器上执行的 目标代码的程序代码转换的管理进程文件系统的方法的指令,该方法包含下 列步骤(a)响应于接收的主体代码指令建立转换器进程,其中,当在主体 处理器上执行该主体代码指令时,该主体代码指令将建立主体进程;(b)以 关于响应于接收的主体代码而建立的 一 个或多个转换器进程的信息填充转换 器进程可访问的进程数据结构;以及(c)响应于在接收的主体代码中对主体 进程文件系统中的信息的引用而引用步骤(b)中填充的数据结构。
在另一方面中,提供一种转换器设备,配置成接收在主体处理器上执行
成(a)以关于响应于接收的主体代码而建立的一个或多个转换器进程的信 息填充进程数据结构,以及(b)响应于在接收的主体代码中对主体进程文件 系统中的信息的引用而引用步骤(a)的进程数据结构。
提供依照根据本发明的用于程序代码转换的改良架构的各种实施例可实 现的各种方面及优点的总结,作为帮助本领域技术人员更迅速理解本发明的详细讨论的介绍,因此并不意图以任何方式限制权利要求的范畴。


包含在此说明书中并构成说明书的一部分的附图示出目前较佳实施例, 并如下描述
图1为示出本发明实施例可应用于其中的设备的方框图2为本发明实施例所利用的转换器单元的示意图3为示出本发明实施例所利用的设备的方框图4为示出本发明示例实施例所利用的通讯信道的示意图;以及
图5为示出根据本发明示例实施例的管理进程文件系统的方法的示意图。
具体实施例方式
明人认为最佳的实施本发明的模式。然而,对本领域技术人员而言各种变更 是显而易见的,因为已在此特别限定了本发明的主要原则以提供改善的程序 代码转换方法和设备。
参照图1,主体程序17意图在具有主体处理器3的主体运算平台1上执 行。然而,目标运算平台10用来经由执行程序代码转换的转换器单元19执 行主体程序17。转换器单元19执行从主体代码17至目标代码21的代码转 换,使得目标代码21可在目标运算平台10上执行。
如本领域技术人员所熟悉地,主体处理器3具有一组主体寄存器5。主 体内存8保持主体代码17及主体操作系统2等等。类似地,图1的示例目标 运算平台10包含具有多个目标寄存器15的目标处理器13以及内存18,该 内存18存储多个运算组件,包括目标操作系统20、主体代码17、转换器代 码19及转换的目标代码21。目标运算平台IO通常为应用微处理器之计算机 或其它适合的计算机。
在一个实施例中,转换器代码19为最佳化或非最佳化地将一个主体指令 集架构(ISA)的主体代码转换成另一 ISA的转换的目标代码的仿真器。在 另一实施例中,转换器19作为加速器,用于执行程序代码最佳化而将主体代 码转换成目标代码。
8转换器代码19为实现转换器的源代码的适当编译的版本,并与操作系统
20—同在目标处理器13上运行。可理解到图1中所示的结构仅为示例性的, 例如,根据实施例的软件、方法及进程可以以驻留在操作系统20之内或之下 的代码来实现。主体代码17、转换器代码19、操作系统20及内存18的存储 机制可以为本领域技术人员已知的任何类型。
在根据图l的设备中,在运行期间,动态执行程序代码转换,以在目标 代码21运行的同时在目标架构IO上执行。即,转换器19与转换的目标代码 21并行运行。经过转换器19运行目标代码17会涉及以交错的方式执行的两 种不同的代码转换器代码19及目标代码21。因此,根据存储的转换的程 序的主体代码17,在运行期间由转换器代码19来产生目标代码21。
在一个实施例中,转换器单元19仿真主体架构1的相关部分,如主体处 理器3,尤其是主体寄存器5,同时实际上在目标处理器13上将主体程序17 作为目标代码21执行。在该优选实施例中,提供至少一个全局寄存器库27 (亦称为全局寄存器组27或抽象寄存器组27)。在多处理器环境中,根据主 体处理器的架构可随意提供多个的抽象寄存器组27。由转换器19及目标代 码21的组件来提供主体状态的表示。即,转换器19在各种明确的编程语言 装置(如变量及/或对象)中存储主体状态。相反地,转换的目标代码21在 目标寄存器15及内存位置18 (它们由目标代码21的目标指令操纵)中隐含 地提供主体处理器状态。例如,全局寄存器库27的低级表示仅为分配的内存 区域。然而,在转换器19的源代码中,全局寄存器库27为可以以较高级存 取并操纵的数据数组或对象。
术语"基本块,,为本领域技术人员所知。基本块为具有确切进入点与确 切离开点的一段代码,其将块代码限制于单一控制路径。因此,基本块为控 制流的有效基础单位。适当地,转换器19将主体代码17分成多个基本块,
其中各基本块为在单一进入点的第一个指令到单一离开点的最后一个指令 (如跳转、调用或分支指令)之间的顺序指令集。转换器19可选择这些基本 块之一 (块模式)或选择一组基本块(组块模式)。组块适当地包含被视为单 个单位的两个或更多个基本块。此外,转换器可形成等同块(iso-blocks),其 表示相同的主体代码的基本块,但进入条件不同。
在优选实施例中,根据主体指令序列产生中间表示(IR)树,作为从原 始主体程序17产生目标代码21的进程的一部分。IR树为主体程序所计算的表达及执行的操作的抽象表示。之后,根据IR树产生目标代码21。 IR节点
的集合实际上为有向无环图(DAG),但常俗称为"树"。
如本领域技术人员可理解地,在一个实施例中,使用如C+十的面向对象 的编程语言来实现转换器19。例如,将IR节点实现为C十+对象,将对其它 节点的引用实现为对与那些其它节点相应的C+十对象的C+十引用。因此,将 IR树实现为IR节点对象的集合,含有各种相互的引用。
此外,在目前所讨论的实施例中,IR产生使用一组抽象寄存器定义,其 对应于主体程序17意图于其上运行的主体架构的特定特征。例如,对于主体 架构上的各物理寄存器(即图1的物理寄存器5)存在唯一的抽象寄存器定 义。因此,转换器中的抽象寄存器定义可实现为含有对IR节点对象(即IR 树)的引用的C十+对象。所述一组抽象寄存器定义引用的所有IR树的集合称 为工作IR森林(因为"森林"含有多个抽象寄存器根,每个根引用一个IR 树)。这些IR树及其它进程适当地形成转换器19的一部分。
图2更详细描绘在目标运算平台IO上运行时的转换器19。如上所述, 转换器19的前端包括解码器单元191,其对主体程序17目前所需的区段解 码,以提供多个主体代码块171a、 171b、 171c (通常每个主体代码块含有主 体代码的一个基本块),并且还可提供与各主体块及其中所含的主体指令有关 的解码器信息172,其将协助转换器19的后续操作。在一些实施例中,在转 换器19的核心中的IR单元192从解码的主体指令产生中间表示(IR),并可 执行与中间表示有关的最佳化。作为转换器19后端一部分的编码器193产生 (植入)可由目标处理器13执行的目标代码21。在此简单的示例中,产生 三个目标代码块211a至211c,以在目标平台IO上执行与在主体平台1上执 行主体代码块171a至171c等效的工作。并且,编码器193可针对一些或全 部的目标代码块211a至211c产生头部代码和/或尾部代码212,代码212执 行例如设定目标块将操作于其中的环境以及适当时将控制传送给转换器19 的功能。
图3为描绘本发明实施例所利用的设备的更详细的示意图。在图3中所 示的示例中,转换器19配置成执行Solaris至Linux的转换。然而,将于后详 述,本发明还可用在针对最佳化与加速的目的而执行的转换,例如从Linux 至Linux或Solaris至Solaris的4争4灸。
在图3中所示的Solaris至Linux的实施例中,目标处理器13包含进程
10文件系统20a作为目标操作系统20的一部分,但将于后详述,在主体代码17 对进程文件系统进行引用时并非绝对或的确一般地使用目标处理器13的进 程文件系统20a。
主体代码17包含第一主体可执行文件17a,其可转换成第一目标代码 21a。第一主体可执行文件17a含有若在主体处理器上执行则建立至少一个进 程的指令。当第一转换器进程19a遇到主体可执行文件17a中的建立进程的 指令时,在转换器进程19a可访问的进程数据结构190中产生相应的条目。
主体代码17可含当在主体处理器执行时会建立多于一个进程的指令。图 3还显示可第二转换器进程19b。第二转换器进程19b用于将第二主体可执行 文件17b转换成目标代码21b。
可在转换器进程工作之前通过主体代码的第一块初始化进程数据结构 190,或替代地当在主体代码的第一块中遇到第一主体代码指令时初始化进程 数据结构190。
在示例实施例中,进程数据结构190包含可访问在目标处理器13上运行 的转换器进程的目录。在其它示例实施例中,进程数据结构190可包含可访 问在目标处理器13上运行的转换器进程的共享内存区域。进程数据结构190 含有进程识别符。
转换器进程配置成识别主体代码17中与主体进程文件系统有关的特定 指令,并且仿真将由主体进程文件系统提供的所需功能。转换器进程使用进 程数据结构190来实现上述处理。
例如,主体可执行文件17a可请求在主体进程文件系统中具有条目的进 程的细节。当主体代码在主体处理器上运行时,该请求通常作为引用主体进 程文件系统中的信息的前驱被执行。
在主体处理器在Solaris下运行的示例实施例中,主体可执行文件17a可 调用函数
getdents (/proc/)
响应此指令,转换器进程19a配置成从进程数据结构190提供相应的信 息。进程数据结构190已被初始化并被填充有与各建立的主体进程有关的信 息。例如,转换器进程可建立目录/tmp/pds以包含进程信息,并且各转换器 进程可以以用于正被转换的各主体进程的进程识别符的形式向该目录填充进 程信息。为了方便,进程数据结构190可配置成使得存储在进程数据结构中的进 程识别符直接对应于主体代码进程识别符。在其它示例实施例中,进程数据 结构包含用于各个进程的文件,该文件包含进程识别符以及与该进程有关的 信息。
在此示例中的转换器进程19a可接着执行目标函数
getdents (/tmp/pds),其将从进程数据结构返回相关的进程识别符。
转换器进程针对各进程在目录/tmp/pds中建立通讯套接字。为了方便,转换 器进程配置成将对应于相关的进程识别符的名字分配给每一个套接字。
一旦获得相关的进程识别符,主体代码17a就可能引用一个进程。例如, 转换器进程19a可能会遇到主体指令,例如
open (/proc/ {process—identifier}/ctl)
其中,{process—identifier}为主体可执行文件17a预期运行的进程的识别 符。在示例实施例中,{process—identifier)可为由第二转换器进程19b转换的 进程的识别符。若例如遇到并如上所述处置先前主体代码getdents (/proc/) 指令,则主体代码17可预期运行进程。
转换器进程识别出open (开启)指令与/proc进程文件系统有关,并引用 进程数据结构190来处置此指令。然而,在尝试访问进程数据结构190之前, 在示例实施例中,转换器进程19a配置成验证将^C引用的进程仍在运行中。
转换器进程19a无法控制遇到主体getdents (/proc/)指令以及引用响应 于先前getdents (/proc/)指令而提供的信息的主体指令之间的时间段。此外, 当遇到引用主体进程的主体指令时,转换器进程19a无法依赖进程数据结构 190中识别出的主体进程仍在运行中。
例如,在进程数据结构190中识别出的进程可能在提供其进程识别符之 后意外崩溃。因此,在转换器进程19a根据进程凄史据结构190取得进程识别 符列表以及后续使用识别符之间的时间段中,进程识别符列表可能变为过期。
针对在主体代码17中每一个对另 一进程的引用,转换器进程还可配置成 验证所引用的进程仍在运行中。在示例实施例中,转换器进程19a可通过检 查进程数据结构190中的进程的套接字来执行此验证。
延续上述示例,转换器进程19a配置成在继续下一主体指令之前,验证 叩en指令所引用的进程仍在运行中。 一旦开启所引用的进程,主体代码就可
12接着执行另外的工作,如停止进程。此操作的典型主体代码指令为 write ( fd, PCSTOP );其中,fd为识别涉及的进程的文件描述符。 同样地,为使转换器进程19a正确地仿真此主体指令,所涉及的进程必 须实际上正在运行中。因此,转换器进程19a配置成再次检查所涉及的进程 的状态。若所涉及的进程仍如预期般正在运行,则转换器进程19a可请求转 换所涉及的进程的转换器进程执行停止。
在示例实施例中,转换器进程19a请求转换器进程19b来执行停止。 虽然图3中所示的示例实施例包含引用进程数据结构190以控制在第二 转换器进程19b下运行的进程的第一转换器进程19a,但可能存在转换器进程 引用进程数据结构中与本身有关的数据的情况。例如,进程数据结构可包含 关于进程的内存映射的信息,并且转换器可遇到主体指令,例如
open( /proc/{process—identifier}/map ),其中,所涉及的{process—identifier} 为自引用。
若在任何时候,转换器实例确定所引用的进程意外停止运行,则转换器 进程可返回出错通知。由转换器提供的出错通知可以与当主体程序在主体处 理器上本地运行时预期的行为一致。
为了维持进程数据结构190中的信息,转换器进程可配置成审核存在于 进程数据结构190中的识别符。此审核可由一个转换器进程代表所有转换器 进程来执行,或可由各转换器进程执行以分散审核的工作量。替代地,可由 转换器外部的模块来执行审核,该模块操作以维持运行在目标处理器上的所 有转换器进程的进程数据结构。此种模块可包含图3中所示的审核器195。
审核器195可识别出在第一转换器进程下运行的进程正引用在第二转换 器进程下运行的进程。例如,当第一转换器进程遇到诸如write (fd, PCSTOP) 的主体指令时,审核器195记录在第一转换器进程下运行的进程正引用在第 二转换器进程下运行的进程。若write (写入)指令经由审核器195传输至第 二转换器进程,则可很方便地实现上述处理。便利地,审核器195可将这些 引用记录在进程数据结构190中。
可使用如上所述的套接字经由图4中所示的通路便利地传输转换器进 程、审核器及进程数据结构之间的讯息。
若所引用的进程仍在运行,则第二转换器进程从第 一转换器进程接收讯 息,并通知第一转换器进程确认所引用的进程已经正确地停止。也可经由审
13核器195便利地发送此通知。审核器195可接着删除在第一转换器进程下运 行的进程引用在第二转换器进程下运行的进程的记录。此记录的删除帮助转 换器进程及审核器正确处理现存的进程及不稳定的进程,将于后详述。
若当接收到引用时所引用的进程正在退出,则第二转换器进程丟弃传入 的讯息,并且不依照第一转换器进程的请求来执行停止。然而,第二转换器 进程配置成向审核器195通知进程的退出,即,进程将很快停止运行。这使 审核器接着执行以下处理从进程数据结构移除所停止的进程的细节、向第 一转换器进程通知所引用的进程已经退出;以及删除在第 一转换器进程下运 行的进程引用在第二转换器进程下运行的进程的记录。从审核器195传送至 第 一转换器进程的通知允许第 一转换器进程返回正确的出错讯息,向主体代 码确认不会执行write指令。
若在任何时间,所引用的进程崩溃,则不会接收到从第一转换器进程所 发送的讯息。第一转换器进程不知道所引用的进程已崩溃,并且一直等待来 自第二转换器进程的响应。在这种情况中,审核器195可为第一转换器进程 解决此问题。审核器195配置成检查在进程之间传送的讯息的记录,并且检 查记录在进程数据结构中的进程是否正在运行中。若审核器195检测到进程
不再运行,则^v进程数据结构移除关于该进程的信息,并且移除第一进程已
引用第二进程的记录。审核器195可接着将通知返回到第一转换器进程以确 认所引用的进程已不再运行。从审核器195传送给第一转换器进程的通知允 许第一转换器进程返回正确的出错讯息,向主体代码确认,因为所引用的进
程已不再运行,所以不会执行write指令。
审核器195可配置成周期性地检查进程数据结构中关于已不再运行的进 程的讯息的记录,并且移除这些陈旧的记录。审核器195可在进程间已传送 特定数量的讯息之后替代地或额外地执行此种检查。
为了帮助进一步了解本发明的实施例,提供图5的示例方法图。在步骤 SlOl,响应于接收的主体代码指令,当该指令在主体处理器上执行时建立转 换器进程。在步骤S102,已建立的转换器进程向可访问的进程数据结构填充 关于在步骤S101建立的转换器进程的信息。在步骤S103,响应于在接收的 主体代码中对主体进程文件系统中的信息的引用,引用在步骤S102所填充的
数据结构。
在此所述的示例实施例对于转换器中的程序代码的转换特别有效,其中,
14主体处理器与目标处理器不同。然而,即使主体处理器与目标处理器在具有 兼容的进程文件系统的操作系统下操作,例如当主体操作系统与目标操作系 统为相同类型时,仍可能期望转换器进程访问其它转换器进程。
在此所述的示例实施例建立并维持用于转换器进程的进程数据结构,该 进程数据结构可使得主体代码中对于主体进程文件系统的引用能被正确地处 置。通过在进程数据结构中周期性地检查进程状态并且移除,或者相反地标 记那些不再运行的进程,转换器能够正确地处理主体代码中对已经退出或崩 溃的进程的引用。
如前述,若将^^皮转换的主体代码含有潜在不稳定的进程,则本发明特别 有效。从转换器的角度来看,修改目标操作系统来区分目标进程文件系统中 的主体进程及目标进程不能容易地使不稳定的进程被正确地识别和处理。然 而,在此所述的示例实施例可便利地解决此问题。
示例实施例利用转换器来识别并处置在程序代码转换期间对主体进程文 件系统的引用。转换器提供方便的机制,以辨识并处置主体代码中与主体进 程文件系统有关的指令与函数调用。然而,应了解到在其它实施例中,可以 以其它方式实现用于识别及处置此种指令与函数调用的机制。例如,目标处 理器可设置有变更的系统目录或不执行所有的系统调用。当识别到相关指令 时,可利用任何适合的机制来打断主体程序代码的控制流。可接着将控制流 转换成适合实行本发明的代码。
除了在此所述的示例实施例之外,还可在分离的才莫块中实现本发明,如 与转换器一起使用的硬件模块等。模块可提供在此描述的与转换器进程有关 的功能,但以与执行程序代码转换的单元在逻辑上分离的实体方式存在。如 上所述,转换器的实施例对于在目标操作系统及主体操作系统不同的环境中 执行程序代码转换特别有效。转换器的实施例也对于为了加速或仿真目的而 执行程序代码转换特别有效,例如,通过使用进程数据结构实现从特定操作 系统的代码到在相同操作系统下运行但有另外的控制级的程序代码转换。
在此所用的术语"转换器"及"转换器进程"应被解读成涵盖可在代码 转换期间操作的相关设备,如仿真器、加速器或解析器。详言之,可使用在 此所引用的转换器进程。
本发明的设备及方法的不同特征在上述实施例中的每一 个中被分别描 述。然而,本发明发明人的全部意图在于,在此所述的各实施例的单独的方
15面可与在此所述的其它实施例结合。
在此所述的方法关于程序代码转换,并且对于提供主体程序代码至目标 代码的动态二元转换的运行期间的转换器特别有效。本发明还延伸至作为配 置成执行在此所界定的任何方法的计算机系统的一部分操作的转换器设备。 并且,本发明延伸至计算机可读取存储介质,其上记录有计算机可实现以执 行在此所界定的任何方法的指令。
本发明的至少一些实施例可单独用专门硬件建构而成,并且在此所用的 术语,如"模块"或"单元"可包括,但不限于硬件装置,如执行特定任务
的现场可编程门阵列(FPGA)或专用集成电路(ASIC)。替代地,本发明的 组件可配置为驻留在可寻址的存储介质上并且配置为在一个或多个处理器上 执行。因此,在一些实施例中,本发明的功能组件可包括,诸如软件组件、 面向对象的软件组件、类组件和任务组件的组件、进程、函数、属性、过程、 子程序、程序代码段、驱动程序、固件、微码、电路、数据、数据库、数据 结构、表、数组和变量。此外,虽然已参照在此讨论的组件、模块及单元来 描述优选实施例,但是这些功能组件可结合成更少的组件或分成额外的组件。
本领域技术人员将理解到,以上描述的示例实施例的各种应用和修改可 在不脱离本发明的范围与精神的情况下来配置。因此,应了解到,在权利要 求的范围之内,可以以在此特别描述之外的方式实施本发明。
虽然已显示并描述了 一些优选实施例,但是本领域技术人员将理解到, 在不脱离权利要求限定的本发明的范围的情况下,可进行各种改变和修改。
需要注意,与本说明书同时提交或者在本说明书之前提交的与本申请相 关的并且对公众检阅本说明书公开的所有印刷物和文档,其内容通过引用包 含于此。
本说明书(包括权利要求、摘要和附图)中公开的所有特征和/或所公开
少 一些这样的特征和/或步骤互相排斥的组合。
本说明书(包括权利要求、摘要和附图)中公开的每一特征可以被起到相 同、等同或相似目的的可选特征来替换,除非另外明确地声明。因此,除非 另外明确地声明,所公开的每一特征仅是一类等同或相似特征的一个示例。
本发明不限于前述实施例的细节。本发明扩展至本说明书(包括权利要
16合,或者扩展至所公开的任何方法或处理的步骤中的任何新颖的步骤或任何 新颖的步骤组合。
权利要求
1、一种计算机设备,包含目标处理器;以及转换器进程,响应于接收的在主体处理器上执行的主体代码指令建立该转换器进程,其中,该转换器进程配置成(a)以有关建立的转换器进程的信息填充进程数据结构;以及(b)响应于接收的主体代码中对主体进程文件系统中的信息的引用而引用步骤(a)的进程数据结构。
2、 如权利要求1所述的计算机设备,其中,该转换器进程配置成响应于 接收的各主体代码指令建立另外的转换器进程,其中,当在主体处理器上执 行该主体代码指令时,该主体代码指令将建立主体进程。
3、 如权利要求2所述的计算机设备,其中,各转换器进程为权利要求l 所述的转换器进程。
4、 如权利要求3所述的计算机设备,其中,各转换器进程填充并且引用 共同的进程数据结构。
5、 如权利要求4所述的计算机设备,其中,该进程数据结构包含下列之 一或两者(a)各转换器进程可访问的目录;以及(b)各转换器进程可访问 的共享的内存区域。
6、 如权利要求1所述的计算机设备,其中,该转换器进程配置成以各转 换器进程的进程识别符填充该进程数据结构,该进程识别符分配给响应于接 收的主体代码指令在主体处理器上执行时建立的主体进程。
7、 如权利要求1所述的计算机设备,进一步包含审核器,该审核器配 置成检查其信息存在于进程数据结构中的转换器进程的状态,并从进程数据 结构移除关于不再运行的转换器进程的信息。
8、 如权利要求7所述的计算机设备,其中,该审核器配置成周期性地检 查其信息存在于进程lt据结构中的转换器进程的状态。
9、 如权利要求7所述的计算机设备,其中,该审核器包含转换器进程的 部分。
10、 如权利要求1所述的计算机设备,进一步包含审核器,其中,该审核器配置成在进程数据结构中记录对信息已作出的引用。
11、 如权利要求10所述的计算机设备,其中,该审核器配置成记录作出引用的转换器进程的识别符、以及信息被引用的转换器进程的关联的识别符。
12、 如权利要求11所述的计算机设备,其中,该审核器配置成在进程数据结构中记录所述识别符。
13、 如权利要求12所述的计算机设备,其中,该审核器配置成当确定其 信息被引用的进程已不再运行时从进程数据结构移除所记录的数据。
14、 如权利要求1所述的计算机设备,其中,当转换器进程退出时,该 转换器进程从进程数据结构移除关于自身的信息。
15、 如权利要求1所述的计算机设备,其中,该目标处理器与用于执行 接收的主体代码的主体处理器为相同类型。
16、 如权利要求1所述的计算机设备,其中,该转换器进程配置成产生 在目标处理器上执行的目标代码指令。
17、 一种关于程序代码转换的管理进程文件系统的方法,该程序代码转 换将在主体处理器上执行的主体代码转换成在目标处理器上执行的目标代 码,该方法包含下列步骤(a) 响应于接收的主体代码指令建立转换器进程,其中,当在主体处理 器上执行该主体代码指令时,该主体代码指令将建立主体进程;(b) 以关于响应于接收的主体代码而建立的 一个或多个转换器进程的信 息填充转换器进程可访问的进程数据结构;以及(c) 响应于在接收的主体代码中对主体进程文件系统中的信息的引用而 引用步骤(b)中填充的数据结构。
18、 如权利要求17所述的方法,其中,在步骤(b)中填充的进程数据 结构为转换器数据结构。
19、 如权利要求17所述的方法,进一步包含下列步骤;险查其信息存储 于该进程数据结构中的进程的状态,以及从该进程数据结构移除关于不再运 行的转换器进程的信息。
20、 如权利要求19所述的方法,其中,周期性地执行检查其信息存储于 该进程数据结构中的进程的状态的步骤。
21、 如权利要求17所述的方法,进一步包含下列步骤符并记录其信息已被引用的转换器进程的识别符,来记录该引用。
22、 如权利要求21所述的方法,进一步包含下列步骤当其信息被引用 的转换器进程不再运行时,从该进程数据结构移除于步骤(d )所记录的数据。
23、 如权利要求17所述的方法,进一步包含从该进程数据结构移除关 于不再运行的进程的信息。
24、 一种计算机可读介质,其上记录有可由计算机实施以执行如权利要 求17所述的方法的指令。
25、 一种转换器设备,配置成接收在主体处理器上执行的主体代码并产 生在目标处理器上执行的目标代码,其中,该转换器配置成(a)以关于响应于接收的主体代码而建立的一个或多个转换器进程的信 息填充进程数据结构;以及(b )响应于在4妄收的主体代码中对主体进程文件系统中的信息的引用而 引用步骤(a)的进程数据结构。
全文摘要
一种在动态二元转换器中将主体代码转换成目标代码期间管理对主体进程文件系统的引用的技术。由转换器接收在主体处理器上执行的主体代码,并且产生在目标处理器上执行的对应的目标代码。转换器配置成建立、填充及维持进程数据结构,以便能由转换器产生代码,在转换器中有效地处置对主体进程文件系统的主体引用。
文档编号G06F9/45GK101558382SQ200780036737
公开日2009年10月14日 申请日期2007年10月1日 优先权日2006年10月2日
发明者詹姆士·威廉·沃克, 赖安·詹森·考克斯 申请人:特兰斯蒂有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1