作業系統程序進行系統呼叫詳細過程

2021-10-12 10:04:06 字數 652 閱讀 1468

翻閱很多資料,綜合了各處所述程序在進行系統呼叫之後的狀態會如何的解答,以下是我個人理解,歡迎各位讀者糾錯。

ps: 特別感謝以下這個帖子,看完他們的討論我才茅塞頓開,非常感謝!

乙個執行態的使用者程序在執行系統呼叫命令(系統呼叫命令編譯後,包含若干引數以及陷入指令)之後

首先向作業系統傳遞各種引數

然後執行陷入指令,儲存現場

作業系統由使用者態轉變為核心態(這裡注意,僅僅是cpu的模式變了,程序還是那個程序,即使用者態/核心態是說cpu模式,程序執行態/阻塞態是另一回事,某方面來說,二者互不相干)

程序開始執行系統呼叫,此時,如果系統呼叫的內容為排程cpu以外的系統資源,則分為以下兩種情況:

1.資源空閒,可以直接使用,則程序使用資源,同時儲存現場,轉為阻塞態,當使用完資源時,資源向程序發出訊號,程序轉為就緒態;

2.資源被占用,需要排隊,則程序開始排隊,同時儲存現場,轉為阻塞態,當排到該程序時,轉為就緒態,然後當等待到cpu時,轉為情況1;

當使用完了資源,程序再次執行時,此時,資源依然被本程序占用著,需要釋放掉資源,恢復現場,還是處於核心態,然後此時相當於系統呼叫已經執行完成,然後就恢復現場,返回使用者態了。

作業系統 系統呼叫

由作業系統提供的功能,通常應用程式本身是無法實現的。例如對檔案進行操作,應用程式必需通過系統呼叫才能做到,因為只有作業系統才具有直接管理外圍裝置的許可權。又如程序或執行緒間的同步互斥操作,也必需經由作業系統對核心變數進行維護才能完成。從下到上看乙個完整的計算機系統 物理硬體 os核心 os服務 應用...

作業系統 程序

在作業系統中,作業系統將記憶體,網路,檔案系統抽象為資源的統一抽象表示。1 什麼是程序 程序就是進入記憶體中正在執行的程式。把程序當做一組元素組成的實體。程序包括兩個部分,一部分是 部分,另一部分是 相關的資料集合。程序控制塊 每乙個程序,在核心中都對應著乙個程序控制塊。程序控制塊中儲存著程序的所有...

作業系統 程序

程序是作業系統中的重要概念,描述了程式的執行資訊。乙個程序就是一次執行。可以把程式想象成類,程序就是例項。引入程序的概念有利於實現多程式並行的設計。每乙個程式執行的時候可以大致分為io任務和計算任務,如果乙個程序正在io,那麼應該把cpu讓給另乙個程序執行計算任務,這樣可以提公升cpu的利用率,這就...