Linux的Userspace和Kernelspace是什么意思

本篇內(nèi)容主要講解“Linux的User space和Kernel space是什么意思”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Linux的User space和Kernel space是什么意思”吧!

成都創(chuàng)新互聯(lián)是一家專業(yè)提供邵原企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站設(shè)計、HTML5、小程序制作等業(yè)務(wù)。10年已為邵原眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

學(xué)習(xí) Linux 時,經(jīng)??梢钥吹絻蓚€詞:User space(用戶空間)和 Kernel space(內(nèi)核空間)。

簡單說,Kernel space 是 Linux 內(nèi)核的運(yùn)行空間,User space 是用戶程序的運(yùn)行空間。為了安全,它們是隔離的,即使用戶的程序崩潰了,內(nèi)核也不受影響。

Linux的User space和Kernel space是什么意思

Kernel space 可以執(zhí)行任意命令,調(diào)用系統(tǒng)的一切資源;User space 只能執(zhí)行簡單的運(yùn)算,不能直接調(diào)用系統(tǒng)資源,必須通過系統(tǒng)接口(又稱 system call),才能向內(nèi)核發(fā)出指令。

str = "my string" // 用戶空間
x = x + 2 // 用戶空間
file.write(str) // 切換到內(nèi)核空間
y = x + 4 // 切換回用戶空間

上面代碼中,第一行和第二行都是簡單的賦值運(yùn)算,在 User space 執(zhí)行。第三行需要寫入文件,就要切換到 Kernel space,因?yàn)橛脩舨荒苤苯訉懳募?,必須通過內(nèi)核安排。第四行又是賦值運(yùn)算,就切換回 User space。

查看 CPU 時間在 User space 與 Kernel Space 之間的分配情況,可以使用top
命令。它的第三行輸出就是 CPU 時間分配統(tǒng)計。

Linux的User space和Kernel space是什么意思

這一行有 8 項(xiàng)統(tǒng)計指標(biāo)。

Linux的User space和Kernel space是什么意思

其中,第一項(xiàng)24.8 us(user 的縮寫)就是 CPU 消耗在 User space 的時間百分比,第二項(xiàng)0.5 sy(system 的縮寫)是消耗在 Kernel space 的時間百分比。

隨便也說一下其他 6 個指標(biāo)的含義。

  • ni:niceness 的縮寫,CPU 消耗在 nice 進(jìn)程(低優(yōu)先級)的時間百分比

  • id:idle 的縮寫,CPU 消耗在閑置進(jìn)程的時間百分比,這個值越低,表示 CPU 越忙

  • wa:wait 的縮寫,CPU 等待外部 I/O 的時間百分比,這段時間 CPU 不能干其他事,但是也沒有執(zhí)行運(yùn)算,這個值太高就說明外部設(shè)備有問題

  • hi:hardware interrupt 的縮寫,CPU 響應(yīng)硬件中斷請求的時間百分比

  • si:software interrupt 的縮寫,CPU 響應(yīng)軟件中斷請求的時間百分比

  • st:stole time 的縮寫,該項(xiàng)指標(biāo)只對虛擬機(jī)有效,表示分配給當(dāng)前虛擬機(jī)的 CPU 時間之中,被同一臺物理機(jī)上的其他虛擬機(jī)偷走的時間百分比

如果想查看單個程序的耗時,一般使用time命令。

Linux的User space和Kernel space是什么意思

程序名之前加上time命令,會在程序執(zhí)行完畢以后,默認(rèn)顯示三行統(tǒng)計。

  • real:程序從開始運(yùn)行到結(jié)束的全部時間,這是用戶能感知到的時間,包括CPU切換去執(zhí)行其他任務(wù)的時間。

  • user:程序在 User space 執(zhí)行的時間

  • sys:程序在 Kernel space 執(zhí)行的時間

user和sys之和,一般情況下,應(yīng)該小于real。但如果是多核 CPU,這兩個指標(biāo)反映的是所有 CPU 的總耗時,所以它們之和可能大于real。

Linux的User space和Kernel space是什么意思

到此,相信大家對“Linux的User space和Kernel space是什么意思”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

分享名稱:Linux的Userspace和Kernelspace是什么意思
標(biāo)題路徑:http://bm7419.com/article26/jddjcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、外貿(mào)建站企業(yè)網(wǎng)站制作、App開發(fā)、品牌網(wǎng)站建設(shè)、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)