我們可以在單處理器系統上應用並行性的概念嗎?比方說,如果我們有兩個進程A & B,它們是彼此獨立的,它們是否可以同時被關心(執行),如果是的話如何?你能否就後續的執行週期進行解釋。單處理器系統上的並行性
回答
如果只有一個處理器,它們不能同時運行。如果您有多線程或多進程環境,它將對每個進程和/或線程進行時間分割。在任何給定的時間只有一個會運行,並且每個context switch都有開銷。
「上下文切換」的確切含義顯著在用法而變化,最經常是指「線程切換或過程開關」或「只過程開關」,其任一者可作爲一個「任務開關」被稱爲。更精細的是,可以區分線程切換(在給定進程內切換兩個線程),進程切換(在兩個進程之間切換),模式切換(域交叉:在給定線程內在用戶模式和內核模式之間切換)堆棧幀開關和地址空間開關(內存映射開關:將虛擬內存更改爲物理內存映射)。上下文切換的計算成本取決於其精確需要的計算成本,從輕量級用戶進程的子例程調用到非常昂貴的,但通常比保存或恢復過程映像少得多。
有趣的是,在Windows開始流行之前,甚至有多線程庫可用於MS-DOS。許多來自同一時代的大型機和迷你電腦也採用了這種技術。
值得一提的是,時間片實際上可能相當長 - 大概60ms,具體取決於操作系統。這足以讓執行看起來像人類同時進行,但在現代計算機上很長一段時間。 – bazza
因此,當我們有一個分叉的進程時,它產生了它的孩子,理論上說它是兒童(產生的進程)同時執行,那麼在單個處理器環境中如何工作呢?說S1和S2是從一個過程S產生的,那麼理論上S1和S2同時執行並且說他們加入以開始一個過程S3。那麼在這裏如何同時執行S1和S2?我希望現在很清楚。請參考該鏈接作爲更清晰的例子[鏈接](http://nob.cs.ucdavis.edu/classes/ecs251-2000-01/sync-1.gif)。謝謝 –
如果有一個CPU,則每個進程都被時間片分割到該物理CPU上。這些過程輪流進行。 –
具有類似並行性的概念稱爲單處理器的多任務處理。我們必須明白,當我們有一個核心時,這意味着無論系統中有多少進程(任務),一次只能執行一個進程(任務)。
但是如果一個進程有線程,所有的線程都會被一個一個地分配給cpu,用戶會有進程所有線程都在運行的印象。
'但是如果一個進程有線程,所有的線程都將被分配到cpu中。對於具有多個進程但只有一個CPU的系統,或者具有N個進程和M個CPU的系統也是如此,其中N> M(現在可能就是您電腦上的情況)。 –
@Eric我的意思是,當我們有一個核心時,只有一個任務將以1個時間單位執行,但是如果核心數量> 1,那麼可以以1個時間單位執行的任務數量等於數量的核心。 – Ritesh
我不反對你,只是增加一些信息。 –
cpu將在進程之間切換。它在OS中稱爲上下文切換。 有不同的上下文切換方法,如: 循環,優先級隊列 上述方法將決定哪個進程將使用cpu。 但是cpu不能一次被兩個進程使用。 提前OS任務調度程序負責將進程分配給cpu。
- 1. 兩個雙核處理器系統的並行性
- 2. 線程在單處理器系統
- 3. 集羣系統上的Java並行處理(集羣計算)
- 4. 單處理器vs雙核系統上的進程狀態
- 5. 單處理器系統上的多線程powershell腳本
- 6. 多線程可以在單處理器系統上實現嗎?
- 7. 在單處理器系統中執行無限循環
- 8. 在雙核處理器上執行2個操作系統
- 9. 菜單系統的展望處理
- 10. 如何在多處理器系統上使用單個proc進行調試?
- 11. 具有32位操作系統程序兼容性的64位處理器?在64位處理器上的
- 12. 從magento創建訂單處理系統?
- 13. 雙緩衝系統並行處理的設計?
- 14. 在32位系統上處理PHP longint
- 15. 同步在多處理器系統
- 16. Azure上的並行處理
- 17. 經典文件系統問題 - 目錄上的並行遠程處理
- 18. 在Ubuntu 15.10上的Docker 32位(操作系統和處理器)
- 19. 多核/多處理器系統上Thread.currentThread()的語義?
- 20. 多處理器系統上的POSIX線程
- 21. 在Linux系統上檢查python多處理中的fork行爲
- 22. 使用文件系統VS RDMBS進行併發處理(MySQL)
- 23. 單處理器系統可以處理多級隊列調度嗎?
- 24. 處理鏈接系統
- 25. 處理js跳轉系統
- 26. Python處理系統關閉
- 27. 處理點擊android系統
- 28. UIImageView處理拖動系統
- 29. 哪個XSLT處理器實際上利用了並行處理?
- 30. 在上下文處理器中的關係「向後」處理器
是通過時間共享和上下文切換 – shami
嗯,沒有。它們不能同時執行。它們被串行執行。可能只是語義。我從這個問題中得到的 –
是他誤解B將在A完成後開始。我認爲OP正在考慮這個。我是對的@Ashish – shami