Distributed Scheduling (DS) is a new paradigm that enables the local decisionmakers make their own schedules by considering local objectives and constraints within the boundaries and the overall objective of the whole system. Local schedules from different parts of the system are then combined together to form a final schedule. Since each local decision-maker acts independently from each other, the communication system in a distributed architecture should be carefully designed to achieve better overall system performance. These systems are preferred over the traditional systems due to the ability to update the schedule, flexibility, reactivity and shorter lead times. In this thesis, we review the existing work on DS and propose a new classification framework. We also develop a number of bidding based DS algorithms. These algorithms are tested under various manufacturing environments.