专利名称:通过操作系统进行通信的方法
技术领域:
本发明涉及通过一个操作系统进行通信的方法,并且尤其涉及通过使用多个进程和布置在一个或多个处理器内的多个存储器源的操作系统进行通信的方法。
背景技术:
数据处理和分配在大量的不同制造和商业相关应用中被使用,事实上,这些制造和商业相关应用涉及完成各种不受限制的任务或进程的操作。被执行以完成这些任务的系统利用不同的设计结构并且一般地以网络方式被组织。网络可以用诸如总线或线性拓扑、星形拓扑、环形拓扑等等之类的各种结构来安排。在网络内一般有多个节点和互连每个节点的多条通信链路。这些节点可以是计算机、终端、工作站、执行元件、数据收集器、传感器等等。这些节点一般有处理器、存储器源和各种其它的硬件和软件元件。这些节点在网络内的通信链路上相互通信以获得和发送信息。
相关技术系统中的一个主要缺陷在于节点与其它节点通信的方法。第一节点通常会发送一个请求信息的信号到第二节点。由于第二节点已经在处理信息,因此第一节点必须等候响应。第二节点过一段时间会识别出第一节点的请求并且访问所期望的信息。第二节点然后发送一个带有连接信息的响应信号到第一节点。第二节点保存它自身进程可能需要的一份复制信息。第二节点还可发送一个验证以确保信息数据被第一节点接收。
这类通信可能在大量应用程序中是可接受的,其中,第一和第二节点之间通信所损失的时间是可接受的。然而,在许多诸如在车辆测试中的实时编译数据之类的应用中,延迟时间是不能接受的。更进一步,在第二和第一节点中都存储相同的数据的冗余浪费了存储空间并延迟了处理时间。最终,第一和第二节点之间的双向通信引起了附加延迟和潜在的数据冲突。
因此,提供一个能克服相关技术缺陷的操作系统应该是有利的。特别地,一个操作系统被期望,该操作系统消除第一和第二节点之间的通信延迟并且能够优化存储器源的利用和减少处理时间。
发明内容
提供通过一个操作系统进行通信的方法,该操作系统使用多个进程和布置在一个或多个处理器内的多个存储器源。所述方法包括以下步骤在系统内检测一个事件;响应于检测到事件,从其中一个存储器源提取初始进程地址以确定初始进程的存储单元;响应于检测到事件,从其中一个存储器源提取初始数据地址以确定初始进程要使用的初始数据的存储单元。执行位于初始进程地址的初始进程的可执行码;以及从其中一个存储器源提取第二进程地址以确定在初始进程的可执行码的执行完成之前执行的第二进程的存储单元。
本发明提供通过一个操作系统进行通信的方法,该方法实际地消除了不同节点上的不同进程之间的任何通信延迟。此外,通过在完成正在执行的进程之前知道下一个进程的存储单元从而减少处理时间的同时,本发明优化了存储器源的使用。
通过参考结合附图的下列详细说明,本发明的其它优点将被容易理解并且变得更加清楚,其中图1是利用互连到单个集线器的六个节点的操作系统的示意图;图2A是图1操作系统的示意图,其说明来自一个节点的输入传输;图2B是图2A操作系统的示意图,其从集线器广播到所有的节点;图3是传递初始进程和响应于检测事件的第二进程之间的通信的操作系统的示意图;
图4是利用具有相同进程的不同数据的操作系统的示意图;图5是用户对象的电路示意图,其表示操作系统的执行次序;图6是显示给用户的执行次序的示意图;图7是图6执行次序的示意图,其中,一个条件被测量然后响应于当前条件改变执行次序;图8A是具有第一、第二和第三进程的执行次序的示意图;图8B是在第二进程中测量到一个条件的图8A的执行次序示意图;图8C是通过响应于存在条件的第二进程而正在被修改的图8A执行次序的示意图;和图9是执行其它原语设定的定序器的示意图。
具体实施例方式
参考附图,其中,相同数字指出遍及几个视图的相同或对应部分,通过使用多个进程和布置在一个或多个处理器内的多个存储器源的操作系统30进行通信的方法被公开。在图1中大略地示出能执行本方法的操作系统30。
操作系统30包括通过中央信号路由集线器32互连来优选地建立星形拓扑结构的多个模块或节点1-6。如图所示,六个节点1-6被连接到集线器32,每个节点用一个特殊的节点地址索引。数字指示符1到6说明的是节点地址的例子。可以理解,任何适当的字母/数字指示符可被用来区别一个节点和另一个节点。显示为一个八边形的集线器32的形状、结构和定位仅是说明性的并且可以被改变来满足任何需求。
节点1-6可以是工作站的一部分或工作站本身。为了说明节点1-6的多面性,节点6是主机34的一部分,节点1、2、4和5被连接到执行元件36,而节点3没有被连接。应当理解,节点1-6能够被连接到包括多个计算机、执行元件、手持设备等等的任何类型的外部设备或装置。例如,示出的节点6还连接到一个手持设备35。换言之,节点1-6中没有一个能被连接到会建立完全虚拟系统的外部设备。外部设备可以是计算机技术中已知的任何适当的设备,比如监视器、打印机、键盘、鼠标等等。
每个节点1-6至少包括具有至少一个存储器源的处理器。进程能够对进程位于其中的存储器源进行读写。进程只写入到其它存储器源。通信方法是通过发送信号或写数据。信号可以是类似于模拟信号的不同步的虚拟信号。信号可以只包含信号的瞬时值并且可以按需被任何进程采样。信号可以从一个进程被发送到节点1-6中的任何其中一个存储器源。例如,进程可以在相同节点或一个远程节点中运行。信号可以被在接收该信号的节点中执行的另一个进程采样。因此,进程能够在本地或远程节点上被执行,但是信号仍然被写入。信号或数据在进程发送信号或数据的任何时刻及时被写入到目的地地址。必须考虑到信号具有在发生采样的任何时刻都有被另一个进程及时采样的值。
对处理器的类型没有限制。处理器可以是诸如微处理器之类的硬件,或软件虚拟处理器或在本领域技术中已知的任何其它类型的处理器。处理器可以具有不同的容量和速度。例如,节点6可能具有1,500MFlops的处理器并且剩余节点可能具有300MFlops的处理器。处理器的容量和速度可以被改变以满足众多的设计标准。处理器一般只具有支持与节点1-6相关的进程的容量和速度。处理器还可以是识别不同计算机格式和语言的不同类型的处理器。
一个平台互连操作系统30的节点1-6。另外,该平台可以支持一个或多个操作系统30。该平台路由进程和节点之间的通信流。平台被显示为互连处理器和节点1-6的通信链路。在图1中,通信链路68、70从节点1和节点2向集线器32写入数据。数据的写入对于操作系统30来说是透明的并且互连方法可以是能实现本发明结果的任何类型的连接。
每个处理器包含存储在与进程相关的存储器源内的数据。数据可以包括将被执行的其它进程的地址、将被使用的其它数据的地址和在进程执行过程中使用的数据集。进程可以被存储在其中一个处理器中并且可以利用存储在不同的处理器上的数据。
上述操作系统30能够执行本发明的方法。转到图3,所述方法包括在操作系统30内检测事件38的步骤。事件38可以发生在所指定的状态变化出现的任何时刻。事件38优选地是同步信号的检测,从而确保所有的进程在明确定义的时刻及时地同时开始。事件38能够按需从具有进程的节点1-6在本地产生。可以被检测的事件38的一个类型是诸如按下键盘上的一个键之类的硬件中断。处理器检测硬件中断并且硬件中断告诉处理器一个键已经被压下。应当理解,存在许多除了硬件中断以外的可以被检测的事件类型。
接下来,操作系统30从其中一个存储器源提取初始进程地址40以确定响应于检测事件38的初始进程42的存储单元。初始进程地址40或下一个进程的初始指针(PNP)是能够被存储在任何一个存储器源上的数据。该数据可以包括用于处理其它数据的可执行码的多个线路。初始的PNP 40给系统指出将被执行的可执行码的存储单元,例如,告诉系统可执行码位于何处。
响应于检测事件38,操作系统30从其中一个存储器源提取初始数据地址44以确定将被用于初始进程42的初始数据46的存储单元。初始数据地址44或下一个数据的初始指针(PND)也是能够被存储在任何一个存储器源上的数据。初始PND 44指向包含用于执行进程的数据的其中一个存储器源中的存储单元。位于初始PND 44存储单元的数据包括第二进程地址48或第二PNP 48,和第二数据地址50或第二PND 50。位于初始PND 44的数据还可以包括一个初始数据集58。应当理解,PNP、PND和数据地址是指针或地址。进程、数据等等用术语″初始″和″第二″来区分仅是为了说明性的目的并且不以任何方式来限制本发明。本发明的方法可被用来在很短的时间周期内执行数以千计的进程,其中,每个进程可以用在此说明的方法来执行。
检测事件38的步骤还被定义为从其中一个存储器源检索初始参数块54。初始参数块54包括初始PNP 40和初始PND 44。初始参数块54也可以包括初始数据集58,然而优选实施例只包括初始PNP 40和初始PND 44。
一旦操作系统30知道该执行和使用哪个进程和数据,则操作系统30就执行位于初始进程地址40的初始进程42的可执行码。接下来,从其中一个存储器源提取第二进程地址48或第二PNP 48以确定在初始进程42的可执行码的执行完成之前执行的第二进程52的存储单元。从其中一个存储器源提取第二PNP 48的步骤还被定义为在初始数据地址44从初始数据46提取第二PNP 48。因此,第二PNP 48被储存为位于初始数据地址44的初始数据46的一部分。
操作系统30还从其中一个存储器源提取第二数据地址50或第二PND 50以确定在初始进程42的可执行码的执行完成之前用于第二进程52的第二数据63的存储单元。从其中一个存储器源提取第二PND50的步骤还被定义为在初始数据地址44从初始数据46提取第二PND50。
第二PNP 48和第二PND 50的提取还被定义为提取位于初始PND44的第一参数块56。第一参数块56优选地包括用于初始进程42的初始数据集58。操作系统30从位于初始数据地址44的初始数据46或第一参数块56检索用于初始进程42的执行过程中的操作的初始数据集58。所述方法还包括在可执行码的执行过程中处理初始数据集58以定义初始处理的数据集的步骤。从其中一个存储器源提取的初始处理的数据地址60也被存储在第一参数块56中,并且初始处理的数据集被写入到初始处理的数据地址。初始数据集58或其它数据集可以包括在进程执行过程中使用的参数或值。这类参数可以包括诸如Pi=3.141592之类的常数或被其它进程写入到第一参数块56的其它值。
操作系统30完成初始进程42的执行并且传递通信到位于第二PNP 48的第二进程52。然后,位于第二PNP 48的第二进程52的可执行码用位于第二PND 50的第二数据63来执行。包含第二数据集65的第二参数块62位于第二PND 50。第二数据集65从位于第二数据地址50的第二数据63被检索并且在可执行码的执行过程中被处理以定义第二处理的数据集。然后第二处理的数据地址67从其中一个存储器源被提取并且第二处理的数据集被写入到第二处理的数据地址67。第二处理的数据地址67可以把第二处理的数据集发送到节点1-6中的任何一个或者在其它执行的进程中被使用。
总的来说,检测事件38并且检索初始PNP 40和PND。操作系统30执行初始进程42、取出数据集和数据集地址、处理数据集、和把处理的数据集写入到处理的数据集地址。接下来,取出第二PND 50,因此第二进程52知道第二数据的存储单元,然后取出第二PNP 48并且执行被传递到第二PNP 48指定的进程地址。因为操作系统30知道在进程执行完成之前应该进行到什么地方,所以该操作系统是一个快速和灵活的实时系统。因为PNP和PND是在使用它们的进程之前由进程建立的,所以操作系统30能够实现一些非常强大的机制。
包括初始进程42和第二进程52的可执行码是包含在其中一个存储器源中的数据,并且用于每个进程的数据也是包含在其中一个存储器源中的数据。因此,进程能够按需写入彼此的数据和可执行码。由进程执行的写入能够修改存储在用于任何进程的关联参数块中的数据集。
在第二进程52的执行过程中,从其中一个存储器源提取最后的PNP 64以确定最后执行的进程的存储单元。一旦位于最后进程地址64的最后进程的可执行码被执行,则操作系统30就停止通过操作系统30的通信,直到系统检测到另一个事件38为止。操作系统30可以执行与所期望的一样多的进程,直至到达最后进程。另外,最后进程可以被合并到第二进程52的可执行码。最后进程被描述为在第二进程52之后执行,然而应当理解,任意数目进程都可以先于最后进程。还应当理解,没有这种最后进程,操作系统30也可以被配置运行。
参考图2A和2B,本发明的方法的另一个特征是一个进程将处理的数据写入到多个进程的能力。该进程提取多个处理的数据地址和把第二处理的数据集写入到多个处理的数据地址。这通常相当于广播数据。另一方面,集线器32可以不需要多次指定地址而为所有节点1-6写入数据。换言之,集线器32在每当没有必要知道系统范围时写入数据。集线器32也可以响应于数据的产生而在节点1-6的每一个中产生一个事件。图2A说明了一个正在一个节点被产生和被发送给集线器32的信号。在图2B中,集线器32将该信号广播到多个地址。该广播能够执行一个进程,该进程会在所有其它的节点和进程中产生事件38。作为另一个特征,操作系统30能够用这种方式传送来源于集线器32或者其中一个节点的数据。存储在节点的其中一个处理器中的进程把数据写入到多个处理的数据地址,从而将数据发送到所有其它的节点。对于不一定必须知道操作系统30的范围并且没有发送多个信号的消耗时间,而通过整个操作系统30发送全局消息、命令或请求,广播是有用的。
参考图4,为清楚起见,可执行码和参数块已经被分开。应当理解,可执行码和数据可以在任何存储器源中被混合。第一进程被执行不同的三次并且每次使用具有不同数据的不同参数块。因此,只需要复制存储在任何一个存储器源中的第一进程的可执行码。
本发明的另一个特征是用于进程的可执行码能够用位于多个不同数据地址的多个不同数据来执行。用不同数据集来执行相同的可执行码被称为一个实例。因此仅需要把可执行码在存储器源中存储一次,从而允许更好地利用存储器源的容量。图4示出被执行两次的第一进程,其中每次使用第一参数块的不同实例。然后,第二进程被举例,然后是第一进程的其它两个实例。最后,第二进程再次被举例。第一进程的第一实例用第一实例的第一参数块来使用第一可执行码。来自第一实例的第一参数块的PND指向第二实例的第一参数块以在第一进程的第二实例的过程中使用初始可执行码。来自第二实例的第一参数块的PND指向第一实例的第二参数块,下一个PND指向第三实例的第一参数块,下一个PND指向第四实例的第一参数块,并且下一个PND最终指向第二实例的第二参数块。进程实例之间的箭头说明PNP并且参数块之间的箭头说明PND。可执行码和参数块之间的箭头链接使用可执行码的数据实例,并且进程和可执行码之间的箭头说明在进程中被执行的码。
所述方法还包括在执行次序中定位初始进程42和第二进程52的步骤。执行次序是进程将被执行的次序。执行次序可以包括在执行次序中定位的多个进程。本发明的方法还包括提取多个初始进程地址和多个初始数据地址的步骤以定义多个执行次序和同时执行多个执行次序。在执行次序被设置之后,PNP和PND对于多个进程中的每一个而被建立。例如,初始进程42在第二进程52之前被定位,因此通信从初始进程42传递到第二进程52。为了传递通信,位于初始PND 44的数据必须包括第二进程52的PNP和PND。
执行次序能够被处理以使得正在被执行的进程次序被修改。一旦执行次序被修改,则PNP和PND必须对于被处理进程中的每一个而被重建。处理执行次序的一个例子是在初始进程42之前定位第二进程52。为了重建执行次序,初始PNP 40和初始PND 44在初始参数块54中将被替换为第二PNP48和第二PND 50。当第二进程52完成的时候,第二参数块62将接收初始PNP 40和初始PND 44以执行初始进程42。操作系统30于是将检测事件38,从初始参数块54检索第二PNP 48和第二PND50,执行第二进程52,从第二参数块62检索初始PNP 40和初始PND 44,并执行初始进程42。
可执行码如下所述包括功能或模块,其能够被永久地存储在节点1-6的其中一个,也可以被写入到节点1-6以反映所需的结构。可执行码与节点1-6中的处理器是二进制兼容的,其中,可执行码将被执行。可执行码能够驻留在任意一个存储器源中并且能够按需被重新安置到不同的存储器源。功能包括不可分的软件功能,例如,诸如乘法之类的单个数学功能。
模块是一个对象中的功能的方便集合。该对象能够执行不同的功能组合。一个库被存储在至少一个存储器源上,由此该库包括一个适于特定应用的模块和功能的集合,例如″数学库″或″信号处理库″。操作系统30还包括对象,该对象是一个或多个功能和/或模块加上它们的相关参数块和/或一些连通性,它们共同提供一个良好定义的功能集合。对象可以包含一个或多个其它对象。
如图5-7所示,将进程显示给一个用户以使得该用户能够修改进程的位置。参考图5,该进程被显示为一个电路示意图,其示出对象之间的互连,因此该对象形成进程。在优选实施例中,将一个显示器连接到操作系统30以显示执行次序。如在本领域技术中已知的,用户能够通过点击和拖拽来在显示器上移动进程。当用户移动进程时,PNP和PND基于用户定位进程的次序而被重建。图5说明具有三个对象的进程的例子,对象A 72、对象B 74和对象C 76。每个对象是进程内的一个不同的子进程。对象A 72包括三个功能功能1 78、功能2 80、和功能3 82,每一个都用于处理数据。用户能够通过在显示器上移动对象来修改这些进程的存储单元。
本发明的另一个特征允许通过将初始进程地址40和第二进程地址48中的至少一个修改到不同的进程地址而修改执行次序以定义初始和第二进程的不同的执行次序。这可以在操作系统30正在执行事件检测或之前被完成。
一旦将执行次序显示给用户,则用户就能够修改位于与被显示进程相关的数据地址的数据。用户能够修改进程的数据集,例如改变上述的参数和值。用户能够修改在对象B 74中示出的参数84或值86。然而,存在存储在其中一个存储器源中的固定进程,其中,即使固定进程被显示给用户,与固定进程相关的数据也保持不变。固定进程的一个例子是图5中的功能1-3即78、80和82。固定进程包括布尔和数学运算符。其它的固定进程包括上述的二进制功能和块。每个单独的二进制可以被封装在一个对象中,该对象也可以包括进程的可执行码以及数据结构所需的诸如变量、存储量和类型之类的参数。封装可执行码的对象是不可分的而且不能由用户修改。一个这种不可分的对象是点原语88,其分配信号给多个目的地。点原语88具有一个来自先前进程的输入和一个写入信号的目的地址的列表。
用户能够修改的对象是用户对象。用户对象允许一个或多个对象和另一个对象内部的连通性被嵌入其它用户对象内。用户能够通过按需添加输入和输出连接以及建立内部功能来创建用户对象。用户可以把原始和现有用户对象两者合并成用户对象。
用户能够根据需要命名用户对象。另外,用户能够选择用户对象上可见的属性。用户对象,对象A 72显示其它对象的细节和对象的连通性。为了能够显示执行次序,系统必须在所期望的间隔采取一个执行次序连通性的全局″急射(snap-shot)″。每个节点1-6的本地代理进程被分配用于采集诸如响应于广播的PNP和PND之类的特定数据。代理进程把采集数据写回到操作系统30。因此操作系统30能够实时地显示执行次序。如上所述,通过代理进程来采集特定数据是一个不可分的进程。
图6说明把处理器和相关存储器源显示给用户的另一个实施例。被显示的存储器源示出为进程和相关参数块(未示出)分配的存储空间。用户能够修改哪个处理器执行由操作系统30自动分配的哪个进程或存储器。操作系统30可以基于不同的处理器当中的进程优化结构来自动地定位进程。另一方面,用户能够基于每个处理器的存储器源的容量来处理进程的位置。这允许用户把进程从可能满负载运行的处理器移到低于负载容量运行的另一个处理器。因为进程可以被写入到其它处理器,所以存储器源中显示的进程不能说明操作系统30的执行次序。图6还说明了每个处理器的进程资源的分配或处理器时间。当进程被添加给处理器时,一个指示符显示处理器资源已经被消耗的值。例如,四个进程使用了20.11%的处理器资源。
此外,执行次序可以保持相同,但是进程执行过程中使用的数据可以响应于测量到预定条件而被修改。当条件被测量到时,至少初始PND 44和第二PND 50中的一个在后续进程的执行过程中被修改以检索不同的数据地址。
修改执行次序的另一个实施例包括在进程的子执行次序可以在不中断操作系统30的执行次序的条件下被修改时建立进程子执行次序。在子执行次序被建立之后,通过改变位于初始PND 44的第二PNP48和第二PND 50以及把改变的子执行次序的PNP和PND写入到初始数据地址44中,子执行次序被处理到执行次序中。子执行次序或进程被执行,一旦子执行次序的每个进程都被执行,然后就回到执行次序。为了回到执行次序,第二PNP 48和第二PND 50被写入其中一个子执行数据地址中。优选地,在把子执行PNP和PND写入初始参数块54之前,第二PNP 48和第二PND 50将写入子执行。一旦子执行PNP和PND被写入,操作系统30就通过触发新的事件并且从执行次序的请求开始。新的事件的触发确保进程不停止执行。当进程在执行次序中在不同存储单元之间被修改时,处理器不能取得同步并且要求操作系统30从头开始执行次序,从而处理新的执行次序。
执行次序的修改可以响应于在第二进程52的执行过程中测量预定条件和响应于修改初始进程地址40和第二进程地址48中的至少一个,其被修改以在后续进程的执行过程中检索不同的进程地址。一个实时定序器(RTS)可以被合并到执行次序以测量预定条件。RTS是非常快速的并且几乎不耗费执行时间。RTS能够按需被用来保证操作系统30的整个测试。RTS可以被显示给具有多个输入的用户以便用户启动定序器的开始和停止。这类输入可以包括标准播放、暂停和停止按钮。RTS能够开动附着于其中一个节点的设备、执行测试、收集数据、按照用户配置来适当地对被检测事件起作用、完成建立测试和关闭该设备。应当理解,在任何进程中条件都能够被测量,只是为了清楚起见而描述在第二进程52中出现。
在条件被检测之后,RTS可以通过从其中一个存储器源提取不同的PNP来修改初始PNP 40和第二PNP 48中的至少一个,由此在不同的PNP执行进程。换言之,不同的PNP在执行次序中指向一个较高的进程。另一方面,RTS可以通过从其中一个存储器源提取不同的进程地址来修改初始PNP 40和第二PNP 48中的至少一个,由此在不同的进程地址执行进程,例如执行次序中较低的进程。
参考图7,执行次数由利用是否(if)原语的比率分配器94来测量。如果执行次数低于预定计数,则执行次序被修改。通过每次执行次序被执行就给计数加1,计数器原语保存一个计数。计数器原语的输出被是否原语使用来建立一个期望的结果。一旦计数器原语计算预定计数,是否原语就将被安排绕过它自己和计数器进程。响应于测量其中一个进程的执行次数和修改存储在与进程相关的数据地址中的进程地址以使得不同的进程在测量到预定次数的执行时执行,执行次序还可以被修改。比率分配器94每当被执行就更新进程计数,每次都把执行传递到下一个PNP直到这个计数达到一个特定数目,但是当计数等于所述数目时,它重新设置计数并且把执行传递到一个不同的PNP。因此不同PNP被执行的次数是小于比率分配器94功能被执行的次数的该数目倍数。如图7中所示,执行次序流经进程2和3并且只在比率分配器94计数被重置时被执行,细分被进程2和3看见的事件38的次数。
参考图8A,执行次序被示出具有进程1-3并且以所述次序执行。进程#1包含PNP#1,进程#2包含PNP#2,以及进程#3包含PNP#3。为清楚起见,PNP在进程中被示出,但是应当理解,PNP被优选地存储在相关参数块中。在进程#1执行之后,信号被传递到进程#2。进程#2测量到一个条件,并且如果该条件为假或不存在,则信号根据PNP#2传递到进程#3。如果进程#2测量到条件为真,例如在图8B中所示的,进程#2把PNP#2写入进程#1。现在,图8C中的进程#1还有PNP#2。进程#2然后传递信号到进程#3。下一次执行次序被执行时,进程#1绕过进程#2而执行进程#3。
为了使RTS完成绕过进程,RTS必须执行专门的进程。该专门的进程包括原语对象设置原语、等候原语和是否原语。设置原语在任何参数块中设置或修改任意数目的属性。设置原语能够同时执行所有所请求的修改,例如在相同的瞬时。等候原语执行次序并且等候一个或多个条件被检测。多种条件可以被诸如AND、OR,AND NOT、ORNOT、XOR、NOT XOR等等之类的布尔运算符分开。条件可以包含属性和诸如>、>=、=、<=、<之类的运算符。具有布尔运算符的实例为节点4信号8>节点2信号2 AND节点1输入9<=节点1平均值。一旦给定时间已经消逝,等候原语就可以把任何的状态变化显示给用户。例如,在10秒之后,进程可以把执行状况显示给用户。当等候原语正在等候时,执行次序通过传递等候原语来继续被执行。是否原语能够被用来在等候时继续执行。是否原语允许操作系统30继续执行,从而在进程正在等候时消除任何延迟。
参考图9,等候原语90和是否原语92被当作RTS的一部分被说明。信号进入等候原语90并且等候原语90等候将出现的条件或传递时间周期。如果条件存在,则是否原语92发送信号给进程B。如果条件不存在,而时间已经过去,则信号被传递到进程A。这允许操作系统30在等候原语90等候条件出现时继续执行。
本发明已经用说明性的方式被描述,并且应当理解,所使用的术语为具有说明性质而不是限制性质的词汇。明显地,根据上述教导,本发明的许多修改和变化是可能的。因此,应当理解本发明可以在附加权利要求的范围内被实践而不限于特定的描述。
权利要求
1.通过一个操作系统进行通信的方法,所述操作系统使用多个进程和布置在一个或多个处理器内的多个存储器源,所述方法包括以下步骤在系统内检测一个事件;响应于检测到事件,从其中一个存储器源提取初始进程地址以确定初始进程的存储单元;响应于检测到事件,从其中一个存储器源提取初始数据地址以确定所述初始进程中要使用的初始数据的存储单元;执行位于初始进程地址的初始进程的可执行码;和从其中一个存储器源提取第二进程地址以确定在初始进程的可执行码的执行完成之前执行的第二进程的存储单元。
2.权利要求1的方法,还包括从其中一个存储器源提取第二数据地址以确定在初始进程的可执行码的执行完成之前用在第二进程中的第二数据的存储单元的步骤。
3.权利要求2的方法,其中,从其中一个存储器源提取第二进程地址的步骤还被定义为在初始数据地址从初始数据提取第二进程地址。
4.权利要求3的方法,其中,从其中一个存储器源提取第二数据地址的步骤还被定义为在初始数据地址从初始数据提取第二数据地址。
5.权利要求4的方法,还包括为初始进程的执行过程中的处理而在初始数据地址从初始数据检索初始数据集的步骤。
6.权利要求5的方法,其中,检测事件的步骤还被定义为检索初始参数块,该初始参数块包括初始进程地址和初始数据地址。
7.权利要求6的方法,还包括使用位于第二数据地址的第二数据执行位于第二进程地址的第二进程的可执行码的步骤。
8.权利要求7的方法,还包括在执行次序中定位初始进程和第二进程的步骤。
9.权利要求8的方法,还包括从其中一个存储器源提取最后进程地址以确定最后执行进程的存储单元的步骤,以及还包括执行位于最后进程地址的最后进程的可执行码以停止通过操作系统进行的通信直到系统检测到另一个事件的步骤。
10.权利要求8的方法,还包括在第二进程的执行过程中测量预定条件的步骤,和在后续进程的执行过程中修改初始数据地址和第二数据地址中的至少一个以检索不同数据地址的步骤。
11.权利要求10的方法,还包括测量其中一个进程的执行次数的步骤和修改存储在与该进程相关的数据地址中的进程地址以使得在测量到预定数目的执行时执行一个不同的进程的步骤。
12.权利要求7的方法,还包括的在执行次序中定位多个进程的步骤和为多个进程中的每个进程建立进程地址和数据地址的步骤。
13.权利要求12的方法,还包括处理进程位置以使得执行次序被修改的步骤和为每个被处理的进程重建进程地址和数据地址的步骤。
14.权利要求13的方法,还包括把执行次序显示给用户以使得用户能够修改进程位置的步骤。
15.权利要求14的方法,还包括把每个处理器的存储器源显示给用户以使得用户能够基于每个处理器来处理进程的位置的步骤。
16.权利要求15的方法,还包括把进程显示给用户以使得用户能够修改位于与被显示进程相关的数据地址的数据的步骤。
17.权利要求16的方法,还包括在其中一个存储器源中存储固定进程的步骤,其中,与固定进程相关的数据保持不变。
18.权利要求8的方法,还包括将初始进程地址和第二进程地址中的至少一个修改到不同的进程地址以定义初始和第二进程的不同执行次序的步骤。
19.权利要求8的方法,还包括在第二进程的执行过程中测量预定条件的步骤,和在后续进程的执行过程中修改初始进程地址和第二进程地址中的至少一个以检索不同进程地址的步骤。
20.权利要求19的方法,其中,修改初始进程地址和第二进程地址中的至少一个的步骤还被定义为通过从其中一个存储器源提取不同的进程地址来修改初始进程地址和第二进程地址中的至少一个,由此执行在不同的进程地址的进程。
21.权利要求19的方法,其中,修改初始进程地址和第二进程地址中的任意一个的步骤还被定义为通过从其中一个存储器源提取不同的进程地址来修改初始进程地址和第二进程地址中的至少一个,由此不同的进程地址的进程将要被执行。
22.权利要求12的方法,还包括当进程的子执行次序可以在不中断操作系统的执行次序的条件下被修改时,建立进程的子执行次序的步骤。
23.权利要求22的方法,还包括通过改变位于初始数据地址的第二进程地址和第二数据地址来执行子执行次序的步骤,和把子执行次序的被改变的进程地址和被改变的数据地址写入初始数据地址的步骤。
24.权利要求23的方法,还包括执行子执行次序的进程的步骤和一旦子执行次序的每个进程都被执行就回到执行次序的步骤。
25.权利要求24的方法,其中,回到执行次序的步骤还被定义为把第二进程地址和第二数据地址写入其中一个子执行数据地址。
26.权利要求25的方法,还包括响应于检测到新事件而在执行次序开始时启动操作系统和执行子执行次序到执行次序中的步骤。
27.权利要求1的方法,还包括提取多个初始进程地址和多个初始数据地址以定义多个执行次序的步骤和同时执行多个执行次序的步骤。
28.权利要求2的方法,其中,提取初始数据地址和提取第二数据地址的步骤还被定义为提取多个初始数据地址和提取多个第二数据地址。
29.权利要求2的方法,还包括使用位于多个数据地址的多个数据来执行一个进程的可执行码的步骤。
30.权利要求5的方法,还包括在可执行码的执行过程中处理初始数据集以定义初始处理的数据集的步骤。
31.权利要求30的方法,还包括从其中一个存储器源提取初始处理的数据地址的步骤和把初始处理的数据集写入初始处理的数据地址的步骤。
32.权利要求31的方法,还包括从位于第二数据地址的第二数据检索第二数据集的步骤和在可执行码的执行过程中处理第二数据集以定义第二处理的数据集的步骤。
33.权利要求32的方法,还包括从其中一个存储器源提取第二处理的数据地址的步骤和把第二处理的数据集写入第二处理的数据地址的步骤。
34.权利要求33的方法,其中,提取第二处理的数据地址的步骤还被定义为提取多个处理的数据地址和把第二处理的数据集写入多个处理的数据地址。
35.通过一个操作系统进行通信的方法,所述操作系统使用多个进程和布置在一个或多个处理器内的多个存储器源,所述方法包括以下步骤在系统内检测一个事件;响应于检测到事件,从其中一个存储器源提取初始进程地址以确定初始进程的存储单元;响应于检测到事件,从其中一个存储器源提取初始数据地址以确定要在初始进程中使用的初始数据的存储单元;执行初始进程的可执行码;在初始数据地址检索来自其中一个存储器源的初始数据;使用检索到的初始数据继续执行初始进程的可执行码以定义初始处理的数据集;从其中一个存储器源提取初始处理的数据地址;把初始处理的数据集写入初始处理的数据地址;从其中一个存储器源提取第二进程地址以确定将要执行的第二进程的存储单元;从其中一个存储器源提取第二数据地址以确定用在第二进程中的第二数据的存储单元;执行第二进程的可执行码;在第二数据地址检索来自其中一个存储器源的第二数据;使用检索到的第二数据继续执行第二进程的可执行码以定义第二处理的数据集;从其中一个存储器源提取第二处理的数据地址;把第二处理的数据集写入第二处理的数据地址;从其中一个存储器源提取最后进程地址以确定最后执行的进程的存储单元;执行最后进程的可执行码以停止系统通信直到系统检测到事件为止。
全文摘要
本发明涉及通过使用多个进程(42、52)和布置在一个或多个处理器内的多个存储器源的操作系统进行通信的方法。该方法包括检测该系统内的事件(38)和从其中一个存储器源中提取初始进程地址(60)和初始数据地址以确定初始进程(42)和初始数据的存储单元的步骤。一旦操作系统知道将被执行和使用进程和数据,则操作系统就执行位于初始进程地址的初始进程(42)的可执行码。其次,从其中一个存储器源中提取第二进程地址(67)和第二数据地址(50)以确定第二数据的存储单元,第二数据用于在初始进程(42)的可执行码的执行完成之前的第二进程(52)。
文档编号H04L29/12GK1559032SQ01823799
公开日2004年12月29日 申请日期2001年10月18日 优先权日2001年10月17日
发明者安德鲁·R.·奥斯本, 安德鲁 R. 奥斯本 申请人:Bep技术公司