WO2001093032A1 - Computer system, method of controlling computer, and medium storing control program - Google Patents

Computer system, method of controlling computer, and medium storing control program Download PDF

Info

Publication number
WO2001093032A1
WO2001093032A1 PCT/JP2000/003500 JP0003500W WO0193032A1 WO 2001093032 A1 WO2001093032 A1 WO 2001093032A1 JP 0003500 W JP0003500 W JP 0003500W WO 0193032 A1 WO0193032 A1 WO 0193032A1
Authority
WO
WIPO (PCT)
Prior art keywords
input
operating system
computer
output device
output
Prior art date
Application number
PCT/JP2000/003500
Other languages
French (fr)
Japanese (ja)
Inventor
Tsutomu Yamada
Teruyasu Nakahashi
Masanori Naitou
Junichi Kobayashi
Hiroki Ohishi
Tomoko Hirato
Original Assignee
Hitachi, Ltd.
Hitachi Process Computer Engineering, Inc.
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 Hitachi, Ltd., Hitachi Process Computer Engineering, Inc. filed Critical Hitachi, Ltd.
Priority to PCT/JP2000/003500 priority Critical patent/WO2001093032A1/en
Publication of WO2001093032A1 publication Critical patent/WO2001093032A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry

Definitions

  • the present invention relates to a computer system that allows an input / output device to be used exclusively or shared among a plurality of computers.
  • OS operating system
  • Japanese Patent Laying-Open No. 11-85547 discloses a technique in which a plurality of operating systems are mounted on a single processor.
  • Japanese Patent Application Laid-Open No. 11-24943 states that even during a period in which the OS is restarted, the non-stop module can continue to execute interrupt processing without stopping, and the It discloses that related hardware resources and reinitialization processing are registered in a non-stop module management data area, and reinitialization processing for the hardware is executed when the kernel is restarted.
  • this implements a driver for an input / output device shared by the first OS and enters the first OS from the second OS.
  • a technology for requesting a process to an output device and realizing a shared process is disclosed.
  • Japanese Patent Application Laid-Open No. Hei 5-100828 discloses a method of connecting an installation medium to a computer system and installing a device driver.
  • the input / output device A is dedicated to the first OS
  • the input / output device B is dedicated to the second OS
  • the input / output device C is shared by the first and second OSs. It must be possible to make detailed settings.
  • An object of the present invention is to provide an environment in which an input / output device can be flexibly used between a plurality of operating systems.
  • an operating system executed on each computer refers to a table in which an operating system and an input / output device are associated with each other, and uses an input system used by its own operating system. Make sure that the output device is present.
  • FIG. 1 is a diagram showing a computer system according to a first embodiment of the present invention.
  • FIG. 2 shows an embodiment of the interrupt distribution function.
  • FIG. 3 shows another embodiment of the interrupt distribution function.
  • FIG. 4 is an example of the configuration of the configuration definition table.
  • FIG. 5 is a processing flow of the configuration definition reference function.
  • Figure 6 is an example of one implementation of the configuration reference function.
  • FIG. 7 is a processing flow of the device information acquisition function.
  • FIG. 8 is a processing flow of the device information setting function.
  • FIG. 9 is a block diagram of a device driver built-in function.
  • FIG. 10 is a processing flow of the input / output device enumeration function.
  • FIG. 11 is a processing flow of the input / output device reference function.
  • FIG. 12 is a diagram showing a computer system according to a second embodiment of the present invention.
  • FIG. 13 is an example of the configuration of the OS determination flag.
  • FIG. 14 is a diagram showing a computer system according to a third embodiment of the present invention.
  • FIG. 15 is a configuration example of the inter-processor communication function.
  • FIG. 16 shows a computer system according to a fourth embodiment of the present invention.
  • FIG. 17 is a diagram showing a configuration of a TCP packet.
  • FIG. 18 is a diagram showing a computer system according to a fifth embodiment of the present invention.
  • FIG. 19 is a processing flow of the remote device recognition in the computer device 3.
  • FIG. 20 is a processing flow of remote device recognition in the computer device 2.
  • FIG. 21 is a configuration example of a remote device list.
  • FIG. 22 is a diagram showing a configuration definition construction tool according to a fifth embodiment of the present invention.
  • FIG. 23 is a diagram showing another embodiment of the configuration definition construction tool.
  • BEST MODE FOR CARRYING OUT THE INVENTION a first embodiment of the present invention will be described with reference to FIG.
  • the computer system according to the present invention includes a processor A 10, a processor B 20, an input / output control device 30, memories 100, 120, and 140, and various input / output devices.
  • Various input / output devices include a keyboard 40, a mouse 41, a display device 70, etc. used by operators, a communication device 71 for performing input / output processing with external devices, and an expansion slot 7 for expanding functions.
  • 2-0 to m a non-volatile memory 42 for storing the operating system and the like.
  • the various input / output devices 70, 71, 72-0 to m are connected to the input / output control device 30 via an expansion bus 60 including a plurality of signal lines.
  • these various input / output devices are collectively referred to as input / output devices.
  • the I / O device collects the interrupt in the I / O controller via the interrupt signal included in the extension path. Any or all of these input / output devices may be omitted depending on the system configuration, and more various input / output devices may be connected.
  • a diagram in which two processors are connected to the input / output control device 30 is used.
  • such a form is not necessarily required for mounting.
  • a so-called loosely-coupled multiprocessor configuration in which a processor, an input / output control device, and a memory constitute one computing unit (module) and a plurality of modules share and connect an expansion bus 60
  • modules may be provided on a separate board from the expansion bus 60, and all or some of the modules may be provided on the same board as the expansion bus 60.
  • the processors 10 and 20 are connected to the input / output controller 30 via the processor buses 80 and 82 composed of a plurality of signal lines and the interrupt signal lines 81 and 8'3, respectively.
  • the memories 100, 120, and 140 are connected to the input / output control device 30 via a memory bus 50 including a plurality of signal lines.
  • Processors 10 and 20 are processing devices for operating an operating system, respectively.
  • the memories 100 and 120 store the operating system 101 and 121, the device information acquisition function 102 and 122 that receive the information acquisition request of the I / O device, and the information setting request to the I / O device.
  • the memory 140 is a memory that can be read and written by the processors 10 and 20.
  • the memory 140 holds a configuration definition table 141 in which the various input / output devices are controlled by which operating system. The completion or change of the operation of the input / output device is notified to the ports 10 and 20 via the interrupt signal lines 81 and 83.
  • the information acquisition request and the information setting request to the input / output device particularly mean reading and writing of the operation setting of the input / output device itself.
  • the device driver of the display device 70 normally recognizes information about the images and characters to be displayed. It is necessary to set the buffer to be used.
  • the display device 70 itself is connected to the extension path 60. In order for the display device 70 to be recognized by the extension bus 60, various resources (bus address, interrupt, display device) are required for the display device 70. It is necessary to set or obtain a code that recognizes 70, a manufacturer name, a revision, etc.). Information acquisition requests to I / O devices are used to set various resources required in addition to these normal operations. And an information setting request are required.
  • Configuration Definition Table 14 1 is a table shared between multiple operating systems, and is stored in memory (area) that can be referenced by multiple operating systems.
  • the memory 140 need not necessarily be a nonvolatile memory.
  • the configuration definition table 14 1 is held in the configuration definition table storage area 44 in the non-volatile storage device 42, and a program for performing a system start-up process when the computer system starts up is read from the non-volatile storage device 42.
  • the contents of the configuration table storage area 44 are transferred to the memory 140 and operated as the configuration table 144.
  • the program for performing the system start-up processing is a program for performing necessary processing in the computer system before starting the operating system, and for example, initializes a nonvolatile storage device and initializes a memory.
  • the program for performing the system start-up processing may be executed by at least one processor in the computer system, but each processor may execute the program while matching each other.
  • the program for performing the system start-up processing is stored in the nonvolatile storage device 42, and each processor executes the program by referring to the corresponding area of the nonvolatile storage device 42 immediately after the power is turned on.
  • the communication device 71 receives or transmits data to or from an external computer or device via a wired or wireless intermediate medium.
  • the expansion slots 72-0-m are used to extend the functions of the computer system. For example, it is used to extend the interface for connecting sensors, switches, and image input cameras for observing external conditions, and to extend relays and communication devices for controlling external devices.
  • the memories 100, 120, and 140 are used separately from the memories. However, of these memories, any combination of these memories is physically stored on the same memory. It may be held. If the processor has a function to directly connect the memory, the memory 100, 120, 140 can be directly connected to the processor 10, 20 without using the I / O controller 30. It is possible. In this case, since the memory 140 must be shared between processors, a dual-port memory, for example, is adopted as the memory 140, and the two memory interfaces of the memory are connected to the respective processor buses to achieve sharing. I do. In this case, the input / output control device 30 does not connect these memories, but is necessary for providing various input / output devices to the processor and controlling interrupts. Generally, the interrupt signal lines 81 and 83 are a part of the processor buses 80 and 82.
  • the operating system 101 executes tasks 106_0 to n using the allocated memory and the processor.
  • these tasks 106-i use input / output devices, direct control of input / output devices is not effective from the viewpoint of assignment of input / output devices and reuse of processing programs. Therefore, in general, the device driver is in charge of I / O device processing, and these tasks request the device driver for I / O device processing.
  • the processing request to the input / output device that the device driver receives from tasks 106-6-0 to i is classified into a case where information is obtained from the input / output device and a case where information is set in the input / output device. Accordingly, the device driver 105-0 to i requests the device information acquisition function 102 or the device information setting function 103 to perform processing according to these operations.
  • the device information acquisition function 102 or the device information setting function 103 is an input / output device that should execute processing in the operating system when processing the received request for the input / output device. Check if there is. In order to check, the device information acquisition function 102 or the device information setting function 103 inquires the configuration definition reference function 104 of the resource information on the input / output device.
  • the configuration definition reference function 104 refers to the configuration definition table 141, searches whether the operating system is in charge, and returns a response.The inquired device information acquisition function 102 or the device information setting Return to function 103. As a result, if the operating system 101 is an input / output device that is in charge of processing, the device information acquisition function 102 or the device information setting function 103 executes the processing requested by the device driver. Execute and return the desired request to the device driver. On the other hand, if the operating system 101 is not the input / output device that is in charge of processing, the information acquisition function 102 or the device information setting function 103 does not exist. Acts as if, and notifies the device driver that the device does not exist.
  • the driver is loaded when the computer system is started or when there is a request from the user. Therefore, it is preferable from the viewpoint of performance to refer to the configuration reference function 104 only when the driver is loaded, and not to reference the configuration reference function 104 during normal operation.
  • the “functions used to control the configuration of I / O devices” used when loading a driver, etc. were different from the access procedures that used normal I / O devices. Therefore, it is appropriate to implement the function that calls the configuration reference function 104 by “functions used when controlling the configuration of input / output devices”.
  • a device information acquisition function 102 or a device information setting function 103 will be described as an example of a “function used when controlling the configuration of an input / output device”.
  • the input / output device can be used exclusively between the operating systems. Also, for the configuration control table 14 1, multiple assignments for each input / output device are set. By doing so, it can be shared and used between operating systems. On the other hand, in order to use I / O devices exclusively between operating systems for interrupts from I / O devices, interrupts reported from each I / O device must be reported to an appropriate operating system. No. ,
  • the input / output controller 30 implements an interrupt distribution function 31 for distributing interrupts.
  • the interrupt distribution function 31 reports an interrupt from each input / output device to the operating system in charge of each input / output device.
  • the operating system can receive only an interrupt from the input / output device in charge of itself, call the device driver in charge of the input / output device, and control the input / output device.
  • the interrupt distribution function 31 does not necessarily need to be mounted on the input / output control device 30, and may exist independently of the input / output control device 30.
  • Fig. 2 shows the configuration of the interrupt distribution function 31.
  • Interrupt distribution function 3 1 A mechanism for reporting the interrupt reported from each I / O device to the appropriate operating system.
  • interrupt processor mask registers 201 and 202 masks corresponding to interrupt factors to be reported to the processors 10 and 20, respectively, are set. When the mask bit is set to "1", the corresponding interrupt factor is reported to the processor.
  • one of the factor bits in the interrupt factor register 200 corresponding to the input / output device is set to "1".
  • the cause bits are the interrupt processor mask register 201,
  • the corresponding bit of 202 is ANDed (204, 205).
  • the value set in the interrupt processor mask registers 201 and 202 the value set in the configuration definition table 141 corresponding to the correspondence between the input / output device and the operating system is used. For example, if the display device 70 is controlled by the operating system 101 in processor A10, the corresponding mask bit in the interrupt processor mask register 201 (for processor A) should be set to "1". Set the corresponding mask bit in interrupt processor mask register 202 (for processor B) to "0".
  • FIG. 3 shows another configuration of the interrupt distribution function 31.
  • interrupt signal lines 8 1 and 8 3 are composed of a plurality of signal lines, The interrupt distribution function 31 when the level is encoded will be described.
  • Fig. 3 (a) shows the configuration of the interrupt distribution function 31. It consists of an interrupt factor register 200, an interrupt level register 210, and an interrupt encoder 220.
  • Figure 3 (b) shows the configuration of the interrupt level register 210.
  • the interrupt level register 210 is a register that is prepared in one-to-one correspondence with the interrupt source.
  • the interrupt report level 211 and the processor flag 211 that indicates the processor that performs the interrupt processing are Become.
  • the interrupt report level 211 indicates an encoded level composed of a plurality of bits.
  • the larger the value of the interrupt report level the higher the interrupt priority.
  • the value 0 means that there is no interrupt.
  • the processor flag 2.12 there are several ways to represent the processor that processes the interrupt.For example, each bit of the processor flag 2 12 is expressed to mean the processor that processes the interrupt. .
  • bit 0 is set to 1, it means that the processor A 10 performs processing, and if bit 1 is set to 1, it means that the processor B 20 performs processing. At this time, if the value is 1 in decimal and the value is 1, the processor A 10 processes the data. If the value is 2, the processor B 20 and the value 3 means that the processors A 10 and B 20 process.
  • Fig. 3 (c) shows the configuration of the interrupt encoder 220.
  • the interrupt encoder 220 includes an interrupt level output unit 221 for the processor A10, an interrupt level output unit 222 for the processor B20, and a priority encoder 225.
  • the interrupt level output unit 222 for the processor B 20 outputs the interrupt level output signal except that the constant 2 13 (indicating the processor A) in the interrupt level output unit 2 21 is a constant indicating the processor B. Same as part 221.
  • the processor flags 2 1 2 is inspected by either comparator 2 1 4 illustrates a processor A 1 0 (beep meaning processor A 1 0
  • comparator 2 14 When the bit is set, the comparator 2 14 outputs “1”, and the logical product of the factor bit from the interrupt factor register 200 and the logical product 2 15 is obtained.
  • the output of logical product 2 15 is "1.”
  • logical product 2 15 is "1" Is output as it is to the priority encoder 2 25.
  • the priority encoder 2 25 selects the highest interrupt report level among all input interrupt factors and outputs the selected interrupt factor to the interrupt signal line 81.
  • the interrupt with the highest interrupt report level among the interrupts from the input / output devices to be controlled is reported to each processor.
  • FIG. 4 shows the configuration of the configuration definition table 141 according to the present invention.
  • FIG. 4 (a) is a table example showing the concept of the configuration definition table 141.
  • the configuration definition table 14 1 is composed of an input / output device name 14 2 and an operating system 'entry 14 3.
  • the operating system corresponding to the input / output device can be determined by referring to the configuration definition table 14 1.
  • the operating system that controls the mouse is ⁇ S—A
  • the operating system that controls expansion slot 0 is ⁇ S—B
  • the keyboard has no operating system
  • the communication device is ⁇ S—A. You can see that it is shared between A and OS-B.
  • FIG. 4 (b) is an example of a table showing the configuration of the configuration definition table 141 actually implemented. Implementing a table as shown in Fig.
  • a device driver uses position information uniquely determined by an operating system to specify an input / output device.
  • the I / O device is specified by the bus number, device number, and function number.
  • the bus number is a number that is uniquely assigned to each bus in the system
  • the device number is a number that is assigned uniquely to each input / output device in the same bus
  • the function number is a unique number for each function in the same input / output device.
  • the register space for setting the operation is secured.
  • the I / O device is configured so that the bus number and the device number are the same and only the function number is different. Therefore, these functions are identified by function numbers to identify the register space, and configuration control and normal processing are performed.
  • the operating system to be processed bit by bit is represented. That is, if bit 0 is set to 1, the operating system 101 is processed, and if bit 1 is set to 1, the operating system 122 is processed. this If the value is a decimal number, the value 1 is processed by the operating system 101, the value 2 is processed by the operating system 121, and the value 3 is processed by the operating system 101 and the operating system 122. Means that. A value of 0 means that none of the operating systems performs processing.This function can be used when it is necessary not to process the input / output device for the purpose of, for example, checking a computer system. it can.
  • the keyboard 40 and the mouse 41 connected to the input / output control device 30 are assigned different function numbers as different functions connected to the input / output control device 30. These devices can be identified by independent function numbers.
  • FIG. 4 (c) shows a configuration example of the path type search table 147.
  • one table is shown as the configuration table 141, but if there are multiple types of paths, the configuration table 141 is provided for each type of path.
  • a path type search table 147 for searching the configuration definition table 147 is prepared.
  • the bus type search table 147 includes a bus type 148 and a configuration table index 149.
  • the configuration definition table index 149 indicates the head address of the memory where these tables are stored when a plurality of configuration definition tables 141 exist. An entry indicating a plurality of bus types may be added to the configuration table 141 so that a single configuration table is used.
  • When a PC drive bus specified by PCMCIA / JEIDA is prepared in the computer system, a table similar to the configuration definition table 141 shown in Fig. 4 (b) is used. Prepare for the card bus and add the PC card entry to the bus type table 147. With such a configuration, it is possible to set an operating system that performs processing for each PC card slot. For other bus types, an operating system that controls the input / output devices can be set for an arbitrary bus type by using the position information that uniquely determines the input / output devices in the path. In this case, the number and contents of the above-mentioned position information may increase or decrease.
  • the configuration table 14 1 is a table that is referred to when multiple operating systems are operating, when updating the table, all operating systems that refer to the configuration table 14 1 are required to update the table. It must be stopped or cannot be referenced. For example, in order to update the entry of the configuration table 141, it is appropriate to update it before all operating systems are started. Even while the operating system is running, the configuration table storage area 44 of the non-volatile storage device 42 that holds the configuration table 14 1 is updated, and the contents of the configuration table are updated the next time the operating system is restarted. You may do it. That is, in order to update the configuration table 141, the operator changes or partially updates the table, stores the table data in the configuration table storage area 44, and supplies power to the computer system. Cut and re-insert. After that, the system executed in any one processor The system start-up program obtains the table data from the configuration table storage area 44 changed previously, and restores the configuration table 141 in the memory 140.
  • FIG. 5 shows the processing flow of the configuration reference function 104.
  • the configuration reference function 104 determines whether there is an input / output device requested by the device information acquisition function 102 and the device information setting function 103. That is, from the device information acquisition function 102 and the device information setting function 103, the operating system 101 processes the bus type, bus number, device number, and function number for specifying the input / output device. You will be asked to confirm that the input / output device should be used.
  • the configuration definition reference function 104 refers to the bus type search table 144 based on the bus type received from the device information acquisition function 102 or the device information setting function 103, and refers to it from now on.
  • the configuration table to be tried 1 4 1 or the area on the configuration table is specified (process 300).
  • the corresponding entry is searched from the configuration definition table 141 (process 301). If there is no corresponding entry, the response is made to the request source, "No input / output device exists", and the processing is terminated (processing 305).
  • the value of the OS entry is referred to the Sentry 1 4 3 corresponding to the entry, and the device information acquisition function 1 0 2 or the device information setting function that called the configuration definition reference function
  • Check whether the operating system of 103 is included (processing 303). For example, in a call from the operating system 101, 1S entry: bit 0 of ⁇ 43 is set to “1”. If so, the operating system 101 is recognized as being included in the entry processing the input / output device. If not included, respond to the request source with “No corresponding input / output device” and end (processing 305). If it is included in the process 303, it responds to the request source with “the corresponding input / output device exists” and ends (process 304).
  • the configuration definition reference function 104 which is a software processing method, has been described.
  • the configuration definition reference function 104 does not necessarily need to be implemented by a software method, and can be implemented by, for example, hardware.
  • FIG. 6 (a) shows another configuration example of the configuration definition table 141 when the configuration reference function 104 is implemented by hardware.
  • the values of bus number 144, device number 145, and function number 146 in Fig. 4 (b) are expressed in hexadecimal notation, the concatenated value is represented as address 160, and ⁇ S entry 143 is represented as The value to be stored at address 16 0 is 16 1.
  • the address 16 0 is 0 x 00 2 and the value stored in the address 0 x 0 02 is 1 6 1 becomes 0 x 0 1.
  • FIG. 6B shows another embodiment of the configuration reference function 104.
  • Configuration definition reference function 104 is bus type register 16 2, bus number register 16 3, device number 1 64, function number register 16 5, table index 16 6, offset register 16 6, OS It consists of an entry register 168.
  • the device information acquisition function 102 or the device information setting function 103 specifies the bus type, bus number, device number, and function number corresponding to the I / O device to be inspected when using the configuration reference function 104.
  • the configuration definition reference function 104 searches the bus type search table 147 based on the stored value of the bus type register 162 to find the value corresponding to the specified bus type (the top of the configuration table). Address). The obtained value is stored in table index 166.
  • the values stored in the bus number register 163, device number 164, and function number register 165 are concatenated and stored in the offset register 167. After that, Table Index 1 6 6 and Offset Regis evening
  • Configuration reference function 167 is added, and the stored value 168 is obtained by referring to the address of the configuration reference function 104 shown in FIG. 6 (a).
  • Device information acquisition function using device 104 or device information setting function Function 103 acquires the operating system corresponding to the original input / output device by referring to the OS entry register 168 after a certain period of time I do.
  • the configuration reference function 104 can be realized by hardware.
  • Figure 6 (c) shows an implementation example of the configuration reference function 104 implemented in hardware.
  • the configuration reference function 104 in FIG. 1 no longer exists in the memory 100 and the memory 120. By including it in 0, it can be used from any operating system.
  • FIG. 7 shows a processing flow of the device information acquisition function 102.
  • the device information acquisition function 102 is a device driver 105-0! ! It receives a data read request from the I / O device. At this time, the device information acquisition function 102 includes the bus type, bus number, device number, function number, address of the I / O device to be read, data size to be read, and data to be read. Receives the address of the buffer that stores overnight from the device driver 105-0-n.
  • the device information acquisition function 102 passes the bus type, bus number, device number, and function number to the configuration reference function 104, and issues a request to confirm whether the corresponding input / output device exists ( Processing 320). If it is determined from the response returned from the configuration reference function 104 that the I / O device does not exist, an abnormal termination response is returned to the requesting device driver and the process is terminated (process 32 4). If the input / output device is present, the data is read out from the requested input / output device address by the specified size and transferred to the specified buffer (process 3222). Thereafter, a response indicating normal termination is returned to the requesting device driver, and the process is terminated (process 3 2 3).
  • FIG. 8 shows a processing flow of the device information setting function 103.
  • the device information setting function 103 receives a data write request to the input / output device from the device drivers 105-0 to n. At this time, the device information setting function 103 sets the bus type, bus number, device number, function number, the address of the I / O device to be written, the data size to be written, and the address of the buffer that stores the data to be written.
  • Driver 1 0 5 Received from 0 to n.
  • the device information setting function 103 passes the bus type, bus number, device number, and function number to the configuration reference function 104, and issues a request to confirm whether the corresponding I / O device exists ( Processing 340). If it is determined from the response returned from the configuration reference function 104 that the input / output device does not exist, an abnormal termination response is returned to the requesting device driver and the process is terminated (process 344). If the I / O device is present, data of the specified size is transferred from the specified buffer to the address of the requested I / O device. Transfer the evening (processing 3 4 2). Thereafter, a response indicating normal termination is returned to the requesting device driver, and the processing is terminated (processing 343).
  • FIG. 9 shows a block diagram of the device driver built-in function 150 relating to the configuration of the operating system 101.
  • FIG. 9 (a) is a block diagram of an example of the device driver built-in function 150.
  • the device driver built-in function 150 includes a driver load function 108, an input / output device enumeration function 109, and an input / output device database 110.
  • the driver load function 108 reads the designated driver from a predetermined non-volatile memory, expands the designated driver in the memory 100, calls a function defined by the driver, and lists the drivers managed by the operating system. Has a function of adding an entry for the driver.
  • the I / O device database 110 is a database prepared for each type of I / O device, and describes the storage location of the driver corresponding to the I / O device and the parameters at the time of starting the driver. I have.
  • the input / output device database 110 relates to a device driver that needs to be called by the operating system, and is included in advance when the operating system is introduced into the computer system.
  • FIG. 10 shows a processing flow of the input / output device enumeration function 109.
  • the bus type, bus number, device number, and function number are initialized (processing 360) c.
  • the bus type, path number, device number, and function number are instructed to the device information acquisition function 102, Receive the result (processing 3 6 1).
  • the device information acquisition function 102 Based on the response from the device information acquisition function 102, it is determined whether the corresponding input / output device is under the management of the operating system 101 (process 362). If it is notified that the I / O device does not exist, change the path type, path number, device number, and function number to indicate the next I / O device. Return (processing 3 6 8).
  • the device number is incremented by one, or when the device number reaches a specified value, the device number is initialized and the bus number is incremented by one. In this way, all input / output devices in the computer system are scanned. If it is determined from the process 3 62 that the corresponding input / output device exists, a key corresponding to the input / output device is created, and the input / output device database 110 is searched (process 3 63) Then, it is determined whether the corresponding entry exists (processing 3654). If the corresponding entry does not exist, it means that an input / output device has been added since the last time the computer system was started.
  • a procedure for introducing a new driver into the computer system (described later) is executed (Process 3). 6 7). If the entry exists, the driver entry function 108 is instructed by the entry to incorporate a device driver corresponding to the input / output device into the operating system 101 (process 365). Then, it is determined whether the scanning of the input / output device has been completed to the last (process 3666). If all the input / output devices have not been scanned yet, the process 368 is executed, and the process 361 is repeated. When all the I / O devices have been scanned, the I / O device enumeration function 109 ends.
  • the I / O device enumeration function 1109 and the I / O device database 110 searched all I / O devices existing in the computer system, and there was a change in the configuration of the I / O devices since the last boot. In such a case, it is possible to automatically incorporate the corresponding driver into the operating system.
  • the I / O device enumeration function 109 is also a device driver built-in function.
  • the interrupt is reported to the processor in charge of the processing by the interrupt distribution function 31 described above.
  • the interrupting processor conditionally calls the device driver built-in function 150 from the operating system function. Specifically, the device driver built-in function 150 is called with the specified bus type, bus number, device number, and function number. Thereafter, the device driver embedding function 150 processes a part of the flow shown in FIG. 10 and becomes capable of embedding the corresponding driver.
  • the above is the description of the device driver built-in function 150 that realizes automatic detection of input / output devices and automatic reading of drivers.
  • the device driver built-in function that does not automatically detect input / output devices and automatically reads drivers There are also 150.
  • FIG. 9 (b) is a block diagram of another example of the device driver built-in function 150.
  • Another example of the device driver built-in function 150 includes a driver load function 108, an input / output device reference function 111, and an input / output device list 112.
  • the I / O device list 1 1 2 is a list of all I / O devices that perform processing in the operating system, and describes the storage location of the driver corresponding to the I / O device and the parameters at the time of starting the driver. .
  • FIG. 11 shows the processing flow of the input / output device reference function 111. First, an input / output device entry is read from the input / output device list 1 1 2 (process 380).
  • the device information acquisition information 102 is instructed based on the bus type, bus number, device number, and function number corresponding to the input / output device described in the entry, and the result is received (process 38 1). From the response of the device information acquisition function 102, it is determined whether the corresponding input / output device is under the management of the operating system 101 (process 3822). Notification that the I / O device does not exist If it is, the next I / O device entry is read from the I / O device list 112 (process 3885). If it is determined that the input / output device is present, the dry paring function 108 is instructed to incorporate the depth driver corresponding to the input / output device into the operating system 101 (process 383).
  • the input / output device can be used exclusively or shared by a plurality of operating systems.
  • the operation of one operating system does not affect the operation of the other operating system. Therefore, according to the present invention, while one operating system is operating, it is possible to stop or restart the other operating system. At that time, the operating system in operation can continue to operate.
  • the case where the operating systems 101 and 121 are executed by the processors 10 and 20, respectively, has been described. However, two operating systems are executed by one processor, and the present invention is executed. It is also possible to apply. -In this case, the I / O controller 30 does not need to implement the function of dispatching interrupts, and all interrupts are reported to a single processor.
  • a processor (Register, There are a program counter, TLB (Translation at Look-a-side Buffer), etc.) and interrupts. Therefore, in order to switch between and execute multiple operating systems, it is necessary to make these resources appear to be controlled independently by each operating system. Therefore, operating systems independent of the multiple operating systems are required. .
  • a rating system switching function program
  • the operating system switching function is triggered by a specific factor (such as an interrupt indicating that a certain amount of time has elapsed) and uses the above-mentioned hardware resources used by the first operating system that had been running up to that point.
  • the hardware resources used by the second operating system which is saved in the first specific area of the memory and switched from now on, are restored from the second specific area of the memory, and the second operating system is executed.
  • the number of operating systems is two has been described, but the number is not limited to the number of operating systems.
  • the number is not limited to the number of operating systems.
  • FIG. 12 shows the configuration of a computer system for sharing a driver for the same type of input / output device among a plurality of operating systems. Elements having the same numbers as those in FIG. 1 are the same as those described in the first embodiment of the present invention.
  • the newly added components in FIG. 12 include the ⁇ S determination flag register 32 in the input / output control device 30 and the Common driver object 43 in volatile memory 42, common dryino 107 and common dryino 127 in memory 100 and memory 120.
  • the following describes a method for sharing the same common driver object among multiple operating systems.
  • the operation is described only for the common driver 107 in the operating system 101, but the same operation is also applied to the common driver 127 in the operating system 121.
  • a plurality of common driver objects may be prepared according to the required input / output devices.
  • the operating system 101 When the operating system 101 starts up, it initializes the hardware resources (processor, memory, etc.) and input / output devices that it manages. When initializing an I / O device, the initialization process is generally performed by a device driver corresponding to the I / O device. Therefore, the operating system 101 reads the common driver object 43 corresponding to the device driver from the non-volatile memory 42, initializes the instruction codes, static data, and variable areas included in the object, and stores the memory 1 Load processing such as placing on 0 0 is performed. The loaded common driver object exists in the memory 100 as the common driver 107. Thereafter, the common driver 107 is called from the operating system 101 and performs a desired process.
  • the common driver 107 may refer to the OS determination flag register 32 when it is necessary to determine which operating system, that is, the processor, is executing itself.
  • the S discrimination flag register 32 is read from both processor A10 and processor B20. Register. The value to be read changes according to one rule of reading. For example, when read from processor A10, it can be read as 0X55, and when read from processor B20, it can be read as 0XAA.
  • the common driver object 43 is stored in the non-volatile memory 42 by a storage method that can be commonly recognized by both operating systems so as to be read out from both the operating systems 101 and 121.
  • a storage method that can be commonly recognized by both operating systems so as to be read out from both the operating systems 101 and 121.
  • FAT Fe Allocation Table
  • the FAT storage method is a storage method widely used for storing files on a floppy disk or an eighty disk of a personal computer.
  • JIS standard X0605 1992 “Volume and file structure of flexible disk cartridge for information exchange” or IS ⁇ NO IEC standard 92933-1994 “Information technology” ⁇ Volume and file structure of disk cartridges for information interchange ”.
  • the operator stores the common driver object 43 immediately below a specific directory (for example, the common directory) in the non-volatile memory 42 initialized by the FAT storage method, and stores each operating system in the common directory at the time of startup. By setting the driver to be read as needed, it is possible to share the driver.
  • a specific directory for example, the common directory
  • the common driver object 43 may be exclusively loaded by a plurality of operating systems or may be loaded simultaneously. When an I / O device is used exclusively, the corresponding common driver object 43 is generally exclusively loaded, but, for example, there are two I / O devices of the same type in the computer system. If one is used by the operating system 101 and the other is used by the operating system 121, the same Common driver objects 43 are loaded by each operating system.
  • the processing of the common driver may change depending on which operating system it is running from.
  • FIG. 13 shows the configuration of the input / output control device 30 including the OS determination flag register 32.
  • S discrimination flag register 3 2 is a processor A constant 2 49 indicating a value responding to processor A 10 and a processor B constant 2 50 indicating a value responding to processor B 20 .
  • a selector for switching these values Consists of 2 4 8 The selector 248 outputs the processor A constant 249 when the value of the selected input signal 251 becomes "1", and outputs the processor when the value of the selected input signal 251 becomes "0". Outputs B constant 250.
  • the I / O controller 30 is a processor A address signal 24 0, a processor A data output signal 24 1, a processor A address decoder 24 4, a processor A data selector 24 5, a processor B address signal 24 42, It consists of a processor B data output signal 243, a processor B address decoder 246, and a processor B data selector 247.
  • the output part of the data signal is specifically extracted, and in a general input / output control device, the data communicates with the processor via an input / output signal line in which the input and output are multiplexed. .
  • the processor A address decoder 244 outputs a signal for selecting a resource inside the input / output device from the input processor A address signal 240.
  • the selection input signal 2 51 for selecting the OS determination flag register 3 2 is output to “1”, and the output data select signal 253 is output. Is output.
  • the processor A data overnight selector 2 4 5 selects and outputs the output signal from the ⁇ S discrimination flag register 32 to the processor A data output signal 241, based on the input selection signal 25 3 that is input. I do.
  • the processor B address decoder 246 and the processor B data selector 247 also have the same functions as the processor A address decoder 244 and the processor A data selector 245, respectively. However, the processor B address decoder 246 does not output a selection input signal to the ⁇ S determination flag register 32.
  • the value 0 X 55 indicated by the constant 249 can be obtained.
  • the indicated value 0 XAA is obtained.
  • the values of the constants 249 and 250 have no particular meaning, and any value can be set. What is needed here is that if the same program is to be executed on each processor 10 and 20 and the operation needs to be switched for each processor, this register will be used to execute the program using this register. The purpose is to provide a means of knowing that the A method of using the interrupt distribution function 31 in this embodiment will be described below.
  • Which operating system processes the common driver object 43 is generally set by the operator, and to which operating system an interrupt from the corresponding I / O device is reported, that is, It is appropriate to set how to set the transfer function 31 when the common driver object 43 is executed.
  • it is determined using the OS determination flag register 32 which processor is being executed by itself, and an interrupt is notified to the processor on which it is executing.
  • an interrupt sorter It is desirable to set function 31.
  • the common driver object 43 can be used in common by each operating system. Also, by referring to the OS determination flag register 32, it becomes possible to perform processing unique to each processor.
  • FIG. 14 shows a configuration for changing control of an input / output device in a plurality of operating systems.
  • control rights of input / output devices may be changed between processors in order to optimize the system. At that time, it was necessary to rebuild the operating system.
  • a configuration for easily changing the control right of the input / output device will be described.
  • the elements newly added in the present invention are a DB buffer 260, an interprocessor communication function 261 for synchronizing between processors, a processor A communication interrupt 262, and a processor B communication interrupt 2663. It is.
  • the DB buffer 260 is used to transfer data between the operating system 101 and the operating system 121, and exists in a memory readable and writable by each operating system. Present at 140.
  • Figure 15 shows the configuration of interprocessor communication. In order to synchronize between processors, it is necessary to have a function to send some notification from one processor to the other processor and reply to the sender that the notification has been received from the other processor.
  • Figure 15 (a) shows one implementation example of the interprocessor communication function 2661. This section describes how to use the port output and interrupt of the processor. That is, the processor that wants to issue the notification drives its own port output. The issuing port output is connected to the other processor interrupt.
  • processor A port output 280 is connected to processor B interrupt input 283, and processor B port output 282 is connected to processor A interrupt input 281.
  • processor A10 when the processor A10 notifies the processor B20 of the event, the processor A10 drives the processor A port output 280 and notifies the processor B interrupt input 283.
  • processor B recognizes the notification, it immediately drives processor B port output 282 and notifies processor A interrupt input 281 to notify that processor A 10 has recognized the notification.
  • FIG. 15 (b) shows another implementation example of the inter-processor communication function 261.
  • This implementation example is characterized in that a register indicating the cause of processor communication is provided.
  • the processor-to-processor communication function 26 1 consists of the A bus interface 2886, the processor A interrupt multiplexer 2887, the processor A interrupt factor 2992, the B bus interface 2888, and the processor B interrupt multiplexer 2 89, processor B interrupt setting 291, processor B interrupt factor 2 93.
  • a bus interface 286 and B path interface — phase 288 communicates from each processor path Function 26 1 This is an interface for accessing the internal registry.
  • the processor A interrupt multiplexer 287 and the processor B interrupt multiplexer 289 are configured to determine whether each interrupt source (including the processor A interrupt setting 290 or the processor B interrupt setting 291) has multiple interrupts.
  • the signal is encoded into a signal suitable for the embedded signal line and output.
  • the interrupt signal line 81 and the interrupt signal line 83 may be composed of a plurality of signal lines to notify a plurality of factors.
  • the processor A interrupt factor 292 and the processor B interrupt factor 293 indicate the interrupt factor notified by inter-processor communication.
  • these functions are included in the input / output control device 30 here, the input / output control device 30 is not necessarily required, and may be separately implemented as hardware for communication between individual processors.
  • the processor A10 sets the factor to be notified to the processor B20 as the processor B interrupt factor 293. Subsequently, the processor A 10 writes a predetermined code into the processor B interrupt setting 2 91. Then, the interrupt is encoded by the processor B interrupt multiplexer 289 and notified to the processor B 20 as an interrupt. Upon receiving the interrupt, the processor B 20 checks the processor B interrupt setting 291 1 and the processor B interrupt cause 2 93 in order to determine the cause of the interrupt. Know what the interrupt is and what the interrupt was. After that, to clear the interrupt, clear the processor B interrupt setting 291, and end the interprocessor communication. If necessary, the processor B 20 may notify the processor A 10 using the inter-processor communication function 26 1.
  • the configuration control information is information required when the operating system initializes the input / output device, and specifically means information for allocating hardware resources such as a memory and an interrupt.
  • the operating system 101 extracts an entry for the input / output device from the input / output device database based on the data in the input / output device and writes it to the DB buffer 260.
  • the operating system 101 notifies the operating system 121 that the database entry has been written to the DB buffer 260 via the inter-processor communication function 261.
  • the notified operator refers to the DB buffer 260 and updates the input / output device database 130 managed by its own operating system.
  • the operating system 121 After the update, the operating system 121 notifies the operating system 101 of the end of the update by the inter-processor communication function 261.
  • the operating system 101 that has received the update completion notification deletes the entry relating to the input / output device from the input / output device database 110 managed by the operating system.
  • the operating system 101 will be notified by the operating system 122 that the operation has terminated abnormally, or will be notified for a certain period of time. It does not delete the entry of the I / O device by itself detecting that it does not end within. To detect that the notification does not end within a certain period of time, it is advisable to use a timer function mounted on the processor or an input / output device outside the processor.
  • the contents of the entry of the input / output device database in the operating system 101 may differ from the configuration of the operating system 121.
  • the level of an interrupt output from an input / output device may differ between operating systems.
  • the operating system 122 updates the I / O device database 130, it changes the contents of the corresponding database entry.
  • the operating system 122 changes based on an instruction to change the value by the intervention of the user, the initial setting information of the input / output device held in advance, and the like.
  • the I / O device data managed by both operating systems There will be entries for the same input / output device during the overnight base. In the worst case, one entry is ignored as a meaningless entry (access to an I / O device that should not exist) by referring to the configuration definition table 141, but it is unnecessary for reliability. Leaving an entry is problematic. Therefore, to ensure that the input / output database is updated, it is advisable to use existing database update technology, for example, a two-phase commit method.
  • the server that manages the database related to the update is inquired about whether the transaction can be completed (committed) or not (phase 1). If so, it notifies all database servers to commit (phase 2).
  • the I / O device database 1 110 the server that manages the database related to the update is inquired about whether the transaction can be completed (committed) or not (phase 1). If so, it notifies all database servers to commit (phase 2).
  • the I / O device database 1 110 the server that manages the database related to the update is inquired about whether the transaction can be completed (committed) or not (phase 1). If so, it notifies all database servers to commit (phase 2).
  • the I / O device database 1 110 the server that manages the database related to the update is inquired about whether the transaction can be completed (committed) or not (phase 1). If so, it notifies all database servers to commit (phase 2).
  • the I / O device database 1 110 the server that manages the database related to the update is inquired about whether the transaction can be completed (committed) or
  • a database server is provided for each of the 130, and the operating system at the source of the I / O device notifies each database server of the entry deletion and addition. Finally, if neither of these is a problem, the operating system at the source of the I / O device notifies the respective database server of the commit and instructs it to reflect it in the actual database. Database is updated at once. At this time, since each database server proceeds while processing the records, it is possible to recover even if an unexpected situation falls in the middle.
  • the input / output entry can be safely moved.
  • the procedure for changing is as follows.
  • the operating system that releases control of the input / output device (the operating system 101 in this example) stores the configuration definition table 141 in another memory area when the above (mouth) processing is completed normally. Copy and change the OS entry of the I / O device in the configuration table from "1" (indicating operating system 101) to "2" (indicating operating system 121).
  • the operating system 101 writes the changed configuration definition table into the configuration table storage area 44 of the nonvolatile storage device 42. Thereafter, when the computer system is restarted, the computer start-up processing program restores the configuration definition table 14 1 to the memory 140 from the configuration table storage area 44.
  • FIG. 16 shows a configuration for sharing an input / output device with a plurality of operating systems, and particularly shows a configuration for sharing a communication device 71 as an input / output device.
  • Elements denoted by the same reference numerals as in FIGS. 1, 12, and 14 are the same as those described in the previous embodiments of the present invention.
  • the newly added components in Fig. 16 are the shared communication driver 105-A in the memory 100, the shared server driver 105 in the proxy server 105-P, and the memory 120. 5—B, communication buffer 2 6 4
  • a method of sharing the communication device 71 with two operating systems 101 and 121 will be described.
  • the communication device 71 is connected to another computer device ⁇ network device via a communication path.
  • Communication device 71 Wired or wireless communication path to connect Transmission media. On these media, data is exchanged between communication devices based on communication protocols called protocols.
  • protocols mainly used on the Internet include TCP / IP (Transmission Control Protocol / Internet Protocol) and UDP / IP (User Datagram Protocol / Internet Protocol). Both TCP, UDP, and IP are protocols corresponding to the transport layer and the network layer, respectively, in the hierarchical model defined by the OSI (Open Systems Iniercoimecnon) reference protocol.
  • IP is a protocol that specifies the assignment of addresses for connecting to other communication nodes and the routing up to the communication nodes.
  • TCP supports the reliability of various communication services (TELNET, File Transfer Protocol (FTP), Hyper Text Transfer Protocol (HTTP), etc.), and is a protocol that specifies connection management, checksum, response confirmation, etc. It is.
  • UDP like TCP, is a protocol that supports the reliability of communication services. While TCP establishes a connection between communication devices, UDP is connectionless communication and is simpler than TCP. In the present embodiment, a description will be given based on an example in which the communication device 71 performs communication using TC PZ IP.
  • Fig. 17 shows the format of the data packet defined by the TCP.
  • the TCP packet is composed of a source port number 500, a destination port number 501, other TCP headers 502, and a data header 503.
  • the TCP header is not described in detail here
  • the other TCP header 502 is composed of a transmission sequence number, a response confirmation number, a header length, a code bit, a window, a checksum, and an emergency pointer.
  • network applications higher than TCP specify the destination application for data transmission and reception based on the port number.
  • the interrupt distribution function 31 is set in advance so that the interrupt raised from the communication device 71 goes to the operating system 101.
  • the following three types of data are generally received by the driver from the communication device 71.
  • the communication device 71 transfers the received data and the reception status to the memory, and notifies the operating system 101 of the reception of the data by interruption.
  • the operating system 101 detects that the cause of the interrupt is in the communication device 71, and requests the shared communication driver 105-A to process the received data.
  • the communication shared dry line 105-A analyzes the destination port number 501 in the TCP header of the received data bucket ( and the communication shared driver 105-A determines the destination port of the received data). Notify the upper application corresponding to the number 501. If the destination of the received data is the proxy server 105-P, the data is received.
  • the proxy server 105-P stores the received data in the communication buffer 264, and notifies the operating system 121 of the fact that the data has been received using the inter-processor communication 261. 'When the operating system 12 1 receiving the interrupt detects that the interrupt factor is data reception, the communication shared driver 125 _B transmits the data from the proxy server 10.5-P to the communication shared driver 125_B. Request processing. Communication driver 1 2 5 — B notifies upper-level application as necessary and completes the process. If the destination of the data received by the communication driver 105A is another higher-level application (for example, TELNET), the communication driver 105-A sends the data to the corresponding upper-level application. And the process is completed.
  • TELNET another higher-level application
  • the communication sharing driver 105-A receives the data to be transmitted from the upper-level application, the communication sharing driver 105-A transmits the transmission data and transmission status (transmission-related) based on the received data. Prepared in memory).
  • the communication shared driver 105-A notifies the communication device 71 of the fact that transmission preparation has been made in some way (via the register of the communication device 71), or the communication device 7 There is a method in which 1 checks the transmission status at regular intervals and determines that it is ready for transmission.
  • the communication device 71 transmits the data to the communication path based on the transmission data and the transmission status, and transmits the success or failure of the transmission and the state of the communication channel as the transmission status to the communication common driver 105-A. Respond and complete the process.
  • the communication shared dryino 125-B performs the following processing.
  • the communication shared driver 1 2 5 1 B uses the communication buffer as it is Stored in 264, and notified to the proxy server 105-P by the inter-processor communication function 261.
  • the proxy server 105_P passes the data of the communication buffer 264 to the communication shared driver 105-A and completes the process.
  • the memory 100 or the memory 140 can be used as the destination of the reception data and the reception status from the communication device 71, or the storage destination of the transmission data and the transmission status to the communication device 71.
  • the memory 140 accessible from both operating systems.
  • a destination operating system of a data bucket received by a destination port number 501 is determined.
  • the port numbers must be the same, and the destination numbers specified by the higher-level application must be specified, and the destination operating system of the received data packet should be determined based on them. It is characterized by.
  • an application corresponding to the proxy server 105_P is implemented as an upper application of various device drivers, and the input / output device is controlled by the other operating system via the proxy server and the memory 140. Is what you do.
  • the user of the computer system can reduce the hardware resources (such as cables and network addresses) required for communication, halve the setting work, and easily communicate efficiently. Communication costs can be reduced.
  • FIG. 18 shows an example of a configuration for sharing an input / output device when a plurality of operating systems are physically separated on different devices, particularly for sharing a communication device 71 as an input / output device. Is shown. Elements having the same numbers as in FIGS. 1, 12, 14 and 16 are the same as those described in the previous embodiments of the present invention.
  • Newly added components in Fig. 18 are the cooperative communication device 73-A, B, protocol conversion function 74, cooperative transmission line 76, device information remote acquisition function 127, device information remote setting There are a function 128, a remote device list 122, a cooperative communication driver 400, 420, and a remote computer list 410.
  • the operating systems 101 and 121 are separated into separate computer devices 2 and 3 respectively.
  • the cooperative communication devices 73-A and B are connected to each other via a cooperative transmission line 76 and are also connected to other computer devices. There is a wired or wireless transmission medium as the cooperative transmission path 76.
  • the protocol conversion function 74 may be implemented in the cooperative communication devices 73-A and B. However, in general, as the device drivers of the cooperative communication devices 73-A and B, the cooperative communication drivers 400 and Implement on 420.
  • the functions of the protocol conversion function 74 are as follows. The first function receives a request from the device information remote acquisition function 127 or the device information remote setting function 128 and converts it into a configuration request message.
  • the second function is to receive a configuration request message from the link transmission line 76, issue a request to the device information acquisition function 102 or the device information setting function 103, and return a response to the message issuer.
  • the third function is to exchange data between the communication shared drivers 105-A and 125-B.
  • Computer devices other than those permitted by Computer device 2 are shared with Computer device 2. Since it is not desirable to obtain the relationship, the computer device 2 having a sharable input / output device needs to prepare a list of computers recognized by itself, and in the present invention, the remote computer list 4 10 is operated. System 1 0 1 manages. The computer device 2 describes in this list computers that permit sharing of its own input / output devices, and rejects requests from computers not described in this list.
  • the computer device 3 When the computer device 3 starts up or when instructed by a user, it needs to recognize an input / output device that can be used by the computer device.
  • the configuration definition reference function 124 and the configuration definition table 141 are omitted in the computer 3 in FIG. 18, they are implemented if necessary, and the configuration control inside the computer 3 You may carry out similarly to an Example.
  • the input / output device list 112 shown in FIG. 9 (b) is mounted to control the configuration of the computer system.
  • FIG. 19 shows a processing flow relating to recognition of a remote device.
  • FIG. 20 shows a processing flow of the input / output device confirmation processing in the computer device 2.
  • the operating system 1 2 1 starts up or receives an instruction from the user, and operates the remote device list 1 1 2 as well as controls the configuration of the I / O devices listed in the 1 2 29 Configure and control the I / O devices listed in 9.
  • the description will be made based on FIGS. 19 and 20.
  • the operating system 122 calls the device information remote acquisition function 127 together with necessary information in order to acquire the information of the input / output device described in the remote device list 122 (process 600).
  • the device information remote acquisition function 127 passes the device information acquisition request to the cooperation communication function 73-B via the cooperation communication driver 420 (processing 610).
  • the cooperative communication driver 420 converts the request into a configuration request message using the protocol conversion function 74 (processing 62 0), and notifies the cooperative communication device 73 -A via the cooperative transmission line 76. Yes (processing 6 2 1).
  • the cooperative communication driver 400 which is the device driver of the cooperative communication device 73-A, which has received the notification, recognizes that it is a configuration request message from the computer device 3 based on the received data (process 630). Check whether the remote computer list 410 contains the requesting computer device 3 (process 6 3 l If the remote computer list 410 does not contain the computer device 3, the cooperative communication driver 400 Notifies that there is no corresponding input / output device, and terminates the process (process 6 36) If computer device 3 is included in remote computer list 4 10, cooperative communication driver 400 0 is a device A request is issued to the information acquisition function 102 and the result is obtained (process 632) .If the OS entries do not match, the cooperative communication driver 400 executes the process 636. And ends the processing.
  • the cooperative communication driver 400 determines that there is an authentication relationship between the computer device 2 and the computer device 3, and generates a key code for permitting access to the input / output device (process 6 3 4) . Thereafter, when the computer device 3 accesses the input / output device, the key code is attached to the access request message, or the message is encrypted using a key code, and the computer device 2 is accessed. The cooperative communication driver 400 stores this key code and authenticates subsequent access from the computer device 3. Now, the cooperative communication driver 400 generates the response result of the process 633 (process 6335), converts it into a message to the requesting cooperative communication function 733-B, and sends it back (process 6 3 7). At this time, send the key code together.
  • the cooperative communication function 7 3-B waiting for a response determines whether or not it has been authenticated based on the received result (process 6 2 3), and if it is authenticated, stores the key code. Yes (processing 6 2 4). Thereafter, the cooperative communication driver 400 converts the message into a response to the device information remote acquisition function 127 by the protocol conversion function 74 and responds (processing 625).
  • the device information remote acquisition function 127 determines whether or not the authentication has been performed (processing 611). If the user is authenticated, it is determined whether or not there is an input / output device (processing 612). If the input / output device is present, a response “input / output device present” is returned (process 6 13), and if not, a response is returned to the requesting operating system as “no input / output device” (process 6 14).
  • the operating system 122 determines whether or not the corresponding input / output device exists (process 602). Further, if the input / output device is exclusively used by the computer device 3 (process 63), configuration control is executed on the input / output device (process 6 4). Then, when the inspection of the input / output devices in all the remote device lists 12 9 is completed, the operating system 12 1 terminates the process (process 6 05).
  • the computer device 3 can be used by the communication device 71 (shared with the computer device 2).
  • the configuration control may be further performed using the device information remote setting function 129. In this case, the operation is the same as that of the device information remote acquisition function 128.
  • the proxy device driver or proxy server to be started may be dynamically started in response to a request from the computer device 3.However, from the viewpoint of performance, the driver or server should be started in advance by the operating system. Is good.
  • the method of using the communication device 71 from the computer device 3 will be described below. First, a case in which data received from the communication device 71 is transferred to the application of the computer device 3 will be described. It is the same as the fourth embodiment up to the point where the communication shared driver 105_A notifies the proxy server 105-P after the communication device 71 receives the data.
  • the proxy server 1105-P that has received the data transfer the received data to the cooperative communication driver 400.
  • the cooperative communication driver 400 performs the processing required for the communication processing and transmits the passed data to the cooperative communication device 73 -B via the cooperative transmission path 76.
  • Linked communication device 7 3-B notifies operating system 1 2 1 of the data reception by interruption.
  • the operating system 12 21 analyzes the cause of the interrupt, determines that the data is received from the cooperative communication device 73-B, and determines Request processing to bus 420.
  • the cooperative communication driver determines the final destination application (for example, HTTP) from the received data, passes the data, and ends the processing.
  • the cooperative communication driver 420 performs necessary communication processing on the received data and then cooperates via the cooperative transmission path 76.
  • Communication device 7 3 Send to A.
  • the cooperative communication device 73-A stores the data in the communication buffer 264 and notifies the operating system 101 of the data reception by interruption.
  • the cooperative communication driver 400 to which the processing has been passed notifies the proxy server 105-P that the transmission request is an overnight transmission request.
  • the proxy server 105-P passes the data of the communication buffer 264 to the communication common driver 105-A and completes the process.
  • the computer device 3 does not necessarily have to be prepared when the shared input / output device (the communication device 71 in the present embodiment) is started. Therefore, the computer device 3 can be dynamically connected via the cooperative communication devices 73-A and B after the computer device 2 is started up, and can share and use the input / output device. Further, even if the computer device 3 dynamically leaves during the operation of the computer device 2, it does not affect the operation of the computer device 2. When the computer device 3 disconnects and then reconnects, the computer device 3 receives, for example, an instruction from a user to share the communication device 71 of the computer device 2, and can re-establish the sharing relationship. That is, according to the present invention, the computer device 3 can share and use the input / output device with the computer device 2 even when the computer device 3 is dynamically connected or disconnected via the cooperative communication device 73 -A, B. is there.
  • the present invention is also applicable when the computer device is started or when there is a user's instruction. It refers to the configuration definition table to see if a shared I / O device can be used in the system, and does not refer to the configuration definition table during normal operation.
  • FIG. 21 shows an example of the configuration of the remote device list 1229.
  • the remote device list 1 29 includes a computer identification ID 441, a bus number 442, a device number 443, a function number 444, and an OS entry 445.
  • the computer identification ID 441 lists an ID number uniquely determined in the cooperative transmission path 76 to which the cooperative communication devices 73-A and B are connected. In this embodiment, since the input / output device of only the computer device 2 is specified, the computer ID is the same.
  • the other bus number 442, device number 443, function number 444, and OS entry 445 are the same as bus number 144, device number 144, function number 146, and ⁇ S entry 147 in Fig. 4 (b), respectively. is there.
  • the remote device list 1 229 basically describes the I / O devices that the computer device 3 shares or uses exclusively with the computer device 2, so that generally only the operating system 101 is used. Does not include the entry used.
  • the cooperative communication device 73-B can specify the computer device having the shared input / output device by the computer device ID 441, so that a plurality of computers can be connected to the cooperative transmission path 76. Only one computer device can be specified, even if the device is connected.
  • the cooperative communication driver 420 specifies the computer device by the computer device ID 441, and inputs and outputs in the computer device by the bus number 442, device number 443, and function number 444.
  • the device can be specified.
  • a storage area is defined for each OS, and the address, address or bit position in each storage area is uniquely associated with the input / output device, and the value of the input / output device is determined by the value set for each address or bit position.
  • Each offset address holds, as data, a value indicating whether the OS associated with the storage area should take charge of the input / output device. For example, if the operating system 101 is in charge of the display device 70, the offset address of the storage area for the operating system 101 is 0, the value 1 is used, and the operating system 121 is used. The value 0 is set to the offset address-0 of the storage area of the storage area.
  • the value 1 means that the OS is in charge
  • the value 0 means that the OS does not.
  • the shared device may be represented by a specific value (for example, a value obtained by adding 128 to the above value) to be stored.
  • the configuration definition reference function 104 and 124 must have a function to grasp in advance (for example, by using a conversion table) the relationship between an input / output device and an offset address required by a higher-level device driver.
  • the configuration definition reference function 104 and 124 can specify the input / output device in charge of itself by referring to the storage area associated with each OS.
  • the configuration definition table 1 4 1 It is not always necessary to exist in the memory 140, that is, in the shared memory.For example, it is possible to allocate the storage area for each operating system in the memory 100, 120 which can be referred only from each operating system. Become.
  • FIG. 22 shows a program for constructing the configuration definition table 141.
  • a configuration definition construction tool 500 using GUI is prepared.
  • the user uses the configuration definition construction tool 5 to specify which operating system is to control the input / output device.
  • the configuration definition construction tool 500 is composed of a decision button 501, a cancel button 502, a list of all input / output devices 501, an OS-A control list 51, a shared control list 51, and an OS-B It consists of a control list 5 13 and icons representing input / output devices.
  • the configuration definition building tool 500 may be executed by a computer that stores the configuration definition table 141, or may be executed by another computer system and transferred to a target computer.
  • FIG. 22 (a) is an initial screen of the configuration definition construction tool 500.
  • the decision button 501 When the decision button 501 is pressed, the result is output as the construction information file 515 with the contents set in the current configuration definition construction tool 500, and the configuration definition construction tool 500 ends.
  • the cancel button 502 When the cancel button 502 is pressed, the contents set in the current configuration definition tool 500 are canceled, and the configuration definition construction tool 500 ends.
  • the configuration building tool 500 starts, it loads the current configuration information file 514 and configures its state. This is reflected on the screen of the Justice Construction Tool 500.
  • the following describes a method in which the user uses the configuration definition tool 500 to specify which operating system controls the input / output device.
  • the user selects the icon corresponding to the input / output device and sets the target list 5 1 1, 5 1 in order to set which operating system or shared device processes the input / output device. Drag and drop the icon to one of 2, 5, 1 and 3. It can be operating system 101, operating system 121, or shared, depending on the list where the icons are placed.
  • the setting is completed as shown in FIG. 22 (b)
  • the user presses the decision button 501.
  • the configuration definition construction tool 500 outputs the current setting information as the construction information file 515.
  • the user wants to discard the current setting information, the user presses a cancel button 502 to terminate the configuration definition construction tool 500.
  • FIG. 22 (c) shows an example of the contents of the construction information initialization file 540.
  • the configuration information initialization file 540 contains the I / O device name 520, device ID 521, bus type 522, path number 523, device number 524, function number 525, OS fixed flag 526, and shared flag 527.
  • An array of structured structures add the bitmap file name of the icon corresponding to the input / output device as needed.
  • the input / output device name 520 is the name of the input / output device displayed together with the icon.
  • the device ID 521 is a unique number corresponding to the icon on the GUI screen.
  • the path type 52 2, bus number 52 3, device number 5 24, and function number 525 are the same as the bus type 148, bus number 144, device number 145, and function number 146 described in FIGS. 4 (b) and 4 (c). The same is true.
  • OS fixed flag 52 6 It represents an operating system that can process the device.
  • 0 X 0 1 represents the operating system 101
  • 0 x 0 2 represents the operating system 121
  • the logical sum of these 0 X 03 represents both operating systems. . That is, in FIG.
  • the sharing flag 5 2 7 is a flag indicating whether the input / output device can be shared and controlled.
  • the input / output device having a value of ⁇ 0 x 0 1 can be shared, and 0 x 0 0
  • only the communication device can be shared.
  • an input / output device having a non-sharable flag is controlled so that it cannot be dropped on the sharing control list 5 12.
  • the device ID 521 corresponding to the input / output device is deleted from the array managing each list. After that, when the icon is placed in another list, the device ID 521 of the input / output device is added to the array managing the list.
  • the decision button 501 the device ID included in the array that manages the OS—A control list 5 1 1, the shared control list 5 1 2, and the OS_B control list 5 1 3 5 2 1 is determined.
  • the configuration information file 5 15 is converted according to the format defined in the configuration table 14 1 when transferred to the target computer system, and is converted to the configuration table 14 1 or the non-volatile storage device 4 2
  • the above configuration definition table storage area 4 is stored in 4.
  • the configuration definition construction tool 550 can control the movement of the icons on the GUI screen and output the construction information file 515.
  • FIG. 23 shows another embodiment of the configuration definition construction tool.
  • FIG. 23 shows the configuration of the GUI screen of another configuration definition construction tool 550.
  • Some I / O devices can only be used fixedly for one operating system, and some I / O devices can be shared. In that case, the user interface shown in Fig. 22 (a) has a point that it is difficult to intuitively understand the limitations of the input / output device.
  • the configuration definition construction tool 550 is characterized in that a set of operating systems that can be used for each input / output device is provided in advance in a pull-down menu format.
  • the configuration definition construction tool 550 includes an input / output device name 551 and an OS selection download list 552.
  • the set of possible operating systems for each input / output device name 551 is described in the OS selection pull-down list 552.
  • the communication device can be either the operating system 101, 121, or shared, so the 0S selection pull-down list 55 Has been described. There the user can select any configuration.
  • the OS selection pull-down list 55 2 has no choice. Only "Unused" or "OS-B only” items can be selected.
  • the other buttons and the operations after pressing the buttons are the same as those in FIG.
  • an input / output device is flexibly set, and, for example, an input / output device is individually controlled. It is possible to set the OS exclusively or shared. Further, by setting the operating system that controls the input / output device to “none”, the input / output device can be temporarily disabled. In addition, since it is possible to safely access I / O devices that are unrelated to the operating system, a plug-and-bray operating system that searches and controls all I / O devices in the computer system will be adopted. It becomes possible.
  • the other OS continuously uses the shared input / output device regardless of the operating status of one OS. It is possible to do. That is, it is possible to prevent the malfunction of one OS, which is the object of the present invention, from affecting the operating status of the other OS sharing the input / output device.
  • an input / output device such as a communication device can be shared between computer devices in different housings. For example, while talking on a mobile phone, data can be transferred to a game device with a wireless device via a wireless device attached to the mobile phone. At this time, the present invention can also reject the input / output device access from a computer device that is not authenticated by the computer device.
  • a computer system implementing a plurality of OSs of the same type OS, it is possible to share device drivers of input / output devices between OSs.
  • the present invention in a computer system that exclusively controls an input / output device among a plurality of OSs, it is possible to easily switch the OS that controls or manages the input / output device. For this reason, when the load on one operating system increases, the workload of the user can be reduced when transferring the processing of the input / output device in the other operating system.
  • an operating system for controlling the plurality of input / output devices it is possible to easily set the operating system using the GUI screen.
  • Some input / output devices are controlled only by a specific operating system, and operating systems that can be used with pull-down lists so that users cannot be confused with such input / output devices. Can be set on the GUI screen.
  • the present invention can be applied to a control device using a plurality of computers, a computer operating a plurality of operating systems, and the like.

Abstract

An environment for allowing flexible use of input/output devices on a plurality operating systems. Operating systems on their respective computers refer to a table indicating the correspondence between operating systems and input/output devices to confirm the existence of the input/output devices that their operating systems use.

Description

明 細 書  Specification
計算機システム及び計算機制御方法、 制御プログラムを格納した記憶媒体 技術分野  Computer system, computer control method, and storage medium storing control program
本発明は、 複数の計算機間において、 入出力装置を排他的または共有 して利用可能とする計算機システムに関する。 背景技術  The present invention relates to a computer system that allows an input / output device to be used exclusively or shared among a plurality of computers. Background art
計算機は多種多様なハードウェアから構成される。 一方、 アプリケ一 シヨンソフトウエアは経済性や技術の再利用性の観点から、 できる限り 共通化したものが望まれる。 そこで共通のアプリケーシヨンソフトゥェ ァを多種の計算機ハードウエアで実行するために、 これらハードウェア の差異を吸収し機能の抽象化をするオペレーティングシステム (O S ) と呼ばれるソフトウエアが計算機では用いられる。  Computers are composed of a wide variety of hardware. On the other hand, application software should be as common as possible from the viewpoint of economy and reusability of technology. Therefore, in order to execute a common application software on various types of computer hardware, software called an operating system (OS) that absorbs differences between these hardware and abstracts functions is used in computers.
特開平 1 1 - 85547号公報 (以後公知例 1と称す) には、 シングルプロセ ッサに複数のオペレーティングシステムを実装した技術が開示されてい る。  Japanese Patent Laying-Open No. 11-85547 (hereinafter referred to as well-known example 1) discloses a technique in which a plurality of operating systems are mounted on a single processor.
また特開平 1 1 - 24943号公報 (以後公知例 2と称す) は、 O Sを再起動 している期間でも、 無停止モジュールは停止することなく割込み処理を 継続実行可能であり、 無停止モジュールに係わるハードウエア資源と再 初期化処理を無停止モジュール管理データ領域に登録し、 カーネル再起 動時に該ハ一ドウエアに対する再初斯化処理を実行することが開示され ている。  Japanese Patent Application Laid-Open No. 11-24943 (hereinafter referred to as “known example 2”) states that even during a period in which the OS is restarted, the non-stop module can continue to execute interrupt processing without stopping, and the It discloses that related hardware resources and reinitialization processing are registered in a non-stop module management data area, and reinitialization processing for the hardware is executed when the kernel is restarted.
一方、 入出力装置を複数 O S間で共有して利用する場合は、 例えば情 報処理学会第 5 9回全国大会予稿集 4 B - 0 3 『組込み向けデュアル O S実行システム D A R M Aの開発』 (以後公知例 4と称す)に論じられ ているように、 入出力装置の共有を実現する方法がある。 ここで述べら れている技術は、 同一プロセッサで動作する異種 0 S間で入出力装置を 共有する技術である。 共有される入出力装置から発生した割込を D A L と呼ばれるソフトウェア階層が捕捉し、 動的割込テーブルと呼ばれるテ —ブルを参照し、 最終的に割込を処理する〇 Sを決定するというもので める。 On the other hand, when an I / O device is shared between multiple operating systems, Proceedings of the 9th Annual Conference of the Information Processing Society of Japan 4 B-0 3 Realization of sharing of input / output devices as discussed in "Development of DARMA, a Dual OS Execution System for Embedded Systems" (hereinafter referred to as Known Example 4) There is a way to do that. The technology described here is a technology for sharing input / output devices between different OSs operating on the same processor. A software layer called DAL captures an interrupt generated from a shared I / O device, refers to a table called a dynamic interrupt table, and finally determines the 〇S to process the interrupt. I can do it.
また、 特開平 9一 319562 号公報 (以後公知例 5と称す) には、 これは 第 1の〇 Sに共有する入出力装置のドライバを実装し、 第 2の O Sから 第 1の O Sに入出力装置に対する処理を依頼し、 共有処理を実現する技 術が開示されている。  In Japanese Patent Application Laid-Open No. Hei 9-1319562 (hereinafter referred to as well-known example 5), this implements a driver for an input / output device shared by the first OS and enters the first OS from the second OS. A technology for requesting a process to an output device and realizing a shared process is disclosed.
また、 特開平 5— 100828 号公報 (以後公知例 6と称す) には、 インス トレ一ション用媒体を計算機システムに接続し、 デバイスドライバをィ ンストールする方法が開示されている。  Also, Japanese Patent Application Laid-Open No. Hei 5-100828 (hereinafter referred to as Known Example 6) discloses a method of connecting an installation medium to a computer system and installing a device driver.
しかしながら複数の O Sを用いて入出力装置を排他的あるいは共有し て利用するためには、 以下に挙げるような問題点を解決しなければなら ない。  However, in order to use the I / O device exclusively or in common by using multiple OSs, the following problems must be solved.
まず第 1に、 製造業者が独自に構築した計算機に市場に流通する汎用 (プラグアンドプレイと呼ばれる技術を搭載した) O Sを搭載した場合、 製造業者が意図するような計算機システムの構成をとる必要がある。 例 えば計算機システム内の入出力装置の内、 入出力装置 Aは第 1の O S専 有、 入出力装置 Bは第 2の O S専有、 '入出力装置 Cは第 1と第 2の O S 共有、 という細かな設定を可能にしなければならない。  First, if a manufacturer's proprietary computer is equipped with a general-purpose OS (equipped with a technology called plug and play) that is distributed on the market, it is necessary to configure the computer system as intended by the manufacturer. There is. For example, among the input / output devices in the computer system, the input / output device A is dedicated to the first OS, the input / output device B is dedicated to the second OS, and the input / output device C is shared by the first and second OSs. It must be possible to make detailed settings.
第 2に、 複数の 0 Sを各々異なるプロセッサで稼動させる計算機シス テムにおいて入出力装置を共有する必要がある。 Second, a computer system that runs multiple OSs on different processors. Systems need to share input / output devices.
第 3に、 複数 O Sのうち任意の O Sをメンテナンスするために再起動 しなければならない。  Third, a restart must be performed to maintain any of the multiple OSs.
第 4に複数の 0 S間で入出力装置のデバイスドライバを共有する必要 がある。  Fourth, it is necessary to share the device driver of the input / output device among multiple OSs.
第 5に入出力装置を制御する 0 Sを 0 S間で変更する必要がある。 しかしながら、 公知例 1から 6には、 この点について開示されていな い。 発明の開示  Fifth, it is necessary to change 0 S that controls the input / output device between 0 S. However, Known Examples 1 to 6 do not disclose this point. Disclosure of the invention
本発明の目的の一つは、 複数のオペレーティングシステムの間で入出 力装置を柔軟に利用できる環境を提供することにある。  An object of the present invention is to provide an environment in which an input / output device can be flexibly used between a plurality of operating systems.
この目的を達成する本発明の一つの見方をすれば、 それぞれの計算機 で実行されるオペレーティングシステムは、 オペレーティングシステム と入出力装置とが対応付けされたテーブルを参照し、 自オペレーティン グシステムが使用する入出力装置の存在を確認するようにすることであ る。 図面の簡単な説明  According to one aspect of the present invention that achieves this object, an operating system executed on each computer refers to a table in which an operating system and an input / output device are associated with each other, and uses an input system used by its own operating system. Make sure that the output device is present. BRIEF DESCRIPTION OF THE FIGURES
第 1図は、 本発明の第 1の実施例である計算機システムを示す図であ る。  FIG. 1 is a diagram showing a computer system according to a first embodiment of the present invention.
第 2図は、 割込振分機能の 1実施例である。  FIG. 2 shows an embodiment of the interrupt distribution function.
第 3図は、 割込振分機能の他の実施例である。  FIG. 3 shows another embodiment of the interrupt distribution function.
第 4図は、 構成定義テーブルの構成例である。  FIG. 4 is an example of the configuration of the configuration definition table.
第 5図は、 構成定義参照機能の処理フローである。 第 6図は、 構成定義参照機能の 1実装例である。 FIG. 5 is a processing flow of the configuration definition reference function. Figure 6 is an example of one implementation of the configuration reference function.
第 7図は、 デバイス情報取得機能の処理フローである。  FIG. 7 is a processing flow of the device information acquisition function.
第 8図は、 デバイス情報設定機能の処理フローである。  FIG. 8 is a processing flow of the device information setting function.
第 9図は、 デバイスドライバ組込み機能のブロック図である。  FIG. 9 is a block diagram of a device driver built-in function.
第 1 0図は、 入出力装置列挙機能の処理フローである。  FIG. 10 is a processing flow of the input / output device enumeration function.
第 1 1図は、 入出力装置参照機能の処理フローである。  FIG. 11 is a processing flow of the input / output device reference function.
第 1 2図は、 本発明の第 2の実施例である計算機システムを示す図で ある。  FIG. 12 is a diagram showing a computer system according to a second embodiment of the present invention.
第 1 3図は、 O S判別フラグの構成例である。  FIG. 13 is an example of the configuration of the OS determination flag.
第 1 4図は、 本発明の第 3の実施例である計算機システムを示す図で める。  FIG. 14 is a diagram showing a computer system according to a third embodiment of the present invention.
第 1 5図は、 プロセッサ間通信機能の構成例である。  FIG. 15 is a configuration example of the inter-processor communication function.
第 1 6図は、 本発明の第 4の実施例である計算機システムを示す図で める。  FIG. 16 shows a computer system according to a fourth embodiment of the present invention.
第 1 7図は、 T C Pパケットの構成を示す図である。  FIG. 17 is a diagram showing a configuration of a TCP packet.
第 1 8図は、 本発明の第 5の実施例である計算機システムを示す図で ある。  FIG. 18 is a diagram showing a computer system according to a fifth embodiment of the present invention.
第 1 9図は、 計算機装置 3における遠隔装置認識の処理フローである。 第 2 0図は、 計算機装置 2における遠隔装置認識の処理フローである。 第 2 1図は、 遠隔装置リス卜の構成例である。  FIG. 19 is a processing flow of the remote device recognition in the computer device 3. FIG. 20 is a processing flow of remote device recognition in the computer device 2. FIG. 21 is a configuration example of a remote device list.
第 2 2図は、 本発明の第 5の実施例である構成定義構築ツールを示す 図である。  FIG. 22 is a diagram showing a configuration definition construction tool according to a fifth embodiment of the present invention.
第 2 3図は、 構成定義構築ツールの他の実施例を示す図である。 発明を実施するための最良の形態 以下、 本発明の第 1の実施例を第 1図により説明する。 本発明による 計算機システムは、 プロセッサ A 1 0, プロセッサ B 2 0 , 入出力制御 装置 3 0, メモリ 1 0 0, 1 20, 140と、 各種入出力装置から成る。 各種入出力装置として、 操作員が使用するキーボード 4 0, マウス 4 1 , 表示装置 7 0などがあり、 外部の装置と入出力処理を行う通信装 置 7 1や機能拡張するための拡張スロット 7 2— 0〜m、 オペレーティ ングシステム等を格納する不揮発性記憶 42がある。 また各種入出力装 置 7 0 , 7 1 , 7 2— 0〜mは複数の信号線からなる拡張バス 60を介 して入出力制御装置 3 0と接続する。 以下ではこれら各種入出力装置を 一括して入出力装置と呼ぶことにする。 入出力装置は、 拡張パスに含ま れる割込信号を介して入出力制御装置に割込を集める。 これらの入出力 装置のうち、 いずれかまたは全てがシステム構成に応じて省略されるこ ともあり、 さらに多様な入出力装置が接続されることもある。 FIG. 23 is a diagram showing another embodiment of the configuration definition construction tool. BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, a first embodiment of the present invention will be described with reference to FIG. The computer system according to the present invention includes a processor A 10, a processor B 20, an input / output control device 30, memories 100, 120, and 140, and various input / output devices. Various input / output devices include a keyboard 40, a mouse 41, a display device 70, etc. used by operators, a communication device 71 for performing input / output processing with external devices, and an expansion slot 7 for expanding functions. 2-0 to m, a non-volatile memory 42 for storing the operating system and the like. The various input / output devices 70, 71, 72-0 to m are connected to the input / output control device 30 via an expansion bus 60 including a plurality of signal lines. In the following, these various input / output devices are collectively referred to as input / output devices. The I / O device collects the interrupt in the I / O controller via the interrupt signal included in the extension path. Any or all of these input / output devices may be omitted depending on the system configuration, and more various input / output devices may be connected.
これ以降の実施例では入出力制御装置 3 0に二つのプロセッサが接続 されている図を用いるが、 実装上必ずしもこのような形態を取る必要は ない。 例えばプロセッサと入出力制御装置、 メモリをひとつの計算機構 成単位 (モジュール) とし、 複数のモジュールが拡張バス 6 0を共有し て接続する、 いわゆる疎結合型マルチプロセッサ構成においても、 これ 以降の発明を適用することが可能である。 なおモジュールはそれぞれを 拡張バス 6 0とは別の基板としても良く、 全てあるいはいくつかのモジ ユールは拡張バス 60と同一の基板としてもよい。  In the following embodiments, a diagram in which two processors are connected to the input / output control device 30 is used. However, such a form is not necessarily required for mounting. For example, a so-called loosely-coupled multiprocessor configuration in which a processor, an input / output control device, and a memory constitute one computing unit (module) and a plurality of modules share and connect an expansion bus 60, the invention of the following inventions It is possible to apply Each of the modules may be provided on a separate board from the expansion bus 60, and all or some of the modules may be provided on the same board as the expansion bus 60.
プロセッサ 1 0, 2 0はそれぞれ、 複数の信号線からなるプロセッサ バス 8 0, 8 2と割込信号線 8 1, 8'3を介して入出力制御装置 3 0と 接続する。 メモリ 1 0 0, 1 2 0, 140は複数の信号線からなるメモ リバス 5 0を介して入出力制御装置 30と接続する。 プロセッサ 1 0 , 2 0はそれぞれオペレーティングシステムを動作さ せるための処理装置である。 メモリ 1 00, 1 2 0は、 オペレーティン グシステム 1 0 1 , 1 2 1、 入出力装置の情報取得要求を受けるデバイ ス情報取得機能 1 0 2, 1 2 2、 入出力装置への情報設定要求を受ける デバイス情報設定機能 1 0 3, 1 2 3、 構成定義テーブル 14 1を参照 する構成定義参照機能 1 04, 1 24、 入出力装置を制御するデバイス ドライノ 1 0 5— 0〜η,. 1 2 5— 0〜! ι、 それぞれのオペレーティン グシステム上で動作するプログラムタスク 1 0 6— 0〜 i , 1 2 6— 0 〜 iを保持する。 これらのプログラムはそれぞれプロセッサ 1 0 , 2 0 によって読み出されて実行される。 メモリ 140は、 それぞれのプロセ ッサ 1 0, 2 0が読み取り, 書込みが可能なメモリである。 このメモリ 1 40には、 各種入出力装置がいずれのオペレーティングシステムによ つて制御されるかが記述された構成定義テーブル 1 4 1が保持されてい る。 入出力装置の動作完了や変化は、 割込信号線 8 1, 8 3を介してプ 口セッサ 1 0, 2 0へ通知される。 The processors 10 and 20 are connected to the input / output controller 30 via the processor buses 80 and 82 composed of a plurality of signal lines and the interrupt signal lines 81 and 8'3, respectively. The memories 100, 120, and 140 are connected to the input / output control device 30 via a memory bus 50 including a plurality of signal lines. Processors 10 and 20 are processing devices for operating an operating system, respectively. The memories 100 and 120 store the operating system 101 and 121, the device information acquisition function 102 and 122 that receive the information acquisition request of the I / O device, and the information setting request to the I / O device. Receiving device information setting function 103, 123, configuration reference function 104, 124 referring to configuration table 141, device for controlling input / output devices Dryno 1 05—0 to η, .1 2 5-0 ~! ι, the program tasks that run on each operating system 106-0 to i, 1 26-0 to i. These programs are read and executed by the processors 10 and 20, respectively. The memory 140 is a memory that can be read and written by the processors 10 and 20. The memory 140 holds a configuration definition table 141 in which the various input / output devices are controlled by which operating system. The completion or change of the operation of the input / output device is notified to the ports 10 and 20 via the interrupt signal lines 81 and 83.
なお入出力装置への情報取得要求や情報設定要求とは、 ここでは特に 入出力装置自身の動作設定を読み取ったり書き込む事を意味する。 例え ば表示装置 7 0の本来の目的は画面に画像や文字を表示することである ため、 通常時は、 表示装置 7 0のデバイスドライバは表示したい画像や 文字に関する情報を表示装置 7 0が認識するバッファ等に設定する必要 がある。 その一方で表示装置 70自身は拡張パス 6 0に接続されており、 拡張バス 60で表示装置 7 0を認識するためには表示装置 7 0に対して 各種資源 (バスアドレス, 割込, 表示装置 7 0を認識するコード, 製造 者名, リビジョン等) を設定あるいは取得する必要がある。 これら通常 動作以外に必要となる各種資源の設定に、 入出力装置への情報取得要求 や情報設定要求が必要となる。 Here, the information acquisition request and the information setting request to the input / output device particularly mean reading and writing of the operation setting of the input / output device itself. For example, since the original purpose of the display device 70 is to display images and characters on the screen, the device driver of the display device 70 normally recognizes information about the images and characters to be displayed. It is necessary to set the buffer to be used. On the other hand, the display device 70 itself is connected to the extension path 60. In order for the display device 70 to be recognized by the extension bus 60, various resources (bus address, interrupt, display device) are required for the display device 70. It is necessary to set or obtain a code that recognizes 70, a manufacturer name, a revision, etc.). Information acquisition requests to I / O devices are used to set various resources required in addition to these normal operations. And an information setting request are required.
構成定義テーブル 1 4 1は、 入出力装置のェントリ毎にいずれのオペ レーティングシステムで処理されるべきかが記述されている。 構成定義 テーブル 1 4 1は複数のオペレーティングシステム間で共有されるテー ブルであり、複数のオペレーティングシステムから参照可能なメモリ (領 域) に格納されている。  The configuration definition table 141 describes which operating system should be processed for each input / output device entry. Configuration Definition Table 14 1 is a table shared between multiple operating systems, and is stored in memory (area) that can be referenced by multiple operating systems.
なお構成定義テーブル 1 4 1は一旦設定したら頻繁に更新は行われず、 また電源の投入、 切断の前後で設定を保持する必要が有る。 そのため構 成定義テーブル 1 4 1は不揮発性記憶装置を用いて保持するのが好適で ある。  Note that once the configuration table is set, it is not updated frequently, and it is necessary to maintain the settings before and after the power is turned on and off. Therefore, it is preferable to hold the configuration definition table 141 using a nonvolatile storage device.
しかしながらメモリ 1 4 0は、 必ずしも不揮発性メモリとする必要は ない。 例えば構成定義テーブル 1 4 1を不揮発性記憶装置 4 2内の構成 定義テーブル保存領域 4 4に保持して、 計算機システムの立ち上げ時に システム立ち上げ処理を行うプログラムが、 不揮発性記憶装置 4 2から 構成定義テーブル保存領域 4 4の内容をメモリ 1 4 0に転送して構成定 義テ一ブル 1 4 1として運用する。  However, the memory 140 need not necessarily be a nonvolatile memory. For example, the configuration definition table 14 1 is held in the configuration definition table storage area 44 in the non-volatile storage device 42, and a program for performing a system start-up process when the computer system starts up is read from the non-volatile storage device 42. The contents of the configuration table storage area 44 are transferred to the memory 140 and operated as the configuration table 144.
ここでシステム立上げ処理を行うプログラムとは、 オペレーティング システムを起動する前に計算機システムで必要な処理を実行するプログ ラムであり、 例えば不揮発性記憶装置の初期化やメモリの初期設定を行 う。 ここでシステム立上げ処理を行うプログラムは、 計算機システム内 の最低限一つのプロセッサが実行すれば良いが、 それぞれのプロセッサ が整合を取りながらプログラムを実行しても良い。 システム立上げ処理 を行うプログラムは、 不揮発性記憶装置 4 2に格納しておき、 それぞれ のプロセッサが電源投入直後に不揮発性記憶装置 4 2の当該領域を参照 して実行する。 通信装置 7 1は有線あるいは無線の中間媒体を介して、 外部の計算機 や装置とデータの受信あるいは送信を行う。 拡張スロット 7 2— 0〜m は、 計算機システムの機能を拡張するために使用されるものである。 例 えば外部の状態を観測するセンサ、 スィッチ、 画像入力カメラを接続す るィンタ一フェースを拡張したり、 外部の装置を制御するためのリレー や通信装置を拡張するのに用いる。 Here, the program for performing the system start-up processing is a program for performing necessary processing in the computer system before starting the operating system, and for example, initializes a nonvolatile storage device and initializes a memory. Here, the program for performing the system start-up processing may be executed by at least one processor in the computer system, but each processor may execute the program while matching each other. The program for performing the system start-up processing is stored in the nonvolatile storage device 42, and each processor executes the program by referring to the corresponding area of the nonvolatile storage device 42 immediately after the power is turned on. The communication device 71 receives or transmits data to or from an external computer or device via a wired or wireless intermediate medium. The expansion slots 72-0-m are used to extend the functions of the computer system. For example, it is used to extend the interface for connecting sensors, switches, and image input cameras for observing external conditions, and to extend relays and communication devices for controlling external devices.
なお本実施例では、 メモリ 1 0 0, 1 2 0 , 1 4 0と別々のメモリを 用いた例で説明しているが、 これらのメモリのうち、 任意の組み合わせ で物理的に同一メモリ上に保持されるようにしても良い。 またプロセッ ザがメモリを直接接続する機能を有する場合は、 入出力制御装置 3 0に よらずに直接メモリ 1 0 0, 1 2 0 , 1 4 0をプロセッサ 1 0, 2 0に 接続することも可能である。 この場合メモリ 1 4 0はプロセッサ間で共 有する必要があるため、 メモリ 1 4 0として例えばデュアルポートメモ リを採用し、 メモリが持つ二つのメモリインターフェースをそれぞれの プロセッサバスに接続して共有を実現する。 またこの場合の入出力制御 装置 3 0は、 これらメモリを接続しないが各種入出力装置をプロセッサ に提供したり、 割込み制御をするために必要である。 また一般には割込 信号線 8 1 , 8 3はプロセッサバス 8 0 , 8 2の一部である。  In this embodiment, an example is described in which the memories 100, 120, and 140 are used separately from the memories. However, of these memories, any combination of these memories is physically stored on the same memory. It may be held. If the processor has a function to directly connect the memory, the memory 100, 120, 140 can be directly connected to the processor 10, 20 without using the I / O controller 30. It is possible. In this case, since the memory 140 must be shared between processors, a dual-port memory, for example, is adopted as the memory 140, and the two memory interfaces of the memory are connected to the respective processor buses to achieve sharing. I do. In this case, the input / output control device 30 does not connect these memories, but is necessary for providing various input / output devices to the processor and controlling interrupts. Generally, the interrupt signal lines 81 and 83 are a part of the processor buses 80 and 82.
本実施例では、 計算機システム内に 2つのオペレーティングシステム 1 0 1 , 1 2 1が存在する場合について、 それぞれのオペレーティング システムが入出力装置を排他的または共有して動作する方法について説 明する。 なお本発明による計算機システムにおいて、 オペレーティング システムおよびプロセッサの個数は 2つに限定されるものではなく、 必 要とする機能に応じてそれぞれ増減する。 いずれの場合も本発明を適用 することは可能である。 オペレーティングシステム 1 0 1, 1 2 1はそれぞれプロセッサ 1 0, 2 0で実行される。 以下ではォペレ一ティングシステム 1 0 1の動作に ついて説明するが、 これらの説明はォペレ一ティングシステム 1 2 1に おいても同様である。 In the present embodiment, when two operating systems 101 and 121 exist in a computer system, a method of operating each operating system exclusively or sharing an input / output device will be described. In the computer system according to the present invention, the number of operating systems and the number of processors are not limited to two, but may be increased or decreased according to the required functions. In any case, the present invention can be applied. Operating systems 101 and 121 are executed on processors 10 and 20, respectively. Hereinafter, the operation of the operating system 101 will be described, but the description is the same for the operating system 121 as well.
オペレーティングシステム 1 0 1は、 割り当てられたメモリおよびプ 口セッサを用いて、 タスク 1 0 6 _ 0〜nを実行する。 これらのタスク 1 0 6— 0〜 iが入出力装置を使用する場合に、 直接入出力装置を制御 することは入出力装置の割り当てや、 処理プログラムの再利用の観点か ら有効ではない。 そのため一般的にはデバイスドライバが入出力装置の 処理を担当し、 これらタスクはデバイスドライバに入出力装置の処理を 依頼する。  The operating system 101 executes tasks 106_0 to n using the allocated memory and the processor. When these tasks 106-i use input / output devices, direct control of input / output devices is not effective from the viewpoint of assignment of input / output devices and reuse of processing programs. Therefore, in general, the device driver is in charge of I / O device processing, and these tasks request the device driver for I / O device processing.
デバイスドライバがタスク 1 0 6— 0〜 iから受ける入出力装置への 処理依頼は、 入出力装置から情報を取得する場合と入出力装置に情報を 設定する場合に分類される。 そこでデバイスドライバ 1 0 5— 0〜 iは これらの動作に応じて、 デバイス情報取得機能 1 0 2またはデバイス情 報設定機能 1 0 3に処理を依頼する。 デバイス情報取得機能 1 0 2また はデバイス情報設定機能 1 0 3は、 受け取った入出力装置に対する要求 を処理するに当たり、 該当する入出力装置が当該オペレーティングシス テムで処理を実行するべき入出力装置であるか否かを検査する。 検査す るためにデバイス情報取得機能 1 0 2またはデバイス情報設定機能 103 は、 入出力装置に関する資源情報を構成定義参照機能 1 0 4に問い合わ せる。 構成定義参照機能 1 0 4は、 構成定義テーブル 1 4 1を参照して 当該オペレーティングシステムが担当か否か検索して応答を、 問い合わ せがあったデバイス情報取得機能 1 0 2またはデバイス情報設定機能 1 0 3へ返す。 その結果、 当該オペレ一ティングシステム 1 0 1が処理を担当する入 出力装置である場合には、 デバイス情報取得機能 1 0 2またはデバイス 情報設定機能 1 0 3は、 デバイスドライバから要求された処理を実行し、 デバイスドライバに所望の要求を返す。 一方、 当該オペレーティングシ ステム 1 0 1が処理を担当する入出力装置でない場合には、 情報取得機 能 1 0 2またはデバイス情報設定機能 1 0 3は当該入出力装置があたか も存在していないかのように振る舞い、 デバイスドライバに該当デバィ スが存在していない旨を通知する。 The processing request to the input / output device that the device driver receives from tasks 106-6-0 to i is classified into a case where information is obtained from the input / output device and a case where information is set in the input / output device. Accordingly, the device driver 105-0 to i requests the device information acquisition function 102 or the device information setting function 103 to perform processing according to these operations. The device information acquisition function 102 or the device information setting function 103 is an input / output device that should execute processing in the operating system when processing the received request for the input / output device. Check if there is. In order to check, the device information acquisition function 102 or the device information setting function 103 inquires the configuration definition reference function 104 of the resource information on the input / output device. The configuration definition reference function 104 refers to the configuration definition table 141, searches whether the operating system is in charge, and returns a response.The inquired device information acquisition function 102 or the device information setting Return to function 103. As a result, if the operating system 101 is an input / output device that is in charge of processing, the device information acquisition function 102 or the device information setting function 103 executes the processing requested by the device driver. Execute and return the desired request to the device driver. On the other hand, if the operating system 101 is not the input / output device that is in charge of processing, the information acquisition function 102 or the device information setting function 103 does not exist. Acts as if, and notifies the device driver that the device does not exist.
一般に、 入出力装置のドライバロードを行う時に入出力装置の存在確 認が必要であり、 ドライバロード後の通常動作時には装置の存在を確認 する必要はない。 ドライバをロードするのは、 計算機システム立上げ時 またユーザからの要求が有った時である。 そこでドライバのロード時に のみ構成定義参照機能 1 0 4が参照され、 通常動作時は構成定義参照機 能 1 0 4が参照されないようにするのが、 性能の観点より好適である。 従来では、 ドライバのロード時等に使用する 「入出力装置を構成制御す る際に使用する関数」 アクセス手順と、 通常時入出力装置を利用するァ クセス手順は異なる。 そこで構成定義参照機能 1 0 4を呼び出すよう実 装するのは、 「入出力装置を構成制御する際に使用する関数」 が適当で ある。 本実施例では 「入出力装置を構成制御する際に使用する関数」 と して、 デバイス情報取得機能 1 0 2またはデバイス情報設定機能 1 0 3 を例として述べる。  In general, it is necessary to confirm the existence of the I / O device when loading the driver of the I / O device, and it is not necessary to confirm the existence of the device during normal operation after loading the driver. The driver is loaded when the computer system is started or when there is a request from the user. Therefore, it is preferable from the viewpoint of performance to refer to the configuration reference function 104 only when the driver is loaded, and not to reference the configuration reference function 104 during normal operation. In the past, the “functions used to control the configuration of I / O devices” used when loading a driver, etc., were different from the access procedures that used normal I / O devices. Therefore, it is appropriate to implement the function that calls the configuration reference function 104 by “functions used when controlling the configuration of input / output devices”. In the present embodiment, a device information acquisition function 102 or a device information setting function 103 will be described as an example of a “function used when controlling the configuration of an input / output device”.
ここで構成定義テーブル 1 4 1の内容について、 各入出力装置の担当 を唯一のオペレーティングシステムとなるように設定することにより、 ォペレ一ティングシステム間で排他的に当該入出力装置を使用できる。 また構成制御テーブル 1 4 1について、 各入出力装置の担当を複数設定 することにより、 オペレーティングシステム間で共有して使用できる。 一方、 入出力装置からの割込みについて、 各オペレーティングシステ ム間で入出力装置を排他的に使用するためには、 各入出力装置から通知 される割込みを適切なォペレ一ティングシステムに報告しなければなら ない。 , Here, regarding the contents of the configuration definition table 141, by setting the responsibility of each input / output device to be the only operating system, the input / output device can be used exclusively between the operating systems. Also, for the configuration control table 14 1, multiple assignments for each input / output device are set. By doing so, it can be shared and used between operating systems. On the other hand, in order to use I / O devices exclusively between operating systems for interrupts from I / O devices, interrupts reported from each I / O device must be reported to an appropriate operating system. No. ,
そこで、 入出力制御装置 3 0は割込みを振り分ける割込振分機能 3 1 を実装する。 割込振分機能 3 1は、 各入出力装置からの割込みをそれぞ れの入出力装置を担当するォペレ一ティングシステムに報告する。 オペ レーティングシステムは自身が担当する入出力装置からの割込みのみを 受げ、 当該入出力装置を担当するデバイスドライバを呼び出し、 入出力 装置を制御することが可能となる。 なお割込振分機能 3 1は必ずしも入 出力制御装置 3 0上に実装する必要はなく、 入出力制御装置 3 0と独立 して存在してもよい。  Therefore, the input / output controller 30 implements an interrupt distribution function 31 for distributing interrupts. The interrupt distribution function 31 reports an interrupt from each input / output device to the operating system in charge of each input / output device. The operating system can receive only an interrupt from the input / output device in charge of itself, call the device driver in charge of the input / output device, and control the input / output device. The interrupt distribution function 31 does not necessarily need to be mounted on the input / output control device 30, and may exist independently of the input / output control device 30.
第 2図に割込振分機能 3 1の構成を示す。 割込振分機能 3 1 各入 出力装置から報告される割込を適切なオペレーティングシステムに報告 するための機構である。  Fig. 2 shows the configuration of the interrupt distribution function 31. Interrupt distribution function 3 1 A mechanism for reporting the interrupt reported from each I / O device to the appropriate operating system.
各入出力装置からの割込は割込要因レジスタ 2 0 0に保持される。 割 込プロセッサマスクレジスタ 2 0 1, 2 0 2は、 それぞれプロセッサ 1 0, 2 0に報告すべき割込要因に対応したマスクが設定される。 マス クビットに " 1 " が設定されると、 対応した割込要因がプロセッサに報 告される。  The interrupt from each input / output device is held in the interrupt factor register 200. In the interrupt processor mask registers 201 and 202, masks corresponding to interrupt factors to be reported to the processors 10 and 20, respectively, are set. When the mask bit is set to "1", the corresponding interrupt factor is reported to the processor.
入出力装置から割込みが報告された時の動作について説明する。  The operation when an interrupt is reported from the input / output device will be described.
入出力装置から割込が報告されると、 割込要因レジスタ 2 0 0上の要 因ビットの内、 当該入出力装置に対応する一つのビットが " 1 " にセッ トされる。 そして要因ビットは割込プロセッサマスクレジスタ 2 0 1, 2 0 2の対応するビットと論理積が取られる ( 2 0 4, 2 0 5 ) 。 When an interrupt is reported from the input / output device, one of the factor bits in the interrupt factor register 200 corresponding to the input / output device is set to "1". The cause bits are the interrupt processor mask register 201, The corresponding bit of 202 is ANDed (204, 205).
的に、 全ての割込要因の論理和が取られ (2 0 6, 2 0 7 ) 1本の割込 信号線 8 1 , 8 3となり、 それぞれプロセッサ 1 0 , 2 0に報告される。 Then, the logical sum of all the interrupt factors is calculated (206, 207) and becomes one interrupt signal line 81, 83, which is reported to the processors 10, 20 respectively.
ここで割込プロセッサマスクレジスタ 2 0 1, 2 0 2に設定する値は、 構成定義テーブル 1 4 1において設定される、 入出力装置とオペレーテ イングシステムとの対応に合わせた値を用いる。 例えば、 表示装置 7 0 がプロセッサ A 1 0におけるオペレーティングシステム 1 0 1で制御さ れるのであれば、 割込プロセッサマスクレジスタ 2 0 1 (プロセッサ A 用) の対応するマスクビットを " 1 " に設定し、 割込プロセッサマスク レジスタ 2 0 2 (プロセッサ B用) の対応するマスクビットを " 0 " に 設定する。  Here, as the value set in the interrupt processor mask registers 201 and 202, the value set in the configuration definition table 141 corresponding to the correspondence between the input / output device and the operating system is used. For example, if the display device 70 is controlled by the operating system 101 in processor A10, the corresponding mask bit in the interrupt processor mask register 201 (for processor A) should be set to "1". Set the corresponding mask bit in interrupt processor mask register 202 (for processor B) to "0".
但し、 当該入出力装置が共有設定されている場合は注意が必要である。 この場合、 両方のオペレーティングシステムに割込があがるよう設定し て問題ない場合も有る。 しかし後述する通信装置 7 1を共有する場合な どは、 一般には一方のオペレーティングシステムに割込があがるように 設定しておく方がハードウエア資源の管理の観点から実装が容易となる そのため、 割込プロセッサマスクビットの設定に関して、 後述する O S 判定フラグを用いて、 一方のオペレーティングシステムに実装されるド ライバのみが構成制御を行い、 一方のオペレーティングシステムにのみ 割込をあげるよう設定する必要がある。  However, care must be taken when the input / output device is set to be shared. In this case, there may be no problem if both operating systems are set to interrupt. However, in the case where the communication device 71 described later is shared, it is generally easier to implement from the viewpoint of hardware resource management by setting one of the operating systems so that the interrupt is raised. For the setting of the embedded processor mask bit, it is necessary to make settings so that only the driver implemented in one operating system controls the configuration using the OS determination flag described later, and only one of the operating systems gives an interrupt. .
以上のようにすることにより、 各オペレーティングシステムから制御 できる入出力装置と、 割込が報告される入出力装置が一致し、 デバイス ドライバにおける一貫性が保たれるごとになる。  By doing the above, the I / O devices that can be controlled from each operating system and the I / O device that reports the interrupt match, and the consistency in the device driver is maintained.
第 3図に割込振分機能 3 1の別の構成を示す。 第 3図では割込信号線 8 1 , 8 3が複数の信号線により構成され、 それら信号線で例えば数値 レベルが符号化される場合の割込振分機能 3 1について説明する。 Fig. 3 shows another configuration of the interrupt distribution function 31. In FIG. 3, interrupt signal lines 8 1 and 8 3 are composed of a plurality of signal lines, The interrupt distribution function 31 when the level is encoded will be described.
第 3図 (a ) は割込振分機能 3 1の構成を示すものであり、 割込要因 レジス夕 2 0 0 , 割込レベルレジスタ 2 1 0 , 割込エンコーダ 2 2 0か ら成る。  Fig. 3 (a) shows the configuration of the interrupt distribution function 31. It consists of an interrupt factor register 200, an interrupt level register 210, and an interrupt encoder 220.
第 3図 (b ) に割込レベルレジス夕 2 1 0の構成を示す。 割込レベル レジスタ 2 1 0は、 割込要因と 1対 1に対応して用意するレジス夕であ り、 割込報告レベル 2 1 1と割込処理をするプロセッサを示すプロセッ サフラグ 2 1 2から成る。 ここでは、 割込報告レベル 2 1 1は複数ビッ 卜から成る符号化されたレベルを示す。 また割込報告レベルは大きな値 ほど割込優先度が高.'.く、 値 0は割込が無いことを意味するものとする。 プロセッサフラグ 2 .1 2に関して、 当該割込を処理するプロセッサを表 現するためにいくつか方法が考えられるが、 例えばプロセッサフラグ 2 1 2で持つビット毎に、 処理するプロセッサを意味するよう表現する。 すなわち、 ビット 0が 1にセットされていればプロセッサ A 1 0 , ビッ ト 1が 1にセットされていればプロセッサ B 2 0が処理することを意味 する。 この時、 1 0進数で値 1の場合はプロセッサ A 1 0が処理し、 値 2の場合はプロセッサ B 2 0 , 値 3はプロセッサ A 1 0とプロセッサ B 2 0が処理することを意味する。  Figure 3 (b) shows the configuration of the interrupt level register 210. The interrupt level register 210 is a register that is prepared in one-to-one correspondence with the interrupt source.The interrupt report level 211 and the processor flag 211 that indicates the processor that performs the interrupt processing are Become. Here, the interrupt report level 211 indicates an encoded level composed of a plurality of bits. Also, the larger the value of the interrupt report level, the higher the interrupt priority. The value 0 means that there is no interrupt. Regarding the processor flag 2.12, there are several ways to represent the processor that processes the interrupt.For example, each bit of the processor flag 2 12 is expressed to mean the processor that processes the interrupt. . That is, if bit 0 is set to 1, it means that the processor A 10 performs processing, and if bit 1 is set to 1, it means that the processor B 20 performs processing. At this time, if the value is 1 in decimal and the value is 1, the processor A 10 processes the data. If the value is 2, the processor B 20 and the value 3 means that the processors A 10 and B 20 process.
第 3図 (c ) に割込エンコーダ 2 2 0の構成を示す。 割込エンコーダ 2 2 0は、 プロセッサ A 1 0に対する割込レベル出力部 2 2 1 と、 プロ セッサ B 2 0に対する割込レベル出力部 2 2 2, プライオリティエンコ ーダ 2 2 5から成る。 プロセッサ B 2 0に対する割込レベル出力部 222 は、 割込レベル出力部 2 2 1における'定数 2 1 3 (プロセッサ Aを示す) がプロセッサ Bを示す定数となっている以外は、 割込レベル出力部 221 と同じである。 割込レベル出力部 2 2 1において、 各割込要因毎に、 プロセッサフラ グ 2 1 2がプロセッサ A 1 0を示しているか比較器 2 1 4にて検査する ( プロセッサ A 1 0を意味するピッ トがセッ トされている場合、 比較器 2 1 4は " 1 " を出力する。 そして、 割込要因レジス夕 2 0 0からの要 因ビッ卜と論理積 2 1 5が取られる。 すなわちプロセッサ Aに対応する 入出力装置からの割込が発生した場合には、 論理積 2 1 5の出力は " 1 " となる。 割込報告レベル 2 1 1は、 論理積 2 1 5が " 1 " を出力される 場合にそのままプライオリティエンコーダ 2 2 5に入力される。 論理積 2 1 5が " 0 " を出力している場合には該当する割込要因からは割込報 告レベル = 0がプライオリティエンコーダ 2 2 5に入力される。 Fig. 3 (c) shows the configuration of the interrupt encoder 220. The interrupt encoder 220 includes an interrupt level output unit 221 for the processor A10, an interrupt level output unit 222 for the processor B20, and a priority encoder 225. The interrupt level output unit 222 for the processor B 20 outputs the interrupt level output signal except that the constant 2 13 (indicating the processor A) in the interrupt level output unit 2 21 is a constant indicating the processor B. Same as part 221. In the interrupt level output section 2 2 1, for each interrupt factor, the processor flags 2 1 2 is inspected by either comparator 2 1 4 illustrates a processor A 1 0 (beep meaning processor A 1 0 When the bit is set, the comparator 2 14 outputs “1”, and the logical product of the factor bit from the interrupt factor register 200 and the logical product 2 15 is obtained. When an interrupt from the input / output device corresponding to A occurs, the output of logical product 2 15 is "1." For the interrupt reporting level 2 11, logical product 2 15 is "1" Is output as it is to the priority encoder 2 25. When the logical product 2 15 outputs "0", the priority of the interrupt report level = 0 is determined from the corresponding interrupt factor. Input to encoders 2 25.
プライオリティエンコーダ 2 2 5では、 入力される全ての割込要因の うち、 最も割込報告レベルが高いものを選択し、 割込信号線 8 1に出力 する。  The priority encoder 2 25 selects the highest interrupt report level among all input interrupt factors and outputs the selected interrupt factor to the interrupt signal line 81.
以上よりそれぞれの入出力装置から報告される割込について、 制御す る対象の入出力装置からの割込のうち、 最も割込報告レベルの高いもの が各プロセッサに報告されることになる。  From the above, regarding the interrupts reported from the respective input / output devices, the interrupt with the highest interrupt report level among the interrupts from the input / output devices to be controlled is reported to each processor.
第 4図に本発明による構成定義テーブル 1 4 1の構成を示す。  FIG. 4 shows the configuration of the configuration definition table 141 according to the present invention.
第 4図 (a ) は構成定義テーブル 1 4 1の概念を示すテーブル例であ る。 構成定義テーブル 1 4 1は入出力装置名 1 4 2とオペレーティング システム 'エントリ 1 4 3から構成される。 構成定義テーブル 1 4 1を 参照することにより、 入出力装置に対応するオペレーティングシステム を決定することができる。 例えば、 マウスを制御するオペレーティング システムは〇 S— Aであり、 拡張スロット 0を制御するォペレ一ティン グシステムは〇 S— B、 キーボードは制御するォペレ一ティングシステ ムが無く、 通信装置は 0 S— Aと O S— Bで共有されることが分かる。 第 4図 (b ) は、 実際に実装される構成定義テ一ブル 1 4 1の構成を 示すテーブル例である。 計算機で第 4図 (a ) のようなテーブルを直接 実装する (例えば "キーボード" という文字列を扱う) のは効率と使い 勝手の面で適さない。 そこで入出力装置名に相当する情報を位置情報, オペレーティングシステムを示す名前には数値で表現するのが適当であ る。 FIG. 4 (a) is a table example showing the concept of the configuration definition table 141. The configuration definition table 14 1 is composed of an input / output device name 14 2 and an operating system 'entry 14 3. The operating system corresponding to the input / output device can be determined by referring to the configuration definition table 14 1. For example, the operating system that controls the mouse is 〇S—A, the operating system that controls expansion slot 0 is 〇S—B, the keyboard has no operating system, and the communication device is 通信 S—A. You can see that it is shared between A and OS-B. FIG. 4 (b) is an example of a table showing the configuration of the configuration definition table 141 actually implemented. Implementing a table as shown in Fig. 4 (a) directly on a computer (for example, handling a character string "keyboard") is not suitable in terms of efficiency and usability. Therefore, it is appropriate to represent the information corresponding to the input / output device name with the position information and the operating system name with numerical values.
実際の計算機システムにおいてデバイスドライバは、 入出力装置を特 定するためにオペレーティングシステムで一意に定まる位置情報を使用 する。 例えば、 P C I (Per ipheral Component In t erconnec t ) バスにお いては、 バス番号, デバイス番号, 機能番号によって入出力装置を特定 する。 バス番号はシステム内のバス毎に一意に振られる番号であり、 デ バイス番号は同一バス内で入出力装置毎に一意に振られる番号, 機能番 号は同一入出力装置内で機能毎に一意に振られる番号である。 機能番号 に関して例を挙げると、 L A N (Local Area Ne twork) に接続する機能 と、 電話線に接続するモデム機能が同一入出力装置内に存在する塲合、 一般にはこれらの機能毎に独立して、 動作を設定するためのレジスタ空 間が確保される。 この場合、 バス番号, デバイス番号までは同一で、 機 能番号のみが異なるよう入出力装置が構成される。 そこでレジスタ空間 を識別するために機能番号でこれらの機能を識別し、 構成制御や通常の 処理を行う。  In an actual computer system, a device driver uses position information uniquely determined by an operating system to specify an input / output device. For example, in the case of a peripheral component interconnect (PCI) bus, the I / O device is specified by the bus number, device number, and function number. The bus number is a number that is uniquely assigned to each bus in the system, the device number is a number that is assigned uniquely to each input / output device in the same bus, and the function number is a unique number for each function in the same input / output device. This is the number assigned to To give an example of the function number, if the function to connect to the LAN (Local Area Network) and the modem function to connect to the telephone line exist in the same I / O device, generally, these functions are independent for each of these functions. The register space for setting the operation is secured. In this case, the I / O device is configured so that the bus number and the device number are the same and only the function number is different. Therefore, these functions are identified by function numbers to identify the register space, and configuration control and normal processing are performed.
また処理するオペレーティングシステムを表現するに当たり、 第 3図 ( b ) で説明したように、 ビット毎に処理するオペレーティングシステ ムを意味するよう表現する。 すなゎぢ、 ビット 0が 1にセットされてい ればォペレ一ティングシステム 1 0 1、 ビット 1が 1にセッ卜されてい ればォペレ一ティングシステム 1 2 1が処理することを意味する。 この 時、 1 0進数で値 1の場合はオペレーティングシステム 1 0 1が処理し、 値 2の場合はオペレーティングシステム 1 2 1、 値 3はオペレーティン グシステム 1 0 1とォペレ一ティングシステム 1 2 1が処理することを 意味する。 また値 0はいずれのオペレーティングシステムも処理を行わ ないことを意味し、 例えば計算機システムの検査等の目的で、 当該入出 力装置を処理しないようにすることが必要な場合に本機能を使うことが できる。 In expressing the operating system to be processed, as described in FIG. 3 (b), the operating system to be processed bit by bit is represented. That is, if bit 0 is set to 1, the operating system 101 is processed, and if bit 1 is set to 1, the operating system 122 is processed. this If the value is a decimal number, the value 1 is processed by the operating system 101, the value 2 is processed by the operating system 121, and the value 3 is processed by the operating system 101 and the operating system 122. Means that. A value of 0 means that none of the operating systems performs processing.This function can be used when it is necessary not to process the input / output device for the purpose of, for example, checking a computer system. it can.
本実施例における構成定義テーブル 1 4 1は、 バス番号 1 4 4, デバ イス番号 1 4 5, 機能番号 1 4 6、 さらにォペレ一ティングシステム毎 に一意に振られた O S番号を示す O Sエントリ 1 4 3から構成される。 第 4図 (b ) では、 入出力制御装置 3 0はバス番号 = 0 , デバイス番号 = 0 , 機能番号 = 0の入出力装置であるとする。 オペレーティングシス テムは入出力装置自身をこれらの位置情報から特定し、 動作条件を設定 することが可能である。 入出力制御装置 3 0に接続されるキーポード 4 0 , マウス 4 1は入出力制御装置 3 0に接続される異なる機能である として、 別の機能番号を振る。 独立な機能番号により、 これらの装置を 識別することが可能である。  The configuration definition table 144 in this embodiment includes a bus number 144, a device number 144, a function number 144, and an OS entry 1 indicating an OS number uniquely assigned to each operating system. Consists of 4 3 In FIG. 4 (b), it is assumed that the input / output control device 30 is an input / output device having a bus number = 0, a device number = 0, and a function number = 0. The operating system can specify the input / output device itself from these pieces of position information and set operating conditions. The keyboard 40 and the mouse 41 connected to the input / output control device 30 are assigned different function numbers as different functions connected to the input / output control device 30. These devices can be identified by independent function numbers.
第 4図 (c ) にパス種別検索テーブル 1 4 7の構成例を示す。 第 4図 ( b ) では構成定義テ一ブル 1 4 1として一つのテーブルを示したが、 パスの種別が複数有る場合には構成定義テーブル 1 4 1をパスの種別毎 に設け、 これら複数の構成定義テーブル 1 4 1を検索するためのパス種 別検索テーブル 1 4 7を用意する。 バス種別検索テーブル 1 4 7はバス 種別 1 4 8, 構成定義テ一ブルインデックス 1 4 9から成る。 構成定義 テーブルィンデックス 1 4 9は、 構成定義テーブル 1 4 1が複数存在す る場合にこれらのテーブルが格納されるメモリの先頭ァドレスを示す。 なお複数のバス種別を示すエントリを構成定義テーブル 1 4 1に追加 して、 単一の構成定義テーブルとしても良い。 FIG. 4 (c) shows a configuration example of the path type search table 147. In FIG. 4 (b), one table is shown as the configuration table 141, but if there are multiple types of paths, the configuration table 141 is provided for each type of path. A path type search table 147 for searching the configuration definition table 147 is prepared. The bus type search table 147 includes a bus type 148 and a configuration table index 149. The configuration definition table index 149 indicates the head address of the memory where these tables are stored when a plurality of configuration definition tables 141 exist. An entry indicating a plurality of bus types may be added to the configuration table 141 so that a single configuration table is used.
複数のバス種別の例として、 · P C M C I A / J E I D Aで規定される P C力一ドバスが計算機システムで用意される場合、 第 4図 (b ) で示 した構成定義テーブル 1 4 1と同様なテーブルを P Cカードバスに対し ても用意し、 バス種別テーブル 1 4 7に P Cカードのェントリを追加す る。 このような構成とすることにより、 P Cカードスロット毎に処理を 行うオペレーティングシステムを設定することが可能となる。 なお他の バス種においても、 当該パスにおける入出力装置を一意に決定する位置 情報を用いることにより、 任意のバス種別において、 入出力装置を制御 するオペレーティングシステムを設定することができる。 この場合、 前 述した位置情報の個数や内容が増減することがある。  As an example of multiple bus types: · When a PC drive bus specified by PCMCIA / JEIDA is prepared in the computer system, a table similar to the configuration definition table 141 shown in Fig. 4 (b) is used. Prepare for the card bus and add the PC card entry to the bus type table 147. With such a configuration, it is possible to set an operating system that performs processing for each PC card slot. For other bus types, an operating system that controls the input / output devices can be set for an arbitrary bus type by using the position information that uniquely determines the input / output devices in the path. In this case, the number and contents of the above-mentioned position information may increase or decrease.
なお構成定義テーブル 1 4 1は複数のオペレーティングシステムが動 作中に参照されるテーブルであるため、 テーブルの更新を行う際には構 成定義テ一ブル 1 4 1を参照する全てのオペレーティングシステムが停 止あるいは参照できないようにする必要がある。 例えば構成定義テープ ル 1 4 1のエントリを更新するためには、 全てのオペレーティングシス テムが起動する前に更新するのが適当である。 ォペレ一ティングシステ ム稼働中でも、 構成定義テーブル 1 4 1を保持する不揮発性記憶装置 4 2の構成定義テーブル保存領域 4 4を更新し、 次回のオペレーティン グシステム再起動時に構成定義テーブルの内容が更新されるようにして も良い。 すなわち、 構成定義テーブル 1 4 1を更新するためには、 操作 者が当該テーブルを一部変更あるいは全体更新し、 テ一ブルのデータを 構成定義テーブル保存領域 4 4に格納し、 計算機システムの電源を切断、 再度投入する。 その後いずれか一つのプロセッサにおいて実行されるシ ステム立上げプログラムが、 先ほど変更した構成定義テ一プル保存領域 4 4よりテーブルのデ一夕を取得し'メモリ 1 4 0の構成定義テーブル 1 4 1を復元する。 Since the configuration table 14 1 is a table that is referred to when multiple operating systems are operating, when updating the table, all operating systems that refer to the configuration table 14 1 are required to update the table. It must be stopped or cannot be referenced. For example, in order to update the entry of the configuration table 141, it is appropriate to update it before all operating systems are started. Even while the operating system is running, the configuration table storage area 44 of the non-volatile storage device 42 that holds the configuration table 14 1 is updated, and the contents of the configuration table are updated the next time the operating system is restarted. You may do it. That is, in order to update the configuration table 141, the operator changes or partially updates the table, stores the table data in the configuration table storage area 44, and supplies power to the computer system. Cut and re-insert. After that, the system executed in any one processor The system start-up program obtains the table data from the configuration table storage area 44 changed previously, and restores the configuration table 141 in the memory 140.
第 5図に構成定義参照機能 1 0 4の処理フローを示す。  FIG. 5 shows the processing flow of the configuration reference function 104.
構成定義参照機能 1 0 4は、 デバイス情報取得機能 1 0 2とデバイス 情報設定機能 1 0 3から要求される入出力装置が存在するか判定する。 すなわち、 デバイス情報取得機能 1 0 2とデバイス情報設定機能 1 0 3 からは、 入出力装置を特定するバス種別, バス番号, デバイス番号, 機 能番号を伴い、 当該オペレーティングシステム 1 0 1で処理すべき入出 力装置であるか確認を求められる。  The configuration reference function 104 determines whether there is an input / output device requested by the device information acquisition function 102 and the device information setting function 103. That is, from the device information acquisition function 102 and the device information setting function 103, the operating system 101 processes the bus type, bus number, device number, and function number for specifying the input / output device. You will be asked to confirm that the input / output device should be used.
構成定義参照機能 1 0 4は最初に、 デバイス情報取得機能 1 0 2また はデバイス情報設定機能 1 0 3から受け取った、 バス種別を元にバス種 別検索テーブル 1 4 7を参照し、 これから参照しょうとする構成定義テ —ブル 1 4 1、 または構成定義テーブル上の領域を特定する (処理 300)。 引き続きバス番号 1 4 4 , デバイス番号 1 4 5 , 機能番号 1 4 6を元に、 該当するェントリを構成定義テーブル 1 4 1から検索する (処理 301 ) 。 ここで該当するエントリが無い場合、 「該当入出力装置無し」 と要求元 に応答し終了する (処理 3 0 5 ) 。 該当するエントリがある場合、 引き 続きエントリに対応する〇 Sェントリ 1 4 3を参照し、 O Sエントリに 含まれる値が、 構成定義参照機能を呼び出したデバイス情報取得機能 1 0 2またはデバイス情報設定機能 1 0 3のオペレ^ "ティングシステム を含むか検査する (処理 3 0 3 ) 。 例えば、 オペレーティングシステム 1 0 1からの呼出で、 〇 Sエントリ : Ϊ 4 3のビット 0が " 1 " にセット されていれば、 オペレーティングシステム 1 0 1は当該入出力装置の処 理をするェントリに含まれると認められる。 処理 3 0 3で〇 Sェントリ に含まれない場合は、 「該当入出力装置無し」 と要求元に応答し終了す る (処理 3 0 5 ) 。 また処理 3 0 3で含まれる場合、 「該当入出力装置 存在」 と要求元に応答し、 終了する (処理 3 04) 。 First, the configuration definition reference function 104 refers to the bus type search table 144 based on the bus type received from the device information acquisition function 102 or the device information setting function 103, and refers to it from now on. The configuration table to be tried 1 4 1 or the area on the configuration table is specified (process 300). Subsequently, based on the bus number 144, the device number 144, and the function number 144, the corresponding entry is searched from the configuration definition table 141 (process 301). If there is no corresponding entry, the response is made to the request source, "No input / output device exists", and the processing is terminated (processing 305). If there is a corresponding entry, the value of the OS entry is referred to the Sentry 1 4 3 corresponding to the entry, and the device information acquisition function 1 0 2 or the device information setting function that called the configuration definition reference function Check whether the operating system of 103 is included (processing 303). For example, in a call from the operating system 101, 1S entry: bit 0 of Ϊ43 is set to “1”. If so, the operating system 101 is recognized as being included in the entry processing the input / output device. If not included, respond to the request source with “No corresponding input / output device” and end (processing 305). If it is included in the process 303, it responds to the request source with “the corresponding input / output device exists” and ends (process 304).
なお第 5図では構成定義参照機能 1 04の処理フローという、 ソフト ウェア的処理手法を説明した。 しかし、 構成定義参照機能 1 04は必ず しもソフトウエア的手法による必要はなく、 例えばハードウエアで実装 することも可能である。  In FIG. 5, the processing flow of the configuration reference function 104, which is a software processing method, has been described. However, the configuration definition reference function 104 does not necessarily need to be implemented by a software method, and can be implemented by, for example, hardware.
第 6図 (a) に構成定義参照機能 1 04をハードウェアで実装する場 合における、 構成定義テーブル 14 1の別の構成例を示す。 ここでば第 4図 (b) におけるバス番号 144, デバイス番号 1 45, 機能番号 1 4 6の値を 1 6進数で表現し、 連結した値をァドレス 1 6 0とし、 〇 Sエントリ 14 3をアドレス 1 6 0に格納する値 1 6 1とする。 例え ばマウス 4 1は、 バス番号 = 0, デバイス番号 = 0, 機能番号 = 2であ るので、 アドレス 1 6 0は 0 x 0 0 2となり、 アドレス 0 x 0 02に格 納される値 1 6 1は 0 x 0 1となる。  FIG. 6 (a) shows another configuration example of the configuration definition table 141 when the configuration reference function 104 is implemented by hardware. Here, the values of bus number 144, device number 145, and function number 146 in Fig. 4 (b) are expressed in hexadecimal notation, the concatenated value is represented as address 160, and 〇S entry 143 is represented as The value to be stored at address 16 0 is 16 1. For example, since mouse 41 has a bus number = 0, a device number = 0, and a function number = 2, the address 16 0 is 0 x 00 2 and the value stored in the address 0 x 0 02 is 1 6 1 becomes 0 x 0 1.
第 6図(b)は構成定義参照機能 1 04の他の実施例である。 構成定義 参照機能 1 04は、 バス種別レジスタ 1 6 2, バス番号レジスタ 1 6 3, デバイス番号 1 64, 機能番号レジス夕 1 6 5, テ一ブルインデックス 1 6 6, オフセッ トレジスタ 1 6 7 , OSエントリレジスタ 1 68から 成る。  FIG. 6B shows another embodiment of the configuration reference function 104. Configuration definition reference function 104 is bus type register 16 2, bus number register 16 3, device number 1 64, function number register 16 5, table index 16 6, offset register 16 6, OS It consists of an entry register 168.
以下に、 構成定義参照機能 1 04を使用するフローを説明する。  The flow of using the configuration definition reference function 104 will be described below.
デバイス情報取得機能 1 0 2またはデバイス情報設定機能 1 0 3は、 構成定義参照機能 1 04を利用する際に、 検査したい入出力装置に対応 するバス種別, バス番号, デバイス番号, 機能番号をそれぞれバス種別 レジスタ 1 6 2, バス番号レジスタ 1 6 3, デバイス番号 1 64, 機能 番号レジスタ 1 6 5に格納する。 構成定義参照機能 1 0 4は、 格納され たバス種別レジスタ 1 6 2の値を元にバス種別検索テーブル 1 4 7を検 索し、 指定されたバス種別に対応する値 (構成定義テーブルの先頭アド レス) を取得する。 取得した値はテーブルインデックス 1 6 6に格納さ れる。 またバス番号レジスタ 1 6 3 ,, デバイス番号 1 6 4 , 機能番号レ ジス夕 1 6 5に格納された値は、 連結してオフセッ トレジスタ 1 6 7に 格納される。 その後テーブルィンデックス 1 6 6とオフセットレジス夕The device information acquisition function 102 or the device information setting function 103 specifies the bus type, bus number, device number, and function number corresponding to the I / O device to be inspected when using the configuration reference function 104. Bus type register 162, bus number register 163, device number 164, function Stored in number register 1 65. The configuration definition reference function 104 searches the bus type search table 147 based on the stored value of the bus type register 162 to find the value corresponding to the specified bus type (the top of the configuration table). Address). The obtained value is stored in table index 166. The values stored in the bus number register 163, device number 164, and function number register 165 are concatenated and stored in the offset register 167. After that, Table Index 1 6 6 and Offset Regis evening
1 6 7は加算され、 第 6図 (a ) に示される構成定義参照機能 1 0 4の アドレスを参照し、 格納される値 1 6 8を取得する。 構成定義参照機能167 is added, and the stored value 168 is obtained by referring to the address of the configuration reference function 104 shown in FIG. 6 (a). Configuration reference function
1 0 4を使用するデバイス情報取得機能 1 0 2またはデバイス情報設定 機能 1 0 3は、 一定時間後 O Sエントリレジスタ 1 6 8を参照し、 当初 の入出力装置に対応するォペレ一ティングシステムを取得する。 Device information acquisition function using device 104 or device information setting function Function 103 acquires the operating system corresponding to the original input / output device by referring to the OS entry register 168 after a certain period of time I do.
以上より、 ハードウェアで構成定義参照機能 1 0 4を実現することが 可能となる。  As described above, the configuration reference function 104 can be realized by hardware.
第 6図 (c ) にハードウェアで実装された構成定義参照機能 1 0 4の 実装例を示す。 ハードウエアで実装された構成定義参照機能を使うこと により、 第 1図における構成定義参照機能 1 0 4はもはやメモリ 1 0 0, メモリ 1 2 0に存在するのではなく、 例えば入出力制御装置 3 0に含む ことで、 いずれのオペレーティングシステムから利用することが可能と なる。  Figure 6 (c) shows an implementation example of the configuration reference function 104 implemented in hardware. By using the configuration reference function implemented in hardware, the configuration reference function 104 in FIG. 1 no longer exists in the memory 100 and the memory 120. By including it in 0, it can be used from any operating system.
第 7図にデバイス情報取得機能 1 0 2の処理フローを示す。  FIG. 7 shows a processing flow of the device information acquisition function 102.
デバイス情報取得機能 1 0 2は、 デバイスドライバ 1 0 5— 0〜!!か ら入出力装置に対するデータ読み取り要求を受ける。 この時デバイス情 報取得機能 1 0 2は、 バス種別, バス番号, デバイス番号, 機能番号, 読み取る入出力装置のアドレス, 読み取るデータサイズ, 読み取ったデ 一夕を格納するバッファのァドレスなどをデバイスドライバ 1 0 5— 0 〜nから受け取る。 The device information acquisition function 102 is a device driver 105-0! ! It receives a data read request from the I / O device. At this time, the device information acquisition function 102 includes the bus type, bus number, device number, function number, address of the I / O device to be read, data size to be read, and data to be read. Receives the address of the buffer that stores overnight from the device driver 105-0-n.
デバイス情報取得機能 1 0 2は最初に構成定義参照機能 1 0 4に対し て、 バス種別, バス番号, デバイス番号, 機能番号を渡し、 該当する入 出力装置が存在するか確認要求を発行する (処理 3 2 0 ) 。 構成定義参 照機能 1 0 4より返される応答により、 当該入出力装置が存在しないと 判明した場合、 異常終了の応答を要求元のデバイスドライバに返し終了 する (処理 3 2 4 ) 。 当該入出力装置が存在する場合、 要求された入出 力装置のァドレスから指定されたサイズだけデータを読み取り指定され たバッファにデータを転送する (処理 3 2 2 ) 。 その後要求元のデバィ スドライバに正常終了の応答を返し終了する (処理 3 2 3 ) 。  First, the device information acquisition function 102 passes the bus type, bus number, device number, and function number to the configuration reference function 104, and issues a request to confirm whether the corresponding input / output device exists ( Processing 320). If it is determined from the response returned from the configuration reference function 104 that the I / O device does not exist, an abnormal termination response is returned to the requesting device driver and the process is terminated (process 32 4). If the input / output device is present, the data is read out from the requested input / output device address by the specified size and transferred to the specified buffer (process 3222). Thereafter, a response indicating normal termination is returned to the requesting device driver, and the process is terminated (process 3 2 3).
第 8図にデバイス情報設定機能 1 0 3の処理フロ一を示す。  FIG. 8 shows a processing flow of the device information setting function 103.
デバイス情報設定機能 1 0 3は、 デバイスドライバ 1 0 5— 0〜nか ら入出力装置に対するデータ書き込み要求を受ける。 この時デバイス情 報設定機能 1 0 3は、 バス種別, バス番号, デバイス番号, 機能番号, 書き込む入出力装置のアドレス, 書き込むデータサイズ, 書込むべきデ 一夕を格納するバッファのァドレスなどをデバイスドライバ 1 0 5 — 0 〜nから受け取る。  The device information setting function 103 receives a data write request to the input / output device from the device drivers 105-0 to n. At this time, the device information setting function 103 sets the bus type, bus number, device number, function number, the address of the I / O device to be written, the data size to be written, and the address of the buffer that stores the data to be written. Driver 1 0 5 — Received from 0 to n.
デバイス情報設定機能 1 0 3は最初に構成定義参照機能 1 0 4に対し て、 バス種別, バス番号, デバイス番号, 機能番号を渡し、 該当する入 出力装置が存在するか確認要求を発行する (処理 3 4 0 ) 。 構成定義参 照機能 1 0 4より返される応答により、 当該入出力装置が存在しないと 判明した場合、 異常終了の応答を要求元のデバイスドライバに返し終了 する (処理 3 4 4 ) 。 当該入出力装置が存在する場合、 要求された入出 力装置のァドレスへ指定されたバッファから指定されたサイズだけデー 夕を転送する (処理 3 4 2 ) 。 その後要求元のデバイスドライバに正常 終了の応答を返し終了する (処理 3 4 3 ) 。 First, the device information setting function 103 passes the bus type, bus number, device number, and function number to the configuration reference function 104, and issues a request to confirm whether the corresponding I / O device exists ( Processing 340). If it is determined from the response returned from the configuration reference function 104 that the input / output device does not exist, an abnormal termination response is returned to the requesting device driver and the process is terminated (process 344). If the I / O device is present, data of the specified size is transferred from the specified buffer to the address of the requested I / O device. Transfer the evening (processing 3 4 2). Thereafter, a response indicating normal termination is returned to the requesting device driver, and the processing is terminated (processing 343).
第 9図にオペレ一ティングシステム 1 0 1の構成に関し、 デバイスド ライバ組込み機能 1 5 0のブロック図を示す。  FIG. 9 shows a block diagram of the device driver built-in function 150 relating to the configuration of the operating system 101.
第 9図 (a ) はデバイスドライバ組込み機能 1 5 0の一例のブロック 図である。 デバイスドライバ組込み機能 1 5 0は、 ドライバロード機能 1 0 8と、 入出力装置列挙機能 1 0 9, 入出力装置データベース 1 1 0 から成る。 ドライバロード機能 1 0 8は、 指示されたドライバを所定の 不揮発性記憶より読み出し、 メモリ 1 0 0上に展開し、 当該ドライバで 定められた機能を呼び出し、 オペレーティングシステムで管理されるド ライパの一覧に当該ドライバのェントリを追加する機能を有する。 入出 力装置データべ一ス 1 1 0は、 入出力装置の種別毎に用意されるデータ ベースであり、 入出力装置と対応するドライバの格納場所やドライバ起 動時のパラメ一夕が記載されている。 入出力装置データベース 1 1 0は オペレーティングシステムが呼び出す必要があるデバイスドライバに関 するものであり、 ォペレ一ティングシステムが計算機システムに導入さ れる際にあらかじめ含まれる。  FIG. 9 (a) is a block diagram of an example of the device driver built-in function 150. The device driver built-in function 150 includes a driver load function 108, an input / output device enumeration function 109, and an input / output device database 110. The driver load function 108 reads the designated driver from a predetermined non-volatile memory, expands the designated driver in the memory 100, calls a function defined by the driver, and lists the drivers managed by the operating system. Has a function of adding an entry for the driver. The I / O device database 110 is a database prepared for each type of I / O device, and describes the storage location of the driver corresponding to the I / O device and the parameters at the time of starting the driver. I have. The input / output device database 110 relates to a device driver that needs to be called by the operating system, and is included in advance when the operating system is introduced into the computer system.
第 1 0図に入出力装置列挙機能 1 0 9の処理フローを示す。 最初にバ ス種別, バス番号, デバイス番号, 機能番号を初期化する (処理 3 6 0 ) c 次にバス種別, パス番号, デバイス番号, 機能番号をデバイス情報取得 機能 1 0 2に指示し、 結果を受け取る (処理 3 6 1 ) 。 デバイス情報取 得機能 1 0 2の応答から、 該当する入出力装置が当該オペレーティング システム 1 0 1の管理下にあるか判定する(処理 3 6 2 )。 当該入出力装 置が存在しない旨通知された場合、 パス種別, パス番号, デバイス番号, 機能番号について、 次の入出力装置を指示するよう変更し処理 3 6 1に 戻る (処理 3 6 8 ) 。 ここで次の入出力装置を指示するためには、 例え ばデバイス番号を 1つ増加させたり、 デバイス番号が規定の数値に達し た場合にはデバイス番号初期化、 バス番号を 1つ増加させる。 このよう にして計算機システム中の全ての入出力装置を走査する。 処理 3 6 2よ り、 該当する入出力装置が存在する.と判明した場合には、 入出力装置に 対応するキーを作成し、 入出力装置データベース 1 1 0を検索し (処理 3 6 3 ) 、 該当エントリが存在するか判定する (処理 3 6 4 ) 。 該当ェ ントリが存在しなかった場合、 前回計算機システム起動時以降に入出力 装置が追加されたことを意味するため、 新たにドライバを計算機システ ムに導入する手順 (後述) を実行する (処理 3 6 7 ) 。 該当エントリが 存在した場合、 当該ェントリより入出力装置に対応したデバイスドライ バをォペレ一ティングシステム 1 0 1に組み込むよう、 ドライバ口一ド 機能 1 0 8に指示する (処理 3 6 5 ) 。 そして、 最後まで入出力装置を 走査しきったか判定する (処理 3 6 6 ) 。 まだ全ての入出力装置を走査 していない場合は、 処理 3 6 8を実行し、 処理 3 6 1を繰り返す。 全て の入出力装置を走査した場合、 入出力装置列挙機能 1 0 9は終了する。 入出力装置列挙機能 1 0 9と入出力装置データベース 1 1 0により、 計算機システムに存在する入出力装置をすベて検索し、 前回の起動時以 降入出力装置の構成に変更が有った場合には、 自動的に対応するドライ バをォペレ一ティングシステムに組み込むことが可能となる。 FIG. 10 shows a processing flow of the input / output device enumeration function 109. First, the bus type, bus number, device number, and function number are initialized (processing 360) c. Then, the bus type, path number, device number, and function number are instructed to the device information acquisition function 102, Receive the result (processing 3 6 1). Based on the response from the device information acquisition function 102, it is determined whether the corresponding input / output device is under the management of the operating system 101 (process 362). If it is notified that the I / O device does not exist, change the path type, path number, device number, and function number to indicate the next I / O device. Return (processing 3 6 8). Here, in order to specify the next input / output device, for example, the device number is incremented by one, or when the device number reaches a specified value, the device number is initialized and the bus number is incremented by one. In this way, all input / output devices in the computer system are scanned. If it is determined from the process 3 62 that the corresponding input / output device exists, a key corresponding to the input / output device is created, and the input / output device database 110 is searched (process 3 63) Then, it is determined whether the corresponding entry exists (processing 3654). If the corresponding entry does not exist, it means that an input / output device has been added since the last time the computer system was started. Therefore, a procedure for introducing a new driver into the computer system (described later) is executed (Process 3). 6 7). If the entry exists, the driver entry function 108 is instructed by the entry to incorporate a device driver corresponding to the input / output device into the operating system 101 (process 365). Then, it is determined whether the scanning of the input / output device has been completed to the last (process 3666). If all the input / output devices have not been scanned yet, the process 368 is executed, and the process 361 is repeated. When all the I / O devices have been scanned, the I / O device enumeration function 109 ends. The I / O device enumeration function 1109 and the I / O device database 110 searched all I / O devices existing in the computer system, and there was a change in the configuration of the I / O devices since the last boot. In such a case, it is possible to automatically incorporate the corresponding driver into the operating system.
また計算機システムの稼働中に活線挿抜技術を用いて入出力装置が追 加される場合、 例えば P Cカードが追加される場合、 入出力装置列挙機 能 1 0 9は、 やはりデバイスドライバ組込み機能 1 5 0を用いることに より対応するドライバをロードすることが可能である。 すなわち、 P C カード等が新たに計算機システムに追加されると、 プロセッサに対し割 込が発生する。 ここで割込みは、 前述した割込振り分け機能 3 1により 処理を担当するプロセッサに対して報告される。 その後割込を受けたプ 口セッサはオペレーティングシステムの機能からデバイスドライバ組込 み機能 1 5 0を条件付きで呼び出す。 具体的には、 指定されたバス種別, バス番号, デバイス番号, 機能番号.を伴いデバイスドライバ組込み機能 1 5 0を呼び出す。 その後デバイスドライバ組込み機能 1 5 0は第 1 0 図のフロ一の一部を処理し、 対応するドライバを組み込むことが可能と なる。 Also, when an I / O device is added using the hot-swapping technology while the computer system is operating, for example, when a PC card is added, the I / O device enumeration function 109 is also a device driver built-in function. By using 50, it is possible to load the corresponding driver. That is, when a PC card or the like is newly added to the computer system, it is assigned to the processor. Occurs. Here, the interrupt is reported to the processor in charge of the processing by the interrupt distribution function 31 described above. After that, the interrupting processor conditionally calls the device driver built-in function 150 from the operating system function. Specifically, the device driver built-in function 150 is called with the specified bus type, bus number, device number, and function number. Thereafter, the device driver embedding function 150 processes a part of the flow shown in FIG. 10 and becomes capable of embedding the corresponding driver.
以上が入出力装置の自動検出とドライバの自動読み込みを実現するデ バイスドライバ組込み機能 1 5 0の構成に関する説明であるが、 入出力 装置の自動検出とドライバ自動読み込みを行わないデバイスドライバ組 込み機能 1 5 0もある。  The above is the description of the device driver built-in function 150 that realizes automatic detection of input / output devices and automatic reading of drivers.The device driver built-in function that does not automatically detect input / output devices and automatically reads drivers There are also 150.
第 9図 (b ) はデバイスドライバ組込み機能 1 5 0の他の例のブロッ ク図である。 デバイスドライバ組込み機能 1 5 0の他の例は、 ドライバ ロード機能 1 0 8と、 入出力装置参照機能 1 1 1 , 入出力装置リスト 1 1 2から成る。 入出力装置リスト 1 1 2は、 当該オペレーティングシ ステムで処理を行う全入出力装置のリストであり、 入出力装置と対応す るドライバの格納場所やドライバ起動時のパラメ一夕が記載されている。 第 1 1図に入出力装置参照機能 1 1 1の処理フローを示す。 最初に入 出力装置リスト 1 1 2から入出力装置エントリを読み出す (処理 380)。 エントリに記載された入出力装置に対応するバス種別, バス番号, デバ イス番号, 機能番号を元にデバイス情報取得情報 1 0 2に指示し、 結果 を受け取る (処理 3 8 1 ) 。 デバイス情報取得機能 1 0 2の応答から、 該当する入出力装置が当該オペレーティングシステム 1 0 1の管理下に あるか判定する (処理 3 8 2 ) 。 当該入出力装置が存在しない旨通知さ れた場合、 入出力装置リスト 1 1 2から次の入出力装置エントリを読み 出す (処理 3 8 5 ) 。 該当する入出力装置が存在すると判明した場合に は、 入出力装置に対応するデパイスドライバをオペレーティングシステ ム 1 0 1に組み込むよう、 ドライパロ一ド機能 1 0 8に指示する (処理 3 8 3 ) 。 そして、 入出力装置リスト 1 1 2から全ての入出力装置を取 得しきつたか判定する (処理 3 8 4 ) 。 まだ取得していない入出力装置 がある場合は、 処理 3 8 5を実行し、 処理 3 8 1を繰り返す。 全ての入 出力装置を走査した場合、 入出力装置参照機能 1 1 1は終了する。 FIG. 9 (b) is a block diagram of another example of the device driver built-in function 150. Another example of the device driver built-in function 150 includes a driver load function 108, an input / output device reference function 111, and an input / output device list 112. The I / O device list 1 1 2 is a list of all I / O devices that perform processing in the operating system, and describes the storage location of the driver corresponding to the I / O device and the parameters at the time of starting the driver. . FIG. 11 shows the processing flow of the input / output device reference function 111. First, an input / output device entry is read from the input / output device list 1 1 2 (process 380). The device information acquisition information 102 is instructed based on the bus type, bus number, device number, and function number corresponding to the input / output device described in the entry, and the result is received (process 38 1). From the response of the device information acquisition function 102, it is determined whether the corresponding input / output device is under the management of the operating system 101 (process 3822). Notification that the I / O device does not exist If it is, the next I / O device entry is read from the I / O device list 112 (process 3885). If it is determined that the input / output device is present, the dry paring function 108 is instructed to incorporate the depth driver corresponding to the input / output device into the operating system 101 (process 383). Then, it is determined whether or not all the input / output devices have been acquired from the input / output device list 112 (processing 384). If there is an I / O device that has not been acquired yet, execute process 385 and repeat process 381. If all I / O devices have been scanned, the I / O device reference function 1 1 1 ends.
以上の構成と方法により、 入出力装置を複数のオペレーティングシス テムで排他的または共有して利用することが可能となる。  With the above configuration and method, the input / output device can be used exclusively or shared by a plurality of operating systems.
なお本発明では入出力装置を排他的あるいは共有して使用する際に、 一方のォペレ一ティングシステムの動作が他方のオペレーティングシス テムの動作に影響を与えていない。 そのため本発明によると、 一方のォ ペレ一ティングシステムを稼働中に、 もう一方のォペレ一ティングシス テムを停止したり、 再起動することが可能となる。 その際に稼働中のォ ペレ一ティングシステムは引き続いて動作を継続することが可能である。 本実施例では、 オペレーティングシステム 1 0 1, 1 2 1はそれぞれ プロセッサ 1 0, 2 0で実行される場合を説明したが、 一つのプロセッ サで二つのォペレ一ティングシステムを実行し、 本発明を適用すること も可能である。-この場合には、 入出力制御装置 3 0は割込みを振り分け る機能を実装する必要が無くなり、 全ての割込みは単一のプロセッサに 報告される。  In the present invention, when the input / output device is used exclusively or shared, the operation of one operating system does not affect the operation of the other operating system. Therefore, according to the present invention, while one operating system is operating, it is possible to stop or restart the other operating system. At that time, the operating system in operation can continue to operate. In this embodiment, the case where the operating systems 101 and 121 are executed by the processors 10 and 20, respectively, has been described. However, two operating systems are executed by one processor, and the present invention is executed. It is also possible to apply. -In this case, the I / O controller 30 does not need to implement the function of dispatching interrupts, and all interrupts are reported to a single processor.
ここで一つのプロセッサで二つ以土のオペレーティングシステムを実 行する技術について簡単に説明する。 一般にオペレーティングシステム を実行するために必要なハ一ドウエア資源としてプロセッサ (レジス夕, プログラムカウンタ, T L B (Trans l at i on Lookas i de Buf f er)等) と割 込がある。 そこで複数のオペレーティングシステムを切り換えて実行す るためには、 これらの資源をそれぞれのオペレーティングシステムで独 立に制御できるよう見せることが必要であり、 そのために複数のォペレ 一ティングシステムとは独立なオペ.レーティングシステム切換機能 (プ ログラム) を用意する。 オペレーティングシステム切換機能は、 特定の 要因 (一定時間経過を示す割込等) をきつかけとして起動され、 それま で実行していた第 1のオペレーティングシステムが利用していた上記の ハ一ドウエア資源をメモリの第 1の特定領域に待避し、 これから切り換 える第 2のォペレ一ティングシステムが使用するハードウエア資源をメ モリの第 2の特定領域より復元し、 第 2のオペレーティングシステムを 実行する。 Here, the technology for executing two or more operating systems with one processor will be briefly described. In general, a processor (Register, There are a program counter, TLB (Translation at Look-a-side Buffer), etc.) and interrupts. Therefore, in order to switch between and execute multiple operating systems, it is necessary to make these resources appear to be controlled independently by each operating system. Therefore, operating systems independent of the multiple operating systems are required. . Provide a rating system switching function (program). The operating system switching function is triggered by a specific factor (such as an interrupt indicating that a certain amount of time has elapsed) and uses the above-mentioned hardware resources used by the first operating system that had been running up to that point. The hardware resources used by the second operating system, which is saved in the first specific area of the memory and switched from now on, are restored from the second specific area of the memory, and the second operating system is executed.
本実施例ではオペレーティングシステムの個数が 2つの場合について 説明したが、 オペレーティングシステムの個数に制限されるものではな い。 例えば 1つのオペレーティングシステムのみを実装した場合でも、 構成定義テーブル 1 4 1において任意の入出力装置をオペレーティング システムの制御対象から外すことにより、 該当する入出力装置の制御を 行わないようすることが可能となる。 これは計算機システムの検査ゃデ バッグ作業の際に有効である。  In the present embodiment, the case where the number of operating systems is two has been described, but the number is not limited to the number of operating systems. For example, even when only one operating system is implemented, it is possible to exclude the control of the corresponding input / output device by excluding any input / output device from the control target of the operating system in the configuration table 14 1 Becomes This is effective for inspection and debugging of computer systems.
本発明による第 2の実施例を第 1 2図を用いて説明する。  A second embodiment according to the present invention will be described with reference to FIG.
第 1 2図は、 複数のオペレーティングシステム間で同一種の入出力装 置に対するドライバを共有するための計算機システムの構成を示したも のである。 第 1図と同一番号の要素に付いては、 本発明の第 1の実施例 で説明したものと同一である。 第 1 2図にて新たに加わった構成要素と して、 入出力制御装置 3 0における〇 S判別フラグレジスタ 3 2と、 不 揮発性記憶 4 2における共通ドライバオブジェクト 4 3, メモリ 1 0 0 とメモリ 1 2 0における共通ドライノ 1 0 7と共通ドライノ 1 2 7であ る。 FIG. 12 shows the configuration of a computer system for sharing a driver for the same type of input / output device among a plurality of operating systems. Elements having the same numbers as those in FIG. 1 are the same as those described in the first embodiment of the present invention. The newly added components in FIG. 12 include the 〇S determination flag register 32 in the input / output control device 30 and the Common driver object 43 in volatile memory 42, common dryino 107 and common dryino 127 in memory 100 and memory 120.
以下では同一の共通ドライバオブジェクトを複数のオペレーティング システム間で共有するための方法について解説する。 なお以下の説明で はオペレーティングシステム 1 0 1における共通ドライバ 1 0 7につい てのみ動作の説明をするが、 同じ動作はオペレーティングシステム 121 における共通ドライバ 1 2 7でも当てはまる。 また共通ドライバ 1 0 7, 共通ドライバオブジェクト 4 3は、 図中一つだけ示すが、 必要な入出力 装置に応じて複数の共通ドライバオブジェクトを用意するとよい。  The following describes a method for sharing the same common driver object among multiple operating systems. In the following description, the operation is described only for the common driver 107 in the operating system 101, but the same operation is also applied to the common driver 127 in the operating system 121. Although only one common driver 107 and common driver object 43 are shown in the figure, a plurality of common driver objects may be prepared according to the required input / output devices.
オペレーティングシステム 1 0 1は自身が立ち上がる際に、 自身が管 理するハードウェア資源 (プロセッサ, メモリ等) や入出力装置を初期 化する。 入出力装置を初期化する際に、 一般には入出力装置に対応する デバイスドライバによって初期化処理を実行する。 そのためオペレーテ ィングシステム 1 0 1は、 不揮発性記憶 4 2からデバイスドライバに相 当する共通ドライバオブジェクト 4 3を読み出し、 オブジェク 卜に含ま れる命令コードや静的データ, 変数領域などを初期化し、 メモリ 1 0 0 上に配置するといったロード処理を行う。 ロードされた共通ドライバオ ブジェクトは共通ドライバ 1 0 7としてメモリ 1 0 0上で存在する。 そ の後オペレーティングシステム 1 0 1より共通ドライバ 1 0 7は呼び出 され、 所望の処理を行う。  When the operating system 101 starts up, it initializes the hardware resources (processor, memory, etc.) and input / output devices that it manages. When initializing an I / O device, the initialization process is generally performed by a device driver corresponding to the I / O device. Therefore, the operating system 101 reads the common driver object 43 corresponding to the device driver from the non-volatile memory 42, initializes the instruction codes, static data, and variable areas included in the object, and stores the memory 1 Load processing such as placing on 0 0 is performed. The loaded common driver object exists in the memory 100 as the common driver 107. Thereafter, the common driver 107 is called from the operating system 101 and performs a desired process.
共通ドライバ 1 0 7は、 自身がいずれのオペレーティングシステム、 すなわちプロセッサから実行されているか判別する必要がある場合には、 O S判別フラグレジスタ 3 2を参照すると良い。 〇 S判別フラグレジス 夕 3 2は、 プロセッサ A 1 0とプロセッサ B 2 0の双方から読み出され るレジスタである。 読み出される値は読み出し 1則に応じて変化する。 例 えばプロセッサ A 1 0より読み出した場合は 0 X 5 5, プロセッサ B20 より読み出した場合は 0 X AAと読み出せる。 The common driver 107 may refer to the OS determination flag register 32 when it is necessary to determine which operating system, that is, the processor, is executing itself. 〇 The S discrimination flag register 32 is read from both processor A10 and processor B20. Register. The value to be read changes according to one rule of reading. For example, when read from processor A10, it can be read as 0X55, and when read from processor B20, it can be read as 0XAA.
ここで共通ドライバオブジェクト 43は、 オペレーティングシステム 1 0 1と 1 2 1の双方より読み出されるように、 双方のォペレ一ティン グシステムで共通に認識できる格納方式により不揮発性記憶 4 2に格納 される。 例えば、 FAT (File Allocation Table) 格納方式により格納 する。 ここで、 FAT格納方式とはパーソナルコンピュータのフロッピ 一ディスクや八一ドディスクにおいてファイルを格納するために広く用 いられている格納方式である。 具体的な仕様については J I S規格 X 0 6 0 5— 1 9 9 0 『情報交換用フレキシブルディスクカートリッジ のボリューム及びファイル構成』 または I S〇ノ I E C規格 9 2 9 3— 1 9 94 『Inf ormat ion technology― Volume and file structure of disk cartridges for information interchange』 こ開示されてレ る。 操作者 は FAT格納方式で初期化された不揮発性記憶 42の特定ディレクトリ (例えば commonディレクトリ) の直下に共通ドライバオブジェク卜 43 を格納しておき、 各オペレーティングシステムは起動時に commonディレ クトリに格納されているドライバを必要に応じて読み込むよう設定する ことにより'、 ドライバを共通化することが可能となる。  Here, the common driver object 43 is stored in the non-volatile memory 42 by a storage method that can be commonly recognized by both operating systems so as to be read out from both the operating systems 101 and 121. For example, it is stored by FAT (File Allocation Table) storage method. Here, the FAT storage method is a storage method widely used for storing files on a floppy disk or an eighty disk of a personal computer. For specific specifications, see JIS standard X0605—1992 “Volume and file structure of flexible disk cartridge for information exchange” or IS〇NO IEC standard 92933-1994 “Information technology” ―Volume and file structure of disk cartridges for information interchange ”. The operator stores the common driver object 43 immediately below a specific directory (for example, the common directory) in the non-volatile memory 42 initialized by the FAT storage method, and stores each operating system in the common directory at the time of startup. By setting the driver to be read as needed, it is possible to share the driver.
なお共通ドライバオブジェクト 43を複数のォペレ一ティングシステ ムで排他的にロードしても、 同時にロードしても良い。 入出力装置が排 他的に利用される場合、 一般的には対応する共通ドライバオブジェク ト 43は排他的にロードされるが、 例えば計算機システム内の入出力装置 に同一種のものが二つ存在し、 一方をオペレーティングシステム 1 0 1、 もう一方をォペレ一ティングシステム 1 2 1で利用する場合には、 同一 の共通ドライバオブジェクト 4 3はそれぞれのォペレ一ティングシステ ムでロードされる。 The common driver object 43 may be exclusively loaded by a plurality of operating systems or may be loaded simultaneously. When an I / O device is used exclusively, the corresponding common driver object 43 is generally exclusively loaded, but, for example, there are two I / O devices of the same type in the computer system. If one is used by the operating system 101 and the other is used by the operating system 121, the same Common driver objects 43 are loaded by each operating system.
その際、 共通ドライバの処理として、 自身がどちらのオペレーティン グシステムから実行されているかによって処理内容を変更することがあ る。  At this time, the processing of the common driver may change depending on which operating system it is running from.
第 1 3図に O S判別フラグレジスタ 3 2を含む入出力制御装置 3 0の 構成を示す。  FIG. 13 shows the configuration of the input / output control device 30 including the OS determination flag register 32.
0 S判別フラグレジスタ 3 2はプロセッサ A 1 0に応答する値を示す プロセッサ A定数 2 4 9と、 プロセッサ B 2 0に応答する値を示すプロ セッサ B定数 2 5 0、 これらの値を切り換えるセレクタ 2 4 8から成る。 セレクタ 2 4 8は、 選択入力信号 2 5 1の値が " 1 " となる場合プロセ ッサ A定数 2 4 9を出力し、 選択入力信号 2 5 1の値が " 0 " となる場 合プロセッサ B定数 2 5 0を出力する。  0 S discrimination flag register 3 2 is a processor A constant 2 49 indicating a value responding to processor A 10 and a processor B constant 2 50 indicating a value responding to processor B 20 .A selector for switching these values Consists of 2 4 8 The selector 248 outputs the processor A constant 249 when the value of the selected input signal 251 becomes "1", and outputs the processor when the value of the selected input signal 251 becomes "0". Outputs B constant 250.
入出力制御装置 3 0はプロセッサ Aアドレス信号 2 4 0 , プロセッサ Aデータ出力信号 2 4 1, プロセッサ Aアドレスデコーダ 2 4 4 , プロ セッサ Aデータセレクタ 2 4 5 ,プロセッサ Bァドレス信号 2 4 2 , プロ セッサ Bデータ出力信号 2 4 3 , プロセッサ Bァドレスデコーダ 2 4 6, プロセッサ Bデータセレクタ 2 4 7から成る。 なお本ブロック図では特 にデータ信号の出力部分について模式的に抽出したものであり、 一般的 な入出力制御装置ではデータは入力と出力がマルチプレクスされた入出 力信号線にてプロセッサと通信する。  The I / O controller 30 is a processor A address signal 24 0, a processor A data output signal 24 1, a processor A address decoder 24 4, a processor A data selector 24 5, a processor B address signal 24 42, It consists of a processor B data output signal 243, a processor B address decoder 246, and a processor B data selector 247. In this block diagram, the output part of the data signal is specifically extracted, and in a general input / output control device, the data communicates with the processor via an input / output signal line in which the input and output are multiplexed. .
プロセッサ Aアドレスデコーダ 2 4 4は、 入力されるプロセッサ Aァ ドレス信号 2 4 0から入出力装置内部の資源を選択する信号を出力する ためのものである。 ここでは特に O S判別フラグレジスタ 3 2を選択す る選択入力信号 2 5 1を " 1 " に出力し、 出力データセレクト信号 253 を出力する。 プロセッサ Aデ一夕セレクタ 2 4 5は入力される選択入力 信号 2 5 3を元に、 プロセッサ Aデータ出力信号 2 4 1に、 〇 S判別フ ラグレジスタ 3 2からの出力信号を選択して出力する。 The processor A address decoder 244 outputs a signal for selecting a resource inside the input / output device from the input processor A address signal 240. Here, in particular, the selection input signal 2 51 for selecting the OS determination flag register 3 2 is output to “1”, and the output data select signal 253 is output. Is output. The processor A data overnight selector 2 4 5 selects and outputs the output signal from the 判別 S discrimination flag register 32 to the processor A data output signal 241, based on the input selection signal 25 3 that is input. I do.
プロセッサ Bアドレスデコーダ 2 4 6とプロセッサ Bデータセレクタ 2 4 7も、 それぞれプロセッサ Aァ.ドレスデコーダ 2 4 4とプロセッサ Aデータセレクタ 2 4 5と同等の機能を有する。 ただしプロセッサ Bァ ドレスデコーダ 2 4 6は〇 S判別フラグレジスタ 3 2に対する選択入力 信号を出力しない。  The processor B address decoder 246 and the processor B data selector 247 also have the same functions as the processor A address decoder 244 and the processor A data selector 245, respectively. However, the processor B address decoder 246 does not output a selection input signal to the 〇S determination flag register 32.
以上の構成により、 例えばプロセッサ A 1 0より O S判別フラグレジ ス夕 3 2を参照すると定数 2 4 9で示される値 0 X 5 5が得られ、 プロ セッサ B 2 0より参照すると定数 2 5 0で示される値 0 X A Aが得られ る。 なおここで定数 2 4 9 , 2 5 0の値自身には特に意味はなく、 任意 の値が設定可能である。 ここで必要なのは、 同一プログラムをそれぞれ のプロセッサ 1 0, 2 0で実行しなおかつプロセッサ毎に動作を切り換 える必要がある場合に、 本レジスタを用いて当該プログラムが現在どち らのプロセッサで実行されているかを知る手段を提供することにある。 本実施例における割込振分機能 3 1の利用方法について以下に説明す る。 いずれのォペレ一ティングシステムで共通ドライバオブジェク ト 4 3が処理されるかは一般に操作者が設定するものであり、 対応する入 出力装置からの割込をどちらのオペレーティングシステムに報告するか、 すなわち割込振分機能 3 1にどのように設定するかは、 共通ドライバオ ブジェク 卜 4 3が実行される際に設定するのが適当である。 そこで共通 ドライバオブジェクト 4 3の初期化処理中では、 自身がいずれのプロセ ッサで実行されているか O S判別フラグレジスタ 3 2を用いて判定し、 自身が実行されているプロセッサに割込が通知されるように割込振分機 能 3 1を設定することが望ましい。 With the above configuration, for example, referring to the OS discrimination flag register 32 from the processor A 10, the value 0 X 55 indicated by the constant 249 can be obtained. The indicated value 0 XAA is obtained. Here, the values of the constants 249 and 250 have no particular meaning, and any value can be set. What is needed here is that if the same program is to be executed on each processor 10 and 20 and the operation needs to be switched for each processor, this register will be used to execute the program using this register. The purpose is to provide a means of knowing that the A method of using the interrupt distribution function 31 in this embodiment will be described below. Which operating system processes the common driver object 43 is generally set by the operator, and to which operating system an interrupt from the corresponding I / O device is reported, that is, It is appropriate to set how to set the transfer function 31 when the common driver object 43 is executed. Thus, during the initialization process of the common driver object 43, it is determined using the OS determination flag register 32 which processor is being executed by itself, and an interrupt is notified to the processor on which it is executing. Like an interrupt sorter It is desirable to set function 31.
以上の構成により、 共通ドライバオブジェクト 4 3を用いて、 それぞ れのオペレーティングシステムで共通に利用することが可能となる。 ま た O S判別フラグレジスタ 3 2を参照することにより、 それぞれのプロ セッサに固有の処理を行うことが可能となる。  With the above configuration, the common driver object 43 can be used in common by each operating system. Also, by referring to the OS determination flag register 32, it becomes possible to perform processing unique to each processor.
ここで本発明によると、 オペレーティングシステム間である入出力装 置を共有して使用する際に、 ドライバを共有することも可能である。 一 般にデバイスの初期化処理は単一のオペレーティングシステムより行う ことが望ましい。 そこで当該入出力装置を構成制御するために、 ドライ パがどちらのオペレーティングシステムで実行されているかを判定し、 一方のオペレーティングシステムのみ構成制御するよう処理すればよい。 本発明による第 3の実施例を、 第 1 4図を用いて説明する。  Here, according to the present invention, it is possible to share a driver when sharing an input / output device between operating systems. In general, it is desirable to initialize the device from a single operating system. Therefore, in order to control the configuration of the input / output device, it is only necessary to determine which operating system the driver is running on, and perform processing to control the configuration of only one of the operating systems. A third embodiment according to the present invention will be described with reference to FIG.
第 1 4図は、 複数のオペレーティングシステムにおいて、 入出力装置 の制御担当を変更するための構成を示す。 機能分散のマルチプロセッサ を構成する計算機システムにおいて、 システムの最適化をするために、 それぞれのプロセッサ間で入出力装置の制御権を変更する場合がある。 その際、 従来ではオペレーティングシステムの再構築が必要であった。 本発明では、 入出力装置の制御権を簡便に変更するための構成について 説明する。  FIG. 14 shows a configuration for changing control of an input / output device in a plurality of operating systems. In a computer system that constitutes a multiprocessor with function distribution, control rights of input / output devices may be changed between processors in order to optimize the system. At that time, it was necessary to rebuild the operating system. In the present invention, a configuration for easily changing the control right of the input / output device will be described.
本発明にて新たに加えた要素は、 D Bバッファ 2 6 0 , プロセッサ間 で同期を取るためのプロセッサ間通信機能 2 6 1, プロセッサ A通信割 込 2 6 2 , プロセッサ B通信割込 2 6 3である。 D Bバッファ 2 6 0は、 オペレーティングシステム 1 0 1とオペレーティングシステム 1 2 1の 間でデータを受け渡しするためのものであり、 それぞれのオペレーティ ングシステムより読み書き可能なメモリに存在し、 本発明ではメモリ 1 4 0に存在する。 The elements newly added in the present invention are a DB buffer 260, an interprocessor communication function 261 for synchronizing between processors, a processor A communication interrupt 262, and a processor B communication interrupt 2663. It is. The DB buffer 260 is used to transfer data between the operating system 101 and the operating system 121, and exists in a memory readable and writable by each operating system. Present at 140.
第 1 5図にプロセッサ間通信の構成を示す。 プロセッサ間で同期をと るためには、 一方より他方のプロセッサになんらかの通知を送信し、 も う一方より通知を受信したことを送信元に返答する機能が必要である。 第 1 5図 (a ) にプロセッサ間通信機能 2 6 1の 1実装例を示す。 こ こではプロセッサの持つポート出力と割込を用いる方法を示す。 すなわ ち、 通知を発行したいプロセッサは、 自身が備えるポート出力を駆動す る。 発行側のポート出力は、 もう一方のプロセッサの割込に接続されて いる。 ここではプロセッサ Aポート出力 2 8 0をプロセッサ B割込み入 力 2 8 3に接続し、 プロセッサ Bポート出力 2 8 2をプロセッサ A割込 み入力 2 8 1に接続する。 例えばプロセッサ A 1 0からプロセッサ B 20 にィベントを通知する場合には、 プロセッサ A 1 0がプロセッサ Aポ一 ト出力 2 8 0を駆動し、 プロセッサ B割込み入力 2 8 3に通知する。 プ 口セッサ Bは通知を認識すると、 直ちにプロセッサ Bポート出力 2 8 2 を駆動し、 プロセッサ A割込み入力 2 8 1に通知してプロセッサ A 1 0 からの通知を認識したことを通知する。  Figure 15 shows the configuration of interprocessor communication. In order to synchronize between processors, it is necessary to have a function to send some notification from one processor to the other processor and reply to the sender that the notification has been received from the other processor. Figure 15 (a) shows one implementation example of the interprocessor communication function 2661. This section describes how to use the port output and interrupt of the processor. That is, the processor that wants to issue the notification drives its own port output. The issuing port output is connected to the other processor interrupt. Here, processor A port output 280 is connected to processor B interrupt input 283, and processor B port output 282 is connected to processor A interrupt input 281. For example, when the processor A10 notifies the processor B20 of the event, the processor A10 drives the processor A port output 280 and notifies the processor B interrupt input 283. When processor B recognizes the notification, it immediately drives processor B port output 282 and notifies processor A interrupt input 281 to notify that processor A 10 has recognized the notification.
第 1 5図 (b ) にプロセッサ間通信機能 2 6 1の他の実装例を示す。 第 1 5図 (a ) の構成ではプロセッサ間通信の要因までを通知すること ができない。 本実装例は、 プロセッサ通信の要因を示すレジスタを設け たことを特徴とする。 プロセッサ間通信機能 2 6 1は、 Aバスインタ一 フエ一ス 2 8 6, プロセッサ A割込マルチプレクサ 2 8 7 , プロセッサ A割込要因 2 9 2, Bバスインターフェース 2 8 8, プロセッサ B割込 マルチプレクサ 2 8 9, プロセッサ B割込設定 2 9 1, プロセッサ B割 込要因 2 9 3から成る。 Aバスィンターフェース 2 8 6と Bパスィン夕 —フェース 2 8 8は、 それぞれのプロセッサパスからプロセッサ間通信 機能 2 6 1内部のレジス夕等にアクセスするためのインタ一フェースで ある。 プロセッサ A割込マルチプレクサ 2 8 7とプロセッサ B割込マル チプレクサ 2 8 9は、 複数ある割り込み要因 (プロセッサ A割込設定 2 9 0またはプロセッサ B割込設定 2 9 1を含む) から、 それぞれの割 込み信号線に適した信号にエンコードして出力する。 ここで割込信号線 8 1と割込信号線 8 3は、 複数の要因を通知するために複数の信号線か ら構成すると良い。 プロセッサ A割込要因 2 9 2とプロセッサ B割込要 因 2 9 3は、 プロセッサ間通信で通知する割込みの要因を示す。 またこ こではこれらの機能を入出力制御装置 3 0に含めたが、 必ずしも入出力 制御装置 3 0である必要はなく、 個別プロセッサ間通信用ハードウエア として別に実装しても良い。 FIG. 15 (b) shows another implementation example of the inter-processor communication function 261. In the configuration of Fig. 15 (a), it is not possible to notify the cause of inter-processor communication. This implementation example is characterized in that a register indicating the cause of processor communication is provided. The processor-to-processor communication function 26 1 consists of the A bus interface 2886, the processor A interrupt multiplexer 2887, the processor A interrupt factor 2992, the B bus interface 2888, and the processor B interrupt multiplexer 2 89, processor B interrupt setting 291, processor B interrupt factor 2 93. A bus interface 286 and B path interface — phase 288 communicates from each processor path Function 26 1 This is an interface for accessing the internal registry. The processor A interrupt multiplexer 287 and the processor B interrupt multiplexer 289 are configured to determine whether each interrupt source (including the processor A interrupt setting 290 or the processor B interrupt setting 291) has multiple interrupts. The signal is encoded into a signal suitable for the embedded signal line and output. Here, the interrupt signal line 81 and the interrupt signal line 83 may be composed of a plurality of signal lines to notify a plurality of factors. The processor A interrupt factor 292 and the processor B interrupt factor 293 indicate the interrupt factor notified by inter-processor communication. In addition, although these functions are included in the input / output control device 30 here, the input / output control device 30 is not necessarily required, and may be separately implemented as hardware for communication between individual processors.
以下に、 プロセッサ A 1 0からプロセッサ B 2 0にイベントを通知す る例について説明する。 プロセッサ A 1 0は、 まず初めにプロセッサ B 2 0に通知する要因を、 プロセッサ B割込要因 2 9 3に設定する。 引 き続きプロセッサ A 1 0は、 プロセッサ B割込設定 2 9 1に所定のコー ドを書き入れる。 するとプロセッサ B割込マルチプレクサ 2 8 9で割込 みがエンコードされ、 プロセッサ B 2 0に割込みとして通知される。 割 込みを受けたプロセッサ B 2 0は、 割込みの要因を調べるためにプロセ ッサ B割込設定 2 9 1 , プロセッサ B割込要因 2 9 3の順に検査し、 プ 口セッサ A 1 0からの割り込みであることと、 割込みの要因がなんであ るかを知る。 その後割込みをクリアするために、 プロセッサ B割込設定 2 9 1をクリアし、 プロセッサ間通信を終了する。 必要が有ればプロセ ッサ B 2 0は、 プロセッサ間通信機能 2 6 1を用いてプロセッサ A 1 0 に通知しても良い。  An example in which an event is notified from the processor A 10 to the processor B 20 will be described below. First, the processor A10 sets the factor to be notified to the processor B20 as the processor B interrupt factor 293. Subsequently, the processor A 10 writes a predetermined code into the processor B interrupt setting 2 91. Then, the interrupt is encoded by the processor B interrupt multiplexer 289 and notified to the processor B 20 as an interrupt. Upon receiving the interrupt, the processor B 20 checks the processor B interrupt setting 291 1 and the processor B interrupt cause 2 93 in order to determine the cause of the interrupt. Know what the interrupt is and what the interrupt was. After that, to clear the interrupt, clear the processor B interrupt setting 291, and end the interprocessor communication. If necessary, the processor B 20 may notify the processor A 10 using the inter-processor communication function 26 1.
再び第 1 4図について、 例としてオペレーティングシステム 1 0 1で 処理を行っていた入出力装置の制御権をオペレーティングシステム 121 に渡す場合について説明する。 入出力装置の制御権は操作者の指示によ り変更される。 入出力装置の制御権を変更するためには、 以下の作業が 必要である。 なお構成制御情報とはオペレーティングシステムが入出力 装置を初期化する際に必要な情報のことであり、 具体的にはメモリ、 割 込等のハードウエア資源の割り当て情報を意味する。 Referring again to FIG. 14, with the operating system 101 as an example A case will be described in which the control right of the input / output device performing the processing is transferred to the operating system 121. The control right of the input / output device is changed by the instruction of the operator. The following tasks are required to change the I / O device control right. The configuration control information is information required when the operating system initializes the input / output device, and specifically means information for allocating hardware resources such as a memory and an interrupt.
(ィ) オペレーティングシステム間で入出力装置に対応するデバイスド ライバを移動する。  (B) Move device drivers corresponding to input / output devices between operating systems.
(口) 入出力装置に対応する構成制御情報をオペレーティングシステム 間で移動する。  (Mouth) Moves configuration control information corresponding to input / output devices between operating systems.
(八) オペレーティングシステム間で認識する入出力装置の構成を変更 する。  (8) Change the configuration of input / output devices recognized between operating systems.
ここで上記 (ィ) の対応策として、 それぞれのオペレーティングシス テムに予め組み込んでおいたり、 実際にデバイスドライバのオブジェク トをそれぞれのォペレ一ティングシステムが認識する不揮発性記憶装置 間で移動しても、 さらには本発明の第 2の実施例で示した共通ドライバ オブジェクトを使用しても良い。  Here, as a countermeasure of the above (a), even if the object of the device driver is actually moved between the non-volatile storage devices recognized by the respective operating systems, it may be incorporated in each operating system in advance. Further, the common driver object shown in the second embodiment of the present invention may be used.
上記 (口) に関して、 それぞれのオペレーティングシステムは構成制 御情報である入出力装置データベース 1 1 0 , 1 3 0を変更する必要が ある。 以下に構成制御情報を変更する手順を説明する。 オペレーティン グシステム 1 0 1は入出力装置データベースより、 当該入出力装置に関 するデ一夕ベースのェントリを抽出し D Bバッファ 2 6 0に書き出す。 オペレーティングシステム 1 0 1は、' D Bバッファ 2 6 0にデータべ一 スェン卜リを書き出したことをオペレーティングシステム 1 2 1にプロ セッサ間通信機能 2 6 1を介して通知する。 通知を受けたオペレーティ ングシステム 1 2 1は、 D Bバッファ 2 6 0を参照し、 自ォペレ一ティ ングシステムが管理する入出力装置データベース 1 3 0を更新する。 更 新した後、 オペレーティングシステム 1 2 1は、 オペレーティングシス テム 1 0 1にプロセッサ間通信機能 2 6 1により、 更新が終了した旨を 通知する。 更新終了通知を受けたオペレーティングシステム 1 0 1は、 自オペレーティングシステムが管理する入出力装置デ一夕ベース 1 1 0 から当該入出力装置に関するェントリを削除する。 Regarding the above (Mouth), it is necessary for each operating system to change the input / output device databases 110 and 130 which are the configuration control information. The procedure for changing the configuration control information will be described below. The operating system 101 extracts an entry for the input / output device from the input / output device database based on the data in the input / output device and writes it to the DB buffer 260. The operating system 101 notifies the operating system 121 that the database entry has been written to the DB buffer 260 via the inter-processor communication function 261. The notified operator The operating system 12 21 refers to the DB buffer 260 and updates the input / output device database 130 managed by its own operating system. After the update, the operating system 121 notifies the operating system 101 of the end of the update by the inter-processor communication function 261. The operating system 101 that has received the update completion notification deletes the entry relating to the input / output device from the input / output device database 110 managed by the operating system.
もしもオペレーティングシステム 1 2 1が何らかの理由により正常に ェントリを更新できない場合には、 ォペレ一ティングシステム 1 0 1は、 異常終了した旨をオペレーティングシステム 1 2 1より通知されるか、 または通知が一定時間内に終了しないことを自ら検出して、 当該入出力 装置のェントリを削除しない。 なお通知が一定時間内に終了しないこと を検出するには、 プロセッサあるいはプロセッサ外部の入出力装置に実 装されるタイマ機能を用いると良い。  If the operating system 121 cannot update the entry normally for any reason, the operating system 101 will be notified by the operating system 122 that the operation has terminated abnormally, or will be notified for a certain period of time. It does not delete the entry of the I / O device by itself detecting that it does not end within. To detect that the notification does not end within a certain period of time, it is advisable to use a timer function mounted on the processor or an input / output device outside the processor.
ここでオペレーティングシステム 1 0 1における入出力装置デ一夕べ —スのエントリの内容に関して、 オペレーティングシステム 1 2 1の構 成と異なる場合がある。 例えば入出力装置の出力する割込のレベルがォ ペレ一ティングシステム間で異なることがある。 そのような場合、 オペ レーティングシステム 1 2 1は入出力装置データべ一ス 1 3 0を更新す る際、 該当するデータベースエントリの内容を変更する。 変更の際には、 ユーザの介入による値変更の指示や、 予め保持する入出力装置の初期設 定情報等を元にオペレ一ティングシステム 1 2 1は変更する。  Here, the contents of the entry of the input / output device database in the operating system 101 may differ from the configuration of the operating system 121. For example, the level of an interrupt output from an input / output device may differ between operating systems. In such a case, when the operating system 122 updates the I / O device database 130, it changes the contents of the corresponding database entry. At the time of the change, the operating system 122 changes based on an instruction to change the value by the intervention of the user, the initial setting information of the input / output device held in advance, and the like.
万が一オペレーティングシステム' 1 2 1が入出力装置データベース 1 3 0を更新した後に、 何らかの理由により変更終了を通知できなかつ た場合には、 両方のオペレーティングシステムが管理する入出力装置デ 一夕ベース中に同一入出力装置に関するェントリが存在することになる。 最悪の場合でも、 構成定義テーブル 1 4 1の参照により、 一方のェント リは意味の無いェントリ (存在しないはずの入出力装置に対するァクセ ス) として無視されるが、 信頼性の面で不必要なエントリを残すのは問 題がある。 そこで確実に入出力データベースを更新するために、 既存の データベース更新技術、 例えば 2フェーズ, コミツト方式を採用すると よい。 In the unlikely event that the operating system '12 1 updates the I / O device database 130 and fails to notify the end of the change for some reason, the I / O device data managed by both operating systems There will be entries for the same input / output device during the overnight base. In the worst case, one entry is ignored as a meaningless entry (access to an I / O device that should not exist) by referring to the configuration definition table 141, but it is unnecessary for reliability. Leaving an entry is problematic. Therefore, to ensure that the input / output database is updated, it is advisable to use existing database update technology, for example, a two-phase commit method.
2フェーズ · コミッ ト方式とは、 まず更新に関連するデータベースを 管理するサ一バに対してトランザクションを完了 (コミッ ト) 可能な状 態に有るかどうか問い合わせ (フェーズ 1 ) 、 いずれもレディ状態に有 ることを確認すると、 全てのデータベースサーバに対してコミットする よう通知する (フェーズ 2 ) 。 ここでは入出力装置データべ一ス 1 1 0, In the two-phase commit method, first, the server that manages the database related to the update is inquired about whether the transaction can be completed (committed) or not (phase 1). If so, it notifies all database servers to commit (phase 2). Here, the I / O device database 1 110,
1 3 0それぞれにデータベースサーバを設けて、 入出力装置移動元にあ るォペレ一ティングシステムがそれぞれのデータベースサーバにェント リの削除と追加を通知する。 最終的にいずれも問題ない場合には、 入出 力装置移動元にあるオペレ一ティングシステムがコミットをそれぞれの データべ—スサーバに通知して、 実際のデータベースに反映するよう指 示することにより、 両方のデータベースが一気に更新される。 この際、 それぞれのデータベースサーバでは記録を取りながら処理を進めるため、 万が一途中で不測の事態におちいっても復旧することが可能である。 A database server is provided for each of the 130, and the operating system at the source of the I / O device notifies each database server of the entry deletion and addition. Finally, if neither of these is a problem, the operating system at the source of the I / O device notifies the respective database server of the commit and instructs it to reflect it in the actual database. Database is updated at once. At this time, since each database server proceeds while processing the records, it is possible to recover even if an unexpected situation falls in the middle.
以上により、 安全に入出力ェン卜リを移動することが可能となる。  As described above, the input / output entry can be safely moved.
上記 (八) に関し、 オペレーティングシステム間で認識する入出力装 置の構成を変更するためには、 構成定義テーブル 1 4 1の変更が必要で ある。 構成定義テーブル 1 4 1を変更するには、 第 4図の説明に述べた 通り、 オペレーティングシステムからの参照が無い状態でテーブルの内 容を変更する必要がある。 変更する手順は次の通りとなる。 入出力装置 の制御を手放すオペレーティングシステム (ここでの例はオペレーティ ングシステム 1 0 1 ) は、 上記 (口) の処理が正常に終了した時点で、 構成定義テーブル 1 4 1を別のメモリ領域にコピーし、 構成定義テープ ルの当該入出力装置の O Sェントリ, 1 4 3を " 1 " (オペレーティング システム 1 0 1を示す) から " 2 " (オペレーティングシステム 1 2 1 を示す) に変更する。 オペレーティングシステム 1 0 1は、 変更した構 成定義テーブルを不揮発性記憶装置 4 2の構成定義テーブル保存領域 4 4に書き込む。 その後計算機システムを再立ち上げすると、 計算機立 ち上げ処理プログラムが構成定義テーブル保存領域 4 4よりメモリ 140 に構成定義テーブル 1 4 1を復元する。 Regarding (8) above, it is necessary to change the configuration definition table 141 in order to change the configuration of the input / output devices recognized between operating systems. To change the configuration definition table 14 1, as described in the description of FIG. It is necessary to change the contents. The procedure for changing is as follows. The operating system that releases control of the input / output device (the operating system 101 in this example) stores the configuration definition table 141 in another memory area when the above (mouth) processing is completed normally. Copy and change the OS entry of the I / O device in the configuration table from "1" (indicating operating system 101) to "2" (indicating operating system 121). The operating system 101 writes the changed configuration definition table into the configuration table storage area 44 of the nonvolatile storage device 42. Thereafter, when the computer system is restarted, the computer start-up processing program restores the configuration definition table 14 1 to the memory 140 from the configuration table storage area 44.
以上のような構成と方法をとることにより、 ォペレ一ティングシステ ム間で入出力装置の制御権を移し替えることが可能となる。  With the above configuration and method, it is possible to transfer the control right of the input / output device between the operating systems.
本発明による第 4の実施例を、 第 1 6図を用いて説明する。  A fourth embodiment according to the present invention will be described with reference to FIG.
第 1 6図は、 入出力装置を複数のオペレーティングシステムにて共有 するための構成を示し、 特に入出力装置として通信装置 7 1を共有する ための構成を示す。 第 1図, 第 1 2図, 第 1 4図と同一番号の要素に付 いては、 本発明のこれまでの実施例で説明したものと同一である。 第 1 6図にて新たに加わった構成要素として、 メモリ 1 0 0における通信共 用ドライバ 1 0 5— Aと、 代理サーバ 1 0 5— P , メモリ 1 2 0におけ る通信共用ドライバ 1 2 5— B , 通信バッファ 2 6 4がある。 以下に通 信装置 7 1を二つのオペレーティングシステム 1 0 1 , 1 2 1が共有し て利用する方法を説明する。  FIG. 16 shows a configuration for sharing an input / output device with a plurality of operating systems, and particularly shows a configuration for sharing a communication device 71 as an input / output device. Elements denoted by the same reference numerals as in FIGS. 1, 12, and 14 are the same as those described in the previous embodiments of the present invention. The newly added components in Fig. 16 are the shared communication driver 105-A in the memory 100, the shared server driver 105 in the proxy server 105-P, and the memory 120. 5—B, communication buffer 2 6 4 Hereinafter, a method of sharing the communication device 71 with two operating systems 101 and 121 will be described.
通信装置 7 1は、 通信路を介して他の計算機装置ゃネットワーク装置 と接続している。 通信装置 7 1が接続する通信路として有線または無線 の伝送媒体が有る。 またこれらの媒体上ではプロトコルと呼ばれる通信 規約に基づき、 通信装置間でデータの交換が行われる。 現在インターネ ットで主に使用されるプロトコルとして、 TC PZ I P (Transmission Control Protocol/Internet Protocol)や U D P / I P (User Datagram Protocol/Internet Protocol)が挙げられる。 TCPや UDPも、 I Pも O S I (Open Systems Iniercoimecnon)参照プロトコルで定められる階 層モデルにおいて、 それぞれトランスポート層とネットワーク層に対応 するプロトコルである。 I Pとは、 他の通信ノードとの接続を実行する ァドレスの割り振りや通信ノードに至るまでのルーティングを規定する プロトコルである。 また TCPとは、 各種通信サービス (TELNET や F T P (File Transfer Protocol) , HT T P (Hyper Text Transfer Protocol)等) の信頼性を支えるもので、 コネクション管理, チェックサ ム, 応答確認等を規定するプロトコルである。 UD Pも TC P同様通信 サービスの信頼性を支えるプロトコルである。 TC Pが通信装置間でコ ネクションを張るのに対し、 UD Pはコネクションレス型通信であり、 TC Pより簡略化されている。 本実施例では、 通信装置 7 1が TC PZ I Pにて通信する例を元に説明する。 The communication device 71 is connected to another computer device ゃ network device via a communication path. Communication device 71 Wired or wireless communication path to connect Transmission media. On these media, data is exchanged between communication devices based on communication protocols called protocols. Currently, protocols mainly used on the Internet include TCP / IP (Transmission Control Protocol / Internet Protocol) and UDP / IP (User Datagram Protocol / Internet Protocol). Both TCP, UDP, and IP are protocols corresponding to the transport layer and the network layer, respectively, in the hierarchical model defined by the OSI (Open Systems Iniercoimecnon) reference protocol. IP is a protocol that specifies the assignment of addresses for connecting to other communication nodes and the routing up to the communication nodes. TCP supports the reliability of various communication services (TELNET, File Transfer Protocol (FTP), Hyper Text Transfer Protocol (HTTP), etc.), and is a protocol that specifies connection management, checksum, response confirmation, etc. It is. UDP, like TCP, is a protocol that supports the reliability of communication services. While TCP establishes a connection between communication devices, UDP is connectionless communication and is simpler than TCP. In the present embodiment, a description will be given based on an example in which the communication device 71 performs communication using TC PZ IP.
第 1 7図に TC Pにて定められるデ一タパケッ卜のフォーマツトを示 す。 TC Pのパケットは、 送信元ポート番号 5 0 0, 送信先ポート番号 5 0 1 , その他の TC Pヘッダ 5 0 2, デ一夕 5 0 3から成る。 ここで は TCPヘッダの詳細な説明は省くが、 その他の TC Pヘッダ 502は、 送信用シーケンス番号, 応答確認番号, ヘッダ長, コードビッ ト, ウイ ンドウ, チェックサム, 緊急ポインタから構成される。 一般に、 TC P より上位のネットワークアプリケーションは、 ポート番号を元に、 デー 夕送受信の宛先アプリケ一ションを指定する。 例えば 『良く知られたポ —ト番号』 として、 TEL NETアプリケーションならば 2 3, FTP アプリケ一ションならば 2 0と 2 1等がある。 Fig. 17 shows the format of the data packet defined by the TCP. The TCP packet is composed of a source port number 500, a destination port number 501, other TCP headers 502, and a data header 503. Although the TCP header is not described in detail here, the other TCP header 502 is composed of a transmission sequence number, a response confirmation number, a header length, a code bit, a window, a checksum, and an emergency pointer. Generally, network applications higher than TCP specify the destination application for data transmission and reception based on the port number. For example, the well-known —Port numbers ”include 23 for TEL NET applications and 20 and 21 for FTP applications.
以下では、 第 1 6図について複数のオペレーティングシステム間で通 信装置を共用する方法について説明する。 なお本実施例では割込振分機 能 3 1について、 通信装置 7 1から上げられる割込はォペレ一ティング システム 1 0 1にあがるよう予め設定する。  Hereinafter, a method of sharing a communication device between a plurality of operating systems will be described with reference to FIG. In the present embodiment, the interrupt distribution function 31 is set in advance so that the interrupt raised from the communication device 71 goes to the operating system 101.
通信装置 7 1を共用するに当たり、 通信装置 7 1からドライバが受け るデータの種別として、 一般に次の 3種がある。  In sharing the communication device 71, the following three types of data are generally received by the driver from the communication device 71.
(a) データ受信  (a) Data reception
(b) 受信データのステータス報告  (b) Status report of received data
(c) 送信データのステータス報告  (c) Status report of transmission data
またドライバから通信装置 7 1に渡すデータとして次の 1種がある。  Also, there is one of the following types of data passed from the driver to the communication device 71.
(d) データ送信  (d) Data transmission
以下では、 通信装置 7 1とこれらデータを授受する方法について説明 する。  Hereinafter, a method of exchanging these data with the communication device 71 will be described.
まず受信処理に関して以下に説明する。 通信装置 7 1は、 通信路より データを受信すると受信デ一夕と受信ステータスをメモリ上に転送し、 データ受信した旨を割込にてォペレ一ティングシステム 1 0 1に通知す る。 割込を受けたオペレーティングシステム 1 0 1は割込みの要因が通 信装置 7 1に有ることを検出し、 受信したデータの処理を通信共用ドラ ィバ 1 0 5— Aに依頼する。 通信共用ドライノ 1 0 5— Aは、 受信した データバケツトの TC Pヘッダ中の送信先ポート番号 5 0 1を解析する ( そして通信共用ドライバ 1 0 5— Aは、 受信したデータの送信先ポート 番号 5 0 1に対応した上位アプリケ一ションに通知する。 ここで受信し たデ一夕の宛先が代理サーバ 1 0 5— Pであった場合、 データを受け取 つた代理サーバ 1 0 5— Pは通信バッファ 2 6 4に受信データを格納し、 プロセッサ間通信 2 6 1を用いて、 オペレーティングシステム 1 2 1に データ受信した旨を通知する。'割込を受信したォペレ一ティングシステ ム 1 2 1は割込要因がデータ受信であることを検出すると、 通信共用ド ライバ 1 2 5 _ Bに代理サーバ 1 0 .5— Pからのデータの処理を依頼す る。 通信共用ドライバ 1 2 5— Bは、 必要に応じて上位のアプリケーシ ョンに通知し処理を完了する。 また通信共用ドライバ 1 0 5 一 Aが受信 したデータの宛先が、 他の上位アプリケーション (例えば T E L N E T 等) であった場合は、 通信共用ドライバ 1 0 5— Aは対応する上位アブ リケーシヨンにデ一夕を通知し処理を完了する。 First, the receiving process will be described below. When receiving the data from the communication path, the communication device 71 transfers the received data and the reception status to the memory, and notifies the operating system 101 of the reception of the data by interruption. Upon receiving the interrupt, the operating system 101 detects that the cause of the interrupt is in the communication device 71, and requests the shared communication driver 105-A to process the received data. The communication shared dry line 105-A analyzes the destination port number 501 in the TCP header of the received data bucket ( and the communication shared driver 105-A determines the destination port of the received data). Notify the upper application corresponding to the number 501. If the destination of the received data is the proxy server 105-P, the data is received. The proxy server 105-P stores the received data in the communication buffer 264, and notifies the operating system 121 of the fact that the data has been received using the inter-processor communication 261. 'When the operating system 12 1 receiving the interrupt detects that the interrupt factor is data reception, the communication shared driver 125 _B transmits the data from the proxy server 10.5-P to the communication shared driver 125_B. Request processing. Communication driver 1 2 5 — B notifies upper-level application as necessary and completes the process. If the destination of the data received by the communication driver 105A is another higher-level application (for example, TELNET), the communication driver 105-A sends the data to the corresponding upper-level application. And the process is completed.
次に送信処理に関して以下に説明する。 送信すべきデータを通信共用 ドライバ 1 0 5— Aが上位のアプリケーシヨンより受け取ると、 通信共 用ドライバ 1 0 5— Aは、 受け取ったデ一夕を元に送信データと送信ス テータス (送信に関する情報が設定されている) をメモリ上に準備する。 送信を開始する方法として、 通信共用ドライバ 1 0 5— Aが通信装置 7 1に何らかの方法 (通信装置 7 1のレジスタ経由) にて送信準備が出 来た旨を通知するか、 あるいは通信装置 7 1が一定周期で送信ステ一夕 スを検査し送信デ一夕の準備が出来たことを自分で判定する、 という方 法がある。 いずれの場合でも、 通信装置 7 1は送信データと送信ステー タスを元にデータを通信路に送信し、 送信の成否や通信路の状態等を送 信ステータスとして通信共用ドライバ 1 0 5— Aに応答し、 処理を完了 する。 一方オペレーティングシステム 1 2 1において、 上位アプリケー ションが送信すべきデ一夕を通信共用ドライバ 1 2 5 一 Bに渡すと、 通 信共用ドライノ 1 2 5—Bは次の処理を行う。 通信共用ドライバ 1 2 5 一 Bは上位アプリケーションより受けたデ一夕をそのまま通信パッファ 2 6 4に格納して、 プロセッサ間通信機能 2 6 1で代理サーバ 1 0 5— Pに通知する。 代理サーバ 1 0 5 _ Pは通信共用ドライバ 1 0 5— Aに 通信バッファ 2 6 4のデ一夕を渡し処理を完了する。 Next, the transmission process will be described below. When the communication sharing driver 105-A receives the data to be transmitted from the upper-level application, the communication sharing driver 105-A transmits the transmission data and transmission status (transmission-related) based on the received data. Prepared in memory). As a method of starting transmission, the communication shared driver 105-A notifies the communication device 71 of the fact that transmission preparation has been made in some way (via the register of the communication device 71), or the communication device 7 There is a method in which 1 checks the transmission status at regular intervals and determines that it is ready for transmission. In either case, the communication device 71 transmits the data to the communication path based on the transmission data and the transmission status, and transmits the success or failure of the transmission and the state of the communication channel as the transmission status to the communication common driver 105-A. Respond and complete the process. On the other hand, in the operating system 122, when the host application passes the data to be transmitted to the communication shared driver 1255-1B, the communication shared dryino 125-B performs the following processing. The communication shared driver 1 2 5 1 B uses the communication buffer as it is Stored in 264, and notified to the proxy server 105-P by the inter-processor communication function 261. The proxy server 105_P passes the data of the communication buffer 264 to the communication shared driver 105-A and completes the process.
ここで通信装置 7 1からの受信デ一夕と受信ステータスの転送先、 あ るいは通信装置 7 1への送信データと送信ステータスの格納先として、 メモリ 1 0 0でもメモリ 1 4 0でも可能だが、 他方のオペレーティング システム 1 2 1との間でデータの授受を考えると、 双方のォペレ一ティ ングシステムよりアクセス可能なメモリ 1 4 0に置くことが好適である。 本発明では、 例えば T C P Z I Pに接続する通信装置 7 1を用いる場 合、 送信先ポ一ト番号 5 0 1により受信したデータバケツトの行き先ォ ペレ一ティングシステムを決定することを特徴とする。 またさらにポ一 ト番号までを同一とし、 さらにその上位のアプリケーションにて規定さ れる送信先番号等を規定し、 それらを元に受信したデ一タパケットの行 き先ォペレ一ティングシステムを決定することを特徴とする。  Here, as the destination of the reception data and the reception status from the communication device 71, or the storage destination of the transmission data and the transmission status to the communication device 71, either the memory 100 or the memory 140 can be used. Considering the exchange of data with the other operating system 121, it is preferable to place it in the memory 140 accessible from both operating systems. In the present invention, for example, when a communication device 71 connected to TCPZIP is used, a destination operating system of a data bucket received by a destination port number 501 is determined. In addition, the port numbers must be the same, and the destination numbers specified by the higher-level application must be specified, and the destination operating system of the received data packet should be determined based on them. It is characterized by.
なお本発明は通信装置を例に説明を行ったが、 同様の手法により他の 入出力装置の共有を実現することが可能である。 すなわち各種デバイス ドライバの上位アプリケ——ンョンとして代理サーバ 1 0 5 _ Pに相当す るアプリケーションを実装し、 その代理サーバとメモリ 1 4 0を経由し てもう一方のオペレーティングシステムより入出力装置を制御するもの である。  Although the present invention has been described using a communication device as an example, sharing of other input / output devices can be realized by a similar method. In other words, an application corresponding to the proxy server 105_P is implemented as an upper application of various device drivers, and the input / output device is controlled by the other operating system via the proxy server and the memory 140. Is what you do.
通信装置を共有することにより当該計算機システムを利用するユーザ は、 通信に必要なハードウェア資源 (ケーブルやネットワークアドレス 等) を削減できる上に、 設定作業は半減し、 効率よく通信することが容 易となる通信費も削減できる。  By sharing the communication device, the user of the computer system can reduce the hardware resources (such as cables and network addresses) required for communication, halve the setting work, and easily communicate efficiently. Communication costs can be reduced.
本発明による第 5の実施例を第 1 8図を用いて説明する。 第 1 8図は、 複数のオペレーティングシステムが物理的に別の装置に 分離している場合に入出力装置を共有するための構成例を示し、 特に入 出力装置として通信装置 7 1を共有するための構成を示す。 第 1図, 第 1 2図, 第 1 4図, 第 1 6図と同一番号の要素に付いては、 本発明のこ れまでの実施例で説明したものと同 である。 第 1 8図にて新たに加わ つた構成要素として、 連携通信装置 7 3— A , B , プロトコル変換機能 7 4 , 連携伝送路 7 6 , デバイス情報遠隔取得機能 1 2 7, デバイス情 報遠隔設定機能 1 2 8 ,遠隔装置リスト 1 2 9,連携通信ドライバ 4 0 0 , 4 2 0 , 遠隔計算機リスト 4 1 0がある。 オペレーティングシステム 1 0 1と 1 2 1はそれぞれ別の計算機装置 2と計算機装置 3に分離して いる。 A fifth embodiment according to the present invention will be described with reference to FIG. FIG. 18 shows an example of a configuration for sharing an input / output device when a plurality of operating systems are physically separated on different devices, particularly for sharing a communication device 71 as an input / output device. Is shown. Elements having the same numbers as in FIGS. 1, 12, 14 and 16 are the same as those described in the previous embodiments of the present invention. Newly added components in Fig. 18 are the cooperative communication device 73-A, B, protocol conversion function 74, cooperative transmission line 76, device information remote acquisition function 127, device information remote setting There are a function 128, a remote device list 122, a cooperative communication driver 400, 420, and a remote computer list 410. The operating systems 101 and 121 are separated into separate computer devices 2 and 3 respectively.
連携通信装置 7 3— A , Bは、 連携伝送路 7 6を介してお互いに接続 し、 また他の計算機装置とも接続する。 連携伝送路 7 6として有線また は無線の伝送媒体が有る。  The cooperative communication devices 73-A and B are connected to each other via a cooperative transmission line 76 and are also connected to other computer devices. There is a wired or wireless transmission medium as the cooperative transmission path 76.
プロトコル変換機能 7 4は、 連携通信装置 7 3— A, Bに実装しても よいが、 一般的には連携通信装置 7 3— A , Bのデバイスドライバとし てそれぞれ連携通信ドライバ 4 0 0, 4 2 0上に実装する。 プロトコル 変換機能 7 4の機能は次の通りである。 第 1の機能は、 デバイス情報遠 隔取得機能 1 2 7またはデバイス情報遠隔設定機能 1 2 8からの要求を 受け構成定義要求メッセージに変換する。 第 2の機能は、 構成定義要求 メッセージを連携伝送路 7 6から受けると、 デバイス情報取得機能 102 またはデバイス情報設定機能 1 0 3に要求を発行しメッセージ発行元に 応答を返す。 第 3の機能は、 通信共用ドライバ 1 0 5— A , 1 2 5 - B の間でデータを相互に交換する、 である。  The protocol conversion function 74 may be implemented in the cooperative communication devices 73-A and B. However, in general, as the device drivers of the cooperative communication devices 73-A and B, the cooperative communication drivers 400 and Implement on 420. The functions of the protocol conversion function 74 are as follows. The first function receives a request from the device information remote acquisition function 127 or the device information remote setting function 128 and converts it into a configuration request message. The second function is to receive a configuration request message from the link transmission line 76, issue a request to the device information acquisition function 102 or the device information setting function 103, and return a response to the message issuer. The third function is to exchange data between the communication shared drivers 105-A and 125-B.
なお計算機装置 2が認める以外の計算機装置が、 計算機装置 2に共有 関係を求めてくることは望ましくないので、 共有可能な入出力装置を有 する計算機装置 2は自身が認める計算機のリストを用意する必要がある, 本発明では遠隔計算機リスト 4 1 0をォペレ一ティングシステム 1 0 1 が管理する。 計算機装置 2は自身が有する入出力装置の共有を認める計 算機を本リス卜に記載し、 本リス卜に記載されない計算機からの要求を 拒絶する。 Computer devices other than those permitted by Computer device 2 are shared with Computer device 2. Since it is not desirable to obtain the relationship, the computer device 2 having a sharable input / output device needs to prepare a list of computers recognized by itself, and in the present invention, the remote computer list 4 10 is operated. System 1 0 1 manages. The computer device 2 describes in this list computers that permit sharing of its own input / output devices, and rejects requests from computers not described in this list.
複数のオペレーティングシステムで入出力装置を共有するためには、 次の 2点を解決する必要がある。  To share an I / O device among multiple operating systems, the following two points need to be resolved.
( i ) 双方のオペレーティングシステムで立ち上げ時に当該入出力装置 を共有することを認識する  (i) Recognize that both operating systems share the input / output device at startup
( π ) 運用中、 いずれのオペレーティングシステムに通知するデータで あるかを認識し、 配送する  (π) Recognize which operating system the data is in during operation and deliver
以下に例として通信装置 7 1を二つのォペレ一ティングシステム 101, 1 2 1すなわち計算機装置 2と計算機装置 3で共有して利用する方法を 説明する。 なおここでは入出力装置の共有について説明するが、 本発明 によればこれら計算機装置間で、 入出力装置を排他的に利用することは 実施例 1と同様の手順をとることにより可能である。  As an example, a method of using the communication device 71 shared by the two operating systems 101 and 121, that is, the computer device 2 and the computer device 3, will be described below. Although the sharing of the input / output device will be described here, according to the present invention, it is possible to exclusively use the input / output device between these computer devices by performing the same procedure as in the first embodiment.
計算機装置 3は立ち上がる際、 またはユーザからの指示の際に、 自計 算機装置が利用可能な入出力装置を認識する必要がある。 第 1 8図では 計算機装置 3において構成定義参照機能 1 2 4や構成定義テーブル 1 4 1を省略しているが、 必要が有れば実装し、 計算機装置 3内部の構成制 御を第 1の実施例と同様に行ってもよい。 本実施例では第 9図 (b ) で 示したような入出力装置リス卜 1 1 2を実装し、 計算機システムの構成 制御を行うものとする。  When the computer device 3 starts up or when instructed by a user, it needs to recognize an input / output device that can be used by the computer device. Although the configuration definition reference function 124 and the configuration definition table 141 are omitted in the computer 3 in FIG. 18, they are implemented if necessary, and the configuration control inside the computer 3 You may carry out similarly to an Example. In this embodiment, the input / output device list 112 shown in FIG. 9 (b) is mounted to control the configuration of the computer system.
第 1 9図に遠隔装置の認識に関する処理フローを示す。 第 2 0図に計算機装置 2における入出力装置確認処理の処理フローを 示す。 FIG. 19 shows a processing flow relating to recognition of a remote device. FIG. 20 shows a processing flow of the input / output device confirmation processing in the computer device 2.
オペレーティングシステム 1 2 1は、 立ち上げ時あるいはユーザから の指示が有った時点で、 入出力装置リスト 1 1 2に列挙される入出力装 置を構成制御するのと同様に、 遠隔装置リスト 1 2 9に列挙される入出 力装置を構成制御する。 以下では第 1 9図と第 2 0図に基づき説明を行 う。  The operating system 1 2 1 starts up or receives an instruction from the user, and operates the remote device list 1 1 2 as well as controls the configuration of the I / O devices listed in the 1 2 29 Configure and control the I / O devices listed in 9. Hereinafter, the description will be made based on FIGS. 19 and 20.
オペレーティングシステム 1 2 1は、 遠隔装置リスト 1 2 9に記述さ れる入出力装置の情報を取得するために、 必要な情報と共にデバイス情 報遠隔取得機能 1 2 7を呼び出す (処理 6 0 0 ) 。 デバイス情報遠隔取 得機能 1 2 7は、 デバイス情報取得要求を連携通信ドライバ 4 2 0を介 して、 連携通信機能 7 3— Bに渡す (処理 6 1 0 ) 。 連携通信ドライバ 4 2 0では、 プロトコル変換機能 7 4を用いて要求を構成定義要求メッ セージに変換し (処理 6 2 0 ) 、 連携伝送路 7 6を介して連携通信装置 7 3— Aに通知する (処理 6 2 1 ) 。  The operating system 122 calls the device information remote acquisition function 127 together with necessary information in order to acquire the information of the input / output device described in the remote device list 122 (process 600). The device information remote acquisition function 127 passes the device information acquisition request to the cooperation communication function 73-B via the cooperation communication driver 420 (processing 610). The cooperative communication driver 420 converts the request into a configuration request message using the protocol conversion function 74 (processing 62 0), and notifies the cooperative communication device 73 -A via the cooperative transmission line 76. Yes (processing 6 2 1).
通知を受けた連携通信装置 7 3— Aのデバイスドライバである連携通 信ドライバ 4 0 0は、 受信したデータより計算機装置 3からの構成定義 要求メッセージであることを認識し(処理 6 3 0 )、 遠隔計算機リスト 4 1 0に要求元である計算機装置 3が含まれるか確認する(処理 6 3 l もしも遠隔計算機リスト 4 1 0に計算機装置 3が含まれない場合、 連携 通信ドライバ 4 0 0は該当する入出力装置が無い旨を通知し、 処理を終 了する (処理 6 3 6 ) 。 もしも遠隔計算機リスト 4 1 0に計算機装置 3が含まれる場合、 連携通信ドライ'バ 4 0 0はデバイス情報取得機能 1 0 2に要求を発行し、 結果を得る (処理 6 3 2 ) 。 そこで O Sェント リが不一致であった場合、 連携通信ドライバ 4 0 0は処理 6 3 6を実行 し、 処理を終了する。 O Sエントリが一致した場合、 連携通信ドライバ 4 0 0は計算機装置 2と計算機装置 3の間で認証関係に有るとして、 入 出力装置へのアクセスを許可するキーコードを生成する (処理 6 3 4 ) 。 以降、 当該入出力装置へ計算機装置 3がアクセスをする場合、 本キーコ 一ドをアクセス要求メッセージに添付あるいはキ一コードを用いたメッ セ一ジの暗号化を行い、 計算機装置 2にアクセスする。 連携通信ドライ バ 4 0 0は本キーコードを保存し、 以降の計算機装置 3からのアクセス に対して認証を行う。 さて連携通信ドライバ 4 0 0は、 処理 6 3 3の応 答結果を生成し (処理 6 3 5 ) 、 要求元である連携通信機能 7 3— Bに 対してメッセージに変換して返送する (処理 6 3 7 ) 。 この時キーコ一 ドを合わせて送る。 The cooperative communication driver 400, which is the device driver of the cooperative communication device 73-A, which has received the notification, recognizes that it is a configuration request message from the computer device 3 based on the received data (process 630). Check whether the remote computer list 410 contains the requesting computer device 3 (process 6 3 l If the remote computer list 410 does not contain the computer device 3, the cooperative communication driver 400 Notifies that there is no corresponding input / output device, and terminates the process (process 6 36) If computer device 3 is included in remote computer list 4 10, cooperative communication driver 400 0 is a device A request is issued to the information acquisition function 102 and the result is obtained (process 632) .If the OS entries do not match, the cooperative communication driver 400 executes the process 636. And ends the processing. If the OS entries match, the cooperative communication driver 400 determines that there is an authentication relationship between the computer device 2 and the computer device 3, and generates a key code for permitting access to the input / output device (process 6 3 4) . Thereafter, when the computer device 3 accesses the input / output device, the key code is attached to the access request message, or the message is encrypted using a key code, and the computer device 2 is accessed. The cooperative communication driver 400 stores this key code and authenticates subsequent access from the computer device 3. Now, the cooperative communication driver 400 generates the response result of the process 633 (process 6335), converts it into a message to the requesting cooperative communication function 733-B, and sends it back (process 6 3 7). At this time, send the key code together.
応答を待っている連携通信機能 7 3— Bは (処理 6 2 2 ) 、 受信した 結果を元に、 認証されたかどうか判定し (処理 6 2 3 ) 、 もし認証され たならキ一コードを保存する (処理 6 2 4 ) 。 その後連携通信ドライバ 4 0 0は、 プロトコル変換機能 7 4によりメッセージをデバイス情報遠 隔取得機能 1 2 7に対する応答に変換し応答する (処理 6 2 5 ) 。  The cooperative communication function 7 3-B waiting for a response (process 6 2 2) determines whether or not it has been authenticated based on the received result (process 6 2 3), and if it is authenticated, stores the key code. Yes (processing 6 2 4). Thereafter, the cooperative communication driver 400 converts the message into a response to the device information remote acquisition function 127 by the protocol conversion function 74 and responds (processing 625).
デバイス情報遠隔取得機能 1 2 7は、 認証されたか判定する (処理 6 1 1 ) 。 認証された場合、 さらに入出力装置があるのか否か判定する (処 理 6 1 2 ) 。 もし当該入出力装置があれば 「入出力装置有り」 と応答を 返し (処理 6 1 3 ) 、 なければ 「入出力装置無し」 と要求元オペレーテ ィングシステムに応答を返す (処理 6 1 4 ) 。  The device information remote acquisition function 127 determines whether or not the authentication has been performed (processing 611). If the user is authenticated, it is determined whether or not there is an input / output device (processing 612). If the input / output device is present, a response “input / output device present” is returned (process 6 13), and if not, a response is returned to the requesting operating system as “no input / output device” (process 6 14).
その後オペレーティングシステム 1 2 1は、 遠隔装置認識の結果、 該 当する入出力装置が存在しているか判定する (処理 6 0 2 ) 。 さらに当 該入出力装置が計算機装置 3によって排他的に利用されるものであれば (処理 6 0 3 ) 、 当該入出力装置に対して、 構成制御を実行する (処理 6 0 4 ) 。 そして全ての遠隔装置リスト 1 2 9中の入出力装置の検査が 終わると、 オペレーティングシステム 1 2 1は処理を終了する (処理 6 0 5 ) 。 Thereafter, as a result of the remote device recognition, the operating system 122 determines whether or not the corresponding input / output device exists (process 602). Further, if the input / output device is exclusively used by the computer device 3 (process 63), configuration control is executed on the input / output device (process 6 4). Then, when the inspection of the input / output devices in all the remote device lists 12 9 is completed, the operating system 12 1 terminates the process (process 6 05).
ここで計算機装置 3は通信装置 7 1が利用 (計算機装置 2と共有) 可 能であるとする。 ここで例えば計算機装置 3が排他的に利用する入出力 装置が計算機装置 2にある場合には、 さらにデバイス情報遠隔設定機能 1 2 9を用いて構成制御を行えばよい。 この場合でも動作はデバイス情 報遠隔取得機能 1 2 8と同様である。  Here, it is assumed that the computer device 3 can be used by the communication device 71 (shared with the computer device 2). Here, for example, when the computer device 2 has an input / output device exclusively used by the computer device 3, the configuration control may be further performed using the device information remote setting function 129. In this case, the operation is the same as that of the device information remote acquisition function 128.
計算機装置 3から計算機装置 2における入出力装置を利用するために は、 直接当該入出力装置を制御するのは困難であるため、 代理のデバイ スドライバや代理のサーバを予め起動しておく必要がある。 起動する代 理デバイスドライバまたは代理サーバは、 計算機装置 3からの要求に応 じて動的に起動してもよいが、 性能的な観点から予めオペレーティング システムで当該ドライバやサーバを立ち上げておくのが良い。  Since it is difficult to directly control the input / output device in order to use the input / output device in the computer device 2 from the computer device 3, it is necessary to start a proxy device driver or a proxy server in advance. is there. The proxy device driver or proxy server to be started may be dynamically started in response to a request from the computer device 3.However, from the viewpoint of performance, the driver or server should be started in advance by the operating system. Is good.
以下に計算機装置 3から通信装置 7 1を利用する方法について説明す る。 まず通信装置 7 1からの受信データを計算機装置 3のアプリケ一シ ヨンに転送する場合を説明する。 通信装置 7 1がデータを受信した後、 通信共用ドライバ 1 0 5 _ Aが代理サーバ 1 0 5— Pに通知をする所ま では第 4の実施例と同様である。 デ一夕を受け取った代理サーバ 1 0 5 一 Pは、 連携通信ドライバ 4 0 0に受信したデータを渡す。 連携通信ド ライバ 4 0 0は渡されたデータを、 通信処理に必要な処理を施した後に 連携伝送路 7 6を介して連携通信装置 7 3— Bに送信する。 連携通信装 置 7 3— Bはデータの受信を割込にてオペレーティングシステム 1 2 1 に通知する。 オペレーティングシステム 1 2 1は割込要因を解析し、 連 携通信装置 7 3—Bからのデータ受信であると判定し、 連携通信ドライ バ 4 2 0に処理を依頼する。 連携通信ドライバは、 受信したデータより 最終的な宛先のアプリケーション (例えば H T T P ) を判定し、 データ を渡して処理を終了する。 The method of using the communication device 71 from the computer device 3 will be described below. First, a case in which data received from the communication device 71 is transferred to the application of the computer device 3 will be described. It is the same as the fourth embodiment up to the point where the communication shared driver 105_A notifies the proxy server 105-P after the communication device 71 receives the data. The proxy server 1105-P that has received the data transfer the received data to the cooperative communication driver 400. The cooperative communication driver 400 performs the processing required for the communication processing and transmits the passed data to the cooperative communication device 73 -B via the cooperative transmission path 76. Linked communication device 7 3-B notifies operating system 1 2 1 of the data reception by interruption. The operating system 12 21 analyzes the cause of the interrupt, determines that the data is received from the cooperative communication device 73-B, and determines Request processing to bus 420. The cooperative communication driver determines the final destination application (for example, HTTP) from the received data, passes the data, and ends the processing.
次に計算機装置 3から通信装置 7 1へデ一夕を送信する場合を説明す る。 送信すべきデータを連携通信ド,ライバ 4 2 0が上位のアプリケーシ ヨンより受け取ると、 連携通信ドライバ 4 2 0は受けたデータに必要な 通信処理を施した後に連携伝送路 7 6を介して連携通信装置 7 3— Aに 送信する。 連携通信装置 7 3— Aはデータを通信バッファ 2 6 4に格納 し、 データの受信を割込にてォペレ一ティングシステム 1 0 1に通知す る。 その後処理を渡された連携通信ドライバ 4 0 0はデ一夕の送信要求 であることを代理サーバ 1 0 5— Pに通知する。 代理サーバ 1 0 5— P は通信共用ドライバ 1 0 5— Aに通信バッファ 2 6 4のデータを渡し処 理を完了する。  Next, a case where the computer 3 transmits the data to the communication device 71 will be described. When the data to be transmitted is received from the higher-level application by the cooperative communication driver and driver 420, the cooperative communication driver 420 performs necessary communication processing on the received data and then cooperates via the cooperative transmission path 76. Communication device 7 3—Send to A. The cooperative communication device 73-A stores the data in the communication buffer 264 and notifies the operating system 101 of the data reception by interruption. Thereafter, the cooperative communication driver 400 to which the processing has been passed notifies the proxy server 105-P that the transmission request is an overnight transmission request. The proxy server 105-P passes the data of the communication buffer 264 to the communication common driver 105-A and completes the process.
本発明によれば、 計算機装置 3は共有する入出力装置 (本実施例では 通信装置 7 1 ) の立ち上げ時に必ずしも用意されていなくても良い。 そ のため計算機装置 3は、 計算機装置 2が立ち上がった後に動的に連携通 信装置 7 3— A , Bを介して接続し、 共有して入出力装置を利用するこ とが可能である。 また計算機装置 3は計算機装置 2が稼働中に動的に離 脱しても、 計算機装置 2の動作に影響を与えない。 計算機装置 3は、 離 脱した後に再び接続する場合、 計算機装置 2の通信装置 7 1を共有する よう例えばユーザからの指示を受け、 共有関係を再確立することが可能 となる。 すなわち本発明によれば計算機装置 3は、 連携通信装置 7 3— A , Bを介して動的に接続あるいは離脱する場合でも、 計算機装置 2と 入出力装置を共有して利用することが可能である。  According to the present invention, the computer device 3 does not necessarily have to be prepared when the shared input / output device (the communication device 71 in the present embodiment) is started. Therefore, the computer device 3 can be dynamically connected via the cooperative communication devices 73-A and B after the computer device 2 is started up, and can share and use the input / output device. Further, even if the computer device 3 dynamically leaves during the operation of the computer device 2, it does not affect the operation of the computer device 2. When the computer device 3 disconnects and then reconnects, the computer device 3 receives, for example, an instruction from a user to share the communication device 71 of the computer device 2, and can re-establish the sharing relationship. That is, according to the present invention, the computer device 3 can share and use the input / output device with the computer device 2 even when the computer device 3 is dynamically connected or disconnected via the cooperative communication device 73 -A, B. is there.
また本発明は、 計算機装置立ち上げ時あるいはユーザの指示がある時 に共有する入出力装置が利用できるか構成定義テーブルを参照し、 通常 の運用時には構成定義テーブルを参照しないため、 通常の運用時に高速 に共有入出力装置を利用できることを特徴とする。 The present invention is also applicable when the computer device is started or when there is a user's instruction. It refers to the configuration definition table to see if a shared I / O device can be used in the system, and does not refer to the configuration definition table during normal operation.
第 2 1図に遠隔装置リスト 1 2 9の構成例を示す。  FIG. 21 shows an example of the configuration of the remote device list 1229.
遠隔装置リスト 1 2 9は、 計算機識別 I D 44 1 , バス番号 442 , デバイス番号 443, 機能番号 444, OSエントリ 44 5から成る。 計算機識別 I D 44 1は、 連携通信装置 7 3— A, Bが接続する連携伝 送路 7 6において唯一決定する I D番号が列挙されている。 本実施例で は、 計算機装置 2のみの入出力装置を指定しているため、 同一の計算機 識別 I Dとなっている。 計算機識別 I D 44 1として、 例えば I Pアド レスや MAC (Media Access Control)アドレス等の、 当該計算機装置環 境で唯一となる I Dを採用するとよい。 その他のバス番号 442, デバ イス番号 443, 機能番号 444, OSエントリ 445は、 それぞれ第 4図 (b) におけるバス番号 1 44, デバイス番号 1 4 5, 機能番号 146 , 〇Sエントリ 147と同様である。 なお遠隔装置リスト 1 2 9 は、 基本的に計算機装置 3が計算機装置 2に対して共有あるいは排他的 に利用する入出力装置に関する記述を示すので、 一般的にはオペレーテ ィングシステム 1 0 1のみが使用するェントリは含まない。  The remote device list 1 29 includes a computer identification ID 441, a bus number 442, a device number 443, a function number 444, and an OS entry 445. The computer identification ID 441 lists an ID number uniquely determined in the cooperative transmission path 76 to which the cooperative communication devices 73-A and B are connected. In this embodiment, since the input / output device of only the computer device 2 is specified, the computer ID is the same. As the computer identification ID 441, for example, an ID such as an IP address or a MAC (Media Access Control) address that is unique in the computer device environment may be adopted. The other bus number 442, device number 443, function number 444, and OS entry 445 are the same as bus number 144, device number 144, function number 146, and 〇S entry 147 in Fig. 4 (b), respectively. is there. Note that the remote device list 1 229 basically describes the I / O devices that the computer device 3 shares or uses exclusively with the computer device 2, so that generally only the operating system 101 is used. Does not include the entry used.
計算機識別 I D 44 1を用いることにより、 連携通信装置 7 3— Bは 共有する入出力装置を有する計算機装置を計算機装置 I D 44 1にて指 定することにより、 連携伝送路 7 6に複数の計算機装置が接続されてい ても、 唯一の計算機装置を指定することができる。  By using the computer identification ID 441, the cooperative communication device 73-B can specify the computer device having the shared input / output device by the computer device ID 441, so that a plurality of computers can be connected to the cooperative transmission path 76. Only one computer device can be specified, even if the device is connected.
遠隔装置リスト 1 2 9を用いることにより、 連携通信ドライバ 42 0 は、 計算機装置 I D 44 1により計算機装置を特定し、 バス番号 442, デバイス番号 443, 機能番号 444により当該計算機装置内の入出力 装置を特定できる。 By using the remote device list 12 9, the cooperative communication driver 420 specifies the computer device by the computer device ID 441, and inputs and outputs in the computer device by the bus number 442, device number 443, and function number 444. The device can be specified.
これまで説明した第 1から第 5の実施例において、 構成定義テーブル 1 4 1の構成についてより簡便にするために、 次のようにしてもこれま での目的を達成することが出来る。 すなわち、 各 O S毎に記憶領域を定 め、 それぞれの記憶領域におけるァ,ドレスまたはビット位置と入出力装 置を一意に関連付け、 それぞれのァドレスまたはビット位置に設定され ている値によって入出力装置の担当〇 Sを決定する。 アドレスと入出力 装置を関連付ける例をとれば、 例えば、 オフセットアドレス = 0の場合 には表示装置 7 0の担当 0 Sを表し、 オフセットアドレス = 1の時は入 出力制御装置 3 0の担当 O S、 オフセットアドレス = 2の場合にはキー ボード 4 0の担当 0 Sを表すこととする。 それぞれのオフセッ トァドレ スには、 当該記憶領域に関連付けられた O Sが当該入出力装置を担当す べきか否かを示す値がデータとして保持されている。 例えば、 表示装置 7 0はォペレ一ティングシステム 1 0 1が担当するならば、 オペレ一テ イングシステム 1 0 1用の記憶領域のオフセットアドレス = 0には値 1 、 ォペレ一ティングシステム 1 2 1用の記億領域のオフセッ トアドレス- 0には値 0が設定される。 ここで、 値 1は当該 O Sが担当する、 値 0は 当該 O Sが担当しないことを意味する。 そして共有する装置に関しては、 格納する値に特定の値 (例えば前述の値に 1 2 8を加えた値とする) で 表現すればよい。 構成定義参照機能 1 0 4 , 1 2 4は、 上位のデバイス ドライバから要求される入出力装置とオフセットアドレスの関係をあら かじめ (例えば変換テーブルにより) 把握しておく機能が必要である。 構成定義参照機能 1 0 4 , 1 2 4は、' それぞれの O Sと関連する記憶領 域を参照することにより、 自身が担当する入出力装置を特定することが 可能となる。 以上の構成をとることにより、 構成定義テーブル 1 4 1は 必ずしもメモリ 1 4 0、 すなわち共有メモリに存在する必要がなくなり、 例えばそれぞれのオペレーティングシステムからのみ参照できるメモリ 1 0 0 , 1 2 0に、 それぞれのオペレーティングシステム用の記憶領域 を配置することが可能となる。 In the first to fifth embodiments described so far, in order to simplify the configuration of the configuration definition table 141, the following objects can be achieved in the following manner. In other words, a storage area is defined for each OS, and the address, address or bit position in each storage area is uniquely associated with the input / output device, and the value of the input / output device is determined by the value set for each address or bit position. Decide the responsible person S. Taking the example of associating the address with the input / output device, for example, when the offset address = 0, it indicates 0 S assigned to the display device 70, and when the offset address = 1, the OS assigned to the input / output control device 30, When the offset address = 2, the assigned address 40S of the keyboard 40 is represented. Each offset address holds, as data, a value indicating whether the OS associated with the storage area should take charge of the input / output device. For example, if the operating system 101 is in charge of the display device 70, the offset address of the storage area for the operating system 101 is 0, the value 1 is used, and the operating system 121 is used. The value 0 is set to the offset address-0 of the storage area of the storage area. Here, the value 1 means that the OS is in charge, and the value 0 means that the OS does not. The shared device may be represented by a specific value (for example, a value obtained by adding 128 to the above value) to be stored. The configuration definition reference function 104 and 124 must have a function to grasp in advance (for example, by using a conversion table) the relationship between an input / output device and an offset address required by a higher-level device driver. The configuration definition reference function 104 and 124 can specify the input / output device in charge of itself by referring to the storage area associated with each OS. With the above configuration, the configuration definition table 1 4 1 It is not always necessary to exist in the memory 140, that is, in the shared memory.For example, it is possible to allocate the storage area for each operating system in the memory 100, 120 which can be referred only from each operating system. Become.
本発明による第 6の実施例を第 2 ,2図を用いて説明する。  A sixth embodiment according to the present invention will be described with reference to FIGS.
第 2 2図は、 構成定義テーブル 1 4 1を構築するためのプログラムを 示す。 第 4図 (b ) に示すような構成定義テーブル 1 4 1を用意するた めに、 直接テーブルを記述するのは管理や使い勝手の面から望ましくな い。 そこで、 第 2 2図 ( a ) に示すような G U I (Graph i ca l User Int er f ace)による、 構成定義構築ツール 5 0 0を用意する。 ユーザは構 成定義構築ツール 5 ひ 0を用いて入出力装置の制御をいずれのオペレー ティングシステムで行うか指示する。  FIG. 22 shows a program for constructing the configuration definition table 141. To prepare the configuration definition table 141 as shown in Fig. 4 (b), it is not desirable to describe the table directly from the viewpoint of management and usability. Therefore, a configuration definition construction tool 500 using GUI (Graphical User Interface) as shown in FIG. 22 (a) is prepared. The user uses the configuration definition construction tool 5 to specify which operating system is to control the input / output device.
構成定義構築ツール 5 0 0は、 決定ポタン 5 0 1, 取消ボタン 5 0 2 , 全入出力装置リスト 5 1 0, O S— A制御リスト 5 1 1 , 共有制御リス ト 5 1 2 , O S— B制御リスト 5 1 3と、 入出力装置を表わすアイコン から成る。 構成定義構築ツール 5 0 0は構成定義テーブル 1 4 1を格納 する計算機で実行してもよいが、 他の計算機システムで実行して対象と なる計算機に転送しても良い。  The configuration definition construction tool 500 is composed of a decision button 501, a cancel button 502, a list of all input / output devices 501, an OS-A control list 51, a shared control list 51, and an OS-B It consists of a control list 5 13 and icons representing input / output devices. The configuration definition building tool 500 may be executed by a computer that stores the configuration definition table 141, or may be executed by another computer system and transferred to a target computer.
第 2 2図 (a ) は構成定義構築ツール 5 0 0の初期画面である。 決定 ポタン 5 0 1が押されると、 現在の構成定義構築ツール 5 0 0に設定さ れている内容で結果を構築情報ファイル 5 1 5として出力し、 構成定義 構築ツール 5 0 0は終了する。 取消ポタン 5 0 2が押されると、 現在の 構成定義構築ツール 5 0 0に設定されている内容を取り消して、 構成定 義構築ツール 5 0 0は終了する。 構成定義構築ツール 5 0 0は起動する 際に、 現在の構築情報ファイル 5 1 4を取り込んで、 その状態を構成定 義構築ツール 500の画面に反映する。 FIG. 22 (a) is an initial screen of the configuration definition construction tool 500. When the decision button 501 is pressed, the result is output as the construction information file 515 with the contents set in the current configuration definition construction tool 500, and the configuration definition construction tool 500 ends. When the cancel button 502 is pressed, the contents set in the current configuration definition tool 500 are canceled, and the configuration definition construction tool 500 ends. When the configuration building tool 500 starts, it loads the current configuration information file 514 and configures its state. This is reflected on the screen of the Justice Construction Tool 500.
以下にユーザが構成定義構築ツール 50 0を用いて、 入出力装置の制 御をいずれのォペレ一ティングシステムで行うか指示する方法について 説明する。  The following describes a method in which the user uses the configuration definition tool 500 to specify which operating system controls the input / output device.
ユーザは、 入出力装置の処理を行うのがいずれのオペレーティングシ ステムまたは共有とするかを設定するために、 入出力装置に対応するァ イコンを選択し、 対象となるリスト 5 1 1, 5 1 2, 5 1 3のいずれか にアイコンをドラッグ · アンド · ドロップする。 アイコンが置かれるリ ストに対応して、 ォペレ一ティングシステム 1 0 1, オペレーティング システム 1 2 1、 または共有となる。 第 2 2図 (b) に示すように設定 が終了すると、 ユーザは決定ポタン 50 1を押す。 その結果、 構成定義 構築ツール 5 0 0は現在の設定情報を構築情報ファイル 5 1 5として出 力する。 また現在の設定情報を破棄したい場合、 ユーザは取消ボタン 50 2を押し、 構成定義構築ツール 500を終了する。  The user selects the icon corresponding to the input / output device and sets the target list 5 1 1, 5 1 in order to set which operating system or shared device processes the input / output device. Drag and drop the icon to one of 2, 5, 1 and 3. It can be operating system 101, operating system 121, or shared, depending on the list where the icons are placed. When the setting is completed as shown in FIG. 22 (b), the user presses the decision button 501. As a result, the configuration definition construction tool 500 outputs the current setting information as the construction information file 515. When the user wants to discard the current setting information, the user presses a cancel button 502 to terminate the configuration definition construction tool 500.
第 2 2図(c)は構築情報初期設定ファイル 540の内容例である。 構 築情報初期設定ファイル 540は入出力装置名 520, 装置 I D 5 2 1, バス種別 522, パス番号 523 ,デバイス番号 524,機能番号 5 2 5 , OS固定フラグ 5 2 6, 共有フラグ 52 7から構成される構造体の配列 である。 このほかにも、 入出力装置に対応するアイコンのビットマップ ファイル名等も必要に応じて追加する。 入出力装置名 5 2 0は、 アイコ ンと合わせて表示される入出力装置の名前である。 装置 I D 5 2 1は、 GU I画面のアイコンに対応した一意の番号である。 パス種別 52 2 , バス番号 52 3, デバイス番号 5 24, 機能番号 52 5は、 第 4図 (b) , (c )で説明したバス種別 148 , バス番号 144, デバイス番号 145, 機能番号 146と同様である。 OS固定フラグ 52 6は、 当該入出力装 置を処理可能なオペレーティングシステムを表わしたものである。 本実 施例では、 0 X 0 1はオペレーティングシステム 1 0 1を、 0 x 0 2が オペレーティングシステム 1 2 1を表わし、 これらの論理和である 0 X 0 3が両方のォペレ一ティングシステムを表わす。 すなわち第 2 2図 ( c )では "表示装置" のみがオペレーティングシステム 1 0 1でしか処 理可能であり、 "拡張スロット 0 " がオペレーティングシステム 1 2 1 でしか処理可能であり、 他の入出力装置はどちらのオペレーティングシ ステムでも処理可能であることを意味する。 共有フラグ 5 2 7は、 当該 入出力装置が共有して制御することが可能であるかを示すフラグである < 0 x 0 1の値を持つ入出力装置が共有可能であり、 0 x 0 0の値を持つ 入出力装置は共有不可能であることを表わす。 本実施例では通信装置の みが共有可能であることを表わしている。 なお、 共有不可能のフラグを 持つ入出力装置は、 共有制御リスト 5 1 2にドロップすることは出来な いよう制御される。 FIG. 22 (c) shows an example of the contents of the construction information initialization file 540. The configuration information initialization file 540 contains the I / O device name 520, device ID 521, bus type 522, path number 523, device number 524, function number 525, OS fixed flag 526, and shared flag 527. An array of structured structures. In addition, add the bitmap file name of the icon corresponding to the input / output device as needed. The input / output device name 520 is the name of the input / output device displayed together with the icon. The device ID 521 is a unique number corresponding to the icon on the GUI screen. The path type 52 2, bus number 52 3, device number 5 24, and function number 525 are the same as the bus type 148, bus number 144, device number 145, and function number 146 described in FIGS. 4 (b) and 4 (c). The same is true. OS fixed flag 52 6 It represents an operating system that can process the device. In this embodiment, 0 X 0 1 represents the operating system 101, 0 x 0 2 represents the operating system 121, and the logical sum of these 0 X 03 represents both operating systems. . That is, in FIG. 22 (c), only the "display device" can be processed only by the operating system 101, the "expansion slot 0" can be processed only by the operating system 121, and other input / output This means that the device can be processed by either operating system. The sharing flag 5 2 7 is a flag indicating whether the input / output device can be shared and controlled.The input / output device having a value of <0 x 0 1 can be shared, and 0 x 0 0 An input / output device with a value of cannot be shared. In this embodiment, only the communication device can be shared. In addition, an input / output device having a non-sharable flag is controlled so that it cannot be dropped on the sharing control list 5 12.
次に装置 I D 5 2 1を用いて、 構成定義構築ツール 5 0 0から構築情 報ファイル 5 1 5を作成する手順を示す。 ユーザがアイコンを G U I画 面の中のあるリストから引き抜くと、 各リストを管理する配列から当該 入出力装置に対応する装置 I D 5 2 1が削除される。 その後アイコンが 別のリス卜に置かれると、 当該リストを管理する配列に当該入出力装置 の装置 I D 5 2 1が追加される。 そしてユーザが決定ポ夕ン 5 0 1を押 すと、 O S— A制御リスト 5 1 1 , 共有制御リスト 5 1 2 , O S _ B制 御リスト 5 1 3をそれぞれ管理する配列に含まれる装置 I D 5 2 1が決 定される。 その後それぞれの装置 I B 5 2 1と対応するバス種別 5 2 2, バス番号 5 2 3 , デバイス番号 5 2 4 , 機能番号 5 2 5に加え、 それぞ れを制御するオペレーティングシステムを意味するフラグが生成され、 構築情報ファイル 5 1 5として出力する。 構築情報ファイル 5 1 5は、 対象となる計算機システムに転送される際に、 構成定義テ一ブル 1 4 1 で定められる書式に従い変換され、 構成定義テーブル 1 4 1または不揮 発記憶装置 4 2上の構成定義テーブル保存領域 4 4に格納される。 Next, a procedure for creating the configuration information file 515 from the configuration definition construction tool 500 using the device ID 521 will be described. When the user pulls out an icon from a list in the GUI screen, the device ID 521 corresponding to the input / output device is deleted from the array managing each list. After that, when the icon is placed in another list, the device ID 521 of the input / output device is added to the array managing the list. When the user presses the decision button 501, the device ID included in the array that manages the OS—A control list 5 1 1, the shared control list 5 1 2, and the OS_B control list 5 1 3 5 2 1 is determined. After that, in addition to the bus type 5 2 2, bus number 5 2 3, device number 5 2 4, and function number 5 2 5 corresponding to each device IB 5 2 1, a flag indicating the operating system controlling each device is added. Generated Output as construction information file 5 1 5 The configuration information file 5 15 is converted according to the format defined in the configuration table 14 1 when transferred to the target computer system, and is converted to the configuration table 14 1 or the non-volatile storage device 4 2 The above configuration definition table storage area 4 is stored in 4.
以上より、 構築情報初期設定ファイル 5 4 0に基づき、 構成定義構築 ツール 5 0 0は G U I画面上でアイコンの移動を制御したり、 構築情報 ファイル 5 1 5を出力することが可能となる。  As described above, based on the construction information initialization file 540, the configuration definition construction tool 550 can control the movement of the icons on the GUI screen and output the construction information file 515.
第 2 3図に構成定義構築ツールの他の実施例を示す。  FIG. 23 shows another embodiment of the configuration definition construction tool.
第 2 3図は他の構成定義構築ツール 5 5 0の G U I画面の構成を示す。 それぞれの入出力装置は、 いずれかのオペレーティングシステムに固定 的にしか使用できないものもあり、 また共有可能な入出力装置も制限さ れる場合がある。 その場合、 第 2 2図 (a ) にて示されるュ一ザイン夕 —フェースでは、 入出力装置が持つ制限が直感的に分かりづらい点があ る。 その問題点を解決するために、 構成定義構築ツール 5 5 0では、 入 出力装置毎に取りうるオペレ一ティングシステムの組を予めプルダウン メニュー形式で提供することを特徴とする。  FIG. 23 shows the configuration of the GUI screen of another configuration definition construction tool 550. Some I / O devices can only be used fixedly for one operating system, and some I / O devices can be shared. In that case, the user interface shown in Fig. 22 (a) has a point that it is difficult to intuitively understand the limitations of the input / output device. In order to solve the problem, the configuration definition construction tool 550 is characterized in that a set of operating systems that can be used for each input / output device is provided in advance in a pull-down menu format.
構成定義構築ツール 5 5 0は、 入出力装置名 5 5 1と O S選択ブルダ ゥンリスト 5 5 2から成る。 入出力装置名 5 5 1毎に、 取りうるォペレ —ティングシステムの組は O S選択プルダウンリスト 5 5 2に記載され ている。 例えば第 2 2図 (c ) の初期設定によると、 通信装置はォペレ —ティングシステム 1 0 1, 1 2 1あるいは共有のいずれも取りうるの で、 0 S選択プルダウンリスト 5 5 2には全てが記載されている。 そこ でユーザはいずれの構成を選択する'ことが可能である。 一方、 拡張スロ ット 0はオペレーティングシステム 1 2 1 ( O S - B ) のみが制御可能 となっているため、 O S選択プルダウンリスト 5 5 2は選択の余地がな く、 "未使用" または " O S— Bのみ" の項目だけが選択可能となる。 その他のポタンやポタンを押した後の動作は、 第 2 2図の場合と同様で ある。 The configuration definition construction tool 550 includes an input / output device name 551 and an OS selection download list 552. The set of possible operating systems for each input / output device name 551 is described in the OS selection pull-down list 552. For example, according to the initial settings shown in Fig. 22 (c), the communication device can be either the operating system 101, 121, or shared, so the 0S selection pull-down list 55 Has been described. There the user can select any configuration. On the other hand, since the extended slot 0 can be controlled only by the operating system 1 2 1 (OS-B), the OS selection pull-down list 55 2 has no choice. Only "Unused" or "OS-B only" items can be selected. The other buttons and the operations after pressing the buttons are the same as those in FIG.
本発明によれば、 市場に流通する汎用 O Sを活用しつつ複数の 0 Sを 実装する計算機システムにおいて、,入出力装置を制御する〇 Sを柔軟に 設定し、 例えば入出力装置個別に制御する O Sを排他的あるいは共有し て設定することが可能となる。 さらに入出力装置を制御するオペレ一テ イングシステムを 「無し」 とすることで、 当該入出力装置を一時的に無 効にすることが可能である。 また当該オペレーティングシステムに無関 係な入出力装置に対しても安全にアクセスできるため、 計算機システム 内の全入出力装置を検索し構成制御するといつた、 プラグアンドブレ ィ ·ォペレ一ティングシステムを採用することが可能となる。  According to the present invention, in a computer system in which a plurality of OSs are mounted while utilizing a general-purpose OS that is distributed on the market, an input / output device is flexibly set, and, for example, an input / output device is individually controlled. It is possible to set the OS exclusively or shared. Further, by setting the operating system that controls the input / output device to “none”, the input / output device can be temporarily disabled. In addition, since it is possible to safely access I / O devices that are unrelated to the operating system, a plug-and-bray operating system that searches and controls all I / O devices in the computer system will be adopted. It becomes possible.
また本発明によれば、 入出力装置を共有する複数の O Sを実装した計 算機システムにおいて、 一方の O Sの稼動状況に関わらず、 もう一方の O Sは共有する入出力装置を継続して使用することが可能となる。 すな わち本発明の目的である、 一方の O Sの不具合は入出力装置を共有する もう一方の O Sの稼動状況に影響を与えないようにすることが可能とな る。  Further, according to the present invention, in a computer system in which a plurality of OSs sharing an input / output device are mounted, the other OS continuously uses the shared input / output device regardless of the operating status of one OS. It is possible to do. That is, it is possible to prevent the malfunction of one OS, which is the object of the present invention, from affecting the operating status of the other OS sharing the input / output device.
また本発明により、 通信装置をはじめとする入出力装置を、 別筐体の 計算機装置間で共有することが可能となる。 例えば、 携帯電話で通話し ながら、 携帯電話に取り付けられた無線装置を介して、 同じく無線装置 を取り付けられたゲーム装置にデータを転送するといつた使い方が可能 となる。 この際、 計算機装置が認証'しない計算機装置からの入出力装置 アクセスを拒絶することも本発明により実現できる。  Further, according to the present invention, an input / output device such as a communication device can be shared between computer devices in different housings. For example, while talking on a mobile phone, data can be transferred to a game device with a wireless device via a wireless device attached to the mobile phone. At this time, the present invention can also reject the input / output device access from a computer device that is not authenticated by the computer device.
さらに本発明によれば、 同種の複数の O Sを実装する計算機システム において、 O S間で入出力装置のデバイスドライバを共有することが可 能となる。 Further, according to the present invention, a computer system implementing a plurality of OSs of the same type OS, it is possible to share device drivers of input / output devices between OSs.
さらに本発明によれば、 入出力装置を複数の O S間で排他的に制御す る計算機システムにおいて、 入出力装置を制御あるいは管理する O Sを 容易に切り換えることが可能となる。 このため、 一方のオペレーティン グシステムの負荷が高まった場合、 もう一方のォペレ一ティングシステ ムにある入出力装置の処理を移行する際に、 ユーザの作業量を低減する ことができる。  Further, according to the present invention, in a computer system that exclusively controls an input / output device among a plurality of OSs, it is possible to easily switch the OS that controls or manages the input / output device. For this reason, when the load on one operating system increases, the workload of the user can be reduced when transferring the processing of the input / output device in the other operating system.
また本発明によれば、 これら複数の入出力装置を制御するオペレ一テ ィングシステムを設定するために、 G U I画面を用いて容易に設定する ことが可能となる。 入出力装置によっては、 特定のオペレーティングシ ステムによってのみ制御されるものも有り、 こういった入出力装置に対 してもユーザが迷わないように、 プルダウンリストを用いて取りうるォ ペレ一ティングシステムの組を G U I画面で設定することも可能となる。 産業上の利用可能性  Further, according to the present invention, in order to set an operating system for controlling the plurality of input / output devices, it is possible to easily set the operating system using the GUI screen. Some input / output devices are controlled only by a specific operating system, and operating systems that can be used with pull-down lists so that users cannot be confused with such input / output devices. Can be set on the GUI screen. Industrial applicability
本発明は、 複数の計算機を用いた制御装置, 複数のオペレーティング システムを動作させる計算機などに適用することが可能となる。  The present invention can be applied to a control device using a plurality of computers, a computer operating a plurality of operating systems, and the like.

Claims

請 求 の 範 囲 The scope of the claims
1 . 複数の入出力装置と、  1. Multiple input / output devices,
複数のオペレーティングシステムと、 それぞれの前記入出力装置とそ れぞれのォペレ一ティングシステムとの対応関係が定義された構成定義 テーブルとが格納されているメモリ,と、  A memory storing a plurality of operating systems, and a configuration definition table in which the correspondence between the input / output devices and the respective operating systems is defined;
複数の前記入出力装置と接続され、 前記オペレーティングシステムを 実行する複数のプロセッサとを有する計算機システムであって、  A computer system having a plurality of processors connected to the plurality of input / output devices and executing the operating system,
それぞれの前記プロセッサで実行される前記オペレーティングシステ ムは、 前記構成定義テーブルを参照し、 自身が使用する前記入出力装置 の存在を確認する計算機システム。  A computer system in which the operating system executed by each of the processors refers to the configuration definition table and confirms the existence of the input / output device used by itself.
2 . 複数の入出力装置と、 '  2. Multiple I / O devices and the '
複数のォペレ一ティングシステムと、 それぞれの前記入出力装置とそ れぞれのオペレーティングシステムとの対応関係が定義された構成定義 テーブルとが格納されているメモリと、  A memory storing a plurality of operating systems, and a configuration definition table in which a correspondence between each of the input / output devices and each operating system is defined;
複数の前記入出力装置と接続され、 複数の前記オペレーティングシス テムを実行するプロセッサとを有する計算機システムであって、  A computer system having a processor connected to the plurality of input / output devices and executing the plurality of operating systems,
それぞれの前記オペレーティングシステムは、 前記構成定義テーブル を参照し、 自身が使用する前記入出力装置の存在を確認する計算機シス テム。  Each of the operating systems refers to the configuration definition table and confirms the existence of the input / output device used by itself.
3 . 請求項 1または 2の計算機システムにおいて、  3. In the computer system of claim 1 or 2,
少なくとも 1つの前記入出力装置は割込み要求を発行する割込み要求 発行部を有し、  At least one of the input / output devices has an interrupt request issuing unit that issues an interrupt request,
前記計算機システムは、 前記割込'み要求を受け付け、 前記入出力装置 に対応するオペレーティングシステムに前記割込み要求を通知する割込 制御部を有する計算機システム。 The computer system includes an interrupt control unit that receives the interrupt request and notifies the operating system corresponding to the input / output device of the interrupt request.
4 . 請求項 3の計算機システムにおいて、 4. In the computer system of claim 3,
前記制御部は、 前記入出力装置の割込み要求毎に設定されたレベルに 基づいて、 複数の割込み要求から優先的に通知すべき割込み要求を選定 し、 該割込み要求に対応するオペレーティングシステムに該割込み要求 を通知する計算機システム。  The control unit selects an interrupt request to be notified preferentially from a plurality of interrupt requests based on a level set for each interrupt request of the input / output device, and sends the interrupt request to an operating system corresponding to the interrupt request. A computer system that notifies requests.
5 . 請求項 1または 2の計算機システムにおいて、  5. In the computer system of claim 1 or 2,
計算機システムは、 入出力装置を制御するための複数のデバイスドラ ィバが格納されたメモリを有し、  The computer system has a memory in which a plurality of device drivers for controlling input / output devices are stored,
前記オペレーティングシステムは、 前記構成定義テーブルを参照し、 自身が使用する前記入出力装置の存在を確認し、 存在が確認された前記 入出力装置を制御するためのデバイスドライパを該オペレーティングシ ステムが格納された前記メモリへ転送する計算機システム。  The operating system refers to the configuration table, confirms the existence of the input / output device used by itself, and the operating system provides a device driver for controlling the input / output device confirmed to exist. A computer system for transferring the stored data to the memory.
6 . 請求項 5の計算機システムにおいて、  6. In the computer system of claim 5,
前記デバイスドライバが格納された前記メモリは複数のプロセッサが アクセス可能なメモリである計算機システム。  The computer system, wherein the memory in which the device driver is stored is a memory accessible by a plurality of processors.
7 . 複数の入出力装置と、  7. Multiple input / output devices,
それぞれの前記入出力装置が接続されオペレーティングシステムを動 作させて処理を実行する複数の計算機と、  A plurality of computers to which the input / output devices are connected and which execute an operation by operating an operating system;
それぞれの前記入出力装置とそれぞれの計算機のオペレーティングシ ステムとの対応関係が格納され、 前記複数の計算機間で共有する共有メ モリと、  A correspondence relationship between each of the input / output devices and an operating system of each computer is stored, and a shared memory shared among the plurality of computers;
複数の前記計算機間でイベントの通知を行う通信制御部とを有する計 算機システムであって、  A communication control unit for notifying an event between the plurality of computers, the computer system comprising:
一の前記計算機のオペレーティングシステムは、 当該計算機にェント リされている入出力装置を表わす情報を前記共有メモリに書き込むと共 に、 前記通信制御部を介して他の前記計算機に当該書込みが終了したこ とを通知し、 The operating system of one of the computers writes information representing the input / output device entered in the computer into the shared memory, and Informing the other computer via the communication control unit that the writing has been completed,
前記通知を受けた他の計算機のォペレ一ティングシステムは、 前記共 有メモリに書き込まれた入出力装置を表わす情報を読み出し、 自計算機 に格納する計算機システム。  The operating system of another computer that has received the notification reads out the information representing the input / output device written in the shared memory and stores the information in its own computer.
8 . 複数の入出力装置と、  8. Multiple input / output devices,
それぞれの前記入出力装置が接続され複数のォペレ一ティングシステ ムを動作させて処理を実行する複数の計算機と、  A plurality of computers each connected to the input / output device and operating a plurality of operating systems to execute processing;
それぞれの前記入出力装置とそれぞれの計算機のオペレーティングシ ステムとの対応関係が格納され、 前記複数の計算機間で共有する共有メ モリとを有する計算機システムであって、  A computer system that stores a correspondence relationship between each of the input / output devices and an operating system of each computer, and has a shared memory shared by the plurality of computers;
少なくとも一つの計算機は、 複数の前記入出力装置を表わす文字又は 図と、 複数のオペレーティングシステムとを前記入出力装置の一つであ る表示装置に表示し、 該表示装置上で対応付けられた前記文字又は図と 前記オペレーティングシステムとを前記共有メモリに格納する計算機シ ステム。  At least one computer displays characters or diagrams representing the plurality of input / output devices and a plurality of operating systems on a display device that is one of the input / output devices, and is associated with the display device. A computer system for storing the characters or figures and the operating system in the shared memory.
9 . 複数の入出力装置と、  9. Multiple input / output devices,
それぞれの前記入出力装置が接続され複数のオペレーティングシステ ムを動作させて処理を実行する計算機と、  A computer to which each of the input / output devices is connected to execute a process by operating a plurality of operating systems;
それぞれの前記入出力装置とそれぞれのオペレーティングシステムと の対応関係が格納され、 前記複数のオペレーティングシステム間で共有 する共有メモリとを有する計算機システムであって、  A computer system that stores a correspondence relationship between each of the input / output devices and each of the operating systems, and has a shared memory shared by the plurality of operating systems;
前記計算機は、 複数の前記入出ガ装置を表わす文字又は図と、 複数の オペレーティングシステムとを前記入出力装置の一つである表示装置に 表示し、 該表示装置上で対応付けられた前記文字又は図と前記オペレー ティングシステムとを前記共有メモリに格納する計算機システム。 The computer displays a plurality of characters or diagrams representing the input / output devices and a plurality of operating systems on a display device, which is one of the input / output devices, and displays the characters associated on the display device. Or the figure and the operator And a computer system for storing the operating system in the shared memory.
1 0 . オペレーティングシステムを実行する複数のプロセッサと、 複数 の入出力装置とが信号線を介して接続された計算機システムであって、 少なくとも 1つの前記プロセッサは、 前記入出力装置から受信したデ —夕に基づいて処理すべきアプリケ一ションを実行するドライバと、 他 のプロセッサのオペレーティングシステムで処理すべき場合に、 当該他 のプロセッサへ前記入出力装置からデータを受信した旨を通知するアブ リケーシヨンを実行する計算機システム。  10. A computer system in which a plurality of processors executing an operating system and a plurality of input / output devices are connected via signal lines, wherein at least one of the processors receives data received from the input / output devices. A driver for executing an application to be processed based on the evening, and an application for notifying the other processor that data has been received from the input / output device, when processing is to be performed by the operating system of another processor. Computer system to run.
1 1 . 請求項 1 0の計算機システムにおいて、  1 1. In the computer system of claim 10,
少なくとも 1つの前記入出力装置は、 丁。 1 又は11 0 ? // 1 による通信を行う通信装置であって、 At least one said input / output device is a Ding. 1 or 11 0? / / 1 by a communication apparatus for communicating,
前記ドライバは、 受信したデ一夕のポート番号に基づいてアプリケー シヨンを実行する計算機システム。  A computer system for executing the application based on the received port number of the received data;
1 2 . プロセッサと、 メモリと、 複数の入出力装置とを有する複数の計 算機を有し、 前記計算機間で通信を行う計算機システムであって、 少なくとも 1つの計算機は、 通信が可能な他の計算機を示すリストを 前記メモリに保持し、 他の計算機からの通信要求に対し、 前記リス卜に 基づいて通信が可能か否かを判定し、 当該他の計算機のオペレーティン グシステムと自計算機のォペレ一ティングシステムとが一致するかを判 定し、 通信が可能でオペレーティングシステムが一致した場合に、 当該 計算機に接続された入出力装置へのアクセスが可能であることを示す情 報を前記他の計算機に通知する計算機システム。  12. A computer system having a plurality of computers having a processor, a memory, and a plurality of input / output devices and performing communication between the computers, wherein at least one of the computers is capable of communication. A list indicating the computer is held in the memory, and it is determined whether or not communication is possible based on the list in response to a communication request from another computer, and the operating system of the other computer and the operation of the own computer are determined. It is determined whether the computer and the operating system match, and if communication is possible and the operating system matches, information indicating that access to the input / output device connected to the computer is possible is transmitted to the other computer. A computer system that notifies the computer.
1 3 . オペレーティングシステムからの要求に基づいて、 前記オペレー ティングシステムが実行される計算機に接続された複数の入出力装置と オペレーティングシステムとの対応関係が定義されたテーブルを参照し、 該テーブルに要求を発行した前記オペレーティングシステムに対応す る入出力装置が定義されている場合に、 前記オペレーティングシステム に該入出力装置が定義されていることを通知する入出力装置の制御方法。13. Based on a request from the operating system, refer to a table in which the correspondence between the operating system and a plurality of input / output devices connected to the computer on which the operating system is executed is defined. An input / output device control method for notifying the operating system that the input / output device is defined, when the input / output device corresponding to the operating system that issued the request is defined in the table.
1 4 . ォペレ一ティングシステムからの要求に基づいて、 前記オペレー ティングシステムが実行される計算機に接続された複数の入出力装置と オペレーティングシステムとの対応関係が定義されたテーブルを参照し、 該テーブルに要求を発行した前記オペレーティングシステムに対応す る入出力装置が定義されている場合に、 前記オペレーティングシステム に該入出力装置が定義されていることを通知し、 14. Based on a request from the operating system, refer to a table in which the correspondence between a plurality of input / output devices connected to the computer on which the operating system is executed and the operating system is defined, and refer to the table. When an input / output device corresponding to the operating system that has issued the request is defined, the operating system is notified that the input / output device is defined,
該通知を受けたオペレーティングシステムは、 該入出力装置を制御す るデバイスドライバを読み出す入出力装置の制御方法。  The operating system that has received the notification reads the device driver that controls the input / output device.
1 5 . 複数の入出力装置を文字又は図で表示し、  1 5. Multiple I / O devices are displayed in characters or figures
複数のォペレ一ティングシステム毎に領域を表示し、  Displays an area for each of multiple operating systems,
前記オペレーティングシステム毎に表示された領域に前記文字又は図 が移動された時に、 該領域のオペレーティングシステムと移動された文 字又は図に対応する入出力装置とを対応付け、  When the character or figure is moved to an area displayed for each operating system, the operating system in the area is associated with an input / output device corresponding to the moved character or figure,
該対応付けられた情報をメモリに書き込む入出力装置の制御方法。 A method for controlling an input / output device for writing the associated information into a memory.
1 6 . オペレーティングシステムからの要求に基づいて、 前記オペレ一 ティングシステムが実行される計算機に接続された複数の入出力装置と オペレーティングシステムとの対応関係が定義されたテーブルを参照し、 該テーブルに要求を発行した前記オペレーティングシステムに対応す る入出力装置が定義されている場合に、 前記オペレーティングシステム に該入出力装置が定義されているごとを通知する制御プログラムが記憶 されコンピュータで読み出し可能な情報記憶媒体。 16. Based on a request from the operating system, refer to a table in which the correspondence between a plurality of input / output devices connected to the computer on which the operating system is executed and the operating system is defined. When an input / output device corresponding to the operating system that issued the request is defined, a control program for notifying the operating system every time the input / output device is defined is stored, and is computer-readable information. Storage medium.
1 7 . 複数の入出力装置を文字又は図で表示し、 複数のオペレーティングシステム毎に領域を表示し、 1 7. Display multiple input / output devices in characters or diagrams, Displays the area for each of multiple operating systems,
前記オペレーティングシステム毎に表示された領域に前記文字又は図 が移動された時に、 該領域のオペレーティングシステムと移動された文 字又は図に対応する入出力装置とを対応付け、  When the character or figure is moved to an area displayed for each operating system, the operating system in the area is associated with an input / output device corresponding to the moved character or figure,
該対応付けられた情報をメモリに書き込む制御プログラムが記憶され コンピュータで読み出し可能な情報記憶媒体。  A computer readable information storage medium storing a control program for writing the associated information into a memory.
PCT/JP2000/003500 2000-05-31 2000-05-31 Computer system, method of controlling computer, and medium storing control program WO2001093032A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2000/003500 WO2001093032A1 (en) 2000-05-31 2000-05-31 Computer system, method of controlling computer, and medium storing control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2000/003500 WO2001093032A1 (en) 2000-05-31 2000-05-31 Computer system, method of controlling computer, and medium storing control program

Publications (1)

Publication Number Publication Date
WO2001093032A1 true WO2001093032A1 (en) 2001-12-06

Family

ID=11736093

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2000/003500 WO2001093032A1 (en) 2000-05-31 2000-05-31 Computer system, method of controlling computer, and medium storing control program

Country Status (1)

Country Link
WO (1) WO2001093032A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006085400A (en) * 2004-09-16 2006-03-30 Hitachi Ltd Data processing system
US7149885B2 (en) 2002-04-05 2006-12-12 Nec Corporation Automatic concealment of expansion cards in computer system
JP2008071042A (en) * 2006-09-13 2008-03-27 Nec Computertechno Ltd Computer system and method for allocating its i/o space resource
JP2012145993A (en) * 2011-01-07 2012-08-02 Mitsubishi Electric Corp Computer system, interruption control method and program
JP2013536487A (en) * 2010-06-23 2013-09-19 インターナショナル・ビジネス・マシーンズ・コーポレーション Load instruction for communication with the adapter

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62140145A (en) * 1985-12-14 1987-06-23 Nec Corp Virtual computer system
JPH01195562A (en) * 1988-01-29 1989-08-07 Nec Corp Control system for allocation of input/output device
JPH01316833A (en) * 1988-06-17 1989-12-21 Nec Corp System for changing constitution of virtual computer system
JPH033061A (en) * 1989-05-31 1991-01-09 Nec Corp Peripheral device control system
JPH09120362A (en) * 1995-10-24 1997-05-06 Hitachi Ltd Information processor
JPH11149385A (en) * 1997-09-12 1999-06-02 Hitachi Ltd Multi-os constituting method
JP2000029729A (en) * 1998-07-13 2000-01-28 Nec Corp Data processing method/processor, data processing system and information storage medium thereof

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62140145A (en) * 1985-12-14 1987-06-23 Nec Corp Virtual computer system
JPH01195562A (en) * 1988-01-29 1989-08-07 Nec Corp Control system for allocation of input/output device
JPH01316833A (en) * 1988-06-17 1989-12-21 Nec Corp System for changing constitution of virtual computer system
JPH033061A (en) * 1989-05-31 1991-01-09 Nec Corp Peripheral device control system
JPH09120362A (en) * 1995-10-24 1997-05-06 Hitachi Ltd Information processor
JPH11149385A (en) * 1997-09-12 1999-06-02 Hitachi Ltd Multi-os constituting method
JP2000029729A (en) * 1998-07-13 2000-01-28 Nec Corp Data processing method/processor, data processing system and information storage medium thereof

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149885B2 (en) 2002-04-05 2006-12-12 Nec Corporation Automatic concealment of expansion cards in computer system
JP2006085400A (en) * 2004-09-16 2006-03-30 Hitachi Ltd Data processing system
US7877526B2 (en) 2004-09-16 2011-01-25 Hitachi, Ltd. Data processing system having a channel adapter shared by multiple operating systems
JP2008071042A (en) * 2006-09-13 2008-03-27 Nec Computertechno Ltd Computer system and method for allocating its i/o space resource
JP2013536487A (en) * 2010-06-23 2013-09-19 インターナショナル・ビジネス・マシーンズ・コーポレーション Load instruction for communication with the adapter
JP2012145993A (en) * 2011-01-07 2012-08-02 Mitsubishi Electric Corp Computer system, interruption control method and program

Similar Documents

Publication Publication Date Title
JP2514303B2 (en) Method and system for transferring message to network using virtual device driver
JP5427574B2 (en) Virtual computer migration management method, computer using the migration management method, virtualization mechanism using the migration management method, and computer system using the migration management method
US6175918B1 (en) Client computer, initialization processing method applied to client computer, and computer program product used in client computer
US5774656A (en) Information processing system and method and service supplying method for use within a network
US8972710B2 (en) Network storage target boot and network connectivity through a common network device
US8788668B2 (en) Information processing apparatus, information processing system, setting program transmission method and server setting program
TWI239160B (en) Remote booting method and apparatus applied in WAN based on IP technique
EP0272835B1 (en) Virtual execution of programs on a multiprocessor system
US20090292812A1 (en) Allocating management method of computer
US20070266120A1 (en) System and method for handling instructions in a pre-boot execution environment
JP2001256170A (en) Peripheral device and printer
US20080276257A1 (en) System and Method for Implementing and/or Operating Network Interface Devices to Achieve Network-Based Communications
JP4637140B2 (en) Computer system
US20060167886A1 (en) System and method for transmitting data from a storage medium to a user-defined cluster of local and remote server blades
JP4592242B2 (en) Server / client system
JP2001290665A (en) Processor system
WO2001093032A1 (en) Computer system, method of controlling computer, and medium storing control program
WO2007123025A1 (en) Technique of controlling communication of installed apparatus with outside by means of proxy server
JP2002229967A (en) Computer system, cpu/memory-mounted device and input- output device
JP2009032241A (en) Computer system, computer control method, and storage medium storing control programs
US6308226B1 (en) Communication method and system for objects movable in network
JP2003525494A (en) Apparatus and method for swapping devices during operation of a computer
KR20000035025A (en) Data processing system and method for remotely accessing a client computer system&#39;s indivisual initialization settings while the client is powered off
JP5115208B2 (en) MEASUREMENT / TEST ACCESS CONTROL DEVICE AND METHOD, AND ITS PROGRAM
KR19980086588A (en) System Resource Reduction Tool Using TCP / IP Socket Application

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP KR US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref country code: JP

Ref document number: 2002 501179

Kind code of ref document: A

Format of ref document f/p: F

122 Ep: pct application non-entry in european phase