用户模式 VS 内核模式(1)
用戶模式:
?通過windows啟動(dòng)的任何一個(gè)進(jìn)程都在用戶模式(user mode)下運(yùn)行,在這種模式下的進(jìn)程不能訪問其它進(jìn)程的資源,除非通過API調(diào)用。在這種模式下運(yùn)行的程序不能處理中斷(interrupts)和環(huán)境切換(context switching)。
中斷(interrupts):
?CPU在運(yùn)行時(shí)經(jīng)常被一些事件打斷(interrupt),如計(jì)時(shí)器,鍵盤,硬盤等。這些事件就叫做中斷(interrupts)。操作系統(tǒng)內(nèi)核必須創(chuàng)建一些中斷處理器(interrupts handlers)來處理這些事件。因此,當(dāng)中斷出現(xiàn)時(shí),操作系統(tǒng)就會(huì)停止當(dāng)前執(zhí)行的程序并轉(zhuǎn)入內(nèi)核模式來之中中斷處理器來處理這些事件。事件處理器會(huì)保存當(dāng)前CPU的狀態(tài),處理事件,恢復(fù)CPU的狀態(tài),從而使得CPU可以繼續(xù)前面運(yùn)行的程序。
?當(dāng)一個(gè)程序希望調(diào)用windows API時(shí),它就會(huì)觸發(fā)一個(gè)中斷(interrupt),從而使CPU進(jìn)入內(nèi)核模式來執(zhí)行所要求的API。在API調(diào)用結(jié)束后,CPU會(huì)切換回用戶模式并繼續(xù)執(zhí)行先前的程序。
環(huán)境切換(Context switching)
環(huán)境切換是由操作系統(tǒng)來執(zhí)行的,環(huán)境切換的步驟如下:
(1)保存當(dāng)前程序的運(yùn)行狀態(tài)
(2)指出下一個(gè)將要運(yùn)行的程序
(3)恢復(fù)另一個(gè)進(jìn)程的狀態(tài)
?
總結(jié)
以上是生活随笔為你收集整理的用户模式 VS 内核模式(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html cols跨两列,html –
- 下一篇: 用户模式与内核模式(2)