User mode thread scheduler in C/Linux using Pthreads
This project involves completing a partially implemented user-mode thread scheduler. The candidate will need to implement but a FIFO and Round Robin scheduling policy. It also involves using some Object-oriented like structures that are explained below. Support (test harness, makefile) code is provided but completing the work will mean implementing the core functionality in two files. The sched_impl.c and sched_impl.h
The code that you'll be given code in the MP defines the skeleton of a scheduler together with a parameterized dummy workload. The idea is when you run the MP, you specify a scheduling policy, scheduler queue size, some number of worker threads to create, and, optionally, the number of iterations for which the worker threads should run. The basic code that parses command line arguments and creates these worker threads is provided but you must implement the core synchronization and scheduling operations.
The FIFO policy would actually have basically the same behavior even with a
larger queue size; the waiting worker threads would simply be admitted to
the queue earlier.
The Round Robin scheduling policy alternates between executing the two
available threads, until they run out of work to do.
You will provide the necessary files, file layout, test procedure and everything else that you need
Skills: linux, test, unix, multithreading