並行性和併發性的區別

2021-08-31 04:32:52 字數 765 閱讀 9746

前段時間被別人問起關於核心併發性的問題,當時隨便說了一下,但後來細想,我還真不知道什麼是併發性,回想一下當年在學校裡學作業系統這門課程的時候,這兩個概念都是一知半解的,更別說這麼幾年過去了,更加就模糊了。

網上搜了一大堆資料,下面來整理一下思路!

所謂並行性

(parallelism)

是指在同一時刻或是同一時間間隔內完成兩種或兩種以上性質相同或不相同的工作。只要時間上互相重疊,就存在並行性。嚴格來講,把兩個或多個事件在同一時刻發生的並行性叫做同時性

(simultaneity)

;而把兩個或多個事件在同一時間間隔內發生的並行性叫做併發性

(concurrency)

。以n位並行加法為例,由於存在著進製訊號的傳播延遲時間,全部n位加法結果並不是在同一時刻獲得的,因此並不存在同時性,而只存在併發性的關係。如果有m個儲存器模組能同時進行讀出資訊,則屬於同時性。

並行的事件或活動一定是併發的,反之併發的事件或者活動未必就是並行的。並行性事併發性的乙個特例。

併發性描述的其實是兩個事件在乙個時間間隔內發生,但未必會同時進行,也有可能會在某一時間重疊區域中同時進行,這就要看這個時間間隔如何定義了。而並行性體現在同一時刻上不同的事件都正在進行著。比如,兩個人,一部**,時間8:00-8:10

這個時間段內,兩個人都想打**體現了前面所說的併發性,但是只有一部**,誰先來誰用,就不可能出現兩個人同時打**的情況。

所以,同一時間間隔內發生,但不同時進行的情況在核心中會出現很多,通常在資源有限的情況下會體現得更明顯。

參考:

併發性和並行性的區別

所有的併發處理都有排隊等候,喚醒,執行至少三個這樣的步驟.所以併發肯定是巨集觀概念,在微觀上他們都是序列被處理的,只不過資源不會在某乙個上被阻塞 一般是通過時間片輪轉 所以在巨集觀上看多個幾乎同時到達的請求同時在被處理。如果是同一時刻到達的請求也會根據優先順序的不同,而先後進入佇列排隊等候執行。併發...

並行性與併發性

verilog語句分為可綜合語句和不可綜合語句,可綜合語句是指語句具有描述組合邏輯和時序邏輯的能力,即為硬體描述語言 不可綜合語句用於對可綜合設計進行 驗證,即搭建testbench等。程式一般指命令處理器執行一系列指令的語句的集合,而硬體描述語言並不是在命令處理器處理指令,其本身描述實際上是乙個數...

併發和並行區別?

做併發程式設計之前,必須首先理解什麼是併發,什麼是並行,什麼是併發程式設計,什麼是並行程式設計。併發 concurrency 和並行 parallellism 是 解釋一 並行是指兩個或者多個事件在同一時刻發生 而併發是指兩個或多個事件在同一時間間隔發生。解釋二 並行是在不同實體上的多個事件,併發是...