Nothing Special   »   [go: up one dir, main page]

WO2024184941A1 - Function transmission device, function execution device, function transmission method, function execution method, function transmission program, and function execution program - Google Patents

Function transmission device, function execution device, function transmission method, function execution method, function transmission program, and function execution program Download PDF

Info

Publication number
WO2024184941A1
WO2024184941A1 PCT/JP2023/007976 JP2023007976W WO2024184941A1 WO 2024184941 A1 WO2024184941 A1 WO 2024184941A1 JP 2023007976 W JP2023007976 W JP 2023007976W WO 2024184941 A1 WO2024184941 A1 WO 2024184941A1
Authority
WO
WIPO (PCT)
Prior art keywords
function
execution
functions
early
unit
Prior art date
Application number
PCT/JP2023/007976
Other languages
French (fr)
Japanese (ja)
Inventor
貴之 上野
武尚 水口
整 山本
竜也 山田
圭祐 堀井
Original Assignee
三菱電機株式会社
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 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2023/007976 priority Critical patent/WO2024184941A1/en
Publication of WO2024184941A1 publication Critical patent/WO2024184941A1/en

Links

Images

Classifications

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

Definitions

  • This disclosure relates to the execution of functions.
  • FaaS Flexible Computing Service
  • FaaS Flexible Computing Service
  • FaaS it is possible to register event-driven functions defined by the user to a function execution device.
  • FaaS an execution environment according to the function is provided to the function execution device when the function is registered, so that the user can easily execute the function.
  • Patent Document 1 Japanese Patent Laid-Open No. 2003-233693 discloses that arguments received from a function execution device are provided to a function of a function registration request device, and the execution result of the function is provided to the function execution device.
  • FIG. 20 shows the relationship between the execution request queue and the execution thread of a function in the prior art.
  • an execution thread takes an execution request from an execution request queue that has a one-to-one correspondence with the execution thread, and calls a function.
  • all execution threads operate with the same priority. For this reason, the conventional technology has a problem that, as shown in the timing chart of function processing in FIG. 21, the execution of a function that needs to be completed quickly is made to wait and/or the execution of the function is interrupted due to the execution of another function.
  • the primary objective of this disclosure is to solve these problems. More specifically, the objective of this disclosure is to quickly complete the execution of a function that needs to be completed quickly.
  • the function transmission device comprises: an information generating unit that generates instruction information for instructing a function execution device to complete the execution of an early completion function, which is a function that needs to be completed earlier than other functions among a plurality of functions to be executed by the function execution device, earlier than the other functions; A transmitting unit transmits the early completing function and the instruction information to the function execution unit.
  • FIG. 2 is a diagram showing an example of the hardware configuration of a function registration request device and a function execution device according to the first embodiment; 2 is a diagram showing an example of the functional configuration of a function registration request device and a function execution device according to the first embodiment;
  • FIG. 4 is a diagram showing an example of registration data according to the first embodiment;
  • FIG. 4 is a diagram showing an example of an event function correspondence table in the first embodiment.
  • FIG. 11 is a diagram showing an example of an operation sequence in an execution preparation phase according to the first embodiment.
  • FIG. 11 is a diagram showing an example of an operation sequence in an event execution phase according to the first embodiment.
  • 5 is a timing chart of function processing according to the first embodiment.
  • FIG. 11 is a diagram showing an example of registration data according to the second embodiment.
  • FIG. 13 is a diagram showing an example of an event function correspondence table in the second embodiment.
  • FIG. 11 is a diagram showing an example of an operation sequence in an execution preparation phase according to the second embodiment.
  • FIG. 11 is a diagram showing an example of an operation sequence in an event execution phase according to the second embodiment.
  • 5 is a timing chart of function processing according to the first embodiment.
  • FIG. 13 is a diagram showing an example of the functional configuration of a function registration request device and a function execution device according to a third embodiment.
  • FIG. 13 is a diagram showing an example of registration data according to the third embodiment.
  • FIG. 13 is a diagram showing an example of an event function correspondence table in the third embodiment.
  • FIG. 13 is a diagram showing an example of an operation sequence in an execution preparation phase according to the third embodiment.
  • FIG. 11 is a diagram showing an example of an operation sequence in an execution preparation phase according to the third embodiment.
  • FIG. 13 is a diagram showing an example of an operation sequence in an event execution phase according to the third embodiment.
  • FIG. 13 is a diagram showing an example of registration data according to the fourth embodiment.
  • FIG. 13 is a diagram showing an example of an operation sequence in an execution preparation phase according to the fourth embodiment.
  • FIG. 1 is a diagram showing the relationship between a conventional execution request queue and execution threads.
  • 11 is a timing chart of conventional function processing.
  • FIG. 1 shows an example of the hardware configuration of a function registration request device 100 and a function execution device 200 according to the present embodiment.
  • the function registration request device 100 and the function execution device 200 are connected via a network 300 .
  • the function execution device 200 executes a function.
  • a plurality of function execution devices 200 may exist.
  • the function registration request device 100 transmits a function to be executed by the function execution device 200 to the function execution device 200 via the network 300 .
  • the function registration requesting device 100 corresponds to a function transmission device.
  • the operation procedure of the function registration requesting device 100 corresponds to a function transmission method.
  • the program for realizing the operation of the function registration requesting device 100 corresponds to a function transmission program.
  • the operation procedure of the function execution device 200 corresponds to a function execution method, and the program that realizes the operation of the function execution device 200 corresponds to a function execution program.
  • the function registration request device 100 is a computer.
  • the function registration request device 100 includes a CPU (Central Processing Unit) 101, a memory 102, a communication device 103, and a storage device 104.
  • the function registration request device 100 may include a plurality of CPUs 101.
  • the communication device 103 of the function registration requesting device 100 transmits a function to the communication device 203 of the function execution device 200 via the network 300 .
  • the function execution device 200 is also a computer.
  • the function execution device 200 also includes a CPU 201, a memory 202, a communication device 203, and a storage 204.
  • the function execution device 200 may include a plurality of CPUs 201.
  • the communication device 203 of the function execution device 200 receives a function from the communication device 103 of the function registration request device 100 via the network 300 .
  • FIG. 2 shows an example of the functional configuration of a function registration request device 100 and a function execution device 200 according to this embodiment.
  • the function registration unit 111 acquires a function registration request from a user. When the function registration unit 111 acquires the function registration request, it generates instruction information.
  • the instruction information is information for instructing that a function that needs to be completed earlier than other functions among a plurality of functions (hereinafter, referred to as an early completion function) is to be completed earlier than the other functions. Then, the function registration unit 111 transmits the registration data 105 including a plurality of functions including the early completion function and instruction information to the function execution device 200 .
  • the function registration unit 111 corresponds to an information generation unit and a transmission unit, and the process performed by the function registration unit 111 corresponds to an information generation process and a transmission process.
  • the registration data 105 is data to be registered in the function execution device 200 by the function registration request device 100 .
  • the registration data 105 is stored in the storage 104 . It is assumed that the registration data 105 exists for each function to be transmitted to the function execution device 200. In this embodiment, since it is assumed that a plurality of functions are transmitted from the function registration request device 100 to the function execution device 200, it is assumed that a plurality of registration data 105 exists.
  • FIG. 3 shows an example of the registration data 105 .
  • the registration data 105 includes functions, execution setting information, and priority information.
  • the function is a function to be executed by the function execution unit 200 .
  • the execution setting information is setting information related to the execution of a function.
  • the execution setting information includes event information.
  • the event information defines an event that will be a trigger for the execution of the function.
  • the priority information is instruction information in this embodiment. That is, in this embodiment, the priority information is used as instruction information.
  • the priority information defines the order of priority when the functions are executed. In the registration data 105 of the early completion function, the priority information indicates a higher priority for the early completion function than other functions.
  • An operating system 210 runs on the function execution device 200 . Furthermore, a function management unit 211, a receiving unit 212, a function execution environment 214, and a function execution unit 217 operate on the operating system 210.
  • the function management unit 211, the receiving unit 212, the function execution environment 214, and the function execution unit 217 are realized, for example, by a program. More specifically, the CPU 201 executes a program that realizes the functions of the function management unit 211, the receiving unit 212, the function execution environment 214, and the function execution unit 217, thereby causing the function management unit 211, the receiving unit 212, the function execution environment 214, and the function execution unit 217 to operate as described below.
  • the function management unit 211 stores the registration data 105 received by the receiving unit 212 in the storage 204 and prepares for function execution.
  • the receiving unit 212 receives the registration data 105 from the function registration requesting device 100. Then, the receiving unit 212 outputs the received registration data 105 to the function managing unit 211.
  • the receiving unit 212 also includes an execution request queue 213 corresponding to each function. In this embodiment, the receiving unit 212 includes a plurality of execution request queues 213. An execution request queue 213 exists for each function 216.
  • the receiver 212 receives an event notification notifying the occurrence of an event when the event occurs. The event notified in the event notification is an event that triggers the execution of a function.
  • the receiver 212 submits an execution request to an execution request queue 213 corresponding to the function 216 to be executed by a function execution unit 217. The process performed by the receiving unit 212 corresponds to a receiving process.
  • the function executing unit 217 When an execution request is submitted to the execution request queue 213 by the receiving unit 212, the function executing unit 217 generates an execution thread 215 in the function execution environment 214. Furthermore, the function executing unit 217 calls a corresponding function 216 and executes the function 216.
  • the function 216 is a function transmitted from the function registration requesting device 100 as a part of the registration data 105.
  • the function executing unit 217 calls the function included in the registration data 105 as the function 216. If the function 216 is an early completion function, the function execution unit 217 executes the function 216 (early completion function) with priority in accordance with the priority information so that the function 216 is completed earlier than other functions.
  • the process performed by the function execution unit 217 corresponds to a function execution process.
  • the function execution unit 217 is independent of the operating system 210 in FIG. 2, the function execution unit 217 may be a part of the operating system 210 .
  • the storage 204 stores the registration data 105 sent from the function registration request device 100 and the event function correspondence table 205.
  • FIG. 4 shows an example of the event function correspondence table 205 .
  • the event column indicates an event that triggers the execution of the function described in the function name column.
  • the event indicated in the event column is the event indicated in the event information of the registration data 105.
  • the function name column indicates a function to be executed when the event indicated in the event column occurs.
  • the function indicated in the function column is a function included in the registration data 105.
  • the priority column indicates the priority of the function written in the function name column.
  • the priority indicated in the priority column is the priority indicated in the priority information of the registration data 105. If the function indicated in the function name column is an early completion function, the priority column indicates a higher priority than other functions.
  • the execution preparation phase is a phase for putting the function execution device 200 into a state of waiting to receive an event.
  • the event execution phase is a phase in which the function execution device 200 executes a function when an event occurs.
  • FIG. 5 shows the operation sequence during the execution preparation phase.
  • the function registration unit 111 receives a function registration request from a user (step S400).
  • the function registration request indicates elements (functions, events, and priorities) to be included in the registration data 105.
  • the function registration unit 111 When the function registration unit 111 receives a function registration request, it generates registration data 105 according to the function registration request, and transmits the registration data 105 and the function execution environment 214 corresponding to the function to the function execution device 200 (step S401).
  • the receiving unit 212 receives the registration data 105 and the function execution environment 214, and the function management unit 211 stores the registration data 105 and the function execution environment 214 in the storage 204 (step S402).
  • Fig. 2 shows a state in which the function execution environment 214 is activated. For this reason, the function execution environment 214 is not described in the storage 204.
  • the function management unit 211 generates the event function correspondence table 205 from the registration data 105, and registers the event function correspondence table 205 in the storage 204 (step S403).
  • the function management unit 211 starts the function execution environment 214 (step S404), and sets a priority for the execution thread 215 based on the event-function correspondence table 205 (step S405).
  • FIG. 6 shows the sequence of operations in the event execution phase.
  • the execution preparation phase is complete.
  • the receiving unit 212 receives an event notification (step S500).
  • the receiving unit 212 searches the “Event” column of the event function correspondence table 205 for the event notified in the event notification, identifies a function corresponding to the notified event, and submits an execution request to the execution request queue 213 of the identified function (step S501).
  • the function execution section 217 performs a process of retrieving an execution request from the execution request queue 213 (step S502).Then, the function execution section 217 determines whether or not the execution request has been retrieved from the execution request queue 213 (step S503).
  • step S503 When an execution request is taken out of the execution request queue 213, the function execution section 217 generates an execution thread 215 in the function execution environment 214, calls the corresponding function 216, and executes the function 216 (step S504). After that, the process returns to step S502. If the execution request queue 213 is empty and the function execution section 217 cannot extract an execution request, the process returns to step S502.
  • step S504 the function execution unit 217 processes the execution threads 215 with higher priority among the multiple execution threads 215. That is, the function execution unit 217 executes functions with higher priority, i.e., early completion functions, with priority according to the priority information. As a result, the execution of the early completion functions is completed earlier than the execution of other functions.
  • functions with higher priority i.e., early completion functions
  • FIG. 7 shows a timing chart of the function processing in this embodiment.
  • the function execution unit 217 performs task scheduling based on the priority set for the execution thread of each function. 7, execution thread 3, which is an execution thread of the early completion function, is executed prior to execution threads 1 and 2, which are execution threads of other functions. Therefore, the execution of the early completion function is completed early. In other words, the execution of the early completion function can be started without waiting for the completion of the execution of the other functions. In addition, during the execution of the early completion function, an interruption due to the other functions does not occur.
  • Embodiment 2 an example in which priority information is used as instruction information has been described. That is, in the first embodiment, a priority is set for an execution thread of each function, so that the execution of an early completing function is completed early. On the other hand, the same effect can be obtained by using information other than priority information as the instruction information.
  • priority information is used as instruction information.
  • CPU core allocation information is used as the instruction information instead of priority information.
  • differences from the first embodiment will be mainly described. It should be noted that matters not explained below are the same as those in the first embodiment.
  • the registration data 105b shown in FIG. 8 is used.
  • the registration data 105b includes functions, execution setting information, and CPU core allocation information.
  • the functions and execution setting information are the same as those shown in Fig. 3, so a description thereof will be omitted.
  • the CPU core allocation information defines the number of a CPU core to which the execution of a function is assigned.
  • the function registration unit 111 can instruct, in the CPU core allocation information, to assign a specific CPU core out of the multiple CPU cores of the function execution device 200 to the early completion function.
  • the event function correspondence table 205b shown in FIG. 9 is used.
  • the event-function correspondence table 205b has columns for event, function name, and assigned CPU core.
  • the event and function name columns are the same as those shown in Fig. 4, and therefore a description thereof will be omitted.
  • the assigned CPU core column indicates the number of a CPU core assigned to execute the function indicated in the function column.
  • the assigned CPU core number indicated in the assigned CPU core column is the number of a CPU core indicated in the CPU core allocation information of the registration data 105b.
  • Figure 10 shows the operation sequence in the execution preparation phase.
  • the function registration unit 111 receives a function registration request from a user (step S400).
  • the function registration request indicates elements (functions, events, and CPU cores) to be included in the registration data 105b.
  • the function registration unit 111 receives a function registration request, it generates registration data 105b according to the function registration request, and transmits the registration data 105b and the function execution environment 214 corresponding to the function to the function execution device 200 (step S401).
  • the receiving unit 212 receives the registration data 105b and the function execution environment 214, and the function management unit 211 stores the registration data 105b and the function execution environment 214 in the storage 204 (step S402). Furthermore, the function management unit 211 generates an event function correspondence table 205b from the registration data 105b, and registers the event function correspondence table 205b in the storage 204 (step S406). Furthermore, the function management unit 211 starts the function execution environment 214 (step S404), and sets a CPU core to be assigned to the execution thread 215 based on the event-function correspondence table 205b (step S407).
  • FIG. 11 shows the operation sequence in the event execution phase.
  • the execution preparation phase is complete.
  • the receiving unit 212 receives an event notification (step S500).
  • the receiving unit 212 searches the “Event” column of the event function correspondence table 205b for the event notified in the event notification, identifies a function corresponding to the notified event, and submits an execution request to the execution request queue 213 of the identified function (step S501).
  • the function execution section 217 performs a process of retrieving an execution request from the execution request queue 213 (step S502).Then, the function execution section 217 determines whether or not the execution request has been retrieved from the execution request queue 213 (step S503).
  • step S503 When an execution request is taken out of the execution request queue 213, the function execution section 217 generates an execution thread 215 in the function execution environment 214, calls the corresponding function 216, and executes the function 216 (step S504). After that, the process returns to step S502. If the execution request queue 213 is empty and the function execution section 217 cannot extract an execution request, the process returns to step S502.
  • step S ⁇ b>504 the function execution unit 217 processes each execution thread 215 using a CPU core assigned to that execution thread 215 .
  • the function execution unit 217 assigns a specific CPU core to the early completion function in accordance with the CPU core allocation information, and executes the early completion function preferentially on the assigned CPU core. As a result, the execution of the early completion function is completed earlier than the execution of other functions.
  • FIG. 12 shows a timing chart of the function processing in this embodiment.
  • the function execution unit 217 performs task scheduling based on the assigned CPU cores set for the execution threads of each function.
  • execution thread 3 which is an execution thread of the early completion function
  • execution thread 1 and execution thread 2 which are execution threads of other functions, are executed by CPU core 1.
  • the early completion function is executed by a CPU core separate from other functions, so that the execution of the early completion function is completed early.
  • the execution of the early completion function can be started without waiting for the execution of other functions to be completed.
  • an interruption due to other functions does not occur.
  • Embodiment 3 In the first embodiment, an example in which priority information is used as instruction information has been described. That is, in the first embodiment, a priority is set for an execution thread of each function, so that the execution of an early completing function is completed early. When a large number of functions are registered in the function execution device 200, a large number of threads are generated. As a result, overhead due to thread switching may increase. Also, resources such as memory may become insufficient. In this embodiment, an example will be described in which the number of threads is reduced by grouping functions. More specifically, the function registration requesting device 100 groups a plurality of functions of the same priority.
  • the function registration requesting device 100 notifies the function execution device 200 of the plurality of functions grouped in group ID (Identifier) information, which is instruction information in this embodiment, and instructs the function execution device 200 to execute the plurality of functions of the same group consecutively.
  • group ID Identity
  • the function registration requesting device 100 notifies the function execution device 200 of the plurality of functions grouped in group ID (Identifier) information, which is instruction information in this embodiment, and instructs the function execution device 200 to execute the plurality of functions of the same group consecutively.
  • group ID Identity
  • FIG. 13 shows an example of the functional configuration of the function registration request device 100 and the function execution device 200 according to this embodiment. 13, compared to Fig. 2, registration data 105c is stored in the storage 104. Furthermore, a plurality of functions 216 share a function execution environment 214 and an execution thread 215. A plurality of functions 216 that share a function execution environment 214 and an execution thread 215 belong to the same group. In other words, in this embodiment, a function execution environment 214 and an execution thread 215 exist for each group. In this embodiment, it is assumed that an execution request queue 213 is provided for each group of functions 216 .
  • FIG. 14 shows an example of the registration data 105c.
  • the registration data 105c includes a function, execution setting information, priority information, and group ID information.
  • the function, execution setting information, and priority information are the same as those shown in Fig. 3, so a description thereof will be omitted.
  • the group ID information indicates the group ID of the group to which the function belongs. Note that only functions that share a common trigger event and have the same priority belong to one group. Multiple functions whose group ID information indicates the same group ID belong to the same group. Note that for a function that does not belong to any group, that is, for a function for which there is no other function with the same priority level that shares a common event, a null value is indicated in the group ID information.
  • the function registration unit 111 classifies, for example, multiple early completion functions that have a common trigger event and the same priority into the same group. Then, the function registration unit 111 includes the same group ID information in the registration data 105c of each of the multiple early completion functions classified into the same group. In this way, the function registration unit 111 can instruct the function execution device 200 to execute multiple early completion functions in succession.
  • FIG. 15 shows an example of the event function correspondence table 205c.
  • the event-function correspondence table 205c has columns for event, function name, priority, and group ID. The columns for event, function name, and priority are the same as those shown in Fig. 4, and therefore a description thereof will be omitted.
  • the group ID column indicates the group ID of the group to which the function indicated in the function column belongs.
  • the group ID indicated in the group ID column is the group ID indicated in the group ID information of the registration data 105c.
  • a null value is set in the group ID column for a function indicated in the group ID information of the registration data 105c with a null value.
  • Figure 16 shows the operation sequence in the execution preparation phase.
  • the function registration unit 111 receives a function registration request from a user (step S400).
  • the function registration request indicates elements (function, event, priority, group ID) to be included in the registration data 105c.
  • the function registration unit 111 acquires the function registration request, it generates registration data 105c according to the function registration request, and transmits the registration data 105c and the function execution environment 214 to the function execution device 200 (step S408).
  • the same group ID is indicated in the group ID information of the registration data 105c for a plurality of functions that have a common trigger event and are set with the same priority.
  • the receiving unit 212 receives the registration data 105c and the function execution environment 214, and the function management unit 211 stores the registration data 105c and the function execution environment 214 in the storage 204 (step S409). Furthermore, the function management unit 211 generates an event function correspondence table 205c from the registration data 105c, and registers the event function correspondence table 205c in the storage 204 (step S410). Furthermore, the function management unit 211 starts the function execution environment 214 for each group (step S411), and sets a priority for each execution thread 215 based on the event-function correspondence table 205c (step S412).
  • FIG. 17 shows the operation sequence in the event execution phase.
  • the execution preparation phase is complete.
  • the receiving unit 212 receives an event notification (step S500).
  • the receiving unit 212 searches the “Event” column of the event function correspondence table 205c for the event notified in the event notification, identifies multiple functions belonging to the same group that correspond to the notified event, and submits execution requests for the identified multiple functions to the execution request queue 213 of the corresponding group (step S505).
  • the function execution section 217 performs a process of retrieving an execution request from the execution request queue 213 (step S502).Then, the function execution section 217 determines whether or not the execution request has been retrieved from the execution request queue 213 (step S503).
  • step S506 When an execution request is taken out of the execution request queue 213, the function execution unit 217 generates an execution thread 215 in the function execution environment 214, calls the corresponding function 216, and executes the function 216 (step S506). The process then returns to step S502. If the execution request queue 213 is empty and the function execution section 217 cannot extract an execution request, the process returns to step S502.
  • step S506 the function execution unit 217 successively executes a plurality of functions that have a common trigger event and belong to the same group. That is, in the case where there are functions ⁇ and ⁇ that belong to the same group and are triggered by event A, when event A occurs, function execution unit 217 executes functions ⁇ and ⁇ successively.
  • the function registration unit 111 can classify multiple early completion functions that have a common trigger event and are set to the same priority into the same group.
  • the function execution unit 217 can sequentially execute multiple early completion functions classified into the same group in priority over other functions.
  • the number of threads can be reduced.
  • the overhead caused by thread switching can be reduced, and the amount of resources used, such as memory, can be reduced.
  • Embodiment 4 a plurality of functions to be classified into the same group are determined based on a function registration request from a user.
  • the function execution unit 200 may determine a plurality of functions that are classified into the same group.
  • an example will be described in which the function execution device 200 determines a plurality of functions to be classified into the same group.
  • differences from the first and third embodiments will be mainly described. It should be noted that matters not explained below are similar to those in the first or third embodiment.
  • the registration data 105d shown in FIG. 18 is used.
  • the registration data 105d includes a function, execution setting information, priority information, and grouping flag information.
  • the functions, execution setting information and priority information are the same as those shown in Fig. 3, so a description thereof will be omitted.
  • the grouping flag information is binary data that defines whether or not a function is allowed to be included in a group.
  • the function registration unit 111 sets the grouping flag information to True.
  • the function registration unit 111 sets the grouping flag information to False.
  • the function registration unit 111 sets True to the grouping flag information of a plurality of functions that share a common event and have the same priority. On the other hand, the function registration unit 111 sets False to the grouping flag information of a function that does not have other functions that share a common event and have the same priority.
  • the function registration unit 111 sets True to the grouping flag information of multiple early completion functions that have a common trigger event and the same priority. In this way, the function registration unit 111 allows the function execution device 200 to group multiple early completion functions that have a common trigger event and the same priority. In other words, the function registration unit 111 allows the function execution device 200 to execute such early completion functions consecutively. Note that grouping flag information set to True corresponds to consecutive execution permission information.
  • the event function correspondence table 205c is used.
  • FIG. 19 shows the operation sequence in the execution preparation phase.
  • the function registration unit 111 receives a function registration request from a user (step S400).
  • the function registration request indicates functions, events, and priorities among the elements to be included in the registration data 105d.
  • the function registration unit 111 When the function registration unit 111 receives the function registration request, it generates registration data 105d according to the function registration request and transmits the registration data 105d and the function execution environment 214 to the function execution device 200 (step S413). More specifically, if there are multiple functions that share a common event and have the same priority, the function registration unit 111 sets True to the grouping flag information of these multiple functions. On the other hand, the function registration unit 111 sets False to the grouping flag information of functions that do not have other functions that share a common event and have the same priority.
  • the receiving unit 212 receives the registration data 105d and the function execution environment 214, and the function management unit 211 stores the registration data 105c and the function execution environment 214 in the storage 204 (step S414). Furthermore, the function management unit 211 extracts functions that have a common event and the same priority from among the functions whose grouping flag information is True, and assigns the same group ID to the extracted functions (step S415).
  • the function management unit 211 generates an event function correspondence table 205c from the registration data 105d and the group ID assigned in step S415, and registers the event function correspondence table 205c in the storage 204 (step S416).
  • the function management unit 211 generates an event-function correspondence table 205c using the function, event information, and priority information of the registration data 105d, and the group ID assigned in step S415.
  • the function management unit 211 generates the event-function correspondence table 205c by using the functions, event information, and priority information in the registration data 105d.
  • a Null value is set in the group ID column.
  • step S411 and S412 The operation sequence after the execution preparation phase (steps S411 and S412) is the same as that shown in FIG.
  • the operation sequence of the event execution phase is the same as that shown in FIG.
  • the function registration unit 111 can allow the function execution device 200 to group multiple early completion functions that share a common event and are set to the same priority.
  • the function management unit 211 can classify multiple early completion functions that share a common event and are set to the same priority into the same group. Then, as in embodiment 3, when executing any one of the early completion functions, the function execution unit 217 can sequentially execute other early completion functions classified into the same group in priority to other functions.
  • function grouping is performed by the function execution device 200.
  • This embodiment also makes it possible to reduce overhead caused by thread switching, and also to reduce the amount of resources such as memory used.
  • first to fourth embodiments have been described above, two or more of these embodiments may be combined for implementation. Alternatively, one of these embodiments may be partially implemented. Alternatively, two or more of these embodiments may be partially combined and implemented. Furthermore, the configurations and procedures described in these embodiments may be modified as necessary.
  • At least one of information, data, signal values, and variable values indicating the results of processing by the function registration unit 111 is stored in at least one of the memory 102, the storage 104, a register in the CPU 101, and a cache memory.
  • the program that realizes the functions of the function registration unit 111 may be stored in a portable recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, a DVD, etc. Then, the portable recording medium in which the program that realizes the functions of the function registration unit 111 is stored may be distributed.
  • At least one of information, data, signal values, and variable values indicating the results of processing by the function management unit 211, the receiving unit 212, the function execution environment 214, and the function execution unit 217 is stored in at least one of the memory 202, the storage 204, the register within the CPU 201, and the cache memory.
  • the programs that realize the functions of the function management unit 211, the receiving unit 212, the function execution environment 214, and the function execution unit 217 may be stored in a portable recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, a DVD, etc. Then, the portable recording medium on which the programs that realize the functions of the function management unit 211, the receiving unit 212, the function execution environment 214, and the function execution unit 217 are stored may be distributed.
  • the "part" in at least any of the function registration unit 111, the function management unit 211, the receiving unit 212, and the function execution unit 217 may be read as a "circuit” or a "process” or a “procedure” or a “processing” or a “circuitry”.
  • the function registration request device 100 and the function execution device 200 may be realized by a processing circuit.
  • the processing circuit is, for example, a logic IC (Integrated Circuit), a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field-Programmable Gate Array).
  • the function registration unit 111, the function management unit 211, the receiving unit 212, and the function execution unit 217 are each realized as part of a processing circuit.
  • processing circuitry the higher-level concept of a processor and a processing circuit. That is, a processor and a processing circuit are each specific examples of "processing circuitry.”
  • 100 function registration request device 101 CPU, 102 memory, 103 communication device, 104 storage, 105 registration data, 105b registration data, 105c registration data, 105d registration data, 110 operating system, 111 function registration unit, 200 function execution device, 201 CPU, 202 memory, 203 communication device, 204 storage, 205 event function correspondence table, 205b event function correspondence table, 205c event function correspondence table, 210 operating system, 211 function management unit, 212 receiving unit, 213 execution request queue, 214 function execution environment, 215 execution thread, 216 function, 217 function execution unit, 300 network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A function registration unit (111) generates instruction information for instructing a function execution device (200), which executes functions, to, from among a plurality of functions to be executed by the function execution device (200), finish the execution of an early completion function earlier than other functions, the early completion function being a function for which the execution must be finished earlier than the other functions. In addition, the function registration unit (111) transmits the early completion function and the instruction information to the function execution device (200).

Description

関数送信装置、関数実行装置、関数送信方法、関数実行方法、関数送信プログラム及び関数実行プログラムFunction transmission device, function execution device, function transmission method, function execution method, function transmission program, and function execution program
 本開示は、関数の実行に関する。 This disclosure relates to the execution of functions.
 FaaS(Function as a Service)というクラウドコンピューティングサービスが普及してきている。FaaSでは、ユーザが定義したイベント駆動型の関数を関数実行装置へ登録することが可能である。また、FaaSでは、関数の登録時に関数に応じた実行環境を関数実行装置へ提供するため、ユーザは容易に関数を実行することができる。 A cloud computing service called FaaS (Function as a Service) is becoming popular. With FaaS, it is possible to register event-driven functions defined by the user to a function execution device. In addition, with FaaS, an execution environment according to the function is provided to the function execution device when the function is registered, so that the user can easily execute the function.
 本開示に関連する技術として、例えば、特許文献1に開示の技術がある。
 特許文献1には、関数実行装置から受信した引数を関数登録要求装置の関数に提供し、関数の実行結果を関数実行装置に提供することが記載されている。
As a technique related to the present disclosure, for example, there is a technique disclosed in Patent Document 1.
Japanese Patent Laid-Open No. 2003-233693 discloses that arguments received from a function execution device are provided to a function of a function registration request device, and the execution result of the function is provided to the function execution device.
特許第6997096号公報Patent No. 6997096
 従来の技術における関数の実行要求キューと実行スレッドの関係を図20に示す。
 従来の技術では、実行スレッドが、実行スレッドに1対1で対応する実行要求キューから実行要求を取出し、関数を呼び出す。従来の技術では、全ての実行スレッドが同じ優先度で動作する。
 このため、従来の技術には、図21に示す関数処理のタイミングチャートのとおり、他の関数の実行により、早期に実行を完了させる必要のある関数の実行が待たされる及び/又は当該関数の実行が中断するという課題がある。
FIG. 20 shows the relationship between the execution request queue and the execution thread of a function in the prior art.
In the conventional technique, an execution thread takes an execution request from an execution request queue that has a one-to-one correspondence with the execution thread, and calls a function. In the conventional technique, all execution threads operate with the same priority.
For this reason, the conventional technology has a problem that, as shown in the timing chart of function processing in FIG. 21, the execution of a function that needs to be completed quickly is made to wait and/or the execution of the function is interrupted due to the execution of another function.
 本開示は、このような課題を解決することを主な目的とする。より具体的には、本開示は、早期に実行を完了させる必要のある関数の実行を早期に完了させることを目的とする。 The primary objective of this disclosure is to solve these problems. More specifically, the objective of this disclosure is to quickly complete the execution of a function that needs to be completed quickly.
 本開示に係る関数送信装置は、
 関数を実行する関数実行装置に実行させる複数の関数の中で他の関数よりも早期に実行を完了させる必要のある関数である早期完了関数の実行を他の関数よりも早期に完了するよう前記関数実行装置に指示する指示情報を生成する情報生成部と、
 前記早期完了関数と前記指示情報とを前記関数実行装置に送信する送信部とを有する。
The function transmission device according to the present disclosure comprises:
an information generating unit that generates instruction information for instructing a function execution device to complete the execution of an early completion function, which is a function that needs to be completed earlier than other functions among a plurality of functions to be executed by the function execution device, earlier than the other functions;
A transmitting unit transmits the early completing function and the instruction information to the function execution unit.
 本開示によれば、早期に実行を完了させる必要のある関数の実行を早期に完了させることができる。 According to the present disclosure, it is possible to complete the execution of a function that needs to be completed quickly.
実施の形態1に係る関数登録要求装置と関数実行装置のハードウェア構成例を示す図。2 is a diagram showing an example of the hardware configuration of a function registration request device and a function execution device according to the first embodiment; 実施の形態1に係る関数登録要求装置と関数実行装置の機能構成例を示す図。2 is a diagram showing an example of the functional configuration of a function registration request device and a function execution device according to the first embodiment; 実施の形態1に係る登録データの例を示す図。FIG. 4 is a diagram showing an example of registration data according to the first embodiment; 実施の形態1にイベント関数対応テーブルの例を示す図。FIG. 4 is a diagram showing an example of an event function correspondence table in the first embodiment. 実施の形態1に係る実行準備フェーズでの動作シーケンスの例を示す図。FIG. 11 is a diagram showing an example of an operation sequence in an execution preparation phase according to the first embodiment. 実施の形態1に係るイベント実行フェーズでの動作シーケンスの例を示す図。FIG. 11 is a diagram showing an example of an operation sequence in an event execution phase according to the first embodiment. 実施の形態1に係る関数処理のタイミングチャート。5 is a timing chart of function processing according to the first embodiment. 実施の形態2に係る登録データの例を示す図。FIG. 11 is a diagram showing an example of registration data according to the second embodiment. 実施の形態2にイベント関数対応テーブルの例を示す図。FIG. 13 is a diagram showing an example of an event function correspondence table in the second embodiment. 実施の形態2に係る実行準備フェーズでの動作シーケンスの例を示す図。FIG. 11 is a diagram showing an example of an operation sequence in an execution preparation phase according to the second embodiment. 実施の形態2に係るイベント実行フェーズでの動作シーケンスの例を示す図。FIG. 11 is a diagram showing an example of an operation sequence in an event execution phase according to the second embodiment. 実施の形態1に係る関数処理のタイミングチャート。5 is a timing chart of function processing according to the first embodiment. 実施の形態3に係る関数登録要求装置と関数実行装置の機能構成例を示す図。FIG. 13 is a diagram showing an example of the functional configuration of a function registration request device and a function execution device according to a third embodiment. 実施の形態3に係る登録データの例を示す図。FIG. 13 is a diagram showing an example of registration data according to the third embodiment. 実施の形態3にイベント関数対応テーブルの例を示す図。FIG. 13 is a diagram showing an example of an event function correspondence table in the third embodiment. 実施の形態3に係る実行準備フェーズでの動作シーケンスの例を示す図。FIG. 13 is a diagram showing an example of an operation sequence in an execution preparation phase according to the third embodiment. 実施の形態3に係るイベント実行フェーズでの動作シーケンスの例を示す図。FIG. 13 is a diagram showing an example of an operation sequence in an event execution phase according to the third embodiment. 実施の形態4に係る登録データの例を示す図。FIG. 13 is a diagram showing an example of registration data according to the fourth embodiment. 実施の形態4に係る実行準備フェーズでの動作シーケンスの例を示す図。FIG. 13 is a diagram showing an example of an operation sequence in an execution preparation phase according to the fourth embodiment. 従来の実行要求キューと実行スレッドの関係を示す図。FIG. 1 is a diagram showing the relationship between a conventional execution request queue and execution threads. 従来の関数処理のタイミングチャート。11 is a timing chart of conventional function processing.
 以下、実施の形態を図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。 The following describes the embodiments with reference to the drawings. In the following description of the embodiments and the drawings, the same reference numerals indicate the same or corresponding parts.
 実施の形態1.
***構成の説明***
 図1は、本実施の形態に係る関数登録要求装置100と関数実行装置200のハードウェア構成例を示す。
 関数登録要求装置100と関数実行装置200はネットワーク300によって接続されている。
 関数実行装置200は、関数を実行する。関数実行装置200は複数存在してもよい。
 関数登録要求装置100は、関数実行装置200に実行させる関数を、ネットワーク300を介して関数実行装置200に送信する。
Embodiment 1.
***Configuration Description***
FIG. 1 shows an example of the hardware configuration of a function registration request device 100 and a function execution device 200 according to the present embodiment.
The function registration request device 100 and the function execution device 200 are connected via a network 300 .
The function execution device 200 executes a function. A plurality of function execution devices 200 may exist.
The function registration request device 100 transmits a function to be executed by the function execution device 200 to the function execution device 200 via the network 300 .
 関数登録要求装置100は、関数送信装置に相当する。また、関数登録要求装置100の動作手順は、関数送信方法に相当する。また、関数登録要求装置100の動作を実現するプログラムは、関数送信プログラムに相当する。
 また、関数実行装置200の動作手順は、関数実行方法に相当する。また、関数実行装置200の動作を実現するプログラムは、関数実行プログラムに相当する。
The function registration requesting device 100 corresponds to a function transmission device. The operation procedure of the function registration requesting device 100 corresponds to a function transmission method. The program for realizing the operation of the function registration requesting device 100 corresponds to a function transmission program.
The operation procedure of the function execution device 200 corresponds to a function execution method, and the program that realizes the operation of the function execution device 200 corresponds to a function execution program.
 関数登録要求装置100は、コンピュータである。
 関数登録要求装置100はCPU(Central Processing Unit)101、メモリ102、通信装置103、ストレージ104を備える。関数登録要求装置100は、CPU101を複数備えていてもよい。
 関数登録要求装置100の通信装置103は、ネットワーク300を介して、関数実行装置200の通信装置203に関数を送信する。
The function registration request device 100 is a computer.
The function registration request device 100 includes a CPU (Central Processing Unit) 101, a memory 102, a communication device 103, and a storage device 104. The function registration request device 100 may include a plurality of CPUs 101.
The communication device 103 of the function registration requesting device 100 transmits a function to the communication device 203 of the function execution device 200 via the network 300 .
 関数実行装置200も、コンピュータである。
 関数実行装置200も、CPU201、メモリ202、通信装置203、ストレージ204を備える。関数実行装置200は、CPU201を複数備えていてもよい。
 関数実行装置200の通信装置203は、ネットワーク300を介して、関数登録要求装置100の通信装置103から関数を受信する。
The function execution device 200 is also a computer.
The function execution device 200 also includes a CPU 201, a memory 202, a communication device 203, and a storage 204. The function execution device 200 may include a plurality of CPUs 201.
The communication device 203 of the function execution device 200 receives a function from the communication device 103 of the function registration request device 100 via the network 300 .
 図2は、本実施の形態に係る関数登録要求装置100と関数実行装置200の機能構成例を示す。 FIG. 2 shows an example of the functional configuration of a function registration request device 100 and a function execution device 200 according to this embodiment.
 関数登録要求装置100では、オペレーティングシステム110が動作している。
 オペレーティングシステム110上で、関数登録部111が動作している。関数登録部111は、例えばプログラムにより実現される。より具体的には、CPU101が関数登録部111の機能を実現するプログラムを実行することで、後述する関数登録部111の動作が行われる。
An operating system 110 runs on the function registration request device 100 .
A function registration unit 111 operates on the operating system 110. The function registration unit 111 is realized, for example, by a program. More specifically, the CPU 101 executes a program that realizes the function of the function registration unit 111, thereby performing the operation of the function registration unit 111, which will be described later.
 関数登録部111は、ユーザから関数登録要求を取得する。関数登録部111は、関数登録要求を取得すると、指示情報を生成する。指示情報は、複数の関数の中で他の関数よりも早期に実行を完了させる必要のある関数(以下、早期完了関数という)の実行を他の関数よりも早期に完了するよう指示する情報である。
 そして、関数登録部111は、早期完了関数を含む複数の関数と指示情報とが含まれる登録データ105を関数実行装置200に送信する。
 関数登録部111は、情報生成部及び送信部に相当する。また、関数登録部111により行われる処理は情報生成処理及び送信処理に相当する。
The function registration unit 111 acquires a function registration request from a user. When the function registration unit 111 acquires the function registration request, it generates instruction information. The instruction information is information for instructing that a function that needs to be completed earlier than other functions among a plurality of functions (hereinafter, referred to as an early completion function) is to be completed earlier than the other functions.
Then, the function registration unit 111 transmits the registration data 105 including a plurality of functions including the early completion function and instruction information to the function execution device 200 .
The function registration unit 111 corresponds to an information generation unit and a transmission unit, and the process performed by the function registration unit 111 corresponds to an information generation process and a transmission process.
 登録データ105は、関数登録要求装置100から関数実行装置200に登録するデータである。
登録データ105はストレージ104に格納される。
 登録データ105は、関数実行装置200に送信する関数ごとに存在するものとする。本実施の形態では、関数登録要求装置100から関数実行装置200に複数の関数を送信することを想定するため、登録データ105は複数存在するものとする。
The registration data 105 is data to be registered in the function execution device 200 by the function registration request device 100 .
The registration data 105 is stored in the storage 104 .
It is assumed that the registration data 105 exists for each function to be transmitted to the function execution device 200. In this embodiment, since it is assumed that a plurality of functions are transmitted from the function registration request device 100 to the function execution device 200, it is assumed that a plurality of registration data 105 exists.
 図3は、登録データ105の例を示す。
 登録データ105には、関数、実行設定情報及び優先度情報が含まれる。
 関数は、関数実行装置200に実行させる関数である。
 実行設定情報は、関数の実行に関する設定情報である。実行設定情報には、イベント情報が含まれる。イベント情報は、関数実行のトリガとなるイベントを定義する。
 優先度情報は、本実施の形態における指示情報である。つまり、本実施の形態では、優先度情報が指示情報として用いられる。優先度情報では、関数実行時の優先順位が定義される。早期完了関数の登録データ105では、優先度情報において、他の関数よりも高い優先度が早期完了関数に対して示される。
FIG. 3 shows an example of the registration data 105 .
The registration data 105 includes functions, execution setting information, and priority information.
The function is a function to be executed by the function execution unit 200 .
The execution setting information is setting information related to the execution of a function. The execution setting information includes event information. The event information defines an event that will be a trigger for the execution of the function.
The priority information is instruction information in this embodiment. That is, in this embodiment, the priority information is used as instruction information. The priority information defines the order of priority when the functions are executed. In the registration data 105 of the early completion function, the priority information indicates a higher priority for the early completion function than other functions.
 関数実行装置200では、オペレーティングシステム210が動作している。
 また、オペレーティングシステム210上で関数管理部211、受信部212、関数実行環境関数実行環境214及び関数実行部217が動作している。関数管理部211、受信部212、関数実行環境関数実行環境214及び関数実行部217は、例えばプログラムにより実現される。より具体的には、CPU201が関数管理部211、受信部212、関数実行環境214及び関数実行部217の機能を実現するプログラムを実行することで、後述する関数管理部211、受信部212、関数実行環境214及び関数実行部217の動作が行われる。
An operating system 210 runs on the function execution device 200 .
Furthermore, a function management unit 211, a receiving unit 212, a function execution environment 214, and a function execution unit 217 operate on the operating system 210. The function management unit 211, the receiving unit 212, the function execution environment 214, and the function execution unit 217 are realized, for example, by a program. More specifically, the CPU 201 executes a program that realizes the functions of the function management unit 211, the receiving unit 212, the function execution environment 214, and the function execution unit 217, thereby causing the function management unit 211, the receiving unit 212, the function execution environment 214, and the function execution unit 217 to operate as described below.
 関数管理部211は、受信部212が受信した登録データ105をストレージ204に格納し、関数実行のための準備を行う。 The function management unit 211 stores the registration data 105 received by the receiving unit 212 in the storage 204 and prepares for function execution.
 受信部212は、関数登録要求装置100から登録データ105を受信する。そして、受信部212は、受信した登録データ105を関数管理部211に出力する。
 また、受信部212は、各関数に対応する実行要求キュー213を備える。本実施の形態では、受信部212は、実行要求キュー213を複数備えるものとする。実行要求キュー213は関数216ごとに存在する。
 また、受信部212は、イベント発生時に、発生したイベントを通知するイベント通知を受信する。イベント通知で通知されるイベントは関数実行のトリガとなるイベントである。イベント通知を受信すると、受信部212は、関数実行部217に実行させる関数216に対応する実行要求キュー213に実行要求を投入する。
 受信部212により行われる処理は受信処理に相当する。
The receiving unit 212 receives the registration data 105 from the function registration requesting device 100. Then, the receiving unit 212 outputs the received registration data 105 to the function managing unit 211.
The receiving unit 212 also includes an execution request queue 213 corresponding to each function. In this embodiment, the receiving unit 212 includes a plurality of execution request queues 213. An execution request queue 213 exists for each function 216.
Furthermore, the receiver 212 receives an event notification notifying the occurrence of an event when the event occurs. The event notified in the event notification is an event that triggers the execution of a function. Upon receiving the event notification, the receiver 212 submits an execution request to an execution request queue 213 corresponding to the function 216 to be executed by a function execution unit 217.
The process performed by the receiving unit 212 corresponds to a receiving process.
 関数実行部217は、受信部212により実行要求キュー213に実行要求が投入されると、関数実行環境214に実行スレッド215を生成する。更に、関数実行部217は、対応する関数216を呼び出し、関数216を実行する。関数216は、登録データ105の一部として関数登録要求装置100から送信された関数である。関数実行部217は、登録データ105に含まれる関数を関数216として呼び出す。
 関数実行部217は、関数216が早期完了関数である場合は、優先度情報に従い、他の関数よりも早期に実行が完了するように関数216(早期完了関数)を優先して実行する。
 関数実行部217により行われる処理は関数実行処理に相当する。
 なお、図2では、関数実行部217はオペレーティングシステム210から独立しているが、関数実行部217はオペレーティングシステム210の一部であってもよい。
When an execution request is submitted to the execution request queue 213 by the receiving unit 212, the function executing unit 217 generates an execution thread 215 in the function execution environment 214. Furthermore, the function executing unit 217 calls a corresponding function 216 and executes the function 216. The function 216 is a function transmitted from the function registration requesting device 100 as a part of the registration data 105. The function executing unit 217 calls the function included in the registration data 105 as the function 216.
If the function 216 is an early completion function, the function execution unit 217 executes the function 216 (early completion function) with priority in accordance with the priority information so that the function 216 is completed earlier than other functions.
The process performed by the function execution unit 217 corresponds to a function execution process.
Although the function execution unit 217 is independent of the operating system 210 in FIG. 2, the function execution unit 217 may be a part of the operating system 210 .
 関数実行環境214は、複数存在するものとする。本実施の形態では、関数実行環境214は関数216ごとに存在する。 It is assumed that there are multiple function execution environments 214. In this embodiment, a function execution environment 214 exists for each function 216.
 ストレージ204では、関数登録要求装置100から送信された登録データ105と、イベント関数対応テーブル205が格納される。 The storage 204 stores the registration data 105 sent from the function registration request device 100 and the event function correspondence table 205.
 図4は、イベント関数対応テーブル205の例を示す。
 イベント関数対応テーブル205において、イベントの欄には、関数名の欄に記載される関数の実行のトリガとなるイベントが示される。イベント欄に示されるイベントは、登録データ105のイベント情報に示されるイベントである。
 関数名の欄には、イベント欄に示されるイベントが発生した場合に実行される関数が示される。関数の欄に示される関数は登録データ105に含まれる関数である。
 優先度の欄には、関数名の欄に記載される関数の優先度が示される。優先度の欄に示される優先度は、登録データ105の優先度情報に示される優先度である。関数名の欄に示される関数が早期完了関数であれば、優先度の欄には、他の関数よりも高い優先度が示される。
FIG. 4 shows an example of the event function correspondence table 205 .
In the event-function correspondence table 205, the event column indicates an event that triggers the execution of the function described in the function name column. The event indicated in the event column is the event indicated in the event information of the registration data 105.
The function name column indicates a function to be executed when the event indicated in the event column occurs. The function indicated in the function column is a function included in the registration data 105.
The priority column indicates the priority of the function written in the function name column. The priority indicated in the priority column is the priority indicated in the priority information of the registration data 105. If the function indicated in the function name column is an early completion function, the priority column indicates a higher priority than other functions.
***動作の説明***
 次に、本実施の形態に係る関数登録要求装置100と関数実行装置200の動作例を説明する。
 以下では、関数登録要求装置100と関数実行装置200の動作シーケンスを、実行準備フェーズとイベント実行フェーズに分けて説明する。
 実行準備フェーズは、関数実行装置200をイベント受信待ちの状態にするためのフェーズである。イベント実行フェーズは、イベント発生時に関数実行装置200が関数を実行するフェーズである。
*** Operation Description ***
Next, an example of the operation of the function registration request device 100 and the function execution device 200 according to this embodiment will be described.
In the following, the operation sequences of the function registration request device 100 and the function execution device 200 will be explained, being divided into an execution preparation phase and an event execution phase.
The execution preparation phase is a phase for putting the function execution device 200 into a state of waiting to receive an event. The event execution phase is a phase in which the function execution device 200 executes a function when an event occurs.
 図5は、実行準備フェーズにおける動作シーケンスを示す。 Figure 5 shows the operation sequence during the execution preparation phase.
 関数登録部111がユーザから関数登録要求を取得する(ステップS400)。関数登録要求には、登録データ105に含ませる要素(関数、イベント、優先度)が示される。
 関数登録部111は、関数登録要求を取得すると、関数登録要求に従って登録データ105を生成し、登録データ105と関数に応じた関数実行環境214を関数実行装置200に送信する(ステップS401)。
The function registration unit 111 receives a function registration request from a user (step S400). The function registration request indicates elements (functions, events, and priorities) to be included in the registration data 105.
When the function registration unit 111 receives a function registration request, it generates registration data 105 according to the function registration request, and transmits the registration data 105 and the function execution environment 214 corresponding to the function to the function execution device 200 (step S401).
 関数実行装置200では、受信部212が登録データ105及び関数実行環境214を受信し、関数管理部211が登録データ105及び関数実行環境214をストレージ204に格納する(ステップS402)。なお、図2では、関数実行環境214が起動されている状態を示している。このため、関数実行環境214をストレージ204内に記載していない。
 更に、関数管理部211は、登録データ105からイベント関数対応テーブル205を生成し、イベント関数対応テーブル205をストレージ204に登録する(ステップS403)。
 また、関数管理部211は、関数実行環境214を起動し(ステップS404)、イベント関数対応テーブル205に基づいて実行スレッド215に優先度を設定する(ステップS405)。
In the function execution device 200, the receiving unit 212 receives the registration data 105 and the function execution environment 214, and the function management unit 211 stores the registration data 105 and the function execution environment 214 in the storage 204 (step S402). Note that Fig. 2 shows a state in which the function execution environment 214 is activated. For this reason, the function execution environment 214 is not described in the storage 204.
Furthermore, the function management unit 211 generates the event function correspondence table 205 from the registration data 105, and registers the event function correspondence table 205 in the storage 204 (step S403).
Furthermore, the function management unit 211 starts the function execution environment 214 (step S404), and sets a priority for the execution thread 215 based on the event-function correspondence table 205 (step S405).
 図6は、イベント実行フェーズにおける動作シーケンスを示す。
 イベント実行フェーズ開始時には、実行準備フェーズが完了している。
FIG. 6 shows the sequence of operations in the event execution phase.
When the event execution phase begins, the execution preparation phase is complete.
 イベントが発生すると、受信部212がイベント通知を受信する(ステップS500)。
 受信部212は、イベント関数対応テーブル205の「イベント」欄をイベント通知で通知されたイベントで検索し、通知されたイベントに対応する関数を特定し、特定した関数の実行要求キュー213に実行要求を投入する(ステップS501)。
 関数実行部217は、実行要求キュー213から実行要求を取り出す処理を行う(ステップS502)。そして、関数実行部217は、実行要求キュー213から実行要求を取り出したか否かを判定する(ステップS503)。
 実行要求キュー213から実行要求を取り出した場合に、関数実行部217は、関数実行環境214に実行スレッド215を生成し、対応する関数216を呼び出し、関数216を実行する(ステップS504)。その後、処理はステップS502に戻る。
 実行要求キュー213が空で関数実行部217が実行要求を取り出せなかったときは、処理がステップS502に戻る。
When an event occurs, the receiving unit 212 receives an event notification (step S500).
The receiving unit 212 searches the “Event” column of the event function correspondence table 205 for the event notified in the event notification, identifies a function corresponding to the notified event, and submits an execution request to the execution request queue 213 of the identified function (step S501).
The function execution section 217 performs a process of retrieving an execution request from the execution request queue 213 (step S502).Then, the function execution section 217 determines whether or not the execution request has been retrieved from the execution request queue 213 (step S503).
When an execution request is taken out of the execution request queue 213, the function execution section 217 generates an execution thread 215 in the function execution environment 214, calls the corresponding function 216, and executes the function 216 (step S504). After that, the process returns to step S502.
If the execution request queue 213 is empty and the function execution section 217 cannot extract an execution request, the process returns to step S502.
 関数実行部217は、ステップS504において、複数の実行スレッド215のうち、優先度の高い実行スレッド215から優先して処理する。
 つまり、関数実行部217は、優先度情報に従い、優先度の高い関数、すなわち早期完了関数を優先して実行する。この結果、早期完了関数の実行が他の関数の実行よりも早期に完了する。
In step S504, the function execution unit 217 processes the execution threads 215 with higher priority among the multiple execution threads 215.
That is, the function execution unit 217 executes functions with higher priority, i.e., early completion functions, with priority according to the priority information. As a result, the execution of the early completion functions is completed earlier than the execution of other functions.
 図7は、本実施の形態における関数処理のタイミングチャートを示す。
 関数実行部217は、各関数の実行スレッドに設定された優先度に基づいてタスクスケジューリングを行う。
 図7では、早期完了関数の実行スレッドである実行スレッド3は、他の関数の実行スレッドである実行スレッド1及び実行スレッド2に先行して実行される。このため、早期完了関数の実行が早期に完了する。つまり、他の関数の実行の完了を待つことなく早期完了関数の実行を開始することができる。また、早期完了関数の実行中に、他の関数を原因とした中断が生じない。
FIG. 7 shows a timing chart of the function processing in this embodiment.
The function execution unit 217 performs task scheduling based on the priority set for the execution thread of each function.
7, execution thread 3, which is an execution thread of the early completion function, is executed prior to execution threads 1 and 2, which are execution threads of other functions. Therefore, the execution of the early completion function is completed early. In other words, the execution of the early completion function can be started without waiting for the completion of the execution of the other functions. In addition, during the execution of the early completion function, an interruption due to the other functions does not occur.
***実施の形態の効果の説明***
 このように、本実施の形態によれば、早期に実行を完了させる必要のある関数の実行を早期に完了させることができる。
***Description of Effects of the Embodiment***
In this way, according to this embodiment, it is possible to quickly complete the execution of a function that needs to be quickly completed.
実施の形態2.
 実施の形態1では、指示情報として優先度情報を用いる例を説明した。すなわち、実施の形態1では、各関数の実行スレッドに優先度を設定することで、早期完了関数の実行を早期に完了させている。
 一方で、指示情報として優先度情報以外の情報を用いても同様の効果を得ることができる。本実施の形態では、指示情報として優先度情報の代わりにCPUコア割当て情報を用いる例を説明する。
 本実施の形態では、主に実施の形態1との差異を説明する。
 なお、以下で説明していない事項は、実施の形態1と同様である。
Embodiment 2.
In the first embodiment, an example in which priority information is used as instruction information has been described. That is, in the first embodiment, a priority is set for an execution thread of each function, so that the execution of an early completing function is completed early.
On the other hand, the same effect can be obtained by using information other than priority information as the instruction information. In this embodiment, an example will be described in which CPU core allocation information is used as the instruction information instead of priority information.
In this embodiment, differences from the first embodiment will be mainly described.
It should be noted that matters not explained below are the same as those in the first embodiment.
***構成の説明***
 本実施の形態においても、ハードウェア構成例(図1)及び機能構成例(図2)は、実施の形態1と同じである。ただし、本実施の形態では、関数実行装置200のCPU201には複数CPUコアが存在するものとする。
***Configuration Description***
In this embodiment, the hardware configuration example (FIG. 1) and the functional configuration example (FIG. 2) are the same as those in embodiment 1. However, in this embodiment, it is assumed that the CPU 201 of the function execution device 200 has multiple CPU cores.
 本実施の形態では、図8に示す登録データ105bが用いられる。
 登録データ105bは、関数、実行設定情報及びCPUコア割当て情報を含む。関数及び実行設定情報は図3に示したものと同じである。このため、説明を省略する。
 CPUコア割当て情報は、関数の実行が割り当てられるCPUコアの番号を定義する。関数登録部111は、CPUコア割当て情報において、関数実行装置200の複数のCPUコアのうち特定のCPUコアを早期完了関数に割り当てるよう指示することができる。
In this embodiment, the registration data 105b shown in FIG. 8 is used.
The registration data 105b includes functions, execution setting information, and CPU core allocation information. The functions and execution setting information are the same as those shown in Fig. 3, so a description thereof will be omitted.
The CPU core allocation information defines the number of a CPU core to which the execution of a function is assigned. The function registration unit 111 can instruct, in the CPU core allocation information, to assign a specific CPU core out of the multiple CPU cores of the function execution device 200 to the early completion function.
 また、本実施の形態では、図9に示すイベント関数対応テーブル205bが用いられる。
 イベント関数対応テーブル205bには、イベント、関数名及び割当てCPUコアの欄がある。イベント及び関数名の欄は、図4に示したものと同じである。このため、説明を省略する。
 割当てCPUコアの欄には、関数の欄に示される関数の実行に割り当てられるCPUコアの番号が示される。割当てCPUコアの欄に示されるCPUコアの番号は、登録データ105bのCPUコア割当て情報に示されるCPUコアの番号である。
In this embodiment, the event function correspondence table 205b shown in FIG. 9 is used.
The event-function correspondence table 205b has columns for event, function name, and assigned CPU core. The event and function name columns are the same as those shown in Fig. 4, and therefore a description thereof will be omitted.
The assigned CPU core column indicates the number of a CPU core assigned to execute the function indicated in the function column. The assigned CPU core number indicated in the assigned CPU core column is the number of a CPU core indicated in the CPU core allocation information of the registration data 105b.
***動作の説明***
 次に、本実施の形態に係る関数登録要求装置100と関数実行装置200の動作例を説明する。
 本実施の形態でも、関数登録要求装置100と関数実行装置200の動作シーケンスを、実行準備フェーズとイベント実行フェーズに分けて説明する。
*** Operation Description ***
Next, an example of the operation of the function registration request device 100 and the function execution device 200 according to this embodiment will be described.
In this embodiment as well, the operation sequences of the function registration request device 100 and the function execution device 200 will be explained by dividing them into an execution preparation phase and an event execution phase.
 図10は、実行準備フェーズにおける動作シーケンスを示す。 Figure 10 shows the operation sequence in the execution preparation phase.
 関数登録部111がユーザから関数登録要求を取得する(ステップS400)。関数登録要求には、登録データ105bに含ませる要素(関数、イベント、CPUコア)が示される。
 関数登録部111は、関数登録要求を取得すると、関数登録要求に従って登録データ105bを生成し、登録データ105bと関数に応じた関数実行環境214を関数実行装置200に送信する(ステップS401)。
The function registration unit 111 receives a function registration request from a user (step S400). The function registration request indicates elements (functions, events, and CPU cores) to be included in the registration data 105b.
When the function registration unit 111 receives a function registration request, it generates registration data 105b according to the function registration request, and transmits the registration data 105b and the function execution environment 214 corresponding to the function to the function execution device 200 (step S401).
 関数実行装置200では、受信部212が登録データ105b及び関数実行環境214を受信し、関数管理部211が登録データ105b及び関数実行環境214をストレージ204に格納する(ステップS402)。
 更に、関数管理部211は、登録データ105bからイベント関数対応テーブル205bを生成し、イベント関数対応テーブル205bをストレージ204に登録する(ステップS406)。
 また、関数管理部211は、関数実行環境214を起動し(ステップS404)、イベント関数対応テーブル205bに基づいて実行スレッド215に割当てCPUコアを設定する(ステップS407)。
In the function execution device 200, the receiving unit 212 receives the registration data 105b and the function execution environment 214, and the function management unit 211 stores the registration data 105b and the function execution environment 214 in the storage 204 (step S402).
Furthermore, the function management unit 211 generates an event function correspondence table 205b from the registration data 105b, and registers the event function correspondence table 205b in the storage 204 (step S406).
Furthermore, the function management unit 211 starts the function execution environment 214 (step S404), and sets a CPU core to be assigned to the execution thread 215 based on the event-function correspondence table 205b (step S407).
 図11は、イベント実行フェーズにおける動作シーケンスを示す。
 イベント実行フェーズ開始時には、実行準備フェーズが完了している。
FIG. 11 shows the operation sequence in the event execution phase.
When the event execution phase begins, the execution preparation phase is complete.
 イベントが発生すると、受信部212がイベント通知を受信する(ステップS500)。
 受信部212は、イベント関数対応テーブル205bの「イベント」欄をイベント通知で通知されたイベントで検索し、通知されたイベントに対応する関数を特定し、特定した関数の実行要求キュー213に実行要求を投入する(ステップS501)。
 関数実行部217は、実行要求キュー213から実行要求を取り出す処理を行う(ステップS502)。そして、関数実行部217は、実行要求キュー213から実行要求を取り出したか否かを判定する(ステップS503)。
 実行要求キュー213から実行要求を取り出した場合に、関数実行部217は、関数実行環境214に実行スレッド215を生成し、対応する関数216を呼び出し、関数216を実行する(ステップS504)。その後、処理はステップS502に戻る。
 実行要求キュー213が空で関数実行部217が実行要求を取り出せなかったときは、処理がステップS502に戻る。
When an event occurs, the receiving unit 212 receives an event notification (step S500).
The receiving unit 212 searches the “Event” column of the event function correspondence table 205b for the event notified in the event notification, identifies a function corresponding to the notified event, and submits an execution request to the execution request queue 213 of the identified function (step S501).
The function execution section 217 performs a process of retrieving an execution request from the execution request queue 213 (step S502).Then, the function execution section 217 determines whether or not the execution request has been retrieved from the execution request queue 213 (step S503).
When an execution request is taken out of the execution request queue 213, the function execution section 217 generates an execution thread 215 in the function execution environment 214, calls the corresponding function 216, and executes the function 216 (step S504). After that, the process returns to step S502.
If the execution request queue 213 is empty and the function execution section 217 cannot extract an execution request, the process returns to step S502.
 関数実行部217は、ステップS504において、各実行スレッド215を、各実行スレッド215に割り当てられたCPUコアで処理する。
 つまり、関数実行部217は、CPUコア割当て情報に従い、早期完了関数に特定のCPUコアを割り当て、早期完了関数を当該CPUコアで優先的に実行する。この結果、早期完了関数の実行が他の関数の実行よりも早期に完了する。
In step S<b>504 , the function execution unit 217 processes each execution thread 215 using a CPU core assigned to that execution thread 215 .
In other words, the function execution unit 217 assigns a specific CPU core to the early completion function in accordance with the CPU core allocation information, and executes the early completion function preferentially on the assigned CPU core. As a result, the execution of the early completion function is completed earlier than the execution of other functions.
 図12は、本実施の形態における関数処理のタイミングチャートを示す。
 図12に示すとおり、各関数の実行スレッドに設定された割当てCPUコアに基づいて関数実行部217がタスクスケジューリングを行う。
 図12では、早期完了関数の実行スレッドである実行スレッド3はCPUコア2で実行される。一方で、他の関数の実行スレッドである実行スレッド1及び実行スレッド2はCPUコア1で実行される。
 このように、本実施の形態では、早期完了関数を他の関数とは別のCPUコアで実行するため、早期完了関数の実行が早期に完了する。つまり、他の関数の実行の完了を待つことなく早期完了関数の実行を開始することができる。また、早期完了関数の実行中に、他の関数を原因とした中断が生じない。
FIG. 12 shows a timing chart of the function processing in this embodiment.
As shown in FIG. 12, the function execution unit 217 performs task scheduling based on the assigned CPU cores set for the execution threads of each function.
12, execution thread 3, which is an execution thread of the early completion function, is executed by CPU core 2. On the other hand, execution thread 1 and execution thread 2, which are execution threads of other functions, are executed by CPU core 1.
In this manner, in this embodiment, the early completion function is executed by a CPU core separate from other functions, so that the execution of the early completion function is completed early. In other words, the execution of the early completion function can be started without waiting for the execution of other functions to be completed. In addition, during the execution of the early completion function, an interruption due to other functions does not occur.
***実施の形態の効果の説明***
 このように、本実施の形態によっても、早期に実行を完了させる必要のある関数の実行を早期に完了させることができる。
***Description of Effects of the Embodiment***
In this manner, according to this embodiment as well, it is possible to quickly complete the execution of a function that needs to be quickly completed.
実施の形態3.
 実施の形態1では、指示情報として優先度情報を用いる例を説明した。すなわち、実施の形態1では、各関数の実行スレッドに優先度を設定することで、早期完了関数の実行を早期に完了させている。
 多数の関数を関数実行装置200へ登録する場合は、多数のスレッドが生成される。この結果、スレッドの切り替えによるオーバーヘッドが増大する可能性がある。また、メモリ等のリソースが不足する可能性がある。
 本実施の形態では、関数をグループ化することで、スレッド数を減少させる例を説明する。
 より具体的には、関数登録要求装置100が、同じ優先度の複数の関数をグループ化する。そして、関数登録要求装置100が、本実施の形態における指示情報であるグループID(Identifier)情報においてグループ化した複数の関数を関数実行装置200に通知し、同じグループの複数の関数を連続して実行するよう関数実行装置200に指示する例を説明する。
 本実施の形態では、主に実施の形態1との差異を説明する。
 なお、以下で説明していない事項は、実施の形態1と同様である。
Embodiment 3.
In the first embodiment, an example in which priority information is used as instruction information has been described. That is, in the first embodiment, a priority is set for an execution thread of each function, so that the execution of an early completing function is completed early.
When a large number of functions are registered in the function execution device 200, a large number of threads are generated. As a result, overhead due to thread switching may increase. Also, resources such as memory may become insufficient.
In this embodiment, an example will be described in which the number of threads is reduced by grouping functions.
More specifically, the function registration requesting device 100 groups a plurality of functions of the same priority. Then, an example will be described in which the function registration requesting device 100 notifies the function execution device 200 of the plurality of functions grouped in group ID (Identifier) information, which is instruction information in this embodiment, and instructs the function execution device 200 to execute the plurality of functions of the same group consecutively.
In this embodiment, differences from the first embodiment will be mainly described.
It should be noted that matters not explained below are the same as those in the first embodiment.
***構成の説明***
 本実施の形態においても、ハードウェア構成例(図1)は、実施の形態1と同じである。
 図13は、本実施の形態に係る関数登録要求装置100及び関数実行装置200の機能構成例を示す。
 図2と比較して、図13では、ストレージ104に登録データ105cが格納されている。また、複数の関数216が関数実行環境214及び実行スレッド215を共有している。関数実行環境214及び実行スレッド215を共有する複数の関数216は同一のグループに所属している。換言すると、本実施の形態では、関数実行環境214及び実行スレッド215はグループごとに存在する。
 また、本実施の形態では、実行要求キュー213は関数216のグループごとに設けられているものとする。
***Configuration Description***
In this embodiment, the hardware configuration example (FIG. 1) is the same as that in the first embodiment.
FIG. 13 shows an example of the functional configuration of the function registration request device 100 and the function execution device 200 according to this embodiment.
13, compared to Fig. 2, registration data 105c is stored in the storage 104. Furthermore, a plurality of functions 216 share a function execution environment 214 and an execution thread 215. A plurality of functions 216 that share a function execution environment 214 and an execution thread 215 belong to the same group. In other words, in this embodiment, a function execution environment 214 and an execution thread 215 exist for each group.
In this embodiment, it is assumed that an execution request queue 213 is provided for each group of functions 216 .
 図14は、登録データ105cの例を示す。
 登録データ105cは、関数、実行設定情報、優先度情報及びグループID情報を含む。関数、実行設定情報及び優先度情報は図3に示したものと同じである。このため、説明を省略する。
 グループID情報には、関数が所属するグループのグループIDが示される。なお、1つのグループには、トリガとなるイベントが共通し、同じ優先度が設定されている関数のみが所属するものとする。グループID情報に同一のグループIDが示される複数の関数は同一グループに所属している。
 なお、いずれのグループにも所属していない関数、つまり、イベントが共通する同じ優先度が設定されている他の関数が存在しない関数については、グループID情報にNull値が示される。
FIG. 14 shows an example of the registration data 105c.
The registration data 105c includes a function, execution setting information, priority information, and group ID information. The function, execution setting information, and priority information are the same as those shown in Fig. 3, so a description thereof will be omitted.
The group ID information indicates the group ID of the group to which the function belongs. Note that only functions that share a common trigger event and have the same priority belong to one group. Multiple functions whose group ID information indicates the same group ID belong to the same group.
Note that for a function that does not belong to any group, that is, for a function for which there is no other function with the same priority level that shares a common event, a null value is indicated in the group ID information.
 本実施の形態では、関数登録部111が、例えば、トリガとなるイベントが共通し、同じ優先度が設定されている複数の早期完了関数を同一グループに分類する。そして、関数登録部111は、同一のグループに分類した複数の早期完了関数の各々の登録データ105cに同一のグループID情報を含ませる。このようにすることで、関数登録部111は、複数の早期完了関数を連続して実行するよう関数実行装置200に指示することができる。 In this embodiment, the function registration unit 111 classifies, for example, multiple early completion functions that have a common trigger event and the same priority into the same group. Then, the function registration unit 111 includes the same group ID information in the registration data 105c of each of the multiple early completion functions classified into the same group. In this way, the function registration unit 111 can instruct the function execution device 200 to execute multiple early completion functions in succession.
 図15は、イベント関数対応テーブル205cの例を示す。
 イベント関数対応テーブル205cには、イベント、関数名、優先度及びグループIDの欄がある。イベント、関数名及び優先度の欄は、図4に示したものと同じである。このため、説明を省略する。
 グループIDの欄には、関数の欄に示される関数が所属するグループのグループIDが示される。グループIDの欄に示されるグループIDは、登録データ105cのグループID情報に示されるグループIDである。登録データ105cのグループID情報にNull値が示される関数のイベント関数対応テーブル205cでは、グループIDの欄にNull値が設定される。
FIG. 15 shows an example of the event function correspondence table 205c.
The event-function correspondence table 205c has columns for event, function name, priority, and group ID. The columns for event, function name, and priority are the same as those shown in Fig. 4, and therefore a description thereof will be omitted.
The group ID column indicates the group ID of the group to which the function indicated in the function column belongs. The group ID indicated in the group ID column is the group ID indicated in the group ID information of the registration data 105c. In the event function correspondence table 205c, a null value is set in the group ID column for a function indicated in the group ID information of the registration data 105c with a null value.
***動作の説明***
 次に、本実施の形態に係る関数登録要求装置100と関数実行装置200の動作例を説明する。
*** Operation Description ***
Next, an example of the operation of the function registration request device 100 and the function execution device 200 according to this embodiment will be described.
 図16は、実行準備フェーズにおける動作シーケンスを示す。 Figure 16 shows the operation sequence in the execution preparation phase.
 関数登録部111が、ユーザから関数登録要求を取得する(ステップS400)。関数登録要求には、登録データ105cに含ませる要素(関数、イベント、優先度、グループID)が示される。
 関数登録部111は、関数登録要求を取得すると、関数登録要求に従って登録データ105cを生成し、登録データ105c及び関数実行環境214を関数実行装置200に送信する(ステップS408)。前述したように、トリガとなるイベントが共通し、同じ優先度が設定されている複数の関数には、登録データ105cのグループID情報に同じグループIDが示される。
The function registration unit 111 receives a function registration request from a user (step S400). The function registration request indicates elements (function, event, priority, group ID) to be included in the registration data 105c.
When the function registration unit 111 acquires the function registration request, it generates registration data 105c according to the function registration request, and transmits the registration data 105c and the function execution environment 214 to the function execution device 200 (step S408). As described above, the same group ID is indicated in the group ID information of the registration data 105c for a plurality of functions that have a common trigger event and are set with the same priority.
 関数実行装置200では、受信部212が登録データ105c及び関数実行環境214を受信し、関数管理部211が登録データ105c及び関数実行環境214をストレージ204に格納する(ステップS409)。
 更に、関数管理部211は、登録データ105cからイベント関数対応テーブル205cを生成し、イベント関数対応テーブル205cをストレージ204に登録する(ステップS410)。
 また、関数管理部211は、グループごとに関数実行環境214を起動し(ステップS411)、イベント関数対応テーブル205cに基づいて各実行スレッド215に優先度を設定する(ステップS412)。
In the function execution device 200, the receiving unit 212 receives the registration data 105c and the function execution environment 214, and the function management unit 211 stores the registration data 105c and the function execution environment 214 in the storage 204 (step S409).
Furthermore, the function management unit 211 generates an event function correspondence table 205c from the registration data 105c, and registers the event function correspondence table 205c in the storage 204 (step S410).
Furthermore, the function management unit 211 starts the function execution environment 214 for each group (step S411), and sets a priority for each execution thread 215 based on the event-function correspondence table 205c (step S412).
 図17は、イベント実行フェーズにおける動作シーケンスを示す。
 イベント実行フェーズ開始時には、実行準備フェーズが完了している。
FIG. 17 shows the operation sequence in the event execution phase.
When the event execution phase begins, the execution preparation phase is complete.
 イベントが発生すると、受信部212がイベント通知を受信する(ステップS500)。
 受信部212は、イベント関数対応テーブル205cの「イベント」欄をイベント通知で通知されたイベントで検索し、通知されたイベントに対応する同じグループに所属する複数の関数を特定し、対応するグループの実行要求キュー213に、特定した複数の関数の実行要求を投入する(ステップS505)。
 関数実行部217は、実行要求キュー213から実行要求を取り出す処理を行う(ステップS502)。そして、関数実行部217は、実行要求キュー213から実行要求を取り出したか否かを判定する(ステップS503)。
 実行要求キュー213から実行要求を取り出した場合に、関数実行部217は、関数実行環境214に実行スレッド215を生成し、対応する関数216を呼び出し、関数216を実行する(ステップS506)。
その後、処理はステップS502に戻る。
 実行要求キュー213が空で関数実行部217が実行要求を取り出せなかったときは、処理がステップS502に戻る。
When an event occurs, the receiving unit 212 receives an event notification (step S500).
The receiving unit 212 searches the “Event” column of the event function correspondence table 205c for the event notified in the event notification, identifies multiple functions belonging to the same group that correspond to the notified event, and submits execution requests for the identified multiple functions to the execution request queue 213 of the corresponding group (step S505).
The function execution section 217 performs a process of retrieving an execution request from the execution request queue 213 (step S502).Then, the function execution section 217 determines whether or not the execution request has been retrieved from the execution request queue 213 (step S503).
When an execution request is taken out of the execution request queue 213, the function execution unit 217 generates an execution thread 215 in the function execution environment 214, calls the corresponding function 216, and executes the function 216 (step S506).
The process then returns to step S502.
If the execution request queue 213 is empty and the function execution section 217 cannot extract an execution request, the process returns to step S502.
 関数実行部217は、ステップS506において、トリガとなるイベントが共通し、同じグループに所属する複数の関数を連続して実行する。
 つまり、イベントAをトリガとする、同じグループに所属する関数αと関数βがある場合に、イベントAが発生すると、関数実行部217は、関数αと関数βを連続して実行する。
In step S506, the function execution unit 217 successively executes a plurality of functions that have a common trigger event and belong to the same group.
That is, in the case where there are functions α and β that belong to the same group and are triggered by event A, when event A occurs, function execution unit 217 executes functions α and β successively.
 本実施の形態では、上述のように、関数登録部111は、トリガとなるイベントが共通し、同じ優先度が設定された複数の早期完了関数を同一グループに分類することができる。そして、この場合は、関数実行部217は、同一グループに分類された複数の早期完了関数を他の関数に優先して連続して実行することができる。 In this embodiment, as described above, the function registration unit 111 can classify multiple early completion functions that have a common trigger event and are set to the same priority into the same group. In this case, the function execution unit 217 can sequentially execute multiple early completion functions classified into the same group in priority over other functions.
***実施の形態の効果の説明***
 以上のように、本実施の形態によれば、スレッド数を減らすことができる。この結果、本実施の形態によれば、スレッド切り替えによるオーバーヘッドを低減することができ、また、メモリ等のリソース使用量を低減することができる。
***Description of Effects of the Embodiment***
As described above, according to the present embodiment, the number of threads can be reduced. As a result, according to the present embodiment, the overhead caused by thread switching can be reduced, and the amount of resources used, such as memory, can be reduced.
実施の形態4.
 実施の形態3では、ユーザからの関数登録要求に基づいて、同一グループに分類される複数の関数が決定される。
 これに代えて、関数実行装置200が、同一グループに分類される複数の関数を決定することも可能である。
 本実施の形態では、関数実行装置200が、同一グループに分類される複数の関数を決定する例を説明する。
 本実施の形態では、主に実施の形態1及び実施の形態3との差異を説明する。
 なお、以下で説明していない事項は、実施の形態1又は実施の形態3と同様である。
Embodiment 4.
In the third embodiment, a plurality of functions to be classified into the same group are determined based on a function registration request from a user.
Alternatively, the function execution unit 200 may determine a plurality of functions that are classified into the same group.
In this embodiment, an example will be described in which the function execution device 200 determines a plurality of functions to be classified into the same group.
In this embodiment, differences from the first and third embodiments will be mainly described.
It should be noted that matters not explained below are similar to those in the first or third embodiment.
***構成の説明***
 本実施の形態においても、ハードウェア構成例(図1)及び機能構成例(図2)は、実施の形態1と同じである。
***Configuration Description***
In this embodiment, the hardware configuration (FIG. 1) and the functional configuration (FIG. 2) are the same as those in the first embodiment.
 本実施の形態では、図18に示す登録データ105dが用いられる。
 登録データ105dには、関数、実行設定情報、優先度情報及びグルーピングフラグ情報が含まれる。
 関数、実行設定情報及び優先度情報は図3に示したものと同じである。このため、説明を省略する。
 グルーピングフラグ情報は、関数をグループに含ませることの許否を定義する2値データである。関数登録部111は、登録データ105dの関数をグループに含ませることを許可する場合は、グルーピングフラグ情報にTrueを設定する。一方、登録データ105dの関数をグループに含ませることを許可しない場合は、関数登録部111は、グルーピングフラグ情報にFalseを設定する。
 関数登録部111は、イベントが共通し、同じ優先度が設定されている複数の関数のグルーピングフラグ情報にTrueを設定する。一方で、関数登録部111は、イベントが共通する同じ優先度が設定されている他の関数がない関数にはグルーピングフラグ情報にFalseを設定する
In this embodiment, the registration data 105d shown in FIG. 18 is used.
The registration data 105d includes a function, execution setting information, priority information, and grouping flag information.
The functions, execution setting information and priority information are the same as those shown in Fig. 3, so a description thereof will be omitted.
The grouping flag information is binary data that defines whether or not a function is allowed to be included in a group. When the function registration unit 111 allows the function of the registration data 105d to be included in a group, the function registration unit 111 sets the grouping flag information to True. On the other hand, when the function of the registration data 105d is not allowed to be included in a group, the function registration unit 111 sets the grouping flag information to False.
The function registration unit 111 sets True to the grouping flag information of a plurality of functions that share a common event and have the same priority. On the other hand, the function registration unit 111 sets False to the grouping flag information of a function that does not have other functions that share a common event and have the same priority.
 本実施の形態では、関数登録部111は、例えば、トリガとなるイベントが共通し、同じ優先度が設定されている複数の早期完了関数のグルーピングフラグ情報にTrueを設定する。このようにすることで、関数登録部111は、トリガとなるイベントが共通し、同じ優先度が設定されている複数の早期完了関数のグループ化を関数実行装置200に許可する。換言すれば、関数登録部111は、このような早期完了関数の連続実行を関数実行装置200に許可する。なお、Trueが設定されたグルーピングフラグ情報は、連続実行許可情報に相当する。 In this embodiment, the function registration unit 111 sets True to the grouping flag information of multiple early completion functions that have a common trigger event and the same priority. In this way, the function registration unit 111 allows the function execution device 200 to group multiple early completion functions that have a common trigger event and the same priority. In other words, the function registration unit 111 allows the function execution device 200 to execute such early completion functions consecutively. Note that grouping flag information set to True corresponds to consecutive execution permission information.
 本実施の形態でも、実施の形態3と同様に、イベント関数対応テーブル205cが用いられる。 In this embodiment, as in embodiment 3, the event function correspondence table 205c is used.
***動作の説明***
 次に、本実施の形態に係る関数登録要求装置100と関数実行装置200の動作例を説明する。
 図19は、実行準備フェーズにおける動作シーケンスを示す。
*** Operation Description ***
Next, an example of the operation of the function registration request device 100 and the function execution device 200 according to this embodiment will be described.
FIG. 19 shows the operation sequence in the execution preparation phase.
 関数登録部111が、ユーザから関数登録要求を取得する(ステップS400)。関数登録要求には、登録データ105dに含ませる要素のうち関数、イベント及び優先度が示される。
 関数登録部111は、関数登録要求を取得すると、関数登録要求に従って登録データ105dを生成し、登録データ105d及び関数実行環境214を関数実行装置200に送信する(ステップS413)。より具体的には、関数登録部111は、イベントが共通し、同じ優先度が設定されている複数の関数が存在すれば、これら複数の関数のグルーピングフラグ情報にTrueを設定する。一方で、関数登録部111は、イベントが共通する同じ優先度が設定されている他の関数がない関数にはグルーピングフラグ情報にFalseを設定する
The function registration unit 111 receives a function registration request from a user (step S400). The function registration request indicates functions, events, and priorities among the elements to be included in the registration data 105d.
When the function registration unit 111 receives the function registration request, it generates registration data 105d according to the function registration request and transmits the registration data 105d and the function execution environment 214 to the function execution device 200 (step S413). More specifically, if there are multiple functions that share a common event and have the same priority, the function registration unit 111 sets True to the grouping flag information of these multiple functions. On the other hand, the function registration unit 111 sets False to the grouping flag information of functions that do not have other functions that share a common event and have the same priority.
 関数実行装置200では、受信部212が登録データ105d及び関数実行環境214を受信し、関数管理部211が登録データ105c及び関数実行環境214をストレージ204に格納する(ステップS414)。
 更に、関数管理部211は、グルーピングフラグ情報がTrueになっている関数の中から、イベントが共通し、同じ優先度が設定されている関数を抽出し、抽出した関数に同じグループIDを割り当てる(ステップS415)。
In the function execution device 200, the receiving unit 212 receives the registration data 105d and the function execution environment 214, and the function management unit 211 stores the registration data 105c and the function execution environment 214 in the storage 204 (step S414).
Furthermore, the function management unit 211 extracts functions that have a common event and the same priority from among the functions whose grouping flag information is True, and assigns the same group ID to the extracted functions (step S415).
 次に、関数管理部211は、登録データ105dとステップS415で割り当てられたグループIDからイベント関数対応テーブル205cを生成し、イベント関数対応テーブル205cをストレージ204に登録する(ステップS416)。
 つまり、関数管理部211は、グルーピングフラグ情報がTrueになっている関数については、登録データ105dの関数、イベント情報及び優先度情報と、ステップS415で割り当てられたグループIDを用いて、イベント関数対応テーブル205cを生成する。
 一方で、グルーピングフラグ情報がFalseになっている関数については、関数管理部211は、登録データ105dの関数、イベント情報及び優先度情報を用いて、イベント関数対応テーブル205cを生成する。グルーピングフラグ情報がFalseになっている関数については、グループIDの欄にはNull値が設定される。
Next, the function management unit 211 generates an event function correspondence table 205c from the registration data 105d and the group ID assigned in step S415, and registers the event function correspondence table 205c in the storage 204 (step S416).
In other words, for functions whose grouping flag information is True, the function management unit 211 generates an event-function correspondence table 205c using the function, event information, and priority information of the registration data 105d, and the group ID assigned in step S415.
On the other hand, for functions whose grouping flag information is False, the function management unit 211 generates the event-function correspondence table 205c by using the functions, event information, and priority information in the registration data 105d. For functions whose grouping flag information is False, a Null value is set in the group ID column.
 実行準備フェーズの以降の動作シーケンス(ステップS411、ステップS412)は、図16と同じである。
 また、イベント実行フェーズの動作シーケンスは、図17と同じである。
The operation sequence after the execution preparation phase (steps S411 and S412) is the same as that shown in FIG.
The operation sequence of the event execution phase is the same as that shown in FIG.
 本実施の形態では、上述のように、関数登録部111は、イベントが共通し、同じ優先度が設定されている複数の早期完了関数のグループ化を関数実行装置200に許可することができる。この場合は、関数管理部211は、イベントが共通し、同じ優先度が設定されている複数の早期完了関数を同一グループに分類することができる。そして、関数実行部217は、実施の形態3と同様に、いずれかの早期完了関数を実行する際に、同一グループに分類された他の早期完了関数を他の関数に優先して連続して実行することができる。 In this embodiment, as described above, the function registration unit 111 can allow the function execution device 200 to group multiple early completion functions that share a common event and are set to the same priority. In this case, the function management unit 211 can classify multiple early completion functions that share a common event and are set to the same priority into the same group. Then, as in embodiment 3, when executing any one of the early completion functions, the function execution unit 217 can sequentially execute other early completion functions classified into the same group in priority to other functions.
***実施の形態の効果の説明***
 以上のように、本実施の形態では、関数のグループ化を関数実行装置200が行う。本実施の形態によっても、スレッド切り替えによるオーバーヘッドを減少することができ、また、メモリ等のリソース使用量を低減することができる。
***Description of Effects of the Embodiment***
As described above, in this embodiment, function grouping is performed by the function execution device 200. This embodiment also makes it possible to reduce overhead caused by thread switching, and also to reduce the amount of resources such as memory used.
 以上、実施の形態1~4を説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
 あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
 あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
 また、これらの実施の形態に記載された構成及び手順を必要に応じて変更してもよい。
Although the first to fourth embodiments have been described above, two or more of these embodiments may be combined for implementation.
Alternatively, one of these embodiments may be partially implemented.
Alternatively, two or more of these embodiments may be partially combined and implemented.
Furthermore, the configurations and procedures described in these embodiments may be modified as necessary.
***補足説明***
 最後に、関数登録要求装置100及び関数実行装置200の構成についての補足説明を行う。
 関数登録部111の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかは、メモリ102、ストレージ104、CPU101内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
 また、関数登録部111の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、関数登録部111の機能を実現するプログラムが格納された可搬記録媒体を流通させてもよい。
 同様に、関数管理部211、受信部212、関数実行環境214及び関数実行部217の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかは、メモリ202、ストレージ204、CPU201内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
 また、関数管理部211、受信部212、関数実行環境214及び関数実行部217の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、関数管理部211、受信部212、関数実行環境214及び関数実行部217の機能を実現するプログラムが格納された可搬記録媒体を流通させてもよい。
***supplementary explanation***
Finally, a supplementary explanation will be given regarding the configurations of the function registration request device 100 and the function execution device 200.
At least one of information, data, signal values, and variable values indicating the results of processing by the function registration unit 111 is stored in at least one of the memory 102, the storage 104, a register in the CPU 101, and a cache memory.
Furthermore, the program that realizes the functions of the function registration unit 111 may be stored in a portable recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, a DVD, etc. Then, the portable recording medium in which the program that realizes the functions of the function registration unit 111 is stored may be distributed.
Similarly, at least one of information, data, signal values, and variable values indicating the results of processing by the function management unit 211, the receiving unit 212, the function execution environment 214, and the function execution unit 217 is stored in at least one of the memory 202, the storage 204, the register within the CPU 201, and the cache memory.
Furthermore, the programs that realize the functions of the function management unit 211, the receiving unit 212, the function execution environment 214, and the function execution unit 217 may be stored in a portable recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, a DVD, etc. Then, the portable recording medium on which the programs that realize the functions of the function management unit 211, the receiving unit 212, the function execution environment 214, and the function execution unit 217 are stored may be distributed.
 また、関数登録部111、関数管理部211、受信部212及び関数実行部217の少なくともいずれかの「部」を、「回路」又は「工程」又は「手順」又は「処理」又は「サーキットリー」に読み替えてもよい。
 また、関数登録要求装置100及び関数実行装置200は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)である。
 この場合は、関数登録部111、関数管理部211、受信部212及び関数実行部217は、それぞれ処理回路の一部として実現される。
 なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
 つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
Furthermore, the "part" in at least any of the function registration unit 111, the function management unit 211, the receiving unit 212, and the function execution unit 217 may be read as a "circuit" or a "process" or a "procedure" or a "processing" or a "circuitry".
Furthermore, the function registration request device 100 and the function execution device 200 may be realized by a processing circuit. The processing circuit is, for example, a logic IC (Integrated Circuit), a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field-Programmable Gate Array).
In this case, the function registration unit 111, the function management unit 211, the receiving unit 212, and the function execution unit 217 are each realized as part of a processing circuit.
In this specification, the higher-level concept of a processor and a processing circuit is called "processing circuitry."
That is, a processor and a processing circuit are each specific examples of "processing circuitry."
 100 関数登録要求装置、101 CPU、102 メモリ、103 通信装置、104 ストレージ、105 登録データ、105b 登録データ、105c 登録データ、105d 登録データ、110 オペレーティングシステム、111 関数登録部、200 関数実行装置、201 CPU、202 メモリ、203 通信装置、204 ストレージ、205 イベント関数対応テーブル、205b イベント関数対応テーブル、205c イベント関数対応テーブル、210 オペレーティングシステム、211 関数管理部、212 受信部、213 実行要求キュー、214 関数実行環境、215 実行スレッド、216 関数、217 関数実行部、300 ネットワーク。 100 function registration request device, 101 CPU, 102 memory, 103 communication device, 104 storage, 105 registration data, 105b registration data, 105c registration data, 105d registration data, 110 operating system, 111 function registration unit, 200 function execution device, 201 CPU, 202 memory, 203 communication device, 204 storage, 205 event function correspondence table, 205b event function correspondence table, 205c event function correspondence table, 210 operating system, 211 function management unit, 212 receiving unit, 213 execution request queue, 214 function execution environment, 215 execution thread, 216 function, 217 function execution unit, 300 network.

Claims (14)

  1.  関数を実行する関数実行装置に実行させる複数の関数の中で他の関数よりも早期に実行を完了させる必要のある関数である早期完了関数の実行を他の関数よりも早期に完了するよう前記関数実行装置に指示する指示情報を生成する情報生成部と、
     前記早期完了関数と前記指示情報とを前記関数実行装置に送信する送信部とを有する関数送信装置。
    an information generating unit that generates instruction information for instructing a function execution device to complete the execution of an early completion function, which is a function that needs to be completed earlier than other functions among a plurality of functions to be executed by the function execution device, earlier than the other functions;
    a function sending device having a sending section for sending the early completing function and the instruction information to the function executing device;
  2.  前記情報生成部は、
     前記指示情報として、他の関数よりも高い優先度が前記早期完了関数に対して示される優先度情報を生成する請求項1に記載の関数送信装置。
    The information generating unit
    2. The function transmitting device according to claim 1, wherein the instruction information is priority information indicating that the early completing function has a higher priority than other functions.
  3.  前記情報生成部は、
     前記指示情報として、前記関数実行装置に含まれる複数のCPU(Central Processing Unit)コアのうち特定のCPUコアを前記早期完了関数に割り当てるよう前記関数実行装置に指示するCPUコア割当て情報を生成する請求項1に記載の関数送信装置。
    The information generating unit
    2. The function transmission device according to claim 1, wherein the instruction information generates CPU core allocation information that instructs the function execution device to allocate a specific CPU core among a plurality of CPU (Central Processing Unit) cores included in the function execution device to the early completion function.
  4.  前記情報生成部は、
     早期完了関数が2以上ある場合に、2以上の早期完了関数をグループ化し、
     グループ化した前記2以上の早期完了関数を連続して実行するよう前記関数実行装置に指示する指示情報を、グループ化した前記2以上の早期完了関数の各々について生成する請求項1に記載の関数送信装置。
    The information generating unit
    If there are two or more early completion functions, grouping the two or more early completion functions;
    2. The function transmitting device according to claim 1, further comprising: generating, for each of the two or more grouped early completing functions, instruction information for instructing the function executing device to execute the two or more grouped early completing functions consecutively.
  5.  前記情報生成部は、
     早期完了関数が2以上ある場合に、2以上の早期完了関数を連続して実行することを許可する連続実行許可情報を生成し、
     前記送信部は、
     前記2以上の早期完了関数と前記指示情報と前記連続実行許可情報とを前記関数実行装置に送信する請求項1に記載の関数送信装置。
    The information generating unit
    generating successive execution permission information for permitting successive execution of the two or more early completion functions when there are two or more early completion functions;
    The transmission unit is
    2. The function transmitting device according to claim 1, further comprising: a function transmitting unit configured to transmit the two or more early completing functions, the instruction information, and the continuous execution permission information to the function executing unit.
  6.  複数の関数の中で他の関数よりも早期に実行を完了させる必要のある関数である早期完了関数の実行を他の関数よりも早期に完了するよう指示する指示情報と、前記早期完了関数とを受信する受信部と、
     前記指示情報に従い、他の関数よりも早期に実行が完了するように前記早期完了関数を実行する関数実行部とを有する関数実行装置。
    a receiving unit for receiving instruction information for instructing that an early completion function, which is a function among a plurality of functions that needs to be completed earlier than other functions, be completed earlier than other functions, and the early completion function;
    a function execution unit that executes the early completing function in accordance with the instruction information so that execution is completed earlier than other functions.
  7.  前記受信部は、
     前記指示情報として、他の関数よりも高い優先度が前記早期完了関数に対して示される優先度情報を受信する請求項6に記載の関数実行装置。
    The receiving unit is
    7. The function execution device according to claim 6, wherein the instruction information includes priority information indicating that the early completing function has a higher priority than other functions.
  8.  前記受信部は、
     前記指示情報として、前記関数実行装置に含まれる複数のCPU(Central Processing Unit)コアのうち特定のCPUコアを前記早期完了関数に割り当てるよう指示するCPUコア割当て情報を受信し、
     前記関数実行部は、
     前記CPUコア割当て情報で指示されている前記特定のCPUコアを前記早期完了関数に割り当てて前記早期完了関数を実行する請求項6に記載の関数実行装置。
    The receiving unit is
    receiving, as the instruction information, CPU core allocation information instructing the function execution device to allocate a specific CPU core among a plurality of CPU (Central Processing Unit) cores included in the function execution device to the early completion function;
    The function execution unit is
    7. The function execution device according to claim 6, wherein the specific CPU core designated in the CPU core allocation information is assigned to the early completion function to execute the early completion function.
  9.  前記受信部は、
     グループ化された2以上の早期完了関数を連続して実行するよう指示する指示情報と、グループ化された前記2以上の早期完了関数を受信し、
     前記関数実行部は、
     グループ化された前記2以上の早期完了関数を連続して実行する請求項6に記載の関数実行装置。
    The receiving unit is
    receiving instruction information instructing to execute two or more grouped early completion functions in succession and the two or more grouped early completion functions;
    The function execution unit is
    7. The function execution unit according to claim 6, wherein the two or more grouped early completing functions are executed consecutively.
  10.  前記受信部は、
     2以上の早期完了関数と、前記2以上の早期完了関数を連続して実行することを許可する連続実行許可情報とを受信し、
     前記関数実行部は、
     前記連続実行許可情報に従い、いずれかの早期完了関数を実行する際に他の早期完了関数を連続して実行する請求項6に記載の関数実行装置。
    The receiving unit is
    receiving two or more early completion functions and consecutive execution permission information permitting consecutive execution of the two or more early completion functions;
    The function execution unit is
    7. The function execution device according to claim 6, wherein when any one of the early completion functions is executed, another early completion function is executed consecutively according to the consecutive execution permission information.
  11.  関数を実行する関数実行装置に実行させる複数の関数の中で他の関数よりも早期に実行を完了させる必要のある関数である早期完了関数の実行を他の関数よりも早期に完了するよう前記関数実行装置に指示する指示情報を、コンピュータが生成し、
     前記コンピュータが、前記早期完了関数と前記指示情報とを前記関数実行装置に送信する関数送信方法。
    A computer generates instruction information for instructing a function execution device to complete the execution of an early completion function, which is a function that needs to be completed earlier than other functions among a plurality of functions to be executed by the function execution device, earlier than the other functions;
    A function sending method in which the computer sends the early completing function and the instruction information to the function execution device.
  12.  複数の関数の中で他の関数よりも早期に実行を完了させる必要のある関数である早期完了関数の実行を他の関数よりも早期に完了するよう指示する指示情報と、前記早期完了関数とをコンピュータが受信し、
     前記コンピュータが、前記指示情報に従い、他の関数よりも早期に実行が完了するように前記早期完了関数を実行する関数実行方法。
    A computer receives instruction information instructing a function that needs to be completed earlier than other functions among a plurality of functions, and the early completion function; and
    The function execution method, in which the computer executes the early completing function in accordance with the instruction information so that execution of the early completing function is completed earlier than other functions.
  13.  関数を実行する関数実行装置に実行させる複数の関数の中で他の関数よりも早期に実行を完了させる必要のある関数である早期完了関数の実行を他の関数よりも早期に完了するよう前記関数実行装置に指示する指示情報を生成する情報生成処理と、
     前記早期完了関数と前記指示情報とを前記関数実行装置に送信する送信処理とをコンピュータに実行させる関数送信プログラム。
    an information generating process for generating instruction information for instructing a function execution device to complete the execution of an early completion function, which is a function that needs to be completed earlier than other functions among a plurality of functions to be executed by the function execution device, earlier than the other functions;
    a function sending program that causes a computer to execute a sending process of sending the early completing function and the instruction information to the function execution device.
  14.  複数の関数の中で他の関数よりも早期に実行を完了させる必要のある関数である早期完了関数の実行を他の関数よりも早期に完了するよう指示する指示情報と、前記早期完了関数とを受信する受信処理と、
     前記指示情報に従い、他の関数よりも早期に実行が完了するように前記早期完了関数を実行する関数実行処理とをコンピュータに実行させる関数実行プログラム。
    a receiving process for receiving instruction information for instructing that an early completion function, which is a function among a plurality of functions that needs to be completed earlier than other functions, be completed earlier than other functions, and the early completion function;
    and a function execution process for executing the early completing function so that execution of the early completing function is completed earlier than other functions in accordance with the instruction information.
PCT/JP2023/007976 2023-03-03 2023-03-03 Function transmission device, function execution device, function transmission method, function execution method, function transmission program, and function execution program WO2024184941A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2023/007976 WO2024184941A1 (en) 2023-03-03 2023-03-03 Function transmission device, function execution device, function transmission method, function execution method, function transmission program, and function execution program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2023/007976 WO2024184941A1 (en) 2023-03-03 2023-03-03 Function transmission device, function execution device, function transmission method, function execution method, function transmission program, and function execution program

Publications (1)

Publication Number Publication Date
WO2024184941A1 true WO2024184941A1 (en) 2024-09-12

Family

ID=92674183

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/007976 WO2024184941A1 (en) 2023-03-03 2023-03-03 Function transmission device, function execution device, function transmission method, function execution method, function transmission program, and function execution program

Country Status (1)

Country Link
WO (1) WO2024184941A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH076043A (en) * 1993-03-05 1995-01-10 Mitsubishi Electric Corp Multithread server
US20210073059A1 (en) * 2019-09-10 2021-03-11 Nimbella Corp. Method and system for managing and executing serverless functions in a messaging service
US20210240537A1 (en) * 2020-01-31 2021-08-05 Red Hat, Inc. Serverless function colocation with storage pools
US20210287323A1 (en) * 2020-03-12 2021-09-16 Cisco Technology, Inc. Function-as-a-service (faas) model for specialized processing units
WO2021191655A1 (en) * 2020-03-23 2021-09-30 Telefonaktiebolaget Lm Ericsson (Publ) Grouping together multiple functions accessing the same data
JP2022511177A (en) * 2018-11-08 2022-01-31 インテル・コーポレーション Enhancement of Function As Service (FaaS) System
WO2022225578A1 (en) * 2021-08-20 2022-10-27 Futurewei Technologies, Inc. Real-time event-driven serverless functions within storage systems for near data processing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH076043A (en) * 1993-03-05 1995-01-10 Mitsubishi Electric Corp Multithread server
JP2022511177A (en) * 2018-11-08 2022-01-31 インテル・コーポレーション Enhancement of Function As Service (FaaS) System
US20210073059A1 (en) * 2019-09-10 2021-03-11 Nimbella Corp. Method and system for managing and executing serverless functions in a messaging service
US20210240537A1 (en) * 2020-01-31 2021-08-05 Red Hat, Inc. Serverless function colocation with storage pools
US20210287323A1 (en) * 2020-03-12 2021-09-16 Cisco Technology, Inc. Function-as-a-service (faas) model for specialized processing units
WO2021191655A1 (en) * 2020-03-23 2021-09-30 Telefonaktiebolaget Lm Ericsson (Publ) Grouping together multiple functions accessing the same data
WO2022225578A1 (en) * 2021-08-20 2022-10-27 Futurewei Technologies, Inc. Real-time event-driven serverless functions within storage systems for near data processing

Similar Documents

Publication Publication Date Title
CN100495343C (en) Method and system for providing two levels server virtualization
US7260663B2 (en) System and method for presenting interrupts
CN106371894B (en) Configuration method and device and data processing server
US9396154B2 (en) Multi-core processor for managing data packets in communication network
CN101160565B (en) Mechanism to schedule threads on os-sequestered without operating system intervention
US7200695B2 (en) Method, system, and program for processing packets utilizing descriptors
US7761617B2 (en) Multi-threaded DMA
JPH03126158A (en) Method and apparatus for scheduling
JP2004280297A (en) Device, method and program for switching task
US11216304B2 (en) Processing system for scheduling and distributing tasks and its acceleration method
JP2018018220A (en) Parallel information processing device, information processing method, and program
US20210311782A1 (en) Thread scheduling for multithreaded data processing environments
US20110265093A1 (en) Computer System and Program Product
JPWO2011148920A1 (en) Multiprocessor system, execution control method, execution control program
CN112491426B (en) Service assembly communication architecture and task scheduling and data interaction method facing multi-core DSP
GB2381336A (en) Object-orientated heterogeneous multiprocessor platform
US11231964B2 (en) Computing device shared resource lock allocation
CN115543219B (en) Method, device, equipment and medium for optimizing host IO processing
CN115167996A (en) Scheduling method and device, chip, electronic equipment and storage medium
US20240345879A1 (en) Task processing method and apparatus
WO2022160628A1 (en) Command processing apparatus and method, electronic device, and computer-readable storage medium
CN101189579B (en) Method and device for using semaphores for multi-threaded processing
EP1546872B1 (en) A key event controlling apparatus
WO2024184941A1 (en) Function transmission device, function execution device, function transmission method, function execution method, function transmission program, and function execution program
US8782665B1 (en) Program execution optimization for multi-stage manycore processors

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23926157

Country of ref document: EP

Kind code of ref document: A1