系統呼叫是如何與作業系統連線的?


系統呼叫是一種程式透過作業系統進行通訊的方法。無法直接訪問系統呼叫的應用程式開發者可以透過API訪問(這指的是軟體元件必須進行通訊的方式)。

系統呼叫提供了使用者程式和作業系統之間的介面。當用戶想要向作業系統發出指令時,它將透過系統呼叫來完成。或者,使用者程式可以透過系統呼叫訪問作業系統的核心部分。

這是一種程式化方式,計算機程式透過它向作業系統核心請求服務。

程式以兩種模式執行,如下所示:

  • 使用者模式 - 無法訪問任何硬體資源,只能執行使用者操作。

  • 核心模式 - 可以訪問硬體資源,如RAM、印表機。

計算機中的處理器根據處理器上執行的程式碼型別在兩種模式之間切換。在使用者模式下執行的程序無法訪問為作業系統保留的虛擬地址。

當作業系統執行使用者應用程式(例如處理文字編輯器)時,系統處於使用者模式。當應用程式請求作業系統的幫助或發生中斷或系統呼叫時,就會發生從使用者模式到核心模式的轉換。

在使用者模式下,模式位設定為1。當程式需要任何硬體資源時,它需要呼叫核心。

API中的函式呼叫正常的系統呼叫。系統呼叫允許使用者級活動來呼叫作業系統的服務。

在使用者模式下的程式需要訪問RAM,程式應該請求核心提供對RAM的訪問許可權,這透過系統呼叫來完成。從使用者模式到核心模式的切換稱為上下文切換。

注意 - 核心模式是強大的特殊模式。任何崩潰都會導致整個系統停止,這在使用者模式下不會發生,在使用者模式下只有特定程式會停止。

下圖描述了核心模式:

更新於:2021年12月1日

1K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告