本篇內(nèi)容主要講解“Linux的User space和Kernel space是什么意思”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Linux的User space和Kernel space是什么意思”吧!
成都創(chuàng)新互聯(lián)是一家專業(yè)提供邵原企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站設(shè)計(jì)、HTML5、小程序制作等業(yè)務(wù)。10年已為邵原眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
學(xué)習(xí) Linux 時(shí),經(jīng)常可以看到兩個(gè)詞:User space(用戶空間)和 Kernel space(內(nèi)核空間)。
簡(jiǎn)單說(shuō),Kernel space 是 Linux 內(nèi)核的運(yùn)行空間,User space 是用戶程序的運(yùn)行空間。為了安全,它們是隔離的,即使用戶的程序崩潰了,內(nèi)核也不受影響。
Kernel space 可以執(zhí)行任意命令,調(diào)用系統(tǒng)的一切資源;User space 只能執(zhí)行簡(jiǎn)單的運(yùn)算,不能直接調(diào)用系統(tǒng)資源,必須通過(guò)系統(tǒng)接口(又稱 system call),才能向內(nèi)核發(fā)出指令。
str = "my string" // 用戶空間 x = x + 2 // 用戶空間 file.write(str) // 切換到內(nèi)核空間 y = x + 4 // 切換回用戶空間
上面代碼中,第一行和第二行都是簡(jiǎn)單的賦值運(yùn)算,在 User space 執(zhí)行。第三行需要寫入文件,就要切換到 Kernel space,因?yàn)橛脩舨荒苤苯訉懳募仨毻ㄟ^(guò)內(nèi)核安排。第四行又是賦值運(yùn)算,就切換回 User space。
查看 CPU 時(shí)間在 User space 與 Kernel Space 之間的分配情況,可以使用top
命令。它的第三行輸出就是 CPU 時(shí)間分配統(tǒng)計(jì)。
這一行有 8 項(xiàng)統(tǒng)計(jì)指標(biāo)。
其中,第一項(xiàng)24.8 us(user 的縮寫)就是 CPU 消耗在 User space 的時(shí)間百分比,第二項(xiàng)0.5 sy(system 的縮寫)是消耗在 Kernel space 的時(shí)間百分比。
隨便也說(shuō)一下其他 6 個(gè)指標(biāo)的含義。
ni:niceness 的縮寫,CPU 消耗在 nice 進(jìn)程(低優(yōu)先級(jí))的時(shí)間百分比
id:idle 的縮寫,CPU 消耗在閑置進(jìn)程的時(shí)間百分比,這個(gè)值越低,表示 CPU 越忙
wa:wait 的縮寫,CPU 等待外部 I/O 的時(shí)間百分比,這段時(shí)間 CPU 不能干其他事,但是也沒(méi)有執(zhí)行運(yùn)算,這個(gè)值太高就說(shuō)明外部設(shè)備有問(wèn)題
hi:hardware interrupt 的縮寫,CPU 響應(yīng)硬件中斷請(qǐng)求的時(shí)間百分比
si:software interrupt 的縮寫,CPU 響應(yīng)軟件中斷請(qǐng)求的時(shí)間百分比
st:stole time 的縮寫,該項(xiàng)指標(biāo)只對(duì)虛擬機(jī)有效,表示分配給當(dāng)前虛擬機(jī)的 CPU 時(shí)間之中,被同一臺(tái)物理機(jī)上的其他虛擬機(jī)偷走的時(shí)間百分比
如果想查看單個(gè)程序的耗時(shí),一般使用time命令。
程序名之前加上time命令,會(huì)在程序執(zhí)行完畢以后,默認(rèn)顯示三行統(tǒng)計(jì)。
real:程序從開(kāi)始運(yùn)行到結(jié)束的全部時(shí)間,這是用戶能感知到的時(shí)間,包括CPU切換去執(zhí)行其他任務(wù)的時(shí)間。
user:程序在 User space 執(zhí)行的時(shí)間
sys:程序在 Kernel space 執(zhí)行的時(shí)間
user和sys之和,一般情況下,應(yīng)該小于real。但如果是多核 CPU,這兩個(gè)指標(biāo)反映的是所有 CPU 的總耗時(shí),所以它們之和可能大于real。
到此,相信大家對(duì)“Linux的User space和Kernel space是什么意思”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!