歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統調用執行過程解析

Linux系統調用執行過程解析

日期:2017/2/28 17:49:21   编辑:Linux教程

執行系統調用函數時,系統調用函數會執行int 0x80中斷命令,同時將系統調用號放入eax寄存器中,並將要傳遞給系統的參數放入ebx,ecx,edx中。中斷處理程序會執行system_call()函數。

system_call()函數首先保存原段寄存器,在將調用參數壓入棧中。然後將ds、es指向內核數據段,cs段會在中斷產生時由中斷門的段選擇符賦值為內核代碼段,並將原段選擇符保存到棧中。然後調用對應的功能函數。當從功能函數返回時,內核會查看當前任務運行狀態,如果不在就緒態就去執行調度程序。如果在就緒態,但其時間片用完,則也去執行調度程序。當任務繼續執行時則繼續對信號進行處理,然後退回到系統調用函數。

Copyright © Linux教程網 All Rights Reserved