我想更好地理解UNIX操作系統中的信號和中斷機制。據我瞭解,中斷用於CPU和操作系統內核之間的通信。信號用於在OS內核和OS進程之間進行通信。執行程序並殺死它時的信號和中斷
我很難理解在某些情況下發生了什麼,並且發現哪些信號和中斷正在被調用以及何時發生。
例如,執行程序並使用kill pid
將其殺死時。在shell中輸入程序的名稱時會觸發哪些中斷(例如pluma
,然後是kill pluma_id
)?
我試過在調用kill
命令時使用strace
。執行的第一個命令是:execve ("/bin/kill", ["kill", "10057"], [/* 47 cars */]) = 0
據我所知,這是一個標準的系統調用,但我無法理解哪些中斷被觸發,哪些信號在發生鍵盤按鍵事件時發送。我也無法理解哪些信號在使用kill
系統調用終止時被髮送到進程(可能根本沒有發送?)。
什麼是發生在以下情形事件(信號,sisals和中斷)的全序列:
- 在shell中鍵入
plume
- 點擊回車鍵執行
pluma
- 執行
kill pluma_id
(簡要說明綽綽有餘,只是瞭解一般流程)