面試題總結內核態(Kernel Mode)與用戶態(User Mode)

      網友投稿 1224 2022-05-28

      前言

      這是2018年面試一家外企的時候的面試題

      重點是想考察對Linux方面的基礎掌握程度

      我在我的問答之上又搜集了一些資料做了總結

      正文

      內核態: CPU可以訪問內存所有數據, 包括外圍設備, 例如硬盤, 網卡. CPU也可以將自己從一個程序切換到另一個程序

      【面試題總結】內核態(Kernel Mode)與用戶態(User Mode)

      用戶態: 只能受限的訪問內存, 且不允許訪問外圍設備. 占用CPU的能力被剝奪, CPU資源可以被其他程序獲取

      為什么要有用戶態和內核態

      由于需要限制不同的程序之間的訪問能力, 防止他們獲取別的程序的內存數據, 或者獲取外圍設備的數據, 并發送到網絡, CPU劃分出兩個權限等級 – 用戶態 和 內核態

      用戶態與內核態的切換

      所有用戶程序都是運行在用戶態的, 但是有時候程序確實需要做一些內核態的事情, 例如從硬盤讀取數據, 或者從鍵盤獲取輸入等. 而唯一可以做這些事情的就是操作系統, 所以此時程序就需要先操作系統請求以程序的名義來執行這些操作.

      這時需要一個這樣的機制: 用戶態程序切換到內核態, 但是不能控制在內核態中執行的指令

      這種機制叫系統調用, 在CPU中的實現稱之為陷阱指令(Trap Instruction)

      他們的工作流程如下:

      用戶態程序將一些數據值放在寄存器中, 或者使用參數創建一個堆棧(stack frame), 以此表明需要操作系統提供的服務.

      用戶態程序執行陷阱指令

      CPU切換到內核態, 并跳到位于內存指定位置的指令, 這些指令是操作系統的一部分, 他們具有內存保護, 不可被用戶態程序訪問

      這些指令稱之為陷阱(trap)或者系統調用處理器(system call handler). 他們會讀取程序放入內存的數據參數, 并執行程序請求的服務

      系統調用完成后, 操作系統會重置CPU為用戶態

      kernel

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何查詢硬盤序列號?百度基本都是錯的,其實一條命令搞定!
      下一篇:昇騰學院 | 案例分享 Atlas500 /home/mmc目錄消失問題分享
      相關文章
      中文字幕亚洲综合久久菠萝蜜| 日本亚洲视频在线| 亚洲精品中文字幕乱码影院| 亚洲免费观看在线视频| 国产精品亚洲精品日韩动图| 亚洲综合国产精品| 亚洲A∨精品一区二区三区| 亚洲AV成人片色在线观看| 国产亚洲美女精品久久| 亚洲欧洲综合在线| 亚洲中文字幕无码久久精品1| 亚洲精品一卡2卡3卡四卡乱码| 亚洲AV人人澡人人爽人人夜夜| 亚洲欧洲无卡二区视頻| 亚洲视频一区二区在线观看| 亚洲国产精品嫩草影院久久 | 无码不卡亚洲成?人片| 亚洲va成无码人在线观看| 国产亚洲精品看片在线观看| 亚洲中文无码亚洲人成影院| 97久久精品亚洲中文字幕无码| 中文字幕亚洲天堂| 少妇亚洲免费精品| 久久国产亚洲精品| 亚洲高清视频免费| 亚洲?V乱码久久精品蜜桃| 亚洲字幕AV一区二区三区四区| 亚洲精品无码永久在线观看你懂的| 亚洲AV日韩精品一区二区三区| 亚洲午夜成人精品无码色欲| 久久精品国产亚洲网站| 精品久久久久久亚洲中文字幕| 亚洲www在线观看| 亚洲Av永久无码精品三区在线| 国产国拍亚洲精品福利 | 成人精品国产亚洲欧洲| 亚洲国产成人综合| 亚洲综合精品成人| 亚洲AV日韩精品一区二区三区| 亚洲人成中文字幕在线观看| 亚洲免费在线视频|