WO2004099984A1 - プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム - Google Patents

プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
WO2004099984A1
WO2004099984A1 PCT/JP2004/006510 JP2004006510W WO2004099984A1 WO 2004099984 A1 WO2004099984 A1 WO 2004099984A1 JP 2004006510 W JP2004006510 W JP 2004006510W WO 2004099984 A1 WO2004099984 A1 WO 2004099984A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
session
program
identification information
tasks
Prior art date
Application number
PCT/JP2004/006510
Other languages
English (en)
French (fr)
Inventor
Munehiro Shimomura
Original Assignee
Sony Corporation
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 Sony Corporation filed Critical Sony Corporation
Priority to EP04731769A priority Critical patent/EP1622017A4/en
Priority to US10/555,355 priority patent/US7802253B2/en
Publication of WO2004099984A1 publication Critical patent/WO2004099984A1/ja

Links

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
    • 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/54Interprogram communication

Definitions

  • the present invention relates to a program processing system and a program processing method for executing an application in a multitask environment in which a plurality of tasks operate in a pseudo-simultaneous and parallel manner, and a computer program, and in particular, the application has a plurality of functions.
  • the present invention relates to a program processing system and a program processing method in which a plurality of functions share the same task when operating concurrently, and a computer program.
  • the present invention relates to a program processing system and a program processing method for managing a resource and an execution state of a task shared by a plurality of functions, and a computer program.
  • the present invention relates to a program processing system and a program processing method for performing message communication by specifying a message transmission destination when there are a plurality of such devices, and a computer program.
  • the operating system executes multiple tasks in a time-sharing manner, thus executing more tasks at the same time than the number of processors. It has a multitasking function that makes it look as if it were. Multitasking ⁇
  • applications can be created as tasks for each function, and multiple tasks can be run in a pseudo-simultaneous and parallel manner.
  • the destination of a message is specified using the object identification function of the operating system (for example, refer to Patent Documents 1 and 2).
  • object identification function for example, refer to Patent Documents 1 and 2.
  • Disclosure of the invention is not possible to specify which session the task belongs to simply by using a task identifier for identifying the task. Disclosure of the invention
  • An object of the present invention is to provide an excellent program capable of suitably sharing the same task by a plurality of functions when an application operates a plurality of functions simultaneously in parallel.
  • the present invention relates to a processing system, a program processing method, and a computer program.
  • a further object of the present invention is to provide an excellent program processing system and program processing method, and a computer program, which can specify a message transmission destination and appropriately perform message communication when there are a plurality of tasks having the same source code. It is about sharing programs.
  • the present invention has been made in consideration of the above problems, and a first aspect of the present invention is to provide a multitask environment that provides a pseudo-parallel execution of a plurality of tasks and a multitask resource that provides an intertask communication function.
  • a program processing system that executes a program consisting of multiple tasks in the execution environment provided by the rating system, and for each function that the program shares, the tasks required to realize the function and the execution order are described.
  • a session definition means defined as a session;
  • the session management means generates an instance of each task constituting the session at the time of starting the session, and allocates session identification information and instance identification information to the session and the instance of each task constituting the session.
  • system here refers to a logical collection of multiple devices (or functional modules that realize specific functions), and each device or functional module is in a single housing. It does not matter in particular.
  • a program processing device provides a message communication for performing communication between tasks. Means are further provided.
  • the message communication means identifies the task based on the instance identification information of the destination task by referring to the lookup table and the task of the session including the task.
  • the message can be sent and received using the inter-task communication function that the tinting system shares.
  • Such message communication means can be inserted into each task.
  • the application program according to the present invention is composed of a plurality of tasks, and for each provided function, a task necessary for realizing the function and an execution order thereof are defined as a session. Then, by executing in a multitasking environment, tasks with the same source code are started simultaneously in multiple sessions.
  • a typical operating system has an intertask communication function, but cannot dynamically identify multiple tasks with the same source code. Therefore, in the present invention, when a session is started, a block ID is assigned to each block when a task is divided for each function, and a task / knockup table which is a quick reference table of a block ID and a task ID. Create a table.
  • the block ID is equivalent to the identification information of the task instance generated when the session starts.
  • the source task specifies the destination by the block ID and obtains the task ID by referring to the task lookup table; can do. After that, the task ID of the destination can be specified, and messages can be sent and received using the message communication function of the operating system.
  • the message transmission destination when there are a plurality of tasks having the same source code, the message transmission destination can be specified and the message communication can be suitably performed.
  • a multi-task for executing a plurality of tasks in a pseudo-parallel manner.
  • a multitasking operating system that shares a multitasking environment and an intertask communication function.
  • a computer program written in a computer-readable form so as to realize multiple functions by executing under an execution environment provided by an operating system.
  • a session definition means for defining, for each function provided by the program, a task necessary to realize the function and an execution order thereof as a session;
  • a session management means for managing resources for executing a session and an execution state, and a message communication means for communicating between tasks;
  • the session management means generates an instance of each task constituting the session when the session is started, and allocates session identification information and instance identification information to the session and each task instance constituting the session.
  • Tasks ⁇ Manage each of the above identification information on the lookup table,
  • the message communication means transmits and receives a message using an inter-task communication function provided by the talent rating system based on the instance identification information of the destination task obtained from the task 'look-up' table.
  • a computer program characterized by the following.
  • the computer program according to the second aspect of the present invention defines a computer program written in a computer-readable format so as to realize a predetermined process on a computer system.
  • a cooperative action is exerted on the computer system, and the program according to the first aspect of the present invention is realized.
  • the same operation and effect as those of the processing system can be obtained.
  • FIG. 2 is a diagram schematically showing the configuration of an application / program D.
  • FIG. 3 is a diagram schematically showing the configuration of an embedded application in the DVD recording / reproducing apparatus.
  • FIG. 4 is a diagram for explaining the mechanism of the inter-task communication function of the program processing device 10.
  • FIG. 5 is a diagram schematically showing a configuration example of the task “look-up” table 150.
  • Fig. 6 is a flowchart showing the procedure for generating the Task 1 lookup-table.
  • FIG. 7 is a diagram showing the flow of processing when generating a task 'lookup' table when session B is started in a multitask environment.
  • FIG. 8 is a flowchart showing a processing procedure for acquiring the task ID by referring to the task lookup table and transmitting / receiving a message.
  • FIG. 9 is a diagram showing a flow of transmitting and receiving a message using the inter-task communication function of the operating system using the task ID obtained from the task “lookup” tape.
  • FIG. 10 is a diagram showing how a plurality of task entities (instances) composed of the same source code are activated.
  • FIG. 11 is a diagram for describing a description method of the transmitting unit and the receiving unit in the source code of the task when the message communication system according to the present invention is adopted.
  • FIG. 12 is a diagram for explaining an example of transmitting and receiving a message by directly describing an ID on a source code when a message is transmitted from a certain task to another task.
  • FIG. 1 schematically shows a configuration of a program processing system 10 provided for implementing the present invention.
  • a program processing system 10 includes a processor 11, a RAM (Random Access Memory) 12, a ROM (Read Only Memory) 13, and a plurality of input / output devices 14. .., And timer 15.
  • the processor 11 is a main controller of the arithmetic processing system 10 and executes various programs and codes such as applications under the control of an operating system (OS).
  • OS operating system
  • the operating system is built-in, for example.
  • the unit by which the operating system manages and controls program execution is commonly called a "task.”
  • the program processing system 10 allows a plurality of tasks to be present in a program, executes the tasks in a time-division manner, and switches the tasks frequently, so that each task is pseudo-parallel. It has a Manorechi task function to be executed by the Therefore, there are more tasks than there are processors, which are the entities that actually perform the calculations, and it looks as if many tasks are being executed simultaneously.
  • the operating system allocates each task processed by the processor 11 to a task ID that can be distinguished from other tasks, and manages execution of each task. However, the operating system does not consider the relevance between the tasks performed.
  • an application program executed on the program processing system 10 is composed of a plurality of tasks executed in a multitask environment, and can share a plurality of functions.
  • Application provides multiple functions such as recording and playback on the DVD recording surface.
  • a task necessary to realize the function and an execution order thereof for each common function service are defined as a “session”. It also has a task called “session manager” that manages the resources and execution status for executing the called session.
  • the resource management mentioned here includes the generation of the instance of the task included in the session a and the management of the input and output performed by the task. The side operating the session can realize the necessary functions without being aware of the status of each task.
  • the processor 11 is interconnected with other devices (described later) by a bus 16.
  • Each ⁇ on the system bus 16 has a unique memory address or I / address, and the processor 11 can access the predetermined ⁇ by specifying these addresses. I have.
  • the system 'bus 16 is a common signal transmission path including an address' bus, a data bus, and a control bus.
  • the RAMI 2 is a writable memory, and is used to load a program code to be executed in the processor 11 and temporarily store work data of the execution program.
  • the program 'code includes, for example, BIOS (Basicinut-Outputsystem system), a device for operating hardware of peripheral devices, a driver, an operating system, and an application.
  • the R ⁇ M 13 is a non-volatile memory for storing predetermined code data permanently. For example, BIOS or a self-diagnosis program at startup (Power Self Test: POST) And so on.
  • the input / output device 14 includes a display 'interface 14-1 for connecting a display 21; a user input device interface 14-2 for connecting a user input device such as a keyboard 22 and a mouse 23; and a hard disk.
  • Two External storage device interface for connecting external storage devices such as 4 and media drive 25, and network for connecting to external network ⁇ Interface card (NIC) 14-14 are included.
  • NIC Network ⁇ Interface card
  • Display ⁇ Interface 14-1 is a dedicated interface for actually processing a drawing command issued by the processor 11 ⁇ Controller.
  • the drawing data processed in the display interface 14-11 is written to, for example, a frame buffer (not shown) and then output to the screen by the display 21.
  • the HD.D 24 is an external storage device in which a magnetic disk as a storage carrier is fixedly mounted (well-known), and is superior to other external storage devices in terms of storage capacity and data transfer speed.
  • the HDD 24 stores the operating system program code, the application program, and the device driver to be executed by the processor 11 in a nonvolatile manner.
  • Putting the software on the HDD 24 in a state where the program can be executed is called “installation” of the program into the system.
  • a pelleting system for realizing the present invention and an application program designed to have a plurality of tasks can be installed on the HDD 24.
  • Media 'Drive 25 is loaded with portable media such as CD (Compact act Disc), MO (Magneto-Optical Disc), DVD (Digital Versati 1 e Disc), and its data recording surface This is a device for accessing
  • Portable media is primarily used for backing up software 'programs and data' files, etc., as computer-readable data, and for transferring them between systems (ie, including 'distribution' for distribution). Is done. example P2004 / 006510
  • a system for realizing the present invention and an application program designed to have a plurality of tasks can be physically distributed between a plurality of devices by using these portable media. Can be distributed.
  • the network 'interface 14-1 connects the system 10 to a local network such as a LAN (Local Area Network) or a wide area network such as the Internet according to a predetermined communication protocol such as Ethernet (registered trademark). Can be connected to a local network such as a LAN (Local Area Network) or a wide area network such as the Internet according to a predetermined communication protocol such as Ethernet (registered trademark). Can be connected to a local network such as a LAN (Local Area Network) or a wide area network such as the Internet according to a predetermined communication protocol such as Ethernet (registered trademark). Can be connected to a predetermined communication protocol such as Ethernet (registered trademark).
  • a plurality of host terminals are connected in a transparent state, creating a distributed computing environment.
  • software programs, data, and content can be distributed.
  • an operating system for realizing the present invention or an application program designed to have a plurality of tasks can be downloaded via a network.
  • Each input / output device 14-1, 14-2, etc. is assigned an interrupt level, and a predetermined event occurs (for example, GUI processing such as keyboard input or mouse click, data transfer on a hard disk). , Etc.), the processor 11 can be notified via the interrupt request signal line 19. Processor 11 executes a corresponding interrupt handler in response to such an interrupt request.
  • the timer 15 is a device that generates a timer signal at a predetermined cycle.
  • An interrupt level is also assigned to the timer 15, and a periodic interrupt is generated for the processor 11 via the interrupt request signal line 19.
  • the application program is composed of a plurality of tasks executed in a multitask environment, and can share a plurality of functions.
  • FIG. 2 schematically shows the configuration of the application program 100.
  • a specific function is realized by cooperation of a plurality of tasks that operate in parallel. This series of operations is called a session, and a task related to a session operation is called a session configuration task.
  • the session 101 consists of the execution order of task 1 1 1, task 1 1 2, task 1 1 3, and the execution order of task 1 1 2, task 1 1 4, task 1 1 5 Session 102, which consists of an introduction, is defined.
  • One of the tasks constituting the application program 100 is a session manager 110, which manages the execution of operations for each session.
  • the session manager 110 has a session registration table 130 that is statically defined in advance to centrally manage all sessions in the application program 100. .
  • the session registration table 130 stores the identification numbers of the respective sessions, the identification numbers of the tasks constituting each session, the execution order, and the hardware resources used for each session.
  • task identification numbers are registered for the number of tasks constituting the session. In this case, the same task can be registered in different sessions. In the example shown in FIG. 2, task 112 is registered in both session 101 and session 102.
  • the session manager 110 manages resources for executing a session and an execution state using the session registration tape storage 130.
  • the resource management referred to here includes the generation of instances of the tasks included in the session and the management of inputs and outputs performed by the tasks.
  • the session can change the execution state of the operation such as start, suspend, resume, and end, just like the task. Operation and management of the execution state of each session are performed by the session manager 110 in response to an external request (command).
  • the session manager 110 When operating a session, the session manager 110 performs all the tasks constituting the session collectively, so the requesting session operation does not need to be aware of the individual session configuration tasks. .
  • the session is started by the session manager 110 reading the identification numbers of the tasks that compose the session from the session registration table 130 and activating the corresponding tasks simultaneously.
  • the session manager 110 creates a session management table for the corresponding session, and records and monitors the identification number and operation state of the session and each session configuration task.
  • suspending and resuming a session is performed by simultaneously suspending or resuming the execution of the session configuration task recorded in the session management table for the session having the specified identification number. This is done by:
  • the session manager 110 forcibly ends the session configuration tasks all at once, and deletes the session management tape information of the session.
  • each task constituting the session in the above-described session operation is controlled by the session manager 110 issuing a system call of the talent training system.
  • Multiple sessions can be registered in one application 'program, and multiple sessions can be operated simultaneously in parallel. It is also possible to run multiple sessions of the same type at the same time. In addition, the same task can be shared between different types of sessions.
  • FIG. 3 schematically shows a configuration of a thread binding application in the DVD recording / reproducing apparatus.
  • Application programs consist of multiple tasks.
  • the tasks that make up the application program are stored in the software block (however, except for the session manager), and the playback control task, recording control task, input / output control task, and multiplexing It consists of tasks such as encoding task, demultiplexing task, video encoding task, video inverse encoding task, audio encoding task, audio inverse encoding task, and memory control task.
  • the application program uses hardware resources 1 such as an input / output control device, a multiplexing device, a demultiplexing device, a video signal control device, an audio signal control device, and a memory.
  • the application realizes playback and recording specific functions on the recording surface of the DVD disc by cooperation of a plurality of tasks that operate in parallel.
  • a series of operations related to the reproduction and recording are referred to as a “reproduction session” and a “recording session”, respectively.
  • the playback session is defined by a session configuration task, which is a playback control task, an input / output control task, an inverse multiplexing task, a video decoding task, an audio decoding task, and a memory control task.
  • the recording session is defined by the session configuration tasks: recording control task, input / output control task, multiplexing task, video coding task, audio coding task, and memory control task.
  • the Session Manager has a statically defined session registration table to centrally manage all sessions in this application program.
  • the session registration table stores the identification numbers of each session such as the playback session and the recording session, the identification numbers and the execution order of the tasks constituting each session, and the hardware resources used in each session. Has been delivered.
  • Task identification numbers are registered in the session registration table by the number of tasks constituting the session. In this case, the same task can be registered in different sessions. In the example shown in FIG. 3, the input / output control task / memory control task is registered in both the reproduction session and the recording session.
  • the session manager When the session manager is instructed to open a session from the outside, the session manager refers to the session registration table to acquire the tasks that compose the session and the hardware resources used by each task. Then, it creates an instance of the session configuration task and manages the input and output of hardware resources by the instance.
  • these sessions can change the execution state of operations such as start, suspend, resume, and end.
  • the operation and management of the execution status in session units are performed by the session manager in response to an external request.
  • the session manager When operating a session, the session manager performs all the tasks that compose the session in a batch, so the side requesting the session operation does not need to be aware of the individual session configuration tasks. .
  • a plurality of sessions are registered, including a reproduction session and a recording session.
  • a plurality of sessions such as a reproduction session and a recording session, are operating simultaneously in parallel.
  • two playback sessions are running simultaneously.
  • the I / O control task and the memory control task are shared between different types of sessions, ie, the playback session and the recording session.
  • Replay Session 1, Recording Session 2, and Replay Session 1 show the images that generated instances of the session configuration task in the software block.
  • an application program composed of multiple tasks and executed in a multitask environment is required for each function to be provided to realize that function.
  • Tasks and their execution order are defined as sessions, and the session manager, which is configured as one of the tasks, manages the resources and execution status for executing the called session.
  • the session manager which is configured as one of the tasks, manages the resources and execution status for executing the called session.
  • a plurality of tasks can be centrally managed in the form of a session, and the advantages of task-based development such as execution efficiency, productivity, portability, and maintainability can be utilized.
  • execution efficiency, productivity, portability, and maintainability can be utilized.
  • on the side that operates the session it is possible to realize the necessary functions without being aware of the state of each task.
  • application development can be more efficient than conventional tasks alone.
  • an application program having such a session definition and session management function when operated on a multitasking or operating system, a task having the same source code is simultaneously started in a plurality of sessions. (See, for example, Figure 3).
  • the present invention realizes a mechanism that can cope with a change in the number of sessions and the number of tasks.
  • FIG. 4 illustrates the inter-task communication function of the program processing system 10 according to the present embodiment.
  • the inter-task communication function of the program processing system 10 is composed of a multitasking operating system 140, a session-manager 110, and a task for each function block in the session.
  • This task consists of a lookup 'table' table 150 for reference, and this task ⁇ lookup-a tape control module that manages the table 150.
  • a session is configured by the session manager 110, and tasks constituting the session are multitasked.
  • the task 'lookup' table 150 is a quick reference to refer to the task for each functional block in the session.
  • FIG. 5 schematically shows a configuration example of the task “lookup-table 150”.
  • the task 'lookup' tape table 150 is tabulated for each session, and corresponds to the session ID of each session, the block ID of each block constituting the session, and the block.
  • the task ID of each task is registered.
  • Figure 6 shows the procedure for generating the task 'lookup' tape insert in the form of a flowchart.
  • Fig. 7 illustrates the flow of processing when generating a task, a lookup, and a table when session B is started in a multitask environment.
  • a session is started (step S1), and the session manager 110 inquires a vacant session number to the tape recorder (step S2, P1).
  • the table management section 161 in the table 'control section 160' refers to the task lookup table '150' to search for an empty session ID (steps S2 and P3), and the empty session The ID is notified to the session manager 16 2 (P 5).
  • the session management unit 162 uses the empty session ID to execute a session.
  • the table management unit 161 is informed that the session ID is to be used (steps S3 and P1).
  • the table manager 161 secures a session ID to be used on the session 'lookup' table 150 (P2).
  • the session management unit 162 starts the session with the session ID, and instructs the operating system 140 to start each task belonging to the session (step S4).
  • the session management unit 162 instructs the operating system 140 to start the task and, at the same time, notifies the tape ID management unit 163 of the block ID and the task ID (steps S5 and P1). Then, the table management unit 161 records the task ID and the block ID in a task-lookup table (P2). The instance of the task can be identified by the combination of the session ID and the block ID.
  • Steps S4 to S5 are performed until there is no task to be activated (step S6), and all the tasks to be activated (that is, all tasks constituting the session) are stored in the task 'lookup' table of the session. register.
  • step S7 the session is also started.
  • FIG. 8 shows the Task I lookup by referencing the Task I
  • the processing procedure for acquiring D and sending and receiving messages is shown in the form of a flowchart.
  • FIG. 9 shows a flow of transmitting and receiving a message using the inter-task communication function of the operating system using the task ID obtained from the task “lookup” table.
  • the task at the sender needs to know the mailbox ID of the task at the destination.
  • the mail box ID is the task ID
  • the task ID of the transmission destination is obtained.
  • the block ID is specified with reference to the task lookup table of the session (step S9).
  • the transmitting task passes the block ID to the table management unit 161 (P 6).
  • the task ID acquisition unit 163 instructs the table management unit 161 to obtain the task ID from the block ID (P7).
  • the table management unit 161 obtains the session ID of the session to which the task of the transmission source belongs (step S10), and performs the task-lookup corresponding to this session. Is acquired (P3), and this is notified to the task ID acquisition unit 163 (P8).
  • the task ID acquisition block passes the received task ID to the requesting task as the destination task ID (P 9).
  • the sending task then sends the message to the operating '
  • the message box ID (here, the task ID of the destination task) and the message body are transmitted to the message transmission block 144 of the system 140 (step S12, P10).
  • the 140 specifies the message box ID, and passes the message to the destination task through the message receiving block 144 (steps S13, P12).
  • the message can be sent from the destination task to the source task without subtracting the task ID from the table. Messages can be sent back (P13, P14, P15).
  • the application program according to the present embodiment is composed of a plurality of tasks, and the tasks necessary for realizing the functions and the execution order thereof are defined as a session for each of the functions in common. Then, by executing in a multitasking environment, tasks with the same source code are started simultaneously in multiple sessions.
  • a typical operating system has an intertask communication function, but cannot dynamically identify multiple tasks with the same source code. Therefore, in the present embodiment, when a session is started, a block ID is assigned to each block when the session is divided into tasks for each function, and a task lookup table, which is a quick reference table of the block ID and the task ID, is assigned. Create a table. When one task sends a message to another task, the source task specifies the destination by block ID and acquires the task ID by referring to the task lookup table. be able to. Then, specify the task ID of the destination, and use the message communication function of the operating system to send the message. Transmission and reception can be performed.
  • the message transmission destination can be specified and the message communication can be suitably performed.
  • the mechanism of the message communication according to the present embodiment will be described with reference to the source code constituting the task.
  • Figure 10 illustrates how multiple instances of a task consisting of the same source code are started.
  • the source code of task A has a message receiver consisting of the code "rev— ms g (* msg)" and a message consisting of the code "snd— ms g (* ms g)" Is included.
  • the source code of the task was carefully noted that only one receiver was required.
  • the operating system invokes all the tasks that make up the session, thereby creating an instance of the session. Then, when the same task is included in a plurality of sessions instructed to open, a plurality of tasks of the same source code are started as illustrated. As described above, when a task is started, the correspondence between the task ID and the block ID is registered in the task-knockup / tape information for the session.
  • FIG. 11 shows a description method of the transmitting unit and the receiving unit in the source code of the task when the message communication system according to the present invention is adopted.
  • the source code of task A contains a message receiver consisting of the code "rc v_m sg (tid, * msg)" and a message receiver consisting of the code "snd— ms g (stid, * ms g)".
  • a transmission unit is included.
  • a block 'lookup' table is created for each function block in the session by disturbing the block ID. Therefore, the source task determines its task from the block ID (bid) of the destination task. You can search for the disk ID (tid) and send a message using that tid.
  • the source code of the task that is the destination may have only one receiver (same as above). That is, it is possible to acquire the tid of the source task by the code "get_t ⁇ d (tid)" and receive the message from the source task by the code "rcv-msg (tid, + msg)".
  • FIG. 12 shows an example of this case.
  • the source code of the task of the transmission source includes a transmission unit corresponding to the session ID at the time of activation. That is, when this task is started in session 1, the task ID of the message destination is 2, and when started in other sessions, the task ID of the message destination is 3.
  • an excellent program processing system and program processing method capable of specifying a message transmission destination and appropriately performing message communication when there are a plurality of tasks having the same source code, and Computer-can provide the program.
  • the functions can be shared outside the operating system in an execution environment provided by an operating system that does not have a function of dynamically specifying a target task and a message transmission / reception destination.
  • the amount of source code changes associated with specification changes can be reduced, leading to improved productivity.
  • the present invention is applicable to a system that executes an application under a multitask environment in which a plurality of tasks operate in a pseudo-simultaneous and parallel manner.

Abstract

セッションの起動時に、セッションを各機能毎にタスクを分割したときの各ブロックにブロックIDを割り振るとともに、ブロックIDとタスクIDの早見表であるタスク・ルックアップ・テーブルを作成する。メッセージ通信を行なう際、送信元タスクは送信先をブロックIDで指定し、タスク・ルックアップ・テーブルを参照してタスクIDを取得する。この後、送信先のタスクIDを指定し、OSのメッセージ通信機能を用いてメッセージの送受信を行なう。

Description

明細書
プロダラム処理システム及びプロダラム処理方法.
並びにコンピュータ ·プログラム
技術分野
本発明は、 複数のタスクを擬似的に同時並列的に動作させるマルチタスク環 境下でアプリケーションを実行するプログラム処理システム及びプログラム処理 方法、 並びにコンピュータ 'プログラムに係り、 特に、 アプリケーションが複数 の機能を同時並行して動作する際に複数の機能で同一のタスクを共有するプログ ラム処理システム及びプログラム処理方法、 並びにコンピュータ 'プログラムに 関する。
さらに詳しくは、 本発明は、 複数の機能で共有されるタスクのリソースと実行 状態を管理するプログラム処理システム及びプログラム処理方法、 並びにコンビ ユータ■プログラムに係り、 特に、 同一のソースコードからなるタスクが複数存 在する場合にメッセージ送信先を特定してメッセージ通信を行なうプログラム処 理システム及びプログラム処理方法、 並びにコンピュータ 'プログラムに関する。 背景技術
昨今の L S I (Large Scale Integration) 技術における革新的な進歩とも相俟 つて、 さまざまなタイプの情報処理 ίβ^情報通信 βが開発 ·市販され、 日常 生活に深く浸透するに至っている。 この種の βでは、 オペレーティング 'シス テムが提供する実行環境下で、 C P U (Central Processing Unit) やその他の プロセッサが所定のプログラム■コードを実行することによりさまざまな処理サ 一ビスを #f共するようになつている。
一般に、 オペレーティング'システムは、 複数のタスクを時分割で実行するこ とによって、 プロセッサの数よりも多くのタスクをあたかも同時に実行している かのように見せるマルチタスク機能を備えている。 マルチタスク ■オペレーティ ング■システムを使用することにより、 アプリケーションを機能毎にタスクとし て作成し、 複数のタスクを擬似的に同時並列的に動作させることができる。
しかしながら、 特開平 0 8— 5 5 0 3 7号公報あるいは特開平 0 8—1 0 6 4 4 1号公報などに開示されているオペレーティング ·システムには、 タスク単 位の管理機能はあるものの、 複数のタスクによってある特定の機能が実現される ような場合、 その機能に係る一連のタスクを一元的に管理する機構は提供してい ない。 すなわち、 マルチタスクにおいて、 個々のタスクの実行を制御するのみで、 タスク間の関連十生までは考慮しない。 このため、 各タスクが自分自身でタスク間 の関連性を管理しなければならず、 プログラムの糸且み易さやメンテナンス性が ί氐 下してしまう。
また、 同時並行して動作する複数の機能で同一のタスクを共有したレヽ場合があ る力 共有されるタスクを管理するような仕組みはオペレーティング'システム では f共されない。
また、 このようなマルチタスク環境下では、 同一のソースコードを持つ複数の タスクが複数存在するという状況が想定されるが、 このような場合にタスクを動 的に特定することはできない。
一般的なオブジェクト間通信では、 オペレーティング'システムのオブジェク ト識別機能を用いてメッセージ送受信先の特定が行なわれる (例えば、 特許文献 1、 特許文献 2を参照のこと) 。 しかしながら、 複数のセッションにおいて同じ タスクが起動しているような状況にぉ 、ては、 単にタスクを識別するタスク識別 子を用いるだけでは、 どのセッションのタスクなのかを特定することはできない。 発明の開示
本発明の目的は、 アプリケーションが複数の機能を同時並行して動作する際 に複数の機能で同一のタスクを好適に共有することができる、 優れたプログラム 処理システム及びプログラム処理方法、 並びにコンピュータ 'プログラムを « することにある。
本発明のさらなる目的は、 複数の機能で共有されるタスクのリソースと実行状 態を好適に管理することができる、 優れたプログラム処理システム及びプ口ダラ ム処理方法、 並びにコンピュータ■プログラムを提供:することにある。
本発明のさらなる目的は、 同一のソースコードからなるタスクが複数存在する 場合にメッセージ送信先を特定して好適にメッセージ通信を行なうことができる、 優れたプログラム処理システム及びプログラム処理方法、 並びにコンピュータ■ プログラムを樹共することにある。
本発明は、 上記課題を参酌してなされたものであり、 その第 1の側面は、 複数 のタスクを擬似的に並列に実行させるマルチタスク環境とタスク間通信機能を提 供するマルチタスク ·才ぺレーティング ·システムが提供する実行環境下で複数 のタスクからなるプログラムを実行するプログラム処理システムであって、 プログラムが ¾f共する各機能毎に該機能を実現するために必要なタスクとその 実行順序をセッシヨンとして定義するセッション定義手段と、
セッションを実行するためのリソースと実行状態を管理するセッション管理手 段とを備え、
前記セッション管理手段は、 セッション起動時に当該セッションを構成する各 タスクのインスタンスを生成するとともに、 当該セッション及び当該セッシヨン を構成する各タスクのインスタンスにセッションの識別情報及びィンスタンスの 識別情報を割り振り、 セッション毎のタスク 'ルックアップ'テーブル上で前記 の各識別情報を管理する、 ことを特徴とするプログラム処理システムである。 但し、 ここで言う 「システム」 とは、 複数の装置 (又は特定の機能を実現する 機能モジュール) が論理的に集合した物のことを言い、 各装置や機能モジュール が単一の筐体内にあるか否かは特に問わない。
本発明に係るプロダラム処理装置は、 タスク間で通信を行なうメッセージ通信 手段をさらに備えている。 メッセージ通信手段は、 タスク間で通信を行なう際に、 タスクが含まれるセッションのタスク ■ルックアップ ·テーブルを参照して送信 先タスクのィンスタンス識別情報に基づいてタスクを特定して、 オペ I ^一ティン グ ·システムが樹共するタスク間通信機能を用いてメッセージ送受信を行なうこ とができる。 このようなメッセージ通信手段は各タスク内に糸且み込むことができ る。
本発明に係るアプリケーション ·プログラムは、 複数のタスクで構成され、 提 供する機能毎に該機能を実現するために必要なタスクとその実行順序がセッショ ンとして定義されている。 そして、 マルチタスク環境下で実行することにより、 同一のソースコードを持つタスクが複数のセッションで同時に起動する。
一般的なオペレーティング ·システムはタスク間通信機能を備えているが、 同 一のソースコードを持つ複数のタスクを動的に特定することはできない。 そこで、 本発明では、 セッションを起動したときに、 セッションを機能毎にタスクを分割 したときの各ブロックにブロック I Dを割り振るとともに、 プロック I Dとタス ク I Dの早見表であるタスク ·ノレックアップ■テーブルを作成する。 ブロック I Dは、 セッション起動時に生成されるタスクのインスタンスの識別情報に相当す る。
そして、 あるタスクが別のタスクへメッセージを送信する際には、 送信元タス クは送信先をブロック I Dで指定し、 タスク ·ルックアップ ·テーブルを参照す ることによりタスク I Dを取; f -することができる。 この後、 送信先のタスク I D を指定して、 オペレーティング ·システムのメッセージ通信機能を用いてメッセ ージの送受信を行なうことができる。
したがって、 本発明によれば、 同一のソースコードからなるタスクが複数存在 する場合にメッセージ送信先を特定して好適にメッセージ通信を行なうことがで きるようになる。
また、 本発明の第 2の側面は、 複数のタスクを擬似的に並列に実行させるマル チタスク環境とタスク間通信機能を樹共するマルチタスク ·オペレーティング · システムが提供する実行環境下下で実行することにより複数の機能を実現するよ うにコンピュータ可読形式で記述されたコンピュータ ·プログラムであって、 プロダラムが提供する各機能毎に該機能を実現するために必要なタスクとその 実行順序をセッシヨンとして定義するセッション定義手段と、
セッションを実 iするためのリソースと実行状態を管理するセッション管理手 段と、 タスク間で通信を行なうメッセージ通信手段とを備え、
前記セッション管理手段は、 セッション起動時に当該セッションを構成する各 タスクのインスタンスを生成するとともに、 当該セッション及び当該セッシヨン を構成する各タスクのインスタンスにセッションの識別情報及びインスタンスの 識別情報を割り振り、 セッション毎のタスク ■ルックアップ'テーブル上で前記 の各識別情報を管理し、
前記メッセージ通信手段は、 タスク 'ルックアップ'テーブルから得られた送 信先タスクのィンスタンス識別情報に基づいて、 前記才ぺレーティング■システ ムが提供するタスク間通信機能を用いてメッセージ送受信を行なう、 ことを特徴 とするコンピュータ ·プログラムである。
本発明の第 2の側面に係るコンピュータ 'プログラムは、 コンピュータ ■ シス テム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンビ ユータ 'プログラムを定義したものである。 換言すれば、 本発明の第 2の側面に 係るコンピュータ ·プログラムをコンピュータ ■システムにインストールするこ とによって、 コンピュータ 'システム上では協働的作用が発揮され、 本発明の第 1の側面に係るプロダラム処理システムと同様の作用効果を得ることができる。 本発明のさらに他の目的、 特徴や利点は、 後述する本発明の実施形態や添付す る図面に基づくより詳細な説明によって明らかになるであろう。 図面の簡単な説明 図 1は、 本発明の実施に供されるプログラム処理システムの構成を模式的に 示した図である。
図 2は、 アプリケーション■プログラムの構成を模式的に示した図である D 図 3は、 D VD記録再生装置における組み込みアプリケーションの構成を模式 的に示した図である。
図 4は、 プログラム処理装置 1 0のタスク間通信機能の仕組みを説明するため の図である。
図 5は、 タスク 'ルックアップ'テーブル 1 5 0の構成例を模式的に示した図 である。
図 6は、 タスク ■ルックアップ-テーブルを生成するための手順を示したフ口 一チヤ一トである。
図 7は、 マルチタスク環境下でセッション Bが起動したときのタスク 'ルツ クアップ'テーブルを生成するときの処理の流れを示した図である。
図 8は、 タスク ■ルックアップ ·テーブルを参照することによってタスク I Dを取得してメッセージを送受信するための処理手順を示したフローチヤ一トで あ 。
図 9は、 タスク 'ルックアップ 'テープノレから取得されたタスク I Dを用いて オペレーティング■システムのタスク間通信機能を用いてメッセージ送受信を行 なう流れを示した図である。
図 1 0は、 同一のソースコードからなる複数のタスクの実体 (インスタン ス) が起動される様子を示した図である。
図 1 1は、 本発明に係るメッセージ通信方式を取り入れた場合のタスクのソー スコード内での送信部及び受信部の記述方法を説明するための図である。
図 1 2は、 あるタスクから別のタスクヘメッセージを送信する場合、 ソースコ 一ド上に I Dを直接記述することによってメッセージ送受信を実現する例を説明 するための図である。 P T/JP2004/006510
発明を実施するための最良の形態
A. システム構成
図 1には、 本発明の実施に供されるプログラム処理システム 10の構成を模式 的に示している。 同図に示すように、 プログラム処理システム 10は、 プロセッ サ 11と、 RAM (Ra nd om Ac c e s s Memo r y) 12と、 RO M (Re a d On l y Memo r y) 13と、 複数の入出力装置 14一 1, 14一 2···と、 タイマ 15とを含んでいる。
プロセッサ 11は、 演算処理システム 10のメイン'コントローラであり、 ォ ペレ一ティング 'システム (OS) の制御下で、 アプリケーションなどの各種の プログラム■コードを実行するようになっている。 オペレーティング'システム は例えば組み込み型で構成される。
オペレーティング ·システムがプログラム実行を管理 ·制御する単位は、 一般 に 「タスク」 と呼ばれる。 本実施形態に係るプログラム処理システム 10では、 プログラム中に複数のタスクが存在することを許容し、 複数のタスクを時分割で 実行し、 タスクを頻繁に切り替えることにより、 各タスクを擬似的に並列に実行 させるマノレチタスク機能を備えている。 したがって、 実際に計算を進める実体で あるプロセッサの数よりも多くのタスクが存在し、 多くのタスクをあたかも同時 に実 ^ίϊしているかのように見える。
オペレーティング■システムは、 プロセッサ 11により処理される各タスクに、 他のタスクと識別可能なタスク I Dを割り振り、 個々のタスクの実行を管理する。 伹し、 オペレーティング ·システムは、 実行されるタスク間の関連性までは考慮 しない。
一方、 プログラム処理システム 10上で実行されるアプリケーション ·プログ ラムは、 マルチタスク環境下で実行される複数のタスクで構成され、 複数の機能 を樹共することができる。 例えば、 DVD記録再生装置における組み込みアプリ P2004/006510
ケーションであれば、 DVDの記録面に対する記録や再生などの複数の機能が提 供される。 本明細書中では、 共する機能サービス毎に当該機能を実現するため に必要なタスクとその実行順序を 「セッション」 として定義する。 また、 「セッ ション ·マネージャ」 と呼ばれるタスクを備え、 呼ぴ出されたセッションを実行 するためのリソースと実行状態を管理する。 ここで言うリソース管理には、 セッ シ aンに含まれるタスクのインスタンスの生成及びタスクが行なう入出力の管理 などが含まれる。 セッションを操作する側は、 個々のタスクの状態を意識せず、 必要な機能を実現できる。
プロセッサ 11は、 バス 16によって他の機器類 (後述) と相互接続されてい る。 システム ·バス 16上の各 βにはそれぞれ固有のメモリ 'ァドレス又は I /〇ァドレスが付与されており、 プロセッサ 1 1はこれらアドレスを指定するこ とによって所定の βへのアクセスが可能となっている。 システム 'バス 16は、 アドレス 'バス、 データ ·バス、 コントロール ·バスを含む共通信号伝送路であ る。
RAMI 2は、 書き込み可能なメモリであり、 プロセッサ 11において実行さ れるプログラム ·コードをロードしたり、 実行プログラムの作業データを一時格 納したりするために使用される。 プログラム ' コードには、 例えば、 B I OS (B a s i c i n u t - Ou t p u t s y s t em :基本入出力シスァ ム) 、 周辺機器をハードウェア操作するためのデバイス ' ドライバ、 オペレーテ ィング ·システム、 アプリケーションなどが挙げられる。
R〇M 13は、 所定のコ一ドゃデ一タを恒久的に記憶するための不揮発メモリ であり、 例えば、 B I OSや始動時の自己診断プログラム (P owe r o n S e l f T e s t : POST) などを格納している。
入出力装置 14には、 ディスプレイ 21を接続するためのディスプレイ 'イン ターフェース 14一 1、 キーボード 22やマウス 23のようなユーザ入力装置を 接続するためのユーザ入力装置インターフェース 14— 2、 ハード 'ディスク 2 4やメディア · ドライブ 25などの外部記憶装置を接続するための外部記憶装置 インターフェース 14一 3、 外部ネットワークと接続するためのネットワーク ■ インターフェース ·カード (N I C) 14一 4などが含まれる。 但し、 装備すベ き入出力装置 14の種類や構成などは、 プログラム処理システム 10の実体が何 であるかに依存する。
ディスプレイ ■インターフェース 14-1は、 プロセッサ 11が発行する描画 命令を実際に処理するための専用インターフェース ■ コントローラである。 ディ スプレイ ·インターフェース 14一 1において処理された描画データは、 例えば フレーム .バッファ (図示しない) にー且書き込まれた後、 ディスプレイ 21に よって画面出力される。
HD.D 24は、 記憶担体としての磁気ディスクを固定的に搭載した外部記憶装 置であり (周知) 、 記憶容量やデータ転送速度などの点で他の外部記憶装置より も優れている。 通常、 HDD24には、 プロセッサ 11が実行すべきオペレーテ イング'システムのプログラム 'コードや、 アプリケ一ション 'プログラム、 デバ イス'ドライバなどが不揮発的に格納されている。 ソフトウェア 'プログラムを 実行可能な状態で HDD 24上に置くことをプログラムのシステムへの 「ィンス トール」 と呼ぶ。 例えば、 本発明を実現するすペレ一ティング■システムや、 複 数のタスクが存在するように設計されたアプリケーション 'プログラムを HDD 24上にィンスト一ノレすることができる。
メディア 'ドライブ 25は、 CD (C omp a c t D i s c) や MO (Ma gn e t o - Op t i c a l d i s c) 、 DVD (D i g i t a l Ve r s a t i 1 e D i s c) などの可搬型メディアを装填して、 そのデータ記録面に アクセスするための装置である。
可搬型メディアは、 主として、 ソフトウェア 'プログラムやデータ'ファイルな どをコンピュータ可読形式のデータとしてバックアツプすることや、 これらをシ ステム間で移動 (すなわち販売'流通'配布を含む) する目的で使用される。 例え P2004/006510
ば、 本発明を実現する才ペレ一ティング .システムや、 複数のタスクが存在する ように設計されたアプリケーション■プログラムを、 これら可搬型メディアを利 用して複数の機器間で物理的に流通 ·配布することができる。
ネットワーク'インターフェース 14— 1は、 E t h e r n e t (登録商標) などの所定の通信プロ トコルに従って、 システム 1 0を LAN (Local Area Network) などの局所的ネットワーク、 さらにはィンターネットのような広域ネ ットワークに接続することができる。
ネットワーク上では、 複数のホスト端末 (図示しない) がトランスペアレント な状態で接続され、 分散コンピューティング環境が構築されている。 ネットヮー ク上では、 ソフトウェア ·プログラムやデータ ·コンテンッなどの配信が行うこ とができる。 例えば、 本発明を実現するオペレーティング 'システムや、 複数の タスクが存在するように設計されたアプリケーション 'プログラムを、 ネットヮ ーク経由でダウンロードすることができる。
各入出力装置 14— 1, 14- 2…には、 割り込みレべノレが割り当てられてお り、 所定のィベント発生 (例えばキーボード入力やマウス 'クリックなどの G U I処理や、 ハード'ディスクにおけるデータ転送の完了など) に応答して、 割り 込み要求信号線 1 9を介してプロセッサ 1 1に通知することができる。 プロセッ サ 1 1は、 このような割り込み要求に応答して、 対応する割り込みハンドラを実 行する。
タイマ 1 5は、 タイマ信号を所定周期で発生させる装置である。 タイマ 1 5に も割り込みレベルが割り当てられており、 割り込み要求信号線 1 9を介してプロ セッサ 1 1に対して周期的な割り込みを発生する。
B. アプリケーション■プログラムの構成
本実施形態では、 アプリケーション 'プログラムは、 マルチタスク環境下で実 行される複数のタスクで構成され、 複数の機能を樹共することができる。 図 2に は、 アプリケーション ·プログラム 1 00の構成を模式的に示している。 図示のアプリケーション■プログラム 1 0 0によれば、 並行動作する複数のタ スクの連携によって、 ある特定の機能が実現される。 この一連の動作のことをセ ッシヨンと呼び、 セッションの動作に係るタスクをセッション構成タスクと呼ぶ。 図示の例では、 タスク 1 1 1、 タスク 1 1 2、 タスク 1 1 3の実行順序で構成さ ftるセッション 1 0 1と、 タスク 1 1 2、 タスク 1 1 4、 タスク 1 1 5の実行順 序で構成されるセッション 1 0 2が定義されている。
また、 アプリケーション ·プログラム 1 0 0を構成するタスクの 1つはセッシ ョン■マネージャ 1 1 0であり、 セッション毎の動作の実行を管理する。 セッシ ョン ·マネージャ 1 1 0は、 アプリケーション■プログラム 1 0 0内のすべての セッションを一元的に管理するために、 あらかじめ静的に定義されているセッシ ョン登録テーブル 1 3 0を備えている。 セッション登録テーブル 1 3 0には各セ ッションの識別番号と、 それぞれのセッションを構成するタスクの識別番号並び に実行順序、 各セッションにおレ、て使用されるハードゥエア資源が格納されて 、 る。
セッション登録テープノレ 1 3 0には、 セッションを構成するタスクの数だけタ スク識別番号が登録される。 このとき、 異なるセッションで同一のタスクを重複 して登録することが可能である。 図 2に示す例では、 タスク 1 1 2は、 セッショ ン 1 0 1及びセッション 1 0 2の双方に登録されている。
セッション 'マネージャ 1 1 0は、 セッション登録テープノレ 1 3 0を用いて、 セッションを実行するためのリソースと実行状態を管理する。 ここで言うリソー ス管理には、 セッションに含まれるタスクのインスタンスの生成及びタスクが行 なう入出力の管理などが含まれる。
また、 セッションは、 タスクと同様に、 起動、 中断、 再開、 終了など、 動作の 実行状態を遷移させることが可能である。 これらセッション単位の実行状態の操 作及び管理は、 セッション 'マネージャ 1 1 0が外部からの要求 (コマンド) に 応じて行なう。 セッションの操作の際には、 セッション■マネージャ 1 1 0がセッションを構 成するすべてのタスクの操作を一括して行なうので、 セッション操作を要求する 側では個々のセッション構成タスクを意識する必要はない。
セッションの起動は、 セッション 'マネージャ 1 1 0が、 セッション登録テー ブル 1 3 0から当該セッションを構成する各タスクの識別番号を読み込み、 該当 するタスクを一斉に起動することにより行なわれる。 この際、 セッション ·マネ ージャ 1 1 0は、 該当するセッションに対してセッション管理テーブルを作成し、 そこに当該セッション及び各セッション構成タスクの識別番号及び動作状態を記 録し監視する。
また、 セッションの中断及び再開の操作は、 セッション 'マネージャ 1 1 0力 指定された識別番号を持つセッションに対し、 セッション管理テーブルに記録さ れているセッション構成タスクの実行を一斉に中断又は再開することにより行な われる。
また、 セッションの終了では、 セッション 'マネージャ 1 1 0は、 セッション 構成タスクを一斉に強制終了し、 当該セッションのセッション管理テープノレを削 除する。
上述しだセッション操作の際におけるセッションを構成する各タスクの動作は、 セッション ·マネージャ 1 1 0が才ペレ一ティング ·システムのシステム ·コー ルを発行することにより制御する。 1つのアプリケーション 'プログラムにおい て複数のセッションを登録することが可能であり、 複数のセッションを同時に並 行動作させることが可能である。 また、 同種のセッションを複数同時に動作させ ることも可能である。 また、 異種のセッション間で同一のタスクを共有すること も可能である。
ここで、 D V D記録再生装置における組み込みアプリケーションを例にとって、 本発明に係るアプリケーション■プロダラムの機能構成並びのその作用にっレヽて 説明する。 図 3には、 D VD記録再生装置における糸且み込みアプリケーションの構成を模 式的に示している。
アプリケーション ·プログラムは、 複数のタスクで構成される。 図示の例では、 アプリケーション ·プ口グラムを構成するタスクは、 ソフトウエア ·プロックに 格納されており (但し、 セッション 'マネージャを除く ) 、 再生制御タスク、 記 録制御タスク、 入出力制御タスク、 多重化タスク、 逆多重化タスク、 映像符号化 タスク、 映像逆符号化タスク、 音声符号化タスク、 音声逆符号化タスク、 メモリ 制御タスクなどのタスクからなる。 また、 アプリケーション 'プログラムは、 入 出力制御装置、 多重化装置、 逆多重化装置、 映像信号制御装置、 音声信号制御装 置、 メモリなどのハードウェア資¾1を使用する。
また、 アプリケーションは、 並行動作する複数のタスクの連携によって、 D V Dディスクの記録面に対する再生や記録特定の機能が実現される。 ここでは、 こ れら再生や記録に関する一連の動作のことをそれぞれ 「再生セッシヨン」 、 「記 録セッション」 と呼ぶ。
図示の例では、 再生セッションは、 再生制御タスク、 入出力制御タスク、 逆多 重ィ匕タスク、 映像逆符号化タスク、 音声逆符号化タスク、 メモリ制御タスクとい ぅセッション構成タスクで定義される。 また、 記録セッションは、 記録制御タス ク、 入出力制御タスク、 多重化タスク、 映像符号化タスク、 音声符号化タスク、 メモリ制御タスクというセッション構成タスクで定義される。
また、 このアプリケーション 'プログラムを構成するタスクの 1つは、 セッシ ョン .マネージャであり、 セッション毎の動作の実行を管理する。 セッション - マネージャは、 このアプリケーション ·プログラム内のすべてのセッションを一 元的に管理するために、 あらかじめ静的に定義されているセッション登録テープ ルを備えている。 セッション登録テーブルには、 再生セッション、 記録セッショ ンなど各セッションの識別番号と、 それぞれのセッションを構成するタスクの識 別番号並びに実行順序、 各セッションにおいて使用されるハードウエア資源が格 納されている。
セッション登録テーブルには、 セッションを構成するタスクの数だけタスク識 別番号が登録される。 このとき、 異なるセッションで同一のタスクを重複して登 録することが可能である。 図 3に示す例では、 入出力制御タスクゃメモリ制御タ スクは、 再生セッション及び記録セッションの双方に登録されている。
セッション 'マネージャは、 外部からセッションのオープンが指示されると、 セッション登録テーブルを参照して、 当該セッションを構成するタスクや、 各タ スクが使用するハードウェア資源を獲得する。 そして、 セッション構成タスクの インスタンスを生成するとともに、 インスタンスによるハードウェア資源に対す る入出力を管理する。
また、 これらのセッションは、 タスクと同様に、 起動、 中断、 再開、 終了など、 動作の実行状態を遷移させることが可能である。 これらセッション単位の実行状 態の操作及び管理は、 セッション 'マネージャが外部からの要求に応じて行なう。 セッションの操作の際には、 セッション'マネージャがセッションを構成するす ベてのタスクの操作を一括して行なうので、 セッション操作を要求する側では 個々のセッション構成タスクを意識する必要はなレ、。
図 3に示す例では、 再生セッションゃ記録セッションを始め複数のセッシヨン が登録されている。 図示の例では、 再生セッションや記録セッションなど複数の セッションが同時に並行動作している。 また、 2つの再生セッションが同時に動 作している。 また、 再生セッションと記録セッションという異種のセッション間 で、 入出力制御タスクとメモリ制御タスクが共有されている。 再生セッション 1、 記録セッション 2、 再生セッション 1は、 ソフトウェア 'ブロックにあるセッシ ョン構成タスクのインスタンスを生成したィメ一ジを示している。
C . タスクの特定及びタスク間のメッセージ通信
前項 Bでは、 複数のタスクで構成され、 マルチタスク環境下で実行されるアブ リケーション■プログラムが、 提供する機能毎に該機能を実現するために必要な タスクとその実行順序をセッシヨンとして定義し、 タスクの 1つとして構成され るセッション .マネージャが呼び出されたセッションを実行するためのリソース と実行状態を管理する、 という点を説明した。 これによつて、 複数のタスクをセ ッシヨンという形で一元的に管理することができ、 なお且つ実行効率、 生産性、 移植性、 保守性といったタスク単位での開発のメリットを生かすことができる。 また、 セッションを操作する側では、 個々のタスクの状態を意識することなく、 必要な機能を実現することが可能である。 また、 セッション間でタスクを共有す ることができるので、 従来のタスク単体よりも効率的なアプリケーション開発が 可能となる。
一方、 このようなセッション定義並びにセッション管理機能を備えたァプリケ ーション■プログラムは、 マルチタスク ,オペレーティング ·システム上で動作 させた場合に、 同一のソースコ一ドを持つタスクが複数のセッションで同時に起 動する可能性が高い (例えば、 図 3を参照のこと) 。
このような場合、 オペレーティング'システムにより提供されているメッセ一 ジ機能ゃフラグ機能などをソースコード上で使用する場合、 プログラム開発者は あら力 じめセッション数を把握してコ一ディングをしなければならず、 セッショ ン数およびタスク数が静的に決まっていることが必要になる。 ところが、 セッシ ヨン数おょぴタスク数が固定であることを前提でコーディングしてしまうと、 機 能拡張や再利用を行なうときにソースコードの変更部分が多大になり、 プログラ ムの拡張性や再利用性が低下してしまう。
本発明は、 このような問題を解決するために、 セッション数及びタスク数が変 更されても対応できる仕組みを実現するものである。
通常の組み込み機器 (例えば、 D VD記録再生装置) では、 主に機能ブロック 毎にタスクを分割し実装する。 まず、 その機能毎にプロック I Dを定義し、 付加 しておく。 また、 1つのタスクにはメッセージゃメール■ボックスなどの受信部 は 1つのみとする。 図 4には、 本実施形態に係るプログラム処理システム 1 0のタスク間通信機能 の仕糸且みを図解している。 同図に示すように、 プログラム処理システム 1 0のタ スク間通信機能は、 マルチタスク ·オペレーティング■システム 1 4 0と、 セッ シヨン -マネージャ 1 1 0と、 セッション内の各機能プロック毎のタスクを参照 するためのタスク 'ルックアップ 'テーブル 1 5 0と、 このタスク ■ルックアツ プ -テーブル 1 5 0を管理するテープノレ ·コントロール部とで構成される。
セッション'マネージャ 1 1 0によつてセッションが構成され、 そのセッショ ンを構成するタスクがマルチタスク ■オペレーティング ·システム 1 4 0によつ て起動される。
タスク 'ルックアップ'テーブル 1 5 0は、 セッション内の各機能ブロック毎 のタスクを参照するための早見表である。 図 5には、 タスク 'ルックアップ-テ 一ブル 1 5 0の構成例を模式的に示している。 同図に示すように、 タスク 'ルツ クアップ'テープノレ 1 5 0は、 セッション毎にテーブル化されており、各セッシ ヨンについてのセッション I D、 セッションを構成する各プロックのブロック I D、 並びにブロックに対応するタスクのタスク I Dをそれぞれ登録している。 図 6には、 タスク 'ルックアップ 'テープノレを生成するための手順をフローチ ヤートの形式で示している。 また、 図 7には、 マルチタスク環境下でセッション Bが起動したときのタスク ■ルックアップ■テーブルを生成するときの処理の流 れを図解している。
コマンド .インターフェースなどを介してセッション ·オープンの指示がある と、 セッションを起動し (ステップ S 1 ) 、 セッション .マネージャ 1 1 0が空 きセッション番号をテープノレに問い合わせる (ステップ S 2、 P 1 )。
テーブル 'コント口ール部 1 6 0内のテーブル管理部 1 6 1は、 タスク ·ルツ クアップ'テーブル 1 5 0を参照し、 空きセッション I Dを検索し (ステップ S 2、 P 3 ) 、 空きセッシヨン I Dをセッション管理部 1 6 2に通知する ( P 5 )。 また、 セッション管理部 1 6 2は、 その空きセッション I Dを使用してセッシ ョンを起動するため、 テーブル管理部 161にセッション I Dを使用する旨を通 知する (ステップ S 3、 P 1) 。 テーブル管理部 161は、 この通知に応答して、 セッション 'ルックアップ'テーブル 150上に使用するセッシヨン I Dを確保 する (P 2) 。 セッション管理部 162は、 そのセッシヨン I Dでセッシヨンを 起動し、 セッションに属する各タスクの起動をオペレーティング 'システム 14 0に指示する (ステップ S 4) 。
セッション管理部 162は、 タスクの起動をオペレ一ティング■ システム 14 0に指示すると同時に、 テープノレ管理部 163にブロック I Dとタスク I Dを通 知する (ステップ S 5、 P 1) 。 そして、 テーブル管理部 161は、 そのタスク I Dとブロック I Dをタスク -ルックアップ'テーブルに記録する (P2) 。 セ ッシヨン I Dとブロック I Dの組み合わせにより、 タスクのインスタンスを識別 することができる。
ステップ S4〜S 5の処理を起動させるタスクが無くなるまで行ない (ステツ プ S 6) 、 起動するすべてのタスク (すなわち、 セッションを構成するすべての タスク) を、 当該セッシヨンのタスク 'ルックアップ'テーブルに登録する。 そ して、 起動するすべてのタスクについての登録処理が完了すると、 これに伴い、 セッションの起動も完了する (ステップ S 7) 。
なお、 タスク ·ルックアップ'テーブルの登録はセッションを構成する各タス クを起動する度に行なうのではなくて、 タスクの起動を開始する前、 あるいはす ベてのタスクを起動した後に一括して登録するようにしても良い。
このようにして、 起動した各セッション毎にタスク 'ルックアップ 'テーブル が作成され、 セッション内での機能プロックとタスクとの対応関係が明瞭となる。 そして、 起動中のあるタスクが他のタスクに対してメッセージ送信を行なおうと する際には、 このタスク 'ルックアツプ ·テーブルを参照することにより送信先 となるタスクの I Dを取得することができる。
図 8には、 タスク 'ルックアップ ·テーブルを参照することによってタスク I Dを取得してメッセージを送受信するための処理手順をフローチヤ一トの形式で 示している。 また、 図 9には、 タスク ■ルックアップ'テーブルから取得された タスク I Dを用いてオペレーティング .システムのタスク間通信機能を用いてメ ッセージ送受信を行なう流れを示している。
あるタスクが同一セッション内ヘメッセージの送信を行なうとき (ステップ S 8) 、 送信元のタスクは、 送信先となるタスクのメール'ボックス I Dを知る必 要がある。 本実施形態に係るプログラム処理システム 100では、 メール■ボッ クス I Dをタスク I Dとしているので、 送信先のタスク I Dを求めることになる。 送信先のタスク I Dを求めるためには、 まず、 当該セッションのタスク ·ルツ クアップ ·テーブルを参照して、 ブロック IDを特定する (ステップ S 9) 。 他 のセッションに向けた送信を行う場合はセッシヨン I Dをともに指定することで 可能だが、 ここでは同一セッシヨン内のタスクに送ることを想定する。
ブロック IDを特定した後、 送信元のタスクは、 テーブル管理部 161にプロ ック I Dを渡す (P 6) 。 タスク I D取得部 163は、 テーブル管理部 161に 対し、 ブロック I Dからタスク I Dを求めるよう指示する (P 7) 。 テーブル管 理部 161は、 この指示に応答して、 送信元のタスクが属しているセッションの セッション I Dを取得し (ステップ S 10) 、 このセッションに該当するタス ク -ルックアップ.テープノレよりタスク I Dを取得し (P3) 、 これをタスク I D取得部 163に通知する (P8) 。 タスク I D取得ブロックは、 受け取ったタ スク IDを、 要求元のタスクに対して送信先タスク I Dとして渡す (P 9) 。 これらの動作によって、 送信元タスクは、 自セッション内における送信先タス クのタスク I Dを取得する (ステップ S 1 1) 。 メッセージ送信先のメッセ一 ジ■ボックス I Dは送信タスクのタスク I Dと同じであるから、 そのタスク I D をそのままメッセージ送信 I Dとして使用する。 この結果、 メッセージ 'ボック スの ID (mi d) は必然的に決定される (t i d=m i d)。
次いで、 送信元のタスクは、 メッセージを送信するため、 オペレーティング ' システム 1 4 0が持つメッセージ送信プロック 1 4 1に対して、 メッセージ ·ボ ックス I D (ここでは送信先タスクのタスク I D) とメッセージ本体を送信する (ステップ S 1 2、 P 1 0 ) オペレーティング'システム 1 4 0は、 メッセ一 ジ ·ボックス I Dを特定し、 メッセージ受信プロック 1 4 2を通して、 送信先タ スクにメッセージを渡す (ステップ S 1 3、 P 1 2 ) 。
送信元タスクから送信先タスクへ送るメッセージの中に送信元のタスク I Dを 入れておくことで、 送信先タスクから送信元タスクへのメッセージ送信は、 テー ブルからタスク I Dを引くことなく送信元にメッセージを送り返すことができる ( P 1 3、 P 1 4、 P 1 5 ) 。
なお、 上述の説明ではメッセージの送信方法を例にしたが、 メール'ボックス、 フラグ、 データ 'キューなどにおいても同様の手順で実施が可能であるというこ とを充分理解されたい。
D . ソースコードの記述
本実施形態に係るアプリケーション 'プログラムは、 複数のタスクで構成され、 樹共する機能毎に該機能を実現するために必要なタスクとその実行順序がセッシ ヨンとして定義されている。 そして、 マルチタスク環境下で実行することにより、 同一のソースコードを持つタスクが複数のセッションで同時に起動する。
一般的なオペレーティング ·システムはタスク間通信機能を備えているが、 同 一のソースコードを持つ複数のタスクを動的に特定することはできない。 そこで、 本実施形態では、 セッションを起動したときに、 セッションを各機能毎にタスク を分割したときの各プロックにプロック I Dを割り振るとともに、 ブロック I D とタスク I Dの早見表であるタスク ·ルックアップ■テーブルを作成する。 そし て、 あるタスクが別のタスクへメッセ一ジを送信する際には、 送信元タスクは送 信先をプロック I Dで指定し、 タスク ·ルックアップ ·テーブルを参照すること によりタスク I Dを取得することができる。 この後、 送信先のタスク I Dを指定 して、 オペレーティング ·システムのメッセージ通信機能を用いてメッセージの 送受信を行なうことができる。
したがって、 同一のソースコードからなるタスクが複数存在する場合にメッセ ージ送信先を特定して好適にメッセージ通信を行なうことができるようになる。 以下では、 タスクを構成するソ一スコードを参照しながら、 本実施形態に係るメ ッセージ通信の仕組みについて説明する。
図 10には、 同一のソースコードからなる複数のタスクの実体 (インスタン ス) が起動される様子を図解している。
図示の通り、 タスク Aのソースコードには、 コード " r e v— ms g (*m s g) " によって構成されるメッセージの受信部と、 コード " s n d— ms g (* ms g) " によって構成されるメッセージの送信部が含まれている。 タスクのソ 一スコードには、 受信部が 1つでよいという点に十分留意されたレ、。
コマンド ·インターフェースからのセッション ·オープンの指示に応答して、 オペレーティング ·システムがセッションを構成するすべてのタスクを起動する ことによって、 その実体すなわちインスタンスが生成される。 そして、 オープン が指示される複数のセッションに同じタスクが含まれている場合、 図示のように、 同じソースコードのタスクが複数起動される。 既に説明したように、 タスク起動 時には、 タスク I Dとブロック I Dの対応関係がセッションについてのタスク - ノレックアップ■テープノレに登録される。
図 11には、 本発明に係るメッセージ通信方式を取り入れた場合のタスクのソ 一スコード内での送信部及び受信部の記述方法を示している。
タスク Aのソースコードには、 コード " r c v_m s g ( t i d , * m s g) " によって構成されるメッセージの受信部と、 コード "s n d— ms g ( s t i d, *ms g) " によって構成されるメッセージの送信部が含まれている。 上述したように、 本実施形態では、 セッション内の機能プロック毎にブロック I Dを害 IIり振り、 セッション 'ルックアップ'テーブルを作成している。 したが つて、 送信元のタスクは、 送 ί言先のタスクのブロック ID (b i d) からそのタ スク I D (t i d) を検索することができ、 その t i dを用いてメッセージを送 信することができる。
図 1 1に示す例では、 送信元となるタスク 1では、 送信先のタスクをブロック I Dで指定しておく (b i d = 2) とともに、 テーブル'ルックアップ 'テープ ルから当該ブロック I Dを引くことで取得されるタスク I Dを変数 s t i dに代 入し (s t i d = g e t _ t i d_ f r o m一 b i d (b i d) ) 、 s t i dを ½ 信先に指定して (s n d— ms g (s t i d, *ms g) ) 、 メッセ一ジ送信す る。 一方、 送信先となるタスクのソースコードには、 受信部が 1つでよい (同 上) 。 すなわち、 コード "g e t_t Γ d (t i d) " により送信元タスクの t i dを取得し、 コード "r c v— ms g (t i d, +m s g) " により送信元タ スクからのメッセージを受信することができる。
したがって、 アプリケーション■プログラムに含まれるセッション数が増えた り、 タスクの構成が変更したりしたとしても、 ソースコードを変更する必要はな い。
なお、 あるタスクから別のタスクへメッセージを送信する場合、 ソースコード 上に I Dを直接記述することによつても、 同一のソースコードを持つタスクが複 数のセッションで同時に起動する環境下でメッセージ送受信を実現することもで きる。 図 1 2には、 この場合の例を示している。
同図に示す例では、 送信元のタスクのソースコードには、 起動したときのセッ シヨン I Dに応じた送信部を備えている。 すなわち、 セッション 1でこのタスク が起動したときにはメッセージの送信先のタスク I Dは 2であり、 それ以外のセ ッションで起動したときにはメッセージの送信先のタスク I Dは 3である。
[追補]
以上、 特定の実施形態を参照しながら、 本発明について詳解してきた。 しかし ながら、 本発明の要旨を逸脱しな Lヽ範囲で当業者が該実施形態の修正や代用を成 し得ることは自明である。 すなわち、 例示という形態で本発明を開示してきたの であり、 本明細書の記載内容を限定的に解釈するべきではない。 本発明の要旨を 判断するためには、 冒頭に記載した特許請求の範囲の欄を参酌すべきである。 以上詳記したように、 本発明によれば、 アプリケ一ションが複数の機能を同時 並行して動作する際に複数の機能で同一のタスクを好適に共有することができる、 優れたプログラム処理システム及びプログラム処理方法、 並びにコンピュータ■ プログラムを提供することができる。
また、 本発明によれば、 複数の機能で共有されるタスクのリソースと実行状態 を好適に管理することができる、 優れたプログラム処理システム及びプログラム 処理方法、 並びにコンピュータ 'プログラムを提供することができる。
また、 本発明によれば、 同一のソースコードからなるタスクが複数存在する場 合にメッセージ送信先を特定して好適にメッセージ通信を行なうことができる、 優れたプログラム処理システム及びプログラム処理方法、 並びにコンピュータ - プログラムを提供することができる。
本発明によれば、 目的のタスク及びメッセージ送受信先を動的に特定する機能 がないオペレーティング 'システムによって提供される実行環境に、 当該機能を オペレーティング.システム外で樹共することができる。 また、 このようなメッ セージ送受信機能を搭載したことで、 仕様変更に伴うソースコ一ドの変更量を軽 減することができ、 生産性の向上につながる。 '
産業上の利用可能性
本発明は、 複数のタスクを擬似的に同時並列的に動作させるマルチタスク環境 下でアプリケーションを実行するシステムに適用可能である。

Claims

請求の範囲
1 . 複数のタスクを擬似的に並列に実行させるマルチタスク環境とタスク間 通信機能を提 ί共するマルチタスク ■オペレーティング ·システムが提供する実行 環境下で複数のタスクからなるプロダラムを実行するプログラム処理システムで めって、
プログラムが f共する各機能毎に該機能を実現するために必要なタスクとその 実行順序をセッシヨンとして定義するセッション定義手段と、
セッションを実行するためのリソースと実行状態を管理するセッション管理手 段とを備え、
前記セッション管理手段は、 セッションの起動時に当該セッションを構成する 各タスクのインスタンスを生成するとともに、 当該セッション及び当該セッショ ンを構成する各タスクの前記ィンスタンスに前記セッションの識別情報及び前記 インスタンスの識別情報を割り振り、 セッション毎のタスク ■ルックアップ■テ 一ブル上で前記の各識別情報を管理する、 ことを特徴とするプログラム処理シス テム。
2 . 複数のセッション間で同一の前記タスクを共有するように前記タスク - ルックアップ'テーブルを生成する
請求項 1に記載のプロダラム処理システム。 '
3 . タスク間で通信を行なう際に、 タスクが含まれるセッションの前記タス ク 'ルックアップ 'テーブルを参照して送信先タスクのインスタンス識別情報に 基づいてタスクを特定して、 メッセージ送受信を行なうメッセージ通信手段をさ らに備える、 ことを特徴とする請求項 1に記載のプロダラム処理システム。
4 . 前記メッセージ通信手段は、 前記タスク ·ルックアップ■テーブルから 得られた送信先タスクのィンスタンス識別情報に基づ!/、て、 前記オペレーティン グ■システムが提供するタスク間通信機能を用いてメッセージ送受信を行なう、 ことを特徴とする請求項 3に記載のプログラム処理システム。
5 . 前記メッセージ通信手段は各タスク内に組み込まれる、 ことを特徴とす る請求項 3に記載のプログラム処理システム。
6 . 複数のタスクを擬似的に並列に実行させるマルチタスク環境とタスク間 通信機能を提供するマルチタスク ·オペレーティング■システムが提供する実行 環境下で複数のタスクからなるプログラムを実行するプロダラム処理方法であつ て、
プログラムが提供する各機能毎に該機能を実現するために必要なタスクとその 実行順序をセッシヨンとして定義するセッシ 3ン定義ステツプと、
セッションを実行するためのリソースと実行状態を管理するセッション管理ス テツプとを備え、
前記セッション管理ステップでは、 セッションの起動時に当該セッションを構 成する各タスクのインスタンスを生成するとともに、 当該セッション及び当該セ ッションを構成する各タスクのインスタンスにセッションの識別情報及びィンス タンスの識別情報を割り振り、 セッション毎のタスク 'ルックアップ'テーブル 上で前記の各識別情報を管理する、 ことを特徴とするプログラム処理方法。
7 . 複数のセッション間で同一の前記タスクを共有するように前記タスク - ノレックアップ ·テーブルを生成するステップをさらに有する
請求項 6に記載のプログラム処理方法。
8 . タスク間で通信を行なう際に、 タスクが含まれるセッシヨンのタスク - ノレックアップ 'テーブルを参照して送信先タスクのインスタンス識別情報に基づ いてタスクを特定して、 メッセージ送受信を行なうメッセージ通信ステップをさ らに備える、 ことを特徴とする請求項 6に記載のプログラム処理方法。
9 . 前記メッセージ通信ステップでは、 タスク ·ルックアップ ·テーブルか ら得られた送信先タスクのインスタンス識別情報に基づレ、て、 前記オペレーティ ング■ システムが ¾i共するタスク間通信機能を用いてメッセージ送受信を行なう、 ことを特徴とする請求項 6に記載のプログラム処理方法。
1 0 . 複数のタスクを擬似的に並列に実行させるマルチタスク環境とタスク 間通信機能を»するマルチタスク ·オペレーティング ·システムが樹共する実 行環境下下で実行することにより複数の機能を実現するようにコンピュータ可読 形式で記述されたコンピュータ■プログラムであって、
プログラムが提供する各機能毎に該機能を実現するために必要なタスクとその 実行順序をセッシヨンとして定義するセッション定義手段と、
セッションを実行するためのリソースと実行状態を管理するセッション管理手 段と、 タスク間で通信を行なうメッセージ通信手段とを備え、
前記セッション管理手段は、 セッション起動時に当該セッションを構成する各 タスクのインスタンスを生成するとともに、 当該セッション及び当該セッション を構成する各タスクのインスタンスにセッションの識別情報及びィンスタンスの 識別情報を割り振り、 セッション毎のタスク ·ルックアップ ·テ一ブル上で前記 の各識別情報を管理し、
前記メッセージ通信手段は、 タスク 'ルックアップ 'テープノレから得られた送 信先タスクのインスタンス識別情報に基づいて、 前記オペレーティング ·システ ムが提供するタスク間通信機能を用いてメッセージ送受信を行なう、 ことを特 ί敷 とするコンピュータ .プログラム。
1 1 . 前記メッセージ通信手段は各タスク内に組み込まれる、 ことを特徴と する請求項 1 0に記載のコンピュータ ·プログラム。
1 2 . 複数のタスクを擬似的に並列に実行させるマルチタスク環境とタスク 間通信機能を提供するマルチタスク ■オペレーティング ·システムが提供する実 行環境下で複数のタスクからなるプログラムの処理をコンピュータ .システム上 で実行するようにコンピュータ可読形式で記述されたコンピュータ ·プログラム でめってヽ
プログラムが提供する各機能毎に該機能を実現するために必要なタスクとその 実行順序をセッションとして定義するセッション定義ステップと、 セッションを実行するためのリソースと実行状態を管理するセッション管理ス テツプと、
前記セッション管理ステップでは、 セッション起動時に当該セッションを構成 する各タスクのィンスタンスを生成するとともに、 当該セッション及び当該セッ ションを構成する各タスクのインスタンスにセッションの識別情報及びィンスタ ンスの識別情報を割り振り、 セッション毎のタスク 'ルックアップ'テーブル上 で前記の各識別情報を管理し、
前記メッセージ通信ステップでは、 タスク ■ルックアップ'テープノレから得ら れた送信先タスクのインスタンス識別情報に基づレ、て、 前記オペレーテイング - システムが樹共するタスク間通信機能を用いてメッセージ送受信を行なう、 こと を特徴とするコンピュータ■プログラム。
PCT/JP2004/006510 2003-05-07 2004-05-07 プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム WO2004099984A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP04731769A EP1622017A4 (en) 2003-05-07 2004-05-07 SYSTEM AND METHOD FOR PROCESSING PROGRAM AND COMPUTER PROGRAM
US10/555,355 US7802253B2 (en) 2003-05-07 2004-05-07 System for session management of resources and tasks having records in the lookup table for the session

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003-129545 2003-05-07
JP2003129545A JP2004334537A (ja) 2003-05-07 2003-05-07 プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム

Publications (1)

Publication Number Publication Date
WO2004099984A1 true WO2004099984A1 (ja) 2004-11-18

Family

ID=33432077

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/006510 WO2004099984A1 (ja) 2003-05-07 2004-05-07 プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム

Country Status (6)

Country Link
US (1) US7802253B2 (ja)
EP (1) EP1622017A4 (ja)
JP (1) JP2004334537A (ja)
KR (1) KR20060008965A (ja)
CN (1) CN100390741C (ja)
WO (1) WO2004099984A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5119590B2 (ja) 2005-11-10 2013-01-16 富士通セミコンダクター株式会社 マルチプロセッサを有するプロセッサ装置用のタスク分配プログラム及びタスク分配装置
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
CN101047706B (zh) * 2006-03-27 2011-07-06 华为技术有限公司 一种接入网会话控制系统及方法
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 中兴通讯股份有限公司 信息投递的方法和装置
CN102681905A (zh) * 2011-03-09 2012-09-19 新奥特(北京)视频技术有限公司 一种任务之间的相互通讯方法及系统
JP6275276B2 (ja) * 2014-11-14 2018-02-07 三菱電機株式会社 サーバー装置、クライアント装置、サーバー装置プログラム、セッション管理方法、及びクライアントサーバーシステム
US11410075B2 (en) 2018-01-15 2022-08-09 Microsoft Technology Licensing, Llc Contextually-aware recommendations for assisting users with task completion

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09223004A (ja) * 1996-02-19 1997-08-26 Nippon Telegr & Teleph Corp <Ntt> プログラム開発支援方法
JP2003122586A (ja) * 2001-08-09 2003-04-25 Matsushita Electric Ind Co Ltd タスク・スケジューリング装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
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
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 华为技术有限公司 一种多任务操作系统中任务进程的保护方法
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09223004A (ja) * 1996-02-19 1997-08-26 Nippon Telegr & Teleph Corp <Ntt> プログラム開発支援方法
JP2003122586A (ja) * 2001-08-09 2003-04-25 Matsushita Electric Ind Co Ltd タスク・スケジューリング装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1622017A4 *

Also Published As

Publication number Publication date
EP1622017A4 (en) 2007-11-07
CN1816800A (zh) 2006-08-09
US7802253B2 (en) 2010-09-21
KR20060008965A (ko) 2006-01-27
CN100390741C (zh) 2008-05-28
EP1622017A1 (en) 2006-02-01
JP2004334537A (ja) 2004-11-25
US20070162910A1 (en) 2007-07-12

Similar Documents

Publication Publication Date Title
US8495317B2 (en) System and method for improving performance of data container backups
Theimer et al. Preemptable remote execution facilities for the V-system
KR101330495B1 (ko) 가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법
JP4690988B2 (ja) 持続的なユーザレベルスレッド用の装置、システムおよび方法
US7506345B2 (en) Method and apparatus for adapting and hosting legacy user interface controls
JP5496683B2 (ja) カスタマイズ方法及びコンピュータシステム
US7840965B2 (en) Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer
US20040083481A1 (en) System and method for transferring data between virtual machines or other computer entities
US20090327632A1 (en) Copying workload files to a virtual disk
US20060005190A1 (en) Systems and methods for implementing an operating system in a virtual machine environment
HU228610B1 (en) Method of identity-based distributed computing for device resources in a computing environment, as well as a computer-readable medium and system
WO2006035730A1 (ja) 情報処理装置、通信処理方法、並びにコンピュータ・プログラム
JP2008535099A (ja) 拡張割込み制御装置および合成割込みソースに関するシステムおよび方法
KR20060117869A (ko) 파티션 버스
JP2003345612A (ja) 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びにコンピュータ・プログラム
WO2006035729A1 (ja) 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP2004536382A (ja) 置換可能なサービス品質機能のあるネットワーク通信チャネルコンポーネントを選択するために、置換可能なコンポーネントを用いるシステム、方法及び製造物
US20170206121A1 (en) Monitoring components in a service framework
JP3938343B2 (ja) タスク管理システム、プログラム、及び制御方法
US7536587B2 (en) Method for the acceleration of the transmission of logging data in a multi-computer environment and system using this method
WO2004099984A1 (ja) プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム
CN111880866A (zh) 跨进程回调执行方法、装置、设备及存储介质
CN111213127A (zh) 用于直接分配的设备的虚拟化操作
JP2004310615A (ja) プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム
JP3993342B2 (ja) 電子計算機における処理の中断/再開方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200480019135.7

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004731769

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020057020822

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1020057020822

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2004731769

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2007162910

Country of ref document: US

Ref document number: 10555355

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 10555355

Country of ref document: US