Embodiment
General introduction
This paper discusses the various aspects of partition bus.At first, provide exemplary computing environment, and the general discussion of the subregion with various operating systems in the virtual machine environment.After this discussed, the by stages data transmission and the equipment that go through partition bus were shared ability.The general introduction of partition bus is provided, then being to use the equipment of the service of synthesis device to share the detailed inspection of ability to partition bus, then is the detailed inspection that partition bus is used buffer circle, transmits the information transfer capability that page or leaf and address space handle.In addition, the others of partition bus have been considered, such as the policy agent that uses examination subregion passage to provide etc.
The example calculation environment
Fig. 1 and following discussion aim to provide the brief overview that can realize suitable computing equipment of the present invention.For example, any client-server computing machine or the equipment shown in Fig. 1 can be taked this kind form.But, should be appreciated that and can use hand-held, portable and other computing equipment and all types of calculating object in conjunction with the present invention, that is, can use in computing environment, to generate, handle, receive and/or to send data computing equipment or calculating object.Although below described multi-purpose computer, this only is an example, can have network/bus interoperability and mutual thin client computer realization the present invention.Therefore, can involve seldom or the networking master of minimum client resource contains in the service environment (for example, client devices is only taken on the networked environment of the interface of network/bus, such as the object that is placed in certain device) and implements the present invention.In fact, any data or can retrieve data or can all be the desirable or suitable environment of operation object persistence method of the present invention of can storing to the environment of another the computer sends the data.
Although nonessential, the present invention can realize using for the developer for the service of equipment or object via operating system, and/or can be included in according to the present invention within application program operating or the server software.Software can be described in by the general context such as computer executable instructions such as program modules that one or more computing machines are carried out such as client workstation, server or miscellaneous equipment etc.Generally speaking, program module comprises the routine carrying out particular task or realize particular abstract, program, object, assembly, data structure or the like.Usually, can be in each embodiment according to desired function combinations or distribution with each program module.And, can be with other computer system configurations and actualizing the present invention.Other computing system extensively known, environment and/or the configuration that are suitable for using with the present invention comprise, but be not limited to, personal computer (PC), ATM (Automatic Teller Machine), server computer, hand-held or laptop devices, multicomputer system, the system based on microprocessor, programmable consumer electronics, network PC, household electrical appliances, electric light, environment control element, microcomputer, mainframe computer, or the like.
Therefore Fig. 1 shows the example that can realize suitable computingasystem environment 100 of the present invention, although above illustrating, computingasystem environment 100 only is an example of suitable computing environment, does not attempt the scope of use of the present invention or function is proposed any restriction.Computing environment 100 should be construed to any one or the dependence or the requirement of its any combination that have in each assembly that relates to shown in the exemplary operation environment 100 yet.
With reference to figure 1, be used to realize that example system of the present invention comprises the universal computing device of computing machine 110 forms.The assembly of computing machine 110 can include, but not limited to processing unit 120, system storage 130 and will comprise that each system component of system storage is coupled to the system bus 121 of processing unit 120.System bus 121 can be any in the bus structure of some types, comprises memory bus or Memory Controller, peripheral bus and uses local bus any in the various bus architectures.As example, and unrestricted, this type of architecture comprises ISA(Industry Standard Architecture) bus, MCA (MCA) bus, expansion ISA (EISA) bus, video electronic counting ANSI (VESA) local bus, peripheral component interconnect (PCI) bus (also claiming the Mezzanine bus).
Computing machine 110 generally includes various computer-readable mediums.Computer-readable medium can be computing machine 110 addressable any usable mediums, comprises volatibility and non-volatile media, removable and removable medium not.As example, and unrestricted, computer-readable medium can comprise computer-readable storage medium and communication media.Computer-readable storage medium comprises the volatibility that realizes with any method or technology and non-volatile, and removable and removable medium not is used for storing such as information such as computer-readable instruction, data structure, program module or other data.Computer-readable storage medium comprises, but be not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical disc storage, tape cassete, tape, disk storage or other magnetic storage apparatus or can be used for stored expectation information and can be by any other medium of computing machine 110 visits.Communication media is embodied as usually such as computer-readable instruction, data structure, program module or other data in the modulated message signal such as carrier wave or other transmission mechanisms, and comprises any information-delivery media.Term " modulated message signal " refers to the mode of information coding is provided with or changes the signal of its one or more features in signal.As example and unrestricted, communication media comprises such as cable network or direct wire medium such as line, and such as wireless mediums such as acoustics, RF, infrared and other wireless mediums.Above combination in any also should be included in the category of computer-readable medium.
System storage 130 comprises the computer-readable storage medium of volatibility and/or nonvolatile memory form, such as ROM (read-only memory) (ROM) 131 and random-access memory (ram) 132.For example comprise and be stored in usually among the ROM 131 in the Basic Input or Output System (BIOS) 133 (BIOS) that transmits the basic routine of information at computing machine 110 inner each interelement between the starting period.RAM 132 comprises usually can be by processing unit 120 zero accesses and/or current data of operating and/or program module.And unrestricted, Fig. 1 shows operating system 134, application program 135, other program modules 136 and routine data 137 as example.
Computing machine 110 can comprise that also other are removable/not removable, and volatile/nonvolatile computer storage media.As just example, Fig. 1 illustrates the hard disk drive 141 that reads or writes not removable, non-volatile magnetic medium, it is removable to read or write, the disc driver 151 of non-volatile magnetic disk 152 and read or write CD drive 155 such as removable, non-volatile CDs 156 such as CD-RW, DVD-RW or other light media.Other that can be used for the exemplary operation environment are removable/and not removable, volatile/nonvolatile computer storage media includes, but not limited to tape cassete, flash card, digital versatile disc, digital recording band, solid-state RAM, solid-state ROM or the like.Hard disk drive 141 usually by such as interface 140 grades not the removable memory interface link system bus 121, and disc driver 151 and CD drive 155 are usually by linking system bus 121 such as removable memory interfaces such as interfaces 150.
The computer-readable storage medium of each driver also shown in Figure 1 being discussed in the above and being associated provides the storage of computer-readable instruction, data structure, program module and other data for computing machine 110.For example, in Fig. 1, hard disk drive 141 is illustrated as storage operating system 144, application program 145, other program modules 146 and routine data 147.Be noted that these assemblies can be identical or different with routine data 137 with operating system 134, application program 135, other program modules 136.Give operating system 144, application program 145, other program modules 146 and routine data 147 different labels herein, they are different copies at least with explanation.The user can be by coming input command and information in computing machine 110 such as keyboard 162 and the input equipment such as positioning equipments 161 such as mouse, tracking ball or touch pads.Other input equipment (not shown) can comprise microphone, operating rod, game mat, satellite dish, scanner or the like.These and other equipment normal open overcoupling is linked processing unit 120 to user's input interface 160 of system bus 121, but also can be connected with bus structure by other interfaces, such as parallel port, game port or USB (universal serial bus) (USB).Graphic interface 182 also can be connected to system bus 121.One or more Graphics Processing Unit (GPU) 184 can be communicated by letter with graphic interface 182.The display device of monitor 191 or other type is also by linking system bus 121 such as interfaces such as video interfaces 190.Except monitor 191, computing machine also can comprise other peripheral output devices, and such as loudspeaker 197 and printer 196, they can connect by output peripheral interface 195.
Computing machine 110 can move in networking that the logic of using such as one or more remote computers of remote computer 180 connects or distributed environment.Remote computer 180 can be personal computer, server, router, network PC, peer device or other universal network nodes, and generally include with respect to computing machine 110 described many or whole elements, although memory storage devices 181 only is shown in Fig. 1.The logic that Fig. 1 describes connects and comprises Local Area Network 171 and wide area network (WAN) 173, but also can comprise other network/bus.Suchlike network environment is common in family, office, enterprise-wide. computer networks, Intranet and the Internet.
When being used for the lan network environment, computing machine 110 is linked LAN 171 by network interface or adapter 170.When being used for the WAN network environment, computing machine 110 generally includes modulator-demodular unit 172 or is used for by setting up other device of communication such as WAN such as the Internet 173.Can be that internal or external modulator-demodular unit 172 can be linked system bus 121 via user's input interface 160 or other suitable mechanism.In networked environment, program module or its part described with respect to computing machine 110 can be stored in the remote memory storage devices.And unrestricted, Fig. 1 illustrates remote application 185 and resides in the memory devices 181 as example.It is exemplary that network shown in should be appreciated that connects, and can use other means of setting up communication link at intercomputer.
Virtual machine
Fig. 2 is the hardware and software architecture layering logic layers figure that expression is used for the virtualized environment of computer system.In the drawings, virtualization program 210 directly or indirectly moves on physical hardware architecture 212.Virtualization program 210 can be the virtual machine monitor with the master operating system parallel running, or has the master operating system of system supervisor assembly, and wherein the system supervisor assembly is carried out virtual.Virtualization program 210 virtual objective hardware architectures 208 (being shown dotted line) to illustrate that this assembly is the fact of subregion or " virtual machine ", that is, and non-physical presence but by the virtual hardware of virtualization program 210.Visitor's operating system 206 is carried out on objective hardware architecture 208, and software application 204 moves on objective operating system 206.In the virtualization operations environment of Fig. 2, though software application 204 be designed to the general incompatible operating system of master operating system and hardware architecture 212 on move, software application 204 still can move in computer system 202.
Fig. 3 A illustrates and comprises the directly virtual computing system of master operating system (main OS) software layer 304 of operation on physical computer hardware 302, wherein main OS 304 uses for operating system 312 and 314 respectively by the interface of arranging subregion A 308 and B 310, and the access entrance of the resource of physical computer hardware 302 is provided.This makes the OS of winner 304 can bypass the operating system layer 312 and 314 of operation thereon regardlessly.And virtual for carrying out, main OS 304 can be the custom-designed operating system with this machine virtualization capability, perhaps alternatively, can be to have the standard operation system that is used for carrying out virtualized synthetic system supervisor (not shown).
With reference to figure 3A, be two subregions on main OS 304 again, for example can be the subregion A 308 of virtual I ntel 386 processors and for example can be the subregion B 310 of a kind of virtual version in the Motorola 680X0 family processor.Respectively objective operating system (objective OS) A 312 and B 314 in the subregion 308 and 310.Operation is 2 application programs on objective OS A 312, application A 1 316 and application A 2 318; That operation is application program B1 320 on objective OS B 314.
About Fig. 3 A, to notice that importantly subregion A 308 and subregion B 314 (shown in the dotted line) are the virtual machine hardware representations that only exists as software programming.They are to realize owing to carrying out special virtualization software, this virtualization software not only presents subregion A 308 and subregion B 310 to objective OS A 312 and objective OS 314 respectively, also carries out objective OS A 312 and objective OS B 314 indirect and actual physics computer hardware 302 mutual necessary all software steps.
Fig. 3 B illustrates the virtual computing system of replacement, wherein virtual by with master operating system 304 " virtual machine monitor (VMM) 304 ' of parallel running carries out.In some cases, VMM 304 ' can be at master operating system 304 " go up operation and only by master operating system 304 " with the mutual application program of computer hardware 302.In other situation, as shown in Fig. 3 B, VMM 304 ' can be included on some level on the contrary via master operating system 304 " the parts software systems independently of VMM 304 ' and computer hardware 302 directly mutual (are similar to master operating system directly and computer hardware alternant way) with computer hardware 302 indirect interactions but on other level.In other situation, VMM 304 ' can be included on all levels with computer hardware 302 directly mutual (being similar to the direct alternant way of master operating system and computer hardware) and not use master operating system 304 " (although still with master operating system 304 " mutual with Coordination calculation machine hardware 302 use and avoid conflict etc.) fully independently software systems.
All these are used to realize that the variant of above-mentioned subregion is exemplary realization, should be with herein any content interpret for the present invention is not limited to any specific virtual aspect.
The partition bus general introduction: equipment is shared and data transmission
In one aspect of the invention, created a kind of software model of hardware bus.This " bus " is " partition bus ".Partition bus allows the formalized of by stages data transmission mechanism.And, use partition bus to make to make up permission equipment is shared and OS between integrated service more simple.
Partition bus be between a kind of each subregion in the system of a plurality of partition runnings is arranged or within information (request and/or the data) transmission mechanism that uses.But it is not attempted as unique information transmission mechanism available in the virtual machine environment.Similarly, it need not divide each the independent possible target that satisfies the client computer subregion in the cell relation in client computer subregion/service.For example, its unnecessary being loaded into as early as possible in the NT kernel mode environment so that hardware abstraction layer (HAL) can be used it for initialization.
In one aspect, partition bus relies on system supervisor interprocess communication (IPC) to install, sets up communication port in the by stages and will interrupt injecting each subregion.
Fig. 4 illustrates the universal of permission at the partition bus of by stages shared device and transmission information.Describe 3 subregions, served subregion 402 and 2 client computer subregions: client computer subregion A 404 and client computer subregion B406 for one.These subregions are safeguarded by system supervisor 410.Each of these subregions can have certain OS, and perhaps the OS with other subregion is identical, or different OS.Therefore, service subregion 402 can move Windows XP; Client computer subregion A 404 can move Windows 2000, and client computer subregion B 406 can move Windows 98.
And each of these subregions all comprises some equipment.Particularly, service subregion 402 comprises the device driver 418 of physical equipment 424.Device driver 418 with allow that synthesis device communicates by letter with physical equipment 424 virtualization services provide device (VSP) 417 to communicate by letter.Therefore, the synthesis device among the client computer subregion A 404 420 can be via the service of partition bus 408 use physical equipments 424 with the synthesis device 422 among the client computer subregion B 406.
Partition bus 408 provides a kind of means, and the inlet that makes client computer subregion A 404 and client computer subregion B 406 have visit physical equipment 424 uses for its synthesis device 420 and 422 respectively.In other words, partition bus 408 provides a kind of and will wait the entitlement of certain equipment to distribute to the means that wait certain independent OS such as Windows XP 412 such as physical equipment 424, and a kind of service and the means that wait the OS of other operation to share such as Windows 2,000 414 and Windows 98 416 with this equipment.
In addition, partition bus 408 also allows each OS at each by stages mobile data, thereby data can move to the second client computer subregion B 406 from for example serving subregion 402 easily, and the height that can not cause involving legacy system supervisory routine 410 mechanism in the data mobile transaction assesses the cost.
Partition bus: equipment is shared
In another aspect of the present invention, Fig. 5 A illustrates the remote service of being represented by the local agent synthesis device in certain subregion.When for example provide remote service 512, one synthesis devices 506 that are stored in certain remote partition 508 with certain remote operating system 510 promptly to be added to the operating system 504 of client computer subregion by partition bus 514.As remote service 512 Service Instances such as grade with as equipment 506 synthesis devices such as grade between have corresponding one by one.Each synthesis device all can be used for transmitting and receive data as any common equipment transmits and receive data on common protocol bus.
Fig. 5 B illustrates can be corresponding to the equipment of the synthesis device that can use on partition bus and the type of service.Concrete with reference to figure 5B, presented synthesis device 516.This synthesis device 516 can be corresponding to various device 518: storage, network, input (keyboard and mouse), audio frequency, video, smart card, or the like.Synthesis device 516 also can be corresponding to various services 518: time synchronized, drag and drop, file are shared, are cliped and pasted, long-range execution, remote application start, interprocess communication.For the type of the equipment of 516 energy modelings of synthesis device and service in fact without limits.
Partition bus: data transmission
It is a small amount of, medium or a large amount of that partition bus 602 allows according to the data volume that will be sent to another subregion from a subregion, transmits request (or order) and data with at least 3 kinds of distinct methods.Therefore, in Fig. 6, show these the 3 kinds models that send data: loop buffer section model 604; Transmit page or leaf model 606; Handle model 608 with address space.
Generally speaking, loop buffer section model 604 usefulness buffer circles 610 send request and data from a subregion to another subregion.Buffer circle only is the buffer zone of fixed size, and when buffer zone fills up, more information will be put back to the initial of this buffer zone in " ring ", override old data.In common virtual system, buffer circle can be simultaneously for 2 or a plurality of OS use.
Transmit page or leaf model 606 usefulness buffer circles 612 and send request, and send data (illustrate 2 and transmit page or leaf: page or leaf A and B) with transmitting page or leaf 614.Transmit the page or leaf that page or leaf is in the storer to be distributed, by information is copied to the page or leaf that distributed and page copied to another subregion and come transmission information from what distribute from certain subregion.It is different with buffer circle to transmit the page or leaf model, because the ordering that it does not have structure, agreement or is associated.Therefore, transmit the target that the page or leaf model is more suitable for doing dma operation, and when transmitting between page or leaf manipulation data, can avoid keeping locking.
At last, address space is shown and handles model 608.The same with other 2 models, read for another subregion from the request of a subregion with buffer circle 616 storages.3 memory mappings also are shown: service partitioned memory reflection 618, client computer subregion memory map 622 and non-virtual system memory mapping 620.The part that client computer subregion and service subregion can change its memory mapping 618 and 622 is with corresponding to non-virtual system memory mapping 620, thereby do not need copy data (different with the situation that transmits the page or leaf model) and can and read these data by 2 regional addressings.This means that client computer subregion and service subregion change its memory mapping, thereby they can share some publicly-owned physical store page or leaf.In a single day cost is respectively the memory mapping 618 and 622 of client computer with the service subregion to be become corresponding to certain non-virtual system memory mapping 620 earlier, has finished any given affairs subsequently, it must be changeed back its original reflection.Therefore, in contrast to being replicated in the by stages and transmit the transmission page or leaf model of data, the space is handled model and is utilized address mapping to change.
Notion that it should be noted that a small amount of, medium or mass data is a relative concept, is defined by resource for computer system to a certain extent.The availability that depends on system resource can be used suitable transport model.Therefore, based on experience, in the time will transmitting low volume data, the loop buffer section model is the most effective; In the time will transmitting the data of moderate quatity, it is the most effective transmitting the page or leaf model; In the time will transmitting mass data, it is the most effective that address space is handled model.
Therefore, in one aspect of the invention, the loop buffer section model uses the memory area of reserving to transmit request and data (to merge or independent form, being referred to as " information " herein) 2 by stages.In this model, the packets of information that is inserted in the buffer circle is to arrange with the form that a bag is followed another bag.And, bag is inserted into normally comparatively faster operation in the buffer circle, because have only the bag before having inserted could insert follow-up bag afterwards.Therefore, the data that buffer circle is suitable for importing into fast most, thus the subsequent packet that will insert does not have the significant stand-by period.
Fig. 7 shows the loop buffer section model.System supervisor (not shown) is safeguarded 2 subregions, client computer subregion 702 and service subregion 708.Service subregion 708 may move certain service OS 710, and it sends to client computer subregion 702 and OS 704 thereof with the data of the form of data.The data arranged in succession also is placed in the buffer circle 706.Similarly, the information of request form can send to service subregion 708 via buffer circle 706 from client computer subregion 702 and ask to carry out some service.Buffer circle 706 in the non-virtual system storer 705 is mapped to 706A and 706B respectively in subregion 702 and 708, to allow exchange request and data between 2 subregions 702 and 708.Therefore, Fig. 7 is illustrated in 2 bag requests and the 2 bag data that send via buffer circle 706 between service subregion 702 and the client computer subregion 708.
In another aspect of the present invention, used to send the page or leaf model.In this model, the page or leaf storehouse is by the transmission library management.What is interesting is that service subregion or client computer subregion can at any time distribute transmission page or leaf group, and it is added in existing group that uses.Distribute and transmit the administrative power that page subregion of group has this group, be included in the allocation and deallocation of page or leaf in this group.
When a unique cost that is associated with the transmission page or leaf is assigned with and is mapped in client computer and the service subregion simultaneously from it.The physical address map of subregion has also changed, but this is can be by repeatedly transmitting the disposable operation of making thinner.And, be for good and all to be mapped to 2 subregions because transmit page or leaf, thus storage security information therein, but this also means and needs to remove them never.
As mentioned above, transmission page or leaf model shown in Fig. 8 is different with the loop buffer section model shown in Fig. 7, because the transmission page or leaf does not need structure, the agreement that is associated with it or sorts, this makes client's function more freely will transmit page or leaf and uses as the target of dma operation, and can more freely avoid the maintenance locking of manipulation data betwixt.
Fig. 8 illustrates the exemplary realization that transmits the page or leaf model.Described service subregion 802 and client computer subregion 804, these 2 subregions are safeguarded by system supervisor 806.In Fig. 8, the data of 808 handled certain file are served in the user mode process request in the client computer subregion 804 from the virtual disk in the service subregion 802.The request that obtains data from service subregion 802 is modeled as hardware direct memory access (DMA) (DMA) affairs.
As example, application program 812 is at first created the request about 7 page datas, and this has exceeded transmission page or leaf 811 usable range at that time.Therefore, this request has to be divided into 2 son requests.First request passes to virtual disk drive 814 downwards.In some instances, this can be a filtrator, in other example, can be inspired fully (fully-enlightened) disc driver (that is disc driver of only communicating by letter with the central synthesis device that has no virtualization remnants; On the wide sense, term " inspired " (enlightened) refers to the OS environment of knowing that it moves in virtual environment).
The function that virtual disk drive 814 usefulness obtain from its physical device object (PDO) is come creating a standard DMA request 818.Virtual disk drive interface instance 816 is distributed all the current available pages or leaves from the transmission page storehouse immediately.In this example, add up to 5 pages of 811A-811E, as illustrating with vertical line in the transmission page 811.
Next, the server in service subregion 802 sends request to obtain these pages or leaves from virtual disk service 808.When server has filled up the page or leaf of being asked, that is, the data of being asked are copied among page 811A-811E, it beams back message to client computer subregion 804.Subsequent data copies to the buffer zone that application program 812 safeguarded from transmitting page or leaf.When having finished replicate run, transmission page 811A-811E is released.
For second request, from the storehouse, distribute 2 pages or leaves in addition, 811I and 811J (other page or leaf of being described, 811F-811H is the page or leaf that other unshowned request keeps).Therefore, send new request, require 2 pages data to service subregion 802.As preceding, service subregion 802 servers are filled up to transmission page 811I-811J with data, and will beam back client computer 804 about the message of its operation.Data are copied to the buffer zone of application program 812 immediately once more, thereby have finished the request that at first is divided into 2 stages.
Transmit page or leaf 811 and be used to transmit data.Transmit request with buffer circle 810.In this aspect of the invention, that is discussed among sequentiality that request transmits and bag character and Fig. 7 is identical, only transmits with buffer circle among the figure and asks and data.
In others of the present invention, handle with address space and to avoid the above buffer circle of in Fig. 7 and 8, discussing respectively and to transmit the expensive of the performed memory copy of page or leaf.Some affairs relates to the buffer zone in the physical address space that is placed on client computer arbitrarily, and need transmit very lot of data.In this case, do not use and transmit page or leaf, because they can force to copy to the buffer zone of any placement from the data of the transmission page or leaf of fixed position.Can directly be put in its final storer that will be in order to ensure data, the essential physical address map that changes the service subregion, thus it at least temporarily comprises the page or leaf from the client computer subregion.Subsequently, can by software or hardware write the data directly into those the page or leaf or from wherein reading.After finishing affairs, change back map addresses, delete the page or leaf of client computer from the physical address map of server.Because this group operation is higher than cost relatively, so be not used for transmitting a spot of data---copy data in this case and transmit buffer zone or more effective than changing map addresses from transmitting the buffer zone copy data.
In Fig. 9, client computer subregion 902 and service subregion 908 are shown, these two subregions are safeguarded by system supervisor (not shown).Subregion 902 and 908 each the OS of oneself is all arranged, be respectively 904 and 910.These OS are maintenance memory map addresses 914 and 916 respectively, and they arrive the subregion physical address with virtual address map.If transmit bulk information (being mainly data) between these subregions, effective mechanism relates to the memory mapped 914 that changes relevant client computer subregion, and the non-virtual system memory map 907 of itself and some is associated.For example, in Fig. 9, " 3 " in " A " in the client computer subregion 902 mapping and the non-virtual system storage 905 are shone upon and are associated.Similarly, service memory mapping 916 is associated with non-virtual system memory map 907, thereby client computer subregion 902 and service subregion 908 addressable non-virtual system storages 905, and need not the position of data from storer copied to another position.Therefore, " 3 " in service " b " mapping in the subregion 908 and the non-virtual system storer 905 are shone upon and are associated.The cost of not duplicating is just to change memory mapped in the beginning of affairs, and in case finishes affairs and will change back.In the time will transmitting mass data, this mean method of great use.
In another aspect of the present invention, Figure 10 shows a kind of mechanism of the cost that sends information in the by stages and can not cause being associated with the context switching.When OS when it moves on subregion separately, CPU switches in these by stages, for each subregion provides timeslice.In this type of time-division system, when context switches, have and switch to the cost that another task (or subregion) is associated from a task (or subregion).
And, send interruption in the by stages and also reasonably relate to expensive context swap.For example,, obtain service thereby can serve subregion from this if the client computer subregion will " wake " service packet up, then may the essential interruption that sends this type of.Similarly, the service subregion is possibly via interrupting allowing the client computer subregion know that it has finished the task of client computer section post appointment.
For fear of this type of expensive context swap, in Figure 10, in this aspect of the invention, with the command queue of buffer circle as certain subregion, its order is put in the buffer circle of another subregion, interrupts thereby avoided sending in the situation under rate conditions (discussing hereinafter).
Therefore, show client computer subregion 1002 and service subregion 1010.Certain operating system in each partition running, no matter is that Windows 98 also makes Windows XP, and these subregions are safeguarded by certain system supervisor 1016.When client computer subregion 1002 need be from the service of service subregion 1010, for example, may belong to service subregion 1010 all and corresponding to certain synthesis device on the service subregion 1010 the Magnetic Disk Controller service---a method that obtains this service is to allow client computer subregion 1002 that information (being generally command/request) is write buffer circle 1006.Service subregion 1010 can be read these orders immediately and comply any request.Buffer circle 1006 is mapped to (1006A and 1006B) subregion 1002 simultaneously and can be communicated by letter with 1010 these true these subregions that allow, and can not cause the cost of context swap.
Service subregion 1010 can also write buffer circle 1006 with information (normally to request responding and/or data), finishes its request so that client computer subregion 1002 is known.In this case, represent partition bus 1008, but also can use other above-mentioned model with buffer circle 1006.
The subregion that uses this buffer circle to realize does not need to obtain to interrupt from the buffer circle reading order, therefore can avoid sending the cost that interrupts (and all context swap that are associated).Yet, for example when the service subregion be not in operation during from order that the client computer subregion is sent, interrupting so is the proper method that causes that those orders bring into operation.
In brief, the cost that loop buffer section model in this situation has avoided context to switch, but can use interruption under two conditions: when (1) has been empty and be not empty afterwards when the buffer circle that spreads out of, perhaps (2) are when the buffer circle that imports into is full and discontented afterwards, may send to another subregion from a subregion and interrupt (from the viewpoint of client computer subregion 1002, buffer circle 1006 is the buffer circles that spread out of, and buffer circle 1006 is the buffer circles that import into---then opposite to true from the viewpoint of service subregion 1010).
For example, in first kind of situation, when buffer circle 1006 was full and discontented afterwards, client computer subregion 1002 may must allow service subregion 1010 know that its buffer circle 1014 has been filled up for information (may be command/request).In second kind of situation, when buffer circle 1006 was full and discontented afterwards, client computer subregion 1002 may be via interrupting allowing service subregion 1010 know that buffer circle 1006 no longer fills up.
This aspect of the present invention is applicable to the machine with an above processor by it.It may allow client computer subregion 1002 and service subregion 1010 move simultaneously, and each subregion sends information and can not cause context swap to another subregion.
The another kind of form of this aspect of the present invention will be introduced before the transmission interruption and postpone, and the subregion of this interruption will just in time will rerun in the very short time and feasible interruption is unnecessary in case will receive originally.Certainly, interrupt to increase the stand-by period, but the cost of stand-by period may be lower than the cost of interruption.
In another aspect of the present invention, partition bus allows the different editions and the example of a service and deposits.In Figure 11, provide service 1102.The ID of each service is made up of 2 128 Globally Unique Identifier (GUID).Among these ID first represented Service Instance uniquely.For example, Service Instance A1104 can be a virtual disk, and this virtual disk obtains to distribute to its unique ID 1108 (for example, c80ccb8a ...), any other example (not shown) of virtual disk will be received different unique ID.
Be accompanied by Service Instance ID, also have service release ID, also represent by GUID.This GUID represents the agreement that server is realized.(this agreement can be all orders managed of this server and the summation of operation).Therefore, in Figure 11, the service release ID 1106 of service 1102 is: b73606dc ...These two GUID are used to create the bus level plug and play ID of synthesis device on partition bus.The example of the OS that moves in the client computer subregion can decide to load which driver based on these plug and play ID, thereby allows this OS even may safeguard the driver of a plurality of versions of certain service in independent driver file.And, can---as with service---provide GUID to determine device instance and device version to different device version.
In addition, server partition may be such as a plurality of Service Instances of single asset creation such as disks fully simultaneously, and each service realizes different protocol versions.Two examples of same virtual disk can be provided to the client computer subregion, select only to load the driver that is associated with its protocol version of supporting by it.
Aspect some, presented the ability of doing strategic decision-making based on the identity and the degree of confidence of subregion of the present invention.The partition bus passage may be out of favour at some subregion.Particularly, it may be inappropriate allow passage to provide arriving the particular safety subregion.This strategy has various reasons: (1) does not want to allow certain subregion to pretend to be boot disk server for certain security partitioning; (2) do not want to allow not to be subjected to the I/O path of trusting, perhaps; (3) do not want to allow certain subregion to use any resource in another subregion, this may take place when passage provided when making.
In order to support this type of strategic decision-making, the present invention is this aspect training partition bus passage policy agent now.Passage policy agent arbitration channel provides.Figure 12 is illustrated in the passage policy agent of realizing in the example of subregion of Windows of certain version of operation.Can suppose that this type of agency will visit the things of subregion inventory and so on, this will guarantee should allow some concrete I/O passage to this subregion, but forbid other.
The constitutional diagram of this aspect of the present invention shown in Figure 12.In Figure 12,3 subregions that system supervisor 926 is safeguarded are shown: (1) service subregion 1202, (2) security filter subregion 1204 and the objective subregion 1206 of (3) safety.In service subregion 1202, at first, the request that Channel server 1208 provides to channel management storehouse 1210 sendaisles.The second, this this provide to be stored in and provide in the buffer memory 1212.What next provide buffer memory 1212 to provide to be transmitted to security filter subregion 1204 provides buffer memory 1218 (perhaps policy agent just in time is the resident position of certain security partitioning).
The 3rd, the channel management storehouse 1216 in the security filter subregion 1204 will provide and upwards send to passage policy agent 1214 and examine.The 4th, passage policy agent 1214 sends response to channel management storehouse 1216, and telling storehouse 1216 to stop this provides or transmit this and provide.The 5th, provide if transmit, then sending it to provides buffer memory 1224 in the objective subregion 1206 of being trusted.
The 6th, when providing arrival that buffer memory 1224 is provided, its triggers and enumerates passage, and channel is opened in the software decision in this objective subregion 1206 of being trusted.The 7th, channel client computer 1220 is directly beamed back message Channel server 1208 immediately, opens this channel.Therefore, with the method, can arbitrate passage by the policy agent that is positioned at the security filter subregion provides.
Partition bus: others
In others of the present invention, some emulator modules (EDM) concomitantly and with inspired (virtual machine is known) data transfer mechanism co-operating such as picture partition bus etc.With with the same mode of physical hardware devices is asked in response to I/O, EDM is written into.If given objective operating system is written into the physical hardware devices of supporting to touch upon (that is, it comprises corresponding driver), suppose that EDM is correctly write, then this operating system need not modification and gets final product proper operation.Thereby EDM provides fabulous and compatibility legacy operating system, but they introduce very high virtual cost usually.On the contrary, virtualization services provides device (VSP) that much better performance is provided, but their require for client computer OS, new driver (and potentially, other modification) to be written into.
In an example of dummy machine system, in same service subregion, at least part-time has been realized VSP and EDM simultaneously, wherein inner available emulation or virtual unit formation contrast with the client computer subregion, VSP is the service that is positioned at the partition bus upper strata, for the synthesis device in the client computer subregion provides the rear end support.Synthesis device is communicated by letter with VSP.
Particularly, Figure 13 has described client computer subregion 1304 and service subregion 1302, is included in its OS 1306 and 1308 separately that moves on each subregion.Partition bus 1312 provides the means of communication between 2 subregions 1302 and 1304.And these subregions 1302 and 1304 are all safeguarded by system supervisor 1320.EDM 1316 communicates by letter with system supervisor 1320 so that 1315 pairs of client computer subregions 1302 of device emulation show as actual equipment.EDM 1316 also relies on VSP 1314 with communicate by letter with the actual physical device 1322 that client computer subregion 1302 is shared (via device driver 1318).VSP 1314 also manifests this equipment 1322 by synthesis device to client computer subregion 1304.
Of the present invention aspect another, partition bus is from three storehouses, or more generally, forms from three assembly structures.Therefore, in Figure 14 A-14C, show each assembly of partition bus according to form used in different patterns.These three assemblies are:
● the buffer circle management
● channel management and
● bus driver
Different environment uses the different assemblies of partition bus.For example, in Figure 14 A, 1431 of user mode services obtain buffer circle and manage 1432 assemblies, because the code of its inner kernel normal form carries out channel management.This buffer circle that shows as solid box in Figure 14 A is emphatically managed 1432 assemblies and grey font, the channel management by name 1434 of frame of broken lines and 2 assemblies (being illustrated in these 2 assemblies of disappearance in the user model 1431) in addition of bus driver 1436.
In Figure 14 B, all these 3 assemblies are received in the service of kernel mode 1433, that is, and and buffer circle management 1432, channel management 1434 and bus driver 1436.
At last, in Figure 14 C, loader 1435 environment are received buffer circle management 1432 and channel management 1434, but do not receive bus driver 1436 (shown in the frame of broken lines).In brief, partition bus is made up of these 3 assemblies and various other less important assembly, and according to the environment that uses partition bus, these assemblies are revealed as various combinations.
Partition bus uses buffer circle management 1432, transmits data in the by stages with buffer circle.Channel management 1434 is used to set up the tunneling traffic of by stages.At last, in case set up communication port, the input and output operation of bus driver 1436 control by stages.Therefore, synthesis device in some subregion can have the physical device in other subregion---at hardware level---and this type of physical device can be by other synthesis device use in other subregion, because the input and output operation is by bus driver 1436 management.
Below notice, be not all purposes all be directly to relate to physical equipment.Therefore, the present invention other aspect, eligibly realize not corresponding to many purposes of physical equipment with user-mode components (for example DLL) rather than kernel mode driver.Partition bus provides enough foundation structure to supply to create these assemblies with user model fully, thereby allows it to put letter address space menagement, interrupt delivery and other service that generally only can visit from kernel mode.
Although describe the present invention in conjunction with the preferred aspect as shown in each accompanying drawing, should be appreciated that and can use other similar aspect, perhaps can make amendment and add carrying out the same function of the present invention, and can not depart from the present invention described aspect.For example, aspect some, described partition bus of the present invention, it provides transmits data and the entitlement of equipment is distributed to the subregion chosen and shared the mechanism of the service of this equipment with other subregion in the by stages.But the religious doctrine of this paper has also been conceived other equivalent of the apparatus of this aspect of the present invention.Therefore, should not limit the invention to any independent aspect, and should explain the present invention according to the range and the scope of appended claim art.