Interrupt handling is generally separated from process scheduling. This could lead to scheduling anomalies, interrupt-driven priority inversion. Handling an interrupt of a semantically lower-priority can interfere with the execution of a higher-priority process. We present an interrupt handling scheme that identifies the corresponding process priority of an I/O interrupt and assigns such a priority to an interrupt handling thread dynamically such that the process scheduler schedules interrupt handling threads in a way that avoids the interrupt-driven priority inversion. We design a new interrupt handling scheme, process interrupt cooperative scheduling(PICS), in order to mitigate such priority inversion. We implement a prototype system of PICS as a patch to Linux and to the Preempt_RT patch. Our experiment results shows that the prototype system does not experience interrupt-driven priority inversion and thus provide better real-time support to higher-priority real-time processes. On the other hand, neither of the standard Linux and the Linux with the Preempt_RT patch avoids the priority inversion.