計算機體系結構中的路由潛在問題有哪些?
在訊息傳遞系統中,使用某些路由機制可能會導致幾個潛在問題。這些問題包括死鎖、活鎖和飢餓,具體如下:
死鎖 − 當兩條訊息各自持有對方移動所需資源時,這兩條訊息都將被阻塞。這就是所謂的死鎖。這是一種只要存在資源的迴圈依賴關係就會發生的現象。網路中資源的管理是所使用的流量控制機制的責任。必須以避免死鎖的方式分配資源。
活鎖 − 活鎖描述了一種情況,其中訊息不斷在網路中迴圈,而從未到達其目的地。這是一種由於使用自適應路由演算法而產生的現象,在這些演算法中,訊息會被重新路由以期找到到達目的地的另一條路徑。
當節點需要通訊時,它們會將其訊息注入網路。當網路中沒有訊息時,所有節點同時注入其訊息,這將導致靜態注入模型。
這需要與動態注入進行比較,根據動態注入,節點可以在任意時間注入其訊息。如果使用動態注入,則可能發生活鎖。如果使用靜態注入,則不會發生活鎖。可以使用幾種路由策略來避免活鎖。
飢餓 − 如果一個節點需要將訊息注入網路,但始終不允許這樣做,則稱該節點處於飢餓狀態。如果使用靜態注入,則不會出現飢餓。可以使用幾種路由策略來避免飢餓的發生。其中最簡單的方法是允許每個節點擁有其注入佇列,在該佇列中儲存它想要注入網路的訊息。
此佇列與該節點的傳入鏈路的佇列同等對待,並與它們競爭。只要使用公平佇列管理策略,這種方法就可以防止飢餓的發生。主要缺點是訊息注入率高的節點可能會減慢網路中所有其他節點的速度。
廣告