欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

什么是用戶態(tài)與內(nèi)核態(tài)

這篇文章主要講解了“什么是用戶態(tài)與內(nèi)核態(tài)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“什么是用戶態(tài)與內(nèi)核態(tài)”吧!

站在用戶的角度思考問題,與客戶深入溝通,找到邗江網(wǎng)站設(shè)計(jì)與邗江網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋邗江地區(qū)。

內(nèi)容大綱

什么是用戶態(tài)與內(nèi)核態(tài)

小故事

張三是某科技公司的初級(jí)Java開發(fā)工程師(低權(quán)限),目前在15樓辦公碼代碼,公司提供的資源僅有一套電腦(用戶態(tài)),張三想著這一線的房?jī)r(jià),倍感壓力山大,于是給自己定下一個(gè)目標(biāo),一定要做技術(shù)總監(jiān),在一線扎根, 奮斗B張三,奮斗5年終于當(dāng)上了技術(shù)總監(jiān)(高權(quán)限),之后張三搬到30樓,可以隨時(shí)向資源部(系統(tǒng)調(diào)用)申請(qǐng)公司各種資源與獲取公司的機(jī)密信息(內(nèi)核態(tài)),所謂是走上人生巔峰。

通過這個(gè)故事,我們發(fā)現(xiàn),低權(quán)限的資源范圍較小,高權(quán)限的資源范圍更大,所謂的「用戶態(tài)與內(nèi)核態(tài)只是不同權(quán)限的資源范圍」。

C P U 指令集權(quán)限

在說用戶態(tài)與內(nèi)核態(tài)之前,有必要說一下 C P U 指令集,指令集是 C P U 實(shí)現(xiàn)軟件指揮硬件執(zhí)行的媒介,具體來說每一條匯編語句都對(duì)應(yīng)了一條 C P U 指令,而非常非常多的 C P U 指令 在一起,可以組成一個(gè)、甚至多個(gè)集合,指令的集合叫 C P U 指令集。

同時(shí) C P U 指令集 有權(quán)限分級(jí),大家試想,C P U 指令集 可以直接操作硬件的,要是因?yàn)橹噶畈僮鞯牟灰?guī)范`,造成的錯(cuò)誤會(huì)影響整個(gè)計(jì)算機(jī)系統(tǒng)的。好比你寫程序,因?yàn)閷?duì)硬件操作不熟悉,導(dǎo)致操作系統(tǒng)內(nèi)核、及其他所有正在運(yùn)行的程序,都可能會(huì)因?yàn)椴僮魇д`而受到不可挽回的錯(cuò)誤,最后只能重啟計(jì)算機(jī)才行。

而對(duì)于硬件的操作是非常復(fù)雜的,參數(shù)眾多,出問題的幾率相當(dāng)大,必須謹(jǐn)慎的進(jìn)行操作,對(duì)開發(fā)人員來說是個(gè)艱巨的任務(wù),還會(huì)增加負(fù)擔(dān),同時(shí)開發(fā)人員在這方面也不被信任,所以操作系統(tǒng)內(nèi)核直接屏蔽開發(fā)人員對(duì)硬件操作的可能,都不讓你碰到這些 C P U 指令集。

什么是用戶態(tài)與內(nèi)核態(tài)

高情商

  • ring 0被叫做內(nèi)核態(tài),完全在操作系統(tǒng)內(nèi)核中運(yùn)行

  • ring 3被叫做用戶態(tài),在應(yīng)用程序中運(yùn)行

低情商

  • 執(zhí)行內(nèi)核空間的代碼,具有ring 0保護(hù)級(jí)別,有對(duì)硬件的所有操作權(quán)限,可以執(zhí)行所有C P U 指令集,訪問任意地址的內(nèi)存,在內(nèi)核模式下的任何異常都是災(zāi)難性的,將會(huì)導(dǎo)致整臺(tái)機(jī)器停機(jī)

  • 在用戶模式下,具有ring 3保護(hù)級(jí)別,代碼沒有對(duì)硬件的直接控制權(quán)限,也不能直接訪問地址的內(nèi)存,程序是通過調(diào)用系統(tǒng)接口(System Call APIs)來達(dá)到訪問硬件和內(nèi)存,在這種保護(hù)模式下,即時(shí)程序發(fā)生崩潰也是可以恢復(fù)的,在電腦上大部分程序都是在,用戶模式下運(yùn)行的

用戶態(tài)與內(nèi)核態(tài)

通關(guān)了C P U 指令集權(quán)限,現(xiàn)在再說用戶態(tài)與內(nèi)核態(tài)就十分簡(jiǎn)單了,用戶態(tài)與內(nèi)核態(tài)的概念就是C P U 指令集權(quán)限的區(qū)別,進(jìn)程中要讀寫 I O,必然會(huì)用到 ring 0 級(jí)別的 C P U 指令集,而此時(shí) C P U 的指令集操作權(quán)限只有 ring 3,為了可以操作ring 0 級(jí)別的 C P U 指令集, C P U 切換指令集操作權(quán)限級(jí)別為 ring 0,C P U再執(zhí)行相應(yīng)的ring 0 級(jí)別的 C P U 指令集(內(nèi)核代碼),執(zhí)行的內(nèi)核代碼會(huì)使用當(dāng)前進(jìn)程的內(nèi)核棧。

PS:每個(gè)進(jìn)程都有兩個(gè)棧,分別是用戶棧與內(nèi)核棧,對(duì)應(yīng)用戶態(tài)與內(nèi)核態(tài)的使用

用戶態(tài)與內(nèi)核態(tài)的空間

在內(nèi)存資源上的使用,操作系統(tǒng)對(duì)用戶態(tài)與內(nèi)核態(tài)也做了限制,每個(gè)進(jìn)程創(chuàng)建都會(huì)分配「虛擬空間地址」(不懂可以參考我的另一篇文章“15分鐘!一文幫小白搞懂操作系統(tǒng)之內(nèi)存”),以Linux32位操作系統(tǒng)為例,它的尋址空間范圍是 4G(2的32次方),而操作系統(tǒng)會(huì)把虛擬控制地址劃分為兩部分,一部分為內(nèi)核空間,另一部分為用戶空間,高位的 1G(從虛擬地址 0xC0000000 到 0xFFFFFFFF)由內(nèi)核使用,而低位的 3G(從虛擬地址 0x00000000 到 0xBFFFFFFF)由各個(gè)進(jìn)程使用。

什么是用戶態(tài)與內(nèi)核態(tài)

從上圖我們可以看出來通過系統(tǒng)調(diào)用將Linux整個(gè)體系分為用戶態(tài)和內(nèi)核態(tài),為了使應(yīng)用程序訪問到內(nèi)核的資源,如CPU、內(nèi)存、I/O,內(nèi)核必須提供一組通用的訪問接口,這些接口就叫系統(tǒng)調(diào)用。

庫函數(shù)就是屏蔽這些復(fù)雜的底層實(shí)現(xiàn)細(xì)節(jié),減輕程序員的負(fù)擔(dān),從而更加關(guān)注上層的邏輯實(shí)現(xiàn),它對(duì)系統(tǒng)調(diào)用進(jìn)行封裝,提供簡(jiǎn)單的基本接口給程序員。

Shell顧名思義,就是外殼的意思,就好像把內(nèi)核包裹起來的外殼,它是一種特殊的應(yīng)用程序,俗稱命令行。Shell也是可編程的,它有標(biāo)準(zhǔn)的Shell 語法,符合其語法的文本叫Shell腳本,很多人都會(huì)用Shell腳本實(shí)現(xiàn)一些常用的功能,可以提高工作效率。

最后來說說,什么情況會(huì)導(dǎo)致用戶態(tài)到內(nèi)核態(tài)切換

  • 系統(tǒng)調(diào)用:用戶態(tài)進(jìn)程主動(dòng)切換到內(nèi)核態(tài)的方式,用戶態(tài)進(jìn)程通過系統(tǒng)調(diào)用向操作系統(tǒng)申請(qǐng)資源完成工作,例如 fork()就是一個(gè)創(chuàng)建新進(jìn)程的系統(tǒng)調(diào)用,系統(tǒng)調(diào)用的機(jī)制核心使用了操作系統(tǒng)為用戶特別開放的一個(gè)中斷來實(shí)現(xiàn),如Linux 的 int 80h 中斷,也可以稱為軟中斷

  • 異常:當(dāng) C P U 在執(zhí)行用戶態(tài)的進(jìn)程時(shí),發(fā)生了一些沒有預(yù)知的異常,這時(shí)當(dāng)前運(yùn)行進(jìn)程會(huì)切換到處理此異常的內(nèi)核相關(guān)進(jìn)程中,也就是切換到了內(nèi)核態(tài),如缺頁異常

  • 中斷:當(dāng) C P U 在執(zhí)行用戶態(tài)的進(jìn)程時(shí),外圍設(shè)備完成用戶請(qǐng)求的操作后,會(huì)向 C P U 發(fā)出相應(yīng)的中斷信號(hào),這時(shí) C P U 會(huì)暫停執(zhí)行下一條即將要執(zhí)行的指令,轉(zhuǎn)到與中斷信號(hào)對(duì)應(yīng)的處理程序去執(zhí)行,也就是切換到了內(nèi)核態(tài)。如硬盤讀寫操作完成,系統(tǒng)會(huì)切換到硬盤讀寫的中斷處理程序中執(zhí)行后邊的操作等。

感謝各位的閱讀,以上就是“什么是用戶態(tài)與內(nèi)核態(tài)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)什么是用戶態(tài)與內(nèi)核態(tài)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)頁名稱:什么是用戶態(tài)與內(nèi)核態(tài)
文章網(wǎng)址:http://chinadenli.net/article0/podpio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站收錄、面包屑導(dǎo)航、網(wǎng)站建設(shè)、App設(shè)計(jì)

廣告

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

手機(jī)網(wǎng)站建設(shè)