WO2012164695A1 - データ共有方法およびデータ処理システム - Google Patents

データ共有方法およびデータ処理システム Download PDF

Info

Publication number
WO2012164695A1
WO2012164695A1 PCT/JP2011/062544 JP2011062544W WO2012164695A1 WO 2012164695 A1 WO2012164695 A1 WO 2012164695A1 JP 2011062544 W JP2011062544 W JP 2011062544W WO 2012164695 A1 WO2012164695 A1 WO 2012164695A1
Authority
WO
WIPO (PCT)
Prior art keywords
terminal
data
data processing
processing device
memory
Prior art date
Application number
PCT/JP2011/062544
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/062544 priority Critical patent/WO2012164695A1/ja
Priority to JP2013517753A priority patent/JP5641137B2/ja
Publication of WO2012164695A1 publication Critical patent/WO2012164695A1/ja
Priority to US14/090,954 priority patent/US9553928B2/en

Links

Images

Classifications

    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0251Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity
    • H04W52/0254Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity detecting a user operation or a tactile contact or a motion of the device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Definitions

  • the present invention relates to a data sharing method and a data processing system.
  • the memory resources to be mounted are limited. For this reason, there may be a situation where the memory capacity is insufficient when a business application or the like is used.
  • An object of the present invention is to provide a data sharing method and a data processing system capable of stabilizing processing by memory sharing in order to solve the above-described problems caused by the prior art.
  • a first data processing device among a plurality of data processing devices sharing data has a shortage of memory capacity, a remaining battery capacity.
  • Change, change in relative position of the plurality of data processing devices with respect to the second data processing device, change in communication speed with the second data processing device, or interruption of communication with the second data processing device A data sharing method and a data processing system for transmitting the data sharing portion of the first data processing device to the third data processing devices of the plurality of data processing devices when detecting the data are proposed.
  • FIG. 1-1 is a diagram of an example of a communication system according to an embodiment.
  • FIG. 1B is a diagram illustrating task data transfer by a terminal on the memory providing side.
  • FIG. 1-3 is a diagram illustrating an example of a state table shared between terminals.
  • FIG. 1-4 is a diagram illustrating an example of a change in the state table.
  • FIG. 2 is a diagram illustrating task data transfer due to a decrease in communication speed.
  • FIG. 3 is a diagram showing task data transfer by increasing the relative position.
  • FIG. 4-1 is a diagram (part 1) illustrating task data transfer due to a shortage of remaining battery power.
  • FIG. 4B is a diagram (part 2) illustrating task data transfer due to a shortage of remaining battery power.
  • FIG. 1B is a diagram illustrating task data transfer due to a shortage of remaining battery power.
  • FIG. 5A is a diagram (part 1) illustrating task data transfer due to communication disconnection.
  • FIG. 5B is a diagram (part 2) of task data transfer due to communication disconnection.
  • FIG. 6 is a diagram illustrating a hardware configuration example of the terminal.
  • FIG. 7 is a diagram illustrating a functional configuration example of the terminal.
  • FIG. 8A is a flowchart (part 1) illustrating an example of processing by the operating system.
  • FIG. 8B is a flowchart (part 2) illustrating an example of processing by the operating system.
  • FIG. 9 is a diagram illustrating an example of processing for swapping task data of the terminal itself.
  • FIG. 10 is a flowchart illustrating an example of processing for transferring task data of another terminal to another terminal when memory is insufficient.
  • FIG. 10 is a flowchart illustrating an example of processing for transferring task data of another terminal to another terminal when memory is insufficient.
  • FIG. 11 is a flowchart illustrating an example of processing at the time of a state change between terminals.
  • FIG. 12 is a flowchart illustrating an example of response processing to a provision request signal.
  • FIG. 13 is a flowchart illustrating an example of processing when the remaining battery level is reduced.
  • FIG. 14 is a flowchart illustrating an example of processing when an access occurs.
  • FIG. 15 is a flowchart illustrating an example of processing upon detection of disconnection.
  • FIG. 1-1 is a diagram of an example of a communication system according to an embodiment.
  • the communication system 100 shown in FIG. 1-1 includes terminals # 1 to # 4.
  • Terminals # 1 to # 4 are connected to each other by wireless communication such as ad hoc communication.
  • Terminals # 1 to # 4 are a plurality of data processing devices that perform memory sharing for sharing data such as task data.
  • FIGS. 1-1 and 1-2 as an example of memory sharing, at least a part of task data used for a task of terminal # 1 (second data processing apparatus) is stored in any of the memories of terminals # 2- # 4.
  • the memory sharing held in will be described.
  • FIG. 1-1 it is assumed that a shortage of memory (memory resources) is detected in the terminal # 1.
  • the memory used by the task to be executed is stored in the memory of the terminal # 1.
  • the terminal # 1 detects a memory shortage by comparing the amount of memory used by the task to be executed with the available memory capacity of the terminal # 1.
  • terminal # 1 When terminal # 1 detects a memory shortage, terminal # 1 selects a terminal (request destination terminal) that performs memory sharing from among connected terminals # 2 to # 4. For example, the terminal # 1 acquires information indicating each communication quality between the terminal # 1 and the terminals # 2 to # 4.
  • the communication quality is, for example, communication speed or communication intensity.
  • the communication strength for example, RSSI (Receive Signal Strength Indicator: received signal strength) can be used.
  • Terminal # 1 selects, for example, a terminal having the highest communication quality (high communication speed and communication strength) with terminal # 1 among terminals # 2 to # 4 as a request destination terminal. Thereby, task data (data) transmission / reception processing in memory sharing can be performed at high speed.
  • the terminal # 1 selects the terminal # 2 (first data processing device) as the request destination terminal.
  • Terminal # 1 transmits at least part of the task data used for the task of terminal # 1 to the selected terminal # 2. Also, terminal # 1 deletes the data transmitted to terminal # 2 from the memory of terminal # 1.
  • Terminal # 2 holds the task data received from terminal # 1 in the memory of terminal # 2.
  • terminal # 1 accesses the task data held in the memory of terminal # 2 by communicating with terminal # 2 To do. In this way, the terminal # 2 can share the memory for providing the memory to the terminal # 1, and the memory usage can be distributed to the terminals # 1 and # 2.
  • Fig. 1-2 is a diagram showing task data transfer by the terminal on the memory providing side. 1-2, parts similar to those depicted in FIG. 1-1 are given the same reference numerals and description thereof is omitted. Due to a change in the state of terminal # 2 (memory lending side) that holds data of terminal # 1 (see, for example, FIGS. 2 to 5-2), terminal # 1 cannot collect its own task data from terminal # 2 Suppose you are in a certain situation with fear.
  • the predetermined situation is, for example, a situation in which terminal # 2 detects a lack of memory capacity. Insufficient memory capacity is detected, for example, when the memory capacity of terminal # 2 is smaller than the capacity of task data transmitted from terminal # 1.
  • the predetermined situation may be a situation where the terminal # 2 detects a change in the remaining battery level of the terminal # 2 (see, for example, FIGS. 4-1 and 4-2).
  • the change in the remaining battery level is, for example, a decrease in the remaining battery level.
  • the decrease in the remaining battery level is, for example, that the remaining battery level falls below a threshold value.
  • the predetermined situation may be a situation in which terminal # 2 detects a change in relative position with respect to terminal # 1 among terminals # 1 to # 4 (see, for example, FIG. 3).
  • the relative position is, for example, a distance between terminals determined by the relative position of each terminal.
  • the change in the relative position is, for example, an increase in the relative position.
  • the increase in the relative position is, for example, that when the relative position is measured periodically, the increase amount of the relative position measured this time with respect to the previously measured relative position is equal to or greater than a threshold value.
  • the predetermined situation may be a situation where the terminal # 2 detects a change in communication speed with the terminal # 1 (see, for example, FIG. 2).
  • the change in the communication speed is, for example, a decrease in the communication speed.
  • the decrease in the communication speed is that the amount of decrease in the communication speed measured this time with respect to the communication speed measured last time is equal to or greater than a threshold value.
  • the predetermined situation may be a situation where the terminal # 2 detects a disconnection (disconnection) of communication with the terminal # 1 (see, for example, FIGS. 5-1 and 5-2).
  • the communication interruption may be the communication interruption for a predetermined time or longer, and the communication interruption shorter than the predetermined time may be excluded.
  • the terminal # 2 is not limited to the configuration that detects all of the predetermined situations described above, and may be configured to detect at least one of the predetermined situations described above.
  • the terminal # 2 transfers the task data shared part of the terminal # 1 included in the terminal # 2 to the terminal # 3 or the terminal # 4 (third data in the terminals # 1 to # 4). Transfer (send) to the processing device.
  • terminal # 2 transfers the task data of terminal # 1 to the terminal having the highest communication speed with terminal # 1 among terminals # 3 and # 4.
  • terminal # 2 transfers task data to a terminal (data processing device) communicating with terminal # 1 using task data related to memory sharing among terminals # 1 to # 4. Also good.
  • the terminal # 2 transfers the task data of the held terminal # 1 to the terminal # 4.
  • Terminal # 4 holds the task data of terminal # 1 received from terminal # 2 in the memory of terminal # 4. Further, terminal # 4 holds the task data of terminal # 1, and transmits a sharing start signal for notifying the start of memory sharing with terminal # 1 to terminal # 1. Thereby, the terminal # 1 can recognize that the terminal # 4 holds the task data transmitted to the terminal # 2. When access to the task data transmitted to terminal # 2 occurs in the task of terminal # 1, terminal # 1 communicates with terminal # 4 to access the task data held in the memory of terminal # 4 To do.
  • the terminal # 1 transfers the data to the terminal # 2.
  • it may be swapped to the storage of its own terminal. In this way, the shared part of the task data may be transmitted to the other terminal based on the comparison result between the communication speed and the speed at which the task data is stored in the storage.
  • FIG. 1-3 is a diagram illustrating an example of a state table shared between terminals.
  • the state table 130 illustrated in FIG. 1-3 is an example of information shared by the terminals # 1 to # 4.
  • the state table 130 indicates “communication speed”, “relative position change tendency”, and “communication speed change tendency” between the terminals # 1 to # 4.
  • the terminals # 1 to # 4 periodically measure the communication speed and relative position between the other terminals of the terminals # 1 to # 4 and the own terminal, and transmit / receive the measurement results to / from the state table. 130 is shared.
  • the “relative position change tendency” is information indicating whether the relative position has increased or decreased since the previous measurement. For example, when the measured relative position has increased by a predetermined threshold or more from the previous measurement, the “relative position change tendency” becomes “increase”. Further, when the measured relative position has decreased by a predetermined threshold or more from the previous measurement, the “relative position change tendency” becomes “decrease”.
  • the relative position is, for example, the distance between terminals.
  • the distance between the terminals can be calculated based on, for example, the respective position coordinates of the other terminal and the own terminal acquired.
  • the position coordinates of the own terminal can be acquired by, for example, GPS (Global Positioning System: Global Positioning System).
  • GPS Global Positioning System: Global Positioning System
  • the position coordinates of the other terminal can be acquired by receiving information indicating the position coordinates acquired by the other terminal by GPS from the other terminal.
  • the communication speed change trend is information indicating whether the communication speed has increased or decreased since the previous measurement. For example, when the measured communication speed has increased by a predetermined threshold or more from the previous measurement, the “communication speed change tendency” becomes “increase”. Further, when the measured communication speed has decreased by a predetermined threshold or more from the previous measurement, the “communication speed change tendency” becomes “decrease”.
  • terminal # 1 when terminal # 1 detects a shortage of its own memory, based on state table 130, terminal # 1 selects the terminal with the highest communication speed with itself as the request terminal for memory sharing. For example, when B among “A to E” of “communication speed” in the status table 130 is the maximum, terminal # 1 transmits its own task data to terminal # 2 (see, for example, FIG. 1-1). . As described above, the terminal # 1 may acquire each communication speed with the other connected terminals, and may select as a request terminal for memory sharing based on the acquired communication speed.
  • state table 130 indicates a connection relationship between terminals in the communication system 100.
  • the state table 130 shown in FIG. 1-3 indicates that the terminals # 1 to # 4 are connected to each other.
  • FIG. 1-4 is a diagram illustrating an example of a change in the state table. 1-4, the description of the same parts as those shown in FIG. 1-3 is omitted.
  • the status table shared by terminals # 1 to # 4 is, for example, the status table 130 shown in FIG. Specifically, the “communication speed change tendency” between the terminal # 1 and the terminal # 2 is “decrease”. Further, the “relative position change tendency” between the terminal # 1 and the terminal # 2 is “increase”, and the communication speed between the terminal # 1 and the terminal # 2 is B ′ (B ′ ⁇ B).
  • FIG. 2 is a diagram illustrating task data transfer due to a decrease in communication speed.
  • the same parts as those shown in FIG. 1-1 are denoted by the same reference numerals and description thereof is omitted.
  • a graph 200 illustrated in FIG. 2 is a diagram illustrating an example of a change in communication speed between the terminal # 1 and the terminal # 2.
  • the horizontal axis indicates time
  • the vertical axis indicates communication speed.
  • the reduction rate 201 of the communication speed between the terminal # 1 and the terminal # 2 in the period T exceeds the threshold value.
  • the “communication speed change tendency” between the terminal # 1 and the terminal # 2 in the state table 130 becomes “decrease”.
  • FIG. 3 is a diagram showing task data transfer by increasing the relative position.
  • a graph 300 illustrated in FIG. 3 is a diagram illustrating an example of a change in the relative position 301 between the terminal # 1 and the terminal # 2.
  • the horizontal axis indicates time
  • the vertical axis indicates the relative position 301.
  • the increase amount 302 of the relative position 301 between the terminal # 1 and the terminal # 2 in the period T exceeds the threshold value.
  • the “relative position change tendency” between the terminal # 1 and the terminal # 2 in the state table 130 is “increase”.
  • the terminal # 2 has a decrease amount of the communication speed between the terminal # 1 and the terminal # 2 in the predetermined period equal to or greater than the threshold and the relative position 301 between the terminal # 1 and the terminal # 2.
  • the amount of increase in (distance) in a predetermined period is equal to or greater than the threshold
  • the task data of terminal # 1 is transferred to another terminal.
  • the terminal # 1 cannot collect the task data of the terminal # 1 due to a decrease in the communication speed between the terminal # 1 and the terminal # 2 and an increase in the relative position 301 between the terminal # 1 and the terminal # 2. You can avoid that.
  • Fig. 4-1 is a diagram (part 1) showing task data transfer due to insufficient battery power. 4A, the same parts as those shown in FIG. 1A are denoted by the same reference numerals and description thereof is omitted.
  • a graph 410 illustrated in FIG. 4A illustrates an example of the remaining battery capacity 401 and the transmission power 402 of the terminal # 2.
  • Transmission power 402 is an approximate amount of power used when terminal # 2 transmits the task data of terminal # 1 to another terminal (for example, terminal # 1).
  • the terminal # 2 transmits the task data of the terminal # 1 to the terminal # Transfer to 4.
  • the memory of the terminal # 2 stores correspondence information (for example, a function or a table) between the amount of task data to be transmitted and the amount of power used to transmit the task data.
  • correspondence information for example, as the amount of task data to be transmitted increases, the amount of power used for transmitting task data increases.
  • Terminal # 2 can obtain transmission power 402 by deriving the amount of power based on the amount of task data held by terminal # 1 and the corresponding information. In this way, by using the amount of task data held by terminal # 1, it is possible to acquire transmission power 402 that increases as the amount of task data held by terminal # 1 increases.
  • the terminal # 2 transfers the task data of the terminal # 1 based on the remaining battery capacity 401 and the transmission power 402 used when the terminal # 2 transmits the task data of the terminal # 1. .
  • the task data of terminal # 1 can be transferred to another terminal before the remaining battery power for transmitting task data of terminal # 1 in response to an access request from terminal # 1 is exhausted. Thereby, it can be avoided that the terminal # 1 cannot collect the task data of the terminal # 1 due to the shortage of the remaining battery level of the terminal # 2.
  • Fig. 4-2 is a diagram (part 2) showing the transfer of task data due to insufficient battery power.
  • FIG. 4B the same parts as those shown in FIG. A graph 420 illustrated in FIG. 4B illustrates an example of the remaining battery capacity 401, the task power 404, and the transmission power 402 of the terminal # 2.
  • the task power 404 is an approximate amount of power used when the terminal # 2 completes the task being executed.
  • the terminal # 2 transfers the task data of the terminal # 1 to the terminal # 4 when the difference 405 between the sum of the task power 404 and the transmission power 402 and the remaining battery charge 401 is equal to or less than the threshold value.
  • the amount of power used by the task being executed is stored in the memory of terminal # 2.
  • the terminal # 2 can acquire the task power 404 by acquiring the power corresponding to the task being executed from the memory.
  • the terminal # 2 is used when the remaining battery capacity 401, the transmission power 402 used when the terminal # 2 transmits the task data of the terminal # 1, and the terminal # 2 completes the task.
  • the task data of terminal # 1 may be transferred based on task power 404. As a result, it is possible to transfer the task data of terminal # 1 to another terminal while leaving the remaining battery charge for completing the task being executed. For this reason, it can be avoided that the task being executed cannot be completed after the task data of terminal # 1 is transferred to another terminal.
  • Fig. 5-1 is a diagram (part 1) showing task data transfer due to communication disconnection.
  • 5A the same parts as those shown in FIG. 1A are denoted by the same reference numerals and description thereof is omitted.
  • a graph 510 illustrated in FIG. 5A illustrates an example of a change in communication speed between the terminal # 1 and the terminal # 2. As shown in the graph 510, it is assumed that the communication between the terminal # 1 and the terminal # 2 is disconnected at the time t during the memory sharing between the terminal # 1 and the terminal # 2.
  • Terminal # 2 can detect the disconnection of communication between terminal # 1 and terminal # 2 based on the communication speed between terminal # 1 and terminal # 2, for example. For example, the terminal # 2 transfers the task data of the terminal # 1 to the terminal # 4 when detecting the disconnection of the communication between the terminal # 1 and the terminal # 2. Thereby, it is possible to avoid that the terminal # 1 cannot collect the task data of the terminal # 1 due to the disconnection of the communication between the terminal # 1 and the terminal # 2.
  • FIG. 5B is a diagram (part 2) showing the transfer of task data due to the disconnection of communication.
  • FIG. 5B the same parts as those shown in FIG. 5A are denoted by the same reference numerals and description thereof is omitted.
  • a graph 520 illustrated in FIG. 5B illustrates an example of a change in communication speed between the terminal # 1 and the terminal # 2. As shown in the graph 520, it is assumed that communication between the terminal # 1 and the terminal # 2 is temporarily disconnected at the time t1 while the memory is shared between the terminal # 1 and the terminal # 2.
  • the terminal # 2 waits for a predetermined time, and the communication between the terminal # 1 and the terminal # 2 is recovered during the standby. In this case, the task data of terminal # 1 is not transferred. Thereby, when the communication between the terminal # 1 and the terminal # 2 is restored, the memory sharing can be resumed without transferring the task data of the terminal # 1 to the terminal # 4. For this reason, an increase in processing such as transfer of task data to the terminal # 4 can be suppressed.
  • the terminal # 2 sends the task data of the terminal # 1 to the terminal # 4 as shown in FIG. Forward to. Thereby, it is possible to avoid that the terminal # 1 cannot collect the task data of the terminal # 1 due to the disconnection of the communication between the terminal # 1 and the terminal # 2.
  • FIG. 6 is a diagram illustrating a hardware configuration example of the terminal.
  • Each of the terminals # 1 to # 4 can be realized by, for example, the data processing device 600 shown in FIG.
  • the data processing device 600 includes a central processing unit 601 (CPU: Central Processing Unit), a random access memory 602 (RAM: Random Access Memory), a storage 603, and a wireless unit 604.
  • the central processing unit 601, the random access memory 602, the storage 603, and the wireless unit 604 are connected by a bus 620, respectively.
  • the central processing unit 601 controls the entire data processing device 600.
  • the random access memory 602 stores a program such as a boot program, a database, and the like.
  • the random access memory 602 is used as a work area for the central processing unit 601.
  • the storage 603 is an auxiliary memory that stores data according to the control of the central processing unit 601.
  • the wireless unit 604 performs communication with other terminals through a wireless communication line.
  • the wireless unit 604 is, for example, a wireless LAN adapter.
  • FIG. 7 is a diagram illustrating a functional configuration example of the terminal.
  • Each of terminals # 1 to # 4 has, for example, database 710 and operating system 720 shown in FIG.
  • the database 710 is stored in, for example, the random access memory 602 shown in FIG.
  • the database 710 includes a status table 130 (see, for example, FIGS. 1-3 and 1-4), battery level information indicating the remaining battery level of the terminal, and tasks of other terminals held in the random access memory 602 of the terminal. It is a database including memory usage information indicating data and the like.
  • the operating system 720 is realized, for example, by the central processing unit 601 shown in FIG. 6 executing a program using the random access memory 602 as a work area.
  • the operating system 720 has functions of a battery remaining amount monitoring unit 721, a location information monitoring unit 722, a communication monitoring unit 723, a memory management unit 724, a data movement determination unit 725, and an information exchange unit 726.
  • Battery remaining amount monitoring unit 721, position information monitoring unit 722, and communication monitoring unit 723 monitor the state of the terminal itself and update the database 710 based on the monitoring result.
  • the remaining battery level monitoring unit 721 is a remaining battery level monitoring unit that monitors the remaining battery level of the terminal itself and updates the remaining battery level information in the database 710 based on the monitoring result.
  • the position information monitoring unit 722 monitors the relative position between the own terminal and another terminal, and updates the “relative position change tendency” in the state table 130 of the database 710 based on the monitoring result.
  • the communication monitoring unit 723 monitors the communication speed between the own terminal and the other terminal, and updates “communication speed” and “communication speed change tendency” in the state table 130 of the database 710 based on the monitoring result.
  • the memory management unit 724 is a memory management unit that manages the capacity (memory capacity) of the random access memory 602 of its own terminal.
  • the memory management unit 724 manages memory sharing with other terminals by communicating with other terminals via the information exchange unit 726. For example, when the free capacity of the random access memory 602 of the own terminal is insufficient, the memory management unit 724 manages memory sharing that holds the task data of the own terminal in another terminal.
  • the memory management unit 724 detects a shortage of the random access memory 602.
  • the memory management unit 724 requests the data movement determination unit 725 to determine a request destination terminal for memory sharing (another terminal where the memory is used).
  • the memory management unit 724 performs memory sharing with the request destination terminal indicated by the notification result.
  • the memory management unit 724 transmits a provision request signal for requesting provision of memory to the request destination terminal, and receives a response signal from the request destination terminal for the transmitted provision request signal.
  • the memory management unit 724 transmits the task data of the own terminal to the request destination terminal.
  • the response signal indicating that the memory can be provided may include information indicating the capacity of the memory that can be provided.
  • the memory management unit 724 transmits task data having a capacity indicated by the response signal to the request destination terminal.
  • the memory management unit 724 accesses the task data in the memory of the request destination terminal by communicating with the request destination terminal.
  • the memory management unit 724 holds the task data of the other terminal in the random access memory 602 of the own terminal when there is a free space in the random access memory 602 of the own terminal and there is a request for provision of memory from the other terminal.
  • Manage memory sharing Specifically, the memory management unit 724 receives a provision request signal for requesting provision of memory from the request source terminal. Then, if there is no free space in the random access memory 602 of the own terminal, the memory management unit 724 transmits a response signal indicating that the memory cannot be provided to the request source terminal.
  • the memory management unit 724 transmits a response signal indicating that the memory can be provided to the request source terminal.
  • the response signal indicating that the memory can be provided may include information indicating the capacity of the memory that can be provided.
  • the memory management unit 724 receives the task data transmitted from the request source terminal, and holds the received task data in the random access memory 602 of the own terminal.
  • the memory management unit 724 updates the memory usage information included in the database 710 in accordance with the memory sharing process.
  • the memory usage information includes information indicating task data of other terminals held in the random access memory 602 of the own terminal. Further, the memory usage information includes information indicating another terminal (request destination terminal) holding the task data of the own terminal.
  • the memory management unit 724 transmits a sharing start signal notifying the start of memory sharing to the transmission source of the received task data. For example, in the state shown in FIG. 1-2, when the memory management unit 724 of the terminal # 4 receives the task data of the terminal # 1 from the terminal # 2, it transmits a sharing start signal to the terminal # 1.
  • the data movement determination unit 725 is a movement determination unit that detects the relative position of the own terminal with respect to the memory sharing request source terminal and monitors the communication speed with the memory sharing request source terminal. When there is a request from the memory management unit 724, the data movement determination unit 725 determines a request destination terminal for memory sharing. Determination of the request destination terminal for memory sharing can be performed based on, for example, “communication speed” indicated by the state table 130 included in the database 710. In addition, the data movement determination unit 725 holds the task data when there is a possibility that task data received and held from another terminal may not be transmitted to the transmission source due to a change in the state of the terminal itself. The task data being transferred to another terminal.
  • the data movement determining unit 725 transfers the task data of the other terminal to another terminal based on the “relative position change tendency” and the “communication speed change tendency” in the state table 130 included in the database 710. Make a decision.
  • the data movement determination unit 725 may determine transfer of task data of another terminal to another terminal based on battery remaining amount information included in the database 710.
  • the data movement determining unit 725 determines to transfer the task data of the other terminal to another terminal, the data movement determining unit 725 determines the other terminal of the transfer destination based on, for example, the “communication speed” in the state table 130. . Further, when it is determined that the task data of another terminal is transferred to another terminal, the data movement determining unit 725 requests the memory management unit 724 to transfer the task data of the other terminal to another terminal. .
  • the information exchange unit 726 relays communication between the memory management unit 724 and other terminals. Specifically, the information exchange unit 726 relays a provision request signal, a response signal, task data, a sharing start signal, and the like transmitted and received between the memory management unit 724 and another terminal.
  • the information exchange unit 726 monitors the status table 130 of the database 710, and transmits the updated content to other terminals when the content of the status table 130 is updated. In addition, the information exchange unit 726 receives the update content of the status table 130 of the other terminal from the other terminal, and updates the status table 130 of the own terminal based on the received update content. Communication with other terminals by the information exchange unit 726 is performed by the wireless unit 604 shown in FIG. 6, for example.
  • FIGS. 8A and 8B are flowcharts illustrating an example of processing by the operating system.
  • the operating system 720 of the terminal # 1 repeatedly executes the steps shown in FIGS. 8A and 8B, for example.
  • processing by terminal # 1 will be described, but processing by terminals # 2 to # 4 is the same.
  • the communication monitoring unit 723 acquires the communication speed between its own terminal (terminal # 1) and other terminals (terminals # 2 to # 4) (step S801).
  • the position information monitoring unit 722 acquires the relative position between the own terminal and another terminal (step S802).
  • the memory management unit 724 determines whether or not the memory shortage of the own terminal (the capacity of the random access memory 602) is detected (step S803).
  • the memory management unit 724 determines whether or not task data of another terminal is held in the random access memory 602 of the own terminal (step S804).
  • the determination in step S804 can be made based on the memory usage information in the database 710, for example.
  • step S804 when the task data of the other terminal is not held (step S804: No), the terminal # 1 performs a process of swapping the task data of the own terminal to the storage 603 of the own terminal or the other terminal (step S804). S805), a series of processing ends.
  • the process of swapping the task data of the own terminal will be described later (see, for example, FIG. 9).
  • step S804 if the task data of another terminal is held (step S804: Yes), terminal # 1 performs a process of transferring the held task data of the other terminal to another terminal (step S804). S806), a series of processing ends. Processing for transferring task data of another terminal to another terminal when the memory is insufficient will be described later (for example, see FIG. 10).
  • step S803 when the memory shortage of the own terminal is not detected (step S803: No), the terminal # 1 proceeds to step S807. That is, the information exchange unit 726 determines whether at least one of the communication speed and the relative position acquired in steps S801 and S802 has changed since the previous measurement (step S807). The determination in step S807 can be made based on, for example, the state table 130 (see, for example, FIGS. 2 and 3).
  • step S807 when at least one of the communication speed and the relative position is changed (step S807: Yes), update information is transmitted to another terminal (step S808). Thereby, the change in at least one of the communication speed and the relative position detected by the own terminal can be reflected in the status table 130 of the other terminal.
  • the terminal # 1 proceeds to step S811.
  • step S807 determines whether or not update information has been received from another terminal (step S809). . If update information has been received from another terminal (step S809: Yes), the received update information is transmitted to another terminal that has not received the received update information (step S810). Thereby, the content of the update information received from the other terminal can be reflected in the status table 130 of another other terminal.
  • the terminal # 1 performs processing at the time of a state change between the terminals (step S811), and ends a series of processing. Processing at the time of a state change between terminals will be described later (see, for example, FIG. 11).
  • step S809 when update information is not received from another terminal (step S809: No), terminal # 1 proceeds to each step shown in FIG. 8-2 (symbol A). That is, the memory management unit 724 determines whether or not a provision request signal from another terminal has been received (step S812). When a provision request signal from another terminal is received (step S812: Yes), the memory management unit 724 performs a response process to the received provision request signal (step S813), and ends a series of processes. Response processing for the provision request signal will be described later (see, for example, FIG. 12).
  • step S812 when the provision request signal from another terminal is not received (step S812: No), the data movement determining unit 725 determines whether or not the remaining battery level has decreased (step S814).
  • the determination in step S814 can be made based on, for example, battery remaining amount information in the database 710 (see, for example, FIGS. 4-1 and 4-2). If the remaining battery level has decreased (step S814: Yes), the terminal # 1 performs processing when the remaining battery level is decreased (step S815), and ends the series of processes. Processing when the remaining battery level is reduced will be described later (see, for example, FIG. 13).
  • step S814 if the remaining battery level has not decreased (step S814: No), the memory management unit 724 determines whether a sharing start notification signal has been received from another terminal (step S816). When the sharing start notification signal is received from the other terminal (step S816: Yes), the memory management unit 724 updates the memory usage information in the database 710 (step S817), and the series of processing ends.
  • step S816 if the sharing start notification signal has not been received from another terminal (step S816: No), whether or not the memory management unit 724 has accessed the task data of the own terminal in the task of the own terminal. Is determined (step S818).
  • the task data of the own terminal includes not only task data held in the random access memory 602 of the own terminal but also task data transmitted to other terminals and shared by the memory.
  • step S818 when access to the task data of the own terminal occurs (step S818: Yes), terminal # 1 performs the process at the time of access occurrence (step S819), and ends the series of processes. A process when an access occurs will be described later (see, for example, FIG. 14).
  • step S818: No When access to the task data of the own terminal has not occurred (step S818: No), it is determined whether or not the data movement determining unit 725 has detected the disconnection of communication with another terminal (step S820). . The determination in step S820 can be made based on the state table 130, for example (see, for example, FIGS. 5-1 and 5-2).
  • step S820 when disconnection of communication with another terminal is detected (step S820: Yes), terminal # 1 performs processing upon detection of disconnection (step S821), and ends a series of processing. The process at the time of detecting the disconnection will be described later (for example, see FIG. 15). If disconnection of communication with another terminal is not detected (step S820: No), terminal # 1 ends the series of processes.
  • each of the terminals # 1 to # 4 causes the other terminal to hold the task data of the own terminal, holds the task data of the other terminal to the own terminal, Task data can be transferred to another terminal.
  • FIG. 9 is a diagram illustrating an example of processing for swapping task data of the terminal itself.
  • the operating system 720 of the terminal # 1 executes, for example, each step illustrated in FIG. First, the memory management unit 724 has a communication speed between the own terminal (terminal # 1) and other terminals (terminals # 2 to # 4) higher than the task data swap speed (write speed) to the storage 603 of the own terminal. Whether or not (step S901).
  • the communication speed between the own terminal and the other terminal is, for example, the highest communication speed among the communication speeds included in the state table 130 of the database 710.
  • the swap speed to the storage 603 of the terminal itself is a fixed value stored in advance in the storage 603, for example.
  • step S901 when the communication speed with another terminal is equal to or lower than the swap speed (step S901: No), the memory management unit 724 swaps the task data of the own terminal to the storage 603 of the own terminal (step S902). A series of processing ends.
  • step S901: Yes when the communication speed with the other terminal is higher than the swap speed (step S901: Yes), the memory management unit 724 transmits a provision request signal to the other terminal (step S903).
  • step S903 the memory management unit 724 requests the data movement determination unit 725 to determine the other terminal of the memory usage destination, and transmits a provision request signal to the other terminal determined for the request.
  • the other terminal (request destination terminal) to which the provision request signal is transmitted for the first time is, for example, the terminal having the highest communication speed with terminal # 1 among terminals # 2 to # 4.
  • the memory management unit 724 determines whether a response signal indicating that the memory can be provided has been received (step S904).
  • the memory management unit 724 transmits the task data of the own terminal to the request destination terminal (step S905). Thereby, terminal # 1 can swap the task data of its own terminal to the request destination terminal.
  • the memory management unit 724 determines whether or not the memory shortage has been resolved by swapping the task data (step S906). Whether or not the memory shortage has been resolved can be determined, for example, based on whether or not the free capacity of the random access memory 602 of the terminal has become equal to or greater than a threshold value. If the memory shortage is resolved (step S906: Yes), terminal # 1 ends the series of processes. If the memory shortage has not been resolved (step S906: No), the process proceeds to step S907.
  • step S904 determines whether there is another terminal whose communication speed with the terminal is higher than the swap speed. It is determined whether or not (step S907). The determination in step S907 can be made based on the state table 130, for example.
  • step S907 if there is no other terminal whose communication speed with the own terminal is higher than the swap speed (step S907: No), terminal # 1 proceeds to step S902, and the task data remaining in the own terminal Are swapped to the storage 603 of the own terminal.
  • step S907: Yes the terminal # 1 returns to step S903.
  • the memory management unit 724 transmits a provision request signal to another terminal whose communication speed with the terminal is higher than the swap speed.
  • the terminal # 1 can swap the task data of the own terminal to the storage 603 of the own terminal or another terminal. Thereby, the free capacity of the random access memory 602 of the own terminal can be increased.
  • FIG. 10 is a flowchart illustrating an example of processing for transferring task data of another terminal to another terminal when memory is insufficient.
  • the operating system 720 of the terminal # 1 executes, for example, each step illustrated in FIG.
  • the memory management unit 724 determines whether there is another terminal connected to the requesting terminal of the memory sharing related to the task data that is held (step S1001). The determination in step S1001 can be made based on the state table 130, for example.
  • step S1001 when there is no other terminal connected to the request source terminal (step S1001: No), the memory management unit 724 transmits the held task data to the request source terminal (step S1002). A series of processing ends. Thereby, the task data of the request source terminal can be returned, and the free capacity of the random access memory 602 of the own terminal can be increased.
  • step S1001 when there is another terminal connected to the request source terminal (step S1001: Yes), the memory management unit 724 transfers to another terminal (request destination terminal) connected to the request source terminal. A provision request signal is transmitted (step S1003). Next, in response to the provision request signal transmitted in step S1003, the memory management unit 724 determines whether a response signal indicating that the memory can be provided has been received (step S1004).
  • step S1004 when a response signal indicating that the memory can be provided is received (step S1004: Yes), the memory management unit 724 provides the task data of the other terminal held by the own terminal in step S1003. The request signal is transferred to the request destination terminal (step S1005). Thereby, terminal # 1 can swap task data of another terminal to another other terminal.
  • step S1006 determines whether or not the memory shortage is resolved by swapping the task data in step S1005 (step S1006). If the memory shortage is resolved (step S1006: Yes), terminal # 1 ends the series of processes. If the memory shortage has not been resolved (step S1006: No), the terminal # 1 proceeds to step S1007.
  • step S1004 when the response signal indicating that the memory can be provided is not received (step S1004: No), the data movement determining unit 725 has another terminal connected to the request source terminal. Whether or not (step S1007).
  • the determination in step S1007 can be made based on the state table 130, for example.
  • step S1007 when there is no other terminal connected to the request source terminal (step S1007: No), terminal # 1 proceeds to step S1002, and the held task data is transferred to the request source terminal. return. If there is another terminal connected to the request source terminal (step S1007: Yes), the terminal # 1 returns to step S1003. In this case, the memory management unit 724 transmits a provision request signal to another terminal connected to the request source terminal.
  • terminal # 1 can transfer task data of another terminal to another terminal when memory is insufficient. As a result, the amount of memory used in terminals # 1 to # 4 can be further distributed, and memory shortage in each terminal can be suppressed. If there is no other terminal that transfers task data, the terminal # 1 can return the task data to the memory sharing request source terminal.
  • FIG. 11 is a flowchart illustrating an example of processing at the time of a state change between terminals.
  • the operating system 720 of the terminal # 1 executes, for example, each step shown in FIG.
  • the data movement determining unit 725 determines whether or not task data of another terminal is held in the random access memory 602 of the own terminal (step S1101).
  • the determination in step S1101 can be made based on the memory usage information in the database 710, for example.
  • step S1101 if task data of another terminal is not held (step S1101: No), terminal # 1 ends the series of processes. If the task data of another terminal is held (step S1101: Yes), the terminal # 1 proceeds to step S1102. That is, the data movement determining unit 725 determines whether or not the relative position with respect to the memory sharing request source terminal related to the held task data is increasing and the communication speed with the request source terminal is decreasing. Judgment is made (step S1102). The determination in step S1102 can be made based on the state table 130, for example.
  • step S1102 if the relative position with the requesting terminal of the memory sharing is not increasing or the communication speed with the requesting terminal is not decreasing (No in step S1102), the terminal # 1 performs a series of processes. finish.
  • the data movement determining unit 725 is connected to the request source terminal. It is determined whether there is another terminal (step S1103). The determination in step S1103 can be made based on the state table 130, for example.
  • step S1103 if there is no other terminal connected to the request source terminal (step S1103: No), terminal # 1 ends the series of processes. If there is another terminal connected to the request source terminal (step S1103: Yes), the terminal # 1 proceeds to step S1104. That is, the data movement determining unit 725 determines whether the communication speed between the other terminal connected to the request source terminal and the request source terminal is faster than the communication speed between the own terminal and the request source terminal. (Step S1104). The determination in step S1104 can be made based on the state table 130, for example.
  • step S1104 if it is not faster than the communication speed with the own terminal (step S1104: No), the data movement determining unit 725 returns to step S1103 and there is another terminal connected to the request source terminal. Judge whether to do. When it is faster than the communication speed with the own terminal (step S1104: Yes), the memory management unit 724 transmits a provision request signal to another terminal connected to the request source terminal (step S1105).
  • the memory management unit 724 determines whether a response signal indicating that the memory can be provided has been received (step S1106).
  • the response signal indicating that the memory can be provided has not been received (step S1106: No)
  • the data movement determination unit 725 returns to step S1103, and there is another terminal connected to the request source terminal. Judge whether to do.
  • step S1106 when a response signal indicating that the memory can be provided is received (step S1106: Yes), the memory management unit 724 transmits the provision request signal for the task data held by the terminal itself. The data is transmitted to the terminal (step S1107), and the series of processing ends. Thereby, terminal # 1 can swap task data of another terminal to another other terminal.
  • terminal # 1 transfers the task data of the request source terminal to another terminal connected to the request source terminal. Can be transferred. As a result, it is possible to avoid that the requesting terminal for sharing the memory cannot collect the task data.
  • FIG. 12 is a flowchart illustrating an example of response processing to a provision request signal.
  • the operating system 720 of the terminal # 1 executes, for example, each step illustrated in FIG.
  • the memory management unit 724 determines whether it is possible to provide the memory (random access memory 602) of the terminal itself (step S1201). The determination in step S1201 can be made based on, for example, memory usage information or battery remaining amount information in the database 710.
  • the memory management unit 724 determines that the memory of the own terminal can be provided. In addition, the memory management unit 724 determines that the memory of the terminal itself cannot be provided when the free capacity of the random access memory 602 of the terminal itself is equal to or less than the threshold value or when the remaining battery level of the terminal is equal to or less than the threshold value To do.
  • step S1201 if the memory of the terminal itself cannot be provided (step S1201: No), the memory management unit 724 transmits a response signal indicating that the memory of the terminal itself cannot be provided to the request source terminal (step S1201). S1202), a series of processing ends.
  • the request source terminal is another terminal that has transmitted the provision request signal.
  • step S1201 when the memory of the own terminal can be provided (step S1201: Yes), the memory management unit 724 transmits a response signal indicating that the memory of the own terminal can be provided to the request source terminal ( Step S1203).
  • the response signal transmitted in step S1203 may include information indicating the memory capacity that can be provided.
  • the memory management unit 724 receives task data from the request source terminal (step S1204). Next, the memory management unit 724 transmits a sharing start signal for notifying the start of memory sharing to the request source terminal (step S1205), and the series of processing ends.
  • the terminal # 1 when the terminal # 1 receives the provision request signal from the other terminal, the terminal # 1 starts memory sharing with the request source terminal if the random access memory 602 of the terminal can be provided. Can do.
  • FIG. 13 is a flowchart illustrating an example of processing when the remaining battery level is reduced.
  • the operating system 720 of the terminal # 1 executes, for example, each step illustrated in FIG.
  • the memory management unit 724 determines whether or not task data of another terminal is held in the random access memory 602 of the own terminal (step S1301). The determination in step S1301 can be made based on the memory usage information in the database 710, for example.
  • step S1301 if the task data of another terminal is not held (step S1301: No), terminal # 1 ends the series of processes.
  • the data movement determining unit 725 determines whether there is another terminal connected to the request source terminal (step S1302). The determination in step S1302 can be made based on the state table 130, for example.
  • step S1302 if there is no other terminal connected to the request source terminal (step S1302: No), terminal # 1 ends the series of processing. If there is another terminal connected to the request source terminal (step S1302: Yes), the memory management unit 724 transmits a provision request signal to the other terminal connected to the request source terminal (step S1303).
  • the memory management unit 724 determines whether a response signal indicating that the memory can be provided has been received (step S1304).
  • the response signal indicating that the memory can be provided has not been received (step S1304: No)
  • the data movement determination unit 725 returns to step S1302, and there is another terminal connected to the request source terminal. Judge whether to do.
  • step S1304 when the response signal indicating that the memory can be provided is received (step S1304: Yes), the memory management unit 724 transmits the held task data to the request destination terminal (step S1305). A series of processing ends.
  • the request destination terminal of the task data transmission destination is another terminal of the transmission destination of the provision request signal.
  • terminal # 1 can transfer the task data of the request source terminal to another terminal connected to the request source terminal when the remaining battery level is low. As a result, it is possible to avoid that the requesting terminal for sharing the memory cannot collect the task data.
  • FIG. 14 is a flowchart illustrating an example of processing when an access occurs.
  • the operating system 720 of the terminal # 1 executes, for example, each step shown in FIG.
  • the memory management unit 724 determines whether or not the own terminal holds the task data to be accessed (step S1401). The determination in step S1401 can be made based on the memory usage information in the database 710, for example.
  • the terminal # 1 accesses the task data held by the own terminal (step S1402), and ends the series of processes.
  • step S1401 when the own terminal does not hold the task data (step S1401: No), the memory management unit 724 accesses the memory of another terminal (memory sharing request destination terminal) holding the task data. It is determined whether or not it is possible (step S1403).
  • the other terminal holding the task data can be specified based on the memory usage information of the database 710, for example. If the memory of the other terminal holding the task data can be accessed (step S1403: Yes), the terminal # 1 accesses the task data of the memory of the other terminal (step S1404) and ends the series of processes. To do.
  • step S1403 when it is not possible to access the memory of another terminal (step S1403: No), terminal # 1 waits for a predetermined time (step S1405).
  • step S1405 the memory management unit 724 determines again whether or not it is possible to access the memory of another terminal holding the task data (step S1406).
  • step S1406 if it is possible to access the memory of another terminal (step S1406: Yes), terminal # 1 proceeds to step S1404. If the memory of the other terminal is not accessible (step S1406: No), the terminal # 1 starts the task processing related to the access to the task data from the initial state (step S1407), and ends the series of processing. In this case, after the access to the other terminal is enabled, the terminal # 1 may perform a process of discarding the task data of the own terminal held by the other terminal and ending the memory sharing.
  • the terminal # 1 can access the task data held in the own terminal or another terminal when access to the task data of the own terminal occurs. If another terminal holding the task data of its own terminal cannot be accessed, it tries again after waiting for a certain period of time, and when access becomes possible, it accesses the task data of the other terminal. As a result, even if the other terminal holding the task data of the terminal itself becomes temporarily inaccessible, the task data held by the other terminal can be accessed.
  • FIG. 15 is a flowchart illustrating an example of processing upon detection of disconnection.
  • the operating system 720 of the terminal # 1 executes, for example, each step shown in FIG.
  • the memory management unit 724 determines whether or not task data of another terminal that has been disconnected is held (step S1501). The determination in step S1501 can be made based on the memory usage information in the database 710, for example. If the task data of the other terminal that has been disconnected is not held (step S1501: No), terminal # 1 ends the series of processes.
  • step S1501 if the task data of another terminal (request source terminal) that has been disconnected is held (step S1501: Yes), terminal # 1 waits for a predetermined time (step S1502). Next, the data movement determining unit 725 determines whether or not the disconnected communication has been recovered (step S1503). When the disconnected communication is recovered (step S1503: Yes), the terminal # 1 ends a series of processes.
  • step S1503 determines whether there is another terminal connected to the request source terminal (step S1503). S1504). The determination in step S1504 can be made based on the state table 130, for example.
  • step S1504 when there is no other terminal connected to the request source terminal (step S1504: No), terminal # 1 ends the series of processes. If there is another terminal connected to the request source terminal (step S1504: Yes), the memory management unit 724 transmits a provision request signal to the other terminal connected to the request source terminal (step S1505).
  • the memory management unit 724 determines whether a response signal indicating that the memory can be provided has been received (step S1506).
  • the response signal indicating that the memory can be provided has not been received (step S1506: No)
  • the data movement determination unit 725 returns to step S1504, and there is another terminal connected to the request source terminal. Judge whether or not to do.
  • step S1506 when a response signal indicating that the memory can be provided is received (step S1506: Yes), the memory management unit 724 transmits the held task data to another terminal (step S1507). End the process.
  • the transmission destination of task data is the other terminal of the transmission destination of the provision request signal.
  • the terminal # 1 can transfer the task data of the request source terminal to another terminal connected to the request source terminal when the communication with the request terminal of the memory sharing is disconnected. As a result, it is possible to avoid that the requesting terminal for sharing the memory cannot collect the task data. In addition, even if the communication with the request source terminal for memory sharing is disconnected, the terminal # 1 does not transfer task data when the disconnected communication is recovered within a predetermined time. As a result, an increase in processing such as task data transfer can be suppressed.
  • the data sharing method and the data processing system based on the detection result of the state of the terminal and the communication environment, in order to avoid that the data stored by the memory sharing cannot be returned, The stored data can be transferred to another terminal. As a result, it is possible to stabilize the processing by the memory sharing even between the wireless terminals whose state and communication environment of the own terminal change every moment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

 通信システム(100)は、データを共有する複数の端末(#1~#4)を含んでいる。複数の端末(#1~#4)の中の端末(#2)は、メモリの容量の不足、電池残量の変化、複数の端末(#1~#4)の中の端末(#1)に対する相対位置の変化、端末(#1)との間の通信速度の変化、または端末(#1)との通信の遮断を検出する。端末(#2)は、検出結果に基づいて、端末(#2)が有するデータの共有部分を複数の端末(#1~#4)の端末(#4)に送信する。

Description

データ共有方法およびデータ処理システム
 本発明は、データ共有方法およびデータ処理システムに関する。
 たとえば大規模並列計算機の分野では、LAN(Local Area Network:構内通信網)などのネットワークに繋がるコンピュータ間でメモリリソースを共有するシステムが考案されている(たとえば、下記特許文献1参照。)。有線のネットワークで接続された複数の計算機でメモリリソースを共有する場合は、端末数や端末間の通信速度はほとんど変化しない。
 また、無線のネットワークで接続された携帯電話などの端末においては、搭載されるメモリリソースが限定される。このため、業務系アプリなどを利用する場合にメモリ容量が不足する状況が考えられる。
特開平11-15732号公報
 しかしながら、無線のネットワークで接続された端末間でメモリ共有を行うと、通信が不安定であるため、他端末に預けているデータにアクセスする際に、データの預け先の他端末と通信できず、データを回収できなくなることが考えられる。このため、他端末に預けたデータの処理が中断されるなど、処理が不安定になるという問題がある。
 本発明は、上述した従来技術による問題点を解消するため、メモリ共有による処理を安定させることができるデータ共有方法およびデータ処理システムを提供することを目的とする。
 上述した課題を解決し、目的を達成するため、本発明の一側面によれば、データを共有する複数のデータ処理装置の中の第1データ処理装置が、メモリの容量の不足、電池残量の変化、前記複数のデータ処理装置の中の第2データ処理装置に対する相対位置の変化、前記第2データ処理装置との間の通信速度の変化、または前記第2データ処理装置との通信の遮断を検出するときに、前記第1データ処理装置が有する前記データの共有部分を前記複数のデータ処理装置の第3データ処理装置に送信するデータ共有方法およびデータ処理システムが提案される。
 本発明の一側面によれば、メモリ共有による処理を安定させることができるという効果を奏する。
図1-1は、実施の形態にかかる通信システムの例を示す図である。 図1-2は、メモリ提供側の端末によるタスクデータの転送を示す図である。 図1-3は、端末間で共有される状態テーブルの一例を示す図である。 図1-4は、状態テーブルの変化の一例を示す図である。 図2は、通信速度の減少によるタスクデータの転送を示す図である。 図3は、相対位置の増加によるタスクデータの転送を示す図である。 図4-1は、電池残量の不足によるタスクデータの転送を示す図(その1)である。 図4-2は、電池残量の不足によるタスクデータの転送を示す図(その2)である。 図5-1は、通信の切断によるタスクデータの転送を示す図(その1)である。 図5-2は、通信の切断によるタスクデータの転送を示す図(その2)である。 図6は、端末のハードウェア構成例を示す図である。 図7は、端末の機能的構成例を示す図である。 図8-1は、オペレーティングシステムによる処理の一例を示すフローチャート(その1)である。 図8-2は、オペレーティングシステムによる処理の一例を示すフローチャート(その2)である。 図9は、自端末のタスクデータをスワップする処理の一例を示す図である。 図10は、メモリ不足時に他端末のタスクデータを別の他端末へ転送する処理の一例を示すフローチャートである。 図11は、端末間の状態変化時の処理の一例を示すフローチャートである。 図12は、提供要求信号に対する応答処理の一例を示すフローチャートである。 図13は、電池残量減少時の処理の一例を示すフローチャートである。 図14は、アクセス発生時の処理の一例を示すフローチャートである。 図15は、切断検出時の処理の一例を示すフローチャートである。
 以下に添付図面を参照して、本発明にかかるデータ共有方法およびデータ処理システムの実施の形態を詳細に説明する。
(実施の形態)
(通信システム)
 図1-1は、実施の形態にかかる通信システムの例を示す図である。図1-1に示す通信システム100は、端末#1~#4を含んでいる。端末#1~#4は、互いにアドホック通信などの無線通信によって接続されている。端末#1~#4は、タスクデータなどのデータを共有するメモリ共有を行う複数のデータ処理装置である。
 図1-1,図1-2においては、メモリ共有の一例として、端末#1(第2データ処理装置)のタスクに用いるタスクデータの少なくとも一部を端末#2~#4のいずれかのメモリに保持するメモリ共有について説明する。図1-1に示す例では、端末#1においてメモリ(メモリリソース)の不足が検出されたとする。たとえば、端末#1のメモリには、実行するタスクによるメモリの使用量が記憶されている。端末#1は、たとえば、実行するタスクによるメモリの使用量と、端末#1のメモリの空き容量と、を比較することによってメモリの不足を検出する。
 端末#1は、メモリの不足を検出すると、接続している端末#2~#4の中からメモリ共有を行う端末(要求先端末)を選択する。たとえば、端末#1は、端末#1と端末#2~#4との間の各通信品質を示す情報を取得する。通信品質は、たとえば、通信速度や通信強度などである。通信強度としてはたとえばRSSI(Receive Signal Strength Indicator:受信信号強度)を用いることができる。
 端末#1は、たとえば、端末#2~#4のうちの端末#1との間の通信品質が最も高い(通信速度や通信強度が高い)端末を要求先端末として選択する。これにより、メモリ共有におけるタスクデータ(データ)の送受信処理を高速に行うことができる。図1-1に示す例では、端末#1は、要求先端末として端末#2(第1データ処理装置)を選択したとする。端末#1は、選択した端末#2へ、端末#1のタスクに用いるタスクデータの少なくとも一部を送信する。また、端末#1は、端末#2へ送信したデータを端末#1のメモリから削除する。端末#2は、端末#1から受信したタスクデータを端末#2のメモリに保持する。
 端末#1は、端末#2へ送信したタスクデータに対するアクセスが端末#1のタスクにおいて発生した場合は、端末#2と通信を行うことにより、端末#2のメモリに保持されたタスクデータにアクセスする。このように、端末#2が端末#1にメモリを提供するメモリ共有を行い、メモリの使用量を端末#1,#2に分散させることができる。
 図1-2は、メモリ提供側の端末によるタスクデータの転送を示す図である。図1-2において、図1-1に示した部分と同様の部分については同一の符号を付して説明を省略する。端末#1のデータを保持する端末#2(メモリ貸与側)における状態の変化(たとえば図2~図5-2参照)により、端末#1が自端末のタスクデータを端末#2から回収できなくなる恐れのある所定の状況になったとする。
 所定の状況は、たとえば、端末#2が、メモリの容量の不足を検出した状況である。メモリの容量の不足は、たとえば、端末#2のメモリの容量が端末#1から送信されるタスクデータの容量よりも小さいときに検出される。
 または、所定の状況は、端末#2が、端末#2の電池残量の変化を検出した状況(たとえば図4-1,図4-2参照)であってもよい。電池残量の変化は、たとえば電池残量の減少である。電池残量の減少は、たとえば電池残量が閾値以下になることである。
 または、所定の状況は、端末#2が、端末#1~#4の中の端末#1に対する相対位置の変化を検出した状況(たとえば図3参照)であってもよい。相対位置は、たとえば、各端末の相対的な位置によって決まる端末間の距離である。相対位置の変化は、たとえば相対位置の増加である。相対位置の増加は、たとえば、周期的に相対位置を測定する場合において、前回測定した相対位置に対する、今回測定した相対位置の増加量が閾値以上になることである。
 または、所定の状況は、端末#2が、端末#1との間の通信速度の変化を検出した状況(たとえば図2参照)であってもよい。通信速度の変化は、たとえば、通信速度の減少である。通信速度の減少は、たとえば、周期的に通信速度を測定する場合において、前回測定した通信速度に対する、今回測定した通信速度の減少量が閾値以上になることである。
 または、所定の状況は、端末#2が、端末#1との通信の遮断(切断)を検出した状況(たとえば図5-1,図5-2参照)であってもよい。また、通信の遮断は、所定時間以上の通信の遮断とし、所定時間より短い通信の遮断は除外してもよい。なお、端末#2は、上述した所定の状況のすべてを検出する構成に限らず、上述した所定の状況の少なくともいずれかを検出する構成とすればよい。
 所定の状況になった場合に、端末#2は、端末#2が有する端末#1のタスクデータの共有部分を、端末#1~#4の中の端末#3または端末#4(第3データ処理装置)に転送(送信)する。たとえば、端末#2は、端末#3,#4のうちの端末#1との間の通信速度が最も高い端末へ端末#1のタスクデータを転送する。また、端末#2は、端末#1~#4の中で、メモリ共有にかかるタスクデータを使用している端末#1と通信を行っている端末(データ処理装置)へタスクデータを転送してもよい。図1-2に示す例では、端末#2は、保持している端末#1のタスクデータを端末#4へ転送したとする。
 端末#4は、端末#2から受信した端末#1のタスクデータを端末#4のメモリに保持する。また、端末#4は、端末#1のタスクデータを保持しており、端末#1との間でメモリ共有を開始することを通知する共有開始信号を端末#1へ送信する。これにより、端末#1は、端末#2へ送信したタスクデータを端末#4が保持していることを認識することができる。端末#1は、端末#2へ送信したタスクデータに対するアクセスが端末#1のタスクにおいて発生した場合は、端末#4と通信を行うことにより、端末#4のメモリに保持されたタスクデータにアクセスする。
 なお、端末#1は、たとえば端末#2~#4との間の通信速度より、自端末のストレージ(補助メモリ)へのスワップ速度(書き込み速度)の方が高い場合は、データを端末#2~#4へ送信せずに自端末のストレージへスワップしてもよい。このように、通信速度と、タスクデータをストレージに記憶する速度と、の比較結果に基づいてタスクデータの共有部分が他端末へ送信されてもよい。
(端末間で共有される状態テーブル)
 図1-3は、端末間で共有される状態テーブルの一例を示す図である。図1-3に示す状態テーブル130は、端末#1~#4で共有される情報の一例である。状態テーブル130は、端末#1~#4のそれぞれの間における「通信速度」、「相対位置変化傾向」および「通信速度変化傾向」を示している。たとえば、端末#1~#4は、端末#1~#4のうちの他端末と自端末との間の通信速度および相対位置を定期的に測定し、測定結果を互いに送受信することで状態テーブル130を共有する。
 「相対位置変化傾向」は、相対位置が前回の測定時から増加したか減少したかを示す情報である。たとえば、測定した相対位置が前回の測定時から所定の閾値以上増加した場合は「相対位置変化傾向」は「増加」となる。また、測定した相対位置が前回の測定時から所定の閾値以上減少した場合は「相対位置変化傾向」は「減少」となる。
 相対位置は、たとえば端末間の距離である。端末間の距離は、たとえば、他端末および自端末の各位置座標を取得し、取得した各位置座標に基づいて算出することができる。自端末の位置座標は、たとえば、GPS(Global Positioning System:全地球測位システム)によって取得することができる。他端末の位置座標は、たとえば、他端末がGPSによって取得した位置座標を示す情報を他端末から受信することによって取得することができる。
 「通信速度変化傾向」は、通信速度が前回の測定時から増加したか減少したかを示す情報である。たとえば、測定した通信速度が前回の測定時から所定の閾値以上増加した場合は「通信速度変化傾向」は「増加」となる。また、測定した通信速度が前回の測定時から所定の閾値以上減少した場合は「通信速度変化傾向」は「減少」となる。
 たとえば、端末#1は、自端末のメモリの不足を検出すると、状態テーブル130に基づいて自端末との間の通信速度が最も高い端末をメモリ共有の要求先端末として選択する。たとえば、状態テーブル130において「通信速度」のA~EのうちのBが最大である場合は、端末#1は、自端末のタスクデータを端末#2へ送信する(たとえば図1-1参照)。このように、端末#1は、接続している他端末との間の各通信速度を取得し、取得した通信速度に基づいてメモリ共有の要求先端末として選択してもよい。
 また、状態テーブル130は、通信システム100における端末同士の接続関係を示している。図1-3に示す状態テーブル130は、端末#1~#4が互いに接続していることを示している。
 図1-4は、状態テーブルの変化の一例を示す図である。図1-4において、図1-3に示した部分と同様の部分については説明を省略する。たとえば、端末#1と端末#2とが互いに離れた場合などは、端末#1と端末#2の間の相対位置は増加し、端末#1と端末#2の間の通信速度は低下する。したがって、端末#1~#4が共有する状態テーブルは、たとえば図1-4に示す状態テーブル130のようになる。具体的には、端末#1と端末#2との間の「通信速度変化傾向」は「減少」となる。また、端末#1と端末#2との間の「相対位置変化傾向」は「増加」となり、端末#1と端末#2との間の通信速度はB’(B’<B)となる。
(タスクデータの転送)
 図2は、通信速度の減少によるタスクデータの転送を示す図である。図2において、図1-1に示した部分と同様の部分については同一の符号を付して説明を省略する。図2に示すグラフ200は、端末#1と端末#2との間の通信速度の変化の一例を示す図である。グラフ200において、横軸は時間を示し、縦軸は通信速度を示している。
 グラフ200に示すように、期間Tにおける端末#1と端末#2との間の通信速度の減少量201が閾値を超えたとする。この場合は、図1-4に示したように、状態テーブル130において端末#1と端末#2との間の「通信速度変化傾向」は「減少」となる。
 図3は、相対位置の増加によるタスクデータの転送を示す図である。図3において、図1-1に示した部分と同様の部分については同一の符号を付して説明を省略する。図3に示すグラフ300は、端末#1と端末#2の間の相対位置301の変化の一例を示す図である。グラフ300において、横軸は時間を示し、縦軸は相対位置301を示している。
 グラフ300に示すように、期間Tにおける端末#1と端末#2との間の相対位置301の増加量302が閾値を超えたとする。この場合は、図1-4に示したように、状態テーブル130において端末#1と端末#2との間の「相対位置変化傾向」は「増加」となる。
 このように、端末#2は、たとえば、端末#1と端末#2との間の通信速度の所定期間における減少量が閾値以上、かつ、端末#1と端末#2との間の相対位置301(距離)の所定期間における増加量が閾値以上となった場合に端末#1のタスクデータを他端末へ転送する。これにより、端末#1と端末#2との間の通信速度の減少、端末#1と端末#2との間の相対位置301の増加により端末#1のタスクデータを端末#1が回収できなくなることを回避することができる。
 図4-1は、電池残量の不足によるタスクデータの転送を示す図(その1)である。図4-1において、図1-1に示した部分と同様の部分については同一の符号を付して説明を省略する。図4-1に示すグラフ410は、端末#2の電池残量401と、送信電力402と、の一例を示している。送信電力402は、端末#2が端末#1のタスクデータを他端末(たとえば端末#1)へ送信する場合に使用されるおよその電力量である。端末#2は、端末#1と端末#2との間のメモリ共有中に、送信電力402と電池残量401との差分403が閾値以下になった場合に端末#1のタスクデータを端末#4へ転送する。
 たとえば、端末#2のメモリには、送信するタスクデータの量と、タスクデータの送信に使用される電力量と、の対応情報(たとえば関数やテーブル)が記憶されている。対応情報においては、たとえば、送信するタスクデータの量が多いほど、タスクデータの送信に使用される電力量が大きくなっている。
 端末#2は、保持している端末#1のタスクデータの量と、対応情報と、に基づいて電力量を導出することによって送信電力402を取得することができる。このように、保持している端末#1のタスクデータの量を用いることで、保持している端末#1のタスクデータの量が多いほど大きくなる送信電力402を取得することができる。
 このように、端末#2は、電池残量401と、端末#2が端末#1のタスクデータを送信する場合に使用される送信電力402と、に基づいて端末#1のタスクデータを転送する。これにより、端末#1からのアクセス要求に応じて端末#1のタスクデータを送信するための電池残量がなくなる前に、端末#1のタスクデータを他端末へ転送することが可能になる。これにより、端末#2の電池残量の不足により端末#1のタスクデータを端末#1が回収できなくなることを回避することができる。
 図4-2は、電池残量の不足によるタスクデータの転送を示す図(その2)である。図4-2において、図4-1に示した部分と同様の部分については同一の符号を付して説明を省略する。図4-2に示すグラフ420は、端末#2の電池残量401と、タスク電力404と、送信電力402と、の一例を示している。タスク電力404は、端末#2が実行中のタスクを完了させる場合に使用されるおよその電力量である。端末#2は、タスク電力404と送信電力402の合計と、電池残量401と、の差分405が閾値以下になった場合に端末#1のタスクデータを端末#4へ転送する。
 たとえば、端末#2のメモリには、実行中のタスクによる電力の使用量が記憶されている。端末#2は、実行中のタスクに対応する電力をメモリから取得することによってタスク電力404を取得することができる。
 このように、端末#2は、電池残量401と、端末#2が端末#1のタスクデータを送信する場合に使用される送信電力402と、端末#2がタスクを完了させる場合に使用されるタスク電力404と、に基づいて端末#1のタスクデータを転送してもよい。これにより、実行中のタスクを完了させるための電池残量を残して端末#1のタスクデータを他端末へ転送することが可能になる。このため、端末#1のタスクデータを他端末へ転送した後に、実行中のタスクを完了できなくなることを回避することができる。
 図5-1は、通信の切断によるタスクデータの転送を示す図(その1)である。図5-1において、図1-1に示した部分と同様の部分については同一の符号を付して説明を省略する。図5-1に示すグラフ510は、端末#1と端末#2との間の通信速度の変化の一例を示している。グラフ510に示すように、端末#1と端末#2との間のメモリ共有中に、時刻tにおいて、端末#1と端末#2との間の通信が切断されたとする。
 端末#2は、たとえば、端末#1と端末#2との間の通信速度に基づいて端末#1と端末#2との間の通信の切断を検出することができる。たとえば、端末#2は、端末#1と端末#2との間の通信の切断を検出した場合に端末#1のタスクデータを端末#4へ転送する。これにより、端末#1と端末#2との間の通信の切断により端末#1のタスクデータを端末#1が回収できなくなることを回避することができる。
 図5-2は、通信の切断によるタスクデータの転送を示す図(その2)である。図5-2において、図5-1に示した部分と同様の部分については同一の符号を付して説明を省略する。図5-2に示すグラフ520は、端末#1と端末#2との間の通信速度の変化の一例を示している。グラフ520に示すように、端末#1と端末#2との間のメモリ共有中に、時刻t1において端末#1と端末#2との間の通信が一時的に切断されたとする。
 そして、時刻t1の後、期間Tの経過時の時刻t2において端末#1と端末#2との間の通信が回復したとする。端末#1と端末#2との間の通信の一時的な切断は、たとえば端末#1と端末#2のいずれかのトンネル通過時など、端末#1と端末#2との間に一時的に遮蔽物が存在する場合などに発生する。
 たとえば、端末#2は、端末#1と端末#2との間の通信の切断を検出した場合に、所定時間待機し、待機中に端末#1と端末#2との間の通信が回復した場合は端末#1のタスクデータを転送しないようにする。これにより、端末#1と端末#2との間の通信が回復する場合は、端末#1のタスクデータを端末#4へ転送しなくてもメモリ共有を再開することができる。このため、端末#4へのタスクデータの転送などの処理の増加を抑えることができる。
 また、端末#2は、所定時間待機しても端末#1と端末#2との間の通信が回復しない場合は、図5-1に示したように端末#1のタスクデータを端末#4へ転送する。これにより、端末#1と端末#2との間の通信の切断により端末#1のタスクデータを端末#1が回収できなくなることを回避することができる。
(端末のハードウェア構成)
 図6は、端末のハードウェア構成例を示す図である。端末#1~#4のそれぞれは、たとえば図6に示すデータ処理装置600によって実現することができる。データ処理装置600は、中央処理装置601(CPU:Central Processing Unit)と、ランダムアクセスメモリ602(RAM:Random Access Memory)と、ストレージ603と、無線ユニット604と、を備えている。また、中央処理装置601、ランダムアクセスメモリ602、ストレージ603および無線ユニット604は、バス620によってそれぞれ接続されている。
 中央処理装置601は、データ処理装置600の全体の制御を司る。ランダムアクセスメモリ602は、ブートプログラムなどのプログラムやデータベースなどを記憶している。また、ランダムアクセスメモリ602は、中央処理装置601のワークエリアとして使用される。ストレージ603は、中央処理装置601の制御にしたがってデータを記憶する補助メモリである。無線ユニット604は、無線の通信回線を通じて他端末との間で通信を行う。無線ユニット604は、たとえば無線LANアダプタなどである。
(端末の機能的構成)
 図7は、端末の機能的構成例を示す図である。端末#1~#4のそれぞれは、たとえば、図7に示すデータベース710およびオペレーティングシステム720を有する。データベース710は、たとえば、図6に示したランダムアクセスメモリ602に記憶される。データベース710は、状態テーブル130(たとえば図1-3,図1-4参照)、自端末の電池残量を示す電池残量情報、自端末のランダムアクセスメモリ602に保持している他端末のタスクデータなどを示すメモリ使用情報などを含むデータベースである。
 オペレーティングシステム720は、たとえば、図6に示した中央処理装置601が、ランダムアクセスメモリ602をワークエリアとしてプログラムを実行することによって実現される。オペレーティングシステム720は、電池残量監視部721と、位置情報監視部722と、通信監視部723と、メモリ管理部724と、データ移動決定部725と、情報交換部726と、の機能を有する。
 電池残量監視部721、位置情報監視部722および通信監視部723は、自端末の状態を監視し、監視結果に基づいてデータベース710を更新する。具体的には、電池残量監視部721は、自端末の電池残量を監視し、監視結果に基づいてデータベース710の電池残量情報を更新する電池残量監視ユニットである。
 位置情報監視部722は、自端末と他端末との間の相対位置を監視し、監視結果に基づいてデータベース710の状態テーブル130における「相対位置変化傾向」を更新する。通信監視部723は、自端末と他端末との間の通信速度を監視し、監視結果に基づいてデータベース710の状態テーブル130における「通信速度」および「通信速度変化傾向」を更新する。
 メモリ管理部724は、自端末のランダムアクセスメモリ602の容量(メモリ容量)の管理を行うメモリ管理ユニットである。また、メモリ管理部724は、情報交換部726を介して他端末と通信を行うことで、他端末とのメモリ共有の管理を行う。たとえば、メモリ管理部724は、自端末のランダムアクセスメモリ602の空き容量が不足する場合に、自端末のタスクデータを他端末に保持するメモリ共有の管理を行う。
 具体的には、メモリ管理部724は、ランダムアクセスメモリ602の不足の検出を行う。そして、メモリ管理部724は、ランダムアクセスメモリ602の不足を検出すると、メモリ共有の要求先端末(メモリの利用先の他端末)の決定をデータ移動決定部725に要求する。メモリ管理部724は、要求先端末の決定結果がデータ移動決定部725から通知されると、通知結果が示す要求先端末との間でメモリ共有を行う。
 具体的には、メモリ管理部724は、要求先端末へメモリの提供を要求する提供要求信号を送信し、送信した提供要求信号に対する要求先端末からの応答信号を受信する。そして、メモリ管理部724は、メモリを提供可能なことを示す応答信号を受信すると、自端末のタスクデータを要求先端末へ送信する。メモリを提供可能なことを示す応答信号には、提供可能なメモリの容量を示す情報が含まれていてもよい。この場合は、メモリ管理部724は、応答信号が示す容量のタスクデータを要求先端末へ送信する。
 また、メモリ管理部724は、要求先端末へ送信したタスクデータに対するアクセスが発生した場合は、要求先端末と通信を行うことによって要求先端末のメモリのタスクデータにアクセスする。
 また、メモリ管理部724は、自端末のランダムアクセスメモリ602に空き容量があり、他端末からメモリの提供の要求があった場合に他端末のタスクデータを自端末のランダムアクセスメモリ602に保持するメモリ共有の管理を行う。具体的には、メモリ管理部724は、メモリの提供を要求する提供要求信号を要求元端末から受信する。そして、メモリ管理部724は、自端末のランダムアクセスメモリ602に空き容量がない場合は、メモリを提供可能でないことを示す応答信号を要求元端末へ送信する。
 また、メモリ管理部724は、自端末のランダムアクセスメモリ602に空き容量があれば、メモリを提供可能なことを示す応答信号を要求元端末へ送信する。メモリを提供可能なことを示す応答信号には、提供可能なメモリの容量を示す情報が含まれていてもよい。また、メモリ管理部724は、要求元端末から送信されたタスクデータを受信し、受信したタスクデータを自端末のランダムアクセスメモリ602に保持する。
 また、メモリ管理部724は、メモリ共有の処理に伴って、データベース710に含まれるメモリ使用情報を更新する。メモリ使用情報は、自端末のランダムアクセスメモリ602に保持している他端末のタスクデータなどを示す情報を含む。また、メモリ使用情報は、自端末のタスクデータを保持している他端末(要求先端末)を示す情報を含む。
 また、メモリ管理部724は、他端末のタスクデータをさらに別の他端末から受信した場合は、受信したタスクデータの送信元へ、メモリ共有を開始することを通知する共有開始信号を送信する。たとえば、図1-2に示した状態において、端末#4のメモリ管理部724は、端末#1のタスクデータを端末#2から受信した場合は、端末#1へ共有開始信号を送信する。
 データ移動決定部725は、メモリ共有の要求元端末に対する自端末の相対位置を検出するとともに、メモリ共有の要求元端末との間の通信速度を監視する移動決定ユニットである。データ移動決定部725は、メモリ管理部724から要求があった場合に、メモリ共有の要求先端末を決定する。メモリ共有の要求先端末の決定は、たとえば、データベース710に含まれる状態テーブル130が示す「通信速度」などに基づいて行うことができる。また、データ移動決定部725は、自端末における状態の変化により、他端末から受信して保持しているタスクデータを送信元に送信することができなくなる恐れのある状況となった場合に、保持しているタスクデータを他端末へ転送する。
 たとえば、データ移動決定部725は、データベース710に含まれる状態テーブル130の「相対位置変化傾向」や「通信速度変化傾向」などに基づいて、他端末のタスクデータの別の他端末への転送の決定を行う。また、データ移動決定部725は、データベース710に含まれる電池残量情報などに基づいて、他端末のタスクデータの別の他端末への転送の決定を行ってもよい。
 また、データ移動決定部725は、他端末のタスクデータを別の他端末へ転送すると決定した場合に、転送先の他端末を、たとえば、状態テーブル130の「通信速度」などに基づいて決定する。また、データ移動決定部725は、他端末のタスクデータを別の他端末へ転送すると決定した場合に、メモリ管理部724に対して他端末のタスクデータの別の他端末への転送を要求する。
 情報交換部726は、メモリ管理部724と他端末との間の通信を中継する。具体的には、情報交換部726は、メモリ管理部724と他端末との間で送受信される提供要求信号、応答信号、タスクデータおよび共有開始信号などを中継する。
 また、情報交換部726は、データベース710の状態テーブル130を監視し、状態テーブル130の内容が更新された場合に更新内容を他端末へ送信する。また、情報交換部726は、他端末の状態テーブル130の更新内容を他端末から受信し、受信した更新内容に基づいて自端末の状態テーブル130を更新する。情報交換部726による他端末との通信は、たとえば図6に示した無線ユニット604によって行われる。
(オペレーティングシステムによる処理)
 図8-1,図8-2は、オペレーティングシステムによる処理の一例を示すフローチャートである。たとえば端末#1のオペレーティングシステム720は、たとえば図8-1,図8-2に示す各ステップを繰り返し実行する。ここでは端末#1による処理を説明するが、端末#2~#4による処理も同様である。
 図8-1に示すように、まず、通信監視部723が、自端末(端末#1)と他端末(端末#2~#4)との間の通信速度を取得する(ステップS801)。つぎに、位置情報監視部722が、自端末と他端末との間の相対位置を取得する(ステップS802)。
 つぎに、メモリ管理部724が、自端末のメモリ不足(ランダムアクセスメモリ602の容量不足)を検出したか否かを判断する(ステップS803)。メモリ不足を検出した場合(ステップS803:Yes)は、メモリ管理部724が、他端末のタスクデータを自端末のランダムアクセスメモリ602に保持しているか否かを判断する(ステップS804)。ステップS804の判断は、たとえばデータベース710のメモリ使用情報に基づいて行うことができる。
 ステップS804において、他端末のタスクデータを保持していない場合(ステップS804:No)は、端末#1は、自端末のタスクデータを自端末のストレージ603または他端末へスワップする処理を行い(ステップS805)、一連の処理を終了する。自端末のタスクデータをスワップする処理については後述する(たとえば図9参照)。
 ステップS804において、他端末のタスクデータを保持している場合(ステップS804:Yes)は、端末#1は、保持している他端末のタスクデータを別の他端末へ転送する処理を行い(ステップS806)、一連の処理を終了する。メモリ不足時に他端末のタスクデータを別の他端末へ転送する処理については後述する(たとえば図10参照)。
 ステップS803において、自端末のメモリ不足を検出していない場合(ステップS803:No)は、端末#1は、ステップS807へ移行する。すなわち、情報交換部726が、ステップS801,S802によって取得された通信速度および相対位置の少なくとも一方が前回の測定時から変化したか否かを判断する(ステップS807)。ステップS807の判断は、たとえば状態テーブル130に基づいて行うことができる(たとえば図2,図3参照)。
 ステップS807において、通信速度および相対位置の少なくとも一方が変化した場合(ステップS807:Yes)は、他端末へ更新情報を送信する(ステップS808)。これにより、自端末によって検出した通信速度および相対位置の少なくとも一方の変化を他端末の状態テーブル130に反映させることができる。つぎに、端末#1は、ステップS811へ移行する。
 ステップS807において、通信速度および相対位置のいずれも変化していない場合(ステップS807:No)は、データ移動決定部725が、他端末から更新情報を受信したか否かを判断する(ステップS809)。他端末から更新情報を受信した場合(ステップS809:Yes)は、受信した更新情報を、受信した更新情報を受信していない別の他端末へ送信する(ステップS810)。これにより、他端末から受信した更新情報の内容を別の他端末の状態テーブル130に反映させることができる。つぎに、端末#1は、端末間の状態変化時の処理を行い(ステップS811)、一連の処理を終了する。端末間の状態変化時の処理については後述する(たとえば図11参照)。
 ステップS809において、他端末から更新情報を受信していない場合(ステップS809:No)は、端末#1は、図8-2に示す各ステップへ移行する(符号A)。すなわち、メモリ管理部724が、他端末からの提供要求信号を受信したか否かを判断する(ステップS812)。他端末からの提供要求信号を受信した場合(ステップS812:Yes)は、メモリ管理部724が、受信した提供要求信号に対する応答処理を行い(ステップS813)、一連の処理を終了する。提供要求信号に対する応答処理については後述する(たとえば図12参照)。
 ステップS812において、他端末からの提供要求信号を受信していない場合(ステップS812:No)は、データ移動決定部725が、電池残量が減少したか否かを判断する(ステップS814)。ステップS814の判断は、たとえばデータベース710の電池残量情報に基づいて行うことができる(たとえば図4-1,図4-2参照)。電池残量が減少した場合(ステップS814:Yes)は、端末#1は、電池残量減少時の処理を行い(ステップS815)、一連の処理を終了する。電池残量減少時の処理については後述する(たとえば図13参照)。
 ステップS814において、電池残量が減少していない場合(ステップS814:No)は、メモリ管理部724が、他端末から共有開始通知信号を受信したか否かを判断する(ステップS816)。他端末から共有開始通知信号を受信した場合(ステップS816:Yes)は、メモリ管理部724が、データベース710のメモリ使用情報を更新し(ステップS817)、一連の処理を終了する。
 ステップS816において、他端末から共有開始通知信号を受信していない場合(ステップS816:No)は、メモリ管理部724が、自端末のタスクにおいて、自端末のタスクデータに対するアクセスが発生したか否かを判断する(ステップS818)。自端末のタスクデータには、自端末のランダムアクセスメモリ602に保持しているタスクデータだけでなく、他端末に送信しメモリ共有しているタスクデータも含まれる。
 ステップS818において、自端末のタスクデータに対するアクセスが発生した場合(ステップS818:Yes)は、端末#1は、アクセス発生時の処理を行い(ステップS819)、一連の処理を終了する。アクセス発生時の処理については後述する(たとえば図14参照)。自端末のタスクデータに対するアクセスが発生していない場合(ステップS818:No)は、データ移動決定部725が、他端末との間の通信の切断を検出したか否かを判断する(ステップS820)。ステップS820による判断は、たとえば状態テーブル130に基づいて行うことができる(たとえば図5-1,図5-2参照)。
 ステップS820において、他端末との間の通信の切断を検出した場合(ステップS820:Yes)は、端末#1は、切断検出時の処理を行い(ステップS821)、一連の処理を終了する。切断検出時の処理については後述する(たとえば図15参照)。他端末との間の通信の切断を検出していない場合(ステップS820:No)は、端末#1は、一連の処理を終了する。
 以上の各ステップにより、端末#1~#4のそれぞれは、状況に応じて、自端末のタスクデータを他端末に保持させたり、他端末のタスクデータを自端末に保持したり、他端末のタスクデータを別の他端末に転送したりすることができる。
(自端末のタスクデータをスワップする処理)
 図9は、自端末のタスクデータをスワップする処理の一例を示す図である。図8-1に示したステップS805において、端末#1のオペレーティングシステム720は、たとえば図9に示す各ステップを実行する。まず、メモリ管理部724が、自端末(端末#1)と他端末(端末#2~#4)との通信速度が、自端末のストレージ603へのタスクデータのスワップ速度(書き込み速度)より高いか否かを判断する(ステップS901)。
 自端末と他端末との通信速度は、たとえばデータベース710の状態テーブル130に含まれる通信速度のうちの最高の通信速度である。自端末のストレージ603へのスワップ速度は、たとえばストレージ603などにあらかじめ記憶された固定値である。
 ステップS901において、他端末との通信速度がスワップ速度以下である場合(ステップS901:No)は、メモリ管理部724が、自端末のストレージ603に自端末のタスクデータをスワップさせ(ステップS902)、一連の処理を終了する。他端末との通信速度がスワップ速度より高い場合(ステップS901:Yes)は、メモリ管理部724が、他端末へ提供要求信号を送信する(ステップS903)。
 ステップS903において、メモリ管理部724は、データ移動決定部725へメモリの利用先の他端末の決定をデータ移動決定部725に要求し、要求に対して決定された他端末へ提供要求信号を送信する。提供要求信号の初回の送信先の他端末(要求先端末)は、たとえば、端末#2~#4のうちの端末#1との通信速度が最も高い端末とする。
 つぎに、メモリ管理部724が、ステップS903によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する(ステップS904)。メモリを提供可能なことを示す応答信号を受信した場合(ステップS904:Yes)は、メモリ管理部724は、自端末のタスクデータを要求先端末へ送信する(ステップS905)。これにより、端末#1は、自端末のタスクデータを要求先端末へスワップすることができる。
 つぎに、メモリ管理部724が、タスクデータをスワップしたことによってメモリ不足が解消したか否かを判断する(ステップS906)。メモリ不足が解消したか否かは、たとえば、自端末のランダムアクセスメモリ602の空き容量が閾値以上になったか否かに基づいて判断することができる。メモリ不足が解消した場合(ステップS906:Yes)は、端末#1は、一連の処理を終了する。メモリ不足が解消していない場合(ステップS906:No)は、ステップS907へ移行する。
 ステップS904において、許可する旨の応答信号を受信しなかった場合(ステップS904:No)は、データ移動決定部725が、自端末との通信速度がスワップ速度より高い別の他端末が存在するか否かを判断する(ステップS907)。ステップS907の判断は、たとえば状態テーブル130に基づいて行うことができる。
 ステップS907において、自端末との通信速度がスワップ速度より高い別の他端末が存在しない場合(ステップS907:No)は、端末#1は、ステップS902へ移行し、自端末に残っているタスクデータを自端末のストレージ603にスワップする。自端末との通信速度がスワップ速度より高い別の他端末が存在する場合(ステップS907:Yes)は、端末#1は、ステップS903へ戻る。この場合は、メモリ管理部724が、自端末との通信速度がスワップ速度より高い別の他端末へ提供要求信号を送信する。
 以上の各ステップにより、端末#1は、自端末のタスクデータを自端末のストレージ603または他端末にスワップすることができる。これにより、自端末のランダムアクセスメモリ602の空き容量を増加させることができる。
(メモリ不足時に他端末のタスクデータを別の他端末へ転送する処理)
 図10は、メモリ不足時に他端末のタスクデータを別の他端末へ転送する処理の一例を示すフローチャートである。図8-1に示したステップS806において、端末#1のオペレーティングシステム720は、たとえば図10に示す各ステップを実行する。まず、メモリ管理部724が、保持しているタスクデータにかかるメモリ共有の要求元端末と接続している他端末が存在するか否かを判断する(ステップS1001)。ステップS1001の判断は、たとえば状態テーブル130に基づいて行うことができる。
 ステップS1001において、要求元端末と接続している他端末が存在しない場合(ステップS1001:No)は、メモリ管理部724が、保持しているタスクデータを要求元端末へ送信し(ステップS1002)、一連の処理を終了する。これにより、要求元端末のタスクデータを返却し、自端末のランダムアクセスメモリ602の空き容量を増加させることができる。
 ステップS1001において、要求元端末と接続している他端末が存在する場合(ステップS1001:Yes)は、メモリ管理部724が、要求元端末と接続している別の他端末(要求先端末)へ提供要求信号を送信する(ステップS1003)。つぎに、メモリ管理部724が、ステップS1003によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する(ステップS1004)。
 ステップS1004において、メモリを提供可能なことを示す応答信号を受信した場合(ステップS1004:Yes)は、メモリ管理部724が、自端末が保持している他端末のタスクデータを、ステップS1003によって提供要求信号を送信した要求先端末へ転送する(ステップS1005)。これにより、端末#1は、他端末のタスクデータを別の他端末へスワップすることができる。
 つぎに、メモリ管理部724が、ステップS1005によってタスクデータをスワップしたことによってメモリ不足が解消したか否かを判断する(ステップS1006)。メモリ不足が解消した場合(ステップS1006:Yes)は、端末#1は、一連の処理を終了する。メモリ不足が解消していない場合(ステップS1006:No)は、端末#1は、ステップS1007へ移行する。
 ステップS1004において、メモリを提供可能なことを示す応答信号を受信しなかった場合(ステップS1004:No)は、データ移動決定部725が、要求元端末と接続している別の他端末が存在するか否かを判断する(ステップS1007)。ステップS1007の判断は、たとえば状態テーブル130に基づいて行うことができる。
 ステップS1007において、要求元端末と接続している別の他端末が存在しない場合(ステップS1007:No)は、端末#1は、ステップS1002へ移行し、保持しているタスクデータを要求元端末へ返却する。要求元端末と接続している別の他端末が存在する場合(ステップS1007:Yes)は、端末#1は、ステップS1003へ戻る。この場合は、メモリ管理部724が、要求元端末と接続している別の他端末へ提供要求信号を送信する。
 以上の各ステップにより、端末#1は、メモリ不足時に他端末のタスクデータを別の他端末へ転送することができる。これにより、端末#1~#4においてメモリの使用量を更に分散し、各端末におけるメモリ不足を抑えることができる。また、タスクデータを転送する他端末が存在しない場合は、端末#1は、タスクデータをメモリ共有の要求元端末へ返却することができる。
(端末間の状態変化時の処理)
 図11は、端末間の状態変化時の処理の一例を示すフローチャートである。図8-1に示したステップS811において、端末#1のオペレーティングシステム720は、たとえば図11に示す各ステップを実行する。まず、データ移動決定部725が、他端末のタスクデータを自端末のランダムアクセスメモリ602に保持しているか否かを判断する(ステップS1101)。ステップS1101の判断は、たとえばデータベース710のメモリ使用情報に基づいて行うことができる。
 ステップS1101において、他端末のタスクデータを保持していない場合(ステップS1101:No)は、端末#1は、一連の処理を終了する。他端末のタスクデータを保持している場合(ステップS1101:Yes)は、端末#1は、ステップS1102へ移行する。すなわち、データ移動決定部725が、保持しているタスクデータにかかるメモリ共有の要求元端末との相対位置が増加傾向であり、かつ要求元端末との通信速度が減少傾向であるか否かを判断する(ステップS1102)。ステップS1102の判断は、たとえば状態テーブル130に基づいて行うことができる。
 ステップS1102において、メモリ共有の要求元端末との相対位置が増加傾向でなく、または要求元端末との通信速度が減少傾向でない場合(ステップS1102:No)は、端末#1は、一連の処理を終了する。要求元端末との相対位置が増加傾向であり、かつ要求元端末との通信速度が減少傾向である場合(ステップS1102:Yes)は、データ移動決定部725が、要求元端末と接続している他端末が存在するか否かを判断する(ステップS1103)。ステップS1103の判断は、たとえば状態テーブル130に基づいて行うことができる。
 ステップS1103において、要求元端末と接続している他端末が存在しない場合(ステップS1103:No)は、端末#1は、一連の処理を終了する。要求元端末と接続している他端末が存在する場合(ステップS1103:Yes)は、端末#1は、ステップS1104へ移行する。すなわち、データ移動決定部725が、要求元端末と接続している他端末と要求元端末との間の通信速度が、自端末と要求元端末との間の通信速度より速いか否かを判断する(ステップS1104)。ステップS1104の判断は、たとえば状態テーブル130に基づいて行うことができる。
 ステップS1104において、自端末との間の通信速度より速くない場合(ステップS1104:No)は、データ移動決定部725が、ステップS1103へ戻り、要求元端末と接続している別の他端末が存在するか否かを判断する。自端末との間の通信速度より速い場合(ステップS1104:Yes)は、メモリ管理部724が、要求元端末と接続している他端末へ提供要求信号を送信する(ステップS1105)。
 つぎに、メモリ管理部724が、ステップS1105によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する(ステップS1106)。メモリを提供可能なことを示す応答信号を受信していない場合(ステップS1106:No)は、データ移動決定部725が、ステップS1103へ戻り、要求元端末と接続している別の他端末が存在するか否かを判断する。
 ステップS1106において、メモリを提供可能なことを示す応答信号を受信した場合(ステップS1106:Yes)は、メモリ管理部724が、自端末が保持しているタスクデータを、提供要求信号を送信した他端末へ送信し(ステップS1107)、一連の処理を終了する。これにより、端末#1は、他端末のタスクデータを別の他端末へスワップすることができる。
 以上の各ステップにより、端末#1は、メモリ共有の要求元端末との間の通信状態が悪化した場合に、要求元端末のタスクデータを、要求元端末と接続している別の他端末へ転送することができる。これにより、メモリ共有の要求元端末がタスクデータを回収できなくなることを回避することができる。
(提供要求信号に対する応答処理)
 図12は、提供要求信号に対する応答処理の一例を示すフローチャートである。図8-2に示したステップS813において、端末#1のオペレーティングシステム720は、たとえば図12に示す各ステップを実行する。まず、メモリ管理部724が、自端末のメモリ(ランダムアクセスメモリ602)の提供が可能か否かを判断する(ステップS1201)。ステップS1201の判断は、たとえばデータベース710のメモリ使用情報や電池残量情報などに基づいて行うことができる。
 たとえば、メモリ管理部724は、自端末のランダムアクセスメモリ602の空き容量および自端末の電池残量が閾値より高い場合は自端末のメモリの提供が可能であると判断する。また、メモリ管理部724は、自端末のランダムアクセスメモリ602の空き容量が閾値以下である場合や、自端末の電池残量が閾値以下である場合は自端末のメモリの提供が可能でないと判断する。
 ステップS1201において、自端末のメモリの提供が可能でない場合(ステップS1201:No)は、メモリ管理部724が、自端末のメモリを提供可能でないことを示す応答信号を要求元端末へ送信し(ステップS1202)、一連の処理を終了する。要求元端末は、提供要求信号の送信元の他端末である。
 ステップS1201において、自端末のメモリの提供が可能である場合(ステップS1201:Yes)は、メモリ管理部724は、自端末のメモリを提供可能なことを示す応答信号を要求元端末へ送信する(ステップS1203)。ステップS1203によって送信される応答信号には、提供可能なメモリの容量を示す情報が含まれていてもよい。
 つぎに、メモリ管理部724が、要求元端末からタスクデータを受信する(ステップS1204)。つぎに、メモリ管理部724が、メモリ共有の開始を通知する共有開始信号を要求元端末へ送信し(ステップS1205)、一連の処理を終了する。
 以上の各ステップにより、端末#1は、他端末からの提供要求信号を受信した場合に、自端末のランダムアクセスメモリ602を提供可能であれば要求元端末との間でメモリ共有を開始することができる。
(電池残量減少時の処理)
 図13は、電池残量減少時の処理の一例を示すフローチャートである。図8-2に示したステップS815において、端末#1のオペレーティングシステム720は、たとえば図13に示す各ステップを実行する。まず、メモリ管理部724が、他端末のタスクデータを自端末のランダムアクセスメモリ602に保持しているか否かを判断する(ステップS1301)。ステップS1301の判断は、たとえばデータベース710のメモリ使用情報に基づいて行うことができる。
 ステップS1301において、他端末のタスクデータを保持していない場合(ステップS1301:No)は、端末#1は、一連の処理を終了する。他端末のタスクデータを保持している場合(ステップS1301:Yes)は、データ移動決定部725が、要求元端末と接続している他端末が存在するか否かを判断する(ステップS1302)。ステップS1302の判断は、たとえば状態テーブル130に基づいて行うことができる。
 ステップS1302において、要求元端末と接続している他端末が存在しない場合(ステップS1302:No)は、端末#1は、一連の処理を終了する。要求元端末と接続している他端末が存在する場合(ステップS1302:Yes)は、メモリ管理部724が、要求元端末と接続している他端末へ提供要求信号を送信する(ステップS1303)。
 つぎに、メモリ管理部724が、ステップS1303によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する(ステップS1304)。メモリを提供可能なことを示す応答信号を受信していない場合(ステップS1304:No)は、データ移動決定部725が、ステップS1302へ戻り、要求元端末と接続している別の他端末が存在するか否かを判断する。
 ステップS1304において、メモリを提供可能なことを示す応答信号を受信した場合(ステップS1304:Yes)は、メモリ管理部724が、保持しているタスクデータを要求先端末へ送信し(ステップS1305)、一連の処理を終了する。タスクデータの送信先の要求先端末は、提供要求信号の送信先の他端末である。
 以上の各ステップにより、端末#1は、電池残量減少時に、要求元端末のタスクデータを、要求元端末と接続している別の他端末へ転送することができる。これにより、メモリ共有の要求元端末がタスクデータを回収できなくなることを回避することができる。
(アクセス発生時の処理)
 図14は、アクセス発生時の処理の一例を示すフローチャートである。図8-2に示したステップS819において、端末#1のオペレーティングシステム720は、たとえば図14に示す各ステップを実行する。まず、メモリ管理部724が、アクセス対象のタスクデータを自端末が保持しているか否かを判断する(ステップS1401)。ステップS1401の判断は、たとえばデータベース710のメモリ使用情報に基づいて行うことができる。タスクデータを自端末が保持している場合(ステップS1401:Yes)は、端末#1は、自端末が保持しているタスクデータにアクセスし(ステップS1402)、一連の処理を終了する。
 ステップS1401において、タスクデータを自端末が保持していない場合(ステップS1401:No)は、メモリ管理部724が、タスクデータを保持している他端末(メモリ共有の要求先端末)のメモリにアクセス可能か否かを判断する(ステップS1403)。タスクデータを保持している他端末は、たとえばデータベース710のメモリ使用情報に基づいて特定することができる。タスクデータを保持している他端末のメモリにアクセス可能である場合(ステップS1403:Yes)は、端末#1は、他端末のメモリのタスクデータにアクセスし(ステップS1404)、一連の処理を終了する。
 ステップS1403において、他端末のメモリにアクセス可能でない場合(ステップS1403:No)は、端末#1は、所定時間待機する(ステップS1405)。つぎに、メモリ管理部724が、タスクデータを保持している他端末のメモリにアクセス可能か否かを再度判断する(ステップS1406)。
 ステップS1406において、他端末のメモリにアクセス可能である場合(ステップS1406:Yes)は、端末#1は、ステップS1404へ移行する。他端末のメモリにアクセス可能でない場合(ステップS1406:No)は、端末#1は、タスクデータへのアクセスにかかるタスクの処理を初期状態から開始し(ステップS1407)、一連の処理を終了する。この場合は、端末#1は、他端末へのアクセスが可能になった後に、他端末が保持している自端末のタスクデータを破棄させ、メモリ共有を終了する処理を行ってもよい。
 以上の各ステップにより、端末#1は、自端末のタスクデータへのアクセス発生時に、自端末または他端末に保持されているタスクデータにアクセスすることができる。また、自端末のタスクデータを保持している他端末にアクセスできない場合は、一定時間待機して再度アクセスを試み、アクセスが可能になった場合は他端末のタスクデータにアクセスする。これにより、自端末のタスクデータを保持している他端末に一時的にアクセスできない状態になっても、他端末が保持しているタスクデータにアクセス可能になる。
(切断検出時の処理)
 図15は、切断検出時の処理の一例を示すフローチャートである。図8-2に示したステップS821において、端末#1のオペレーティングシステム720は、たとえば図15に示す各ステップを実行する。まず、メモリ管理部724が、通信が切断された他端末のタスクデータを保持しているか否かを判断する(ステップS1501)。ステップS1501の判断は、たとえばデータベース710のメモリ使用情報に基づいて行うことができる。通信が切断された他端末のタスクデータを保持していない場合(ステップS1501:No)は、端末#1は、一連の処理を終了する。
 ステップS1501において、通信が切断された他端末(要求元端末)のタスクデータを保持している場合(ステップS1501:Yes)は、端末#1は、所定時間待機する(ステップS1502)。つぎに、データ移動決定部725が、切断された通信が回復したか否かを判断する(ステップS1503)。切断された通信が回復した場合(ステップS1503:Yes)は、端末#1は、一連の処理を終了する。
 ステップS1503において、切断された通信が回復していない場合(ステップS1503:No)は、データ移動決定部725が、要求元端末と接続している他端末が存在するか否かを判断する(ステップS1504)。ステップS1504の判断は、たとえば状態テーブル130に基づいて行うことができる。
 ステップS1504において、要求元端末と接続している他端末が存在しない場合(ステップS1504:No)は、端末#1は、一連の処理を終了する。要求元端末と接続している他端末が存在する場合(ステップS1504:Yes)は、メモリ管理部724が、要求元端末と接続している他端末へ提供要求信号を送信する(ステップS1505)。
 つぎに、メモリ管理部724が、ステップS1505によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する(ステップS1506)。メモリを提供可能なことを示す応答信号を受信していない場合(ステップS1506:No)は、データ移動決定部725が、ステップS1504へ戻り、要求元端末と接続している別の他端末が存在するか否かを判断する。
 ステップS1506において、メモリを提供可能なことを示す応答信号を受信した場合(ステップS1506:Yes)は、メモリ管理部724が、保持しているタスクデータを他端末へ送信し(ステップS1507)、一連の処理を終了する。タスクデータの送信先は、提供要求信号の送信先の他端末である。
 以上の各ステップにより、端末#1は、メモリ共有の要求元端末との通信切断時に、要求元端末のタスクデータを、要求元端末と接続している別の他端末へ転送することができる。これにより、メモリ共有の要求元端末がタスクデータを回収できなくなることを回避することができる。また、端末#1は、メモリ共有の要求元端末との通信が切断しても、切断された通信が所定時間内に回復した場合はタスクデータを転送しない。これにより、タスクデータの転送などの処理の増加を抑えることができる。
 以上説明したように、データ共有方法およびデータ処理システムによれば、メモリ共有により預かったデータを返送できなくなることを回避するために、自端末の状態や通信環境の変化の検出結果に基づいて、預かったデータを他の端末に転送することができる。これにより、自端末の状態や通信環境が時々刻々と変化する無線端末間においても、メモリ共有による処理を安定させることができる。
 100 通信システム
 130 状態テーブル
 201 減少量
 301 相対位置
 302 増加量
 401 電池残量
 402 送信電力
 403,405 差分
 404 タスク電力
 600 データ処理装置
 620 バス

Claims (12)

  1.  データを共有する複数のデータ処理装置の中の第1データ処理装置が、メモリの容量の不足、電池残量の変化、前記複数のデータ処理装置の中の第2データ処理装置に対する相対位置の変化、前記第2データ処理装置との間の通信速度の変化、または前記第2データ処理装置との通信の遮断を検出するときに、前記第1データ処理装置が有する前記データの共有部分を前記複数のデータ処理装置の第3データ処理装置に送信すること
     を特徴とするデータ共有方法。
  2.  前記電池残量の減少、前記相対位置の増加およびまたは通信速度の減少を検出するときに、前記データの共有部分が他のデータ処理装置に送信されること
     を特徴とする請求項1に記載のデータ共有方法。
  3.  前記メモリの容量が前記第2データ処理装置から送信されるデータの容量よりも小さいときに前記メモリの容量の不足が検出され、
     前記通信速度と前記データをストレージに記憶する速度との比較結果に基づいて前記データの共有部分が前記第3データ処理装置に送信されること
     を特徴とする請求項1または請求項2に記載のデータ共有方法。
  4.  前記第1データ処理装置は、前記第1データ処理装置以外の前記複数のデータ処理装置の中で前記第2データ処理装置との通信速度が最も大きい第3データ処理装置に、前記データの共有部分を送信すること
     を特徴とする請求項1、請求項2または請求項3に記載のデータ共有方法。
  5.  前記第3データ処理装置は、前記複数のデータ処理装置の中で前記データの共有部分を使用しているデータ処理装置と通信を行っているデータ処理装置であること
     を特徴とする請求項1、請求項2または請求項3に記載のデータ共有方法。
  6.  前記通信の遮断を検出するとき、所定期間経過後に前記第2データ処理装置と通信を行う第4データ処理装置に前記データの共有部分を送信すること
     を特徴とする請求項1乃至請求項5の何れか一に記載のデータ共有方法。
  7.  前記所定期間経過までに前記第2データ処理装置との通信が回復した場合は、前記第4データ処理装置に前記データの共有部分を送信しないこと
     を特徴とする請求項6に記載のデータ共有方法。
  8.  前記第1データ処理装置は、前記第2データ処理装置から受信した前記データの共有部分を前記第3データ処理装置へ送信すること
     を特徴とする請求項1に記載のデータ共有方法。
  9.  前記第3データ処理装置は、前記第1データ処理装置から前記データの共有部分を受信した場合に、前記第2データ処理装置との間で前記データの共有部分を共有すること
     を特徴とする請求項1に記載のデータ共有方法。
  10.  複数のデータ処理装置で共有するデータを格納するメモリと、
     メモリ容量を管理するメモリ管理ユニットと、
     電池残量を監視する電池残量監視ユニットと、
     前記複数のデータ処理装置の中の第2データ処理装置に対する相対位置を検出するとともに前記第2データ処理装置との間の通信速度を監視する移動決定ユニットと、
     を含み、
     前記メモリ管理ユニットがメモリの容量の不足を検出するときに、前記データの共有部分を前記複数のデータ処理装置の第3データ処理装置に送信すること
     を特徴とするデータ処理システム。
  11.  前記電池残量監視ユニットが前記電池残量の減少を検出するときに、前記データの共有部分を前記複数のデータ処理装置の第3データ処理装置に送信すること
     を特徴とする請求項10に記載のデータ処理システム。
  12.  前記移動決定ユニットが前記相対位置の増加または前記通信速度の減少を検出するときに、前記データの共有部分を前記複数のデータ処理装置の第3データ処理装置に送信すること
     を特徴とする請求項10または請求項11に記載のデータ処理システム。
PCT/JP2011/062544 2011-05-31 2011-05-31 データ共有方法およびデータ処理システム WO2012164695A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2011/062544 WO2012164695A1 (ja) 2011-05-31 2011-05-31 データ共有方法およびデータ処理システム
JP2013517753A JP5641137B2 (ja) 2011-05-31 2011-05-31 共有方法およびデータ処理システム
US14/090,954 US9553928B2 (en) 2011-05-31 2013-11-26 Data sharing method and data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/062544 WO2012164695A1 (ja) 2011-05-31 2011-05-31 データ共有方法およびデータ処理システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/090,954 Continuation US9553928B2 (en) 2011-05-31 2013-11-26 Data sharing method and data processing system

Publications (1)

Publication Number Publication Date
WO2012164695A1 true WO2012164695A1 (ja) 2012-12-06

Family

ID=47258580

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/062544 WO2012164695A1 (ja) 2011-05-31 2011-05-31 データ共有方法およびデータ処理システム

Country Status (3)

Country Link
US (1) US9553928B2 (ja)
JP (1) JP5641137B2 (ja)
WO (1) WO2012164695A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9280386B1 (en) * 2011-07-14 2016-03-08 Google Inc. Identifying task instance outliers based on metric data in a large scale parallel processing system
CN104750614B (zh) * 2013-12-26 2018-04-10 伊姆西公司 用于管理存储器的方法和装置
JP7287471B2 (ja) * 2019-08-09 2023-06-06 日本電信電話株式会社 無線端末局装置、無線通信システムおよび無線通信方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187524A (ja) * 1996-12-20 1998-07-21 Nippon Telegr & Teleph Corp <Ntt> 計算機ネットワークを用いた情報管理方法および計算機ネットワークを用いた情報管理システム
JP2002112314A (ja) * 2000-09-28 2002-04-12 Toshiba Corp 情報保守システム及び情報保守方法
JP2008306682A (ja) * 2007-06-11 2008-12-18 Sharp Corp 端末装置、サーバ、及びシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1115732A (ja) 1997-06-19 1999-01-22 Nec Software Ltd 仮想記憶方法およびその記録媒体
JP2007011700A (ja) * 2005-06-30 2007-01-18 Brother Ind Ltd 情報処理装置、通信システム、管理装置、及び、プログラム
US8627326B2 (en) * 2005-12-22 2014-01-07 Sap Ag System and methods for using a quantitative application measurement to determine whether to instantiate an application
US8355711B2 (en) * 2008-07-25 2013-01-15 Zerotouchdigital Collaborative computing for mobile devices
US20120254280A1 (en) * 2011-04-04 2012-10-04 Parker Ii Lansing Arthur Method and system for distributed computing using mobile devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187524A (ja) * 1996-12-20 1998-07-21 Nippon Telegr & Teleph Corp <Ntt> 計算機ネットワークを用いた情報管理方法および計算機ネットワークを用いた情報管理システム
JP2002112314A (ja) * 2000-09-28 2002-04-12 Toshiba Corp 情報保守システム及び情報保守方法
JP2008306682A (ja) * 2007-06-11 2008-12-18 Sharp Corp 端末装置、サーバ、及びシステム

Also Published As

Publication number Publication date
US9553928B2 (en) 2017-01-24
JP5641137B2 (ja) 2014-12-17
US20140089377A1 (en) 2014-03-27
JPWO2012164695A1 (ja) 2014-07-31

Similar Documents

Publication Publication Date Title
US9021217B2 (en) Communication apparatus, load distribution method, and recording medium
US8542836B2 (en) System, apparatus and methods for highly scalable continuous roaming within a wireless network
WO2018171541A1 (zh) 无线充电方法、装置及系统
US8321561B2 (en) Information sharing method between neighboring nodes, node and information sharing program
KR20130020021A (ko) 무선 디바이스의 에너지 공유 방법 및 장치
JP5439219B2 (ja) メッセージ配信システム及びメッセージ配信方法
KR102296162B1 (ko) 무선랜 통신 연결 방법 및 그 전자 장치
KR101665273B1 (ko) 모바일 디바이스의 전력 소비 관리
KR102172169B1 (ko) 분산형 클라우드 기반 어플리케이션 실행 시스템, 이에 적용되는 장치 및 장치의 동작 방법
JP7492585B2 (ja) 測位情報の処理方法、装置及び記憶媒体
US20170289251A1 (en) Data processing method
JP5641137B2 (ja) 共有方法およびデータ処理システム
JP2018160017A (ja) サーバ、サービス提供システム、サービス提供方法及びプログラム
US8725089B2 (en) First hub and second hub communicating by temporal connection between different wireless body area networks (WBANs) and communication method thereof
JP6747571B2 (ja) 無線アドホックネットワークにおける通信端末、通信方法及び通信プログラム
JP6264752B2 (ja) 制御方法、制御装置および通信システム
US10631135B2 (en) Information processing device, information processing system, and information processing method
US11770754B2 (en) Network management apparatus, network management method, and storage medium for network comprising a plurality of vehicles and plurality of mobile terminals
US9787527B1 (en) System, method, and computer program for network connectivity policy exchange based on a location of a mobile device
KR20140046827A (ko) 네트워크 설정 시스템 및 그 방법
JP4699944B2 (ja) 通信管理方法及び管理サーバ
EP2754318B1 (en) Method and apparatuses for wireless communication among disparate devices
US9515917B2 (en) Communications apparatus, system, and communications method
JP6642182B2 (ja) 無線通信端末
KR20160092380A (ko) 멀티-모바일 네트워크 환경에서의 이동성 제어 장치, 모바일 통신 장치, 및 이동성 서비스를 제공 방법

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013517753

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

Country of ref document: EP

Kind code of ref document: A1