C-Level User Thread Library Creation -- 2

Job ID: 39074530

Budget: $30 – $250 USD

Project: User-Level Thread Library in C
Objective:
Develop a user-level thread library in C with a many-to-one threading model, implementing both round-robin and lottery scheduling.

Scope of Work:

Thread Management

Implement user-level threads without using pthreads.
Design a Thread Control Block (TCB) structure.
Provide functions for thread creation, termination, and context switching.
Preemptive Scheduling

Implement a round-robin scheduler using timers for preemption.
Implement a lottery scheduler where CPU time is allocated based on assigned tickets.
Testing & Validation

Write test cases to demonstrate proper preemptive scheduling.
Reconstruct one of Waldspurger’s experiments to compare the performance of round-robin vs. lottery scheduling.
Generate a graph showcasing performance differences.
Project Deliverables:

uthreads.h and uthreads.c with full implementation.
A Makefile to compile the project on os.cs.siue.edu.
design.txt documenting implementation details and test results.
Full transcript if ChatGPT or AI-generated content is used.
Requirements:

Proficient in C programming and POSIX signals/timers.
Experience with context switching (getcontext, setcontext, swapcontext).
Strong understanding of thread scheduling algorithms.
Bonus (Optional):

Implement a custom experiment demonstrating an additional property of the lottery scheduler.