[理工] 系統呼叫與例外

看板Grad-ProbAsk作者 (三由)時間14年前 (2011/10/11 22:57), 編輯推噓4(4018)
留言22則, 4人參與, 最新討論串1/1
As title system call與trap是一樣的東西嘛? 洪逸大大筆記定義好像都是 行程對os提出服務的要求 也就是說行程發system call一定伴隨trap產生? 還是有情況是發system call但沒發生trap 或沒發system call但產生trap之情況呢? 可能的話有哪些例子呢? 有勞大大解惑^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.254.213.91

10/11 23:38, , 1F
System call是程式對OS提出需求,trap跟interrupt是指中斷
10/11 23:38, 1F

10/11 23:39, , 2F
例子可從筆記反向推論 不在哪裡面的都算
10/11 23:39, 2F

10/12 00:40, , 3F
他上課有舉過一個例子:把system call視為需要服務的項目,
10/12 00:40, 3F

10/12 00:41, , 4F
把trap視為服務鈕,這樣就很明瞭了。 當一個precess需要
10/12 00:41, 4F

10/12 00:41, , 5F
OS服務時,會先按服務鈕(發出trap),然後把需要的服務項目
10/12 00:41, 5F

10/12 00:44, , 6F
pass給OS,OS才會去執行對應的system call,最後再把結果
10/12 00:44, 6F

10/12 00:45, , 7F
傳回去給process。而trap原本的用法是用來通知OS process有
10/12 00:45, 7F

10/12 00:46, , 8F
發生問題之用,但是後來就被拿來當通知OS有事情之用。洪逸
10/12 00:46, 8F

10/12 00:47, , 9F
有說這就像是你在ktv原本的服務鈕是用來告知發生火警的,
10/12 00:47, 9F

10/12 00:48, , 10F
結果後來被拿來用作其他事情也可以,所以當你按服務鈕後
10/12 00:48, 10F

10/12 00:48, , 11F
服務生會先抱著滅火器才跑進來...XD
10/12 00:48, 11F

10/12 00:54, , 12F
還有...其實exception並不等於就是trap,對於exception並沒
10/12 00:54, 12F

10/12 00:55, , 13F
有明確的定義,這個我有問過洪逸,因為像是I/O error也算是
10/12 00:55, 13F

10/12 00:56, , 14F
exception的一種,但是它是hardware interrupt。所以最好不
10/12 00:56, 14F

10/12 00:56, , 15F
要用trap來代用exception喔:)
10/12 00:56, 15F

10/12 21:29, , 16F
說的很詳細喔 感謝兩位大大!!!!!!!!!!!!!!!!
10/12 21:29, 16F

10/12 22:00, , 17F
張凡的計組定義exception為處理器內部發生了非預期事件而
10/12 22:00, 17F

10/12 22:02, , 18F
干擾程式的執行 感覺起來好像跟trap大同小異 等等再翻看看
10/12 22:02, 18F

10/12 22:02, , 19F
恐龍
10/12 22:02, 19F

10/12 23:43, , 20F
張凡上exception時第一句話就說計組跟OS的定義不一樣了XD
10/12 23:43, 20F

10/12 23:45, , 21F
他說"OS怎麼說不要管,計組就採他說的。"所以不能混在一起
10/12 23:45, 21F

09/11 14:32, , 22F
exception的一 https://daxiv.com
09/11 14:32, 22F
文章代碼(AID): #1Eb5bsMg (Grad-ProbAsk)