Self-stabilizing Algorithm on Linear Array

碩士 === 國立臺北商業技術學院 === 商學研究所 === 94 === Self-stabilizing, which was first introduced by Dijkstra in 1974 and can tolerate many kinds of data faults, is a special classification of distributed algorithms. While running self-stabilizing algorithm, processors in a distributed system execute a copy of th...

Full description

Bibliographic Details
Main Authors: Cheng-Kai Lin, 林承凱
Other Authors: Hon-Ren Lin
Format: Others
Language:zh-TW
Published: 2006
Online Access:http://ndltd.ncl.edu.tw/handle/93888410763919267827
Description
Summary:碩士 === 國立臺北商業技術學院 === 商學研究所 === 94 === Self-stabilizing, which was first introduced by Dijkstra in 1974 and can tolerate many kinds of data faults, is a special classification of distributed algorithms. While running self-stabilizing algorithm, processors in a distributed system execute a copy of the algorithm simultaneously and can only access state value of its neighbors and itself. Also, self-stabilizing algorithm does not need data initializing and does not have the idea of the global state, but it achieves a stable state automatically. Self-stabilizing algorithm can be applied in different topologies of distributed system. Our algorithms focus on linear array and solve basic issues of distributed system, such as mutual exclusion, load balance, and synchronization. Our mutual exclusion algorithm maintains a four-state variable and reaches stabilization in O(n*n) time. Load balance algorithm aims at that the highest load differs by less than 1 with the smallest load, and reaches stabilization in O(n*n) time. Synchronization algorithm coordinates phase of all nodes which differs by less than 1, and reaches stabilization in O(n*n) time. Mutual exclusion algorithm is performed under the assumptions of non-uniform processors and asynchronous steps. The others are preformed under uniform processors and asynchronous steps. We prove the correctness of these algorithms and also provide required time for stabilization.