Its a new scheduling policy to support fair-share scheduling. We call this policy GWRR, for group weighted round-robin scheduling. GWRR should use fair-share scheduling based on each process's UNIX group identification. Let's start by assuming we will use a Round-Robin scheme to decide which group to choose. We keep a queue of groups, and whichever group was chosen last time we scheduled, we choose the next group in the queue for this schedule. We then choose a task within this group's set of tasks (more on this later), and let it run for a fixed amount of time. Use a simple round-robin (RR) scheduling algorithm to choose a task within a group. Add two system calls: int getgroupweight(int gid); int setgroupweight(int gid, int weight); getgroupweight() should return the weight of the specified group. The default group weight should be 10. setgroupweight() should give the specified group the specified weight. Your scheduler should operate alongside the existing Linux scheduler. Therefore, you should add a new scheduling policy, SCHED_GWRR. Only tasks whose policy is set to SCHED_GWRR (normally done via the system call sched_setscheduler()) should be considered for selection by your new scheduler. Your scheduler and the existing scheduler should interoperate as follows: If there are any running tasks whose policy is SCHED_RR or SCHED_FIFO (these are real-time tasks), one of them should be chosen before any other, according to the existing Linux scheduler rules. If there are any running tasks whose policy is SCHED_OTHER (the default scheduler), one of them should be chosen before any SCHED_GWRR (your scheduler) tasks, according to the default scheduler's rules. In other words, there should be a strict priority relationship where SCHED_RR and SCHED_FIFO are first, SCHED_OTHER is second, and SCHED_GWRR is last.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows? (depending on the nature? of the deliverables):
a)? For web sites or? other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software? installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
Linux Kernel 2.6.3 and above