I was actually working on implementing a simple little VM library in C as a fun exercise, and deciding how to handle interrupts was where I got caught up.
Most VMs don't have interrupts. As a less-complex alternative, you might consider implementing an I/O thread, something rarely done in hardware because an extra CPU is a lot more hardware than an interrupt mechanism.
One interesting exception is the Unix VM, whose interrupts are called "signals".
One interesting exception is the Unix VM, whose interrupts are called "signals".