Operating System course assignment: A printer spooler in C using pthreads and semaphores.