Mixed-criticality system is a popular model for reducing pessimism in real-time scheduling while providing guarantee for critical tasks in presence of unexpected overrun. However, it is controversial due to some drawbacks. First, a single high-criticality job overrun leads to the pessimistic mode for all high-criticality tasks and consequently resource utilization becomes inefficient. Second, all low-criticality tasks are dropped in high-criticality mode, although they are still needed. These two issues have been addressed in several recent works, which are mostly focused on uniprocessor scheduling. In this work, we attempt to tackle these two issues in multiprocessor scheduling for dual-criticality systems. A deferred switching protocol is introduced so that the chance of switching to high-criticality mode is significantly reduced. Moreover, a service preserving technique is developed such that all low-criticality tasks can continue to execute in high-criticality mode. Further, the two techniques are unified into a single framework. Schedulability of these methods is studied so that the Quality-of-Service is improved with guarantee of satisfying all deadline constraints. The effectiveness of the proposed techniques is confirmed through simulations.