WO2001093032A1 - Systeme informatique, procede de commande d'ordinateur et support stockant un programme de commande - Google Patents

Systeme informatique, procede de commande d'ordinateur et support stockant un programme de commande 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
English (en)
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/fr
Publication of WO2001093032A1 publication Critical patent/WO2001093032A1/fr

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.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

La présente invention concerne un environnement permettant une utilisation souple de dispositifs d'entrée/sortie sur plusieurs systèmes d'exploitation. Des systèmes d'exploitation situés sur leur ordinateur respectif orientent vers une table qui indique la correspondance entre des systèmes d'exploitation et des dispositifs d'entrée/sortie, afin de confirmer l'existence des dispositifs d'entrée/sortie que leurs systèmes d'exploitation utilisent.
PCT/JP2000/003500 2000-05-31 2000-05-31 Systeme informatique, procede de commande d'ordinateur et support stockant un programme de commande WO2001093032A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2000/003500 WO2001093032A1 (fr) 2000-05-31 2000-05-31 Systeme informatique, procede de commande d'ordinateur et support stockant un programme de commande

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2000/003500 WO2001093032A1 (fr) 2000-05-31 2000-05-31 Systeme informatique, procede de commande d'ordinateur et support stockant un programme de commande

Publications (1)

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

Family

ID=11736093

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2000/003500 WO2001093032A1 (fr) 2000-05-31 2000-05-31 Systeme informatique, procede de commande d'ordinateur et support stockant un programme de commande

Country Status (1)

Country Link
WO (1) WO2001093032A1 (fr)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006085400A (ja) * 2004-09-16 2006-03-30 Hitachi Ltd データ処理システム
US7149885B2 (en) 2002-04-05 2006-12-12 Nec Corporation Automatic concealment of expansion cards in computer system
JP2008071042A (ja) * 2006-09-13 2008-03-27 Nec Computertechno Ltd コンピュータシステムおよびそのi/o空間リソース割り当て方法
JP2012145993A (ja) * 2011-01-07 2012-08-02 Mitsubishi Electric Corp 計算機システム及び割込み制御方法及びプログラム
JP2013536487A (ja) * 2010-06-23 2013-09-19 インターナショナル・ビジネス・マシーンズ・コーポレーション アダプタとの通信のためのロード命令

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62140145A (ja) * 1985-12-14 1987-06-23 Nec Corp 仮想計算機システム
JPH01195562A (ja) * 1988-01-29 1989-08-07 Nec Corp 入出力装置割当て制御方式
JPH01316833A (ja) * 1988-06-17 1989-12-21 Nec Corp 仮想計算機システムの構成変更方式
JPH033061A (ja) * 1989-05-31 1991-01-09 Nec Corp 周辺装置制御方式
JPH09120362A (ja) * 1995-10-24 1997-05-06 Hitachi Ltd 情報処理装置
JPH11149385A (ja) * 1997-09-12 1999-06-02 Hitachi Ltd マルチos構成方法
JP2000029729A (ja) * 1998-07-13 2000-01-28 Nec Corp データ処理方法および装置、データ処理システム、情報記憶媒体

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62140145A (ja) * 1985-12-14 1987-06-23 Nec Corp 仮想計算機システム
JPH01195562A (ja) * 1988-01-29 1989-08-07 Nec Corp 入出力装置割当て制御方式
JPH01316833A (ja) * 1988-06-17 1989-12-21 Nec Corp 仮想計算機システムの構成変更方式
JPH033061A (ja) * 1989-05-31 1991-01-09 Nec Corp 周辺装置制御方式
JPH09120362A (ja) * 1995-10-24 1997-05-06 Hitachi Ltd 情報処理装置
JPH11149385A (ja) * 1997-09-12 1999-06-02 Hitachi Ltd マルチos構成方法
JP2000029729A (ja) * 1998-07-13 2000-01-28 Nec Corp データ処理方法および装置、データ処理システム、情報記憶媒体

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 (ja) * 2004-09-16 2006-03-30 Hitachi Ltd データ処理システム
US7877526B2 (en) 2004-09-16 2011-01-25 Hitachi, Ltd. Data processing system having a channel adapter shared by multiple operating systems
JP2008071042A (ja) * 2006-09-13 2008-03-27 Nec Computertechno Ltd コンピュータシステムおよびそのi/o空間リソース割り当て方法
JP2013536487A (ja) * 2010-06-23 2013-09-19 インターナショナル・ビジネス・マシーンズ・コーポレーション アダプタとの通信のためのロード命令
JP2012145993A (ja) * 2011-01-07 2012-08-02 Mitsubishi Electric Corp 計算機システム及び割込み制御方法及びプログラム

Similar Documents

Publication Publication Date Title
JP2514303B2 (ja) 仮想装置ドライバを利用したネットワ―クへのメッセ―ジ転送方法及びシステム
JP5427574B2 (ja) 仮想計算機の移動管理方法、前記移動管理方法を用いた計算機、前記移動管理方法を用いた仮想化機構および前記移動管理方法を用いた計算機システム
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 (fr) Déroulement virtuel de programmes sur un système multiprocesseur
EP2040176B1 (fr) Affectation de ressources dynamiques
US20090292812A1 (en) Allocating management method of computer
US20070266120A1 (en) System and method for handling instructions in a pre-boot execution environment
JP2001256170A (ja) 周辺装置及びプリンタ
US20080276257A1 (en) System and Method for Implementing and/or Operating Network Interface Devices to Achieve Network-Based Communications
JP4637140B2 (ja) 計算機システム
CN111459632A (zh) 一种供终端应用程序调用的串口代理及实现方法
US20060167886A1 (en) System and method for transmitting data from a storage medium to a user-defined cluster of local and remote server blades
JP4592242B2 (ja) サーバ/クライアントシステム
JP2001290665A (ja) プロセッサシステム
WO2001093032A1 (fr) Systeme informatique, procede de commande d'ordinateur et support stockant un programme de commande
WO2007123025A1 (fr) Technique de commande de communication d'un appareil installé avec l'extérieur au moyen d'un serveur mandataire
JP2002229967A (ja) 計算機システム及びcpu・メモリ搭載装置並びに入出力制御装置
JP2009032241A (ja) 計算機システム及び計算機制御方法,制御プログラムを格納した記憶媒体
JP2003525494A (ja) コンピュータの動作中に装置をスワップするための装置および方法
KR20000035025A (ko) 클라이언트 전원이 오프되어 있는 동안에 클라이언트 컴퓨터 시스템의 개개의 초기화 셋팅에 원격으로 억세스하기 위한 데이터 처리 시스템 및 방법
JP5115208B2 (ja) 測定/試験アクセス制御装置及び方法並びにそのプログラム

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