Communications of the ACM
Threads and input/output in the synthesis kernal
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
i486 microprocessor programmer's reference manual
i486 microprocessor programmer's reference manual
A methodology for implementing highly concurrent data structures
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
The interaction of architecture and operating system design
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
Using continuations to implement thread management and communication in operating systems
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
Alpha architecture reference manual
Alpha architecture reference manual
Inside Windows NT
Fast mutual exclusion for uniprocessors
ASPLOS V Proceedings of the fifth international conference on Architectural support for programming languages and operating systems
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
The impact of operating system structure on memory system performance
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
MC88100 Microprocessors User's Manual
MC88100 Microprocessors User's Manual
Computer Structures: Principles and Examples
Computer Structures: Principles and Examples
Computer Programming and Architecture: The VAX-11
Computer Programming and Architecture: The VAX-11
vIC: interrupt coalescing for virtual machine storage device IO
USENIXATC'11 Proceedings of the 2011 USENIX conference on USENIX annual technical conference
Hi-index | 0.00 |
In this paper we describe a new, low-overhead technique for manipulating processor interrupt state in an operating system kernel. Both uniprocessor and multiprocessor operating systems protect against uniprocessor deadlock and data corruption by selectively enabling and disabling interrupts during critical sections. This happens frequently during latency-critical activities such as IPC, scheduling, and memory management. Unfortunately, the cycle cost of modifying the interrupt mask has increased by an order of magnitude in recent processor architectures. In this paper we describe optimistic interrupt protection, a technique which substantially reduces the cost of interrupt masking by optimizing mask manipulation for the common case of no interrupts. We present results for the Mach 3.0 microkernel_operating_system,_although_the technique is applicable to other kernel architectures, both micro and monolithic, that rely on interrupts to manage devices.