cpu既可以執行在使用者態下,也可以執行在核心態。當乙個程式在使用者態執行時,它不能直接訪問核心資料結構或核心的程式。每種cpu模型都提供了從使用者態到核心態的轉換的特殊指令,反之亦然。乙個程式執行時,大部分時間都處於使用者態,只有需要核心所提供的服務時才切換到核心態。當核心滿足了程式的請求後,它讓程式切換到使用者態。
核心本身並不是乙個程序,而是程序管理者。程序/核心模式假定:請求核心服務的程序使用所謂系統呼叫的特殊程式設計機制,每個系統呼叫都設定了一組識別程序請求的引數,然後執行與硬體相關的cpu指令完成從使用者態到核心態的切換。除了使用者程序之外,unix系統還包括幾個所謂核心執行緒的特權程序,它們具有以下特點:
1、它們以核心態執行在核心位址空間
2、它們不與使用者直接互動,因此不需要終端裝置。
3、它們通常在系統啟動時建立,然後一直處於活躍狀態,直到系統關閉
啟用核心例程的幾種方式:
1、程序呼叫系統呼叫
2、正在執行程序的cpu發出乙個異常訊號,核心捕捉到訊號,並進入異常處理
3、外圍裝置向cpu發出乙個終端訊號以通知乙個事件的發生,如乙個要求注意的請求、乙個狀態的變化或乙個i/o的完成等。每個中斷訊號都由核心的中斷處理程式來處理。外圍裝置和cpu非同步操作,因此,中斷在不可預知的時間發生。
4、核心執行緒被執行。因為核心執行緒執行在核心態,因此必須認為其相應程式是核心的一部分。
Unix 核心概述
核心本身並不是乙個程序,而是程序的管理者。程序 核心模式假定 請求核心服務的程序使用所謂系統調 system call 的特殊程式設計機制。每個系統呼叫都設定了乙個組識別程序請求的引數,然後執行與硬體相關的cpu指令完成從使用者態到核心態的轉換。unix系統還包括幾個所謂核心執行緒 kernel t...
uniX核心概述 可重入核心
所有的unix核心都是可重入的,這意味著若干個程序可以同時在核心態下執行。在單處理器系統上只有乙個進 正執行,但是有許多程序可能在等待cpu或某乙個i o操作完成時在核心態下被阻塞。例如,當核心代表某一程序發出乙個讀磁碟的請求後,就讓磁碟控制器處理這個請求,並恢復執行其他程序。當裝置滿足了讀請求時,...
Unix程序之程序概述
程序是計算機程式執行起來的動態過程。發明計算機的目的就是為了處理各式各樣的資料,人類通過程式設計工具 c c 等 編寫對處理資料的程式,完成了對現實世界中各類資料的抽象 資料型別 通過函式 類等方式把我們對資料處理的過程表達出來 程式像這樣的 c語言 程式被轉換成二進位制指令序列 像這樣 十六進製制...