0% found this document useful (0 votes)
44 views13 pages

Store and Forward Deadlock

The document describes various techniques for avoiding deadlock in store-and-forward networks. It discusses buffer-graph based schemes that use buffer graphs to determine valid paths for packets. This includes the destination scheme, hops-so-far scheme, and acyclic orientation based scheme. It also describes unstructured solutions like forward/backward count and state schemes that use packet counts to determine valid moves. The goal is to develop distributed deadlock-free controllers that allow packets to move through the network safely.

Uploaded by

Nalin Goswami
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views13 pages

Store and Forward Deadlock

The document describes various techniques for avoiding deadlock in store-and-forward networks. It discusses buffer-graph based schemes that use buffer graphs to determine valid paths for packets. This includes the destination scheme, hops-so-far scheme, and acyclic orientation based scheme. It also describes unstructured solutions like forward/backward count and state schemes that use packet counts to determine valid moves. The goal is to develop distributed deadlock-free controllers that allow packets to move through the network safely.

Uploaded by

Nalin Goswami
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Store and forward deadlock

s t u v

Buffer-size = 5

Node s sending 5 packets to v through t


Node v sending 5 packets to s through u

Dept. of CSE, IIT KGP


Model
• The network is a graph G = (V, E)
• Each node has B buffers

Moves:

• Generation. A node u creates a new packet p and places it in


an empty buffer in u. Node u is the source of p.

• Forwarding. A packet p is forwarded from a node u to an


empty buffer in the next node w on its route.

• Consumption. A packet p occupying a buffer in its destination


node is removed from the buffer.

Dept. of CSE, IIT KGP


Requirements

The packet switching controller has the following requirements:

1. The consumption of a packet (at its destination) is always


allowed.
2. The generation of a packet in a node where all buffers are
empty is always allowed.
3. The controller uses only local information, that is, whether a
packet can be accepted in a node u depends only on
information known to u or contained in the packet

Dept. of CSE, IIT KGP


Solutions

• Structured solutions
– Buffer-graph based schemes
• The destination scheme
• The hops-so-far scheme
• Acyclic orientation based scheme

• Unstructured solutions
– Forward count and backward count schemes
– Forward state and backward state schemes

Dept. of CSE, IIT KGP


Buffer Graph

• A buffer graph (for, G, B) is a directed graph BG on the


buffers of the network, such that
1. BG is acyclic (contains no directed cycle);
2. bc is an edge of BG if b and c are buffers in the same node,
or buffers in two nodes connected by a channel in G; and
3. for each path π ∈ P there exists a path in BG whose image
is π.
– P is the collection of all paths followed by the packets – this
collection is determined by the routing algorithm.

Dept. of CSE, IIT KGP


Suitable buffer and guaranteed path

Let p be a packet in node u with destination v.


– A buffer b in u is suitable for p if there is a path in BG from
b to a buffer c in v, whose image is a path that p can follow
in G.

– One such path in BG will be designated as the guaranteed


path and nb(p, b) denotes the next buffer on the guaranteed
path.

– For each newly generated packet p in u there exists a


designated suitable buffer, fb(p) in u.

Dept. of CSE, IIT KGP


The buffer-graph controller

1. The generation of a packet p in u is allowed iff the buffer fb(p)


is free. If the packet is generated it is placed in this buffer.

2. The forwarding of a packet p from a buffer in u to a buffer in w


is allowed iff nb(p, b) (in w) is free. If the forwarding takes
place p is placed in nb(p, b).

The buffer-graph controller is a deadlock-free controller.

Dept. of CSE, IIT KGP


The Destination Scheme

• Uses N buffers in each node u, with a buffer bu[v] for each


possible destination v
– It is assumed that the routing algorithm forwards all packets with
destination v via a directed tree Tv rooted towards v.

The buffer graph is defined by BG = (B, E), where bu[v1]bw[v2] ∈ E


iff v1 = v2 and uw is an edge of Tv1.

There exists a deadlock-free controller for arbitrary connected


networks that uses N buffers in each node and allows packets to be
routed via arbitrarily chosen sink trees

Dept. of CSE, IIT KGP


The Hops-so-far Scheme

• Node u contains k + 1 buffers bu[0], …, bu[k].


• It is assumed that each packet contains a hop-count indicating
how many hops the packet has made from its source

The buffer graph is defined by BG = (B, E), where bu[i]bw[j] ∈ E


iff i + 1 = j and uw is an edge of the network.

There exists a deadlock-free controller for arbitrary connected


networks that uses D+1 buffers in each node (where D is the
diameter of the network), and requires packets to be sent via
minimum-hop paths.

Dept. of CSE, IIT KGP


Acyclic Orientation based Scheme
Goal: To use only a few buffers per node

• An acyclic orientation of G is a directed acyclic graph obtained by


directing all edges of G
• A sequence G1, …, GB of acyclic orientations of G is an acyclic
orientation cover of size B for the collection P of paths if each path
π ∈ P can be written as a concatenation of B paths π1, …, πB, where
πI is a path in Gi.

– A packet is always generated in node u in buffer bu[1]


– A packet in buffer bu[i] that must be forwarded to node w is placed in
buffer bw[i] if the edge between u and w is directed towards w in Gi, and
to bw[i + 1] if the edge is directed towards u in Gi.

If an acyclic orientation cover for P of size B exists, then there


exists a deadlock-free controller using only B buffers in each node.

Dept. of CSE, IIT KGP


Forward and Backward-count Controllers

Forward-count Controller:
• For a packet p, let sp be the number of hops it still has to make to
its destination (0 ≤ sp ≤ k)
• For a node u, fu denotes the number of free buffers in u (0 ≤ fu ≤ B)

The controller accepts a packet p in node u iff sp < fu.

If B > k then the above controller is a deadlock-free controller

Backward-count Controller:
• For a packet p, let tp be the number of hops it has made from its
source

The controller accepts a packet p in node u iff tp > k – fu.

Dept. of CSE, IIT KGP


Forward and Backward-state Controllers

Forward-state Controller:
• For a node u define (as a function of the state of u) the state vector
as (j0, …, jk), where js is the number of packets p in u with sp = s.

The controller accepts a packet p in node u with state (j0, …, jk) iff:
k
∀i ,0 ≤ i ≤ s p : i < B − ∑ j s
s =i

If B > k then the above controller is a deadlock-free controller

Backward-state Controller:
• Define the state vector as (i0, …, ik), where it is the number of
packets in node u that have made t hops.

The controller accepts a packet p in node u with state (i0, …, ik) iff:
j
∀j , t p ≤ j ≤ k : j > ∑ i t − B + k
t =0

Dept. of CSE, IIT KGP


Forward-state versus Forward-count

• Forward-state controller is more liberal than the


forward-count controller

• Every move allowed by the forward-count controller is


also allowed by the forward-state controller

Dept. of CSE, IIT KGP

You might also like