User Controlled Operating System Scheduling

Department of Computer Science and AI
Final Year Project Proposal
Subject Area(s)
User Controlled Operating System Scheduling
Mr. Joseph Cordina
Operating Systems, Linux Programming, Systems Programming
The aim of this project is to develop a communication mechanism
between a user process and the Linux kernel to share useful
scheduling information.
In traditional operating systems, the kernel can execute several
user processes by context switching frequently between them,
giving the impression of concurrency. While this is adequate for
most application, sometimes a process will want to remain
executing at all costs. Such applications include strict deadlines in
QoS systems and mission critical systems. One solution is the use
of priorities assigned to user process, yet this often leads to
starvation of lower priority processes and the same problems when
one has more than one application running at the same priority.
In this project, you will investigate another alternative whereby a
communication mechanism, such as a shared area of memory, will
exist which is accessible to both the user process and the kernel.
Whenever the kernel is about to de-schedule a process, it will
relay some information to the user process, which can opt to delay
its de-scheduling point. While this will entail explicit polling from
the user process, it can guarantee CPU resources to the user
process as needed.
You will require to patch the Linux kernel to allow this sort of
communication. Also the appropriate interface should be
developed to allow low-overhead polling by the user process.
A kernel patch that will allow communication of scheduling
information between a user process and the kernel. In addition a
user-process interface to the communication mechanism.
C, Operating Systems and systems programming knowledge,
concurrent programming
Linux machine
Linux kernel textbooks, operating systems textbooks, various