In distributed systems, the load balancing is the one of the most important issues. It makes the whole system more utilized by eliminating the idle loss which makes the difference between the potential computing power and the attained computing power. By migrating one or more processes from the heavily weighed node to the lightly weighed node, load balancing improves the whole system's performance.
Load balancing mechanisms can be classified into two categories: synchronous load balancing mechanisms and asynchronous load balancing mechanisms. While synchronous load balancing mechanisms require time for the sender and receiver synchronization, asynchronous load balancing mechanisms based on the client-solicitor model have no synchronization overhead. Several characteristics of the asynchronous load balancing are that process migration may occur when the request message and the solicit message are matched, that roll-back mechanism is employed to avoid infinite waiting of request, and that multiple traders are scattered in the selected nodes.
Amoeba is the target distributed operating system in this thesis. It uses ports for interprocess communications among processes. By knowing the nearest trader's port, a node can access the trader. In this thesis, we build an implementation model to map the asynchronous load balancing mechanism into Amoeba distributed operating system and emulate its model using the Amoeba key features currently running in the local Amoeba environment. We also analyze the performance and provide guidelines for the situation in the real Amoeba environment.