Department of Computer Science and AI Final Year Project Proposal Title Lecturer Observer Subject Area(s) Summary Description User Controlled Operating System Scheduling Mr. Joseph Cordina TBA 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. Deliverables Prerequisites Resources References 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 papers