The authors propose a cell scheduling algorithm to increase the throughput of an asynchronous transfer mode (ATM) switching system with services of diverse priority classes. The maximum throughput is increased up to 0.949. The efficiency (output trunk utilization)/(input trunk utilization) is almost equal to 100%, and is almost independent of the switch size and the traffic load. The cell scheduling algorithm is shown to be able to provide high throughput not only for higher priority classes but also for lower priority classes. The mean cell waiting time of the highest priority class are transmitted as soon as possible. In the switching system implemented with the present cell scheduling algorithm, it is sufficient for a sorting network to establish input/output paths through it simultaneously without conflicts and it is not necessary to append a routing network to a sorting network.