如果系統中只有1個正在運行的應用程序(並且默認100個睡眠進程),並且它執行阻塞系統調用(我有興趣阻止recv或阻塞讀取)。請問linux內核從task_t *current
指針中刪除這個應用程序?在系統中沒有其他負載的情況下阻塞系統調用(linux內核)
0
A
回答
0
你在問運行的應用程序會睡嗎?
如果有數據滿足讀取,那麼它將不會休眠 - 內核會將排隊的數據複製到緩衝區並從系統調用返回。如果沒有等待數據,那麼這個過程將會休眠。這不取決於系統上其他進程的狀態。如果所有進程都處於休眠狀態,那麼內核將執行有用的操作,例如將CPU置於低功耗狀態,直至發生中斷,這可能意味着您的進程正在等待的數據現在可用。
+0
這是沒有數據可讀。任務會睡覺。我問,內核'current'指針(內核堆棧)指向這個任務。 – osgx 2010-05-04 13:47:04
相關問題
- 1. Linux內核中的系統調用
- 2. 沒有內核的Linux文件系統
- 3. Linux阻止系統調用
- 4. 冗餘的Linux內核系統調用
- 5. Linux內核AIO,開放系統調用
- 6. 更改linux內核系統調用號
- 7. 在沒有kldload的情況下向FreeBSD添加系統調用
- 8. 在沒有堆棧的情況下在Linux上進行系統調用
- 9. Qt - 系統級調用阻塞的QThreads
- 10. Linux內核系統調用返回沒有給出的指針
- 11. Linux內核模塊(內核3.5)中的系統調用攔截
- 12. 追蹤C阻塞系統調用
- 13. 哪個進程在Linux內核中調用系統調用?
- 14. linux內核模塊阻止卸載文件系統
- 15. 阻塞來電android系統
- 16. 是否有任何系統調用阻塞內存
- 17. Linux內核2.6中有多少系統調用?
- 18. Linux系統調用
- 19. 在沒有X-Window系統的情況下使用OpenGL
- 20. 在Linux的NFS掛載系統調用
- 21. linux內核中的系統調用表在哪裏?
- 22. 在Linux內核3.3中添加一個新的系統調用
- 23. 在系統調用中訪問Linux內核的SuperBlock對象
- 24. 我想讓接受系統調用爲非阻塞。我如何使接受系統調用爲非阻塞?
- 25. 在Linux內核源代碼中執行系統調用/陷阱
- 26. 在linux 2.6.39.4內核中測試系統調用
- 27. 其他操作系統是否實現Linux系統調用拼接?
- 28. Matlab,在沒有simulink的情況下研究非線性系統
- 29. Linux內核3.3.4中的自定義系統調用
- 30. Linux內核中的系統調用錯誤處理
似乎'current'將指向swapper(pid 0)任務 – osgx 2010-11-09 02:46:06