CS475 -- Operating System Design Spring 1992 Step 1 This step of the project requires that the group design a scheduler, semaphore function(s), and a buffer manager. These parts will be designed using the Lightweight Process Library (LWP) available on plains and the sod cluster. Scheduler: The scheduler should use the round robin scheduling algorithm. An example scheduler is shown on one side of the white handout. Semaphores: The LWP provides a monitor function which can be used to control critical sections. You may write your own if you do not think that the LWP functions are adequate. You will use the semaphores/monitors to control critical sections in the remainder of this project. Buffer Manager: Dynamic memory storage for all the threads will come from a fixed size array of bytes. The buffer manager will control the allocation and deallocation of memory from the array. The buffer manager should maintain a free list of deallocated space and should collect adjacent blocks of memory into a single block. Lightweight Process Library: To get information on the LWP enter the command, man 31 intro during a UNIX session. This will retrieve the introduction material for the LWP Library. Testing: Develop test cases for each section of the code. The test case~s) for the buffer manager should contain a producer/consumer case. You will be graded on the completeness of your test cases.