Scheduling is fundamentally a dynamic resource allocation problem.
In many engineering and service systems, resources are often shared among jobs that have different arrival patterns and different service requirements. As an example, consider the CPU of a computer system processes jobs generated by multiple users. A basic problem in operating such systems is to design a control rule that schedules the resource among different job types on a real-time basis so as to optimize certain objectives. Consequently, the optimal control problem can be translated into an optimization problem. I will present an overview of this area, focusing on recent developments, including generalizations of the theory and connections to fluid models.