ACM SIGOPS Operating Systems Review
Lazy receiver processing (LRP): a network subsystem architecture for server systems
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Eliminating receive livelock in an interrupt-driven kernel
ACM Transactions on Computer Systems (TOCS)
Application performance in the QLinux multimedia operating system
MULTIMEDIA '00 Proceedings of the eighth ACM international conference on Multimedia
Soft timers: efficient microsecond software timer support for network processing
ACM Transactions on Computer Systems (TOCS)
HIP: hybrid interrupt-polling for the network interface
ACM SIGOPS Operating Systems Review
Integrating polling, interrupts, and thread management
FRONTIERS '96 Proceedings of the 6th Symposium on the Frontiers of Massively Parallel Computation
A Measurement-Based Analysis of the Real-Time Performance of Linux
RTAS '02 Proceedings of the Eighth IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'02)
Low-Complexity Algorithms for Static Cache Locking in Multitasking Hard Real-Time Systems
RTSS '02 Proceedings of the 23rd IEEE Real-Time Systems Symposium
RTAS '05 Proceedings of the 11th IEEE Real Time on Embedded Technology and Applications Symposium
Supporting time-sensitive applications on a commodity OS
OSDI '02 Proceedings of the 5th symposium on Operating systems design and implementationCopyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading
A programmable microkernel for real-time systems
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
Understanding The Linux Kernel
Understanding The Linux Kernel
Interrupt Triggered Software Prefetching for Embedded CPU Instruction Cache
RTAS '06 Proceedings of the 12th IEEE Real-Time and Embedded Technology and Applications Symposium
Process-Aware Interrupt Scheduling and Accounting
RTSS '06 Proceedings of the 27th IEEE International Real-Time Systems Symposium
Prediction-Based Micro-Scheduler: Toward Responsive Scheduling of General-Purpose Operating Systems
IEEE Transactions on Computers
The design and implementation of an operating system to support distributed multimedia applications
IEEE Journal on Selected Areas in Communications
Preemptibility-aware responsive multi-core scheduling
Proceedings of the 2011 ACM Symposium on Applied Computing
nuKernel: MicroKernel for multi-core DSP SoCs with load sharing and priority interrupts
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Hi-index | 0.01 |
In this article, we propose two techniques that aim to minimize the scheduling latency of high-priority interrupt-driven tasks, named the Interrupt Handler Migration (IHM) and Direct Interrupt Scheduling (DIS). The IHM allows the interrupt handler to be migrated from the interrupt handler thread to the corresponding target process so that additional context switch can be avoided and the cache hit ratio with respect to the data generated by the interrupt handler can be improved. In addition, the DIS allows the shortest path reserved for urgent interrupt-process pairs to be laid between the interrupt arrival and target process by dividing a series of interrupt-driven operations into nondeferrable and deferrable operations. Both the IHM and DIS can be combined in a natural way and can operate concurrently. These techniques can be applied to all kinds of interrupt handlers with no modification to them. The proposed techniques not only reduce the scheduling latency, but also resolve the interrupt-driven priority inversion problem. We implemented a prototype in the Linux 2.6.19 kernel after adding real-time patches. Experimental results show that the scheduling latency is significantly reduced by up to 84.2% when both techniques are applied together. When the Linux OS runs on an ARM-based embedded CPU running at 200MHz, the scheduling latency can become as low as 30μs, which is much closer to the hardware-specific limitations. By lowering the scheduling latency, the limited CPU cycles can be consumed more for user-level processes and less for system-level tasks, such as interrupt handling and scheduling.