CN1816800A - 程序处理系统、程序处理方法以及计算机程序 - Google Patents
程序处理系统、程序处理方法以及计算机程序 Download PDFInfo
- Publication number
- CN1816800A CN1816800A CNA2004800191357A CN200480019135A CN1816800A CN 1816800 A CN1816800 A CN 1816800A CN A2004800191357 A CNA2004800191357 A CN A2004800191357A CN 200480019135 A CN200480019135 A CN 200480019135A CN 1816800 A CN1816800 A CN 1816800A
- Authority
- CN
- China
- Prior art keywords
- task
- session
- program
- identification information
- message
- 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
Links
- 238000004590 computer program Methods 0.000 title claims description 19
- 238000004891 communication Methods 0.000 claims abstract description 28
- 230000005540 biological transmission Effects 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims description 75
- 238000000034 method Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 14
- 230000015654 memory Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
在会话开始时,当构成会话的任务被分到每个功能中时,块ID被分配给各个块,以及创建作为块ID和任务ID的简化表的任务查找表。在进行消息通信时,发送源任务通过块ID来指定发送目标,以及通过参照任务查找表来获得任务ID。然后,指定发送目标的任务ID,以及消息发送/接收通过应用OS消息通信功能来执行。
Description
技术领域
本发明涉及在多个任务同时并行伪操作的多任务处理环境下执行应用程序的程序处理系统、程序处理方法以及计算机程序,特别涉及在应用程序同时并行使用多个功能操作时在多个功能中分担同一任务的程序处理系统、程序处理方法以及计算机程序。
更详细来说,本发明涉及管理这些功能分担的任务的资源和执行状态的程序处理系统、程序处理方法以及计算机程序,特别涉及当存在包含相同源代码的多个任务时,指定消息的目标以及执行消息通信的程序处理系统、程序处理方法以及计算机程序。
背景技术
随着近来大规模集成(LSI)技术的创新改进,各种信息处理装置及信息通信装置已经被开发和面市,因此它们在日常生活中广泛普及。在上述类型的装置中,在操作系统提供的执行环境下,中央处理器(CPU)或其它处理器执行预定程序代码以提供各种处理服务。
一般来说,操作系统具有多任务处理功能,其中,多个任务以时分方式被执行,使得看起来好像这些任务由多个处理器同时执行。通过使用多任务操作系统,应用程序作为各功能的任务来形成,多个任务可同时并行地伪操作。
但是,日本未审查的专利公布(Kokai)No.8-55037和No.8-106441中公开的操作系统包括任务单元中的管理功能,但在指定功能可由多个任务实现的情况下,操作系统不提供在其中集中管理与上述功能有关的一系列任务的机制。即,在多任务处理中,只有各任务的执行受到控制,但是没有考虑任务之间的相关性。因此,需要各个任务来管理任务之间的相关性,因而降低了程序的可成形性和可维护性。
存在同一个任务将在同时并行操作的多个功能中分担的情况,但是,在操作系统中没有提供用于管理要分担的任务的机制。
此外,在上述多任务处理环境下,可假定存在具有相同源代码的多个任务的情况,但是,这些任务无法被动态指定。
在一般对象间通信中,消息的目标的标识通过应用操作系统的对象标识功能来完成(例如,参照专利文档1和专利文档2)。但是,在多个会话中开始同一个任务的情况下,仅通过运用用于标识任务的任务标识符,可能无法指定该任务要包含在哪个会话中。
发明公开
本发明的一个目的是提供能够在应用程序同时并行采用若干功能操作的情况下优选地在多个功能中分担同一任务的程序处理系统、程序处理方法以及计算机程序。
本发明的另一个目的是提供能够优选地管理多个功能所分担的任务的资源和执行状态的程序处理系统、程序处理方法以及计算机程序。
本发明的另一个目的是提供能够在存在包含相同源代码的多个任务的情况下指定消息的目标以及优选地执行消息通信的程序处理系统、程序处理方法以及计算机程序。
考虑到上述目的而作出本发明,根据本发明的第一方面,提供一种程序处理系统,它在其中多个任务并行伪操作的多任务处理环境下以及在提供任务间通信功能的多任务操作系统所提供的执行环境下执行包括多个任务的程序,该系统具有:会话定义部件,用于定义在程序所提供的每个功能中实现功能所需的任务及其执行顺序作为会话;以及会话管理部件,用于管理执行会话所用的资源和执行状态,其中,会话管理部件在开始会话时产生构成会话的各个任务的示例,向会话以及构成会话的各个任务的示例分配会话的标识信息和示例的标识信息,以及在各会话的任务查找表上管理各标识信息。
注意,上述系统表示一种其中在逻辑上聚集多个装置(或用于实现特定功能的功能模块)的实体,而各个装置或功能模块是否在相同外壳中并不重要。
根据本发明的程序处理装置还具有执行任务之间通信的消息通信单元。消息通信单元参考包含这些任务的会话的任务查找表,根据目标任务的示例标识信息来指定任务,以及执行消息的发送和接收。而且,消息通信部件内置于各个任务中。
根据本发明的应用程序包括多个任务,以及实现要提供的每个功能中的功能所需的任务及其执行顺序被定义为会话。通过在多任务处理环境下执行程序,包含相同源代码的任务在多个会话中同时开始。
一般操作系统提供任务间通信功能,但无法动态指定包含相同源代码的任务。然后,在本发明中,当会话开始时,块ID被分配在各个块中,其中会话被分为各功能中的任务,以及形成用作块ID和任务ID的快速参考表的任务查找表。块ID对应于会话开始时产生的任务的示例的标识信息。
当某个任务向另一个任务发送消息时,发送方的任务指定目标为块ID,并参考任务查找表以得到任务ID。然后,指定目标的任务ID,以及消息可通过操作系统中的消息通信功能来发送和接收。
因此,根据本发明,在存在包含相同源代码的多个任务的情况中,指定消息的目标,以及可优选地执行消息通信。
根据本发明的第二方面,提供一种以计算机可读格式描述的计算机程序,以便实现在其中多个任务并行操作的多任务处理环境下以及在提供任务间通信功能的多任务操作系统所提供的执行环境下执行的多个功能,该程序具有:会话定义部件,用于定义在程序所提供的每个功能中实现功能所需的任务及其执行顺序作为会话;会话管理部件,用于管理执行会话所用的资源和执行状态;以及消息通信部件,用于在任务之间通信,其中,会话管理部件在开始会话时产生构成该会话的各个任务的示例,向会话以及构成会话的各个任务的示例分配会话的标识信息和示例的标识信息,并且在各会话的任务查找表上管理各个标识信息,以及消息通信部件根据从任务查找表提供的目标任务的示例标识信息,通过应用其中提供操作系统的任务间通信功能,执行消息的发送和接收。
根据本发明的第二方面的计算机程序定义以计算机可读形式描述的计算机程序,以便在计算机系统上实现预定处理。换言之,通过把根据本发明的第二方面的计算机程序安装到计算机系统,在计算机系统上执行协作工作,因而可与根据本发明的第一方面的程序处理系统相似地获得操作模式和效果。
通过更详细地参照下面说明的实施例和附图,根据本发明的其它目的、特征和优点将会非常清楚。
附图简介
图1是视图,示意说明根据本实施例的程序处理系统的配置。
图2是视图,示意说明应用程序的配置。
图3是视图,示意说明DVD记录和再现装置中的内置应用的配置。
图4是视图,用于说明程序处理装置10的任务间通信功能的机制。
图5是视图,示意说明任务查找表150的配置的一个实例。
图6是流程图,说明提供任务查找表的过程。
图7是视图,说明在多任务处理环境下会话B开始的情况中提供任务查找表的过程流程。
图8是流程图,说明通过参考任务查找表来获取任务ID以便发送和接收消息的过程。
图9是视图,说明通过应用从任务查找表提供的任务ID以及操作系统的任务间通信功能来执行消息的发送和接收的流程。
图10是视图,说明其中包含相同源代码的多个任务的示例开始的情况。
图11是视图,用于说明在其中应用根据本发明的消息通信方法的情况下任务的源代码中的发送单元和接收单元的描述方法。
图12是视图,用于说明在消息从某个任务发送到另一个任务的情况下在源代码中直接描述ID以实现消息的发送和接收的实例。
实施本发明的最佳方式
A.系统配置
图1说明作为根据本发明的本实施例提供的程序处理系统10的配置。如图所示,程序处理系统10包括处理器11、随机存取存储器(RAM)12、只读存储器(ROM)13、多个输入和输出装置14-1、14-2、...、以及定时器15。
处理器11用作程序处理系统10的主控制器,并在操作系统(OS)的控制下执行各种程序代码、例如应用程序。例如,操作系统采用内置类型来形成。
操作系统在其中管理和控制程序执行的单元称作“任务”。根据本实施例的程序处理系统10配备了多任务功能,它允许多个任务存在于程序中,按时分方式执行任务,以及频繁地转换任务,从而并行执行各个任务。因此,存在大于作为实际执行计算的示例的处理器的数量的任务数量,因此看起来好像并行执行多个任务。
操作系统在处理器11所处理的各个任务中分配其它任务可识别的任务ID,并管理任务的执行。注意,操作系统不考虑要执行的任务之间的相关性。
另一方面,要在程序处理系统10中执行的应用程序配置了要在多任务处理环境下执行的多个任务,并且可提供多个功能。例如,DVD记录和再现装置中的内置应用程序提供诸如在DVD的记录表面记录和再现的功能。在本说明中,实现每个所提供功能服务中的功能所需的任务及其执行顺序被定义为“会话”。而且,提供称作“会话管理器”的任务,并且管理用于执行所谓的会话的资源及其执行状态。以上所述的资源管理包括构成会话的任务的示例的产生以及通过应用任务所执行的输入和输出操作的管理。会话操作侧可实现必要的功能,而无需注意各个任务的状态。
处理器11通过总线16与其它装置等(以后描述)互连。对系统总线16上的各个装置提供特有的存储器地址或I/O地址,因而处理器11指定上述地址来实现对预定装置的访问。系统总线16是公共信号传送通路,其中包括地址总线、数据总线和控制总线。
RAM 12是可写存储器,并且用来加载在处理器11中执行的程序代码以及临时存储正执行程序的工作数据。作为程序代码,例如提到基本输入输出系统(BIOS)、用于硬件与外围设备配合工作的装置驱动程序、操作系统以及应用程序。
ROM 13是非易失性存储器,用于永久存储预定代码或数据,例如存储BIOS以及启动时的通电自检(POST)。
输入和输出装置14包括用于连接显示器21的显示器接口14-1、用于连接诸如键盘22和鼠标23等用户输入装置的用户输入装置接口14-2、用于连接诸如硬盘驱动器(HDD)24和媒体驱动器25等外部存储装置的外部存储装置接口14-3以及要连接到外部网络的网络接口卡(NIC)14-4。注意,要安装的输入和输出装置14的类型及配置取决于程序处理系统10的示例。
显示器接口14-1是独占接口控制器,用于实际处理处理器11发出的描述命令。例如,在显示器接口14-1中处理的描述数据被一次写入帧缓冲器(未示出),并由显示器21输出到屏幕。
HDD 24是(众所周知的)外部存储装置,在其中,用作存储载体的磁盘被固定安装,并且例如在存储容量和数据传输速率方面优于其它外部存储装置。一般来说,HDD 24例如非易失性地存储要由处理器11执行的操作系统的程序代码、应用程序以及装置驱动程序。把处于可执行状态的软件程序放入HDD 24的操作称作程序在系统中的“安装”。例如,用于实现本发明的操作系统以及经过设计使得存在多个任务的应用程序可安装在HDD 24上。
媒体驱动器25是用于加载诸如光盘(CD)、磁光盘(MO)、数字通用盘(DVD)之类的便携媒体以及用于访问其数据存储表面的装置。
使用便携媒体,以便例如对作为计算机可写格式数据的软件程序和数据文件进行备份,或者以便在系统之间传递它们(即,包括销售、分发和分割)。例如,通过使用上述便携媒体,用于实现本发明的操作系统以及经过设计使得存在多个任务的应用程序可在装置之间以物理方式分发和分割。
网络接口14-1可根据预定通信协议、如以太网(注册商标),把系统10连接到诸如局域网(LAN)之类的本地网以及连接到诸如因特网之类的宽带网。
在网络上,多个主机终端以透明状态连接,因而构成分散计算环境。在网络上可传送软件程序、数据内容等。例如,用于实现本发明的操作系统以及经过设计使得存在多个任务的应用程序可通过网络下载。
对各个输入和输出装置14-1、14-2、...分配中断级,以及响应预定事件出现(例如,键盘输入、鼠标点击或者其它GUI处理,或者硬盘中数据传输的完成),它们可通过中断请求信号线19来通知处理器11。处理器11响应这种中断请求而执行相应的中断处理程序。
定时器15是用于以预定周期产生定时器信号的装置。也对定时器15分配中断级,因而它通过中断请求信号线19对处理器11产生定期中断。
B.应用程序的配置
在本实施例中,应用程序配备了要在多任务处理环境下执行的多个任务,并且可提供多个功能。图2示意说明应用程序100的配置。
根据所示应用程序100,通过链接并行操作的多个任务,实现特定功能。一系列操作称作会话,与会话的操作有关的任务称作会话配置任务。在所述实例中,定义配备任务111、任务112和任务113的执行顺序的会话101以及配备任务112、任务114和任务115的执行顺序的会话102。
构成应用程序100的任务之一是管理各会话中的功能的执行的会话管理器110。为了集中管理应用程序100中的整个会话,会话管理器110提供预先静态定义的会话注册表130。会话注册表130存储各会话的标识号、构成会话的任务的标识号和执行顺序以及会话中使用的硬件资源。
在会话注册表130中注册与构成会话的多个任务对应的任务标识号。在这种情况中,同一个任务可在不同会话中重叠并注册。在图2所示的实例中,在会话101和会话102中注册了任务112。
通过应用会话注册表130,会话管理器110管理用于执行会话的资源以及执行状态。以上所述的资源管理包括构成会话的任务的示例的产生以及通过应用任务所执行的输入和输出操作的管理。
采用与任务相同的方式,会话可转换诸如开始、中断、重新开始、终止等操作的执行状态。会话单元中执行状态的操作和管理由会话管理器110响应来自外部的命令来执行。
在会话的操作的情况中,会话管理器110与构成会话的整个任务一起操作,因而会话操作请求侧不需要注意各个会话配置任务。
会话的开始由会话管理器110来执行,它从会话注册表130中读取构成相应会话的各个任务的标识号以及使相应任务一起开始。在以上情况中,会话管理器110产生相应会话的会话管理表,并且记录和监督相应会话的标识号和操作状态以及各个会话配置任务。
会话的中断和重新开始的操作同时由会话管理器110执行,它对于具有指定标识号的会话中断或重新开始会话管理表中所记录的会话配置任务的执行。
此外,会话的终止由会话管理器110强制性执行,它终止所有会话配置任务以及删除相应会话的会话管理表。
在上述会话操作的情况中构成会话的各个任务的操作通过会话管理器110发出对操作系统的系统调用来控制。可在单个应用程序中注册多个会话,因而能够同时并行地操作多个会话。另外还能够同时操作相同种类的会话。此外,还能够在不同种类的会话之间分担同一个任务。
在此,取DVD记录和再现装置中的内置应用程序作为一个实例,以及将描述根据本发明的应用程序的操作的功能配置及模式。
图3说明DVD记录和再现装置中的内置应用程序的配置。
应用程序配备了多个任务。在所述实例中,构成应用程序的任务存储在软件块中(注意,除会话管理器之外),并且包括诸如再现控制任务、记录控制任务、输入和输出控制任务、复用任务、去复用任务、视频编码任务、视频解码任务、音频编码任务、音频解码任务以及存储器控制任务之类的任务。而且,通过诸如输入和输出控制装置、复用装置、去复用装置、视频信号控制装置、音频信号控制装置以及存储器等硬件资源来运用应用程序。
通过链接并行操作的多个任务,应用程序实现在DVD的记录表面中再现或记录的特定功能。在此,与上述再现或记录有关的一系列操作称作“再现会话”或“记录会话”。
在所述实例中,再现会话由诸如再现控制任务、输入和输出控制任务、去复用任务、视频解码任务、音频解码任务以及存储器控制任务之类的会话配置任务来定义。而且,记录会话由诸如记录控制任务、输入和输出控制任务、复用任务、视频编码任务、音频编码任务以及存储器控制任务之类的会话配置任务来定义。
构成应用程序的任务之一是管理各会话中的操作的执行的会话管理器。为了集中管理应用程序中的整个会话,会话管理器配备了预先静态定义的会话注册表。会话注册表存储诸如再现会话和记录会话之类的会话的标识号、构成各个会话的任务的标识号和执行号以及每个会话中使用的硬件资源。
在会话注册表中,注册与构成会话的多个任务对应的任务标识号。在这种情况中,相同的任务可在不同的会话之中注册及重叠。在图3所示的实例中,输入和输出控制任务以及存储器控制任务分别在再现会话和记录会话中注册。
从外部指示会话的开通时,会话管理器参考会话注册表,获取构成相应会话的任务以及每个任务所使用的硬件资源,产生会话配置任务的示例,以及管理示例对硬件资源所执行的输入和输出操作。
采用与任务相同的方式,这些会话可转换诸如开始、中断、重新开始和终止等操作的执行状态。会话单元中执行状态的操作和管理由会话管理器响应来自外部的命令来执行。在会话的操作的情况中,会话管理器一起执行构成会话的整个任务的操作,因而请求会话操作的一侧不需要注意各个会话配置任务。
在图3所示的实例中,注册再现会话、记录会话以及其它会话。在所述实例中,再现会话、记录会话和其它会话同时并行操作。而且两个再现会话同时操作。在诸如再现会话和记录会话之类的不同种类的会话之间,分担输入和输出控制任务以及存储器控制任务。再现会话1、记录会话2以及再现会话1示出了其中产生软件块中的会话配置任务的示例的图像。
C.任务之间的任务标识和消息通信
在前一部分B中,说明了以下要点:配备了多个任务并在多任务处理环境下执行的应用程序定义实现每个所提供功能中的相应功能所需的任务及其执行顺序作为会话,并管理用于执行其中调用构造为任务之一的会话管理器的会话的资源及其执行状态。因此,可作为会话集中管理多个任务,因而可应用任务单元中形成的优点,例如执行效率、生产率、便携性以及可维护性。另外,在操作会话的一侧,可实现必要的功能,而无需注意各个任务。而且任务可在会话之间分担,因此,可以比仅包括任务的传统应用程序更有效地开发应用程序。
另一方面,在配备这种会话定义和会话管理功能的应用程序中,在多任务操作系统上操作时,具有相同源代码的任务极有可能在会话中一起开始(例如,参照图3)。
在上述情况中,在对源代码应用操作系统所提供的消息功能或标记功能的情况下,程序开发人员可能需要预先理解多个会话,并对它们进行编码,即,多个会话以及多个任务需要静态确定。相反,如果根据多个会话和多个任务是固定的假设来执行编码,则在执行功能扩展或再用的情况中,源代码的改变的一部分可能很大,因此降低了可扩展性或可再用性。
为了克服上述缺点,本发明针对实现能够处理多个会话或者多个任务的变化的机制。
一般内置装置(例如DVD记录和再现装置)把任务分割及安装到各功能块中。首先,在各功能中定义和添加块ID。而且,任务包括接收单元,例如消息箱或邮箱。
图4说明根据本实施例的程序处理系统10的任务间通信功能的一种机制。如图所示,程序处理系统10的任务间通信功能配备多任务操作系统140、会话管理器110、用于查找会话中的各功能块的任务的任务查找表150以及用于管理任务查找表150的表控制单元。
会话由会话管理器110构成,以及构成会话的任务通过使用多任务操作系统140来开始。
任务查找表150是用于查找会话中的各功能块的任务的快速参考表。图5说明任务查找表150的配置的一个实例。如图所示,任务查找表150在每个会话中被制表,以及注册各会话的会话ID、构成会话的各块的块ID以及与块对应的任务的任务ID。
图6说明用于产生任务查找表的过程的流程图。图7说明在多任务处理环境下开始会话B时产生任务查找表的情况中的处理流程。
当通过命令接口指示会话开通时,会话开始(步骤S1),以及会话管理器110向表查询空白会话号(步骤S2,P1)。
表控制单元160中的表管理单元161查阅任务查找表150,搜索空白会话ID(步骤S2,P3),以及把空白会话ID通知会话管理单元162(P5)。
而且,为了通过应用空白会话ID来开始会话,会话管理单元162把会话ID的应用通知表管理单元161(步骤S3,P1)。表管理单元161响应上述通知而确保在会话查找表150上使用该会话ID(P2)。会话管理单元162以该会话ID开始会话,以及向操作系统140指示属于该会话的各任务的开始(步骤S4)。
会话管理单元162向操作系统140指示任务的开始,以及同时把块ID和任务ID通知表管理单元163(步骤S5,P1)。表管理单元161在任务查找表中记录任务ID和块ID(P2)。结合会话ID和块ID以便实现任务中的示例的标识。
步骤S4和S5的处理被执行,直到没有要开始的任务为止(步骤S6),以及要开始的整个任务(即构成会话的整个任务)在相应会话的任务查找表中注册。而且,当要开始的整个任务的注册处理完成时,完成会话的开始(步骤S7)。
注意,任务查找表的注册可能不是在构成会话的每个任务的每次开始时执行,而是可能在开始任务之前或者在一起开始整个任务之后来执行。
这样,在每个开始的会话中形成任务查找表,因此功能块与会话中的任务之间的对应变得清楚。而当某个正开始的任务向其它任务传送消息时,通过参考任务查找表,正开始的任务可得到将作为目标的任务ID。
图8说明通过参考任务查找表来获取任务ID以便发送或接收消息的过程的流程图。图9说明通过应用从任务查找表提供的任务ID来发送或接收与操作系统的任务间通信功能配合使用的消息的流程。
当某个任务在相同会话中发送消息时(步骤S8),发送方的任务需要知道将作为目标的任务的邮箱ID。根据本实施例的程序处理系统100把邮箱ID定义为任务ID,需要准备目标的任务ID。
为了准备目标的任务ID,首先参考相应会话的任务查找表以及指定块ID(步骤S9)。在对其它会话执行传送的情况下,还可指定会话ID,但假定消息被传送给相同会话中的任务。
在指定块ID之后,发送方的任务把块ID传送给表管理单元161(P6)。任务ID获取单元163指示表管理单元161从块ID获得任务ID(P7)。表管理单元161响应这个指令而获取发送方的任务所属的会话的会话ID(步骤S10),从对应于会话的任务查找表中获得任务ID(P3),以及通知任务ID获取单元163(P8)。任务ID获取块把所接收的任务ID作为目标任务ID传送给请求它的任务(P9)。
通过上述操作,发送方任务获得相同会话中的目标任务的任务ID(步骤S11)。消息目标的消息箱ID与发送任务的任务ID相同,因此,把任务ID作为消息发送ID来应用。因此,必需确定(tid=mid)消息箱的ID(mid)。
然后,为了发送消息,发送方任务把消息箱ID(这里为目标任务的任务ID)和消息发送给操作系统140中包含的消息发送块141(步骤S12,P10)。操作系统140指定消息箱ID,并把消息通过消息接收块142传送给目标任务(步骤S13,P12)。
发送方的任务ID包含在要从发送方任务发送到目标任务的消息中,因此,从目标任务到发送方任务的消息传送可把消息返回给发送方,而无需从表中查找任务ID(P13,P14和P15)。
注意,在以上说明中,发送消息的方法是作为示范,但通过例如邮箱、标记或数据队列中的相同过程,实施例是可行的。
D.源代码的描述
根据本实施例的应用程序配备了多个任务,并且定义实现每个所提供功能中的功能所需的任务及其执行顺序作为会话。而且,通过在多任务处理环境下的执行,包含相同源代码的任务在多个会话中同时开始。
一般操作系统提供任务间通信功能,但不动态指定包含相同源代码的任务。因此,在本实施例中,当会话开始时,块ID被分配给各个块,其中会话被分为每个功能中的任务,以及准备用作块ID和任务ID的快速参考表的任务查找表。因此,当某个任务向另一个任务发送消息时,发送方任务指定目标作为块ID,并查阅任务查找表以得到任务ID。然后,指定目标的任务ID,以及可通过应用操作系统的消息通信功能来发送和接收消息。
因此,在存在包含相同源代码的多个任务的情况中,指定消息的目标,以及最好是可执行消息通信。下面将参考构成任务的源代码来描述根据本实施例的消息通信的机制。
图10说明其中开始包含相同源代码的任务的示例的情况。
如图所示,任务A的源代码包含由代码“rcv_msg(*msg)”构成的消息的接收单元以及由代码“snd_msg(*msg)”构成的消息的发送单元。任务的源代码可包含接收单元。
响应来自命令接口的会话开通的指令,操作系统开始构成会话的整个任务,作为结果,产生其示例。而且,在相同任务包含在其中指示了开通的多个会话中的情况下,如图所示,开始包含相同源代码的多个任务。如上所述,当任务开始时,任务ID与块ID之间的对应关系在与该会话有关的任务查找表中注册。
图11说明在其中应用根据本发明的消息通信方法的情况下任务的源代码中的发送单元和接收单元的描述方法。
任务A的源代码包含由代码“rcv_msg(*msg)”构成的消息的接收单元以及由代码“snd_msg(*msg)”构成的消息的发送单元。
如上所述,在本实施例中,块ID在会话中的各功能块中分配,以便准备会话查找表。因此,发送方的任务可从目标的任务的块ID(did)搜索任务ID(tid),并且可通过应用“tid”来发送消息。
在图11所示的实例中,在将作为发送方的任务1中,目标的任务通过应用块ID(did=2)来指定,另外,通过用块ID查阅任务查找表得到的任务ID替代变量stid(stid=get_tid_from_bid(bid)),stid被指定为目标(snd_msg(stid,*msg)),以及发送消息。另一方面,将作为目标的任务的源代码可包含接收单元(与以上所述相同)。即,发送方任务的tid通过代码“get_tid(tid)”来获得,以及消息可通过代码“rcv_msg(tid,+msg)”从发送方任务接收。
因此,源代码不一定会改变,即使应用程序中包含的会话数量被增加或者任务的配置被改变。
注意,在消息从某个任务传送到另一个任务的情况下,通过在源代码中直接描述ID,可在包含相同源代码的任务在会话中同时开始的环境下实现消息通信的发送和接收。图12说明上述情况的一个实例。
在图12所示的实例中,发送方任务的源代码配备了与开始时的会话ID对应的发送单元。即,在会话1中开始任务的情况下,消息的目标的任务ID为二。在另外的会话中开始任务的情况下,同样的任务ID为三。
(补充)
参照具体实施例详细地说明本发明。但是很清楚,本领域的技术人员可在本领域修改或替换本实施例,而没有背离本发明的基本概念和范围。即,本发明在本实施例中作为实例公开,因此,本说明中的所述内容不应当限制性地解释。为了判定本发明的基本概念和范围,应当考虑权利要求书的部分。
如上所述,根据本发明,可提供最好是在应用程序同时通过若干功能并行操作的情况下在多个功能中可分担同一个任务的程序处理系统、程序处理方法以及计算机程序。
而且,根据本发明,可提供最好是可管理多个功能中分担的任务的资源及其执行状态的程序处理系统、程序处理方法以及计算机程序。
而且,根据本发明,可提供最好是能够在存在包含相同源代码的多个任务的情况下指定消息目标以及执行消息通信的程序处理系统、程序处理方法以及计算机程序。
根据本发明,在由没有动态指定将作为目标的任务以及消息的发送和接收目标的功能的操作系统所提供的执行环境中,该功能可在操作系统外部提供。而且,通过安装上述消息发送和接收功能,源代码根据类型或特性的变化的变化量可减小,从而引起生产率的改进。
工业适用性
本发明适用于在其中多个任务同时并行伪操作的多任务处理环境下执行应用程序的系统。
Claims (12)
1.一种程序处理系统,在其中多个任务并行伪操作的多任务处理环境下以及在提供任务间通信功能的多任务操作系统所提供的执行环境下执行包括多个任务的程序,所述系统包括:
会话定义部件,用于定义在所述程序提供的每个功能中实现功能所需的任务及其执行顺序作为会话,以及
会话管理部件,用于管理执行所述会话所用的资源和执行状态,
其中,所述会话管理部件在开始所述会话时产生构成所述会话的各个任务的示例,把所述会话的标识信息和所述示例的标识信息分配给所述会话以及构成所述会话的所述各个任务的所述示例,以及在各会话的任务查找表中管理各标识信息。
2.如权利要求1所述的程序处理系统,其特征在于,产生所述任务查找表,以便在多个所述会话当中分担同一个任务。
3.如权利要求1所述的程序处理系统,其特征在于,还包括消息通信部件,用于参考包含所述任务的所述会话的所述任务查找表,根据目标任务的示例标识信息来指定所述任务,以及执行消息的发送和接收。
4.如权利要求3所述的程序处理系统,其特征在于,所述消息通信部件根据从所述任务查找表提供的所述目标任务的所述示例标识信息,通过应用所述操作系统所提供的所述任务间通信功能来执行消息的发送和接收。
5.如权利要求3所述的程序处理系统,其特征在于,所述消息通信部件内置于各个任务中。
6.一种程序处理方法,在其中多个任务并行操作的多任务处理环境下以及在提供任务间通信功能的多任务操作系统所提供的执行环境下执行由多个任务组成的程序,所述方法包括:
定义在所述程序提供的每个功能中实现功能所需的任务及其执行顺序作为会话的会话定义步骤,以及
管理执行所述会话所用的资源和执行状态的会话管理步骤,
其中,在所述会话管理步骤中,在开始所述会话时产生构成所述会话的各个任务的示例,把所述会话的标识信息和所述示例的标识信息分配给所述会话以及构成所述会话的所述各个任务的所述示例,以及在各会话的任务查找表中管理所述各个标识信息。
7.如权利要求6所述的程序处理方法,其特征在于,还包括产生所述任务查找表以便在多个所述会话当中分担同一个任务的步骤。
8.如权利要求6所述的程序处理方法,其特征在于,在所述任务之间通信时,还包括以下消息通信步骤:参考包含所述任务的所述会话的所述任务查找表,根据目标任务的示例标识信息来指定所述任务,以及执行消息的发送和接收。
9.如权利要求6所述的程序处理系统,其特征在于,所述消息通信步骤根据从所述任务查找表提供的所述目标任务的所述示例标识信息,通过应用所述操作系统所提供的所述任务间通信功能来执行消息的发送和接收。
10.一种计算机程序,以计算机可读格式描述它,以便实现在其中多个任务并行操作的多任务处理环境下以及在提供任务间通信功能的多任务操作系统所提供的执行环境下执行的多个功能,所述程序包括:
会话定义部件,用于定义所述程序所提供的各功能的实现所述功能所需的任务及其执行顺序作为会话;
会话管理部件,用于管理执行所述会话所用的资源和执行状态;以及
消息通信部件,用于在所述任务之间通信,
其中,所述会话管理部件在开始所述会话时产生构成所述会话的各个任务的示例,把所述会话的标识信息和所述示例的标识信息分配给所述会话以及构成所述会话的所述各个任务的所述示例,以及在各会话的任务查找表中管理所述各个标识信息,以及
所述消息通信部件根据从所述任务查找表提供的目标任务的示例标识信息,通过应用所述操作系统所提供的所述任务间通信功能来执行消息的发送和接收。
11.如权利要求10所述的计算机程序,其特征在于,所述消息通信部件内置于各个任务中。
12.一种计算机程序,以计算机可读格式描述它,以便在其中多个任务并行操作的多任务处理环境下以及在提供任务间通信功能的多任务操作系统所提供的执行环境下,在计算机系统中执行包含多个任务的程序的处理,所述程序包括:
定义所述程序所提供的各功能的实现所述功能所需的任务及其执行顺序作为会话的会话定义步骤,以及
管理执行所述会话所用的资源和执行状态的会话管理步骤,
其中,在所述会话管理步骤中,在开始所述会话时产生构成所述会话的各个任务的示例,把所述会话的标识信息和所述示例的标识信息分配给所述会话以及构成所述会话的所述各个任务的所述示例,以及在每个会话中的任务查找表中管理所述各个标识信息,以及
在所述消息通信步骤中,根据从所述任务查找表提供的目标任务的示例标识信息,通过应用所述操作系统所提供的所述任务间通信功能来执行消息的发送和接收。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003129545A JP2004334537A (ja) | 2003-05-07 | 2003-05-07 | プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム |
JP129545/2003 | 2003-05-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1816800A true CN1816800A (zh) | 2006-08-09 |
CN100390741C CN100390741C (zh) | 2008-05-28 |
Family
ID=33432077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800191357A Expired - Fee Related CN100390741C (zh) | 2003-05-07 | 2004-05-07 | 程序处理系统、程序处理方法以及计算机程序 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7802253B2 (zh) |
EP (1) | EP1622017A4 (zh) |
JP (1) | JP2004334537A (zh) |
KR (1) | KR20060008965A (zh) |
CN (1) | CN100390741C (zh) |
WO (1) | WO2004099984A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681905A (zh) * | 2011-03-09 | 2012-09-19 | 新奥特(北京)视频技术有限公司 | 一种任务之间的相互通讯方法及系统 |
US11410075B2 (en) | 2018-01-15 | 2022-08-09 | Microsoft Technology Licensing, Llc | Contextually-aware recommendations for assisting users with task completion |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5119590B2 (ja) | 2005-11-10 | 2013-01-16 | 富士通セミコンダクター株式会社 | マルチプロセッサを有するプロセッサ装置用のタスク分配プログラム及びタスク分配装置 |
CN101047706B (zh) * | 2006-03-27 | 2011-07-06 | 华为技术有限公司 | 一种接入网会话控制系统及方法 |
WO2007104264A1 (fr) * | 2006-03-16 | 2007-09-20 | Huawei Technologies Co., Ltd. | Procede et systeme de commande de session, et appareil d'attribution d'identificateur de session associe dans un reseau d'acces |
JP5452125B2 (ja) | 2009-08-11 | 2014-03-26 | クラリオン株式会社 | データ処理装置及びデータ処理方法 |
JP2011253511A (ja) * | 2010-06-02 | 2011-12-15 | Minoru Yoshida | 情報生成システム及びその方法 |
CN101976208B (zh) * | 2010-10-25 | 2014-08-13 | 中兴通讯股份有限公司 | 信息投递的方法和装置 |
JP6275276B2 (ja) * | 2014-11-14 | 2018-02-07 | 三菱電機株式会社 | サーバー装置、クライアント装置、サーバー装置プログラム、セッション管理方法、及びクライアントサーバーシステム |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5487170A (en) | 1993-12-16 | 1996-01-23 | International Business Machines Corporation | Data processing system having dynamic priority task scheduling capabilities |
CA2149476A1 (en) | 1994-06-21 | 1995-12-22 | James Michael Magee | Capability engine method and apparatus for a microkernel data processing system |
EP0689137A3 (en) | 1994-06-22 | 1998-01-07 | International Business Machines Corporation | Message control structure registration method and apparatus for a microkernel data processing system |
FR2723652B1 (fr) * | 1994-08-11 | 1996-09-13 | Cegelec | Procede pour ordonnancer des taches successives |
JPH09223004A (ja) | 1996-02-19 | 1997-08-26 | Nippon Telegr & Teleph Corp <Ntt> | プログラム開発支援方法 |
US6112023A (en) * | 1997-02-24 | 2000-08-29 | Lucent Technologies Inc. | Scheduling-based hardware-software co-synthesis of heterogeneous distributed embedded systems |
GB9710522D0 (en) | 1997-05-23 | 1997-07-16 | Rolls Royce Plc | Control system |
US6678714B1 (en) * | 1998-11-16 | 2004-01-13 | Taskserver.Com, Inc. | Computer-implemented task management system |
EP1176507A3 (en) * | 2000-07-24 | 2005-08-17 | Sony Corporation | Information processing method, inter-task communication method, and computer-executable program for the same |
WO2002054238A2 (en) * | 2000-12-29 | 2002-07-11 | Honeywell International Inc. | Methods and apparatus for sharing slack in a time-partitioned system |
JP2002342097A (ja) * | 2001-05-17 | 2002-11-29 | Matsushita Electric Ind Co Ltd | タスク割当可能時間決定装置及びタスク割当可能時間決定方法 |
CN1152542C (zh) * | 2001-06-12 | 2004-06-02 | 华为技术有限公司 | 一种多任务操作系统中任务进程的保护方法 |
JP2003122586A (ja) * | 2001-08-09 | 2003-04-25 | Matsushita Electric Ind Co Ltd | タスク・スケジューリング装置 |
US20030037091A1 (en) | 2001-08-09 | 2003-02-20 | Kozo Nishimura | Task scheduling device |
US7203943B2 (en) * | 2001-10-31 | 2007-04-10 | Avaya Technology Corp. | Dynamic allocation of processing tasks using variable performance hardware platforms |
US7194385B2 (en) * | 2002-11-12 | 2007-03-20 | Arm Limited | Performance level setting of a data processing system |
-
2003
- 2003-05-07 JP JP2003129545A patent/JP2004334537A/ja active Pending
-
2004
- 2004-05-07 CN CNB2004800191357A patent/CN100390741C/zh not_active Expired - Fee Related
- 2004-05-07 EP EP04731769A patent/EP1622017A4/en not_active Withdrawn
- 2004-05-07 KR KR1020057020822A patent/KR20060008965A/ko not_active Application Discontinuation
- 2004-05-07 US US10/555,355 patent/US7802253B2/en not_active Expired - Fee Related
- 2004-05-07 WO PCT/JP2004/006510 patent/WO2004099984A1/ja active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681905A (zh) * | 2011-03-09 | 2012-09-19 | 新奥特(北京)视频技术有限公司 | 一种任务之间的相互通讯方法及系统 |
US11410075B2 (en) | 2018-01-15 | 2022-08-09 | Microsoft Technology Licensing, Llc | Contextually-aware recommendations for assisting users with task completion |
Also Published As
Publication number | Publication date |
---|---|
CN100390741C (zh) | 2008-05-28 |
EP1622017A4 (en) | 2007-11-07 |
US20070162910A1 (en) | 2007-07-12 |
WO2004099984A1 (ja) | 2004-11-18 |
KR20060008965A (ko) | 2006-01-27 |
EP1622017A1 (en) | 2006-02-01 |
JP2004334537A (ja) | 2004-11-25 |
US7802253B2 (en) | 2010-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1270239C (zh) | 处理系统或计算机系统的任务控制方法 | |
CN1280705C (zh) | 打印控制系统、信息处理装置、功能提供装置 | |
CN1285042C (zh) | 用于传送内容数据的内容服务器和方法 | |
CN1669015A (zh) | 解析用以流化数据的分布式拓扑结构 | |
CN1906580A (zh) | 对于具有可移动对象的启用网格的虚拟机的方法和系统 | |
CN1645330A (zh) | 用于应用程序分布式管理的启用网格的虚拟机的方法和系统 | |
JP2012155768A (ja) | マシンから仮想マシンへの変換 | |
CN1716325A (zh) | 打印机、pos系统、无线通信控制方法和信息记录媒体 | |
CN1852101A (zh) | 一种并行下载方法和终端 | |
CN1685395A (zh) | 用于使用多个应用的系统和方法 | |
CN1975679A (zh) | 用于优化分段资源分配的方法和设备 | |
CN1629792A (zh) | 图像处理装置、控制方法、及存储媒体与程序 | |
WO2022142601A1 (zh) | 应用程序的构建方法、装置及计算机设备 | |
CN1881977A (zh) | 通信装置和命令发送方法 | |
CN101038545A (zh) | 操作系统内核构件跨域运行的方法 | |
CN1801756A (zh) | 迁移程序、信息处理装置、计算机系统和存储有迁移程序的计算机可读记录介质 | |
CN1924842A (zh) | 用于i/o适配器的方法和装置 | |
CN1591339A (zh) | 提供共享Web模块的系统和方法 | |
CN1890657A (zh) | Rdma完成和重传系统以及方法 | |
CN1816800A (zh) | 程序处理系统、程序处理方法以及计算机程序 | |
CN1924803A (zh) | 处理不同模态的数据的装置和方法 | |
CN1906584A (zh) | 信息处理装置、处理控制方法和计算机程序 | |
CN1659536A (zh) | 用于在便携设备中再现多媒体的系统 | |
CN1220957C (zh) | 计算机网络、终端、许可管理方法和服务器 | |
JP2004310615A (ja) | プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム |
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: 20080528 Termination date: 20150507 |
|
EXPY | Termination of patent right or utility model |