我知道中斷會導致操作系統將CPU從當前任務中更改爲運行內核例程。在這種情況下,系統必須保存在CPU上運行的進程的當前上下文。 但是,我想知道當任何隨機進程進行系統調用時是否發生上下文切換。通過隨機系統調用的上下文切換
0
A
回答
0
我想知道當任何隨機進程進行系統調用時是否發生上下文切換。
不準確。回想一下,如果一個進程當前正在運行,那麼這個進程只能進行系統調用 - 不需要將上下文切換到已經運行的進程。
如果某個進程發出阻塞系統調用(例如,sleep()
),則會切換到下一個可運行進程的上下文,因爲當前進程正在休眠。但那是另一回事。
0
通常有兩種方法可以導致內容切換。 (1)定時器中斷調用強制執行上下文切換的調度程序或(2)過程產生。大多數操作系統都有一些系統服務,這些服務會導致進程產生CPU。
0
好吧,我明白你的意思了。所以,首先我清楚一個關於系統調用的非常基本的想法。
當進程/程序進行系統調用並中斷內核以調用系統調用處理程序時。 TSS加載內核堆棧並跳轉到系統調用函數表。
看到它的運行程序本身的不同部分實際上相同,唯一的主要變化是內核在這方面發揮的作用,這段代碼將在環0中執行
現在你的問題「會出現什麼如果上下文切換髮生時,隨機進程正在進行系統調用?「
好吧,什麼都不會發生。事情會像以前一樣工作。只需要在TSS中擁有正常的地址,而不必在該隨機進程的TSS中指向內核堆棧和SysCall函數表地址。
相關問題
- 1. 線程調用系統調用時的上下文切換
- 2. 沒有上下文切換的系統調用?
- 3. 操作系統中的上下文切換
- 4. 系統調用與中斷上下文
- 5. 隨機android系統
- 6. 製作一個WPF系統上下文菜單項可切換
- 7. 切換android系統
- 8. 通過的ptrace系統調用
- 9. 如何跟蹤通過廚師刀切換系統的變化?
- 10. 是否有可用於跟蹤上下文切換的Linux系統API?
- 11. Android系統/系統上下文/替換類
- 12. Linux:通過ptrace()執行系統調用()
- 13. 線程上下文切換vs進程上下文切換
- 14. 隨機UIView切換器
- 15. C# - 系統切換隱藏文件?
- 16. 是否有隨機數的系統調用?
- 17. 通過Windows上的MINGW32在Python中進行系統調用
- 18. 在linux下,怎麼做系統調用通過GNU ARM彙編
- 19. 使用API REST通過文件系統上傳的文件
- 20. Linux系統:當切換至
- 21. 使用系統調用生成隨機數
- 22. 用隨機數製作破壞系統
- 23. 在Linux下掛載系統調用不能顯示文件系統的掛載點通過df命令
- 24. 用jquery切換一個隨機類
- 25. 上下文切換死鎖
- 26. 切換畫布上下文
- 27. Python:GIL上下文切換
- 28. 上下文切換太貴
- 29. PHP上下文切換
- 30. lpc 1769上下文切換
你能告訴我「過程控制塊」在這個過程中的作用是什麼? –