• 同步 (計算機科學)

    編輯
    本詞條由“匿名用戶” 建檔。

    同步(計算機科學)

    編輯

    計算機科學中,同步指的是兩個不同但相關的概念之一:進程同步和數據同步。 進程同步指的是多個進程在某個點聯合起來或握手,以達成協議或承諾執行特定的操作順序。 數據同步是指保持數據集的多個副本彼此一致,或保持數據完整性的想法。 進程同步原語通常用于實現數據同步。

    需要同步

    編輯

    同步的需要不僅僅出現在多處理器系統中,而且出現在任何類型的并發進程中; 即使在單處理器系統中。 下面提到的是同步的一些主要需求:

    Forks and Joins:當一個作業到達一個fork點時,它被分成N個子作業,然后由n個任務提供服務。 在被服務之后,每個子作業等待直到所有其他子作業完成處理。 然后,他們再次加入并離開系統。 因此,并行編程需要同步,因為所有并行進程都在等待其他幾個進程的發生。

    生產者-消費者:在生產者-消費者關系中,消費者過程依賴于生產者過程,直到產生了必要的數據。

    獨占使用資源:當多個進程依賴于一個資源并且需要同時訪問它時,操作系統需要保證在給定的時間點只有一個處理器訪問它。 這會降低并發性

    線程或進程同步

    編輯

    線程同步被定義為一種機制,它確保兩個或多個并發進程或線程不會同時執行某些稱為臨界區的特定程序段。 進程對臨界區的訪問是通過使用同步技術來控制的。 當一個線程開始執行臨界區(程序的序列化段)時,另一個線程應該等待直到xxx個線程完成。 如果不應用適當的同步技術,可能會導致競爭條件,其中變量的值可能無法預測,并且會根據進程或線程的上下文切換時間而變化。

    例如,假設有3個進程,分別為1、2、3,這三個進程都是并發執行的,需要共享一個公共資源(臨界區),這里應該使用同步來實現 避免訪問此共享資源的任何沖突。 因此,當進程 1 和進程 2 都嘗試訪問該資源時,一次只能將其分配給一個進程。 如果它被分配給進程 1,則另一個進程(進程 2)需要等待,直到進程 1 釋放該資源。

    另一個需要考慮的同步要求是特定進程或線程的執行順序。 例如,在購買機票之前不能登機。 同樣,在驗證適當的憑據(例如,用戶名和密碼)之前,不能檢查電子郵件。 同樣,ATM 在收到正確的 PIN 之前不會提供任何服務。

    除了互斥,同步還處理以下內容:

    • 死鎖,當許多進程正在等待其他進程持有的共享資源(臨界區)時發生。 在這種情況下,進程只是繼續等待,不再執行;
    • 饑餓,發生在一個進程等待進入臨界區,但其他進程獨占了臨界區,xxx個進程被迫無限期等待;
    • 優先級倒置,當高優先級進程在臨界區時發生,它被中等優先級進程中斷。 這種違反優先級規則的情況在某些情況下可能會發生,并可能在實時系統中導致嚴重后果;
    • 忙等待,當進程頻繁輪詢以確定它是否可以訪問臨界區時發生。 這種頻繁的輪詢會占用其他進程的處理時間。

    計算機

    最小化同步

    編輯

    百億億次級算法設計的挑戰之一是最小化或減少同步。 同步比計算花費更多的時間,尤其是在分布式計算中。 幾十年來,減少同步引起了計算機科學家的關注。 然而,隨著計算能力的提高和延遲之間的差距越來越大,它最近成為一個越來越重要的問題。 實驗表明,由于分布式計算機上的同步,(全局)通信在稀疏迭代求解器中占據主導地位。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/203994/

    (4)
    詞條目錄
    1. 同步(計算機科學)
    2. 需要同步
    3. 線程或進程同步
    4. 最小化同步

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久