With the fast swelling of industry applications, new platforms, such as clusters, datacenter and cloud computing, are becoming mainstream service environments. Meanwhile, high performance chip multiprocessor (CMP) systems begin to play a role on these commercial service platforms as major allocable resources. However, shared resources of CMP architectures would lead to severe co-run performance degradation on concurrent user applications. This problem, if left untouched, would lower the resource utility even users have less demands on the quality of services (QoS). Shared resources are attracting more and more concerns. Proper software scheduling policies keep being effective to the improvement of co-run performance. The paper summarizes the development of key techniques on CMP, variations of shared resources, which are followed with a detailed presentation and analysis for the representative schedulers. Limitations of the state-of-the-art scheduling policies, new challenges are then discussed and prospects for the research trends in the future are presented at the end of the paper.