WO2006035730A1 - 情報処理装置、通信処理方法、並びにコンピュータ・プログラム - Google Patents

情報処理装置、通信処理方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
WO2006035730A1
WO2006035730A1 PCT/JP2005/017648 JP2005017648W WO2006035730A1 WO 2006035730 A1 WO2006035730 A1 WO 2006035730A1 JP 2005017648 W JP2005017648 W JP 2005017648W WO 2006035730 A1 WO2006035730 A1 WO 2006035730A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
communication
socket
address space
message area
Prior art date
Application number
PCT/JP2005/017648
Other languages
English (en)
French (fr)
Inventor
Tomoyuki Suzuka
Original Assignee
Sony Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corporation filed Critical Sony Corporation
Priority to US10/580,847 priority Critical patent/US20070277179A1/en
Publication of WO2006035730A1 publication Critical patent/WO2006035730A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Definitions

  • the present invention relates to an information processing device, a communication processing method, and a computer program. More specifically, the present invention relates to an information processing apparatus that executes message transfer control between OSs, a communication processing method, and a computer program according to a multi-OS configuration that enables process execution by a plurality of operating systems (OSs). .
  • OSs operating systems
  • each OS can execute different processes, and hardware common to the systems, that is, CPU, memory, etc. Processing is performed by sequentially switching to time series.
  • Scheduling of execution processes (tasks) of each of a plurality of OSs is performed by, for example, partition management software.
  • OS (a) and OS ( ⁇ ) coexist in one system, let os (a) be the process of partition A,
  • the partition management software determines the execution schedule of partition A and partition B, allocates hardware resources based on the determined schedule, and executes processing in each OS Do.
  • Patent Document 1 discloses a task scheduling method for preferentially processing urgent processing in task management performed in each of a plurality of OSs.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2003- 345612
  • An object of the present invention is to provide an information processing apparatus, a communication processing method, and a computer program.
  • a first aspect of the present invention is
  • An information processing apparatus that stores multiple operating systems (OSs), and has a control OS that executes communication control between multiple OSs,
  • the control OS is a control OS
  • Communication execution This is the configuration to execute message transfer control between logical partitions set corresponding to each OS, and the mapping of the message area of physical address space to the message area of logical partition address space of message transmission side OS
  • the information processing apparatus is characterized in that the process of switching to the state of mapping to the message area of the logical partition address space of the message receiving side OS is executed to perform the message transfer control between the communication execution OSs.
  • At least one communication execution OS in the communication execution OS is a socket associated with a file descriptor that can be identified by a file system managed by itself. And a virtual file accessible via the socket, and a message area of the physical address space is accessed via the virtual file.
  • the communication execution OS executing communication to which the socket is applied acquires an identifier of a virtual file associated with the socket.
  • the present invention is characterized in that it is configured to execute message writing or message reading applying the virtual file specified by the acquired virtual file identifier. Furthermore, in one embodiment of the information processing apparatus of the present invention, at least one communication execution OS in the communication execution OS is a socket associated with a file descriptor identifiable by a file system managed by itself. , And the message area of the physical address space is mapped to the process address space through the socket, and the process directly accesses the message area.
  • At least one communication execution OS in the communication execution OS is a socket associated with a file descriptor identifiable by a file system managed by itself. , And the message area of the physical address space is mapped to the address space of the logical partition corresponding to the communication execution OS through the socket, and the access to the message area is executed. I assume.
  • the communication execution executing communication to which the socket is applied sets the service identifier corresponding to the socket and executes the communication permission setting corresponding to the service. It is characterized in that
  • the communication execution executing communication that applies the socket is characterized in that the reception monitoring process of the message through the socket is executed. I assume.
  • the communication execution OS executes reception monitoring processing of a message via the socket by applying a select system call as a system call. It is characterized in that it is a configuration.
  • At least one communication execution OS executing message transfer has a socket associated with a file descriptor identifiable by the file system managed by itself.
  • a virtual file which can be created and accessible through the socket is created, and message transmission / reception is performed by accessing a message area of the physical address space through the virtual file.
  • the communication execution executing communication that applies the socket acquires the identifier of the virtual file associated with the socket, and uses the acquired virtual file identifier. It is characterized in that message writing or message reading applying the identified virtual file is performed.
  • At least one communication execution OS in the communication execution OS is a socket associated with a file descriptor identifiable by a file system managed by itself. , And the message area of the physical address space is mapped to the process address space through the socket, and the process directly performs access to the message area.
  • At least one communication execution OS in the communication execution OS is a socket associated with a file descriptor identifiable by a file system managed by itself.
  • the message area of the physical address space is mapped to the address space of the logical partition corresponding to the communication execution OS through the socket, and the access to the message area is executed.
  • the communication execution executing communication to which the socket is applied sets the service identifier corresponding to the socket and executes the communication permission setting corresponding to the service. It is characterized by
  • a communication execution OS that executes communication to which a socket is applied is characterized in that reception monitoring processing of a message via the socket is executed.
  • the communication execution OS is a system. It is characterized in that the reception monitoring process of the message through the socket is executed by applying a select system call as a stem call.
  • a computer program that performs communication processing control in an information processing apparatus that stores multiple operating systems (OSs),
  • a computer program that performs communication processing control in an information processing apparatus that stores multiple operating systems (OSs),
  • a fifth aspect of the present invention relates to
  • a computer program that performs communication processing control in an information processing apparatus that stores multiple operating systems (OSs),
  • the process directly performs access to the message area; Is a computer program characterized by having.
  • the computer 'program' of the present invention may be, for example, a storage medium or communication medium, such as a CD, which is provided in a computer readable form to a general purpose computer system capable of executing various program 'codes. It is a computer program that can be provided by a storage medium such as FD or MO, or a communication medium such as a network. By providing such a program in a computer readable form, processing according to the program is realized on the computer system.
  • a system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to those in the same casing.
  • a control OS for executing communication control between the OSs is set, and the control OS executes communication It is configured to execute message transfer control between logical partitions set corresponding to each OS, and the message area of physical address space is mapped to the message area of logical partition address space of message sender OS. From this, the process of switching to the state of mapping to the message area of the logical partition address space of the message receiving side OS is executed to control message transfer between OSs, so smooth communication in communication between different OSs is possible. Become.
  • the communication execution OS generates a socket associated with the file descriptor identifiable by the file system managed by itself and creates a virtual file accessible through the socket. Since message transmission and reception is performed by accessing the message area of the physical address space via the virtual file, message passing using general-purpose sockets is realized in communication with different OSs. .
  • the communication execution OS generates a socket associated with a file descriptor that can be identified by the file system managed by itself. Since the message area of the physical address space is mapped to the process address space via the interface, and the process directly accesses the message area, a generic socket can be used to communicate with different OSs. At the same time as the applied message passing is realized, access to the process power S message area with less overhead is realized.
  • FIG. 1 is a view showing a configuration example of an information processing apparatus of the present invention.
  • FIG. 2 is a view showing a configuration example of a processor module.
  • FIG. 3 is a diagram for explaining the operation system configuration of the information processing apparatus of the present invention.
  • FIG. 4 A diagram for explaining communication processing between guest OSs.
  • FIG. 5 is a diagram for explaining address mapping in communication via a messaging channel.
  • FIG. 6 is a diagram for explaining a communication processing sequence between guest OSs.
  • FIG. 7 is a diagram for explaining communication processing between a system control OS and a guest OS in the case of communication using a virtual file.
  • FIG. 8 A diagram for explaining processing based on a sys tem call, which is executed in communication processing between a system control OS and a guest OS, in the case of communication using a virtual file.
  • FIG. 9 is a flow diagram for explaining communication processing between the system control OS and a guest OS in the case of communication using a virtual file.
  • FIG. 10 is a diagram for explaining communication processing between a system control OS and a guest OS in the case of communication without using a virtual file.
  • FIG. 11 is a diagram for explaining processing based on a sys tem call, which is executed in communication processing between a system control OS and a guest OS, in the case of communication which does not use a virtual file.
  • FIG. 12 is a flow diagram for explaining communication processing between a system control OS and a guest OS in the case of communication which does not use a virtual file.
  • the processor module 101 is a module configured of a plurality of processors (Processing Units), and according to a program stored in a ROM (Read Only Memory) 104, an HDD 123, etc., an operating system (OS: Operating System), OS compatible Application Performs data processing in accordance with various programs such as programs.
  • OS Operating System
  • OS compatible Application Performs data processing in accordance with various programs such as programs.
  • the graphic engine 102 executes data generation for screen output to a display device constituting the output unit 122, for example, 3D graphic drawing processing, in accordance with an instruction input from the processor module 101.
  • a main memory (DRAM) 103 stores, in the processor module 101, a program to be executed and parameters and the like that appropriately change according to the execution of the program. These are mutually connected by a host bus 111 which is also configured as a CPU bus.
  • the host bus 111 is connected to an external bus 112 such as a peripheral component interconnect / interface (PCI) bus via the bridge 105.
  • the bridge 105 executes data input / output control between the host bus 111 and the external bus 112, and between the controller 106, the memory card 107, and other devices.
  • PCI peripheral component interconnect / interface
  • the input unit 121 inputs input information of an input device that is operated by the user, such as a keyboard and a pointing device.
  • the output unit 122 includes an image output unit such as a liquid crystal display device or a CRT (Cathode Ray Tube) and an audio output unit including a speaker and the like.
  • An HDD (Hard Disk Drive) 123 incorporates a hard disk and drives the hard disk to record or reproduce programs and information to be executed by the processor module 101. Ru.
  • the drive 124 reads out the data or program recorded on the removable recording medium 127 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, which has been installed. It is supplied to the main memory (DRAM) 103 connected via the interface 113, the external bus 112, the bridge 105, and the host bus 111.
  • DRAM main memory
  • connection port 125 is a port for connecting the externally connected device 128, and has a connection such as USB or IEEE1394.
  • the connection port 125 is connected to the processor module 101 or the like via the interface 113, the external bus 112, the bridge 105, and the host bus 111.
  • the communication unit 126 is connected to the network, and executes transmission of data provided from the processor module 101, the HDD 123 and the like, and data reception from the outside.
  • the processor module 200 is composed of a main processor group 201 consisting of a plurality of main processors and a plurality of sub processor groups 202 to 20n consisting of a plurality of sub processors. Each has a memory controller and a secondary cache. Each processor group 201 to 20 n has, for example, eight processor units, and is connected by a crossbar architecture or a packet switched network. Under the direction of the main processor of the main processor group 201, one or more sub processors of the plurality of sub processor groups 202 to 20 n are selected, and a predetermined program is executed.
  • the memory flow controller installed in each processor group executes data input / output control with main memory 103 shown in FIG. 1, and the secondary cache is used as a storage area for processing data in each processor group. Be done.
  • the information processing apparatus of the present invention has a multi-OS configuration in which a plurality of operating systems (OS) coexist. As shown in Figure 3, it has multiple operating systems (OSs) with a logical hierarchy.
  • OS operating systems
  • a control OS 301 is provided in the lower layer, and a plurality of guest OSs are provided in the upper layer. 302, 303, and the system control OS 304 are set.
  • the control OS 301 implements logical partitions applied by one or more processes executed in the processor module described with reference to FIG. 1 and FIG. 2 together with the system control OS 304, and hardware resources in the system (as computer resources Execute processing to allocate main processor, sub processor, memory, device etc. to each logical partition.
  • the guest OSs 302 and 303 are, for example, various OSs such as a game OS, Windows (registered trademark), Linux (registered trademark), etc., and are operating under the control of the control OS 301. Note that FIG. 3 shows only two guest operating systems, guest operating systems 302 and 303. The number of guest operating systems can be set to any number.
  • the guest OSs 302 and 303 operate in the logical partitions set by the control OS 301 and the system control OS 304, and apply hardware resources such as main processors, sub processors, memories, and devices assigned to the logical partitions. Perform various data processing.
  • the guest OS (a) 302 applies hardware resources such as a main processor, a sub processor, a memory, and a device assigned to the logical partition 2 set by the control OS 301 and the system control OS 304.
  • the guest OS (b) 303 applies the hardware resource such as the main processor, sub processor, memory, and device allocated to the logical partition n, and executes the application 'program 306 for the guest OS (b) 303.
  • the control OS 301 provides a guest OS programming interface as an interface required to execute a guest OS.
  • the system control OS 304 generates a system control program 307 including logical partition management information, and executes system operation control based on the system control program 307 together with the control OS 301.
  • the system control program 307 is a program that controls system policies using a system control program's programming interface. System control program 'Programming interface is provided from the control OS 301 to the system control OS 304.
  • the system control program 307 provides a means for flexible customization by the program, such as setting the upper limit value of resource allocation. It is a role.
  • the system control program 307 can control the behavior of the system using a system control program / programming interface. For example, a new logical partition can be created, and a new U, guest OS can be booted on that logical partition. In systems with multiple guest operating systems, those guest operating systems will be launched in the order preprogrammed into the system control program.
  • the resource allocation request submitted from the guest OS can be inspected before being accepted by the control OS 301, and the request itself can be corrected or corrected according to the system policy. This ensures that only certain guest operating systems do not monopolize resources.
  • a system control program is a system policy realized as a program.
  • the control OS 301 assigns a special logical partition (logical partition 1 in the figure) for the system control OS 304.
  • the control OS 301 operates in the hypervisor mode.
  • the guest operating system operates in supervisor mode.
  • the system control OS and application program operate in the problem mode (user mode).
  • a logical partition is an entity that receives resource allocation in the system.
  • the main memory 103 (see FIG. 1) is divided into several areas, and the right to use each area is given to the logical partition.
  • the types of resources distributed to logical partitions are as follows.
  • the guest OS operates in a logical partition.
  • the guest OS monopolizes the resources allocated to the logical partition to execute various data processing. Many In this case, one logical partition is created for each guest OS operating on the system. Each logical partition is given a unique identifier.
  • step S304 a system control program generated as logical partition management information is managed in association with an identifier.
  • the logical partitions are generated by the control OS 301 and the system control OS 304.
  • the logical partition immediately after creation has no resources, and no restriction on the resources used.
  • Logical partitions have two states: active and closed.
  • the logical partition immediately after generation is active. Based on the request of the guest OS operating in the logical partition, the logical partition transitions to the end state, is assigned to the logical partition, and all logical processors stop.
  • a logical processor is a logical processor assigned to a logical partition, and corresponds to any physical processor, ie, a processor in the processor group shown in FIG. However, a logical processor and a physical processor are not necessarily in a one-to-one relationship.
  • One logical processor may be associated with a plurality of physical processors, and a plurality of logical processors may be associated with one physical processor. .
  • the control OS 301 determines the correspondence between the logical processor and the physical processor.
  • the control OS 301 has a function of limiting the amount of resources used by each logical partition. Allocation without the guest OS 302, 303 communicating with the system control OS 304
  • Each logical partition has a control signal port. At this port, various control signals necessary for data exchange Z sharing between logical partitions arrive. Examples of control signals are listed below.
  • Control signals arriving at each logical partition are queued at the control signal port.
  • the depth of the queue is not limited as long as memory resources allow. Memory resources required for queuing are also secured by the logical partitioning ability that sends control signals. This Calls the guest OS programming interface to retrieve control signals from the port of. It is possible to send an event to any event port when a control signal arrives at an empty control signal port. The specification of the event port can be done by calling the guest os programming interface.
  • a logical partition is associated with each guest OS and each system control OS. Message transfer between each logical partition module is performed via a message channel generated by the control OS. Less than,
  • FIG. 4 is a conceptual diagram for explaining communication processing between two guest OSs on the control OS 410.
  • the control OS 410 sets up a message channel 412 for communication between the guest OSs or communication between the guest OSs and the system control OS.
  • the message channel is set as a data transfer mechanism between two logical partitions, and is set as a connection-oriented bi-directional communication path.
  • the guest OS (A) 420 is the client of the message channel (connection source), and the guest OS (B) 430 is the server of the message channel (connection destination).
  • message channel 412 is connected between guest OS (A) 420 and guest OS (B) 430.
  • Message channel 412 is for each guest OS as a communication execution OS It is set as a channel connecting message ports 422 and 432 as connection end points to be set.
  • Event reception ports 421 and 431 are set in association with the message ports 422 and 432 corresponding to each guest OS.
  • the control OS 410 prepares an event mechanism for inter-OS (logical partition) communication and intra-OS (logical partition) communication. Events are sent through a one-to-one, unidirectional connection from the event send port to the event receive port. Event reception port does not queue and count events. For example, if a new event arrives with an event prior to being read out to the event reception port, the state of the event reception port does not change pending status. Event transmission with established connection A port can transmit an event any number of times.
  • the event reception port is a port for the guest OS in the logical partition to receive an event. An event arriving at the event receiving port is treated as one of interrupts.
  • the guest OS (B) When the guest OS (B) permits the connection of the message channel, as shown in FIG. 4, under the control of the control OS 410, the message channel 412 of the guest OS (A) 420 and the guest OS (B) 430 Connected, and then the guest OS (A) 420 prepares a message area for transmission.
  • the physical address space message area 411 as a message area entity is on the memory of the system.
  • the message area 423 of the guest OS (A) 420 and the message area 433 of the guest OS (B) 430 shown in FIG. 4 are the logical address space in the address space of the logical partition corresponding to each OS. It is a message area.
  • the physical address space message area 411 belongs to only one logical partition.
  • the physical address space message area 411 belongs to! / ⁇ , and the logical partition can not access the message area. That is, the physical address space message area 411 is, at a certain moment, a force that is mapped to the logical address space message area 423 of the guest OS (A) 420 or the guest OS (B) 430. It is in the state mapped to the logical address space message area 433 or one of the states.
  • This mapping control is performed by the control OS 410.
  • the control OS 410 realizes message transfer via the message channel 412 using a virtual address conversion mechanism from the logical partition address space to the physical address space.
  • (1) state 1 and (2) state 2 show states before and after message transfer from the guest OS (A) to the guest OS (B).
  • the message area 451 secured in the physical address space 450 is the logical partition address space of the logical partition on the message transfer source (client) side, that is, the logical partition of the guest OS (A).
  • Address space 460 is mapped to message area 461!
  • access can not be made to the message area 451 of the physical address space 450 from the logical area to which the message area 451 does not belong, that is, the message area 471 of the logical partition address space 470 of the guest OS (B).
  • the message area 451 secured in the physical address space 450 is unmapped from the client side logical partition, ie, the logical partition address space 460 of the guest OS (A). And is mapped to the message area 471 of the logical partition address space of the server side logical partition, ie, the logical partition address space 470 of the guest OS (B). That is, it is set to state 2 of FIG. In this state, access to the message area 451 of the physical address space 450 can not be made from the logical partition to which the message area 451 does not belong, that is, the logical partition address space 460 of the guest OS (A).
  • control OS maps the message area 451 secured in the physical address space 450 to one of the logical partition address spaces of the guest OS (logical partition) in which the message port of the message channel is set, Unmap from the other (map solution Message transfer is realized by setting the message from the client to a setting that can be accessed by the server according to the processing to be performed.
  • step S101 the message sending OS (client) sends a connection request to the message receiving OS (server).
  • the connection request is sent to the message receiving OS (server) via the control OS in step S102.
  • the message receiving OS (server) permits the connection in step S103 based on the reception of the connection request
  • the message sending OS (client) and the message sending OS (client) respectively receive the message port.
  • each OS is notified of completion of setting of the message channel via the event receiving port associated with the message port.
  • the message sending OS (client) reserves a message area in step S105. It is the logical address space message area 423 of FIG.
  • the control OS maps the message area of the physical address space to the logical partition address space of the message sender OS (client) logical partition. This process corresponds to the process of mapping the logical address space message area 423 of the guest OS (A) 420 to the physical address space message area 411 in FIG.
  • step S 107 the control OS unmaps (unmaps) the message area of the physical address space from the logical partition address space of the message sending OS (client) side logical partition, and Map to the logical partition address space of the server) side logical partition. That is, in FIG. 4, the map for the physical address space message area 411 of the logical address space message area 423 of the guest OS (A) 420 is released, and the physical address space message area 411 becomes the logical address of the guest OS (B) 430. Execute processing for mapping to the spatial message area 433.
  • step S108 the message receiving OS (server) receives the physical address via the logical partition address space of the message receiving OS (sano) side logical partition. Access the message area of the host space and get the message.
  • the message receiving OS discards the message area. Furthermore, in step S110, the message receiving OS (server) discards the message port.
  • the message port discarding notification is sent to the message sending OS (client) side by applying the event receiving port in step S111, and the message sending OS (client) side discards the message port in step S112. Will clear the message channel and end inter-OS communication via the message channel
  • the system control OS generates a system control program, and performs operation control of the entire system based on, for example, resource allocation upper limit information predetermined for the system.
  • the guest OS transfers messages to the system control program set in the system control OS for various processing such as resource request corresponding to the logical partition set in the guest OS, for example.
  • message transfer is performed as processing of mapping and unmapping the logical address space corresponding to each logical partition set in each guest OS to the message area of the physical address space. It had been realized. Also in communication processing between the system control program set in the system control OS and the guest OS, as shown in FIG. 7, the power to which communication to which the message channel 512 generated by the control OS 510 is applied is executed. In (registered trademark), a socket applied to communication is generated to realize communication via a message channel.
  • the system control OS when communication is performed using a virtual file, the system control OS generates a socket associated with a file descriptor that can be identified by the file system managed by itself, and uses this socket. Create a virtual file accessible via the Internet, and execute message transmission / reception by accessing the message area of the physical address space via the virtual file. As shown in FIG. 10, when performing communication without using a virtual file, the system control OS generates a socket associated with a file descriptor that can be identified by the file system managed by itself, and uses that socket. The message area of the physical address space is mapped to the process address space via the process, and the process directly accesses the message area.
  • the socket of UNIX has two cases: one used for communication with a process in the system (UNIX domain socket) and the other used for communication with another system through the network (Internet domain socket). is there.
  • System control OS provides message channel to system control program as socket of new domain.
  • the system control program can communicate using the message channel with almost the same semantics as existing sockets.
  • the message receiver (server) process creates a socket with a socket system call.
  • the message receiver (server) process assigns a name (file descriptor) corresponding to the socket using the bind system call.
  • the message receiver (server) process executes a listen system call and sets it in a connection ready state.
  • the message sender (client) process creates a socket with a socket system call and establishes a communication path with the server-side socket using a connect system call.
  • the message receiver (server) process executes the accept system call and accepts the request from the message sender (client) process.
  • message transmission / reception is realized using a write system call as a write process to the socket-compatible file descriptor and a read system call as a read process.
  • the communication sequence applying the socket (UNIX domain socket) in UNIX It is an outline of In the present invention, the communication channel 512 set by the control OS 510 shown in FIGS. 7 and 10 is applied, and on the system control program side, the guest OS is processed substantially the same as the processing to which the existing socket described above is applied. Enables communication with The process on the guest OS side is executed as the same process as the process in the communication between guest OSs described above.
  • the system control OS 520 and the communication processing sequence for managing the guest OS 530 are described with reference to FIGS. 7 and 8 (communication using virtual files) and FIGS. 11 and 12 (communications not using virtual files). Do. Communication is actually performed by the system control program and the guest OS set in the system control OS 520. For communication processing, the communication channel 512 generated by the control OS 510 and the system control program kernel 521 are generated. Communication socket will be applied.
  • the system control program executes various system calls, the kernel 521 executes processing based on the system call, and the communication environment setting and communication control processing are executed in the kernel.
  • the system control program executes the communication with the guest OS in almost the same process as the communication applying the socket for UNIX described above by applying the communication socket generated by the system control program kernel 521.
  • FIG. 8 and FIG. 11 show the processing of the system control program that executes communication with the guest OS in association with the processing of the kernel. The details of the process are described below for each step.
  • step S201 the system control program activates a socket system call (socket ()) to generate a connection socket for receiving a connection request.
  • the system call is applied to the call of the function of the kernel 521.
  • the kernel generates a socket for connection by invoking a socket system call (socket ()). It is a socket for connection 525 shown in FIG. 7 and FIG.
  • a file name (file descriptor) set in the file system managed by the system control OS 520 is associated with the generated socket.
  • Step S202 the system control program invokes a seed system call (bind (socket, ⁇ )) in step S 202.
  • the kernel 521 connects the system control program based on the bind system call (bind ( ⁇ socket, ⁇ )). Associate a socket with a service ID (port number) for waiting for a request, and each socket will be set in association with the service provided by the system control program.
  • step S203 the system control program invokes a listening system call (listen (socket, ⁇ )).
  • the kernel allows the connection of the service associated with the socket based on the listen system call (listen (sock et,))
  • the corresponding service identifier is set in the socket, and the system control program Communication permission setting for service can be performed.
  • a virtual file 524 shown in FIG. 7 is a file obtained by abstracting the physical address space message area 511 managed by the control OS 510.
  • the file creation process and file deletion process are executed by the system control OS 520, and when transferring messages from the guest OS 530 to the system control program, the logical address space message area 533 of the guest OS 530 has a physical address before message transfer. It is in the state mapped in the spatial message area 511, and after message transfer, it is created as the virtual file 524 on the side of the system control OS 520, and the system control program power also becomes accessible.
  • the system control program power is also such that the virtual file 524 on the system control OS 520 side is in a state where system control program power can be accessed before message transfer. 20 deletes the virtual file, and the physical address space message area 511 is mapped to the logical address space message area 533 of the guest OS 530.
  • mapping the physical address space message area 511 directly to the process address space of the process instead of via the virtual file 524 the following processing is performed.
  • the logical address space message area 533 of the guest OS 530 is mapped to the physical address space message area 511, and after message transfer, the system control OS 520. Maps the physical address space message area 511 into the process address space and makes it directly accessible from the system control program.
  • the system control program power also maps the physical address space message area 511 to the process address space before transferring the message, and the system control program can directly access it.
  • the system control OS 520 releases the mapping, and the physical address space message area 511 is mapped to the logical address space message area 533 of the guest OS 530.
  • the system control program can acquire the identifier of the virtual file 524 corresponding to the socket by a read system call specifying the file descriptor of the communication socket.
  • the system control program is Apply an open (open), close (close), read (read), or write (write) system call with an ID specified to open (open), close (close) a socket-enabled file
  • messages can be written [write] and read [read].
  • the system control program executes the read system call specifying the file descriptor of the communication socket.
  • the physical address space message area 511 can obtain an address mapped to the process address space.
  • the system control program can read and write the message area by directly accessing this address.
  • the system control program can set a plurality of sockets, and individual virtual files are set corresponding to each socket, and each virtual file is individually stored in the message area of the physical address space. Correspondence and individual communication are possible (same as when mapping physical address space message area directly to process address space instead of virtual file).
  • Each socket is associated with a service identifier, and selective execution of a socket-specified system call enables individual processing such as communication permission and non-permission setting for each socket (service) to be executed.
  • steps S-A to E shown in FIG. 8 and FIG. 11 are processes that can be executed at any timing after the generation of the message channel by the processes of steps S201 to S204. Each process will be described.
  • Step S-A is a process of receiving a message from the guest OS.
  • the system control program initiates a read system call (read (fd, ⁇ ⁇ )).
  • the kernel 521 verifies, based on a read system call (read (fd, ⁇ )), whether or not a message from the guest OS has arrived via the message channel.
  • a virtual file 524 shown in FIG. 7 is a file specified by a socket-corresponding file descriptor (file descriptor: fd), and can correspond to the physical address space message area 511 managed by the control OS 510. It is a file.
  • the message area is mapped to the process address space, and its address and size are stored in the user buffer. make a copy. That is, the system control program is notified. The system control program can read the contents of the message area directly based on this address.
  • Step S-B is a process related to access to the message.
  • the system control program can invoke one of open, close, read, and write system calls as processing for the virtual file 524.
  • the kernel 521 executes processing corresponding to each system call. Open (open), close (open) correspond to open and close processing of virtual file 524, write (write) data write to virtual file 524, read (read) from virtual file 524 Corresponds to the data reading of These processes are executed as processes specifying file descriptors.
  • Step S-C is a process for sending a message.
  • System control program power The kernel 52 1 is a write system call (write (fd, ⁇ )) by invoking a write system call (write (fd, ⁇ ⁇ )) specifying the virtual file ID to the communication socket. Execute the process of sending the message written to the virtual file 524 based on.
  • the control OS 510 deletes the virtual file 524 on the side of the system control OS 520 in the physical address space message area 511 according to the processing executed based on the kernel 521 force write system call (write (fd, ⁇ )),
  • the process of mapping to the logical address space message area 533 on the guest OS 530 side is executed, whereby the system control program applies the virtual file 524 and transfers it to the message host OS 530 on which the writing has been executed.
  • the processing on the guest OS 530 side is executed as processing to which the message port 532 and the event port 531 are applied as described above.
  • the physical address space message area is the process address space for the system control program power communication socket.
  • the physical address space message area is based on the write system call (write (fd, ⁇ )). The transmission process of the message area to the process address space is released at the time of transmission.
  • Step S-D is processing when deleting an incoming message.
  • the kernel 521 is based on the unlink system call (unlink ()) by invoking the unlink system call (unlink ()) to the system control program force virtual file 524. , Of the file that identifies the incoming message Execute message discard by deletion.
  • Step S-E is the process of disconnecting the message channel, and the system control program starts the close system call (close (socket)) specifying the socket, and the kernel 521 deletes the message port, and the message is deleted. Disconnect the channel.
  • the system control program can execute monitoring of message transmission / reception processing by select system call (select).
  • select system call By activating a select system call that specifies a file descriptor corresponding to a socket, a channel always detects the presence or absence of a received message for the socket specified by the select system call (select), as with other input / output processing. It becomes possible to monitor.
  • a communication socket with the guest OS (A) [fd sO] and a communication socket with the guest OS (B) [
  • the kernel monitors the presence or absence of a message for each socket and performs processing to notify the system control program when there is a message.
  • efficient processing is possible by using the select system call (select).
  • the system control program receives a message from the guest OS side, and then the system control program also executes a process of transmitting a message to the guest OS.
  • the process of system control program and guest OS will be explained in case.
  • step S301 the system control program creates a socket with a socket system call (socketO). This socket corresponds to the connection socket 525 shown in FIG.
  • step S302 the system control program assigns a service ID to the socket with a bind system call (bind ()). As described above, each socket is set in association with the service provided by the system control program. [Oil 1]
  • step S303 the system control program permits socket connection by a listen system call (listen ()). The system control program can set the connection permitted state or the disallowed state for each socket by issuing a listen system call specifying the socket.
  • step S304 the system control program waits for a connection request for a socket at an accept system call (accept ()).
  • step S305 the guest OS performs an operation of connecting a message channel to the system control program.
  • This process includes the following process.
  • step S 304 A process in which the control OS notifies the system control program of a connection request, and based on the issue of the accept system call in step S 304 described above, notifies the guest OS of a message channel setting notification by the control OS ( Equivalent to step S 104 shown in FIG.
  • the kernel on the side of the system control program establishes a connection of a message channel, and at the same time, the kernel performs a process of connecting a socket to the system control program. That is, a socket for communication is created, and the waiting state in the accept system call (accept ()) is restored.
  • step S307 the guest OS prepares a message area and transfers it through the message channel. This process includes the following process.
  • Message area allocation processing by the guest OS that is, processing for setting the message area in the logical address space of the logical partition corresponding to the guest OS
  • the system control program When communication is performed using a virtual file, the system control program is selected in step S308 (a).
  • the kernel on the gram side receives the message area sent from the guest OS and creates a virtual file accessible by the system control program. It is a virtual file 524 shown in FIG.
  • the virtual file ID is set to the virtual file created.
  • the control OS executes processing to associate the message area of the physical address space with the virtual file 524 generated by the system control program side kernel.
  • step S308 (b) the kernel on the system control program side receives the message area sent from the guest OS card, and the system control program Map to address space.
  • the virtual system corresponding to the message area is received by the read system call (read ()) in which the system control program specified the communication socket in step S309 (a). Get the file's ID.
  • This virtual file ID is, for example, a fine name.
  • step S310 (a) the system control program opens the virtual file by the open system call (open ()) specifying the virtual file ID, and further, by the read system call (read ()), the message area Read the data stored in
  • system control program can write data to the virtual file by applying a write system call (write ()) to the opened virtual file.
  • the system control program may directly access the message area mapped in its own address space (steps S309 (b) and S310 (b;)).
  • step S311 (a) or step S311 (b) the system control program designates the trusted socket and writes the virtual file ID or the address of the process address space to which the physical address space message area is mapped.
  • the kernel transfers the message area to the guest OS.
  • the control OS deletes the virtual file on the system control program side or unmaps the message area of the physical address space mapped to the process address space, and the message area of the guest OS's logical partition. Map to This process makes the message readable by the guest OS And the guest OS reads the message.
  • the system control program side executes the communication process to which the socket is applied to execute the communication process set by the control OS. It is possible to communicate with the guest OS via
  • the series of processes described in the specification can be performed by hardware, software, or a composite configuration of both.
  • the program that records the processing sequence is installed in memory in a computer built into dedicated hardware and executed, or the program is executed on a general-purpose computer that can execute various types of processing. Can be installed and run.
  • the program can be recorded in advance on a hard disk or ROM (Read Only Memory) as a recording medium.
  • the program may be temporarily or permanently stored in a removable recording medium such as a flexible disc, a compact disc read only memory (CD-ROM), a magneto optical disc (MO), a digital versatile disc (DVD), a magnetic disc, or a semiconductor memory. It can be stored (recorded).
  • a removable recording medium such as a flexible disc, a compact disc read only memory (CD-ROM), a magneto optical disc (MO), a digital versatile disc (DVD), a magnetic disc, or a semiconductor memory. It can be stored (recorded).
  • Such removable recording media can be provided as V, as packaged software.
  • the program also installs the removable recording medium power as described above in the computer, and wirelessly transfers it from the download site to the computer, or via a network such as a LAN (Local Area Network) or the Internet.
  • the program can be transferred by wire, and the computer can receive the transferred program and install it on a recording medium such as a built-in hard disk.
  • a system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to those in the same casing.
  • a control OS for executing communication control between the OSs is set.
  • the control OS is configured to execute message transfer control between logical partitions set corresponding to each communication execution OS, and the message area of the physical address space is the message of the logical partition address space of the message sender OS. Since the process of switching from the mapping state to the message area to the mapping state to the message area of the logical partition address space of the message receiving side is executed to control message transfer between the OSs, This enables smooth communication in communication.
  • the communication execution OS generates a socket associated with the file descriptor identifiable by the file system managed by itself and sets a virtual file accessible through the socket. And transmit and receive messages via virtual files, or map messages in the physical address space to the process address space and execute message transmission and reception, so it is versatile for communicating with different operating systems. Message passing using the above-mentioned socket is realized.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

 オペレーティングシステム(OS)間のスムーズなメッセージ転送を実現する装置、方法を提供する。マルチOS環境において、物理アドレス空間のメッセージ領域をメッセージ送信側OSの論理パーティションアドレス空間のメッセージ領域から、メッセージ受信側OSの論理パーティションアドレス空間のメッセージ領域へマッピング状態を切り替える処理を実行してOS間のメッセージ転送制御を行なう。また、ファイルディスクリプタに関連付けられたソケットを生成し、ソケットを介してアクセス可能な仮想ファイルを設定し、仮想ファイルと物理アドレス空間のメッセージ領域のマッピングを適用したメッセージ送受信を行なう。

Description

明 細 書
情報処理装置、通信処理方法、並びにコンピュータ 'プログラム 技術分野
[0001] 本発明は、情報処理装置、通信処理方法、並びにコンピュータ 'プログラムに関す る。さらに詳細には、複数のオペレーティングシステム (OS)によるプロセス実行を可 能としたマルチ OS構成にぉ 、て、 OS間のメッセージ転送制御を実行する情報処理 装置、通信処理方法、並びにコンピュータ 'プログラムに関する。
背景技術
[0002] 1つのシステム内に複数のオペレーティングシステム(OS)を搭載したマルチ OSシ ステムにおいては、各 OSはそれぞれ異なるプロセスが実行可能であり、システムで 共通のハードウェア、すなわち CPUやメモリ等を時系列に順次切り替えて利用した 処理が行なわれる。
[0003] 複数 OSの各々の実行プロセス(タスク)のスケジューリングは、例えばパーティショ ン管理ソフトウェアによって実行される。 1つのシステムに OS ( a )と OS ( β )の 2つの オペレーティングシステムが並存する場合、 os ( a )の処理をパーティション Aとし、
OS ( j8 )の処理をパーティション Bとすると、パーティション管理ソフトウェアは、パーテ イシヨン Aとパーティション Bの実行スケジュールを決定し、決定したスケジュールに基 づいて、ハードウェア資源を割り当てて各 OSにおける処理を実行する。
[0004] マルチ OS型のシステムにおけるタスク管理を開示した従来技術として、例えば、特 許文献 1がある。特許文献 1には、複数の OSの各々において実行されるタスク管理 において、緊急性の高い処理を優先的に処理させるためのタスクスケジューリング手 法を開示している。
[0005] 複数 OSが共存するシステムでは、 OS間のメッセージ転送を行なう場合、 OS間を 接続するメッセージチャネルを生成し、通信を実行する OS各々がメッセージチヤネ ル接続用の通信用インタフェースを設定することが必要となる。メッセージチャネルを 介した通信を実行する通信実行 OSが様々な異なる OSである場合、通信インタフエ ース仕様の制限や、異なる OS間通信に起因するオーバヘッドの発生など、様々な 問題がある。
特許文献 1 :特開 2003— 345612号公報
発明の開示
発明が解決しょうとする課題
[0006] 本発明は、上述の問題点に鑑みてなされたものであり、複数 OSが共存するマルチ OS環境における OS間通信を余分なオーバヘッドを発生させることなくスムーズに実 行することを可能とした情報処理装置、通信処理方法、並びにコンピュータ 'プロダラ ムを提供することを目的とする。
課題を解決するための手段
[0007] 本発明の第 1の側面は、
複数のオペレーティングシステム (OS)を格納した情報処理装置であり、 複数 OS間の通信制御を実行する制御 OSを有し、
前記制御 OSは、
通信実行 OS各々に対応して設定される論理パーティション相互のメッセージ転送 制御を実行する構成であり、物理アドレス空間のメッセージ領域を、メッセージ送信 側 OSの論理パーティションアドレス空間のメッセージ領域へのマッピング状態から、 メッセージ受信側 OSの論理パーティションアドレス空間のメッセージ領域へのマツピ ング状態に切り替える処理を実行して通信実行 OS間のメッセージ転送制御を行なう 構成であることを特徴とする情報処理装置にある。
[0008] さらに、本発明の情報処理装置の一実施態様において、前記通信実行 OS中の少 なくとも 1つの通信実行 OSは、自己の管理するファイルシステムによって識別可能な ファイルディスクリプタに関連付けられたソケットを生成し、該ソケットを介してアクセス 可能な仮想ファイルを作成し、前記物理アドレス空間のメッセージ領域を該仮想ファ ィルを介してアクセスする構成であることを特徴とする。
[0009] さらに、本発明の情報処理装置の一実施態様において、ソケットを適用した通信を 実行する通信実行 OSは、ソケットに対応付けられた仮想ファイルの識別子を取得し
、取得した仮想ファイル識別子によって特定される仮想ファイルを適用したメッセージ 書き込みまたはメッセージ読み取りを実行する構成であることを特徴とする。 [0010] さらに、本発明の情報処理装置の一実施態様において、前記通信実行 OS中の少 なくとも 1つの通信実行 OSは、自己の管理するファイルシステムによって識別可能な ファイルディスクリプタに関連付けられたソケットを生成し、該ソケットを介して前記物 理アドレス空間のメッセージ領域をプロセスのアドレス空間へマッピングし、プロセス が直接メッセージ領域へのアクセスを実行する構成であることを特徴とする。
[0011] さらに、本発明の情報処理装置の一実施態様において、前記通信実行 OS中の少 なくとも 1つの通信実行 OSは、自己の管理するファイルシステムによって識別可能な ファイルディスクリプタに関連付けられたソケットを生成し、該ソケットを介して前記物 理アドレス空間のメッセージ領域を前記通信実行 OSに対応する論理パーティション のアドレス空間へマッピングし、前記メッセージ領域へのアクセスを実行する構成であ ることを特徴とする。
[0012] さらに、本発明の情報処理装置の一実施態様において、ソケットを適用した通信を 実行する通信実行 OSは、前記ソケットに対応するサービス識別子を設定し、サービ ス対応の通信許可設定を実行する構成であることを特徴とする。
[0013] さらに、本発明の情報処理装置の一実施態様において、ソケットを適用した通信を 実行する通信実行 OSは、前記ソケットを介したメッセージの受信監視処理を実行す る構成であることを特徴とする。
[0014] さらに、本発明の情報処理装置の一実施態様において、前記通信実行 OSは、シ ステムコールとしてのセレクトシステムコールの適用により、前記ソケットを介したメッセ ージの受信監視処理を実行する構成であることを特徴とする。
[0015] さらに、本発明の第 2の側面は、
複数のオペレーティングシステム (OS)を格納した情報処理装置における通信処理 方法であり、
物理アドレス空間のメッセージ領域を、メッセージ送信側 osの論理パーティション アドレス空間のメッセージ領域へのマッピング状態とするステップと、
前記マッピング状態を解除し、物理アドレス空間のメッセージ領域を、メッセージ受 信側 OSの論理パーティションアドレス空間のメッセージ領域へのマッピング状態に 変更するステップと、 を有することを特徴とする通信処理方法にある。
[0016] さらに、本発明の通信処理方法の一実施態様において、メッセージ転送を実行す る少なくとも 1つの通信実行 OSは、 自己の管理するファイルシステムによって識別可 能なファイルディスクリプタに関連付けられたソケットを生成し、該ソケットを介してァク セス可能な仮想ファイルを作成し、前記物理アドレス空間のメッセージ領域を該仮想 ファイルを介してアクセスすることによるメッセージ送受信を行なうことを特徴とする。
[0017] さらに、本発明の通信処理方法の一実施態様において、ソケットを適用した通信を 実行する通信実行 OSは、ソケットに対応付けられた仮想ファイルの識別子を取得し 、取得した仮想ファイル識別子によって特定される仮想ファイルを適用したメッセージ 書き込みまたはメッセージ読み取りを実行することを特徴とする。
[0018] さらに、本発明の通信処理方法の一実施態様において、前記通信実行 OS中の少 なくとも 1つの通信実行 OSは、自己の管理するファイルシステムによって識別可能な ファイルディスクリプタに関連付けられたソケットを生成し、該ソケットを介して前記物 理アドレス空間のメッセージ領域をプロセスのアドレス空間へマッピングし、プロセス が直接メッセージ領域へのアクセスを実行することを特徴とする。
[0019] さらに、本発明の通信処理方法の一実施態様において、前記通信実行 OS中の少 なくとも 1つの通信実行 OSは、自己の管理するファイルシステムによって識別可能な ファイルディスクリプタに関連付けられたソケットを生成し、該ソケットを介して前記物 理アドレス空間のメッセージ領域を前記通信実行 OSに対応する論理パーティション のアドレス空間へマッピングし、前記メッセージ領域へのアクセスを実行する構成であ ることを特徴とする。
[0020] さらに、本発明の通信処理方法の一実施態様において、ソケットを適用した通信を 実行する通信実行 OSは、前記ソケットに対応するサービス識別子を設定し、サービ ス対応の通信許可設定を実行することを特徴とする。
[0021] さらに、本発明の通信処理方法の一実施態様において、ソケットを適用した通信を 実行する通信実行 OSは、前記ソケットを介したメッセージの受信監視処理を実行す ることを特徴とする。
[0022] さらに、本発明の通信処理方法の一実施態様において、前記通信実行 OSは、シ ステムコールとしてのセレクトシステムコールの適用により、前記ソケットを介したメッセ ージの受信監視処理を実行することを特徴とする。
[0023] さらに、本発明の第 3の側面は、
複数のオペレーティングシステム (OS)を格納した情報処理装置における通信処理 制御を実行するコンピュータ ·プログラムであり、
物理アドレス空間のメッセージ領域を、メッセージ送信側 osの論理パーティション アドレス空間のメッセージ領域へのマッピング状態とするステップと、
前記マッピング状態を解除し、物理アドレス空間のメッセージ領域を、メッセージ受 信側 OSの論理パーティションアドレス空間のメッセージ領域へのマッピング状態に 変更するステップと、
を有することを特徴とするコンピュータ ·プログラムにある。
[0024] さらに、本発明の第 4の側面は、
複数のオペレーティングシステム (OS)を格納した情報処理装置における通信処理 制御を実行するコンピュータ ·プログラムであり、
通信実行 OSの管理するファイルシステムによって識別可能なファイルディスクリブ タに関連付けられたソケットを生成するステップと、
前記ソケットを介してアクセス可能な仮想ファイルを作成するステップと、 前記物理アドレス空間のメッセージ領域を前記仮想ファイルを介してアクセスするこ とによってメッセージ送受信を行なうステップと、
を有することを特徴とするコンピュータ ·プログラムにある。
[0025] さらに、本発明の第 5の側面は、
複数のオペレーティングシステム (OS)を格納した情報処理装置における通信処理 制御を実行するコンピュータ ·プログラムであり、
通信実行 OSの管理するファイルシステムによって識別可能なファイルディスクリブ タに関連付けられたソケットを生成するステップと、
前記ソケットを介して前記物理アドレス空間のメッセージ領域をプロセスのアドレス 空間へマッピングするステップと、
プロセスが直接メッセージ領域へのアクセスを実行するステップと、 を有することを特徴とするコンピュータ ·プログラムにある。
[0026] なお、本発明のコンピュータ 'プログラムは、例えば、様々なプログラム 'コードを実 行可能な汎用コンピュータ ·システムに対して、コンピュータ可読な形式で提供する 記憶媒体、通信媒体、例えば、 CDや FD、 MOなどの記憶媒体、あるいは、ネットヮ ークなどの通信媒体によって提供可能なコンピュータ 'プログラムである。このようなプ ログラムをコンピュータ可読な形式で提供することにより、コンピュータ 'システム上で プログラムに応じた処理が実現される。
[0027] 本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図 面に基づぐより詳細な説明によって明らかになるであろう。なお、本明細書において システムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内に あるものには限らない。
発明の効果
[0028] 本発明の構成によれば、複数のオペレーティングシステム(OS)が共存するマルチ OS環境における OS間通信において、 OS間の通信制御を実行する制御 OSを設定 し、制御 OSが、通信実行 OS各々に対応して設定される論理パーティション相互のメ ッセージ転送制御を実行する構成とし、物理アドレス空間のメッセージ領域を、メッセ ージ送信側 OSの論理パーティションアドレス空間のメッセージ領域へのマッピング状 態から、メッセージ受信側 OSの論理パーティションアドレス空間のメッセージ領域へ のマッピング状態に切り替える処理を実行して OS間のメッセージ転送制御を行なう 構成としたので、異なる OS間の通信におけるスムーズな通信が可能となる。
[0029] さらに、本発明の構成によれば、通信実行 OS力 自己の管理するファイルシステム によって識別可能なファイルディスクリプタに関連付けられたソケットを生成し、ソケッ トを介してアクセス可能な仮想ファイルを作成し、物理アドレス空間のメッセージ領域 を該仮想ファイルを介してアクセスすることで、メッセージ送受信を実行する構成とし たので、異なる OSとの通信において汎用的なソケットを適用したメッセージパッシン グが実現される。
[0030] さらに、本発明の構成によれば、通信実行 OS力 自己の管理するファイルシステム によって識別可能なファイルディスクリプタに関連付けられたソケットを生成し、該ソケ ットを介して前記物理アドレス空間のメッセージ領域をプロセスのアドレス空間へマツ ビングし、プロセスが直接メッセージ領域へのアクセスを実行する構成としたので、異 なる OSとの通信において汎用的なソケットを適用したメッセージパッシングが実現さ れると同時に、少ないオーバヘッドでプロセス力 Sメッセージ領域にアクセスすることが 実現される。
[0031] さらに、本発明の構成によれば、ソケットに対応するサービス識別子を設定すること により、サービス対応の通信許可設定が可能となり、また、例えばシステムコールとし てのセレクトシステムコールの適用により、ソケットを介したメッセージの受信監視処理 が可能となる。
図面の簡単な説明
[0032] [図 1]本発明の情報処理装置の構成例を示す図である。
[図 2]プロセッサモジュールの構成例を示す図である。
[図 3]本発明の情報処理装置のオペレーションシステム構成を説明する図である。
[図 4]ゲスト OS間の通信処理について説明する図である。
[図 5]メーセッジチャネルを介した通信におけるアドレスマッピングについて説明する 図である。
[図 6]ゲスト OS間の通信処理シーケンスについて説明する図である。
[図 7]仮想ファイルを用いた通信の場合の、システム制御 OSと、ゲスト OS間の通信 処理について説明する図である。
[図 8]仮想ファイルを用いた通信の場合の、システム制御 OSと、ゲスト OS間の通信 処理において実行されるシス力テムコールに基づく処理について説明する図である。
[図 9]仮想ファイルを用いた通信の場合の、システム制御 OSと、ゲスト OS間の通信 処理について説明するフロー図である。
[図 10]仮想ファイルを用いない通信の場合の、システム制御 OSと、ゲスト OS間の通 信処理について説明する図である。
[図 11]仮想ファイルを用いない通信の場合の、システム制御 OSと、ゲスト OS間の通 信処理において実行されるシス力テムコールに基づく処理について説明する図であ る。 [図 12]仮想ファイルを用いない通信の場合の、システム制御 OSと、ゲスト OS間の通 信処理について説明するフロー図である。
発明を実施するための最良の形態
[0033] 以下、図面を参照しながら、本発明の情報処理装置、通信処理方法、並びにコン ピュータ ·プログラムの詳細にっ 、て説明する。
[0034] まず、図 1を参照して、本発明の情報処理装置のハードウェア構成例について説明 する。プロセッサモジュール 101は、複数のプロセッサ(Processing Unit)から構成され たモジュールであり、 ROM(Read Only Memory) 104、 HDD 123等に記憶されている プログラムに従って、オペレーティングシステム(OS: Operating System), OS対応の アプリケーション 'プログラムなど、各種プログラムに従ったデータ処理を実行する。プ 口セッサモジュール 101の詳細については、さらに、後段で、図 2を参照して説明する
[0035] グラフィックエンジン 102は、プロセッサモジュール 101から入力される指示に従つ て、出力部 122を構成する表示デバイスに画面出力するためのデータ生成、例えば 3Dグラフィック描画処理を実行する。メインメモリ(DRAM) 103には、プロセッサモジ ユール 101にお 、て実行するプログラムやその実行にぉ 、て適宜変化するパラメ一 タ等を格納する。これらは CPUバスなど力も構成されるホストバス 111により相互に接 続されている。
[0036] ホストバス 111は、ブリッジ 105を介して、 PCI(Peripheral Component Interconnect/ Interface)バスなどの外部バス 112に接続されている。ブリッジ 105は、ホストバス 111 、外部バス 112間、およびコントローラ 106、メモリカード 107、その他のデバイスとの データ入出力制御を実行する。
[0037] 入力部 121は、キーボード、ポインティングデバイスなどのユーザにより操作される 入力デバイス力もの入力情報を入力する。出力部 122は、液晶表示装置や CRT (Ca thode Ray Tube)などの画像出力部とスピーカ等カゝらなる音声出力部カゝら構成される
[0038] HDD (Hard Disk Drive) 123は、ハードディスクを内蔵し、ハードディスクを駆動し、 プロセッサモジュール 101によって実行するプログラムや情報を記録または再生させ る。
[0039] ドライブ 124は、装着されて!ヽる磁気ディスク、光ディスク、光磁気ディスク、または 半導体メモリ等のリムーバブル記録媒体 127に記録されているデータまたはプロダラ ムを読み出して、そのデータまたはプログラムを、インタフェース 113、外部バス 112、 ブリッジ 105、およびホストバス 111を介して接続されているメインメモリ(DRAM) 10 3に供給する。
[0040] 接続ポート 125は、外部接続機器 128を接続するポートであり、 USB, IEEE1394 等の接続部を持つ。接続ポート 125は、インタフェース 113、外部バス 112、ブリッジ 105、およびホストバス 111を介してプロセッサモジュール 101等に接続されている。 通信部 126は、ネットワークに接続され、プロセッサモジュール 101や、 HDD123等 から提供されるデータの送信、外部からのデータ受信を実行する。
[0041] 次に、プロセッサモジュールの構成例について、図 2を参照して説明する。図 2に示 すように、プロセッサモジュール 200は、複数のメインプロセッサからなるメインプロセ ッサグループ 201、複数のサブプロセッサからなる複数のサブプロセッサグループ 20 2〜20nによって構成されている。それぞれにメモリコントローラ、 2次キャッシュが設 けられている。各プロセッサグループ 201〜20nの各々は例えば 8つのプロセッサュ ニットを有し、クロスバーアーキテクチャ、あるいはパケット交換式ネットワークなどによ つて接続されている。メインプロセッサグループ 201のメインプロセッサの指示のもと に、複数のサブプロセッサグループ 202〜20nの 1以上のサブプロセッサが選択され 、所定のプログラムが実行される。
[0042] 各プロセッサグループに設置されたメモリフローコントローラは、図 1に示すメインメ モリ 103とのデータ入出力制御を実行し、 2次キャッシュは、各プロセッサグループに おける処理用データの記憶領域として利用される。
[0043] 次に、図 3を参照して、本発明の情報処理装置におけるオペレーティングシステム( OS)構成を説明する。本発明の情報処理装置は複数のオペレーティングシステム( OS)が共存するマルチ OS構成を持つ。図 3に示すように、論理的な階層構成を持 つ複数のオペレーティングシステム(OS)を持つ。
[0044] 図 3に示すように、下位レイヤに制御 OS301を有し、上位レイヤに複数のゲスト OS 302, 303、およびシステム制御 OS304力設定される。制御 OS301は、システム制 御 OS304とともに図 1、図 2を参照して説明したプロセッサモジュールにおいて実行 する 1以上のプロセスによって適用される論理パーティションを実現し、システム内の ハードウェア資源 (計算機資源としてのメインプロセッサ、サブプロセッサ、メモリ、デ バイス等)を各論理パーティションに割り振る処理を実行する。
[0045] ゲスト OS302, 303は、例えばゲーム OSや Windows (登録商標)、 Linux (登録 商標)などの各種の OSであり、制御 OS301の制御の下に動作する OSである。なお 、図 3には、ゲスト OS302, 303の 2つのゲスト OSのみを示してある力 ゲスト OSは 任意の数に設定することが可能である。
[0046] ゲスト OS302, 303は、制御 OS301およびシステム制御 OS304によって設定され た論理パーティション内で動作し、その論理パーティションに割り当てられたメインプ ロセッサ、サブプロセッサ、メモリ、デバイス等のハードウェア資源を適用して各種の データ処理を実行する。
[0047] 例えば、ゲスト OS (a) 302は、制御 OS301およびシステム制御 OS304によって設 定された論理パーティション 2に割り当てられたメインプロセッサ、サブプロセッサ、メ モリ、デバイス等のハードウェア資源を適用して、ゲスト OS (a) 302対応のアプリケー シヨン'プログラム 305を実行する。また、ゲスト OS (b) 303は、論理パーティション n に割り当てられたメインプロセッサ、サブプロセッサ、メモリ、デバイス等のハードゥエ ァ資源を適用して、ゲスト OS (b) 303対応のアプリケーション 'プログラム 306を実行 する。制御 OS301は、ゲスト OSの実行に必要なインタフェースとしてゲスト OSプログ ラミングインタフェースを提供する。
[0048] システム制御 OS304は、論理パーティション管理情報を含むシステム制御プロダラ ム 307を生成し、システム制御プログラム 307に基づくシステムの動作制御を制御 O S301とともに実行する。システム制御プログラム 307は、システム制御プログラム'プ ログラミングインタフェースを用いてシステムのポリシを制御するプログラムである。シ ステム制御プログラム 'プログラミングインタフェースは、制御 OS301からシステム制 御 OS304に提供される。例えばリソース配分の上限値を設定するなど、プログラムに よる柔軟なカスタマイズのための手段を提供するのがシステム制御プログラム 307の 役割である。
[0049] システム制御プログラム 307はシステム制御プログラム ·プログラミングインタフエ一 スを用いてシステムの振る舞いを制御することができる。例えば、新しく論理パーティ シヨンを作成し、その論理パーティションで新 U、ゲスト OSを起動することができる。 複数のゲスト OSが動作するシステムでは、それらのゲスト OSはシステム制御プロダラ ムにあら力じめプログラムされた順序で起動されることになる。また、ゲスト OSから提 出された資源割り当て要求を制御 OS301が受理する前に検査し、システムのポリシ に従って修正したり、要求そのものを拒否したりすることができる。これにより、特定の ゲスト OSだけが資源を独占することがないようにすることができる。このように、システ ムのポリシをプログラムとして実現したものがシステム制御プログラムである。
[0050] 制御 OS301はシステム制御 OS304のために特別な論理パーティション(図では論 理パーティション 1)を割り当てる。制御 OS301は、ハイパバイザモードで動作する。 ゲスト OSはスーパバイザモードで動作する。システム制御 OS、アプリケーション'プ ログラムはプロブレムモード(ユーザモード)で動作する。
[0051] 論理パーティションはシステム内の資源分配を受ける主体である。たとえばメインメ モリ 103 (図 1参照)はいくつかの領域へ分割され、それぞれの領域の使用権が論理 パーティションに対して与えられる。論理パーティションに分配される資源の種別には 以下のものがある。
a)物理プロセッサユニット使用時間
b)仮想アドレス空間
c)論理パーティション内で動作するプログラムがアクセスできるメモリ
d)制御 OSが論理パーティションの管理のために用いるメモリ
e)イベントポート
f)デバイスの使用権
g)キャッシュノ ーテイシヨン
h)バス使用権
[0052] 前述したように、ゲスト OSは論理パーティションの中で動作する。ゲスト OSは論理 パーティションに割り当てられた資源を独占して各種のデータ処理を実行する。多く の場合、システム上で動作する個々のゲスト OS毎に 1つの論理パーティションが作 成される。各論理パーティションにはユニークな識別子が与えられる。システム制御 o
S304は、論理パーティション管理情報として生成するシステム制御プログラムに識別 子を対応づけて管理する。
[0053] 論理パーティションは、制御 OS301およびシステム制御 OS304によって生成され る。生成直後の論理パーティションは何も資源を持たず、使用資源の制限も設定され ていない。論理パーティションには活動状態と終了状態という 2つの状態がある。生 成直後の論理パーティションは活動状態にある。論理パーティション内で動作するゲ スト OSの要求に基づ 、て論理パーティションは終了状態に遷移し、論理パーティシ ヨンに割り当てられて!/、る全ての論理プロセッサが停止する。
[0054] なお、論理プロセッサは、論理パーティションに割り当てられる論理的なプロセッサ であり、いずれかの物理プロセッサ、すなわち、図 2に示すプロセッサグループ内の プロセッサに対応する。ただし、論理プロセッサと物理プロセッサは必ずしも 1対 1の 関係にはなぐ 1つの論理プロセッサに複数の物理プロセッサが対応付けられる場合 もあり、複数の論理プロセッサに 1つの物理プロセッサが対応付けられる場合もある。 論理プロセッサと物理プロセッサの対応付けは、制御 OS301が決定する。
[0055] 制御 OS301は、各論理パーティションが使用する資源の量を制限する機能を備え ている。ゲスト OS302, 303がシステム制御 OS304との通信を行うことなく割り当て
Z解放が行える資源については使用量の制限が可能となっている。
[0056] 各論理パーティションは制御シグナルポートを備えている。このポートには論理パー テイシヨン間のデータ交換 Z共有に必要な様々な制御シグナルが到着する。制御シ グナルの例を以下に挙げる。
a)論理パーティション間イベントポートの接続依頼
b)論理パーティション間メッセージチャネルの接続依頼
c)共有メモリ領域への接続依頼
[0057] 各論理パーティションに到着した制御シグナルは制御シグナルポートでキューイン グされる。キューの深さは、メモリ資源が許す範囲であれば、制限は無い。キューイン グに必要なメモリ資源は制御シグナルを送った論理パーティション力も確保される。こ のポートから制御シグナルを取り出すためには、ゲスト OSプログラミングインタフエ一 スを呼び出す。空の制御シグナルポートに制御シグナルが到着したときに、任意のィ ベントポートにイベントを送信することが可能である。イベントポートの指定はゲスト o sプログラミングインタフェースを呼び出すことによって行える。
[0058] 次に、図 4以下の各図を参照して、 OS間通信について説明する。前述したように、 各ゲスト OS、およびシステム制御 OSの各々に対しては、論理パーティションが対応 付けられる。各論理パーティションモジュール間のメッセージ転送は、制御 OSの生成 するメッセージチャネルを介して実行される。以下、
( 1 )ゲスト OS間の通信処理
(2)ゲスト OSとシステム制御 OS間の通信処理
の 2つの通信処理にっ 、て順次説明する。
[0059] [ (1)ゲスト OS間の通信処理]
まず、ゲスト OS間の通信処理について説明する。図 4は、制御 OS410上の 2つの ゲスト OS間の通信処理を説明する概念図である。ゲスト OS (A) 420からゲスト OS (
B) 430にメッセージを転送する処理例を示して!/、る。
[0060] 制御 OS410は、ゲスト OS間の通信、あるいはゲスト OSとシステム制御 OS間の通 信用のメッセージチャネル 412を設定する。メッセージチャネルは 2つの論理パーテ イシヨン間のデータ転送機構として設定されるものであり、コネクションオリエンテッドな 双方向の通信路として設定される。
[0061] 図 4を参照して、制御 OS410の設定するメッセージチャネル 412を介したゲスト OS
(A) 420とゲスト OS (B) 430間の通信処理につ!、て説明する。ゲスト OS (A) 420を メッセージチャネルのクライアント(接続元)、ゲスト OS (B) 430をメッセージチャネル のサーバ (接続先)とする。
ゲスト OS (A) 420はメッセージチャネルの接続要求をゲスト OS (B) 430に対して行 ゲスト OS (B)がメッセージチャネルの接続を許可すると、図 4に示すように、制御 O S410の制御の下にメッセージチャネル 412がゲスト OS (A) 420とゲスト OS (B) 430 の間に接続される。メッセージチャネル 412は、通信実行 OSとしての各ゲスト OSに 設定されるコネクション端点としてのメッセージポート 422, 432を接続するチャネルと して設定される。
[0062] なお、ゲスト OS (B) 430力メッセージチャネルの接続を拒否すると、メッセージチヤ ネルの接続は行われない。各ゲスト OSに対応するメッセージポート 422, 432にはィ ベント受信ポート 421 , 431が関連づけて設定される。
[0063] 制御 OS410は、 OS (論理パーティション)間通信、および OS (論理パーティション )内通信のためにイベント機構を用意している。イベントはイベント送信ポートからィべ ント受信ポートへの 1対 1、かつ単方向のコネクションを通して送られる。イベント受信 ポートはイベントをキューイング及びカウントしない。例えばイベント受信ポートに読み 出される前のイベントがある状態で新たなイベントが到着した場合、イベント受信ポー トの状態はペンディング状態力 変化しな 、。コネクションが確立されたイベント送信 ポートは何度でもイベントを送信することができる。イベント受信ポートは論理パーティ シヨン内のゲスト OSがイベントを受け取るためのポートである。イベント受信ポートに 到着するイベントは割り込みの一つとして扱われる。
[0064] OS (論理パーティション)間にメッセージチャネルが接続されたり、空のメッセージポ ートにメッセージが到着すると、関連づけられたイベント受信ポートにイベントが配送 される。
[0065] ゲスト OS (B)がメッセージチャネルの接続を許可すると、図 4に示すように、制御 O S410の制御の下にメッセージチャネル 412がゲスト OS (A) 420とゲスト OS (B) 430 の間に接続され、その後、ゲスト OS (A) 420は送信するメッセージ領域を用意する。 なお、メッセージ領域実体としての物理アドレス空間メッセージ領域 411はシステムの メモリ上にある。
[0066] 図 4に示すゲスト OS (A) 420のメッセージ領域 423と、ゲスト OS (B) 430のメッセ一 ジ領域 433は、それぞれの OSに対応する論理パーティションのアドレス空間におけ る論理アドレス空間メッセージ領域である。ある瞬間に、物理アドレス空間メッセージ 領域 411はただ一つの論理パーティションに属している。物理アドレス空間メッセ一 ジ領域 411が属して!/ヽな 、論理パーティションからのメッセージ領域へのアクセスは できない。 [0067] すなわち、物理アドレス空間メッセージ領域 411は、ある瞬間において、ゲスト OS ( A) 420の論理アドレス空間メッセージ領域 423にマッピングされた状態にある力、あ るいは、ゲスト OS (B) 430の論理アドレス空間メッセージ領域 433にマッピングされた 状態にあるかいずれか一方の状態にある。このマッピング制御は制御 OS410によつ て実行される。このように、制御 OS410は、メッセージチャネル 412を介したメッセ一 ジ転送を論理パーティションアドレス空間から物理アドレス空間への仮想的なアドレ ス変換機構を用いて実現する。
[0068] 図 5を参照して、仮想的なアドレス変換機構を用いたメッセージ転送処理につ!、て 説明する。
[0069] 図 5において、(1)状態 1、(2)状態 2は、ゲスト OS (A)からゲスト OS (B)に対するメ ッセージ転送の前後の状態を示している。(1)状態 1において、物理アドレス空間 45 0に確保されたメッセージ領域 451は、メッセージ転送元 (クライアント)側の論理パー テイシヨンの論理パーティションアドレス空間、すなわち、ゲスト OS (A)の論理パーテ イシヨンアドレス空間 460のメッセージ領域 461にマップされて!/、る。この状態にお ヽ て、メッセージ領域 451が属していない論理パーティション、すなわち、ゲスト OS (B) の論理パーティションアドレス空間 470のメッセージ領域 471から物理アドレス空間 4 50のメッセージ領域 451へのアクセスはできない。
[0070] メッセージ領域 451が転送されると、物理アドレス空間 450に確保されたメッセージ 領域 451は、クライアント側論理パーティション、すなわち、ゲスト OS (A)の論理パー テイシヨンアドレス空間 460からアンマップ(マップ解除)され、サーバ側論理パーティ シヨンの論理パーティションアドレス空間、すなわち、ゲスト OS (B)の論理パーティシ ヨンアドレス空間 470のメッセージ領域 471にマップされる。すなわち、図 5の(2)状 態 2に設定される。この状態において、メッセージ領域 451が属していない論理パー テイシヨン、すなわち、ゲスト OS (A)の論理パーティションアドレス空間 460から物理 アドレス空間 450のメッセージ領域 451へのアクセスはできない。
[0071] このように、制御 OSは、物理アドレス空間 450に確保されたメッセージ領域 451を、 メッセージチャネルのメッセージポートの設定されたゲスト OS (論理パーティション)の 論理パーティションアドレス空間の一方にマッピングし、他方からアンマップ(マップ解 除)する処理によって、クライアントからのメッセージをサーバがアクセス可能な設定と することでメッセージ転送を実現して 、る。
[0072] 図 6を参照して、ゲスト OS間のメッセージチャネルを介したメッセージ転送シーケン スについて説明する。
[0073] メッセージ送信側 OS (クライアント)は、ステップ S101にお 、て、メッセージ受信側 OS (サーバ)に対して接続要求を送出する。接続要求は、ステップ S102において、 制御 OSを介してメッセージ受信側 OS (サーバ)に送信される。
[0074] メッセージ受信側 OS (サーバ)は、接続要求の受信に基づいて、ステップ S103に おいて、接続を許可すると、メッセージ送信側 OS (クライアント)とメッセージ送信側 O S (クライアント)それぞれにメッセージポートの設定されたメッセージチャネルを生成 する。メッセージチャネルの生成が完了すると、ステップ S 104において、メッセージ ポートに関連付けられたイベント受信ポートを介してメッセージチャネルの設定完了 を各 OSに通知する。
[0075] メッセージ送信側 OS (クライアント)は、ステップ S105にお!/、て、メッセージ領域を 確保する。図 4の論理アドレス空間メッセージ領域 423である。ステップ S106におい て、制御 OSは、物理アドレス空間のメッセージ領域をメッセージ送信側 OS (クライア ント)論理パーティションの論理パーティションアドレス空間にマップする。この処理は 、図 4において、ゲスト OS (A) 420の論理アドレス空間メッセージ領域 423を物理ァ ドレス空間メッセージ領域 411にマップする処理に相当する。
[0076] ステップ S107において、制御 OSは、物理アドレス空間のメッセージ領域をメッセ一 ジ送信側 OS (クライアント)側論理パーティションの論理パーティションアドレス空間 からアンマップ (マップ解除)するとともに、メッセージ受信側 OS (サーバ)側論理パー テイシヨンの論理パーティションアドレス空間にマップする。すなわち、図 4において、 ゲスト OS (A) 420の論理アドレス空間メッセージ領域 423の物理アドレス空間メッセ ージ領域 411に対するマップを解除し、物理アドレス空間メッセージ領域 411をゲスト OS (B) 430の論理アドレス空間メッセージ領域 433にマップする処理を実行する。
[0077] ステップ S 108にお!/、て、メッセージ受信側 OS (サーバ)は、メッセージ受信側 OS ( サーノ )側論理パーティションの論理パーティションアドレス空間を介して物理アドレ ス空間のメッセージ領域にアクセスし、メッセージを取得する。
[0078] ステップ S 109にお!/、て、メッセージ受信側 OS (サーバ)は、メッセージ領域を破棄 する。さらに、ステップ S110において、メッセージ受信側 OS (サーバ)は、メッセージ ポートを破棄する。メッセージポートの破棄通知は、ステップ S111において、イベント 受信ポートを適用してメッセージ送信側 OS (クライアント)側に送信され、メッセージ 送信側 OS (クライアント)側にお 、てステップ S 112でメッセージポートを破棄すること でメッセージチャネルが解消され、メッセージチャネルを介した OS間通信が終了する
[0079] [ (2)ゲスト OSとシステム制御 OS間の通信処理]
次に、図 7および図 10を参照して、システム制御 OSとゲスト OS間の通信処理につ いて説明する。前述したように、システム制御 OSは、システム制御プログラムを生成 し、例えばシステムに予め定められたリソース配分の上限情報などに基づ 、てシステ ム全体の動作制御を行う。
[0080] ゲスト OSは、例えばゲスト OSに設定された論理パーティションに対応するリソース 要求など様々な処理のために、システム制御 OSに設定されたシステム制御プロダラ ムに対してメッセージ転送を行なう。
[0081] 前述したゲスト OS間の通信では、各ゲスト OSにおいて設定される各々の論理パー テイシヨン対応の論理アドレス空間を物理アドレス空間のメッセージ領域に対してマツ ビング、アンマッピングする処理としてメッセージ転送を実現していた。システム制御 OSに設定されたシステム制御プログラムとゲスト OS間の通信処理においても、図 7 に示すように制御 OS510の生成するメッセージチャネル 512を適用した通信が実行 される力 システム制御 OS520は、例えば UNIX (登録商標)において通信に適用 するソケットを生成してメッセージチャネルを介した通信を実現する。
[0082] 図 7のように、仮想ファイルを用いた通信を行う場合は、システム制御 OSは、 自己 の管理するファイルシステムによって識別可能なファイルディスクリプタに関連付けら れたソケットを生成し、このソケットを介してアクセス可能な仮想ファイルを作成し、物 理アドレス空間のメッセージ領域を仮想ファイルを介してアクセスすることで、メッセ一 ジ送受信を実行する。 [0083] 図 10のように、仮想ファイルを用いない通信を行う場合は、システム制御 OSは、自 己の管理するファイルシステムによって識別可能なファイルディスクリプタに関連付け られたソケットを生成し、該ソケットを介して物理アドレス空間のメッセージ領域をプロ セスのアドレス空間へマッピングし、プロセスは直接メッセージ領域へのアクセスを実 行する。
[0084] UNIX (登録商標)のソケットには、システム内のプロセスとの通信に使われる場合( UNIXドメインソケット)と、ネットワークを通じた別のシステムとの通信に使われる場合 (インターネットドメインソケット)がある。システム制御 OSは、メッセージチャネルを新 たなドメインのソケットとしてシステム制御プログラムに提供する。システム制御プログ ラムは、既存のソケットとほぼ同じセマンティックでメッセージチャネルを用いた通信を 行うことができる。
[0085] 従来の UNIX (登録商標)のソケット(UNIXドメインソケット)を適用した通信処理の 概要は、以下のとおりである。
a)メッセージ受信側(サーバ)プロセスが、ソケット(socket)システムコールでソケッ トを作成する。
b)メッセージ受信側(サーバ)プロセスが、ノインド(bind)システムコールを使用し てソケットに対応する名前 (ファイルディスクリプタ)を割り当てる。
c)メッセージ受信側(サーバ)プロセスが、リツスン(listen)システムコールを実行し 、接続準備状態に設定する。
d)メッセージ送信側(クライアント)プロセスが、ソケット(socket)システムコールでソ ケットを作成し、コネクト(connect)システムコールを使用してサーバ側ソケットとの通 信路を確立する。
e)メッセージ受信側(サーバ)プロセスが、アクセプト (accept)システムコールを実 行し、メッセージ送信側(クライアント)プロセスからの要求を受け入れる。
f)接続完了後に、ソケット対応のファイルディスクリプタに対する書き込み処理として のライト(write)システムコールと、読み取り処理としてのリード (read)システムコール を利用して、メッセージ送受信を実現する。
[0086] 以上が、 UNIXにおけるソケット(UNIXドメインソケット)を適用した通信シーケンス の概要である。本発明では、図 7、図 10に示す制御 OS510の設定する通信チヤネ ル 512を適用し、かつ、システム制御プログラム側では、上述した既存のソケットを適 用した処理とほぼ同様の処理によってゲスト OSとの通信を可能とする。なお、ゲスト OS側の処理は、前述したゲスト OS間通信における処理と同様の処理として実行さ れる。
[0087] 図 7、図 8 (仮想ファイルを用いた通信)および図 11、図 12 (仮想ファイルを用いな い通信)を参照してシステム制御 OS520と、ゲスト OS530管理の通信処理シーケン スについて説明する。なお、実際に通信を実行するのは、システム制御 OS520の設 定したシステム制御プログラムとゲスト OSであり、通信処理には、制御 OS510の生 成する通信チャネル 512と、システム制御プログラムカーネル 521の生成する通信用 ソケットが適用されることになる。システム制御プログラムは、様々なシステムコールを 実行し、システムコールに基づく処理をカーネル 521が実行し、カーネルにおいて通 信環境の設定、通信制御処理が実行される。システム制御プログラムは、システム制 御プログラムカーネル 521の生成する通信用ソケットを適用することにより、上述した UNIX対応のソケットを適用した通信とほぼ同様の処理で、ゲスト OSとの通信を実行 する。
[0088] 図 8および図 11は、ゲスト OSとの通信を実行するシステム制御プログラムの処理と 、カーネルの処理とを対応付けて示している。以下、各ステップ毎に処理の詳細を説 明する。
[ステップ S 201]
まず、ステップ S 201において、システム制御プログラムは、接続要求を受け付ける ための接続用ソケットを生成するため、ソケットシステムコール(socket () )を起動する 。なお、システムコールはカーネル 521の機能の呼出に適用される。カーネルは、ソ ケットシステムコール (socket () )の起動により、接続用ソケットを生成する。図 7およ び図 10に示す接続用ソケット 525である。
なお、生成されるソケットには、システム制御 OS520において管理するファイルシス テムに設定されるファイル名(ファイルディスクリプタ)が対応付けられる。
[0089] [ステップ S202] 次に、システム制御プログラムは、ステップ S202において、ノ インドシステムコール (bind (socket, · )を起動する。カーネル 521は、バインドシステムコール(bind (s ocket, · )に基づいて、システム制御プログラム接続要求を待っためのサービス ID (ポート番号)とソケットを対応づける。各ソケットは、システム制御プログラムの提供す るサービスに対応付けられて設定されることになる。
[0090] [ステップ S203]
次に、システム制御プログラムは、ステップ S203において、リツスンシステムコール( listen (socket, · · ) )を起動する。カーネルは、リツスンシステムコール(listen (sock et, · )に基づいて、ソケットに対応付けたサービスの接続を許可する。ソケットには 、対応するサービス識別子が設定されており、システム制御プログラムは、サービス対 応の通信許可設定を実行することができる。
[0091] [ステップ S 204]
次に、システム制御プログラムは、ステップ S204において、アクセプトシステムコ一 ル(fd = accept (socket, · )を起動する。カーネル 521は、アクセプトシステムコ一 ル(fd = accept (socket, · )に基づいて、メッセージチャネルの接続要求の有無を 検証し、接続メッセージチャネルの接続要求があるかどうか調べる。
接続要求が到着して 、たら以下の(a)〜(c)の処理を実行する。
(a)通信用のソケット(図 7および図 10の通信用ソケット 526)を作成する。
(b)システム制御 OS520の管理するファイルシステムのファイル記述子(ファイルデ イスタリプタ: fd)テーブル (fd.table)にソケット対応のファイル記述子(ファイルディスク リブタ: fd)を登録する。
(c)登録されたソケット対応のファイル記述子(ファイルディスクリプタ: fd)をシステム 制御プログラムに返す。
接続要求が到着して 、なかったら以下の(d) , (e)の処理を実行する。
(d)プロセスをサスペンド状態にする。
(e)次に接続要求が到着したときにプロセスのサスペンド状態を解除して、上記の( a)〜(c)の処理を行う。
[0092] 以上の処理によってシステム制御プログラムとゲスト OS間にメッセージチャネルが 設定される。図 7に示す仮想ファイル 524は、制御 OS510の管理する物理アドレス 空間メッセージ領域 511を抽象化したファイルである。ファイルの作成処理およびファ ィルの削除処理は、システム制御 OS520によって実行され、ゲスト OS530からシス テム制御プログラムに対するメッセージ転送時において、メッセージ転送前は、ゲスト OS530の論理アドレス空間メッセージ領域 533が物理アドレス空間メッセージ領域 5 11にマッピングされた状態にあり、メッセージ転送後は、システム制御 OS520側の仮 想ファイル 524として作成され、システム制御プログラム力もアクセス可能な状態にな る。また、システム制御プログラム力もゲスト OS530に対するメッセージ転送時におい ては、メッセージ転送前は、システム制御 OS520側の仮想ファイル 524がシステム制 御プログラム力 アクセス可能な状態にあり、メッセージ転送後は、システム制御 OS5 20が仮想ファイルを削除し、物理アドレス空間メッセージ領域 511がゲスト OS530の 論理アドレス空間メッセージ領域 533にマッピングされる。
[0093] また、物理アドレス空間メッセージ領域 511を仮想ファイル 524を介するのではなく 、直接プロセスのアドレス空間にマップする場合は、以下のように処理される。ゲスト OS530からシステム制御プログラムに対するメッセージ転送時において、メッセージ 転送前は、ゲスト OS530の論理アドレス空間メッセージ領域 533が物理アドレス空間 メッセージ領域 511にマッピングされた状態にあり、メッセージ転送後は、システム制 御 OS520が該物理アドレス空間メッセージ領域 511をプロセスのアドレス空間にマツ プして、システム制御プログラムから直接アクセス可能な状態にする。また、システム 制御プログラム力もゲスト OS530に対するメッセージ転送時においては、メッセージ 転送前は、システム制御 OS520が該物理アドレス空間メッセージ領域 511をプロセ スのアドレス空間にマップして、システム制御プログラムから直接アクセス可能な状態 にあり、メッセージ転送後は、システム制御 OS520が該マッピングを解除し、物理ァ ドレス空間メッセージ領域 511がゲスト OS530の論理アドレス空間メッセージ領域 53 3にマッピングされる。
[0094] なお、仮想ファイルを用いる場合、システム制御プログラムは、通信用ソケットのファ ィルディスクリプタを指定したリードシステムコールによって、該ソケット対応の仮想フ アイル 524の識別子を取得することができる。システム制御プログラムは、この仮想フ アイル IDを指定したオープン(open)、クローズ(close)、リード(read)、ライト(write )のいずれかのシステムコールを適用して、ソケット対応のファイルのオープン(open )、クローズ (close)、さらにメッセージの書き込み [ライト (write) ]、読み取り [リード (r ead) ]が実行可能となる。
[0095] また、物理アドレス空間メッセージ領域 511を仮想ファイル 524を介するのではなく 、直接プロセスのアドレス空間にマップする場合は、システム制御プログラムは、通信 用ソケットのファイルディスクリプタを指定したリードシステムコールによって、物理アド レス空間メッセージ領域 511がプロセスのアドレス空間にマップされたアドレスを取得 することができる。システム制御プログラムは、このアドレスに対する直接のアクセスを 行うことにより、メッセージ領域の読み取りおよび書き込みが実行可能となる。
[0096] システム制御プログラムは、複数のソケットを設定することが可能であり、それぞれの ソケットに対応して個別の仮想ファイルが設定され、それぞれの仮想ファイルは、個 別に物理アドレス空間のメッセージ領域に対応付けられ個別の通信が可能となる (仮 想ファイルではなく物理アドレス空間メッセージ領域を直接プロセスのアドレス空間に マップする場合も同様)。それぞれのソケットにはサービス識別子が対応付けられて おり、ソケット指定のシステムコールの選択的実行により、通信許可、不許可の設定 など、ソケット (サービス)毎の個別の処理が実行できる。
[0097] 図 8および図 11に示すステップ S—A〜Eの各処理は、ステップ S201〜S204の処 理によるメッセージチャネルの生成後に任意のタイミングで実行可能な処理である。 各処理について説明する。
[0098] [ステップ S— A]
ステップ S— Aは、ゲスト OSからのメッセージ受信処理である。メッセージ受信に際 して、システム制御プログラムは、リードシステムコール (read (fd, · ·) )を起動する。 カーネル 521は、リードシステムコール (read (fd, · )に基づいて、ゲスト OSからの メッセージチャネルを介したメッセージ到着の有無を検証する。
仮想ファイルを用いた通信を行う場合は、メッセージが到着していたら以下の(a) , (b)の処理を実行する。
(a)到着したメッセージに対応する仮想ファイルを作成する。図 7に示す仮想フアイ ノレ 524である。
(b)到着したメッセージ領域に対応する仮想ファイルの識別子 (ID)とショートメッセ ージをユーザバッファにコピーする。すなわちシステム制御プログラムに通知する。シ ステム制御プログラムは、この仮想ファイルの識別子 (ID)に基づいて仮想ファイルを 指定してメッセージを読み取ることができる。
メッセージが到着して 、な力つたら、以下の(c) , (d)の処理を実行する。
(c)プロセスをサスペンド状態にする。
(d)次にメッセージが到着したときにプロセスのサスペンド状態を解除して、上記 (a ) , (b)の処理を行う。
[0099] 図 7に示す仮想ファイル 524は、ソケット対応のファイル記述子(ファイルディスクリ プタ: fd)によって特定されるファイルであり、制御 OS510の管理する物理アドレス空 間メッセージ領域 511に対応可能なファイルである。
[0100] 仮想ファイルを用いな 、通信(物理アドレス空間メッセージ領域を直接プロセスのァ ドレス空間にマップする場合)では、メッセージ領域をプロセスのアドレス空間にマツ プし、そのアドレスとサイズをユーザバッファにコピーする。すなわちシステム制御プロ グラムに通知する。システム制御プログラムはこのアドレスに基づいて、メッセージ領 域の内容を直接読み取ることができる。
[0101] [ステップ S— B]
ステップ S— Bは、メッセージに対するアクセスに関する処理である。
仮想ファイルを用いた通信を行う場合は、すなわち、仮想ファイル 524に対する処 理である。システム制御プログラムは、仮想ファイル 524に対する処理として、オーブ ン(open)、クローズ(close)、リード(read)、ライト(write)のいずれかのシステムコ ールを起動することができる。カーネル 521は、各システムコールに対応する処理を 実行する。オープン(open)、クローズ(close)は、仮想ファイル 524のオープンとクロ ーズ処理に対応し、ライト (write)は、仮想ファイル 524に対するデータ書き込み、リ ード (read)は、仮想ファイル 524からのデータ読み取りに相当する。これらの処理は 、ファイル記述子を指定した処理として実行される。
[0102] 仮想ファイルを用いな 、通信(物理アドレス空間メッセージ領域を直接プロセスのァ ドレス空間にマップする場合)では、システム制御プログラムは、プロセスのアドレス空 間にマップされたメッセージ領域を直接アクセスすることができる。
[0103] [ステップ S— C]
ステップ S— Cは、メッセージの送信の際の処理である。
仮想ファイルを用いた通信の場合は、仮想ファイル 524に書き込まれたメッセージ の送信処理である。システム制御プログラム力 通信用ソケットに対して仮想ファイル の IDを指定したライトシステムコール (write (fd, · ·) )を起動することで、カーネル 52 1は、ライトシステムコール (write (fd, · )に基づいて、仮想ファイル 524に書き込 まれたメッセージの送信処理を実行する。
[0104] 制御 OS510は、カーネル 521力 ライトシステムコール (write (fd, · )に基づい て実行する処理に応じて、物理アドレス空間メッセージ領域 511のシステム制御 OS5 20側の仮想ファイル 524を削除し、ゲスト OS530側の論理アドレス空間メッセージ領 域 533にマッピングする処理を実行する。この処理により、システム制御プログラムが 仮想ファイル 524を適用して書き込みを実行したメッセージ力 ゲスト OS530に転送 されることになる。ゲスト OS530側の処理は、前述したと同様、メッセージポート 532、 イベントポート 531を適用した処理として実行される。
[0105] 仮想ファイルを用いな 、通信(物理アドレス空間メッセージ領域を直接プロセスのァ ドレス空間にマップする場合)では、システム制御プログラム力 通信用ソケットに対し て物理アドレス空間メッセージ領域がプロセスのアドレス空間にマップされているアド レスを指定したライトシステムコール (write (fd, · )を起動することで、カーネル 52 1は、ライトシステムコール (write (fd, · )に基づいて、物理アドレス空間メッセージ 領域の送信処理を実行する。メッセージ領域のプロセスアドレス空間へのマップは、 送信時に解除される。
[0106] [ステップ S— D]
ステップ S— Dは、受信メッセージを削除する際の処理である。
仮想ファイルを用いた通信の場合、システム制御プログラム力 仮想ファイル 524に 対してアンリンクシステムコール(unlink () )を起動することで、カーネル 521は、アン リンクシステムコール(unlink () )に基づいて、受信メッセージを特定するファイルの 削除によりメッセージの破棄を実行する。
仮想ファイルを用いな 、通信では、単にプロセスのアドレス空間へのマップを解除 し、物理アドレス空間メッセージ領域を開放する。
[0107] [ステップ S— E]
ステップ S— Eは、メッセージチャネルの切断処理であり、システム制御プログラムが 、ソケットを指定したクローズシステムコール(close (socket) )を起動することで、カー ネル 521は、メッセージポートを削除し、メッセージチャネルの切断を行なう。
[0108] なお、図 8、図 11には示していないが、システム制御プログラムはセレクトシステムコ ール(select)によって、メッセージの送受信処理の監視が実行できる。ソケットに対 応するファイルディスクリプタを特定したセレクトシステムコールを起動することで、力 一ネルは、セレクトシステムコール(select)によって特定されるソケットに対する受信 メッセージの有無を他の入出力処理と同様、常に監視することが可能となる。たとえ ば、システム制御プログラムが複数のゲスト OSとそれぞれ異なる通信ソケットを設定 した通信を行なう場合に、ゲスト OS (A)との通信ソケット [fd=sO]と、ゲスト OS (B)の 通信ソケット [fd= si]をセレクトシステムコールの対象として指定することで、カーネ ルは、各ソケットに対するメッセージの有無を監視し、メッセージが有る場合にシステ ム制御プログラムに通知する処理を行なう。このように、セレクトシステムコール(selec t)の利用により、効率的な処理が可能となる。
[0109] 次に、図 9および図 12に示すフローチャートを参照して、システム制御プログラムが ゲスト OS側力ものメッセージを受信し、その後システム制御プログラム力もゲスト OS に対してメッセージを送信する処理を実行する場合における、システム制御プロダラ ムおよびゲスト OSの処理につ!、て説明する。
[0110] まず、ステップ S301において、システム制御プログラムはソケットシステムコール(s ocket O )でソケットを作成する。このソケットは、図 7に示す接続用ソケット 525に相 当する。
ステップ S302にお!/、て、システム制御プログラムはバインドシステムコール(bind () )でソケットにサービス IDを付与する。前述したように、各ソケットは、システム制御プロ グラムの提供するサービスに対応付けられて設定されることになる。 [Oil 1] ステップ S303で、システム制御プログラムはリツスンシステムコール(listen () )でソ ケットを接続許可状態にする。システム制御プログラムは、ソケットを特定したリツスン システムコールの発行によって、ソケット毎に接続許可状態、不許可状態の設定をす ることが可能となる。
[0112] ステップ S304で、システム制御プログラムはアクセプトシステムコール(accept () ) でソケットに対する接続要求を待つ。
[0113] 次に、ステップ S305で、ゲスト OSがシステム制御プログラムに対してメッセージチ ャネルを接続する操作を行う。
この処理には、以下の処理が含まれる。
a)ゲスト OSからの接続要求処理(図 6のシーケンス図におけるステップ S 101の接 続要求処理に相当)
b)制御 OSが接続要求をシステム制御プログラムに通知し、先に説明したステップ S 304のアクセプトシステムコールが発行されたことに基づいて、制御 OSによるメッセ ージチャネル設定通知をゲスト OSに通知する処理(図 6に示すステップ S 104に相 当)
以上の処理が含まれる。
[0114] ステップ S306で、システム制御プログラム側のカーネルによってメッセージチヤネ ルの接続が行われると同時に、カーネルは、システム制御プログラムに対するソケット の接続処理を行う。すなわち、通信用のソケットを作成し、アクセプトシステムコール( accept () )での待ち状態力 復帰する。
[0115] ステップ S307で、ゲスト OSはメッセージ領域を用意し、メッセージチャネルを通じ て転送する。この処理には、以下の処理が含まれる。
a)ゲスト OSによるメッセージ領域確保処理、すなわち、ゲスト OSに対応する論理 パーティションの論理アドレス空間にメッセージ領域を設定する処理
b)ゲスト OSの論理アドレス空間のメッセージ領域を物理アドレス空間のメッセージ 領域にマッピングする処理
以上の処理が含まれる。
[0116] 仮想ファイルを用いた通信を行う場合は、ステップ S308 (a)で、システム制御プロ グラム側のカーネルは、ゲスト OSから送られたメッセージ領域を受信し、システム制 御プログラムがアクセス可能な仮想ファイルを作成する。図 7に示す仮想ファイル 524 である。なお、作成される仮想ファイルには仮想ファイル IDが設定される。なお、制御 OSは、システム制御プログラム側カーネルの生成した仮想ファイル 524に物理アドレ ス空間のメッセージ領域を対応付ける処理を実行する。
[0117] 仮想ファイルを用いな 、通信を行う場合は、ステップ S308 (b)で、システム制御プ ログラム側のカーネルは、ゲスト OSカゝら送られたメッセージ領域を受信し、システム制 御プログラムのアドレス空間にマップする。
[0118] 仮想ファイルを用いた通信を行う場合は、ステップ S309 (a)で、システム制御プロ グラムが通信用ソケットを指定したリードシステムコール (read () )によって、メッセ一 ジ領域に対応する仮想ファイルの IDを取得する。この仮想ファイル IDは、例えばファ イノレ名である。
[0119] ステップ S310 (a)で、システム制御プログラムは仮想ファイルを、仮想ファイル IDを 指定したオープンシステムコール (open () )によりオープンし、さらに、リードシステム コール (read () )により、メッセージ領域に格納されたデータを読み取る。
[0120] さらに、システム制御プログラムは、オープンした仮想ファイルに対してライトシステ ムコール (write () )を適用して、仮想ファイルにデータを書き込むことができる。
[0121] 仮想ファイルを用いな 、通信を行う場合は、システム制御プログラムは、自らのアド レス空間にマップされたメッセージ領域を直接アクセス (ステップ S309 (b) , S310 (b ;) )すればよい。
[0122] ステップ S311 (a)またはステップ S311 (b)において、システム制御プログラムが通 信用ソケットを指定して、仮想ファイルの ID、もしくは物理アドレス空間メッセージ領域 がマップされたプロセスアドレス空間のアドレスの書き込み処理としてのライトシステム コール (write () )を実行すると、カーネルはメッセージ領域をゲスト OSに転送する処 理を行う。この処理に応じて、制御 OSは、システム制御プログラム側の仮想ファイル の削除、もしくはプロセスのアドレス空間にマッピングされていた物理アドレス空間の メッセージ領域をアンマップするとともに、ゲスト OSの論理パーティションのメッセージ 領域にマッピングする。この処理により、メッセージがゲスト OSによって読み取り可能 となり、ゲスト OSによるメッセージ読み取りが実行される。
[0123] 上述したように、システム制御プログラムとゲスト OS間の通信処理にお!、ては、シス テム制御プログラム側は、ソケットを適用した通信プロセスを実行することで制御 OS の設定する通信チャネルを介したゲスト OSとの通信が可能となる。
[0124] 以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、 本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ること は自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的 に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の 欄を参酌すべきである。
[0125] なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、 あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理 を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに 組み込まれたコンピュータ内のメモリにインストールして実行させる力、あるいは、各 種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させること が可能である。
[0126] 例えば、プログラムは記録媒体としてのハードディスクや ROM (Read Only Memory )に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、 CD -ROM(Compact Disc Read Only Memory), MO(Magneto optical)ディスク, DVD( Digital Versatile Disc),磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、 一時的あるいは永続的に格納 (記録)しておくことができる。このようなリムーバブル記 録媒体は、 V、わゆるパッケージソフトウェアとして提供することができる。
[0127] なお、プログラムは、上述したようなリムーバブル記録媒体力もコンピュータにインス トールする他、ダウンロードサイトから、コンピュータに無線転送したり、 LAN(Local A rea Network),インターネットといったネットワークを介して、コンピュータに有線で転 送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵する ハードディスク等の記録媒体にインストールすることができる。
[0128] なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみ ならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個 別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的 集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
産業上の利用可能性
[0129] 以上、説明したように、本発明の構成によれば、複数のオペレーティングシステム( OS)が共存するマルチ OS環境における OS間通信において、 OS間の通信制御を 実行する制御 OSを設定し、制御 OSが、通信実行 OS各々に対応して設定される論 理パーティション相互のメッセージ転送制御を実行する構成とし、物理アドレス空間 のメッセージ領域を、メッセージ送信側 OSの論理パーティションアドレス空間のメッセ ージ領域へのマッピング状態から、メッセージ受信側 OSの論理パーティションァドレ ス空間のメッセージ領域へのマッピング状態に切り替える処理を実行して OS間のメッ セージ転送制御を行なう構成としたので、異なる OS間の通信におけるスムーズな通 信が可能となる。
[0130] さらに、本発明の構成によれば、通信実行 OS力 自己の管理するファイルシステム によって識別可能なファイルディスクリプタに関連付けられたソケットを生成し、ソケッ トを介してアクセス可能な仮想ファイルを設定し、仮想ファイルを介してメッセージの 送受信を実行する、または、物理アドレス空間のメッセージ領域をプロセスのアドレス 空間にマッピングしてメッセージ送受信を実行する構成としたので、異なる OSとの通 信において汎用的なソケットを適用したメッセージパッシングが実現される。
[0131] さらに、本発明の構成によれば、ソケットに対応するサービス識別子を設定すること により、サービス対応の通信許可設定が可能となり、また、例えばシステムコールとし てのセレクトシステムコールの適用により、ソケットを介したメッセージの受信監視処理 が可能となる。

Claims

請求の範囲
[1] 複数のオペレーティングシステム (OS)を格納した情報処理装置であり、
複数 OS間の通信制御を実行する制御 OSを有し、
前記制御 OSは、
通信実行 OS各々に対応して設定される論理パーティション相互のメッセージ転送 制御を実行する構成であり、物理アドレス空間のメッセージ領域を、メッセージ送信 側 OSの論理パーティションアドレス空間のメッセージ領域へのマッピング状態から、 メッセージ受信側 OSの論理パーティションアドレス空間のメッセージ領域へのマツピ ング状態に切り替える処理を実行して通信実行 OS間のメッセージ転送制御を行なう 構成であることを特徴とする情報処理装置。
[2] 前記通信実行 OS中の少なくとも 1つの通信実行 OSは、
自己の管理するファイルシステムによって識別可能なファイルディスクリプタに関連 付けられたソケットを生成し、該ソケットを介してアクセス可能な仮想ファイルを作成し 、前記物理アドレス空間のメッセージ領域を該仮想ファイルを介してアクセスする構 成であることを特徴とする請求項 1に記載の情報処理装置。
[3] ソケットを適用した通信を実行する通信実行 OSは、
ソケットに対応付けられた仮想ファイルの識別子を取得し、取得した仮想ファイル識 別子によって特定される仮想ファイルを適用したメッセージ書き込みまたはメッセージ 読み取りを実行する構成であることを特徴とする請求項 2に記載の情報処理装置。
[4] 前記通信実行 OS中の少なくとも 1つの通信実行 OSは、
自己の管理するファイルシステムによって識別可能なファイルディスクリプタに関連 付けられたソケットを生成し、該ソケットを介して前記物理アドレス空間のメッセージ領 域をプロセスのアドレス空間へマッピングし、プロセスが直接メッセージ領域へのァク セスを実行する構成であることを特徴とする請求項 1に記載の情報処理装置。
[5] 前記通信実行 OS中の少なくとも 1つの通信実行 OSは、
自己の管理するファイルシステムによって識別可能なファイルディスクリプタに関連 付けられたソケットを生成し、該ソケットを介して前記物理アドレス空間のメッセージ領 域を前記通信実行 OSに対応する論理パーティションのアドレス空間へマッピングし、 前記メッセージ領域へのアクセスを実行する構成であることを特徴とする請求項 1に 記載の情報処理装置。
[6] ソケットを適用した通信を実行する通信実行 OSは、
前記ソケットに対応するサービス識別子を設定し、サービス対応の通信許可設定を 実行する構成であることを特徴とする請求項 2乃至 5いずれかに記載の情報処理装 置。
[7] ソケットを適用した通信を実行する通信実行 OSは、
前記ソケットを介したメッセージの受信監視処理を実行する構成であることを特徴と する請求項 2乃至 5いずれかに記載の情報処理装置。
[8] 前記通信実行 OSは、
システムコールとしてのセレクトシステムコールの適用により、前記ソケットを介したメ ッセージの受信監視処理を実行する構成であることを特徴とする請求項 7に記載の 情報処理装置。
[9] 複数のオペレーティングシステム (OS)を格納した情報処理装置における通信処理 方法であり、
物理アドレス空間のメッセージ領域を、メッセージ送信側 osの論理パーティション アドレス空間のメッセージ領域へのマッピング状態とするステップと、
前記マッピング状態を解除し、物理アドレス空間のメッセージ領域を、メッセージ受 信側 OSの論理パーティションアドレス空間のメッセージ領域へのマッピング状態に 変更するステップと、
を有することを特徴とする通信処理方法。
[10] メッセージ転送を実行する少なくとも 1つの通信実行 OSは、
自己の管理するファイルシステムによって識別可能なファイルディスクリプタに関連 付けられたソケットを生成し、該ソケットを介してアクセス可能な仮想ファイルを作成し 、前記物理アドレス空間のメッセージ領域を該仮想ファイルを介してアクセスすること によるメッセージ送受信を行なうことを特徴とする請求項 9に記載の通信処理方法。
[11] ソケットを適用した通信を実行する通信実行 OSは、
ソケットに対応付けられた仮想ファイルの識別子を取得し、取得した仮想ファイル識 別子によって特定される仮想ファイルを適用したメッセージ書き込みまたはメッセージ 読み取りを実行することを特徴とする請求項 10に記載の通信処理方法。
[12] 前記通信実行 OS中の少なくとも 1つの通信実行 OSは、
自己の管理するファイルシステムによって識別可能なファイルディスクリプタに関連 付けられたソケットを生成し、該ソケットを介して前記物理アドレス空間のメッセージ領 域をプロセスのアドレス空間へマッピングし、プロセスが直接メッセージ領域へのァク セスを実行することを特徴とする請求項 9に記載の通信処理方法。
[13] 前記通信実行 OS中の少なくとも 1つの通信実行 OSは、
自己の管理するファイルシステムによって識別可能なファイルディスクリプタに関連 付けられたソケットを生成し、該ソケットを介して前記物理アドレス空間のメッセージ領 域を前記通信実行 OSに対応する論理パーティションのアドレス空間へマッピングし、 前記メッセージ領域へのアクセスを実行する構成であることを特徴とする請求項 9に 記載の通信処理方法。
[14] ソケットを適用した通信を実行する通信実行 OSは、
前記ソケットに対応するサービス識別子を設定し、サービス対応の通信許可設定を 実行することを特徴とする請求項 9乃至 13いずれかに記載の通信処理方法。
[15] ソケットを適用した通信を実行する通信実行 OSは、
前記ソケットを介したメッセージの受信監視処理を実行することを特徴とする請求項 9乃至 13いずれかに記載の通信処理方法。
[16] 前記通信実行 OSは、
システムコールとしてのセレクトシステムコールの適用により、前記ソケットを介したメ ッセージの受信監視処理を実行することを特徴とする請求項 15に記載の通信処理 方法。
[17] 複数のオペレーティングシステム (OS)を格納した情報処理装置における通信処理 制御を実行するコンピュータ ·プログラムであり、
物理アドレス空間のメッセージ領域を、メッセージ送信側 osの論理パーティション アドレス空間のメッセージ領域へのマッピング状態とするステップと、
前記マッピング状態を解除し、物理アドレス空間のメッセージ領域を、メッセージ受 信側 OSの論理パーティションアドレス空間のメッセージ領域へのマッピング状態に 変更するステップと、
を有することを特徴とするコンピュータ ·プログラム。
[18] 複数のオペレーティングシステム (OS)を格納した情報処理装置における通信処理 制御を実行するコンピュータ ·プログラムであり、
通信実行 OSの管理するファイルシステムによって識別可能なファイルディスクリブ タに関連付けられたソケットを生成するステップと、
前記ソケットを介してアクセス可能な仮想ファイルを作成するステップと、 前記物理アドレス空間のメッセージ領域を前記仮想ファイルを介してアクセスするこ とによってメッセージ送受信を行なうステップと、
を有することを特徴とするコンピュータ ·プログラム。
[19] 複数のオペレーティングシステム (OS)を格納した情報処理装置における通信処理 制御を実行するコンピュータ ·プログラムであり、
通信実行 OSの管理するファイルシステムによって識別可能なファイルディスクリブ タに関連付けられたソケットを生成するステップと、
前記ソケットを介して前記物理アドレス空間のメッセージ領域をプロセスのアドレス 空間へマッピングするステップと、
プロセスが直接メッセージ領域へのアクセスを実行するステップと、
を有することを特徴とするコンピュータ ·プログラム。
PCT/JP2005/017648 2004-09-29 2005-09-26 情報処理装置、通信処理方法、並びにコンピュータ・プログラム WO2006035730A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/580,847 US20070277179A1 (en) 2004-09-29 2005-09-26 Information Processing Apparatus, Communication Processing Method, And Computer Program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004283531 2004-09-29
JP2004-283531 2004-09-29
JP2005152788A JP2006127461A (ja) 2004-09-29 2005-05-25 情報処理装置、通信処理方法、並びにコンピュータ・プログラム
JP2005-152788 2005-05-25

Publications (1)

Publication Number Publication Date
WO2006035730A1 true WO2006035730A1 (ja) 2006-04-06

Family

ID=36118875

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/017648 WO2006035730A1 (ja) 2004-09-29 2005-09-26 情報処理装置、通信処理方法、並びにコンピュータ・プログラム

Country Status (4)

Country Link
US (1) US20070277179A1 (ja)
JP (1) JP2006127461A (ja)
TW (1) TW200614000A (ja)
WO (1) WO2006035730A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE531176T1 (de) * 2006-04-13 2011-11-15 Ibm Technik zur steuerung der kommunikation einer installierten vorrichtung mit der aussenwelt mittels eines proxy-servers
US7958145B2 (en) 2007-11-20 2011-06-07 International Business Machines Corporation Creating multiple MBeans from a factory MBean
JP5229455B2 (ja) 2008-03-07 2013-07-03 日本電気株式会社 モニター用ソケットライブラリを搭載するゲートウェイ装置、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラム
JP5125659B2 (ja) * 2008-03-24 2013-01-23 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
JP4518177B2 (ja) * 2008-04-09 2010-08-04 ソニー株式会社 記録装置、ファイルディスクリプタ生成方法、プログラム
JP5210798B2 (ja) * 2008-10-30 2013-06-12 日本無線株式会社 WiMAX通信システム
JP4796158B2 (ja) * 2009-02-02 2011-10-19 株式会社エヌ・ティ・ティ・ドコモ 携帯端末
US20100223419A1 (en) * 2009-03-02 2010-09-02 International Business Machines Corporation Copy circumvention in a virtual network environment
JP5381242B2 (ja) * 2009-03-31 2014-01-08 富士通株式会社 マルチプロセッサシステム及び制御プログラム
CN102053871B (zh) * 2009-10-28 2013-03-13 中国移动通信集团公司 一种应用程序图像的显示方法和装置
US8914623B2 (en) * 2010-03-05 2014-12-16 Lenovo (Singapore) Pte. Ltd. Utilization of the screen image information of a primary environment for reproduction and user-interaction in a secondary environment
CN102768629B (zh) * 2012-04-16 2017-02-08 中兴通讯股份有限公司 基于调度层实现虚拟机间通讯的方法和装置
WO2016121078A1 (ja) * 2015-01-30 2016-08-04 株式会社日立製作所 通信システム、および、通信方法
EP3553659B1 (en) * 2015-02-24 2022-11-23 Huawei Technologies Co., Ltd. Multi-operating system device, notification device and methods thereof
US10305917B2 (en) * 2015-04-16 2019-05-28 Nec Corporation Graph-based intrusion detection using process traces
JP6579916B2 (ja) * 2015-10-28 2019-09-25 株式会社日立製作所 仮想計算機間の通信経路制御方法および計算機システム
CN108604992B (zh) * 2016-05-26 2020-09-29 华为技术有限公司 使用主机内核资源的轻量级虚拟机之间的软件定义开关的系统和方法
FR3073061B1 (fr) * 2017-10-30 2019-11-22 Bull Sas Procede de communication entre processus, programme d’ordinateur et installation informatique correspondants
CN111756782B (zh) * 2019-03-28 2023-03-14 比亚迪股份有限公司 基于异构操作系统的消息传输系统、方法和车辆

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1145220A (ja) * 1997-05-29 1999-02-16 Internatl Business Mach Corp <Ibm> Tcp/ipソケット・アプリケーションを使用したシステム資源削減装置および方法
JP2002342280A (ja) * 2001-03-08 2002-11-29 Internatl Business Mach Corp <Ibm> 区分処理システム、区分処理システムにおけるセキュリティを設ける方法、およびそのコンピュータ・プログラム
JP2003316589A (ja) * 2002-04-23 2003-11-07 Hitachi Ltd 実記憶利用方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682534A (en) * 1995-09-12 1997-10-28 International Business Machines Corporation Transparent local RPC optimization
US6748460B2 (en) * 2001-09-28 2004-06-08 International Business Machines Corporation Initiative passing in an I/O operation without the overhead of an interrupt

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1145220A (ja) * 1997-05-29 1999-02-16 Internatl Business Mach Corp <Ibm> Tcp/ipソケット・アプリケーションを使用したシステム資源削減装置および方法
JP2002342280A (ja) * 2001-03-08 2002-11-29 Internatl Business Mach Corp <Ibm> 区分処理システム、区分処理システムにおけるセキュリティを設ける方法、およびそのコンピュータ・プログラム
JP2003316589A (ja) * 2002-04-23 2003-11-07 Hitachi Ltd 実記憶利用方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DUBNICKI C ET AL: "Software Support for Virtual Memory-Mapped Communication.", PARALLEL PROCESSING SYMPOSIUM IEEE., 19 April 1996 (1996-04-19), pages 372 - 381, XP010164993 *

Also Published As

Publication number Publication date
TW200614000A (en) 2006-05-01
US20070277179A1 (en) 2007-11-29
JP2006127461A (ja) 2006-05-18

Similar Documents

Publication Publication Date Title
WO2006035730A1 (ja) 情報処理装置、通信処理方法、並びにコンピュータ・プログラム
US8112610B2 (en) Partition bus
US7200695B2 (en) Method, system, and program for processing packets utilizing descriptors
WO2018035856A1 (zh) 实现硬件加速处理的方法、设备和系统
WO2018120986A1 (zh) 转发报文的方法和物理主机
JP3777095B2 (ja) 論理区分化コンピュータのイベント・ドリブン通信インタフェース
CN100495343C (zh) 提供两级服务器虚拟化的方法和系统
RU2436149C2 (ru) Мигрирование виртуальной машины, которая владеет ресурсом, таким, как аппаратное устройство
US8151275B2 (en) Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS
US20180331976A1 (en) Data processing system
JP6516860B2 (ja) 計算機システム、及び、アクセス制御方法
US20130283176A1 (en) Managing communications between computing nodes
EP1691287A1 (en) Information processing device, process control method, and computer program
KR19990082226A (ko) 버스 구조 위에서의 데이터 전달 및 버스 관리를 위한 응용 프로그래밍 인터페이스
JPH1069391A (ja) マルチタスク環境において動作するアプリケーションのための汎用通信機構
US9069592B2 (en) Generic transport layer mechanism for firmware communication
WO2023165431A1 (zh) 用于安全容器的设备访问方法及系统
JP5107570B2 (ja) ネットワーク・プロトコル・スタック隔離のためのネットワーク・アーキテクチャ、方法、およびコンピュータ・プログラム
WO2023174146A1 (zh) 卸载卡命名空间管理、输入输出请求处理系统和方法
US7996631B1 (en) System and method for accessing storage devices attached to a stateless client
US11360824B2 (en) Customized partitioning of compute instances
JP2004334537A (ja) プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム
JP2019164661A (ja) 情報処理装置、情報処理方法及びプログラム
JPH05224956A (ja) プロセス間メッセージ通信方法
CN117834561A (zh) 基于spdk的网络i/o处理方法以及装置

Legal Events

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

Ref document number: 200580001490.6

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

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

AL Designated countries for regional patents

Kind code of ref document: A1

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

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

Ref document number: 10580847

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 05785986

Country of ref document: EP

Kind code of ref document: A1

WWP Wipo information: published in national office

Ref document number: 10580847

Country of ref document: US