WO2012131961A1 - データ処理方法、および携帯端末 - Google Patents

データ処理方法、および携帯端末 Download PDF

Info

Publication number
WO2012131961A1
WO2012131961A1 PCT/JP2011/058143 JP2011058143W WO2012131961A1 WO 2012131961 A1 WO2012131961 A1 WO 2012131961A1 JP 2011058143 W JP2011058143 W JP 2011058143W WO 2012131961 A1 WO2012131961 A1 WO 2012131961A1
Authority
WO
WIPO (PCT)
Prior art keywords
mobile terminal
processing
shared memory
group
distributed
Prior art date
Application number
PCT/JP2011/058143
Other languages
English (en)
French (fr)
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/JP2011/058143 priority Critical patent/WO2012131961A1/ja
Priority to JP2013506961A priority patent/JPWO2012131961A1/ja
Publication of WO2012131961A1 publication Critical patent/WO2012131961A1/ja
Priority to US14/041,566 priority patent/US20140032700A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/408Peer to peer connection

Definitions

  • the present invention relates to a data processing method for performing distributed processing and a mobile terminal.
  • a master terminal controls a plurality of mobile terminals to perform distributed processing
  • a plurality of mobile terminals connected to a base station to which the master terminal is connected are set as a group that performs distributed processing. Then, distributed processing is performed among portable terminals in the group under the control of the master terminal.
  • distributed processing performed between portable terminals includes processing that requires exclusive control.
  • JP 2003-67232 A Japanese Patent Laid-Open No. 08-77026 Japanese Patent Application Laid-Open No. 64-076228
  • a mobile terminal with an idle CPU is a mobile terminal connected to a plurality of base stations, and may belong to a plurality of groups. In this case, since the CPU of the portable terminal is in an idle state, the distributed processing in the other group can be undertaken while the distributed processing in one group is interrupted.
  • the present invention aims to provide a data processing method and a portable terminal capable of protecting a processing result held in a memory in order to solve the above-described problems caused by the prior art.
  • a first device included in a first device group including a plurality of devices interrupts execution of the first process, and a plurality of devices Sharing that is set for each of the plurality of devices in the first device group and shared by the plurality of devices in the first device group based on the execution request of the second process from the second device included in the second device group including
  • a data processing method and a portable terminal that save processing information of a first process in a memory and cancel the saving of processing information of the first process in response to the end of execution of the second process are proposed.
  • the processing result held in the memory can be protected.
  • FIG. 1 is an explanatory diagram showing a specific example of saving processing results in the distributed shared memory area.
  • FIG. 2 is an explanatory diagram of an example of the network system according to the embodiment.
  • FIG. 3 is a block diagram of a hardware configuration example of the mobile terminal N according to the embodiment.
  • FIG. 4 is an explanatory diagram showing a specific example of saving the intermediate processing result of the distributed processing by the mobile terminal.
  • FIG. 5 is an explanatory diagram showing a specific example of the return of the intermediate processing result saved in the distributed shared memory area by the mobile terminal.
  • FIG. 6 is an explanatory diagram illustrating a specific example of the end of execution of the process of the other group by the mobile terminal.
  • FIG. 7 is a flowchart showing details of the process of creating the distributed shared memory area by the master terminal.
  • FIG. 8 is a flowchart showing details of the distributed shared memory area creation processing by the mobile terminal.
  • FIG. 9 is a flowchart showing details of processing for saving processing results to the distributed shared memory area
  • FIG. 1 is an explanatory diagram showing a specific example of saving processing results to the distributed shared memory area.
  • the mobile terminal N connected to the base station A1 belongs to a first device group that performs the distributed processing 1 (hereinafter referred to as “group G1”).
  • the mobile terminal N1 is a mobile terminal N that is a master terminal, and the mobile terminals N2 to N4 are mobile terminals N that are slave terminals.
  • the portable terminal N1 serving as the master terminal distributes the requests for the processes 1a and 1b of the distributed processing 1 to the portable terminals N2 to N4 serving as slave terminals in the group G1.
  • the mobile terminal N1 is executing the process 1a of the distributed process 1. Further, it is assumed that the mobile terminal N1 distributes the process 1b to the mobile terminal N4. That is, it is assumed that the mobile terminal N4 is executing the process 1b of the distributed process 1. The processing result of the processing 1b is held in the memory M of the portable terminal N4.
  • the mobile terminal N connected to the base station A2 belongs to a second device group (hereinafter referred to as “group G2”) that performs the distributed processing 2.
  • the mobile terminal N7 is a mobile terminal N that is a master terminal, and the mobile terminals N4 to N6 are mobile terminals N that are slave terminals. Then, the portable terminal N7 serving as the master terminal distributes the requests for the processes 2a and 2b of the distributed processing 2 to the portable terminals N4 to N6 serving as slave terminals in the group G2.
  • the mobile terminal N7 is executing the process 2a of the distributed process 2. Further, it is assumed that the mobile terminal N7 has not yet distributed the process 2b, and the process 2b of the distributed process 2 has not been executed by any mobile terminal N.
  • the mobile terminal N4 belongs to both the group G1 and the group G2, and can perform the distributed processing 1 or the distributed processing 2.
  • the portable terminal N4 since the portable terminal N4 has a small memory area, it is assumed that the processing results of a plurality of processes cannot be held simultaneously.
  • the mobile terminals N1 to N3 have created the distributed shared memory area Md in each memory M. Then, it is assumed that the mobile terminal N4 can save the processing result in the distributed shared memory area Md as necessary.
  • the mobile terminal N7 serving as the master terminal of the group G2 transmits a request for the processing 2b of the distributed processing 2 to the mobile terminal N4.
  • the portable terminal N4 Upon receiving the request for the process 2b, the portable terminal N4 protects the processing result of the suspended process 1b, and secures the work area of the process 2b to distribute each of the portable terminals N1 to N3.
  • the processing result of processing 1b is saved in the shared memory area Md.
  • the mobile terminal N4 executes the process 2b using the memory M of its own terminal.
  • the portable terminal N4 transmits the processing result of the process 2b to the portable terminal N7.
  • the portable terminal N4 restores the processing result of the process 1b saved in the distributed shared memory area Md of the portable terminals N1 to N3, and waits for the end of synchronization waiting of the process 1b from the portable terminal N1.
  • the portable terminal N4 saves the work area used for the process 2b of the other group G2 by evacuating the process result of the process 1b to the distributed shared memory area Md while the process 1b of the one group G1 is interrupted. Can be secured. Therefore, the portable terminal N4 can perform another process 2b while protecting the processing result of the process 1b while the process 1b is interrupted.
  • the portable terminal N4 saves the processing result of the processing 1b in the distributed shared memory area Md to secure a work area.
  • the portable terminal N4 may secure a work area by saving the processing result of the processing 1b to the distributed shared memory area Md in order to perform processing for groups belonging to groups other than the groups G1 and G2.
  • the portable terminal N4 may reserve the work area by saving the processing result of the process 1b to the distributed shared memory area Md in order to perform a new process generated in its own terminal.
  • FIG. 2 is an explanatory diagram of an example of the network system according to the embodiment.
  • the network system 200 includes a plurality of mobile terminals N (mobile terminals N1 to N7) and base stations A1 and A2.
  • each mobile terminal N is connected via base stations A1 and A2.
  • Each mobile terminal N is a wireless communication device that communicates with other terminals.
  • the mobile terminals N there are mobile terminals N1 and N7 that serve as master terminals for performing distributed processing.
  • the mobile terminals N1 and N7 serving as master terminals set a plurality of mobile terminals N connected to the base station to which the mobile terminals N1 and N7 are connected as slave terminals of a group that performs distributed processing. .
  • the mobile terminals N2 to N4 connected to the base station A1 to which the mobile terminal N1 serving as the master terminal is connected become slave terminals of the group G1 that performs distributed processing.
  • the mobile terminals N4 to N6 connected to the base station A2 to which the mobile terminal N7 serving as the master terminal is connected become slave terminals of the group G2 that performs the distributed processing 2.
  • the mobile terminals N1 to N4 in the group G1 each have a memory M.
  • the mobile terminals N1 to N3 in the group G1 each have a distributed shared memory area Md in the memory M.
  • the distributed shared memory area Md is an area accessible from any mobile terminal N1 to N4 in the group G1.
  • the mobile terminal N4 does not have the distributed shared memory area Md in the memory M, but may have the distributed shared memory area Md.
  • the mobile terminals N1 to N3 each have a distributed shared memory area Md in the memory M, but the distributed shared memory areas Md included in the mobile terminals N1 to N3 may have different sizes.
  • the network system 200 includes a plurality of mobile terminals N (mobile terminals N1 to N7) and base stations A1 and A2.
  • the network system 200 may be an ad hoc network including a plurality of mobile terminals N (mobile terminals N1 to N7), and performs distributed processing on a plurality of mobile terminals N that can perform ad hoc communication from the mobile terminal N serving as a master terminal. It is good also as a group.
  • the mobile terminal N capable of ad hoc communication is a mobile terminal N within the communication range of the mobile terminal N1.
  • a module for ad hoc communication is prepared for each mobile terminal N that is a communication destination, and communication is performed.
  • the network system 200 may be a network including a PC (Personal Computer), a mobile phone, or a PDA (Personal Digital Assistants).
  • the network system 200 may be a network including a base station and a gateway.
  • FIG. 3 is a block diagram of a hardware configuration example of the mobile terminal N according to the embodiment.
  • the portable terminal N includes a CPU 301, a RAM (Random Access Memory) 302, a flash memory 303, and an I / F (InterFace) 304.
  • the CPUs 301 to I / F 304 are connected by a bus 300, respectively.
  • the CPU 301 governs overall control of the mobile terminal N.
  • the RAM 302 is used as a work area for the CPU 301.
  • a distributed shared memory area Md is created. That is, the RAM 302 is the memory M described above.
  • the flash memory 303 stores a program.
  • the I / F 304 transmits and receives information to and from other terminals via the base stations A1 and A2.
  • the portable terminal N1 is a master terminal of the group G1 that performs the distributed processing 1.
  • the portable terminal N7 is a master terminal of the group G2 that performs the distributed processing 2.
  • illustration of the base stations A1 and A2 via communication between the mobile terminals N is omitted.
  • the mobile terminal N4 is a slave terminal belonging to the groups G1 and G2, and executes the distributed processes 1 and 2 based on processing requests from the mobile terminals N1 and N7 that are master terminals.
  • the distributed shared memory area Md by the mobile terminals N1 to N3 is virtually shown as one distributed shared memory area Md.
  • the processing result is divided and saved in the distributed shared memory area Md of the mobile terminals N1 to N3.
  • FIG. 4 is an explanatory diagram showing a specific example of saving the intermediate processing result of the distributed processing by the mobile terminal.
  • the portable terminal N1 serving as the master terminal performs exclusive control / synchronization processing of the processing 1a and 1b of the distributed processing 1. That is, the portable terminal N4 does not execute the process 1b while the process 1a is being executed.
  • the mobile terminal N4 detects waiting for execution of the process 1b from the processing status of the process 1a of the mobile terminal N1 that is the master terminal of one group G1, and interrupts the process 1b being executed. And the portable terminal N4 will transfer to an idle state, if the process 1b is interrupted.
  • the mobile terminal N4 sends a notification that the CPU 301 has shifted to the idle state and can accept other processes (hereinafter referred to as “process acceptance notice”) to the master of the other group G2. It transmits to the portable terminal N7 used as a terminal.
  • the mobile terminal N7 that has received the process acceptance notification from the mobile terminal N4 transmits a request for the process 2b of the distributed process 2 to the mobile terminal N4.
  • the mobile terminal N4 that has received the request for the process 2b saves the intermediate process result of the process 1b to the distributed shared memory area Md, and secures a work area to be used for the requested process 2b. (5) Then, the portable terminal N4 starts executing the requested process 2b.
  • the mobile terminal N4 divides and saves the intermediate processing result of the process 1b in the respective distributed shared memory areas Md of the mobile terminals N1 to N3. Specifically, first, the mobile terminal N4 notifies the mobile terminal N1 serving as the master terminal of the memory size necessary for saving (that is, the memory size of the intermediate processing result of the process 1b). When the portable terminal N1 serving as the master terminal is notified of the memory size necessary for saving, the portable terminal N1 notifies the portable terminal N4 of the portable terminal N serving as the saving destination.
  • the mobile terminal N1 selects the mobile terminal N that is optimal for the save destination based on the location information of the mobile terminal N4 that has an intermediate processing result to be saved and the location information of the mobile terminals N1 to N3 in the group G1. To be notified.
  • the mobile terminal N1 can determine that the mobile terminal N located near the mobile terminal N4 has a high communication speed with the mobile terminal N4, and can adopt the mobile terminal N as the optimal mobile terminal N for the save destination.
  • the mobile terminal N1 may adopt a mobile terminal N having a large distributed shared memory area Md to be provided as the mobile terminal N that is optimal for the save destination.
  • the mobile terminal N4 may transmit the intermediate processing result to be saved to the mobile terminal N as the save destination and request the CPU 301 of the mobile terminal N as the save destination to hold the intermediate process result. Further, if each mobile terminal N is configured to be capable of DMAC (Direct Memory Access Control), the mobile terminal N4 directly sends the intermediate processing result to the RAM 302 without going through the CPU 301 of the mobile terminal N as the save destination. You may write.
  • DMAC Direct Memory Access Control
  • the mobile terminal N4 may have a distributed shared memory area Md in its own terminal. Then, the portable terminal N4 may divide and save the intermediate processing result in the distributed shared memory area Md in its own terminal in addition to the distributed shared memory area Md of the portable terminals N1 to N3.
  • the portable terminal N4 can protect the intermediate processing result of the processing 1b by saving it in the distributed shared memory area Md. Further, the CPU 301 in the idle state can be used for the other processing 2b, and the usage rate of the CPU 301 of the portable terminal N4 can be improved.
  • the mobile terminal N4 restores the intermediate processing result saved in the distributed shared memory area Md will be described with reference to FIG.
  • FIG. 5 is an explanatory diagram showing a specific example of the return of the intermediate processing result saved in the distributed shared memory area by the mobile terminal.
  • the mobile terminal N4 returns the mid-process result of the process 1b to the work area secured by transmitting the mid-process result of the process 2b to the mobile terminal N7.
  • the mobile terminal N4 restarts the process 1b based on the halfway process result of the returned process 1b.
  • the return of the mid-process result of the process 1b is performed when the mobile terminal N4 requests the mobile terminal N, which is the save destination notified from the mobile terminal N1 in FIG. 4, to transmit the mid-process result of the process 1b.
  • the data may be read directly from the RAM 302 of the portable terminal N that is the save destination.
  • the mobile terminal N4 can immediately restart the process 1b when the mobile terminal N1 requests to restart the process 1b.
  • a specific example when the process 2b of the other group G2 is completed will be described with reference to FIG.
  • FIG. 6 is an explanatory diagram showing a specific example of the end of execution of the process of the other group by the mobile terminal. (1) When the mobile terminal N4 finishes the execution of the process 2b requested by the mobile terminal N7 serving as the master terminal of the group G2, the mobile terminal N4 transmits the processing result of the process 2b to the mobile terminal N7.
  • the portable terminal N4 again transmits a process acceptance notice to the portable terminal N7 that becomes the master terminal of the group G2, and waits for a processing request.
  • a request for resuming the process 1b is received from the portable terminal N1 serving as the master terminal of the group G1 while waiting for the processing request, the process 1b is resumed and the portable terminal N7 serving as the master terminal of the group G2 is resumed.
  • the mobile terminal N4 may return the intermediate processing result of the processing 1b without waiting for the processing request. Then, the CPU 301 may resume the process 1b after waiting for a request to resume the process 1b.
  • the mobile terminal N4 can perform another process using the work area secured by transmitting the processing result of the process 2b to the mobile terminal N7. .
  • FIG. 7 is a flowchart showing details of the process of creating the distributed shared memory area by the master terminal.
  • the CPU 301 acquires device information of all mobile terminals N belonging to the group (step S701).
  • the CPU 301 determines whether or not the distributed shared memory area Md can be created (step S702). Specifically, the CPU 301 determines that the sum of the memory sizes in the RAM 302 (hereinafter referred to as “provided memory size”) that can be provided by all the mobile terminals N belonging to the group is the result of any of the distributed processing. When the size is not less than the minimum value, it is determined that the distributed shared memory area Md can be created.
  • the CPU 301 determines that the distributed shared memory area Md cannot be created because it is not necessary to create the distributed shared memory area Md when the processing result of any of the distributed processes is not storable. To do.
  • step S702 If the distributed shared memory area Md cannot be created (step S702: No), the CPU 301 notifies all the mobile terminals N belonging to the group that the distributed shared memory area Md need not be created. (Hereinafter referred to as “not-created notification”) is transmitted (step S706). Then, the CPU 301 ends the creation process of the distributed shared memory area Md.
  • step S702 when the distributed shared memory area Md can be created (step S702: Yes), the CPU 301 transmits a notice of creation of the distributed shared memory area Md to all the mobile terminals N belonging to the group (step S702). S703).
  • the CPU 301 determines whether or not a notification of completion of creation of the distributed shared memory area Md has been received from all the mobile terminals N belonging to the group (step S704).
  • the CPU 301 returns to step S704 to notify the completion notification. Wait for reception.
  • step S704 when notification of completion of creation of the distributed shared memory area Md is obtained from all the mobile terminals N belonging to the group (step S704: Yes), the CPU 301 performs addressing of the distributed shared memory area Md (step S704). S705). Then, the CPU 301 ends the creation process of the distributed shared memory area Md.
  • Addressing refers to allocating an address (address) to the memory for memory management. For example, a 32-bit value or a 64-bit value is adopted as the address.
  • the mobile terminal N serving as the master terminal can cause the mobile terminal N serving as the slave terminal to create the distributed shared memory area Md. Then, the mobile terminal N serving as the master terminal can manage the distributed shared memory area Md by addressing the memory area provided from the mobile terminals N belonging to the group.
  • the portable terminal N serving as a master terminal is a portable terminal serving as a slave terminal when the sum of the provided memory sizes of all the portable terminals N belonging to the group is equal to or larger than the minimum size of the processing result of the distributed processing.
  • the terminal N can be made to create the distributed shared memory area Md.
  • the mobile terminal N that is the master terminal creates the distributed shared memory area Md in the mobile terminal N that is the slave terminal only when the distributed shared memory area Md that can save the processing result of the distributed processing can be created. Let Therefore, the slave terminal does not need to use the RAM 302 for the unnecessary distributed shared memory area Md.
  • FIG. 8 is a flowchart showing details of the distributed shared memory area creation processing by the mobile terminal.
  • the CPU 301 determines whether or not a notification has been received from the portable terminal N serving as a master terminal (step S801). If the notification has not been received (step S801: No), the CPU 301 returns to step S801 and waits for the notification.
  • step S801 the CPU 301 determines whether the received notification is a notification of creation of the distributed shared memory area Md or a notification of non-creation of the distributed shared memory area Md. (Step S802).
  • step S802 non-created notification
  • the CPU 301 does not create the distributed shared memory area Md, and does not create the distributed shared memory area Md. Finish the creation process.
  • the mobile terminal N serving as the master terminal does not have to transmit a non-creation notification. In this case, the mobile terminal N determines whether or not it is necessary to create the distributed shared memory area Md based on the presence or absence of the creation notification.
  • the CPU 301 protects the provided memory size as the distributed shared memory area Md (step S803).
  • the CPU 301 transmits a notification of completion of creation of the distributed shared memory area Md to the mobile terminal N that is the master terminal (step S804), and ends the process of creating the distributed shared memory area Md. Thereby, the portable terminal N can create the distributed shared memory area Md.
  • FIG. 9 is a flowchart showing details of processing for saving processing results to the distributed shared memory area by the mobile terminal.
  • the CPU 301 determines whether or not the synchronization waiting for the exclusive control has been detected from the portable terminal N that is the master terminal of the group related to the process being executed (step S901). When the synchronization waiting is not detected (step S901: No), the CPU 301 returns to step S901 and waits for the detection of the synchronization waiting.
  • step S901 when the synchronization waiting is detected (step S901: Yes), the CPU 301 suspends the process being executed while waiting for synchronization. Then, the CPU 301 determines whether there is a group that belongs to other than the group related to the process being executed (step S902).
  • step S902 the CPU 301 ends the process of saving the processing result to the distributed shared memory area Md.
  • the CPU 301 ends the saving process on the assumption that there is no need to save the processing result in the RAM 302 to the distributed shared memory area Md.
  • step S902 determines whether the distributed shared memory area Md is available (step S903).
  • step S903 No
  • the CPU 301 ends the saving process of the processing result to the distributed shared memory area Md.
  • step S903 if the distributed shared memory area Md is available (step S903: Yes), the CPU 301 secures the distributed shared memory area Md for saving, and the portable terminal N that becomes the master terminal of the group to which it belongs. In step S904, a process acceptance notice is transmitted.
  • the CPU 301 determines that a work area for performing distributed processing of a group belonging to another can be secured, and transmits a process acceptance notification. .
  • the CPU 301 determines whether or not the synchronization wait has ended (step S905).
  • the synchronization waiting is ended by receiving, for example, a synchronization waiting cancellation notification from the mobile terminal N serving as the master terminal.
  • a cancellation notice of the process acceptance notification is transmitted to the mobile terminal N that becomes the master terminal of the group to which it belongs (step S906), and distributed sharing is performed. The process of saving the processing result to the memory area Md is terminated.
  • the CPU 301 when the synchronization wait is completed, the CPU 301 resumes the suspended processing, so that it is not possible to secure a work area for performing distributed processing of groups belonging to other groups. For this reason, the CPU 301 transmits a cancellation notification of the process acceptance permission notification to the mobile terminal N that becomes the master terminal of the group to which it belongs.
  • step S905 determines whether or not a processing request has been received from the portable terminal N serving as the master terminal of the group to which it belongs (step S905). S907). If no processing request has been received (step S907: NO), the process returns to step S905.
  • step S907 when the processing request is received (step S907: Yes), the CPU 301 saves the intermediate processing result in the distributed shared memory area Md (step S908). Thereby, the CPU 301 secures a work area for processing related to the processing request. Then, the CPU 301 starts processing based on the processing request (step S909).
  • the CPU 301 determines whether or not the synchronization wait has ended (step S910).
  • the synchronization waiting is ended by receiving, for example, a synchronization waiting cancellation notification from the mobile terminal N serving as the master terminal.
  • step S910 when the synchronization waiting is completed (step S910: Yes), the CPU 301 transmits the processing result of the process started in step S909 to the portable terminal N that is the master terminal of the group to which it belongs. Step S911).
  • the CPU 301 restores the processing result saved in the distributed shared memory area Md (step S912), and ends the saving process of the processing result in the distributed shared memory area Md. That is, the CPU 301 transmits the processing result of the process started in step S909, and secures a work area for the process that has been interrupted due to waiting for synchronization. Then, the CPU 301 restores the processing result saved in the distributed shared memory area Md and resumes the suspended processing.
  • step S910 determines whether or not the process started in step S909 has ended (step S913). If the process has not been completed (step S913: No), the process returns to step S910.
  • step S913 Yes
  • the CPU 301 transmits the processing result of the processing started in step S909 to the portable terminal N that becomes the master terminal of the group to which it belongs (step S914). ), The process returns to step S903. That is, the CPU 301 returns to step S903 and waits for another processing request because the work area becomes usable by transmitting the processing result.
  • the CPU 301 may restore the processing result saved in the distributed shared memory area Md. Then, the CPU 301 may resume the suspended processing after waiting for the end of the synchronization wait.
  • the mobile terminal N can save the work result of the RAM 302 used for other processing by saving the processing result to the distributed shared memory area Md. Further, the portable terminal N can restore the processing result saved in the distributed shared memory area Md to the work area of the RAM 302 and resume the processing.
  • the processing result of the processing 1b in the RAM 302 is transferred to the distributed shared memory area Md. Evacuate. Thereby, the request of the process 2b in the other group G2 can be received.
  • the idle CPU 301 for other processing, the CPU utilization rate of the portable terminal N can be increased, and the processing speed of the entire group G1, G2 can be improved. Further, the suspended process 1b can be resumed by restoring the process result of the process 1b saved in the distributed shared memory area Md.
  • the data processing method described in the present embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation.
  • the data processing program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer.
  • the data processing program may be distributed via a network such as the Internet.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

 分散処理をおこなう複数のグループ(G1,G2)に所属している携帯端末(N4)は一方のグループ(G1)における分散処理(1b)を実行している。携帯端末(N4)は、一方のグループ(G1)のマスタ端末となる携帯端末(N1)から排他制御による同期待ちを通知されると、分散処理(1b)を中断してCPUをアイドル状態に移行する。ここで、携帯端末(N4)は、中断した分散処理(1b)の処理結果を分散共有メモリ領域(Md)に退避させることにより、他方のグループ(G2)における分散処理(2b)に使用するワークエリアを確保して、分散処理(2b)を実行することができる。また、携帯端末(N4)は、分散処理(2b)の終了後、分散共有メモリ領域(Md)に退避させておいた分散処理(1b)の処理結果を復帰させることにより、分散処理(1b)を再開することができる。

Description

データ処理方法、および携帯端末
 本発明は、分散処理をおこなうデータ処理方法、および携帯端末に関する。
 従来、マスタ端末が複数の携帯端末を制御して分散処理をおこなう場合、マスタ端末が接続した基地局に接続されている複数の携帯端末が、分散処理をおこなうグループとして設定される。そして、マスタ端末の制御により、グループ内の携帯端末間で分散処理をおこなう。ここで、携帯端末間でおこなわれる分散処理には、排他制御が必要な処理が含まれる。
 携帯端末間で排他制御をおこなう際には、分散処理の一方の処理が終了するまで、他方の処理を中断させる。そのため、処理を中断している携帯端末のCPU(Central Processing Unit)はアイドル状態になる。
 関連する従来技術としては、ネットワークにより接続された複数のPOS(Point of sale)装置のデータを圧縮して、バックアップ用のデータとしてそれぞれのPOS装置において保持しておく技術がある(下記、特許文献1参照)。また、グループ内の複数のCPUの負荷情報に基づいて、CPUを、他のCPUが発生させたプロセスの処理に貸し出す技術がある(下記、特許文献2参照)。また、中断した処理の処理情報を退避させるメモリ領域を自装置内に用意しておく技術がある(下記、特許文献3参照)。
特開2003-67232号公報 特開平08-77026号公報 特開昭64-076228号公報
 CPUがアイドル状態の携帯端末が、複数の基地局と接続されている携帯端末であり、複数のグループに所属している場合がある。この場合、携帯端末はCPUがアイドル状態であるので、一方のグループの分散処理の中断中に、他方のグループにおける分散処理を請け負うことができる。
 しかしながら、CPUがアイドル状態の携帯端末のメモリ上には排他制御により中断している一方のグループの分散処理の途中処理結果が存在する。ここで、CPUがアイドル状態の携帯端末のメモリサイズが小さい場合に、他方のグループの分散処理を請け負うと、中断している処理の途中処理結果が、他方のグループの分散処理の処理結果で上書きされてしまうという問題があった。
 すなわち、一方のグループの分散処理の処理結果がなくなり、携帯端末は、一方のグループの分散処理を再開することができなくなるという問題があった。
 本発明は、上述した従来技術による問題点を解消するため、メモリに保持された処理結果を保護することができるデータ処理方法、および携帯端末を提供することを目的とする。
 上述した課題を解決し、目的を達成するため、本発明の一側面によれば、複数の装置を含む第1装置グループに含まれる第1装置が第1処理の実行を中断し、複数の装置を含む第2装置グループに含まれる第2装置からの第2処理の実行要求に基づいて、第1装置グループの複数の装置のそれぞれに設定され第1装置グループの複数の装置によって共有される共有メモリに第1処理の処理情報を退避し、第2処理の実行終了に応答して、第1処理の処理情報の退避を解除するデータ処理方法、および携帯端末が提案される。
 本発明の一側面によれば、メモリに保持された処理結果を保護することができるという効果を奏する。
図1は、分散共有メモリ領域への処理結果の退避の具体例を示す説明図である。 図2は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。 図3は、実施の形態にかかる携帯端末Nのハードウェア構成例を示すブロック図である。 図4は、携帯端末による分散処理の途中処理結果の退避の具体例を示す説明図である。 図5は、携帯端末による分散共有メモリ領域に退避させた途中処理結果の復帰の具体例を示す説明図である。 図6は、携帯端末による他方のグループの処理の実行の終了の具体例を示す説明図である。 図7は、マスタ端末による分散共有メモリ領域の作成処理の詳細を示すフローチャートである。 図8は、携帯端末による分散共有メモリ領域の作成処理の詳細を示すフローチャートである。 図9は、携帯端末による分散共有メモリ領域への処理結果の退避処理の詳細を示すフローチャートである。
 以下に添付図面を参照して、この発明にかかるデータ処理方法、および携帯端末の実施の形態を詳細に説明する。
(分散共有メモリ領域への処理結果の退避の具体例)
 まず、図1を用いて、分散共有メモリ領域Mdへの処理結果の退避の具体例について説明する。
 図1は、分散共有メモリ領域への処理結果の退避の具体例を示す説明図である。ここで、基地局A1と接続されている携帯端末Nは、分散処理1をおこなう第1装置グループ(以下、「グループG1」という)に所属している。また、携帯端末N1はマスタ端末となる携帯端末Nであり、携帯端末N2~N4はスレーブ端末となる携帯端末Nである。そして、マスタ端末となる携帯端末N1は、分散処理1の処理1a,1bの依頼を、グループG1内のスレーブ端末となる携帯端末N2~N4に振り分ける。
 ここでは、携帯端末N1が分散処理1の処理1aを実行しているとする。また、携帯端末N1は、処理1bを携帯端末N4に振り分けたとする。すなわち、携帯端末N4が分散処理1の処理1bを実行しているとする。処理1bの処理結果は、携帯端末N4のメモリMに保持されている。
 一方、基地局A2と接続されている携帯端末Nは、分散処理2をおこなう第2装置グループ(以下、「グループG2」という)に所属している。また、携帯端末N7はマスタ端末となる携帯端末Nであり、携帯端末N4~N6はスレーブ端末となる携帯端末Nである。そして、マスタ端末となる携帯端末N7は、分散処理2の処理2a,2bの依頼を、グループG2内のスレーブ端末となる携帯端末N4~N6に振り分ける。
 ここでは、携帯端末N7が分散処理2の処理2aを実行しているとする。また、携帯端末N7は、処理2bをまだ振り分けておらず、分散処理2の処理2bはどの携帯端末Nにも実行されていないとする。
 ここで、携帯端末N4は、グループG1およびグループG2のどちらにも所属しており、分散処理1または分散処理2をおこなうことができる。しかしながら、携帯端末N4は、メモリ領域が小さいため、複数の処理の処理結果を同時に保持することはできないとする。
 一方、携帯端末N1~N3は、それぞれのメモリM内に分散共有メモリ領域Mdを作成しているとする。そして、携帯端末N4は、必要に応じて、処理結果を分散共有メモリ領域Mdに退避させることができるとする。
 以下では、携帯端末N1が排他制御のために、携帯端末N4に対して分散処理1の処理1bを中断するように通知した場合を例に挙げて、携帯端末N4による処理1bの処理結果の退避について説明する。
 (1)まず、携帯端末N4は、携帯端末N1との同期処理で同期待ちを検出すると、処理1bの実行を中断し、アイドル状態に移行する。そして、携帯端末N4は、グループG2に対して、アイドル状態に移行した旨を通知する。
 (2)グループG2のマスタ端末となる携帯端末N7は、携帯端末N4がアイドル状態に移行した旨の通知を受けると、携帯端末N4に対して分散処理2の処理2bの依頼を送信する。
 (3)そして、携帯端末N4は、処理2bの依頼を受信すると、中断中の処理1bの処理結果を保護し、処理2bのワークエリアを確保するために、携帯端末N1~N3のそれぞれの分散共有メモリ領域Mdに処理1bの処理結果を退避させる。
 そして、携帯端末N4は、自端末のメモリMを使用して処理2bを実行する。携帯端末N4は、処理2bが終了すると、処理2bの処理結果を携帯端末N7に送信する。その後、携帯端末N4は、携帯端末N1~N3の分散共有メモリ領域Mdに退避させた処理1bの処理結果を復帰させて、携帯端末N1からの処理1bの同期待ちの終了を待つ。
 これにより、携帯端末N4は、一方のグループG1の処理1bを中断中に、処理1bの処理結果を分散共有メモリ領域Mdに退避させることにより、他方のグループG2の処理2bに使用するワークエリアを確保することができる。そのため、携帯端末N4は、処理1bを中断中に、処理1bの処理結果を保護しつつ、他の処理2bをおこなうことができる。
 ここでは、携帯端末N4は、他方のグループ2の処理2bをおこなうために、処理1bの処理結果を分散共有メモリ領域Mdに退避させてワークエリアを確保した。しかし、携帯端末N4は、グループG1,G2以外に所属するグループの処理をおこなうために、処理1bの処理結果を分散共有メモリ領域Mdに退避させてワークエリアを確保してもよい。また、携帯端末N4は、自端末内にて発生したあらたな処理をおこなうために、処理1bの処理結果を分散共有メモリ領域Mdに退避させてワークエリアを確保してもよい。
(ネットワークシステムの一実施例)
 図2は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。図2において、ネットワークシステム200は、複数の携帯端末N(携帯端末N1~N7)、基地局A1,A2を含む構成である。ネットワークシステム200において、各携帯端末Nは、基地局A1,A2を介して接続されている。
 各携帯端末Nは、他端末と通信をおこなう無線通信装置である。また、携帯端末Nの中には、分散処理をおこなうマスタ端末となる携帯端末N1,N7がある。マスタ端末となる携帯端末N1,N7は、それぞれの携帯端末N1,N7が接続されている基地局に接続されている複数の携帯端末Nを、分散処理をおこなうグループのスレーブ端末として設定している。
 具体的には、マスタ端末となる携帯端末N1が接続されている基地局A1に接続されている携帯端末N2~N4は、分散処理をおこなうグループG1のスレーブ端末になる。また、マスタ端末となる携帯端末N7が接続されている基地局A2に接続されている携帯端末N4~N6は、分散処理2をおこなうグループG2のスレーブ端末になる。
 グループG1内の携帯端末N1~N4は、それぞれメモリMを有している。そして、グループG1内の携帯端末N1~N3は、それぞれメモリM内に分散共有メモリ領域Mdを有する。分散共有メモリ領域Mdは、グループG1内のどの携帯端末N1~N4からもアクセス可能な領域である。
 ここでは、携帯端末N4は、メモリM内に分散共有メモリ領域Mdを有していないが、分散共有メモリ領域Mdを有してもよい。また、携帯端末N1~N3は、それぞれメモリM内に分散共有メモリ領域Mdを有しているが、携帯端末N1~N3が有する分散共有メモリ領域Mdは、それぞれ異なるサイズであってもよい。
 ここでは、ネットワークシステム200は、複数の携帯端末N(携帯端末N1~N7)と基地局A1,A2を含む構成であるとした。しかし、ネットワークシステム200は、複数の携帯端末N(携帯端末N1~N7)を含むアドホックネットワークでもよく、マスタ端末となる携帯端末Nからアドホック通信可能な複数の携帯端末Nを、分散処理をおこなう1グループとしてもよい。
 アドホック通信可能な携帯端末Nとは、携帯端末N1の通信圏内にある携帯端末Nである。また、アドホック通信においては、アドホック通信のためのモジュールを通信先の携帯端末Nごとに用意して、通信をおこなう。
 また、ネットワークシステム200は、PC(Personal Computer)、携帯電話、またはPDA(Personal Digital Assistants)を含む構成のネットワークであってもよい。また、ネットワークシステム200は、基地局やゲートウェイを含む構成のネットワークであってもよい。
(携帯端末Nのハードウェア構成例)
 図3は、実施の形態にかかる携帯端末Nのハードウェア構成例を示すブロック図である。図3において、携帯端末Nは、CPU301と、RAM(Random Access Memory)302と、フラッシュメモリ303と、I/F(InterFace)304と、を備えている。CPU301~I/F304は、バス300によってそれぞれ接続されている。
 ここで、CPU301は、携帯端末Nの全体の制御を司る。RAM302は、CPU301のワークエリアとして使用される。また、RAM302には、分散共有メモリ領域Mdが作成される。すなわち、RAM302は、上述したメモリMである。フラッシュメモリ303は、プログラムを記憶している。I/F304は、基地局A1,A2を介して、他端末との情報の送受信をおこなう。
(携帯端末Nによる分散共有メモリ領域の使用例)
 次に、図4~図6を用いて、携帯端末Nによる分散共有メモリ領域Mdの使用例について説明する。以下では、図2における携帯端末N1,N4,N7を用いて説明する。すなわち、携帯端末N1は分散処理1をおこなうグループG1のマスタ端末である。携帯端末N7は分散処理2をおこなうグループG2のマスタ端末である。なお、以下では、簡単のため、各携帯端末N間の通信を介する基地局A1,A2の図示を省略する。
 携帯端末N4は、グループG1,G2に所属するスレーブ端末であり、マスタ端末となる携帯端末N1,N7からの処理依頼に基づいて、分散処理1,2を実行する。また、以下では、携帯端末N1~N3による分散共有メモリ領域Mdを、仮想的に1つの分散共有メモリ領域Mdとして示している。ただし、実際には携帯端末N1~N3の分散共有メモリ領域Mdに、処理結果を分割して退避することになる。まず、図4を用いて、携帯端末N4が途中処理結果を分散共有メモリ領域Mdに退避させる場合の具体例について説明する。
 図4は、携帯端末による分散処理の途中処理結果の退避の具体例を示す説明図である。ここで、マスタ端末となる携帯端末N1は、分散処理1の処理1a,1bの排他制御・同期処理をおこなう。すなわち、携帯端末N4は、処理1aの実行中は、処理1bを実行しない。
 (1)まず、携帯端末N4は、一方のグループG1のマスタ端末となる携帯端末N1の処理1aの処理状況から処理1bの実行待ちを検出し、実行中の処理1bを中断する。そして、携帯端末N4は、処理1bを中断すると、アイドル状態に移行する。
 (2)次に、携帯端末N4は、CPU301がアイドル状態に移行し、他の処理の受付が可能である旨の通知(以下、「処理受付可能通知」という)を、他方のグループG2のマスタ端末となる携帯端末N7に送信する。
 (3)携帯端末N4から処理受付可能通知を受信した携帯端末N7は、携帯端末N4に対して、分散処理2の処理2bの依頼を送信する。
 (4)処理2bの依頼を受信した携帯端末N4は、処理1bの途中処理結果を分散共有メモリ領域Mdに退避させ、依頼された処理2bに使用するワークエリアを確保する。(5)そして、携帯端末N4は、依頼された処理2bの実行を開始する。
 ここで、実際には、携帯端末N4は、処理1bの途中処理結果を、携帯端末N1~N3のそれぞれの分散共有メモリ領域Mdに、分割して退避する。具体的には、まず、携帯端末N4は、マスタ端末となる携帯端末N1に、退避に必要なメモリサイズ(すなわち、処理1bの途中処理結果のメモリサイズ)を通知する。マスタ端末となる携帯端末N1は、退避に必要なメモリサイズを通知されると、退避先となる携帯端末Nを、携帯端末N4に通知する。
 ただし、携帯端末N4と携帯端末N1~N3との間では、それぞれ通信速度が異なるため、退避先となる携帯端末Nの選択によって、処理1bの途中処理結果の退避・復帰に要する時間が異なることになる。そのため、携帯端末N1は、退避させる途中処理結果を有する携帯端末N4の位置情報とグループG1内の携帯端末N1~N3の位置情報とに基づいて、退避先に最適な携帯端末Nを選択して、通知するようにする。
 ここで、携帯端末N1は、例えば、携帯端末N4に近い位置にある携帯端末Nは携帯端末N4との通信速度が速いと判断して、退避先に最適な携帯端末Nとして採用することができる。また、携帯端末N1は、例えば、提供する分散共有メモリ領域Mdが大きい携帯端末Nを、退避先に最適な携帯端末Nとして採用してもよい。
 なお、携帯端末N4は、退避先となる携帯端末Nに退避させる途中処理結果を送信して、退避先となる携帯端末NのCPU301に途中処理結果の保持を依頼してもよい。また、各携帯端末Nが、DMAC(Direct Memory Access Control)が可能な構成であれば、携帯端末N4は、退避先となる携帯端末NのCPU301を介さずに、直接、途中処理結果をRAM302に書き込んでもよい。
 また、携帯端末N4は、自端末内にも分散共有メモリ領域Mdを有してもよい。そして、携帯端末N4は、携帯端末N1~N3の分散共有メモリ領域Mdの他に、自端末内の分散共有メモリ領域Mdにも途中処理結果を分割して退避させてもよい。
 これにより、携帯端末N4は、処理1bの途中処理結果を分散共有メモリ領域Mdに退避させて保護することができる。また、アイドル状態のCPU301を他の処理2bに使用し、携帯端末N4のCPU301の使用率を向上させることができる。次に、図5を用いて、携帯端末N4が、分散共有メモリ領域Mdに退避させた途中処理結果を復帰させる場合の具体例について説明する。
 図5は、携帯端末による分散共有メモリ領域に退避させた途中処理結果の復帰の具体例を示す説明図である。(1)グループG1のマスタ端末となる携帯端末N1が、処理1aの実行を終了すると、携帯端末N4はこれを検出する。(2)処理1bの排他・同期待ちの終了を検出した携帯端末N4は、実行中の処理2bの途中処理結果をグループG2のマスタ端末となる携帯端末N7に送信する。
 (3)そして、携帯端末N4は、処理2bの途中処理結果を携帯端末N7に送信することにより確保されたワークエリアに、処理1bの途中処理結果を復帰させる。(4)携帯端末N4は、復帰させた処理1bの途中処理結果に基づいて、処理1bを再開する。処理1bの途中処理結果の復帰は、図4において携帯端末N1から通知された退避先となる携帯端末Nに、携帯端末N4が処理1bの途中処理結果の送信を依頼することによりおこなわれる。また、直接、退避先となる携帯端末NのRAM302から読出してもよい。
 これにより、携帯端末N4は、携帯端末N1からの処理1bの再開の要求があった場合に、処理1bをすぐに再開することができる。次に、図6を用いて、他方のグループG2の処理2bが終了した場合の具体例について説明する。
 図6は、携帯端末による他方のグループの処理の実行の終了の具体例を示す説明図である。(1)携帯端末N4は、グループG2のマスタ端末となる携帯端末N7から依頼された処理2bの実行を終了すると、処理2bの処理結果を携帯端末N7に送信する。
 (2)そして、携帯端末N4は、CPU301がアイドル状態に戻ったため、再度、処理受付可能通知をグループG2のマスタ端末となる携帯端末N7に送信し、処理の依頼を待つ。また、処理の依頼を待つ間に、グループG1のマスタ端末となる携帯端末N1から、処理1bの再開の要求を受信した場合、処理1bを再開し、グループG2のマスタ端末となる携帯端末N7に処理受付可能通知の取消通知を送信する。
 ただし、携帯端末N4は、CPU301がアイドル状態に戻った際、処理の依頼を待たずに、処理1bの途中処理結果を復帰させてもよい。そして、CPU301は、処理1bの再開の要求を待って、処理1bを再開してもよい。
 これにより、携帯端末N4は、処理2bの実行を終了した場合に、処理2bの処理結果を携帯端末N7に送信することにより確保されたワークエリアを用いて、さらに他の処理をおこなうことができる。
(マスタ端末による分散共有メモリ領域の作成処理の詳細)
 図7は、マスタ端末による分散共有メモリ領域の作成処理の詳細を示すフローチャートである。まず、CPU301は、グループに所属しているすべての携帯端末Nの機器情報を取得する(ステップS701)。
 次に、CPU301は、分散共有メモリ領域Mdが作成可能であるか否か判定する(ステップS702)。具体的には、CPU301は、グループに所属しているすべての携帯端末Nの提供できるRAM302内のメモリサイズ(以下「提供メモリサイズ」という)の和が分散処理のいずれかの処理の処理結果のサイズの最小値以上である場合に、分散共有メモリ領域Mdが作成可能であると判定する。
 すなわち、CPU301は、分散処理のいずれかの処理の途中処理結果を退避可能なサイズでない場合、分散共有メモリ領域Mdを作成する必要がないとして、分散共有メモリ領域Mdが作成不可能であると判断する。
 ここで、分散共有メモリ領域Mdが作成可能でない場合(ステップS702:No)、CPU301は、グループに所属しているすべての携帯端末Nに、分散共有メモリ領域Mdの作成が不要である旨の通知(以下、「不作成の通知」という)を送信する(ステップS706)。そして、CPU301は、分散共有メモリ領域Mdの作成処理を終了する。
 一方、分散共有メモリ領域Mdが作成可能である場合(ステップS702:Yes)、CPU301は、グループに所属しているすべての携帯端末Nに、分散共有メモリ領域Mdの作成の通知を送信する(ステップS703)。
 そして、CPU301は、グループに所属しているすべての携帯端末Nから、分散共有メモリ領域Mdの作成完了の通知を受信したか否か判定する(ステップS704)。ここで、グループに所属しているすべての携帯端末Nから、分散共有メモリ領域Mdの作成完了の通知を受信していない場合(ステップS704:No)、CPU301は、ステップS704に戻り、完了通知の受信を待つ。
 一方、グループに所属しているすべての携帯端末Nから、分散共有メモリ領域Mdの作成完了の通知を取得した場合(ステップS704:Yes)、CPU301は、分散共有メモリ領域Mdのアドレッシングをおこなう(ステップS705)。そして、CPU301は、分散共有メモリ領域Mdの作成処理を終了する。
 アドレッシングとは、メモリの管理のためにメモリにアドレス(番地)を割り振ることであり、例えば、32ビットの値や64ビットの値がアドレスとして採用される。
 これにより、マスタ端末となる携帯端末Nは、スレーブ端末となる携帯端末Nに、分散共有メモリ領域Mdを作成させることができる。そして、マスタ端末となる携帯端末Nは、グループに所属している携帯端末Nから提供されたメモリ領域のアドレッシングをおこない、分散共有メモリ領域Mdを管理することができる。
 また、マスタ端末となる携帯端末Nは、グループに所属しているすべての携帯端末Nの提供メモリサイズの和が分散処理の処理結果のサイズの最小値以上である場合に、スレーブ端末となる携帯端末Nに、分散共有メモリ領域Mdを作成させることができる。すなわち、マスタ端末となる携帯端末Nは、分散処理の処理結果が退避可能なサイズの分散共有メモリ領域Mdが作成可能な場合のみ、スレーブ端末となる携帯端末Nに、分散共有メモリ領域Mdを作成させる。そのため、スレーブ端末は、不要な分散共有メモリ領域Mdに、RAM302を使用しなくてすむ。
(携帯端末による分散共有メモリ領域の作成処理の詳細)
 図8は、携帯端末による分散共有メモリ領域の作成処理の詳細を示すフローチャートである。
 まず、CPU301は、マスタ端末となる携帯端末Nから通知を受信したか否か判定する(ステップS801)。ここで、通知を受信していない場合(ステップS801:No)、CPU301は、ステップS801に戻り、通知を待つ。
 一方、通知を受信した場合(ステップS801:Yes)、CPU301は、受信した通知が、分散共有メモリ領域Mdの作成の通知であるか、分散共有メモリ領域Mdの不作成の通知であるかを判定する(ステップS802)。
 ここで、受信した通知が、分散共有メモリ領域Mdの不作成の通知である場合(ステップS802:不作成通知)、CPU301は、分散共有メモリ領域Mdを作成せずに、分散共有メモリ領域Mdの作成処理を終了する。なお、マスタ端末となる携帯端末Nは、不作成の通知を送信しなくてもよい。この場合、携帯端末Nは、作成の通知の有無に基づいて、分散共有メモリ領域Mdの作成の要不要を判定する。
 一方、受信した通知が、分散共有メモリ領域Mdの作成の通知である場合、(ステップS802:作成通知)、CPU301は、分散共有メモリ領域Mdとして、提供メモリサイズを保護する(ステップS803)。
 そして、CPU301は、分散共有メモリ領域Mdの作成完了の通知をマスタ端末となる携帯端末Nに送信し(ステップS804)、分散共有メモリ領域Mdの作成処理を終了する。これにより、携帯端末Nは、分散共有メモリ領域Mdを作成することができる。
(携帯端末による分散共有メモリ領域への処理結果の退避処理の詳細)
 図9は、携帯端末による分散共有メモリ領域への処理結果の退避処理の詳細を示すフローチャートである。
 まず、CPU301は、実行中の処理に関するグループのマスタ端末となる携帯端末Nから、排他制御にかかる同期待ちを検出したか否かを判定する(ステップS901)。同期待ちを検出していない場合(ステップS901:No)、CPU301は、ステップS901に戻り、同期待ちの検出を待つ。
 一方、同期待ちを検出した場合(ステップS901:Yes)、CPU301は、実行中の処理を同期待ちにして中断する。そして、CPU301は、実行中の処理に関するグループの他に所属しているグループがあるか否か判定する(ステップS902)。
 ここで、他に所属しているグループがない場合(ステップS902:No)、CPU301は、分散共有メモリ領域Mdへの処理結果の退避処理を終了する。すなわち、他に所属しているグループがなければ、中断中の処理以外の他の処理の依頼を受信することはないため、他の処理のためにワークエリアを確保する必要がない。そのため、CPU301は、RAM302内の処理結果を分散共有メモリ領域Mdへ退避させる必要はないとして、退避処理を終了する。
 一方、他に所属しているグループがある場合(ステップS902:Yes)、CPU301は、分散共有メモリ領域Mdが利用可能であるか判定する(ステップS903)。ここで、分散共有メモリ領域Mdが利用不可能である場合(ステップS903:No)、CPU301は、分散共有メモリ領域Mdへの処理結果の退避処理を終了する。
 一方、分散共有メモリ領域Mdが利用可能である場合(ステップS903:Yes)、CPU301は、退避用の分散共有メモリ領域Mdを確保し、他に所属しているグループのマスタ端末となる携帯端末Nに、処理受付可能通知を送信する(ステップS904)。
 すなわち、CPU301は、分散共有メモリ領域Mdが利用可能であるため、他に所属しているグループの分散処理をおこなうためのワークエリアを確保可能であると判定して、処理受付可能通知を送信する。
 次に、CPU301は、同期待ちが終了したか否かを判定する(ステップS905)。同期待ちの終了は、例えば、マスタ端末となる携帯端末Nからの同期待ちの解除通知を受信することによりおこなわれる。ここで、同期待ちが終了した場合(ステップS905:Yes)、他に所属しているグループのマスタ端末となる携帯端末Nに、処理受付可能通知の取消通知を送信し(ステップS906)、分散共有メモリ領域Mdへの処理結果の退避処理を終了する。
 すなわち、同期待ちの終了により、CPU301は、中断中の処理を再開するため、他に所属しているグループの分散処理をおこなうためのワークエリアを確保できなくなる。そのため、CPU301は、処理受付可能通知の取消通知を、他に所属しているグループのマスタ端末となる携帯端末Nに送信する。
 一方、同期待ちが終了していない場合(ステップS905:No)、CPU301は、他に所属しているグループのマスタ端末となる携帯端末Nからの処理依頼を受信したか否かを判定する(ステップS907)。ここで、処理依頼を受信していない場合(ステップS907:No)、ステップS905に戻る。
 一方、処理依頼を受信した場合(ステップS907:Yes)、CPU301は、分散共有メモリ領域Mdに途中処理結果を退避させる(ステップS908)。これにより、CPU301は、処理依頼にかかる処理のためのワークエリアを確保する。そして、CPU301は、処理依頼に基づいて、処理を開始する(ステップS909)。
 次に、CPU301は、同期待ちが終了したか否かを判定する(ステップS910)。同期待ちの終了は、例えば、マスタ端末となる携帯端末Nからの同期待ちの解除通知を受信することによりおこなわれる。
 ここで、同期待ちが終了した場合(ステップS910:Yes)、CPU301は、他に所属しているグループのマスタ端末となる携帯端末Nに、ステップS909にて開始した処理の処理結果を送信する(ステップS911)。
 そして、CPU301は、分散共有メモリ領域Mdに退避させた処理結果を復帰させ(ステップS912)、分散共有メモリ領域Mdへの処理結果の退避処理を終了する。すなわち、CPU301は、ステップS909にて開始した処理の処理結果を送信して、同期待ちにより中断していた処理のためのワークエリアを確保する。そして、CPU301は、分散共有メモリ領域Mdに退避させた処理結果を復帰させて、中断していた処理を再開する。
 一方、同期待ちが終了していない場合(ステップS910:No)、CPU301は、ステップS909にて開始した処理が終了したか否かを判定する(ステップS913)。ここで、処理が終了していない場合(ステップS913:No)、ステップS910に戻る。
 一方、処理が終了した場合(ステップS913:Yes)、CPU301は、他に所属しているグループのマスタ端末となる携帯端末Nに、ステップS909にて開始した処理の処理結果を送信し(ステップS914)、ステップS903に戻る。すなわち、CPU301は、処理結果の送信によりワークエリアが使用可能になったため、ステップS903に戻り、別の処理依頼を待つ。
 ただし、ステップS909にて開始した処理の終了に伴って、CPU301は、分散共有メモリ領域Mdに退避させた処理結果を復帰させてもよい。そして、CPU301は、同期待ちの終了を待って、中断していた処理を再開してもよい。
 これにより、携帯端末Nは、処理結果を分散共有メモリ領域Mdに退避させて、他の処理に使用するRAM302のワークエリアを確保することができる。また、携帯端末Nは、分散共有メモリ領域Mdに退避させた処理結果をRAM302のワークエリアに復帰させて、処理を再開することができる。
 以上説明したように、データ処理方法、および携帯端末Nによれば、一方のグループG1の処理1bが中断されCPU301がアイドル状態になると、RAM302内の処理1bの処理結果を分散共有メモリ領域Mdに退避させる。これにより、他方のグループG2における処理2bの依頼を受け付けることができる。
 すなわち、アイドル状態のCPU301を他の処理に使用することで、携帯端末NのCPU利用率を上昇させることができ、グループG1,G2全体での処理速度を向上させることができる。また、分散共有メモリ領域Mdに退避させた処理1bの処理結果を復帰させることにより、中断した処理1bを再開することができる。
 なお、本実施の形態で説明したデータ処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本データ処理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本データ処理プログラムは、インターネット等のネットワークを介して配布してもよい。
 G1,G2 グループ
 N,N1~N7 携帯端末
 N1,N7 マスタ端末となる携帯端末
 1,2 分散処理
 301 CPU
 302 RAM
 Md 分散共有メモリ領域

Claims (9)

  1.  複数の装置を含む第1装置グループに含まれる第1装置が第1処理の実行を中断し、
     複数の装置を含む第2装置グループに含まれる第2装置からの第2処理の実行要求に基づいて、前記第1装置グループの複数の装置のそれぞれに設定され前記第1装置グループの複数の装置によって共有される共有メモリに前記第1処理の処理情報を退避し、
     前記第2処理の実行終了に応答して、前記第1処理の処理情報の退避を解除すること
     を特徴とするデータ処理方法。
  2.  前記第1装置は前記第2装置グループにも含まれること
     を特徴とする請求項1に記載のデータ処理方法。
  3.  前記第1装置は、前記第1処理または前記第2処理の実行で使用される第1メモリ領域を含み、前記第2処理の実行終了に応答して前記第1処理の処理情報を前記第1メモリ領域に移すこと
     を特徴とする請求項1または請求項2に記載のデータ処理方法。
  4.  前記第1装置グループは第1基地局と通信可能であり、
     前記第2装置グループは第2基地局と通信可能であること
     を特徴とする請求項1乃至請求項3の何れか一に記載のデータ処理方法。
  5.  前記第1装置グループはアドホック通信の第1ネットワークに含まれ、
     前記第2装置グループはアドホック通信の第2ネットワークに含まれること
     を特徴とする請求項1乃至請求項3の何れか一に記載のデータ処理方法。
  6.  前記第1装置は、前記第1装置グループの第3装置からの同期要求に基づいて前記第1処理の実行を中断すること
     を特徴とする請求項1乃至請求項5の何れか一に記載のデータ処理方法。
  7.  前記第1装置は、前記第3装置からの解除通知に基づいて、中断した前記第1処理の実行を開始すること
     を特徴とする請求項6に記載のデータ処理方法。
  8.  前期第1装置グループに含まれる第1装置が第1グループに所属しているすべての装置の提供メモリサイズの和が分散処理のサイズの最小値以上である場合に、
     比較処理結果に基づいて前記共有メモリを設定すること
     を特徴とする請求項1乃至請求項7の何れか一に記載のデータ処理方法。
  9.  複数の装置を含む第1装置グループに含まれる第1装置が第1処理の実行を中断し、
     複数の装置を含む第2装置グループに含まれる第2装置からの第2処理の実行要求に基づいて、前記第1装置グループの複数の装置のそれぞれに設定され前記第1装置グループの複数の装置によって共有される共有メモリに前記第1処理の処理情報を退避し、
     前記第2処理の実行終了に応答して、前記第1処理の処理情報の退避を解除すること
     を特徴とする携帯端末。
PCT/JP2011/058143 2011-03-30 2011-03-30 データ処理方法、および携帯端末 WO2012131961A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2011/058143 WO2012131961A1 (ja) 2011-03-30 2011-03-30 データ処理方法、および携帯端末
JP2013506961A JPWO2012131961A1 (ja) 2011-03-30 2011-03-30 データ処理方法、および携帯端末
US14/041,566 US20140032700A1 (en) 2011-03-30 2013-09-30 Data processing method and mobile terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/058143 WO2012131961A1 (ja) 2011-03-30 2011-03-30 データ処理方法、および携帯端末

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/041,566 Continuation US20140032700A1 (en) 2011-03-30 2013-09-30 Data processing method and mobile terminal

Publications (1)

Publication Number Publication Date
WO2012131961A1 true WO2012131961A1 (ja) 2012-10-04

Family

ID=46929784

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/058143 WO2012131961A1 (ja) 2011-03-30 2011-03-30 データ処理方法、および携帯端末

Country Status (3)

Country Link
US (1) US20140032700A1 (ja)
JP (1) JPWO2012131961A1 (ja)
WO (1) WO2012131961A1 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164255A (ja) * 2002-11-13 2004-06-10 Nec Soft Ltd 分散コンピューティングシステム
JP2005095601A (ja) * 2003-09-01 2005-04-14 Sony Computer Entertainment Inc ネットワークゲーム端末、ゲームサーバ、ネットワークゲーム端末で実行される方法及び記録媒体
JP2008048304A (ja) * 2006-08-21 2008-02-28 Nec Corp 通信システム、アドホック通信方法、携帯端末装置および基地局装置
JP2008113782A (ja) * 2006-11-02 2008-05-22 Namco Bandai Games Inc サーバシステム
JP2008191787A (ja) * 2007-02-01 2008-08-21 Taito Corp モバイル端末、並列処理制御プログラム
JP2009135869A (ja) * 2007-11-05 2009-06-18 Ntt Docomo Inc 管理装置、通信端末、グループ通信システム、グループ管理方法、通信端末の制御方法
JP2011010267A (ja) * 2009-05-26 2011-01-13 Sony Corp 無線通信装置、推定サーバ、無線通信方法および推定方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003067201A (ja) * 2001-08-30 2003-03-07 Hitachi Ltd コントローラとオペレーティングシステム
US8161453B2 (en) * 2004-11-16 2012-04-17 Rabih Chrabieh Method and apparatus for implementing task management of computer operations
US7676483B2 (en) * 2005-09-26 2010-03-09 Sap Ag Executable task modeling systems and methods
US20080080530A1 (en) * 2006-09-29 2008-04-03 Microsoft Corporation Multiple peer groups for efficient scalable computing
US8423414B2 (en) * 2008-02-12 2013-04-16 International Business Machines Corporation Method and system for pausing, migrating, and restarting retail point-of-sale transactions

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164255A (ja) * 2002-11-13 2004-06-10 Nec Soft Ltd 分散コンピューティングシステム
JP2005095601A (ja) * 2003-09-01 2005-04-14 Sony Computer Entertainment Inc ネットワークゲーム端末、ゲームサーバ、ネットワークゲーム端末で実行される方法及び記録媒体
JP2008048304A (ja) * 2006-08-21 2008-02-28 Nec Corp 通信システム、アドホック通信方法、携帯端末装置および基地局装置
JP2008113782A (ja) * 2006-11-02 2008-05-22 Namco Bandai Games Inc サーバシステム
JP2008191787A (ja) * 2007-02-01 2008-08-21 Taito Corp モバイル端末、並列処理制御プログラム
JP2009135869A (ja) * 2007-11-05 2009-06-18 Ntt Docomo Inc 管理装置、通信端末、グループ通信システム、グループ管理方法、通信端末の制御方法
JP2011010267A (ja) * 2009-05-26 2011-01-13 Sony Corp 無線通信装置、推定サーバ、無線通信方法および推定方法

Also Published As

Publication number Publication date
JPWO2012131961A1 (ja) 2014-07-24
US20140032700A1 (en) 2014-01-30

Similar Documents

Publication Publication Date Title
KR101798369B1 (ko) 휴대용 디바이스에서 동기적 태스크 디스패치를 위한 시스템 및 방법
KR102245247B1 (ko) 트리거된 동작을 이용하는 gpu 원격 통신
US9021217B2 (en) Communication apparatus, load distribution method, and recording medium
US20130151747A1 (en) Co-processing acceleration method, apparatus, and system
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
CN113939805A (zh) 一种进程间通信的方法及系统
WO2014148174A1 (ja) 電子機器
CN110825690B (zh) 多核处理器的核间通信方法及装置
JP2015097106A (ja) マルチスレッドシステムの中でイベントを設定するための技術
US20110107344A1 (en) Multi-core apparatus and load balancing method thereof
WO2017056725A1 (ja) 車載制御装置
WO2013154541A1 (en) Remote direct memory access with reduced latency
CN104424033A (zh) 一种电子设备及数据处理方法
WO2016033755A1 (zh) 任务处理装置、电子设备及方法
CN103823712A (zh) 一种多cpu虚拟机系统的数据流处理方法和装置
JP4412369B2 (ja) 分散型処理システム、分散型処理方法、端末、及び、プログラム
WO2013154540A1 (en) Continuous information transfer with reduced latency
CN102117261B (zh) 一种芯片内部处理器之间的通信方法
CN111427806A (zh) 一种双核amp系统共用串口的方法、存储介质及智能终端
JPWO2012081085A1 (ja) 割込み要因管理装置及び割込み処理システム
EP4387207A1 (en) Communication method based on user-mode protocol stack, and corresponding apparatus
WO2012131961A1 (ja) データ処理方法、および携帯端末
JP5783348B2 (ja) 制御装置、制御プログラム、画像形成装置
KR20150054636A (ko) 복수의 전자 디바이스 사이에서 애플리케이션을 공유하는 방법 및 전자 디바이스
US20120066415A1 (en) Methods and systems for direct memory access (dma) in-flight status

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: 11862544

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013506961

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11862544

Country of ref document: EP

Kind code of ref document: A1