Load Balancing In Distributed Systems