A C implementation of interrupt handlers, semaphores, and a round robin scheduler