Real-Time Scheduling Algorithms are a special class of algorithms of which it is required that they can guarantee a process will be done before its deadline.When tasks share resources, as they often do/must, strange things can and will happen. With the use of common synchronization primitives like the semaphores, monitors etc, can lead to a situation in which a higher priority job is blocked by a lower priority job, which is named as priority inversion.This was the problem that caused the Mars path_nder mission to experience total system resets, each resulting in losses of data. In this paper I investigate two protocols belonging to the class of priority inheritance protocols, called the basic priority inheritance protocol and the priority ceiling protocol. Here we discuss how these protocols solve the priority inversion problem. The priority ceiling protocol, which is an extension of the priority inheritance protocol also solves the deadlocks and chained blocking in priority inheritance protocol.