JP7196439B2 - 仮想化環境におけるデバイスへのアクセス方法 - Google Patents
仮想化環境におけるデバイスへのアクセス方法 Download PDFInfo
- Publication number
- JP7196439B2 JP7196439B2 JP2018126799A JP2018126799A JP7196439B2 JP 7196439 B2 JP7196439 B2 JP 7196439B2 JP 2018126799 A JP2018126799 A JP 2018126799A JP 2018126799 A JP2018126799 A JP 2018126799A JP 7196439 B2 JP7196439 B2 JP 7196439B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- cpu
- access
- resident
- physical
- 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.)
- Active
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
Description
以下、第1実施形態について、図1および図2を参照しながら説明する。
図1に示すように、本実施形態の仮想化環境1は、ハードウェア100、ハードウェア100上で動作するハイパーバイザ200、ハイパーバイザ200上で動作する複数の仮想マシン300を含んで構成されている。以下、ハードウェア100が備えるCPUを物理CPU、デバイスを物理デバイス、仮想マシン300上に仮想化されたCPUを仮想CPU、デバイスを仮想デバイスと称して説明する。
まず、ハイパーバイザ200を採用した仮想化環境1の動作について簡単に説明する。ハイパーバイザ200は、ハイパーバイザスケジューラ201、物理CPU、PIC106やTIMER107等を利用しつつ仮想マシン300を並列動作させている。このとき、各仮想マシン300のリアルタイム性能を最大限に活かすため、cpumaskを設定して物理CPUをそれぞれの仮想マシン300に対して個別に配分し、他の仮想マシン300の影響を受けないように、また、他の仮想マシン300に影響を与えないようにしている。
アクセス方法は、仮想化環境1において、仮想マシン300上に、常には物理CPUが割り当てられている常駐型の仮想CPU(vCPU301、vCPU302)と、常には物理CPUが割り当てられていない非常駐型の仮想CPU(vCPU303)とを実装し、常駐型の仮想CPUから占有型の物理デバイスに対応する仮想デバイスにアクセスする際、当該仮想デバイスにアクセスする処理を非常駐型の仮想CPUに代行させる。
また、システムコール要求におけるレジスタアクセスは、システムコール呼び出しの延長時に行うものと、割り込みの延長時に行うものとの2つが想定されるものの、いずれの場合にも上記したアクセス方法を適用でき、占有型のデバイスへのアクセス時に物理CPUを有効活用することができる。
以下、第2実施形態について、図3を参照しながら説明する。第2実施形態では、システムコール部311で動作するアクセス部分(s)を専用タスクとしている点において第1実施形態と異なっている。
第2実施形態では、仮想マシン300上に専用タスクTSを設ける構成を例示したが、ハイパーバイザ200上で類似の処理は行う構成とすることもできる。具体的には、ハイパーバイザ200上のハイパーバイザスケジューラ201に、仮想マシン300に加えて、占有型の物理デバイスに直接的にアクセス可能に構成したタスクをスケジューリング対象として配置し、非常駐型の仮想CPUからアクセスの要求があった際、ハイパーバイザ200上に配置したタスクを用いて占有型の物理デバイスにアクセスする構成とすることができる。
Claims (7)
- 仮想化環境(1)においてデバイスにアクセスするためのアクセス方法であって、
物理CPU(101、102、103、104)および物理デバイス(105)を備えたハードウェア(100)と、前記ハードウェア上で動作するハイパーバイザ(200)と、前記ハイパーバイザ上で動作し、前記物理CPUを仮想化した仮想CPU(301、302、303)および前記物理デバイスを仮想化した仮想デバイス(305)を備える仮想マシン(300)とを含み、
前記ハードウェアは、アクセスが要求されてからその要求に対する応答を返すまでアクセス元のCPUを占有する占有型の前記物理デバイス(105)を備えており、
前記仮想マシン上には、予め前記物理CPUが割り当てられている常駐型の前記仮想CPU(301、302)と、処理が必要になった際に前記物理CPUが割り当てられる非常駐型の前記仮想CPU(303)とが実装されている仮想化環境において、
常駐型の前記仮想CPUで実行されるタスクが占有型の前記物理デバイスに対応する前記仮想デバイスにアクセスする際、
常駐型の前記仮想CPUへの前記物理CPUの割り当てを解除して非常駐型の前記仮想CPUに前記物理CPUを割り当てて、前記仮想デバイスへのアクセスを非常駐型の前記仮想CPUに代行させる処理と、
前記物理CPUが割り当てられた非常駐型の前記仮想CPUがアクセスする処理のために待機状態となっている間、当該非常駐型の前記仮想CPUに割り当てられている前記物理CPUを、前記物理CPUが割り当てられていない常駐型の前記仮想CPUに割り当てて、アクセスする処理以外の他の処理を当該常駐型の前記仮想CPUで実行可能にする処理と、を実行することにより占有型の前記物理デバイスにアクセスするアクセス方法。 - 前記仮想化環境は、前記仮想マシン上に、占有型の前記仮想デバイスにアクセスするためのドライバソフトウェアであって、システムコール部(311)と割り込みハンドラ部(312)とを含み、前記システムコール部と前記割り込みハンドラ部とのそれぞれに前記仮想デバイスにアクセスするアクセス部分(s、i)が設けられている仮想ドライバ(310)が実装されており、
非常駐型の前記仮想CPUにアクセスを代行させる処理では、前記アクセス部分を非常駐型の前記仮想CPUで実行する請求項1に記載のアクセス方法。 - 前記仮想化環境は、前記仮想マシン上に、占有型の前記仮想デバイスにアクセスするためのドライバソフトウェアであって、システムコール部と割り込みハンドラ部とを含み、前記システムコール部から行われる前記仮想デバイスへのアクセスを処理するアクセス部分(s)を、アクセスの要求に対する処理と当該要求に対して応答する処理とを切り離して実行可能な専用タスク(TS)として呼び出し可能に構成した仮想ドライバ(410)が実装されており、
非常駐型の前記仮想CPUにアクセスを代行させる処理では、前記専用タスクを非常駐型の前記仮想CPUで実行する請求項1に記載のアクセス方法。 - 前記仮想化環境は、前記ハイパーバイザ上のハイパーバイザスケジューラ(201)に、前記仮想マシンに加えて、占有型の前記物理デバイスに直接的にアクセス可能に構成したタスクがスケジューリング対象として配置されており、
非常駐型の前記仮想CPUにアクセスを代行させる処理では、アクセスの要求に対する処理と当該要求に対して応答する処理とを切り離して実行可能な専用タスクを非常駐型の前記仮想CPUで実行し、
前記ハイパーバイザ上に配置されているタスクは、前記専用タスクが実行されている非常駐型の前記仮想CPUからアクセスの要求があった際、占有型の前記物理デバイスにアクセスする請求項1に記載のアクセス方法。 - 前記仮想化環境は、占有型の前記物理デバイスへのアクセスに要する最大待ち時間が予め設定されており、
非常駐型の前記仮想CPUにアクセスを代行させる処理では、前記最大待ち時間が予め設定した規定時間よりも長い場合にはアクセスする処理を非常駐型の前記仮想CPUに代行させる一方、前記最大待ち時間が前記規定時間よりも短い場合にはアクセスする処理を常駐型の前記仮想CPUで実行する請求項1から4のいずれか一項に記載のアクセス方法。 - 前記仮想化環境は、前記ハイパーバイザ上で2つ以上の前記仮想マシンが動作しており、複数の前記仮想マシンに対して前記物理CPUが重複しないように割り当てられている請求項1から5のいずれか一項に記載のアクセス方法。
- 前記仮想化環境は、前記仮想マシンに、前記ハードウェアが備える占有型の前記物理デバイスと同じ数の非常駐型の前記仮想CPUが実装されている請求項1から6のいずれか一項に記載のアクセス方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018126799A JP7196439B2 (ja) | 2018-07-03 | 2018-07-03 | 仮想化環境におけるデバイスへのアクセス方法 |
PCT/JP2019/021077 WO2020008757A1 (ja) | 2018-07-03 | 2019-05-28 | 仮想化環境におけるデバイスへのアクセス方法 |
US17/129,762 US12032983B2 (en) | 2018-07-03 | 2020-12-21 | Method of accessing device in virtual environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018126799A JP7196439B2 (ja) | 2018-07-03 | 2018-07-03 | 仮想化環境におけるデバイスへのアクセス方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020008933A JP2020008933A (ja) | 2020-01-16 |
JP7196439B2 true JP7196439B2 (ja) | 2022-12-27 |
Family
ID=69059578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018126799A Active JP7196439B2 (ja) | 2018-07-03 | 2018-07-03 | 仮想化環境におけるデバイスへのアクセス方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7196439B2 (ja) |
WO (1) | WO2020008757A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2024085626A (ja) | 2022-12-15 | 2024-06-27 | 株式会社デンソー | コンピュータシステム、異常対処方法 |
JP2024085627A (ja) | 2022-12-15 | 2024-06-27 | 株式会社デンソー | コンピュータシステム、異常対処方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006209386A (ja) | 2005-01-27 | 2006-08-10 | Hitachi Ltd | 仮想計算機システム及びその外部割込み制御方法 |
WO2017094132A1 (ja) | 2015-12-02 | 2017-06-08 | 株式会社日立製作所 | 計算機および計算機の制御方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05250263A (ja) * | 1992-03-05 | 1993-09-28 | Hitachi Ltd | 仮想プロセッサ方式及び不揮発化記憶方式 |
-
2018
- 2018-07-03 JP JP2018126799A patent/JP7196439B2/ja active Active
-
2019
- 2019-05-28 WO PCT/JP2019/021077 patent/WO2020008757A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006209386A (ja) | 2005-01-27 | 2006-08-10 | Hitachi Ltd | 仮想計算機システム及びその外部割込み制御方法 |
WO2017094132A1 (ja) | 2015-12-02 | 2017-06-08 | 株式会社日立製作所 | 計算機および計算機の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210149705A1 (en) | 2021-05-20 |
WO2020008757A1 (ja) | 2020-01-09 |
JP2020008933A (ja) | 2020-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797327B2 (en) | Dynamic virtual machine sizing | |
US9058183B2 (en) | Hypervisor isolation of processor cores to enable computing accelerator cores | |
JP4056471B2 (ja) | プロセッサに譲渡するためのシステム | |
JP4322232B2 (ja) | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム | |
TWI273495B (en) | Information processing device, process control method, and computer program | |
JP5458998B2 (ja) | 仮想マシンシステムおよび仮想マシン管理方法 | |
GB2525003A (en) | Data Processing Systems | |
US10649914B1 (en) | Scratchpad-based operating system for multi-core embedded systems | |
US9229765B2 (en) | Guarantee real time processing of soft real-time operating system by instructing core to enter a waiting period prior to transferring a high priority task | |
US20090241112A1 (en) | Recording medium recording virtual machine control program and virtual machine system | |
JP7196439B2 (ja) | 仮想化環境におけるデバイスへのアクセス方法 | |
US20060212840A1 (en) | Method and system for efficient use of secondary threads in a multiple execution path processor | |
JP5131269B2 (ja) | マルチプロセッシングシステム | |
US12032983B2 (en) | Method of accessing device in virtual environment | |
EP3502887B1 (en) | Interrupt handling for multiple virtual machines | |
JP5859472B2 (ja) | プロセスの待ち行列を共有する複数のプロセッサを有する計算機、及び、プロセスディスパッチ処理方法 | |
JP4730386B2 (ja) | 仮想計算機装置、計算資源活用方法、および、プログラム | |
JP2009266050A (ja) | 情報処理装置 | |
Wang et al. | GCAPS: GPU Context-Aware Preemptive Priority-based Scheduling for Real-Time Tasks | |
CN115599508A (zh) | Cpu及任务调度方法 | |
JP2932547B2 (ja) | 通信レジスタ仮想化方式 | |
Mac | Operating Systems | |
Lin et al. | Global Scheduling for the Embedded Virtualization System in the Multi-core Platform. | |
JPH02184925A (ja) | 仮想計算機システム | |
JPS63197239A (ja) | 仮想プロセツサ制御情報退避格納方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210506 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220524 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220707 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20221115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221128 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7196439 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |