回覆列表
  • 1 # 使用者8489360905421

    我們知道現在作業系統都是採用虛擬儲存器,那麼對32位作業系統而言,它的定址空間(虛擬儲存空間)為4G(2的32次方)。操心繫統的核心是核心,獨立於普通的應用程式,可以訪問受保護的記憶體空間,也有訪問底層硬體裝置的所有許可權。為了保證使用者程序不能直接操作核心,保證核心的安全,操心繫統將虛擬空間劃分為兩部分,一部分為核心空間,一部分為使用者空間。針對linux作業系統而言,將最高的1G位元組(從虛擬地址0xC0000000到0xFFFFFFFF),供核心使用,稱為核心空間,而將較低的3G位元組(從虛擬地址0x00000000到0xBFFFFFFF),供各個程序使用,稱為使用者空間。每個程序可以透過系統呼叫進入核心,因此,Linux核心由系統內的所有程序共享。於是,從具體程序的角度來看,每個程序可以擁有4G位元組的虛擬空間需要注意的細節問題:(1) 核心空間中存放的是核心程式碼和資料,而程序的使用者空間中存放的是使用者程式的程式碼和資料。不管是核心空間還是使用者空間,它們都處於虛擬空間中。 (2) Linux使用兩級保護機制:0級供核心使用,3級供使用者程式使用。核心態與使用者態:(1)當一個任務(程序)執行系統呼叫而陷入核心程式碼中執行時,稱程序處於核心執行態(核心態)。此時處理器處於特權級最高的(0級)核心程式碼中執行。當程序處於核心態時,執行的核心程式碼會使用當前程序的核心棧。每個程序都有自己的核心棧。(2)當程序在執行使用者自己的程式碼時,則稱其處於使用者執行態(使用者態)。此時處理器在特權級最低的(3級)使用者程式碼中執行。當正在執行使用者程式而突然被中斷程式中斷時,此時使用者程式也可以象徵性地稱為處於程序的核心態。因為中斷處理程式將使用當前程序的核心棧。

  • 中秋節和大豐收的關聯?
  • cf排位徽章怎麼顯示?