With the rapid development of microelectronics and mobile computing technology, reducing power dissipation of computing systems has become a hot topic for both academia and industry. As the resource manager of systems, operating system power management makes decision based on the characteristics of workload and hardware components, in order to reduce energy consumption while satisfying the performance constraints of applications simultaneously. Because of the diversity of applications and complexity of multitask operating system concurrency, OS dynamic power management strategy is facing workload uncertainty. One of the key issues becomes the tradeoff between performance and energy consumption. In this paper, the OS dynamic power management techniques are surveyed from the directions of optimal control strategy and operating system design. From the perspective of optimal control strategy, an OS power management subsystem model and two types of dynamic power management strategies, namely dynamic power management and dynamic voltage scaling are summarized in detail. From the perspective of operating system design, how to abstract power resources and how to design power management mechanisms and strategies in existing OS resources management framework are also important issues. Some key ideas and recent progresses on these issues are discussed. Finally, several challenges and open issues in OS power management are summarized.