Abstract-Multi-core processor technologies have become pervasive and mainstream. Several types of multi-core CPUs, including symmetric and asymmetric models, are emerging. A multi-core processor architecture may be defined as: on-chip clusters of heterogeneous functionality modules (processors), cooperating in the implementation of multiple concurrent applications. On these platforms, developing applications that truly take advantage of the power of multi-core capabilities is still a complex, error-prone, and challenging endeavor. Application code must be tuned to optimally fit the available resources. Operating System procedures must cover issues at lower abstraction layers, close to firmware, in order to enable features like optimal task/thread level scheduling depending upon the application requirements on the appropriate processor as per its characteristic. For Efficient scheduling of task or thread on multi core system the operating system scheduler must be aware about the underlying heterogeneity present in the system, also it must be aware about the characteristics of application (at static and at run time). Because as per the characteristic of the executing application the scheduler can take decision to schedule the task on available core so that optimal performance and good throughput can be achieved.