作業系統從使用者態切到核心態為什麼要使用到中斷?

時間 2021-05-29 22:56:19

1樓:蘭新宇

我覺得作業系統從使用者態切換到核心態不一定需要中斷啊,以x86的系統呼叫為例,傳統上是使用"int 0x80",在具體的實現中,它確實有和硬體中斷類似的處理流程,都走IDT表什麼的,但現在這種實現系統呼叫的方式已經基本被SYSENTER/SYSCALL指令取代了。中斷會使作業系統從使用者態切換到核心態,但從使用者態切換到核心態不一定非要借助中斷吧。

2樓:Shuang

你都說從使用者模式 「switch」到核心模式了,不使用中斷機制怎麼「switch」?CPU如何停止當前使用者程式從而去執行系統呼叫?…顯而易見。

3樓:肖濤

事實上現在的作業系統大都用特殊的系統呼叫硬體指令如:sysenter、syscall等等

陷入核心的方式硬體一般會提供很多方式,作業系統一開始大多選擇中斷是因為幾乎所有的硬體體系都支援中斷這種機制。

發展到現在的,硬體大多有了專門的系統呼叫硬體指令用於優化系統呼叫。因為系統呼叫是乙個計算機系統上最頻繁的活動之一,對它進行優化對整個系統效能的提公升將是非常明顯的。

4樓:馬馬虎虎

我自己簡單理解,打個比方:

你原來有一套房子自己住,你在裡面吃喝拉撒睡用各種生活用品,比如鍋碗瓢盆什麼的;有一天你需要把房子出租給乙個大領導,大領導當然不會用你的東西,或者更有可能他需要一些你沒有的生活用具,比如機密保險櫃。所以你的生活用品都騰出來,放到個儲藏室或者地下室不用,別人搬進來會帶自己的生活用品重新布置房間,然後也開始吃喝拉撒睡。

計算機也是如此工作,你自己相當於乙個使用者空間,擁有自己的資源(鍋碗瓢盆),俗稱上下文(Context),切到核心空間時,重新換了一批資源,俗稱上下文切換。無論使用者空間或者核心空間,做的事其實差不多,就是跑各式各樣的程序而已。而這些擺生活使用者的櫥櫃呢可以看成計算機的暫存器和記憶體堆疊,程序就是需要這些做運算嘛!

核心空間當然也有它不一樣的地方,如我說的他是大領導,那他就有很多高階許可權,核心空間亦是如此,它可以直接訪問硬體資源。

為什麼要分開核心空間使用者空間?

主要還是計算機分層結構設計,這種思想到處可見,計算機網路協議棧就是如此。好處就是使用者空間不需要知道核心空間複雜的處理邏輯,將底層各種不同廠家的硬體訪問通過乙個通用的簡潔的介面給程式設計師呼叫。中斷比比皆是,我們訪問乙個檔案,呼叫c語言的read函式就行了,這是個POSIX標準,但內部它要處理很多複雜的事,我不需要關心底層是乙個磁碟(Hard drive)呢,還是網路(Network)呢,或者是個虛擬檔案系統(vfs),我只要讀資料就行了。

中斷的作用

中斷提供了乙個時機,乙個硬體訊號,專業一點就是乙個時鐘週期,告訴作業系統我要進行上下學切換了,然後下個週期開始做搬家工作,將硬體資源、記憶體堆疊準備好,以便核心執行緒在接下來開始工作。

5樓:

換本書看吧,ostep有好幾章是講程序抽象和系統設計的。

為什麼需要使用中斷是因為對應用程式來說憑什麼你不讓我執行我就不執行,要讓應用程式願意的話當然要基於硬體做一些強制措施了。

作業系統核心編寫是否可以用STL

開發核心還是用自底向上的方法開發。STL可以作為實現的參考,直接呼叫很多細節的東西不在控制內,有可能對核心效能 依賴性和可移植性產生影響。本著底層的東西能自己寫就自己寫的原則,僅供參考。重新看了下你的問題,是可以的。還有,STL的可讀性不差的。 韋易笑 能不能用先不說,想想stl版本的linux核心...

對於Windows 10作業系統的個人使用者來說,是否還有必要安裝第三方的安全軟體?為什麼?

ypc 個人認為沒什麼必要,因為Windows Defender已經可以勝任防禦惡意程式 流氓軟體這一功能了,而且未必比360等一些殺軟差 裝了一些殺軟的使用者發現Windows Defender沒什麼用,其實Windows Defender早就被那些殺軟關了 而且Windows Defender還...

如何評價華為的自動駕駛作業系統核心獲得ASIL D的認證?

biubiu 成為中國首個獲得ASIL D認證的作業系統核心,同時該核心已於2019年9月獲得Security領域高等級資訊保安認證 CCEAL5 標誌著華為自動駕駛作業系統核心已成為業界首個擁有SecuritySafety雙高認證的商用OS核心。 洱海之東 先來看看這個證書的含金量,ISO 262...