Summary form only given. The author presents a dynamic load-balancing algorithm which uses an elegant way to collect system state. The author considers a distributed system to be a collection of identical nodes which are connected via a communication network providing a point-to-point connection between any pair of nodes. All nodes are subject to the same average arrival rate of jobs. All jobs are considered to be statistically identical and independent and can be served by any node in the system. The author models all CPUs and all communication channels to be queuing servers. The CPUs are assumed to be time-sliced preemptable priority queues, where the control jobs (e.g., collecting system state and preparing jobs for transfer) have higher priority than the user jobs and the time-sliced round-robin policy is used among the same priority jobs. The channels are assumed to be nonpreemptable priority queues where the control messages (e.g., system state messages and job request messages) are preferred over the transferred jobs and the FIFO policy is used among the same priority jobs.