计算机体系结构中的路由潜在问题有哪些?
在消息传递系统中,使用某些路由机制可能会导致几个潜在问题。这些问题包括死锁、活锁和饥饿,具体如下:
死锁 − 当两条消息各自持有对方移动所需资源时,这两条消息都将被阻塞。这就是所谓的死锁。这是一种只要存在资源的循环依赖关系就会发生的现象。网络中资源的管理是所使用的流量控制机制的责任。必须以避免死锁的方式分配资源。
活锁 − 活锁描述了一种情况,其中消息不断在网络中循环,而从未到达其目的地。这是一种由于使用自适应路由算法而产生的现象,在这些算法中,消息会被重新路由以期找到到达目的地的另一条路径。
当节点需要通信时,它们会将其消息注入网络。当网络中没有消息时,所有节点同时注入其消息,这将导致静态注入模型。
这需要与动态注入进行比较,根据动态注入,节点可以在任意时间注入其消息。如果使用动态注入,则可能发生活锁。如果使用静态注入,则不会发生活锁。可以使用几种路由策略来避免活锁。
饥饿 − 如果一个节点需要将消息注入网络,但始终不允许这样做,则称该节点处于饥饿状态。如果使用静态注入,则不会出现饥饿。可以使用几种路由策略来避免饥饿的发生。其中最简单的方法是允许每个节点拥有其注入队列,在该队列中存储它想要注入网络的消息。
此队列与该节点的传入链路的队列同等对待,并与它们竞争。只要使用公平队列管理策略,这种方法就可以防止饥饿的发生。主要缺点是消息注入率高的节点可能会减慢网络中所有其他节点的速度。
广告