Information processing device, control method for information processing device, and program
A temporary storage area in inter-process communication allows message processing without loss, addressing synchronization challenges in real-time systems by ensuring message delivery even if the receiver is not ready.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- CANON KK
- Filing Date
- 2026-04-20
- Publication Date
- 2026-06-25
AI Technical Summary
In systems requiring real-time control, inter-process communication may fail if the receiver is not ready to receive messages, as conventional synchronization methods can disrupt the system, and using a standby path does not guarantee normal communication.
A mechanism where a temporary storage area accessible to both processes is used, allowing the receiver to process messages by checking for stored information after initialization, ensuring message delivery even if the receiver is not ready.
Ensures normal message processing without loss, even when the receiver is not prepared, suitable for real-time systems and systems where synchronization is difficult.
Smart Images

Figure 2026105037000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an information processing apparatus, a control method for an information processing apparatus, and a program.
Background Art
[0002] Conventionally, there is an operation technique for a path network that performs communication between nodes using a communication path of a working path and a communication path of a standby path. The communication path of the working path and the communication path of the standby path are used to transmit the same signal between the same nodes via different paths, and the same communication method is used. When the communication path of the working path fails, the communication path of the standby path becomes available.
[0003] In Patent Document 1, there is provided a technique for temporarily diverting the communication path of the standby path to the communication path of the working path in order to increase the bandwidth of the communication path of the working path when a bandwidth increase occurs in the path network, which includes one or more communication paths of the working path and one or more communication paths of the standby path.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] When an abnormality occurs in inter-process communication, it may be considered to switch from the working path to the standby path and perform communication as in the conventional case. However, in the case of inter-process communication, even if communication is performed on the standby path by the same communication method as the working path as in the conventional case, there is no guarantee that inter-process communication can be performed normally. For example, even if the preparation is completed in the transmitting process, if the receiving process is not ready to receive, correct inter-process communication cannot be performed even if the standby path is used.
[0006] One possible solution to this problem is to synchronize the sender and receiver processes, rather than using a backup path, and communicate from the sender process to the receiver process only after the receiver is ready. However, in systems requiring real-time control, this synchronization process between processes can affect the entire system, making this method unsuitable in some cases. Therefore, a mechanism is needed that can be used even when it is not easy to synchronize the sender and receiver processes at startup, as is the case in systems requiring real-time control, and when the sender process is ready to send before the receiver is ready to receive. In other words, a mechanism is needed for inter-process communication that ensures the receiver process does not lose messages even if the sender process notifies the receiver process of a message before the receiver is ready to receive.
[0007] This invention was made to solve the above-mentioned problems. The purpose of this invention is to provide a mechanism that allows the receiving process to process messages normally without losing any messages, even when a message is notified from the sending process to the receiving process, regardless of whether the receiving process has completed preparation for receiving. [Means for solving the problem]
[0008] The present invention comprises a control means for executing a first process and a second process which receives a message transmitted from the first process and performs predetermined processing based on the reception of the message, and a predetermined storage area accessible to both the first process and the second process, wherein the first process stores predetermined information in the storage area when it transmits the message to the second process, and the second process, at the timing related to the completion of preparations for inter-process communication with the first process which is performed at the start of the second process, if the information is stored in the storage area, it deems that it has received the message from the first process and performs the processing. [Effects of the Invention]
[0009] According to the present invention, even if a message is notified from the transmitting process to the receiving process, regardless of whether the receiving process has completed preparation for receiving, the receiving process can process the message normally without losing any messages. [Brief explanation of the drawing]
[0010] [Figure 1] A block diagram showing an example of the system configuration of the image forming apparatus of this embodiment. [Figure 2] A block diagram showing an example of the configuration of the controller of the image forming apparatus according to this embodiment. [Figure 3] A diagram illustrating the general outline of conventional inter-process communication and an example of the sequence of each process during startup of an image forming apparatus. [Figure 4] A diagram illustrating a schematic example of inter-process communication in this embodiment. [Figure 5] A flowchart illustrating an example of inter-process communication in this embodiment. [Modes for carrying out the invention]
[0011] Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings. Furthermore, the following embodiments do not limit the scope of the present invention as defined in the claims, and not all combinations of features described in these embodiments are necessarily essential to the solution of the present invention. In this embodiment, an image forming apparatus as one embodiment of the information processing apparatus according to the present invention will be described.
[0012] <System Configuration Description> Figure 1 is a block diagram showing an example of the system configuration of an image forming apparatus, illustrating one embodiment of the information processing apparatus of the present invention. The image forming apparatus 1 includes modules such as a scanner 2, a printer 4, an operating unit 5, a hard disk drive 6, a fax machine 7, a heat dissipation device 8, and a controller 3.
[0013] The scanner device 2 optically reads an image from a document and converts it into a digital image. The printer device 4 outputs a digital image onto paper or the like. The operation unit 5 is for operating the present device and displaying information to the user. The hard disk device 6 stores digital images, control programs, etc. (hereinafter referred to as "HDD device"). The FAX device 7 transmits and receives digital images via a telephone line or the like. The exhaust heat device 8 is provided to cool the heat inside the image forming device 1 and maintain the temperature appropriately.
[0014] The controller 3 is connected to each of the above modules and can execute a job on the image forming device 1 by issuing instructions to each module. The controller 3 can be connected to the LAN 9. The image forming device 1 can be connected to the computer 10 via the LAN 9 and can also perform input / output of digital images, issuance of jobs, instructions for devices, etc.
[0015] The scanner device 2 has a document feeding unit 21 capable of automatically feeding documents sequentially from a document stack, and a scanner unit 22 capable of optically scanning a document and converting it into a digital image. The image data converted into a digital image by the scanner unit 22 is transmitted to the controller 3.
[0016] The printer device 4 has a paper feeding unit 42 capable of sequentially feeding papers one by one from a paper stack, a marking unit 41 for printing image data on the fed paper, and a paper discharging unit 43 for discharging the printed paper.
[0017] The exhaust heat device 8 is a fan (FAN) provided to cool the heat inside the image forming device 1. In the present embodiment, the exhaust heat device 8 refers to a power FAN that cools the power supply unit, but in addition, a controller FAN that cools the controller unit, an HDD FAN that cools the HDD device 6, etc. may also be provided.
[0018] The computer 10 issues an instruction to the controller 3 via the LAN 9 to execute a job. For example, the computer 10 issues an OFF instruction to the controller 3, and the controller 3 controls the OFF process of the image forming apparatus 1.
[0019] The image forming apparatus 1 can execute various jobs to realize various functions. An example thereof is described below. · Copy function: Record the image read from the scanner device 2 in the HDD device 6, and at the same time perform printing using the printer device 4. · Image transmission function: Transmit the image read from the scanner device 2 to the computer 10 or the like via the LAN 9. · Image storage function: Record the image read from the scanner device 2 in the HDD device 6, and perform image transmission and image printing as necessary. · Image printing function: Analyze, for example, the page description language transmitted from the computer 10 or the like, and print it with the printer device 4.
[0020] FIG. 2 is a block diagram showing an example of the configuration of the controller 3. The controller 3 has a main board 200 and a sub-board 220. The main board 200 is a so-called general-purpose CPU system. The main board 200 has a main CPU 201, a boot ROM 202, a memory 203, a bus controller 204, a non-volatile memory 205, an RTC 206, a USB controller 207, a disk controller 208, a flash disk 209, and a NIC 210.
[0021] The main CPU 201 controls the entire main board 200. The boot ROM 202 stores a boot program. The memory 203 is used as a work memory for the CPU 201. The bus controller 204 has a bridge function with an external bus. The non-volatile memory 205 is a storage device for storing various information and retains the information even when the power is turned off. The RTC 206 has a clock function.
[0022] The USB controller 207 can control connected USB devices (e.g., USB memory 211). The disk controller 208 controls storage devices (e.g., HDD device 6 or flash disk 209). The flash disk 209 is a relatively small-capacity non-volatile storage device made of semiconductor devices, such as an SSD (Solid State Drive). The NIC 210 is a network interface controller that controls the connection to LAN 9. The main board 200 is connected to external devices such as a USB memory stick 211, an operation unit 5, an HDD device 6, and a heat dissipation device 8.
[0023] Subboard 220 consists of a relatively small general-purpose sub-CPU system and image processing hardware, etc. The sub-board 220 includes a sub-CPU 221, memory 223, bus controller 224, non-volatile memory 225, image processing processor 227, engine controller 226, and the like.
[0024] The sub-CPU 221 controls the entire sub-board 220. Memory 223 is used as work memory by the sub-CPU. The bus controller 224 has a bridging function with the external bus. Non-volatile memory 225 is memory in which data is not lost even when the power is turned off. The image processing processor 227 performs real-time digital image processing. The engine controller 226 controls external devices. The external scanner device 2 and the external printer device 4 exchange digital image data via the engine controller 226. The sub-CPU 221 directly controls the fax device 7.
[0025] Note that Figure 2 is a simplified block diagram. For example, the main CPU 201 and sub-CPU 221, etc., include many CPU peripheral hardware components such as chipsets, bus bridges, and clock generators, but they are depicted in a simplified manner. The description in the block diagram of Figure 2 does not limit the present invention.
[0026] The operation of controller 3 will be explained using image copying as an example. When the user instructs the operator 5 to copy an image of the original document, the main CPU 201 sends an image reading command to the scanner device 2 via the sub-CPU 221. The scanner device 2 optically scans the paper document and converts it into digital image data, and inputs the digital image data to the image processing processor 227 via the engine controller 226. The image processing processor performs a DMA transfer to the memory 223 via the sub-CPU 221 to temporarily store the digital image data.
[0027] When the main CPU 201 confirms that a certain amount or all of the digital image data has been stored in memory 223, it issues an image output instruction to the printer device 4 via the sub-CPU 221. The sub-CPU 221 informs the image processing processor 227 of the location of the image data in memory 223. The image processing processor 227 transmits the image data from memory 223 to the printer device 4 via the engine controller 226, according to the synchronization signal from the printer device 4. The printer device 4 prints the digital image data onto paper or the like.
[0028] Furthermore, when printing multiple copies, the main CPU 201 saves the image data from memory 223 to HDD device 6, and for the second and subsequent copies, it is possible to send the image data saved in HDD device 6 to the printer device 4 without receiving image data from scanner device 2.
[0029] The following describes the control of the heat dissipation device 8 as an example of control using inter-process communication in the image forming apparatus 1. Figure 3(a) is a diagram illustrating a schematic of conventional inter-process communication (here, inter-process communication in the control of a heat dissipation device as an example). Control of the heat dissipation device 8 using conventional inter-process communication is performed as follows.
[0030] The heat dissipation device control process 301 monitors the status of the controller 3. The heat dissipation device control process 301 rotates and stops the heat dissipation device 8 using a control signal 303 in response to changes in the status of the controller 3, such as when the image forming apparatus 1 is started up, in standby mode, during job execution, or when an error occurs due to the controller 3.
[0031] The printer control process 302 communicates with the printer device 4 via the sub-board 220 and obtains the status of the printer device 4. When the printer control process 302 obtains a change in the status of the printer device 4, such as during printing, when a JAM occurs, or when an error occurs caused by the printer device 4, it notifies the heat dissipation device control process 301 via a notification signal 304. Based on the receipt of this notification signal 304, the heat dissipation device control process 301 controls the heat dissipation device 8. In addition to the above, the printer control process 302 also communicates with the printer device 4 and performs various other controls, but these are omitted from this explanation.
[0032] Next, the sequence of each of the above processes at the start-up of the image forming apparatus 1 will be described. Figure 3(b) shows an example of the sequence of each of the above processes when the image forming apparatus 1 is started up.
[0033] The printer device control process 302 starts earlier than the heat dissipation device control process 301 (process start 305) in order to enable the user to use the image forming apparatus 1 as soon as possible after the image forming apparatus 1 is started up. After process start 305, the printer device control process 302 performs initialization and begins preparations for inter-process communication with the heat dissipation device control process 301. Once the inter-process communication preparations are complete (inter-process communication preparations complete 306), the printer device control process 302 becomes capable of sending a notification signal 304.
[0034] Next, the sequence of the heat dissipation device control process 301 will be described. The heat dissipation device control process 301 operates asynchronously with the printer device control process 302. The heat dissipation device control process 301 starts before or after the printer device control process 302 is ready for inter-process communication (process start 307). After process start 307, the heat dissipation device control process 301 performs initialization and begins preparations for inter-process communication with the printer device control process 302. Once the inter-process communication preparations are complete (inter-process communication preparations complete 308), the heat dissipation device control process 301 becomes capable of receiving notification signals 304.
[0035] From the completion of inter-process communication preparation 306 for the printer device control process 302 to the completion of inter-process communication preparation 308 for the heat dissipation device control process 301, inter-process communication is not possible because the heat dissipation device control process 301 is not yet ready for inter-process communication. Therefore, even if an error occurs during this section 309, causing the printer device control process 302 to send a notification signal 304 to the heat dissipation device control process 301, the signal will not be transmitted to the heat dissipation device control process 301 (it will not be received). As a result, the heat dissipation device 8 cannot be controlled correctly.
[0036] Figure 4 is a diagram illustrating the schematic of inter-process communication in this embodiment (here, as an example, inter-process communication in the control of a heat dissipation device). In this embodiment, the image forming apparatus 1 is provided with a temporary folder 401 on the main board 200 that is accessible by both the heat dissipation device control process 301 and the printer device control process 302. The temporary folder 401 is a folder in which all files are erased when the power to the image forming apparatus 1 is turned on again. In this embodiment, the temporary folder 401 is provided in a predetermined area (e.g., a RAM disk) in the memory 203, but is not limited to this.
[0037] When the printer device control process 302 notifies the heat dissipation device control process 301 of a notification signal 304, it accesses the temporary folder 401 (404) and creates a file 402 with a name that has been agreed upon in advance with the heat dissipation device control process 301.
[0038] The heat dissipation device control process 301 accesses the temporary folder 401 only once (403) immediately before the completion of the initialization process and the completion of inter-process communication preparation 308, to check if the file 402 generated by the printer device control process 302 exists. If the file 402 exists, the heat dissipation device control process 301 assumes that a notification signal 304 was sent from the printer device control process 302 to the heat dissipation device control process 301 during the inter-process communication disabled section 309. In this case, the heat dissipation device control process 301 assumes that it received the notification signal 304 and performs the control of the heat dissipation device 8 that is performed when a notification signal 304 is received. On the other hand, if the file 402 does not exist, the heat dissipation device control process 301 assumes that there was no notification signal 304 sent from the printer device control process 302 to the heat dissipation device control process 301 during the inter-process communication disabled section 309 and waits for the completion of inter-process communication preparation 308. After inter-process communication preparation is complete 308, normal inter-process communication is performed between the printer device control process 302 and the heat dissipation device control process 301.
[0039] Hereinafter, the printer device control process 302 will be referred to as the "transmitting process" and the heat dissipation device control process 301 as the "receiving process," and the inter-process communication in this embodiment will be described in general terms. Here, using Figure 5, we will explain how the receiving process can process messages normally without losing any messages, even when the transmitting process sends a message before the receiving process is ready for inter-process communication.
[0040] Figure 5 is a flowchart showing an example of inter-process communication in this embodiment. In the figure, the processing of the transmitting process and the receiving process are realized by the main CPU 201 executing a program stored in a storage device such as the boot ROM 202, non-volatile memory 205, flash disk 209, or HDD device 6 in the example of Figure 2.
[0041] When CPU201 starts the sending process, the sending process performs initialization (S501), including initializing various hardware components, initializing variables, and starting the main task, excluding preparation for inter-process communication, and then prepares for inter-process communication (S502). Once the preparation for inter-process communication is complete, the sending process can send a message to the receiving process and proceeds to S503.
[0042] In S503, the sending process determines whether it needs to send a message to the receiving process. If it does need to send a message (Yes in S503), the sending process sends the message to the receiving process (S504), then creates a file in the temporary folder (S505), and returns processing to S503. In the example in Figure 4, the message sent in S504 corresponds to "notification signal 304". The order of processing in S504 and S505 may be reversed. On the other hand, if there is no need to send a message in S503 (the answer is No in S503), the sending process performs the same decision in S503 again.
[0043] When CPU201 starts the receiving process, the receiving process performs initialization processing, including initializing various hardware components, initializing variables, and starting the main task, excluding preparation for inter-process communication (S506), and then starts preparing for inter-process communication (S507). Just before the preparation for inter-process communication is complete, the receiving process determines whether file 402 exists in the temporary folder 401 (S507). If file 402 exists in the temporary folder 401 (if Yes in S507), the receiving process considers that it received a message before the preparation for inter-process communication was complete and performs the processing required for message reception (S511). In the example in Figure 4, the processing in S511 corresponds to sending control signal 303, for example, calling a registered callback function.
[0044] On the other hand, if file 402 does not exist in temporary folder 401 (the answer is No in S507), the receiving process proceeds to S510 once it has finished preparing for inter-process communication (S509). In S510, the receiving process determines whether it has received a message from the sending process. In the example in Figure 4, the message that S510 determines to have been received corresponds to "notification signal 304".
[0045] If no message has been received (S510 is No), the receiving process waits for a message to be received at S510. On the other hand, if a message is received (Yes in S510), the receiving process performs the processing required when a message is received (511). After processing in S511, the receiving process returns to S510 and waits again for a message from the sending process.
[0046] The above description describes a configuration in which the printer device control process 302 notifies the heat dissipation device control process 301 by generating a file 402 in a temporary folder 401 located in a predetermined area of memory 203. Note that the temporary folder 401 may be located in another storage area (non-volatile memory 205, flash disk 209, hard disk drive 6, etc.). However, if the temporary folder 401 is located in a non-volatile storage area, all files in the temporary folder 401 will be erased when the power is turned on again or after the existence of file 402 is confirmed in S508 in Figure 5. Furthermore, the configuration for saving file 402 in the temporary folder 401 may be changed to any configuration in which predetermined information is stored in a predetermined storage area accessible from both the sending process and the receiving process. For example, it may be a configuration in which a bit is set at a predetermined address or predetermined register in memory accessible from both processes.
[0047] Furthermore, the above explanation described a configuration in which the receiving process accesses the temporary folder 401 to check for the existence of file 402 immediately after the initialization process is complete and inter-process communication preparations are finished. However, the receiving process may also access the temporary folder 401 to check for the existence of file 402 immediately after inter-process communication preparations are finished, for example. In other words, any configuration that checks whether predetermined information is stored in a predetermined storage area at the timing related to the completion of inter-process communication preparations is acceptable.
[0048] As described above, in this embodiment, a temporary folder is provided, which is a folder (directory) that can be accessed by both the sending process and the receiving process, and whose files are deleted when the system power is turned off. The sending process creates a file in the temporary directory each time it notifies the receiving process of a message. The receiving process checks whether a file has been created in the temporary folder by the sending process only once, for example, just before the receiving process is ready after the initialization process is complete. If a file has been created, it is assumed that a message was notified before the receiving process was ready, and processing is performed, including calling a registered callback function, just as would be done when a message is received under normal circumstances. In other words, in inter-process communication, if an abnormality occurs in the normal inter-process communication path, or if one of the processes is not ready, a method different from the normal inter-process communication method (sending notification signal 304 in the above example) is used (file 402 in the above example). This makes it possible for the receiving process to receive and process notifications from the sending process without missing any, even in the event of an abnormality in communication using the normal inter-process communication method.
[0049] Furthermore, since this embodiment does not synchronize the sending process and the receiving process, it can be used even in systems that require real-time control. In systems where it is not easy to synchronize the sending and receiving processes, even if the sending process notifies the receiving process of a message before the receiving process is ready to receive, the receiving process will not miss any messages. Therefore, regardless of whether the receiving process is ready to receive or not, even if the sending process notifies the receiving process of a message without synchronization, the receiving process can process the messages normally without missing any.
[0050] Furthermore, the present invention is not limited to image forming apparatuses, but is applicable to various information processing devices that use inter-process communication. It is applicable to all kinds of devices (electronic devices) that have a built-in computer, such as home appliances and automobiles. For example, in an electronic device having multiple modules, the transmitting process monitors the state of any of the modules and, when it obtains a predetermined state change from the module, sends a message (notification signal 304 in the above example) to the receiving process. The receiving process is a process that controls any of the other modules and, upon receiving the message from the transmitting process, executes predetermined processing to perform predetermined control on the other module. In addition, it has a predetermined storage area accessible to both the transmitting and receiving processes, and the transmitting process stores predetermined information in the storage area when it sends the message to the receiving process. At the timing related to the completion of preparation for inter-process communication with the transmitting process, which is performed at the start of the receiving process, if the information is stored in the storage area, the receiving process considers that it has received the message from the transmitting process and performs the processing. With this configuration, even if the receiving process has notified the receiving process of a message from the sending process, regardless of whether the receiving process has completed preparation for receiving, the receiving process can control the message without losing any messages.
[0051] It should be noted that the structure and content of the various data described above are not limited to those mentioned, and it goes without saying that they can be composed of various structures and contents depending on the use and purpose. Although one embodiment has been described above, the present invention can take the form of, for example, a system, apparatus, method, program, or storage medium. Specifically, it may be applied to a system consisting of multiple devices, or to an apparatus consisting of a single device. Furthermore, any configurations combining the above embodiments are also included in the present invention.
[0052] (Other embodiments) The present invention can also be realized by supplying a program that implements one or more of the functions of the above-described embodiments to a system or device via a network or storage medium, and by having one or more processors in the computer of that system or device read and execute the program. It can also be realized by a circuit (e.g., an ASIC) that implements one or more functions. Furthermore, the present invention may be applied to a system consisting of multiple devices or to a device consisting of a single device. The present invention is not limited to the embodiments described above, and various modifications (including organic combinations of each embodiment) are possible based on the spirit of the invention, and these are not excluded from the scope of the invention. That is, all configurations that combine the above-described embodiments and their modified forms are included in the present invention. [Explanation of Symbols]
[0053] 1. Image forming apparatus 3. Controller (control device) 4. Printer device 8. Heat dissipation device 200 Mainboard 320 Subboard 301 Heat Dissipation System Control Process 302 Printer device control process 304 notification signal 401 Temporary Folder 402 File
Claims
1. Control means for executing a first process and a second process which receives a message transmitted from the first process and performs predetermined processing based on the reception of the message, It has a predetermined storage area accessible to both the first process and the second process, When the first process sends the message to the second process, it stores a predetermined file in the predetermined storage area. The information processing apparatus is characterized in that the second process determines whether the predetermined file is stored in the predetermined storage area before the preparation for inter-process communication with the first process, which is performed at the start of the second process, is completed, and if the predetermined file is stored, it performs the predetermined processing.
2. The information processing apparatus according to claim 1, characterized in that the predetermined file is a file whose name is determined by the first process and the second process.
3. The first process and the second process are processes that are started when the information processing device is started. The information processing device according to claim 1 or 2, characterized in that the information stored in the predetermined storage area is erased when the information processing device is started up.
4. The information processing apparatus according to any one of claims 1 to 3, characterized in that the predetermined storage area is a folder provided in the memory of the information processing apparatus, and the predetermined file is a file generated in the folder.
5. The aforementioned information processing apparatus is an image forming apparatus having an image forming means and a heat dissipation means, The first process monitors the state of the image forming means and, when it obtains a predetermined state change from the image forming means, sends the message to the second process. The information processing apparatus according to any one of claims 1 to 4, wherein the second process is a process for controlling the heat dissipation means, and when it receives the message from the first process it executes the process and performs predetermined control on the heat dissipation means.
6. The aforementioned information processing device is an electronic device having multiple modules, The first process monitors the state of any of the modules and, when it obtains a predetermined state change from the module, sends the message to the second process. The information processing apparatus according to any one of claims 1 to 5, wherein the second process is a process that controls any of the other modules, and when it receives the message from the first process it executes the predetermined processing and performs predetermined control on the other modules.
7. Control means for executing a first process and a second process which receives a message transmitted from the first process and performs predetermined processing based on the reception of the message, A predetermined storage area accessible to both the first process and the second process, A control method for an information processing device, The first process stores a predetermined file in the predetermined storage area when it sends the message to the second process, The second process determines whether the predetermined file is stored in the predetermined storage area before the preparation for inter-process communication with the first process, which is performed at the start of the second process, is completed, and if the predetermined file is stored, it performs the predetermined processing. A control method for an information processing device, characterized by having the following features.
8. A program for causing a computer to execute the control method for the information processing device described in claim 7.