CN102576312A - 计算机装置 - Google Patents
计算机装置 Download PDFInfo
- Publication number
- CN102576312A CN102576312A CN2009801617896A CN200980161789A CN102576312A CN 102576312 A CN102576312 A CN 102576312A CN 2009801617896 A CN2009801617896 A CN 2009801617896A CN 200980161789 A CN200980161789 A CN 200980161789A CN 102576312 A CN102576312 A CN 102576312A
- Authority
- CN
- China
- Prior art keywords
- franchise
- equipment
- shared device
- priority
- handling part
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
将特定的共享设备作为指定设备而与不具有共享设备(601)的管理权的非特权OS(200)对应起来,在非特权OS(200)起动之前对特权OS(100)提供指定设备的管理权,在非特权OS(200)起动时,使指定设备的管理权从特权OS(100)转移到非特权OS(200),在非特权OS(200)使用指定设备的情况下,非特权OS(200)能够直接对指定设备输出使用要求,无需等待VM(300)以及特权OS(100)的处理,而能够确保非特权OS(200)所需的实时响应性。
Description
技术领域
本发明涉及搭载多个OS(Operating System,操作系统)的计算机装置。
背景技术
近年来,在以工厂自动化仪器、车载仪器等嵌入式仪器为首的计算机装置中,为了针对以往机种追加附加功能、或使系统高功能化,要求提高处理能力。
针对这样的要求,导入了通过设置多个CPU(Central ProcessingUnit,中央处理单元)的运算处理部(核(core))来抑制功耗并且提高处理能力的多核。
为了高效地利用搭载了多核的计算机,需要提高处理的并行性,将处理分散到各核。
作为该实现方法,考虑搭载了实时响应性高的实时操作系统(Real-Time Operating System)(以下称为RTOS)和丰富的应用(application)的通用OS这样的由多个OS构成的方法。
以往,在搭载这样的多个OS的嵌入式仪器中,各OS占有并使用网络用设备、串行通信用设备等输入输出设备,无法共享这样的设备。
因此,面向嵌入式仪器也进行如下的配合处理:利用在通用仪器、PC服务器中运行的VM(Virtual Machine,虚拟机)进行虚拟化,从而在RTOS与通用OS之间进行设备的共享。
图13是示出搭载了以往的VM的计算机装置1000的结构的图。计算机装置1000例如是嵌入式仪器。
另外,特权OS是指拥有仪器上的所有设备的管理权的OS。
相反,非特权OS是指针对仪器上的所有设备的利用,设置了限制的OS。
即,在图13中,特权OS 1100是拥有在计算机装置1000中使用的所有设备的管理权的OS。
另外,非特权OS 1200以及非特权OS 1250是向计算机装置1000中使用的设备进行的访问被限制的OS。
以下,分别详细说明特权OS 1100、非特权OS 1200、非特权OS1250。
特权OS 1100拥有特权OS共享设备处理部1101。
特权OS 1100是被提供了用于利用系统上存在的所有实际设备的特权的OS。
此处,作为特权OS 1100,设想针对实际设备具有丰富的设备处理功能的Linux(注册商标)等通用OS。
特权OS共享设备处理部1101具备如下功能:受理来自自身OS的IO要求以及来自VM 1300上的OS间通信处理部1301的IO要求,向共享设备1601发送IO要求。
另外,IO要求是指共享设备1601的使用要求。
非特权OS 1200拥有非特权OS虚拟设备处理部1201。
非特权OS 1200是向实际设备的访问被限制的OS。
此处,作为非特权OS 1200,设想了实时OS。
非特权OS虚拟设备处理部1201具备对VM 1300上的虚拟设备1350发送IO要求的功能。
非特权OS 1250拥有非特权OS虚拟设备处理部1251。
非特权OS 1250是向实际设备的访问被限制的OS。
此处,作为非特权OS 1250,设想了通用OS。
非特权OS虚拟设备处理部1251具备对VM 1300上的虚拟设备1350发送IO要求的功能。
硬件1400是在计算机装置1中使用的设备组。
硬件1400拥有二次存储装置1500、共享设备1601以及主存储器1701。
主存储器1701是在OS起动时载入二次存储装置上保持的OS映像的区域。
二次存储装置1500拥有作为用于起动非特权OS的文件的非特权OS映像文件1501以及非特权OS起动信息文件1502。
非特权OS映像文件1501是在起动非特权OS时使用的二进制文件。
非特权OS起动信息文件1502记载了非特权OS的起动所需的信息。
在非特权OS起动信息文件1502中包含有所需的存储器大小、页面大小、CPU数、定时器数、OS名、入口地址等。
共享设备1601是例如网络设备、图形设备、键盘、串行接口、鼠标、红外线接口、USB(Universal Serial Bus,通用串行总线)端口等有可能在RTOS和通用OS中共享的设备。
针对每个非特权OS,准备了非特权OS映像文件1501、非特权OS起动信息文件1502。
在图13的例子中,有非特权OS 1200的非特权OS映像文件1501、非特权OS起动信息文件1502,另外,有非特权OS 1250的非特权OS映像文件1501、非特权OS起动信息文件1502。
VM 1300是拥有OS间的通信功能以及虚拟设备的VM。
VM 1300拥有OS间通信处理部1301、OS起动处理部1302、设备要求变换处理部1303以及虚拟设备1350。
OS间通信处理部1301具备将来自非特权OS 1200或者非特权OS 1250的IO要求发送到特权OS 1100的功能。
OS起动处理部1302具备根据特权OS 1100的指示来起动非特权OS 1200以及非特权OS 1250的功能。
设备要求变换处理部1303具备将从非特权OS 1200或者非特权OS 1250向虚拟设备1350的IO要求变换为针对共享设备1601的IO要求的功能。
虚拟设备1350针对非特权OS 1200以及非特权OS 1250,仿真共享设备1601。
即,虚拟设备1350具备如下功能:从非特权OS 1200或者非特权OS 1250受理IO要求,使用设备要求变换处理部1303变换为针对共享设备1601的IO要求,并经由OS间通信处理部1301,将变换后的IO要求发送到特权OS 1100。
接下来,使用图14,说明以往技术中的特权OS 1100上的应用程序(以下简称为应用)起动非特权OS 1200的过程。
首先,在步骤S601中,特权OS 1100上的应用对VM 300上的OS起动处理部1302委托非特权OS 1200的起动。
此时,特权OS 1100上的应用指定二次存储装置1500上存在的非特权OS 1200的非特权OS映像文件1501以及非特权OS起动信息文件1502。
接下来,在步骤S602中,VM 300上的OS起动处理部1302从非特权OS起动信息文件1502,取得OS的起动所需的存储器大小、页面大小、CPU数、定时器数、OS名、入口地址。
接下来,在步骤S603中,VM 1300上的OS起动处理部1302在取得了OS的起动所需的设备的信息之后,对非特权OS 1200分配设备。
所分配的设备是存储器、CPU、定时器。
接下来,在步骤S604中,VM 1300上的OS起动处理部1302在主存储器1701中展开非特权OS映像文件1501。
接下来,在步骤S605中,VM 1300上的OS起动处理部1302对非特权OS 1200的CPU进行起动处理。
这相当于,例如对于对非特权OS 1200分配的CPU的复位矢量,指定在S602中取得的入口地址,对CPU发送硬件复位。
通过以上,由特权OS 1100上的应用进行的非特权OS 1200的起动完成。
接下来,使用图15,说明以往技术中的由VM 1300进行的设备共享的过程。
首先,在步骤S701中,非特权OS 1250上的应用对非特权OS虚拟设备处理部1251进行IO要求。
接下来,在步骤S702中,非特权OS 1250上的非特权OS虚拟设备处理部1251经由VM 300上的OS间通信处理部1301,对VM1300上的虚拟设备1350进行IO要求。
接下来,在步骤S703中,VM 1300针对向虚拟设备1350的IO要求,调用设备要求变换处理部1303,从向虚拟设备1350的IO要求变换为向共享设备1601的IO要求。
接下来,在步骤S704中,VM 1300经由OS间通信处理部1301,对特权OS 1100上的特权OS共享设备处理部1101进行实际IO要求。
接下来,在步骤S705中,特权OS 1100上的特权OS共享设备处理部1101对共享设备1601进行实际IO要求。
通过以上的处理,进行设备的共享。
接下来,使用图16,说明以往技术中的来自非特权OS 1250的IO要求与来自非特权OS 1200的IO要求进行了竞争的情况下的由VM 1300进行的处理。
首先,在步骤S1601中,非特权OS 1250上的应用对非特权OS虚拟设备处理部1251进行IO要求。
接下来,在步骤S1602中,非特权OS 1250上的非特权OS虚拟设备处理部1251经由VM 1300上的OS间通信处理部1301,对VM1300上的虚拟设备1350进行IO要求。
接下来,在步骤S1603中,VM 1300针对向虚拟设备1350的IO要求,调用设备要求变换处理部1303,从向虚拟设备1350的IO要求变换为向共享设备1601的IO要求。
接下来,在步骤S1604中,VM 1300经由OS间通信处理部1301,对特权OS 1100上的特权OS共享设备处理部1101进行实际IO要求。
此处,在步骤S1605中,非特权OS 1200上的应用对非特权OS虚拟设备处理部1201进行IO要求。
接收该IO要求,在步骤S1606中,非特权OS 1200上的非特权OS虚拟设备处理部1201经由VM 1300上的OS间通信处理部1301,对VM 1300上的虚拟设备1350进行IO要求。
接下来,在步骤S1607中,VM 1300针对向虚拟设备1350的IO要求,调用设备要求变换处理部1303,从向虚拟设备1350的IO要求变换为向共享设备1601的IO要求。
接下来,在步骤S1608中,VM 1300经由OS间通信处理部1301,对特权OS 1100上的特权OS共享设备处理部1101进行实际IO要求。
接收该实际IO要求,在步骤S1609中,特权OS 1100上的特权OS共享设备处理部1101按照IO要求的到达顺序实施处理。
在图16的情况下,首先处理来自非特权OS 1250的IO要求。
最后,在步骤S1610中,特权OS 1100上的特权OS共享设备处理部1101处理非特权OS 1200的IO要求。
如上所述,在IO要求进行了竞争的情况下,按照IO要求的到达顺序被实施。
专利文献1:日本特开昭62-78631号公报
发明内容
在图13所示的结构中,来自非特权OS 1200的IO要求全部经由VM 1300上的虚拟设备1350而由特权OS 1100上的特权OS共享设备处理部101处理。
对于特权OS 1100,一般利用设备驱动器丰富的Linux(注册商标)等通用OS。
在图13的结构中,在非特权OS 1200是RTOS的情况下,由作为通用OS的特权OS 1100上的特权OS共享设备处理部1101实施来自非特权OS 1200的IO要求。因此,存在无法确保非特权OS 1200要求的实时响应性这样的课题。
即,非特权OS 1200无法直接对共享设备1601进行IO要求,来自非特权OS 1200的IO要求经由VM 1300以及并非RTOS的特权OS 1100的处理而传达到共享设备1601,所以无法确保实时响应性。
作为针对该课题的第一个解决方法,考虑利用RTOS作为特权OS 1100。
但是,一般存在如下课题:RTOS的设备对应能力弱,在利用RTOS作为特权OS 1100的情况下,需要在RTOS上追加与在计算机装置1000中共享的所有设备对应的设备处理用的模块。
作为第二个解决方法,还考虑仅使特权OS 1100上的特权OS共享设备处理部1101实时化的方式。
但是,一般无法仅使在通用OS上动作的特定的设备处理部实时化,需要修正通用OS的内部构造,使OS整体实时化。
在图13的例子中,需要特权OS 1100整体的实时化。
即,存在如下课题:为了确保共享设备的实时响应性,必须使通用OS整体实时化。
本发明的主要目的之一在于解决这些课题,主要目的在于满足非特权OS要求的实时响应性,并且在多个OS间高效地共享设备。
本发明的计算机装置连接有1个以上的设备,该计算机装置的特征在于,具有:
特权OS(Operating System),被赋予了各设备的管理权;
1个以上的非特权OS,没有被赋予任一设备的管理权;
信息存储部,存储示出了非特权OS和对所述非特权OS指定的指定设备的指定设备信息;以及
管理权控制部,在所述特权OS起动之后,当某一个非特权OS起动时,参照所述指定设备信息,在所起动的非特权OS中有指定设备的情况下,使所起动的非特权OS的指定设备的管理权从所述特权OS转移到所起动的非特权OS。
根据本发明,将特定的设备作为指定设备而与非特权OS对应起来,在该非特权OS的起动时,使指定设备的管理权从特权OS转移到非特权OS,所以该非特权OS能够直接对指定设备输出使用要求,无需等待特权OS的处理,而能够确保该非特权OS所需的实时响应性。
附图说明
图1是示出实施方式1的计算机装置的结构例的图。
图2是示出实施方式1的设备管理权表的例子的图。
图3是示出实施方式1的设备管理权表的例子的图。
图4是示出实施方式1的非特权OS起动信息文件的例子的图。
图5是示出实施方式1的非特权OS设备起动信息文件的例子的图。
图6是示出实施方式1的计算机装置的结构例的图。
图7是示出实施方式1的非特权OS的起动过程的例子的流程图。
图8是示出实施方式1的IO要求的输出过程、IO要求的受理过程的例子的流程图。
图9是示出实施方式1的IO要求的输出过程、IO要求的受理过程的例子的流程图。
图10是示出实施方式1的IO要求的输出过程、IO要求的受理过程的例子的流程图。
图11是示出实施方式2的IO要求的输出过程、IO要求的受理过程的例子的流程图。
图12是示出实施方式1~3的计算机装置的硬件结构例的图。
图13是示出以往的计算机装置的结构例的图。
图14是示出以往的非特权OS的起动过程的例子的流程图。
图15是示出以往的IO要求的输出过程、IO要求的受理过程的例子的流程图。
图16是示出以往的IO要求的输出过程、IO要求的受理过程的例子的流程图。
附图标记说明
1:计算机装置;100:特权OS;101:特权OS共享设备处理部;102:特权OS共享设备删除处理部;103:特权OS虚拟设备处理部;104:特权OS虚拟设备追加处理部;200:非特权OS;201:非特权OS虚拟设备处理部;202:非特权OS共享设备处理部;251:非特权OS虚拟设备处理部;252:非特权OS共享设备处理部;300:VM;301:OS间通信处理部;302:OS起动处理部;303:设备要求变换处理部;304:设备分配处理部;305:设备要求传送处理部;350:虚拟设备;360:设备管理权表;370:IO要求保持队列;400:硬件;500:二次存储装置;501:非特权OS映像文件;502:非特权OS起动信息文件;503:非特权OS设备起动信息文件;601:共享设备;701:主存储器。
具体实施方式
实施方式1.
在本实施方式中说明如下方式:通过对非特权OS仅追加用于设备共享的功能,满足非特权OS要求的实时响应性,并且实现设备的共享。
更具体而言,在本实施方式中,将特定的共享设备作为指定设备而与不具有共享设备的管理权的非特权OS对应起来,在该非特权OS起动之前对特权OS提供指定设备的管理权,在该非特权OS起动时,使指定设备的管理权从特权OS转移到非特权OS。
指定设备例如是该非特权OS中的使用频度高的共享设备。
通过该管理权的转移,该非特权OS能够直接对指定设备输出IO要求,无需等待虚拟机以及特权OS的处理,而能够确保该非特权OS所需的实时响应性。
另外,将对非特权OS转移了管理权之后的指定设备还称为管理设备。
另外,IO要求是指共享设备的使用要求。
图1示出本实施方式的计算机装置1的结构例。
计算机装置1例如是嵌入式仪器。
硬件400是在计算机装置1中使用的设备组。
VM 300是拥有OS间的通信功能以及虚拟设备的VM。
特权OS 100是拥有在计算机装置1中使用的所有设备的管理权的OS。
非特权OS 200以及非特权OS 250是向设备的访问被限制了的OS。
首先,说明硬件400。
硬件400拥有二次存储装置500、共享设备601以及主存储器701。
主存储器701是在OS起动时载入二次存储装置500上保持的OS映像的区域。
共享设备601是例如网络设备、图形设备、键盘、串行接口、鼠标、红外线接口、USB(Universal Serial Bus)端口等能够在RTOS与通用OS中共享的设备。
共享设备601也可以存在多个。
另外,向共享设备601的IO要求是共享设备1601的使用要求。
二次存储装置500拥有为了起动非特权OS 200以及非特权OS250而使用的非特权OS映像文件501以及非特权OS起动信息文件502。二次存储装置500是信息存储部的例子。
非特权OS映像文件501是在起动OS时所使用的二进制文件。
非特权OS起动信息文件502记载有OS的起动所需的信息。关于信息的内容,是所需的存储器大小、页面大小、CPU数、定时器数、OS名、入口地址。图4示出非OS起动信息文件502的例子。
针对每个非特权OS,准备了非特权OS映像文件501、非特权OS起动信息文件502。
在图1的例子中,有非特权OS 200的非特权OS映像文件501、非特权OS起动信息文件502,另外,有非特权OS 250的非特权OS映像文件501、非特权OS起动信息文件502。
另外,二次存储装置500还拥有非特权OS设备起动信息文件503。
在非特权OS设备起动信息文件503中,记载有非特权OS和对非特权OS指定的设备(指定设备)及优先级。
非特权OS设备起动信息文件503是指定设备信息的例子,二次存储装置500是信息存储部的例子。
非特权OS设备起动信息文件503是例如图5所示的信息。
不一定针对每个非特权OS准备非特权OS设备起动信息文件503,有时也仅对1个非特权OS准备非特权OS设备起动信息文件503。
接下来,说明VM 300(虚拟机)。
VM 300除了OS间通信处理部301、OS起动处理部302、设备要求变换处理部303以及虚拟设备350以外,还拥有设备分配处理部304、设备要求传送处理部305。
OS间通信处理部301具备将来自非特权OS 200的IO要求发送到特权OS 100的功能。
OS起动处理部302具备根据特权OS 100的指示来起动非特权OS 200以及非特权OS 250的功能。
设备要求变换处理部303具备将从非特权OS向虚拟设备350的IO要求变换为针对共享设备601的IO要求的功能。
虚拟设备350针对非特权OS 200以及非特权OS 250,仿真共享设备601。
存在与共享设备601的数量相同的数量的虚拟设备350。
即,虚拟设备350从非特权OS 200以及非特权OS 250受理IO要求,使用设备要求变换处理部303变换为针对共享设备601的IO要求,并对设备要求传送处理部305委托IO要求的处理。
设备分配处理部304从VM 300上的OS起动处理部302,受理向非特权OS的设备分配委托,对非特权OS分配共享设备。
例如,从VM 300上的OS起动处理部302,受理向非特权OS 200的设备分配委托,读出二次存储装置500上的非特权OS 200的非特权OS设备起动信息文件503,向非特权OS 200分配共享设备601。
设备要求传送处理部305从设备管理权表360确定具有共享设备601的管理权的OS,向相应的OS传送IO要求。
VM 300管理设备管理权表360。
设备管理权表360是表示当前哪个OS具有哪个共享设备的管理权的表。设备管理权表360是设备管理权信息的例子。
即,设备管理权表360是表示针对每个共享设备601,哪一个OS具有管理权的表。
设备管理权表360是设备管理权信息的例子。
设备管理权表360是例如图2所示的信息。
另外,在VM 300中,设备分配处理部304在特权OS 100起动之后,当某一个非特权OS起动时,参照非特权OS设备起动信息文件503,在所起动的非特权OS中存在指定设备的情况下,使所起动的非特权OS的指定设备的管理权从特权OS 100转移到所起动的非特权OS。
另外,OS间通信处理部301、设备要求传送处理部305以及虚拟设备350通过协作,输入从某一个OS输出的针对某一个共享设备601的IO要求(使用要求),并参照设备管理权表360,辨别具有以所输入的IO要求为对象的共享设备601的管理权的OS,对辨别出的OS输出IO要求。
OS间通信处理部301、设备要求传送处理部305以及虚拟设备350实现OS辨别部的功能。
接下来,说明特权OS 100。
特权OS 100除了特权OS共享设备处理部101以外,还拥有特权OS共享设备删除处理部102、特权OS虚拟设备处理部103以及特权OS虚拟设备追加处理部104。
特权OS 100是被提供了用于利用系统上存在的所有实际设备的特权的OS。
即,特权OS 100在初始状态下被赋予了所有共享设备601的管理权。
关于特权OS 100,设想具有针对实际设备的丰富的设备处理用模块的Linux(注册商标)等通用OS。
特权OS共享设备处理部101具备受理来自自身OS的IO要求以及来自VM 300上的OS间通信处理部301的IO要求、并向共享设备601发送IO要求的功能。
特权OS共享设备删除处理部102根据来自VM 300的指示,进行将对特权OS 100分配有管理权的共享设备601从特权OS 100切离的处理。
特权OS虚拟设备处理部103对VM 300上的虚拟设备350进行IO要求。
特权OS虚拟设备追加处理部104根据来自VM 300的指示,进行对特权OS 100分配VM 300上的虚拟设备350的处理。
接下来,说明非特权OS 200。
非特权OS 200拥有非特权OS共享设备处理部202。
非特权OS 200设想了实时OS。
另外,在本实施方式中,说明在非特权OS 200中有指定设备、在非特权OS 250中无指定设备的例子。
即,关于非特权OS 200,在非特权OS设备起动信息文件503中示出自身OS,另外指定了指定设备,赋予了针对指定设备的管理权。
另一方面,关于非特权OS 250,在非特权OS设备起动信息文件503中没有示出自身OS,另外没有指定指定设备。
另外,以下,将非特权OS 200的指定设备作为共享设备A601a而进行说明。
非特权OS共享设备处理部202具备如下功能:管理IO要求保持队列370,在IO要求进行了竞争的情况下,根据IO要求的发送源OS的优先级,对硬件400上的共享设备601发送IO要求。
非特权OS共享设备处理部202在实施方式2中作为执行控制部而动作。
IO要求保持队列370具有临时持有来自VM 300上的设备要求传送处理部305以及作为自身OS的非特权OS 200的IO要求的功能。
非特权OS共享设备处理部202根据IO要求的发送源OS的优先级,变更队列的顺序。
关于IO要求的发送源OS的优先级,使用非特权OS设备起动信息文件503针对共享设备601的优先级。
另外,在不存在非特权OS设备起动信息文件503的情况下,成为最低优先级。
接下来,说明非特权OS 250。
非特权OS 250是向实际设备的访问被限制了的OS。
非特权OS 250设想了通用OS。
非特权OS 250拥有非特权OS虚拟设备处理部251。
非特权OS虚拟设备处理部251具备对VM 300上的虚拟设备350发送IO要求的功能。
如上所述,在本实施方式中,在非特权OS 200中有指定设备,且在非特权OS 250中无指定设备,所以虽然在非特权OS 200中存在非特权OS共享设备处理部202,但在非特权OS 250中没有与非特权OS共享设备处理部202相当的要素。
取而代之,在非特权OS 250中,设置有用于向虚拟设备350发生针对共享设备601的IO要求的非特权OS虚拟设备处理部251。
图2示出VM 300具备的设备管理权表360的内容的例子。
设备管理权表360针对每个共享设备,示出具有管理权的OS。
作为设备管理权表360的表的项目,是共享设备名、具有管理权的OS名、具有管理权的OS的优先级、表示当前的管理状况的管理权标志。
在图2的例子中,示出了对于共享设备A601a是由特权OS 100正在管理、且特权OS 100的优先级是0。
图5示出非特权OS设备起动信息文件503的例子。
作为非特权OS设备起动信息文件503的表的项目,有OS名、共享设备名、优先级。
在图5的例子中,示出了对非特权OS 200设定了关于共享设备A601a的优先级100的情形。
另外,在本实施方式中,优先级的值越大,优先级越高。
接下来,使用图7,说明本实施方式中的特权OS 100上的应用起动非特权OS 200的过程。
首先,在步骤S801中,特权OS 100对VM 300上的OS起动处理部302委托非特权OS 200的起动。
此时,特权OS 100指定二次存储装置500上存在的非特权OS 200的非特权OS映像文件501、非特权OS起动信息文件502以及非特权OS设备起动信息文件503。
接下来,在步骤S802中,VM 300上的OS起动处理部302从非特权OS起动信息文件502(图4),取得非特权OS 200的起动所需的存储器大小、页面大小、CPU数、定时器数、OS名、入口地址。
接下来,在步骤S803中,VM 300上的OS起动处理部302在取得了非特权OS 200的起动所需的设备的信息之后,对非特权OS 200分配设备。
所分配的设备是存储器、CPU、定时器。
接下来,在步骤S804中,VM 300上的OS起动处理部302将非特权OS映像文件501展开到主存储器701中,对分配给非特权OS 200的CPU的程序计数器指定入口地址。
接下来,在步骤S805中,VM 300上的设备分配处理部304从非特权OS设备起动信息文件503(图5),取得非特权OS 200的指定设备以及非特权OS 200的优先级。
在图5的情况下,非特权OS 200的指定设备是共享设备A601a,对非特权OS 200设定了关于共享设备A601a的优先级100。
接下来,在步骤S806中,VM 300上的设备分配处理部304以在步骤S805中取得的起动中的非特权OS 200的指定设备(共享设备A601a)为关键字,判断是否需要从设备管理权表360(图2)中变更具有该设备的管理权的OS以及设备的管理权。
在图2的例子中,当前具有共享设备A601a的管理权的OS是特权OS 100,特权OS 100的优先级是0。
另一方面,如图5所示,当前起动中的非特权OS 200的关于共享设备A601a的优先级是100,高于特权OS 100的优先级。
因此,设备分配处理部304决定对非特权OS 200分配共享设备A601a的管理权,判断为需要变更管理权。
在需要变更管理权的情况下,处理转移到步骤S807,在不需要变更管理权的情况下,处理转移到步骤S812。
在步骤S807中,VM 300上的设备分配处理部304调用特权OS100上的特权OS共享设备删除处理部102。
接下来,在步骤S808中,特权OS 100上的特权OS共享设备删除处理部102在使特权OS 100的动作继续的状态下,从特权OS 100切离共享设备A601a,并通知给VM 300上的设备分配处理部304。
接下来,在步骤S809中,VM 300上的设备分配处理部304调用特权OS 100上的特权OS虚拟设备追加处理部104。
接下来,在步骤S810中,特权OS虚拟设备追加处理部104在使特权OS 100的动作继续的状态下,将特权OS 100与对应于共享设备A601a的虚拟设备350对应起来,并通知给VM 300上的设备分配处理部304。
接下来,在步骤S811中,VM 300上的设备分配处理部304更新设备管理权表360。
在本例子中,共享设备A601a的管理权从特权OS 100转移到非特权OS 200,所以设备管理权表360从图2变更为图3。
最后,在步骤S812中,VM 300上的OS起动处理部302对非特权OS 200的CPU进行起动命令。
通过以上,非特权OS 200的起动完成。
另外,以上说明了共享设备A601a的管理权从特权OS 100转移到非特权OS 200的情况,但共享设备的管理权也可以从非特权OS转移到另一非特权OS。
例如,通过以上的过程,在共享设备A601a的管理权转移到非特权OS 200之后,非特权OS 250起动,非特权OS 250的关于共享设备A601的优先级是200的情况下,由于非特权OS 250的优先级更高,所以共享设备A601a的管理权转移到非特权OS 250。
接下来,使用图8,说明本实施方式中的将设备进行共享的方法。
此处,说明非特权OS 250使用共享设备A601a的情况。
首先,在步骤S901中,非特权OS 250上的应用对非特权OS虚拟设备处理部251进行共享设备A601a的IO要求。
接下来,在步骤S902中,非特权OS 250上的非特权OS虚拟设备处理部251经由VM 300上的OS间通信处理部301,对VM 300上的与共享设备A601a对应的虚拟设备350进行IO要求。
接下来,在步骤S903中,VM 300上的虚拟设备350针对向自身的IO要求,调用设备要求变换处理部303,设备要求变换处理部303从向虚拟设备350的IO要求变换为向共享设备A601a的IO要求,接下来虚拟设备350调用VM 300上的设备要求传送处理部305。
接下来,在步骤S904中,VM 300上的设备要求传送处理部305参照设备管理权表360,调查对哪个OS分配了共享设备A601a,并通知给虚拟设备350。
当设为设备管理权表360是图3的状态时,设备要求传送处理部305通知对非特权OS 200分配了共享设备A601a的管理权。
接下来,在步骤S905中,VM 300的虚拟设备350经由OS间通信处理部301,对具有共享设备A601a的管理权的OS、即非特权OS200上的非特权OS共享设备处理部202进行实际IO要求。
在非特权OS 200上的非特权OS共享设备处理部202中,将来自虚拟设备350的实际IO要求(非特权OS 250的IO要求)以及非特权OS 250的优先级保存到IO要求保持队列370中,并调查有无来自其他OS(特权OS 100、非特权OS 200)的实际IO要求的输出。
然后,在确认了没有来自其他OS的实际IO要求之后,在步骤S906中,非特权OS 200上的非特权OS共享设备处理部202对作为管理设备的共享设备A601a进行实际IO要求。之后,非特权OS 250上的应用能够使用共享设备A601a。
另外,参照图10,在后面叙述从其他OS输出了实际IO要求的情况的处理。
通过以上的处理,进行设备的共享。
另外,在特权OS 100上的应用输出共享设备A601的IO要求的情况下,也成为与上述非特权OS 250的情况同样的处理过程。
接下来,使用图9,说明非特权OS 200使用共享设备A601a时的处理过程。
首先,在步骤S1001中,非特权OS 200上的应用对非特权OS共享设备处理部202进行共享设备A601a的IO要求。另外,在非特权OS 200中,识别出非特权OS 200具有共享设备A601a的管理权。
接下来,在步骤S1002中,非特权OS共享设备处理部202将来自非特权OS 200上的应用的IO要求和非特权OS 200的优先级保存到IO要求保持队列370中,调查有无来自其他OS(特权OS 100、非特权OS 250)的实际IO要求的输出。
然后,在确认了没有来自其他OS的实际IO要求之后,在步骤S1003中,非特权OS共享设备处理部202对共享设备A601a进行实际IO要求。之后,非特权OS 200上的应用能够使用共享设备A601a。
另外,参照图10,在后面叙述从其他OS输出了实际IO要求的情况的处理。
通过以上的处理,进行设备的共享。
接下来,使用图10,说明本实施方式中的非特权OS 200和非特权OS 250的IO要求进行了竞争的情况的处理。
首先,在步骤S1101中,非特权OS 250上的应用对非特权OS虚拟设备处理部251进行共享设备A601a的IO要求。
接下来,在步骤S1102中,非特权OS 250上的非特权OS虚拟设备处理部251经由VM 300上的OS间通信处理部301,对VM 300上的与共享设备A601a对应的虚拟设备350进行IO要求。
接下来,在步骤S1103中,VM 300上的虚拟设备350针对向自身的IO要求,调用设备要求变换处理部303,设备要求变换处理部303从向虚拟设备350的IO要求变换为向共享设备A601a的IO要求,接下来虚拟设备350调用VM 300上的设备要求传送处理部305。
接下来,在步骤S1104中,VM 300上的设备要求传送处理部305参照设备管理权表360,调查对哪个OS分配了共享设备A601a,并通知给虚拟设备350。
当设为设备管理权表360是图3的状态时,设备要求传送处理部305通知对非特权OS 200分配了共享设备A601a的管理权。
接下来,在步骤S1105中,VM 300上的虚拟设备350经由OS间通信处理部301,对具有共享设备A601a的管理权的OS、即非特权OS 200上的非特权OS共享设备处理部202进行实际IO要求。
接下来,在步骤S1106中,非特权OS 200上的非特权OS共享设备处理部202将来自虚拟设备350的实际IO要求(非特权OS 250的IO要求)以及非特权OS 250的优先级保存到IO要求保持队列370中,调查有无来自其他OS(特权OS 100、非特权OS 200)的实际IO要求的输出。
此处,在IO要求保持队列370中不存在来自其他OS的IO要求,所以步骤S1106的IO要求被保存到开头。
关于保存到IO要求保持队列370中的OS优先级,使用非特权OS设备起动信息文件503的针对共享设备601的优先级。另外,在不存在非特权OS设备起动信息文件503的情况下,设为最低优先级。
在本例子的情况下,由于不存在非特权OS 250用的非特权OS设备起动信息文件503,所以设为最低优先级(0)。另外,在特权OS 100的情况下,在所有共享设备601中设为最低优先级(0)。
此处,设为在步骤S1107中,非特权OS 200上的应用对非特权OS共享设备处理部202进行了共享设备A601a的IO要求。另外,在非特权OS 200中,识别出非特权OS 200具有共享设备A601a的管理权。
非特权OS 200上的非特权OS共享设备处理部202将来自非特权OS 200上的应用的IO要求和非特权OS 200的优先级保存到IO要求保持队列370中,并调查有无来自其他OS(特权OS 100、非特权OS 250)的实际IO要求的输出。
在图10的例子中,来自非特权OS 250的IO要求先被保存到IO要求保持队列370中。
因此,非特权OS共享设备处理部202根据OS优先级,调换IO要求保持队列370内的IO要求的顺序。
更具体而言,针对共享设备A601a的非特权OS 250的优先级最低,非特权OS 200的优先级是100,所以非特权OS 200的优先级高于在先的非特权OS 250的优先级。
因此,在步骤S1108中,非特权OS 200上的非特权OS共享设备处理部202根据IO要求的发送源的OS优先级,变更向IO要求保持队列370的IO要求的保存顺序。
即,非特权OS共享设备处理部202将来自非特权OS 200的IO要求保存到IO要求保持队列370的开头。
最后,在步骤S1109中,非特权OS 200上的非特权OS共享设备处理部202从在IO要求保持队列370的开头中保存的IO要求依次对作为管理设备的共享设备A601a委托处理。
在图10的例子的情况下,首先对共享设备A601a委托来自非特权OS 200的IO要求,接下来对共享设备A601a委托来自非特权OS250的IO要求。
另外,非特权OS 200以及非特权OS 250对特权OS 100具有管理权的共享设备进行IO要求的情况的处理过程与图15以及图16所示的过程相同,省略说明。
另外,以上说明了如下结构(图1):对非特权OS 200设定共享设备A601a作为指定设备,对非特权OS 200设置了非特权OS共享设备处理部202,对非特权OS 250设置了非特权OS虚拟设备处理部251。
另一方面,也可以对非特权OS 200设定共享设备A601a作为指定设备,对非特权OS 250指定共享设备B601b作为指定设备。
在该情况下,如图6所示,对非特权OS 200设置了非特权OS虚拟设备处理部201和非特权OS共享设备处理部202,对非特权OS250设置了非特权OS虚拟设备处理部251和非特权OS共享设备处理部252。
在图6的结构中,在非特权OS 200上的应用使用共享设备B601b的情况下,将IO要求输出到非特权OS虚拟设备处理部201。然后,非特权OS虚拟设备处理部201将共享设备B601b的IO要求输出到VM 300上的虚拟设备350。
VM 300上的处理如上所述,从虚拟设备350对非特权OS 250上的非特权OS共享设备处理部252输出共享设备B601b的IO要求。
非特权OS共享设备处理部252的处理自身与非特权OS共享设备处理部202相同,所以省略说明。
这样,在本实施方式的设备共享方式中,将特定的共享设备作为指定设备而与非特权OS对应起来,在该非特权OS的起动时使指定设备的管理权从特权OS转移到非特权OS,所以该非特权OS能够直接对指定设备输出使用要求,无需等待VM以及特权OS的处理,而能够确保该非特权OS所需的实时响应性。
另外,在本实施方式的设备共享方式中,具备拥有非特权OS所使用的硬件信息的区域、对IO要求的发送目的地OS进行管理的区域、以及拥有IO要求及要求源OS优先级的区域,在非特权OS起动时对非特权OS分配设备,进而将来自其他OS的IO要求发送到具有设备管理权的非特权OS,在IO要求进行了竞争的情况下,根据IO要求发送源的OS优先级来实施IO要求。
因此,在向共享设备的IO要求进行了竞争的情况下,也能够确保向具有共享设备的管理权的OS的实时响应性。
在本实施方式中,说明了在具备
(1)多个设备能够共享的虚拟机(VM)、
(2)能够操作系统上的所有设备的一个OS(特权OS)、
(3)能够操作系统上的某个设备的多个OS(非特权OS)、
(4)拥有各种数据的二次存储装置、
(5)作为硬件资源的CPU、存储器、
(6)针对共享设备的VM上的虚拟设备
的结构中,具备以下的结构要素的计算机装置。
(A)设备管理权表,示出了针对各共享设备的OS的优先级以及设备的管理状态;
(B)非特权OS设备起动信息文件,记述了非特权OS使用的共享设备以及优先级;
(C)设备分配处理部,在非特权OS起动时,分配被起动OS所使用的设备;
(D)设备要求传送处理部,判断向哪个OS分配了共享设备,并向相应的OS传送IO要求;
(E)IO要求保持队列,保存有IO要求的发送源OS的优先级和IO要求;
(F)共享设备处理部,根据IO要求的发送源OS的优先级,对共享设备委托IO要求的处理。
另外,在本实施方式中说明了如下的计算机装置,即,在该计算机装置中,设备分配处理部在非特权OS起动时,从非特权OS设备起动信息文件中取得非特权OS所使用的设备以及针对该设备的优先级,从设备管理权表确定具有当前的设备的管理权的OS和该OS的优先级,根据优先级从当前使用中的OS中删除设备,向起动中的非特权OS分配设备,对非特权OS移交设备的管理权,并对设备管理权表进行包括管理权的转移的更新。
另外,在本实施方式中说明了如下的计算机装置,即,在该计算机装置中,VM上的设备要求传送处理部利用设备管理权表,检查对哪个OS分配了共享设备,经由VM上的OS间通信处理部,对非特权OS上的非特权OS共享设备处理部进行实际IO要求,从而能够在OS间共享设备。
另外,在本实施方式中说明了如下的计算机装置,即,在该计算机装置中,共享设备处理部根据IO要求的发送源OS的优先级,将IO要求按照优先级顺序保存到IO要求保持队列中,在来自多个OS的IO要求进行了竞争的情况下,从IO要求保持队列的开头起对IO要求进行处理,从而即使在针对共享设备的IO要求进行了竞争的情况下,也优先实施具有设备管理权的非特权OS的IO要求。
实施方式2.
接下来,说明实施方式2的计算机装置。
本实施方式的计算机装置的结构与图1或者图6相同。
在本实施方式中,除了非特权OS共享设备处理部202的动作以及共享设备601的动作以外,与实施方式1相同。
另外,在本实施方式中,非特权OS共享设备处理部202作为执行控制部的例子而动作。
另外,在图6所示的结构中,非特权OS共享设备处理部252也作为执行控制部的例子而动作。
以下,依照图1的结构进行说明。
在本实施方式中,共享设备601根据来自非特权OS共享设备处理部202的指示,取消执行中的IO要求的执行。
在本实施方式中,在共享设备A601a中执行从某一个OS发出的IO要求时从其他OS发出了针对共享设备A601a的IO要求的情况下,非特权OS共享设备处理部202比较新发出的IO要求的发出源的OS针对共享设备A601a的优先级与执行中的IO要求的发出源的OS针对共享设备A601a的优先级。
然后,非特权OS共享设备处理部202在新发出的IO要求的发出源的OS的优先级更高的情况下,使执行中的IO要求的执行停止,使新发出的IO要求的执行开始。
更具体而言,本实施方式中的非特权OS共享设备处理部202在受理来自VM 300以及自身OS 200的IO要求时,首先在IO要求保持队列370中保存IO要求和IO要求的发送源OS的OS优先级。
之后,非特权OS共享设备处理部202检查共享设备A601a是否正在处理以前的来自其他OS的IO要求,在没有处理的情况下,对共享设备A60a1委托IO要求的执行。
在共享设备A601a已经正在执行来自其他OS的IO要求的情况下,非特权OS共享设备处理部202比较共享设备A601a执行着的IO要求的要求源OS的优先级与新受理的IO要求的要求源OS的优先级。
在新受理的IO要求的要求源OS的优先级更高的情况下,非特权OS共享设备处理部202对共享设备A601a指示取消当前执行中的IO要求,对共享设备A601a指示实施优先级高的IO要求。
进而,非特权OS共享设备处理部202从IO要求保持队列370中删除成为取消的对象的IO要求,使成为取消的对象的IO要求退避到规定的退避区域。
接下来,在优先级高的IO要求的执行结束之后,非特权OS共享设备处理部202将存在于退避区域中的IO要求再次保存到IO要求保持队列370中,并对共享设备A601a指示执行所取消的IO要求。
本实施方式中的特权OS 100上的应用起动非特权OS 200的过程与图7相同,省略说明。
另外,本实施方式中的将设备进行共享的方法与图8以及图9相同,省略说明。
接下来,使用图11,示出本实施方式中的非特权OS 200和非特权OS 250的IO要求进行了竞争的情况的处理。
另外,步骤S1201~S1206与图10的步骤S1101~S1106相同。
另外,步骤S1208与图10的步骤S1107相同。
以下,包括与图10的重复部分在内而说明步骤S1201~S1213。
首先,在步骤S1201中,非特权OS 250上的应用对非特权OS虚拟设备处理部251进行共享设备A601a的IO要求。
接下来,在步骤S1202中,非特权OS 250上的非特权OS虚拟设备处理部251经由VM 300上的OS间通信处理部301,对VM 300上的与共享设备A601a对应的虚拟设备350进行IO要求。
接下来,在步骤S1203中,VM 300上的虚拟设备350针对向自身的IO要求,调用设备要求变换处理部303,设备要求变换处理部303从向虚拟设备350的IO要求变换为向共享设备A601a的IO要求,接下来虚拟设备350调用VM 300上的设备要求传送处理部305。
接下来,在步骤S1204中,VM 300上的设备要求传送处理部305参照设备管理权表360,调查对哪个OS分配了共享设备A601a,并通知给虚拟设备350。
当设为设备管理权表360是图3的状态时,设备要求传送处理部305通知对非特权OS 200分配了共享设备A601a的管理权。
接下来,在步骤S1205中,VM 300上的虚拟设备350经由OS间通信处理部301,对具有共享设备A601a的管理权的OS、即非特权OS 200上的非特权OS共享设备处理部202进行实际IO要求。
接下来,在步骤S1206中,非特权OS 200上的非特权OS共享设备处理部202将来自虚拟设备350的实际IO要求(非特权OS 250的IO要求)以及非特权OS 250的优先级保存到IO要求保持队列370中,调查有无来自其他OS(特权OS 100、非特权OS 200)的实际IO要求的输出。
关于IO要求保持队列370中保存的OS优先级,使用非特权OS设备起动信息文件503针对共享设备601的优先级。另外,当不存在非特权OS设备起动信息文件503的情况下设为最低优先级。
在本例子的情况下,由于不存在非特权OS 250用的非特权OS设备起动信息文件503,所以设为最低优先级(0)。另外,在特权OS 100的情况下,在所有共享设备601中设为最低优先级(0)。
之后,在步骤S1207中,非特权OS 200上的非特权OS共享设备处理部202判断共享设备A601a是否已经正在实施其他IO要求。
此处,设为共享设备A601a未实施其他IO要求。
因此,非特权OS共享设备处理部202对共享设备A601a委托来自非特权OS 250的IO要求。
此处,设为在步骤S1208中,非特权OS 200上的应用对非特权OS共享设备处理部202进行了共享设备A601a的IO要求。
另外,在非特权OS 200中,识别出非特权OS 200具有共享设备A601a的管理权。
接下来,在步骤S1209中,非特权OS 200上的非特权OS共享设备处理部202在受理IO要求时,在IO要求保持队列370中保存IO要求以及IO要求的发送源的OS优先级。
关于IO要求的发送源的OS优先级,使用非特权OS设备起动信息文件503针对共享设备A601a的优先级。在本次的情况下,检查图5的非特权OS设备起动信息文件503,设定OS优先级100。
接下来,在步骤S1210中,非特权OS 200上的非特权OS共享设备处理部202判断共享设备A601a是否已经正在实施其他IO要求。
此处,共享设备A601a由于已经正在实施来自非特权OS 250的IO要求,所以非特权OS共享设备处理部202对共享设备A601a委托取消来自非特权OS 250的IO要求。
此时,非特权OS共享设备处理部202从IO要求保持队列370中删除成为取消的对象的IO要求,使成为取消的对象的IO要求退避到规定的退避区域中。
在步骤S1211中,共享设备A601a根据来自非特权OS 200上的非特权OS共享设备处理部202的IO要求的取消委托,停止此前实施的IO要求的实施,对非特权OS共享设备处理部202通知取消完成。
接下来,在步骤S1212中,非特权OS 200上的非特权OS共享设备处理部202对共享设备A601a委托来自作为自身OS的非特权OS200的IO要求。
最后,在来自非特权OS 200的IO要求的执行结束之后,在步骤S1213中,非特权OS共享设备处理部202将存在于退避区域中的IO要求再次保存到IO要求保持队列370中,并对共享设备A601a指示执行所取消的IO要求。
这样,在本实施方式的设备共享方式中,具备拥有非特权OS所使用的硬件信息的区域、对IO要求的发送目的地OS进行管理的区域、以及拥有IO要求及要求源OS优先级的区域,在非特权OS起动时对非特权OS分配设备,进而向具有设备管理权的非特权OS发送来自其他OS的IO要求。
然后,在IO要求进行了竞争的情况下,检查IO要求发送源的OS优先级,取消优先级低的IO要求,优先实施来自优先级高的OS的IO要求,所以在向共享设备的IO要求进行了竞争的情况下,也能够确保向具有共享设备管理权的OS的实时响应性。
以上,在本实施方式中,说明了具备以下功能的计算机。
(1)共享设备具有根据来自共享设备处理部的要求来取消此前实施的IO要求的功能。
(2)共享设备处理部比较IO要求的发送源OS的优先级与在共享设备上实施的IO要求的发送源OS的OS优先级,在共享设备上实施的IO要求的发送源OS的OS优先级更低的情况下,对共享设备委托取消此前实施的处理,而优先处理来自优先级更高的OS的IO要求,从而在针对共享设备的IO要求进行了竞争的情况下,也能够确保向OS的实时响应性。
实施方式3.
在实施方式1以及实施方式2中,非特权OS 200对自身OS具有共享设备A601a的管理权的情形进行识别,但在本实施方式中,说明非特权OS 200未识别具有共享设备A601a的管理权的OS的例子。
本实施方式的计算机装置1的结构例与图6所示的结构相同。
即,在非特权OS 200中,包括非特权OS虚拟设备处理部201、非特权OS共享设备处理部202这两者。
接下来,说明本实施方式的动作例。
非特权OS 200上的应用由于不知道是哪个OS取得了共享设备A601a的管理权,所以对非特权OS虚拟设备处理部201进行共享设备A601a的IO要求。
非特权OS虚拟设备处理部201读出设备管理权表360的信息,判断哪个OS具有共享设备A601a的管理权。
非特权OS虚拟设备处理部201对设备管理权表360进行参照的结果,检测到自身OS(非特权OS 200)具有共享设备A601a的管理权,对非特权OS共享设备处理部202进行共享设备A601a的实际I/O要求。
另外,在非特权OS 200上的应用进行共享设备B601b的IO要求的情况下,非特权OS虚拟设备处理部201对设备管理权表360进行参照的结果,检测到另一方的非特权OS 250具有共享设备B601b的管理权,非特权OS虚拟设备处理部201对另一方的非特权OS 250的非特权OS共享设备处理部252进行共享设备B601b的实际I/O要求。
另外,在非特权OS 250中也是同样的,在非特权OS 250上的应用进行共享设备B601b的IO要求的情况下,非特权OS虚拟设备处理部251对设备管理权表360进行参照的结果,检测到自身OS(非特权OS 250)具有共享设备B601b的管理权,对非特权OS共享设备处理部252进行共享设备B601b的实际I/O要求。
另外,在非特权OS 250上的应用进行共享设备A601a的IO要求的情况下,非特权OS虚拟设备处理部251对设备管理权表360进行参照的结果,检测到另一方的非特权OS 200具有共享设备A601a的管理权,非特权OS虚拟设备处理部251对另一方的非特权OS 200的非特权OS共享设备处理部202进行共享设备A601a的实际I/O要求。
这样,在非特权OS中,即使没有掌握具有共享设备的管理权的OS,通过参照设备管理权表,也能够检测具有共享设备的管理权的OS,能够对适合的OS进行IO要求。
最后,说明实施方式1~3所示的计算机装置1的硬件结构例。
图12是示出实施方式1~3所示的计算机装置1的硬件资源的一个例子的图。
另外,图12的结构只是示出计算机装置1的硬件结构的一个例子,计算机装置1的硬件结构不限于图12记载的结构,也可以是其他结构。
在图12中,计算机装置1具备执行程序的CPU 911(CentralProcessing Unit,还称为中央处理装置、处理装置、运算装置、微处理器、微型计算机、处理器)。
CPU 911经由总线912例如与ROM(Read Only Memory,只读存储器)913、RAM(Random Access Memory,随机存取存储器)914、通信板915、显示装置901、键盘902、鼠标903、磁盘装置920连接,控制这些硬件设备。
进而,CPU 911也可以与FDD 904(Flexible Disk Drive,软盘驱动器)、高密度盘装置905(CDD)、打印机装置906、扫描仪装置907连接。另外,也可以代替磁盘装置920,而是光盘装置、存储卡(注册商标)读写装置等存储装置。
RAM 914是易失性存储器的一个例子。ROM 913、FDD 904、CDD 905、磁盘装置920的存储介质是非易失性存储器的一个例子。它们是存储装置的一个例子。
在实施方式1~3中说明的“主存储器701”例如通过RAM 914来实现,“二次存储装置500”通过磁盘装置920来实现。
通信板915、键盘902、鼠标903、扫描仪装置907、FDD 904等是输入部、输入装置的一个例子。
另外,通信板915、显示装置901、打印机装置906等是输出装置的一个例子。
通信板915与网络连接。例如,通信板915也可以与LAN(局域网)、因特网、WAN(广域网)、SAN(Storage Area Network:存储区网络)等连接。
另外,在RAM 914中,临时保存使CPU 911执行的程序中的至少一部分。
另外,在RAM 914中,保存由CPU 911进行的处理所需的各种数据。
另外,在ROM 913中,保存了BIOS(Basic Input Output System,基本输入输出系统)程序,在磁盘装置920中,保存了引导程序。
在计算机装置1的起动时,执行ROM 913的BIOS程序以及磁盘装置920的引导程序,通过BIOS程序以及引导程序来起动虚拟机921(VM)。
在磁盘装置920中,存储有虚拟机921(VM)、特权OS 922、程序组923、文件组924。
由CPU 911利用虚拟机921、特权OS 922而执行程序组923的程序。
在虚拟机921(VM)中,存储有实现作为图1、图6的VM 300中包含的要素的OS间通信处理部301、OS起动处理部302、设备要求变换处理部303、设备分配处理部304、虚拟设备要求传送处理部305、虚拟设备350的程序。
另外,在特权OS 922中,存储有实现作为图1、图6的特权OS100中包含的要素的特权OS共享设备处理部101、特权OS共享设备删除处理部102、特权OS虚拟设备处理部103、特权OS虚拟设备追加处理部104的程序。
另外,在程序组923中,存储有实现作为图1、图6的非特权OS 200以及非特权OS 250中包含的要素的非特权OS虚拟设备处理部201、非特权OS共享设备处理部202、非特权OS虚拟设备处理部251、非特权OS共享设备处理部252的程序。
另外,在程序组923中,还存储有由特权OS以及非特权OS实施的应用程序。
由CPU 911读出并执行虚拟机921(VM)的程序、特权OS 922的程序、程序组923的程序。
在文件组924中,包括图1、图6所示的非特权OS映像文件501、非特权OS起动信息文件502、非特权OS设备起动信息文件503、设备管理权表360、IO要求保持队列370。
另外,在文件组924中,作为“~文件”、“~数据库”的各项目,存储有表示在实施方式1~3的说明中作为“~的判断”、“~的判定”、“~的计算”、“~的比较”、“~的更新”、“~的设定”、“~的登记”、“~的选择”、“~的变更”等而进行了说明的处理的结果的信息、数据、信号值、变量值、参数。
“~文件”、“~数据库”存储在盘、存储器等记录介质中。由CPU 911经由读写回路将盘、存储器等存储介质中存储的信息、数据、信号值、变量值、参数读出到主存储器、高速缓冲存储器中,用于抽出、检索、参照、比较、运算、计算、处理、编辑、输出、印刷、显示等CPU的动作。
在抽出、检索、参照、比较、运算、计算、处理、编辑、输出、印刷、显示的CPU的动作的期间,信息、数据、信号值、变量值、参数被临时存储到主存储器、寄存器、高速缓冲存储器、缓冲存储器等中。
另外,在实施方式1~3中说明的流程图的箭头的部分主要表示数据、信号的输入输出,数据、信号值记录在RAM 914的存储器、FDD904的软盘、CDD 905的高密度盘、磁盘装置920的磁盘、其他光盘、迷你盘、DVD等记录介质中。另外,数据、信号通过总线912、信号线、线缆等其他传送介质而被在线传送。
这样,实施方式1~3所示的计算机装置1是具备作为处理装置的CPU、作为存储装置的存储器、磁盘等、作为输入装置的键盘、鼠标、通信板等、作为输出装置的显示装置、通信板等的计算机,使用这些处理装置、存储装置、输入装置、输出装置来实现如上所述表示为“~部”的功能。
Claims (10)
1.一种计算机装置,连接有1个以上的设备,其特征在于,具有:
特权OS,被赋予了各设备的管理权,其中,OS是操作系统;
1个以上的非特权OS,没有被赋予任一设备的管理权;
信息存储部,存储示出了非特权OS和对所述非特权OS指定的指定设备的指定设备信息;以及
管理权控制部,在所述特权OS起动之后,当某一个非特权OS起动时,参照所述指定设备信息,在所起动的非特权OS中有指定设备的情况下,使所起动的非特权OS的指定设备的管理权从所述特权OS转移到所起动的非特权OS。
2.根据权利要求1所述的计算机装置,其特征在于,
所述特权OS针对每个设备,设定了优先级,
所述信息存储部存储示出了非特权OS、指定设备以及针对所述指定设备的所述非特权OS的优先级的指定设备信息,
所述管理权控制部在所述特权OS起动之后,当某一个非特权OS起动时,参照所述指定设备信息,在所起动的非特权OS中有指定设备的情况下,比较所起动的非特权OS针对指定设备的优先级与所述特权OS针对所述指定设备的优先级,在所起动的非特权OS的优先级更高的情况下,使所述指定设备的管理权转移到所起动的非特权OS。
3.根据权利要求2所述的计算机装置,其特征在于,
所述管理权控制部在使某一个设备的管理权转移到某一个非特权OS之后,在指定设备信息中所述设备被表示为指定设备的非特权OS起动时,比较所起动的非特权OS针对所述设备的优先级与具有管理权的非特权OS针对所述设备的优先级,在所起动的非特权OS的优先级更高的情况下,使所述设备的管理权转移到所起动的非特权OS。
4.根据权利要求1所述的计算机装置,其特征在于,
各非特权OS在使用所述特权OS具有管理权的设备的情况下,在将针对使用对象设备的使用要求经由所述特权OS输出到所述使用对象设备之后,使用所述使用对象设备,在使用通过所述管理权控制部使管理权转移到自身OS而使自身OS具有管理权的设备的情况下,在将针对使用对象设备的使用要求不经由所述特权OS及其他任一个非特权OS而输出到所述使用对象设备之后,使用所述使用对象设备。
5.根据权利要求4所述的计算机装置,其特征在于,
各非特权OS在使用其他非特权OS具有管理权的设备的情况下,在将针对使用对象设备的使用要求经由所述其他非特权OS输出到所述使用对象设备之后,使用所述使用对象设备。
6.根据权利要求5所述的计算机装置,其特征在于,
各非特权OS在输入了针对自身OS具有管理权的管理设备的来自其他OS的使用要求时,将所输入的使用要求输出到所述管理设备。
7.根据权利要求5所述的计算机装置,其特征在于,
所述计算机装置还具有OS辨别部,该OS辨别部输入从某一个OS输出的针对某一个设备的使用要求,参照表示针对每个设备哪一个OS具有管理权的设备管理权信息,辨别具有所输入的所述使用要求为对象的设备的管理权的OS,对辨别出的OS输出所述使用要求。
8.根据权利要求7所述的计算机装置,其特征在于,
所述管理权控制部每当在转移设备的管理权时更新所述设备管理权信息。
9.根据权利要求1所述的计算机装置,其特征在于,
在所述特权OS以及各非特权OS中,针对每个设备,设定有优先级,
所述计算机装置还具有执行控制部,该执行控制部在执行从某一个OS发出的针对某一个设备的使用要求时,在从其他OS发出了针对所述设备的使用要求的情况下,比较新发出的使用要求的发出源的OS针对所述设备的优先级与执行中的使用要求的发出源的OS针对所述设备的优先级,在新发出的使用要求的发出源的OS的优先级更高的情况下,使执行中的使用要求的执行停止,并使新发出的使用要求的执行开始。
10.根据权利要求1所述的计算机装置,其特征在于,
所述计算机装置具有使所述特权OS以及各非特权OS动作的虚拟机,
所述管理权控制部包含在所述虚拟机中。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/067182 WO2011039887A1 (ja) | 2009-10-01 | 2009-10-01 | 計算機装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102576312A true CN102576312A (zh) | 2012-07-11 |
Family
ID=43825741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801617896A Pending CN102576312A (zh) | 2009-10-01 | 2009-10-01 | 计算机装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20120179901A1 (zh) |
EP (1) | EP2472396A1 (zh) |
JP (1) | JPWO2011039887A1 (zh) |
KR (1) | KR20120062854A (zh) |
CN (1) | CN102576312A (zh) |
WO (1) | WO2011039887A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6089349B2 (ja) * | 2013-05-28 | 2017-03-08 | ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. | マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム |
JP6241178B2 (ja) * | 2013-09-27 | 2017-12-06 | 富士通株式会社 | ストレージ制御装置,ストレージ制御方法及びストレージ制御プログラム |
CN104298546A (zh) * | 2014-08-25 | 2015-01-21 | 宇龙计算机通信科技(深圳)有限公司 | 一种硬件通信装置的共享方法及终端 |
US9904580B2 (en) | 2015-05-29 | 2018-02-27 | International Business Machines Corporation | Efficient critical thread scheduling for non-privileged thread requests |
JP6645212B2 (ja) * | 2016-01-27 | 2020-02-14 | 株式会社リコー | 情報処理方法、および、情報処理装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0792761B2 (ja) * | 1985-07-31 | 1995-10-09 | 株式会社日立製作所 | 仮想計算機システムの入出力制御方法 |
JPS6278631A (ja) | 1985-10-02 | 1987-04-10 | Hitachi Ltd | 複数オペレ−テイングシステムにおける入出力制御方式 |
US8549513B2 (en) * | 2005-06-29 | 2013-10-01 | Microsoft Corporation | Model-based virtual system provisioning |
US8112527B2 (en) * | 2006-05-24 | 2012-02-07 | Nec Corporation | Virtual machine management apparatus, and virtual machine management method and program |
JP2008033877A (ja) * | 2006-06-29 | 2008-02-14 | Mitsubishi Electric Corp | 情報処理装置及びos起動方法及びプログラム |
JP4233585B2 (ja) * | 2006-07-25 | 2009-03-04 | 株式会社エヌ・ティ・ティ・ドコモ | ペリフェラル切替装置及びペリフェラル切替制御装置 |
JP4295783B2 (ja) * | 2006-12-13 | 2009-07-15 | 株式会社日立製作所 | 計算機、仮想デバイスの制御方法 |
-
2009
- 2009-10-01 KR KR1020127008286A patent/KR20120062854A/ko not_active Application Discontinuation
- 2009-10-01 WO PCT/JP2009/067182 patent/WO2011039887A1/ja active Application Filing
- 2009-10-01 EP EP09850076A patent/EP2472396A1/en not_active Withdrawn
- 2009-10-01 CN CN2009801617896A patent/CN102576312A/zh active Pending
- 2009-10-01 US US13/395,915 patent/US20120179901A1/en not_active Abandoned
- 2009-10-01 JP JP2011534020A patent/JPWO2011039887A1/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20120062854A (ko) | 2012-06-14 |
JPWO2011039887A1 (ja) | 2013-02-21 |
US20120179901A1 (en) | 2012-07-12 |
WO2011039887A1 (ja) | 2011-04-07 |
EP2472396A1 (en) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101090356B (zh) | 使能对远程存储装置的访问的方法和系统 | |
DE69227939T2 (de) | Gerätetreibersystem mit einer Schnittstelle zu einem generischen Betriebsystem | |
US3725864A (en) | Input/output control | |
CN100462947C (zh) | 用于实现卸载发起方功能的方法和系统 | |
JP4910398B2 (ja) | タグ情報管理プログラム、タグ情報管理方法およびタグ情報管理装置 | |
US20130097339A1 (en) | Communication with input/output system devices | |
CN102576312A (zh) | 计算机装置 | |
CN103955441A (zh) | 一种设备管理系统、方法及一种io扩展接口 | |
JP2004054916A (ja) | プロセッサ間のハードウェア支援通信を実行する方法 | |
CN104104705A (zh) | 分布式存储系统的接入方法和设备 | |
CN102326151B (zh) | 存储系统 | |
JPH0126099B2 (zh) | ||
CN101073062A (zh) | 在共享缓冲区中在系统和存储器之间传送数据 | |
JP5031538B2 (ja) | データ分配方法、データ分配プログラム、及び並列データベースシステム | |
JPH04288638A (ja) | コンピュータシステム | |
Donovan et al. | Virtual machine communication for the implementation of decision support systems | |
CN115878210B (zh) | 一种系统配置处理方法及相关设备 | |
JP2004302630A (ja) | メッセージ処理方法及びその実施装置並びにその処理プログラム | |
JPH01246645A (ja) | ディレイド・ジャーナル・マージ方式 | |
JPS5941214B2 (ja) | 状態監視方式 | |
JPS59112325A (ja) | 電子計算機システム | |
WO2020183758A1 (ja) | 計算機システム及びデータのアクセス制御方法 | |
JP2021179658A (ja) | 計算機装置、計算機システム及びデータ移行方法 | |
US20030110265A1 (en) | Method and apparatus for providing a virtual shared device | |
CN116737690A (zh) | 数据迁移方法、系统及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120711 |