Du möchtest die Priorität von Treibern während des Syscalls auf die Priorität des aufrufenden Prozesses herabstufen. Die übliche Lösung ist es, die Priorität der Anwendungen während des Syscalls auf die Priorität des Treibers hochzustufen. Damit verhinderst du Prioritätsinversion.
Jemand, der ein Lock hat, muss temporär höher priorisiert sein, als jemand, der kein Lock hat. Und das kannst du auch mit Hardware nicht umkehren.
Die Antwort lautet nein, aber der CFS unter Linux kann Control Groups auch für I/O machen, soweit ich weiß. Allerdings ist das auf einem Desktop-System, naja, nur begrenzt wichtig. (Wenn du aber eine VServer-Umgebung aufbaust, ist das wieder unglaublich praktisch.)
Ich glaube, dein bester Schutz gegen ein DoS des IPC ist es, das IPC so schnell (und skalierend) zu bauen, dass die Flaschenhälse woanders auflaufen. Und der allerbeste Schutz gegen einen DoS ist natürlich, wenn das System die Last einfach schluckt und nicht umfällt.
Notfalls hast du halt eine DoS-Heuristik, die die Priorität von übermäßig IPC-produzierenden herabsetzt, auch auf Kosten von Locks. (Wird dann allerdings böse, wenn jemand einen I²C oder SPI mit Bitbanging implementieren möchte...)
Gruß