Linux用戶態(tài)切換內(nèi)核態(tài)方式詳解

用戶態(tài)切內(nèi)核態(tài)
是用戶程序在運(yùn)行中的狀態(tài)切換;
用戶程序在運(yùn)行中遇到申請(qǐng)外部資源
, 比如程序執(zhí)行中需要訪問(wèn): 磁盤(pán)
、內(nèi)存分配
、網(wǎng)卡
、聲卡
, 甚至主板LED指示燈
時(shí), 就會(huì)發(fā)生用戶態(tài)到內(nèi)核態(tài)的切換.
比如讀寫(xiě)文件: open/read/write 就會(huì)從用戶態(tài)切換到內(nèi)核態(tài);
比如申請(qǐng)內(nèi)存: C語(yǔ)言的: malloc/ java語(yǔ)言 new 一個(gè)對(duì)象 都需要申請(qǐng)內(nèi)存空間;
包括select/poll/epoll 都是系統(tǒng)調(diào)用;
切換方式
用戶態(tài)到內(nèi)核態(tài)的切換, 一般有三種方式: 系統(tǒng)調(diào)用
、異常
、中斷
; 系統(tǒng)調(diào)用
又有 進(jìn)程
、文件
、設(shè)備
、信息
、通信
等的調(diào)用;
查看內(nèi)核提供的可用系統(tǒng)調(diào)用可以用: man syscalls
可以把syscalls
導(dǎo)出來(lái)看下:man syscalls|col -b >syscalls.txt
系統(tǒng)調(diào)用大體分類(lèi)如下:
進(jìn)程調(diào)用: 終端命令exit
fork
;
文件調(diào)用: chmod
chown
;
設(shè)備調(diào)用: read
write
;
信息讀取: 比如cpu信息 getcpu
;
通信: pipe
mmap
(文件內(nèi)存映射)
以上就是Linux用戶態(tài)切換內(nèi)核態(tài)方式詳解的詳細(xì)內(nèi)容,更多關(guān)于Linux用戶態(tài)切換內(nèi)核態(tài)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
linux系統(tǒng)中一次用戶態(tài)進(jìn)程死循環(huán)案例的分析過(guò)程以及解決辦法
這篇文章主要為大家介紹了linux系統(tǒng)中用戶態(tài)進(jìn)程死循環(huán)的分析過(guò)程,業(yè)務(wù)進(jìn)程(用戶態(tài)多線程程序)掛死,操作系統(tǒng)反應(yīng)遲鈍,系統(tǒng)日志沒(méi)有任何異常。從進(jìn)程的內(nèi)核態(tài)堆???,看2014-10-09Linux(KDE)使用Network Settings設(shè)置靜態(tài)ip詳細(xì)教程
這篇文章主要為大家介紹了Linux(KDE)使用Network Settings設(shè)置靜態(tài)ip詳細(xì)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-31Linux調(diào)整Swap空間大小的擴(kuò)容分區(qū)技巧
這篇文章主要為大家介紹了Linux調(diào)整Swap空間大小的擴(kuò)容技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-31linux下du和df命令已使用空間結(jié)果不一致的原因及處理辦法
Linux df和du命令查出來(lái)的已使用空間不同如何解決?Linux系統(tǒng)使用的時(shí)候,竟然發(fā)現(xiàn)df和du查出來(lái)的結(jié)果不一樣,du查出來(lái)的明顯比df查出來(lái)的已使用空間要小很多,下面我們就2023-08-16- Linux創(chuàng)建或刪除文件夾的命令怎么用?linux系統(tǒng)中想要?jiǎng)?chuàng)建和刪除文件夾,可以直接使用命令操作,該怎么用呢?下面我們就來(lái)看看詳細(xì)的教程2023-08-02
如何在Linux中使用shar創(chuàng)建自解壓文件?
在linux中使用shar命令可以講文件打包,發(fā)送即可,十分的便捷,本文中介紹的是使用shar創(chuàng)建自解壓文件的方法2023-07-13linux網(wǎng)絡(luò)開(kāi)發(fā)者定位問(wèn)題、常用工具和命令總結(jié)
Linux網(wǎng)絡(luò)開(kāi)發(fā)者面臨的問(wèn)題往往比較復(fù)雜,因此需要使用一些工具和命令來(lái)進(jìn)行定位和解決。在本篇博客中,我將總結(jié)一些常用的Linux網(wǎng)絡(luò)開(kāi)發(fā)者工具和命令,包括網(wǎng)絡(luò)包觀測(cè)、各2023-07-02linux/ubuntu系統(tǒng)怎么安裝百度網(wǎng)盤(pán)? linux百度網(wǎng)盤(pán)安裝圖文教程
linux/ubuntu系統(tǒng)怎么安裝百度網(wǎng)盤(pán)?linux系統(tǒng)中想要安裝百度網(wǎng)盤(pán),該怎么安裝呢?下面我們就來(lái)看看linux百度網(wǎng)盤(pán)安裝圖文教程2023-06-02新補(bǔ)丁發(fā)布! 修復(fù)Linux 6.3 更新導(dǎo)致 XFS 元數(shù)據(jù)故障
在升級(jí)到 6.3.3 維護(hù)版本更新之后,基于 XFS 格式的服務(wù)器就出現(xiàn)不斷崩潰的問(wèn)題現(xiàn)在已經(jīng)找到原因,并發(fā)布新的補(bǔ)丁,詳細(xì)請(qǐng)看下文介紹2023-05-30linux如何導(dǎo)出文件到本地電腦? Linux命令導(dǎo)出文件的技巧
linux如何導(dǎo)出文件到本地電腦?linux系統(tǒng)中的文件,想要導(dǎo)出道本地,該怎么操作呢?下面我們就來(lái)看看Linux命令導(dǎo)出文件的技巧2023-05-17