Many complex real-time applications involve combined scheduling of hard and soft real-time tasks. In this paper, we propose a combined scheduling algorithm, called Emergency Algorithm, for multiprocessor real-time systems. The primary goal of the algorithm is to maximize the schedulability of soft tasks without jeopardizing the schedulability of hard tasks. The algorithm has the inherent feature of dropping already scheduled soft tasks by employing a technique that switches back and forth between two modes of operation: regular mode, in which all tasks (hard and soft) are considered for scheduling without distinction; emergency mode, in which one or more already scheduled soft tasks can be dropped in order to accommodate a hard task in the schedule. The proposed algorithm has been evaluated by comparing it with the iterative server rate adjustment algorithm (ISRA) [6]. The simulation results show that emergency algorithm outperforms ISRA by offering better schedulability for soft tasks...