0
我已經讀過關於用戶空間和內核空間以及程序的執行路徑如何從用戶空間到內核空間的內容,我想這是一個例子,如果我的程序像這樣運行程序訪問內核空間時會發生什麼
Poco::Net::SocketAddress sender;
char buffer[64000];
.
.
.
socket.receiveFrom(buffer, sizeof(buffer), sender);
由於這次調用需要訪問網卡,我認爲它應該進入內核空間。
我的問題是: 因爲程序會發生什麼事讓socket.receivefrom(...)調用
- 是否線程進入睡眠狀態,並放棄它的核心,因爲它會 到內核空間只有被喚醒時,字符緩衝區已經 書面
- 是否線程直接到內核空間,然後回來給用戶空間寫入的字符緩衝區
查看https://unix.stackexchange.com/questions/370975/does-a-context-switch-occurs-when-an-interrupt-is-fired –