我的意思是說,如果線程的量子時間是20ms,那麼在執行上下文切換和其他(5ms)時花費20的一些時間(15ms)?線程量程時間中是否包含上下文切換時間?
回答
我會轉儲平均花費75%的時間上下文切換的操作系統。當許多優先級線程通過I/O中斷/信號以不幸,快速的順序準備就緒並因此導致就緒線程集合中的「順序」更改時,我只希望在傳遞基礎上實現這樣的負載。
如果開發者/海報在引用先發制人的內核時經常使用像'量子'和'時間片'這樣的術語,那就更好了。除了嚴重超載的盒子外,刻度中斷僅用於超時其他阻塞呼叫和休眠間隔。
無論如何,誰來想出'量子'這個術語呢?一個'量子'是不可分割的,而99.9%的家庭線程在大多數時間都在等待I/O或者彼此等待,運行時間小於滴答週期,立即被分配一個核心並在他們準備就緒時運行並且幾乎沒有經歷過因爲他們的「時間片」而被剝奪的經歷。
'時間片'聽起來像60年代的東西,而不是2012年,搶先內核對驅動程序中斷/信號作出快速響應,並立即使那些正在等待就緒/運行的線程。
這是一個實現細節。
Linux上發生的情況是,當進程/線程調度程序將一個CPU分配給一個線程時,該線程被認爲正在運行。它執行的從內核模式切換回用戶模式的代碼被視爲代表該進程/線程執行的內核代碼,因此上下文切換時間被視爲線程/進程運行時間。
做了多少時間用於上下文切換使用.NET ThreadPool例如? – theateist
因爲.NET不是一個操作系統,所以那些線程相關的CLR庫都只是OS API的包裝,所以沒有'.NET中的Context Switch'這樣的東西。
所以這個問題應該是這樣的:「在Windows上進行上下文切換需要多長時間?」
- 1. 線程之間的上下文切換
- 2. 測量上下文切換的時間
- 3. 上下文切換測量時間
- 4. 變量上下文切換時間
- 5. 什麼是上下文切換時間?
- 6. 進程中線程之間的上下文切換
- 7. 是否可以在不包含阻塞/搶佔時間的情況下測量線程的執行時間?
- 8. Java多線程時間切換
- 9. 線程上下文切換vs進程上下文切換
- 10. 是否可以減少上下文切換時間
- 11. 時間()和上下文切換
- 12. Linux獲取上下文切換時間
- 13. 檢查一下時間是否包含時間?
- 14. 在JVM中查找CPU時間花費上下文切換或喚醒線程
- 15. 兩個線程之間的上下文切換問題
- 16. POSIX:如何在線程之間執行上下文切換?
- 17. 我如何測量進程上下文切換所用時間的aproximation?
- 18. 查詢時間是否包含MySQL中的鎖定時間?
- 19. 線程池是否會產生上下文切換開銷?
- 20. std :: this_thread :: sleep_for - 是否將上下文切換到此線程?
- 21. 上下文切換使用了大量的時間嗎?
- 22. 從進程上下文切換切換線程上下文有多好?
- 23. 防止上下文切換(或測量然後減去時間在線程實際上不花費)
- 24. 強制線程上下文切換
- 25. 上下文切換多線程
- 26. 多線程:上下文切換
- 27. 使用SIGALRM切換線程上下文
- 28. 線程和上下文切換C++
- 29. 如何將程序運行時間線程包含進去
- 30. 當上下文切換髮生時Windows - 線程ID改變
我沒有說過75%。數字只是例如。我想知道上下文切換時間是給線程執行時間的一部分嗎?在.Net中上下文切換需要多長時間? – theateist