The important classical results are surveyed with particular attention paid to single-processor scheduling, along with general models such as resource-constrained scheduling, flexible flow shops, dynamic job shops, and special flexible manufacturing systems.