LINUX
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.
The Aim here is to design, implement, and evaluate a fair-share scheduler in Linux.
Obstacles:
Part 1
In Part 1, please read and understand the source code to the Linux schedulers and schedulers (I have the required files here), 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.
PART 1
Answer the following:
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’ 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
PART 2:
• 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.)
Kernel Module
In this, 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
3. Output
4. Documentation
Software in C Programming
Develop a software (data entry) in C Programming that allows a user to enter at least 10 records.
Decide the objectives of your software and what it does. Create a documentation to enable users to be able to use the program.
This involves you to design, and implement your own program in C
1. One Page description of your Hardware and Software
2. Source Files
3. Output
4. Documentation