Develop a scheduler with the aim to achieve equal allocation per user. For example if there are four processes each process should receive a fair amount of CPU time.
This Project/assignment involves you to design, implement, and evaluate a fair-share scheduler in Linux.
As part of this assignment you will decide the objectives of your scheduler and what you used to perform the scheduling.
Make all decisions that you think are appropriate and discuss that in your project
In Part 1, please read and understand the source code to the Linux schedulers and our schedulers, (Week 5, Assign 4) by running and revisiting the code and how it functions. Design on paper how you want your fair-share scheduler to work, and implement your design and test it several times to evaluate your implementation. List all your observations and arrive at a valid conclusion for your scheduler.
WHAT TO TURN IN FOR PART 1
As part of your project/assignment, you need to answer the following questions:
1. What does your current scheduler do? Please consider and address the following inquiry:
o What is your scheduling mechanism? Be explicit and detailed. (Description and specification of your scheduler)
o Can other processes be starved in your scheduling? If so, give an example of how it might occur and how starvation can be avoided.
o Is there aging? That is, are the priorities of processes that have low recent CPU consumption raised to avoid effective starvation?
2. What are the objectives of your fair-share scheduler? Discuss how you want your "fair-share" to mean. Your answers to these inquiry are best answered by referring to your implementation of your scheduler (just as exactly what your scheduler does can be clear only by its implementation).
3. How to you plan to transform our schedulers’ in week 5 implementation to achieve your fair-share scheduling?
4. How will you evaluate your modified scheduler? Your evaluation should test whether each of the objectives you set for your scheduler are met, within the bounds of what is realistically possible given the time allotted for this assignment.
5. Use Gantt charts to illustrate the execution of the processes
• A short report to discuss how and what you might if done differently from your plans from Part 1
• A detail analysis of the experiments you actually ran to corroborate your implementation, their results, and an explanation of the results. (For example, if your scheduler did not behave as you had expected, some explanation for why.)
Computers have come a long way to stay. Studying operating systems allow us to explore architecture, organization and the software part of computers. In this project, we are going to develop our own hardware and software that will allow users to use the hardware. Device drivers are used to enable a hardware to work. Develop your own hardware and create your own device driver (kernel module).
The kernel module should use the name of your hardware and be licensed to you. Load the module and remove it.
Files to Submit
1. One Page description of your hardware and kernel
2. Source Files – including your Makefile
Software in C Programming
Develop a software (data entry) in C Programming that allows a user to enter at least 10 records.
As part of this assignment you will decide the objectives of your software and what it does. Create a documentation to enable users to be able to use the program.
Make all decision that you think are appropriate and discuss that in your project. This Project/assignment involves you to design, and implement your own program in C
1. One Page description of your Hardware and Software
2. Source Files