競爭危害

维基百科,自由的百科全书
跳转至: 导航搜索

競爭危害(race hazard)又名競態條件(race condition)。旨在描述:一個系統或者進程的輸出,依赖于不受控制的事件的出现顺序或者出现时机。本辭源自於:兩個訊號試著彼此競爭,來影響誰先輸出。

例如,计算机的两个进程都试图修改一个共享内存的内容。在没有并发控制的情况下,最后的结果依赖于两个进程的执行顺序与时机,特别是如果发生了并发访问冲突,则最后的结果是不正确的。

競爭危害常見於:不良設計的電子系統,特別是邏輯電路,然而它們在軟體裡也常見。

實例[编辑]

  1. 計算機記憶體或者磁碟裝置裡,如果同時發出大量數據指令的時候,競爭危害可能發生。計算機嘗試覆蓋相同或者舊的數據,而此時旧的數據仍在被讀取。結果可能是下面的一個或者多個情況:機器當機、出現非法操作並結束程式、錯誤的讀取舊數據、或者錯誤的寫入新數據。
  2. 網路上,競爭危害會在:多用戶同時試圖訪問同一個可用訊息通道時,產生。在系統同意訪問前沒有計算機能得到訊息通道被佔用的提醒。統計上說這種情況通常發生在極端長延遲時間的網路裡,譬如地球同步衛星。解決之道是用戶於先預產生優先級列表。然而駭客可以利用這種競爭危害取得非法訪問網路的權利。
  3. 数字电路,由于逻辑部件输出对输入有一个响应延迟,因此可能在输出上出现一个不希望有的脉冲信号。被称为en:glitch。使用卡诺图以发现并消除这类问题。
逻辑电路中的竞态条件.这里,∆t1与∆t2表示逻辑单元的传播延迟.当输入值(A)改变,电路输出有一个很短的峰持续(∆t1+∆t2) - ∆t2 = ∆t1.

参见[编辑]

外部链接[编辑]