最近我一直在研究一些關於硬件支持的虛擬化。guestOS進程在任何時候都佔用VCPU?
我讀了3個主機cpu的狀態,因此是最常見的用戶空間,內核空間和一個新的訪客狀態。而且從ps命令中可以看到,有一個vm啓動的過程,還有一些'sub '虛擬機擁有的每個CPU的線程數。我還注意到當虛擬機運行一些與io相關的程序時,主機上會創建更多的線程,我想這可能是qemu對硬件仿真的響應。
因此,我的問題是:對於任何特定時間(在guest狀態中的時間,而不是其他兩個),一個vcpu線程是否代表一個運行的guestOS進程(我的意思是'occupy'和'exclusive')?作爲物理CPU,在用戶空間的任何給定時間,用戶進程正在其上運行。 這可能聽起來有點愚蠢,我只想弄清楚它的進一步研究。
爲了讓這個問題變得簡單: 是在任何給定時間在與某個guestOS進程關聯的主機上運行的vcpu線程?
爲了進一步簡化它: 我說guestOS進程實際上是直接運行在主機CPU上,並作爲普通主機進程調度的嗎?兩種進程之間的區別就是我們所說的虛擬化嗎?
也許我需要另一個線程來解決一些關於guestOS進程切換的問題,但在此之前,希望你們能幫助我解決這個問題。
真誠 MeNok