cs 423 operating system design mp2 walkthrough
play

CS 423 Operating System Design: MP2 Walkthrough Professor Adam - PowerPoint PPT Presentation

CS 423 Operating System Design: MP2 Walkthrough Professor Adam Bates Spring 2018 CS 423: Operating Systems Design 1 MP2: Rate-Monotonic Scheduling MP2 will be out at the end of the week We are currently grading MP1 Reminder


  1. CS 423 � Operating System Design: MP2 Walkthrough Professor Adam Bates Spring 2018 CS 423: Operating Systems Design 1 �

  2. MP2: Rate-Monotonic Scheduling • MP2 will be out at the end of the week • We are currently grading MP1 • Reminder • Plea lease se do o not ot tou ouch ch you your r VMs s until il MP2 2 is is ou out CS 423: Operating Systems Design 2 �

  3. A Note About Piazza • “My code is not running, why?” is not very helpful • Be more specific when dealing with failures so we can help • Use private posts if you are not comfortable sharing details of your implementation • Or office hours • Be careful not to remove /var/log/sssd as this is will brick authentication CS 423: Operating Systems Design 3 �

  4. Purpose of MP2 • Underst erstand real time scheduling concepts • Desig esign a real time schedule module in the Linux kernel • Lea earn rn how to use the kernel scheduling API, timer, procfs • Test est your scheduler by implementation a user level application CS 423: Operating Systems Design 4 �

  5. Reuse of MP1 • MP1 was focused on getting you familiar with kernel programming • Cod ode/ e/Makefile efile from rom MP1 1 ca can be e reu reused sed for or MP2 • MP2 is aimed at developing usef seful kernel code • Develop a sch sched eduler ler as a kernel module • Implement a task admission mission con control rol policy olicy • Use procf rocfs to communicate with user programs CS 423: Operating Systems Design 5 �

  6. Introduction • Real-time systems have requirements in terms of response time and predictability • Think video surveillance systems • We will be dealing with periodic tasks • Constant period • Constant running time • We will assume tasks are independent CS 423: Operating Systems Design 6 �

  7. Periodic Tasks Model • Liu and Layland [1973] model, each task 𝑗 has • Period ​𝑄↓𝑗 • Deadline ​𝐸↓𝑗 • Runtime ​𝐷↓𝑗 CS 423: Operating Systems Design 7 �

  8. Rate Monotonic Scheduler (RMS) • A static scheduler has comp complet lete e in informa ormation ion about all the incoming tasks • Arrival time, deadline, runtime, etc. • RMS assigns hig igher er priorit riority y for tasks with higher rate/sh short orter er period eriod • It always picks the task with the highest priority • It is preemp reemptiv ive CS 423: Operating Systems Design 8 �

  9. Optimality of RMS • RMS is optimal for hard-real time systems • If RMS cannot schedule it, then no other algorithm can! • If any other scheduler algorithm can scheduler a set of tasks, then RMS can do it too! CS 423: Operating Systems Design 9 �

  10. MP2 Overview • We will implement RMS with an admission control policy as a kernel module • The scheduler provides the following interface • Reg egist istra ration ion: save process info like pid, P, D, etc. • Yield Yield: process notifies RMS that is has completed its period • De-R e-Reg egist istra ration ion: process notifies RMS that it has completed all its tasks • We will use procf rocfs to communicate between the modules and the processes CS 423: Operating Systems Design 10 �

  11. Admission Control • We only register a process if it passes admission control • The module will answer this question every time • Can an the he ne new se set of f pro processe sses s st still be a a sc sche hedul uled on n a a si sing ngle pro processo ssor r ? C i • Yes iff X ≤ 0 . 693 P i i ∈ T • Assume always that C i < P i CS 423: Operating Systems Design 11 �

  12. Admission Control • We only register a process if it passes admission control • The module will answer this question every time Recall that floating point operations are very • Can an the he ne new se set of f pro processe sses s st still be a a sc sche hedul uled on n a a si sing ngle expensive in the kernel. You should NOT use pro processo ssor r ? them. � C i • Yes iff X ≤ 0 . 693 Instead use Fixed-Point arithmetic Fixed-Point arithmetic � P i i ∈ T • Assume always that C i < P i CS 423: Operating Systems Design 12 �

  13. MP2 Building Blocks CS 423: Operating Systems Design 13 �

  14. MP2 User Process Behavior CS 423: Operating Systems Design 14 �

  15. MP2 User Process Behavior CS 423: Operating Systems Design 15 �

  16. MP2 User Process Behavior CS 423: Operating Systems Design 16 �

  17. MP2 User Process Behavior CS 423: Operating Systems Design 17 �

  18. MP2 User Process Behavior CS 423: Operating Systems Design 18 �

  19. MP2 Dispatching Thread CS 423: Operating Systems Design 19 �

  20. MP2 User Process Behavior CS 423: Operating Systems Design 20 �

  21. MP2 User Process Behavior CS 423: Operating Systems Design 21 �

  22. MP2 User Process Behavior CS 423: Operating Systems Design 22 �

  23. MP2 Process State • A process in MP2 can be in one of three states 1. 1. READ ADY: : a new job is ready to be scheduled 2. RUNNING 2. NNING: a job is currently running and using the CPU 3. 3. SLEEPING ING: job has finished execution and process is waiting for the next period • A job is not allowed to run before its appropriate period CS 423: Operating Systems Design 23 �

  24. MP2 Process Control Block • PCB is defined by task_struct • PCB is manager by a circular doubly linked list • Maintain pointer to cu curren rrent ru runnin ing st state task_truct task_truct task_truct state state state pid pid pid ... ... ... list_head list_head list_head next next next prev prev prev ... ... ... CS 423: Operating Systems Design 24 �

  25. MP2 Extending the PCB • Extend PCB to hold MP2-specific information, example, CS 423: Operating Systems Design 25 �

  26. MP2 Scheduling Logic • We will use a kern ernel el threa read to handle the scheduling logic • It will handle context switches as needed • There are two cases in which a context switch is needed 1. Received a YIE YIELD message from an application 2. The wa wakeu eup timer imer of a process has expired, i.e., its new period has started CS 423: Operating Systems Design 26 �

  27. MP2 Scheduling Logic Yield handler scheduler Timer interrupt • Update timer; • Select highest • State = ready priority task • State = sleep; (smallest period) • Wake up scheduler • Wake up • State = running scheduler; • Wake up process • Sleep; • sleep CS 423: Operating Systems Design 27 �

  28. MP2 Context Switching • We will use the kernel scheduling API • schedule(): trigger the kernel scheduler • wake_up_process (struct task_struct *) • sched_setscheduler(): set scheduling parameters • FIFO for real time scheduling, NORMAL for regular processes, etc. • set_current_state() • set_task_state() CS 423: Operating Systems Design 28 �

  29. MP2 Scheduler API Example • To sleep and trigger a context switch set_current_state(TASK_INTERRUPTIBLE); schedule(); • To wake up a process struct task_struct * sleeping_task; ... wake_up_process(sleeping_task); CS 423: Operating Systems Design 29 �

  30. MP2 A Note About Kthreads • You will need to exp explicit licitly ly put the e kern ernel el threa read to o sleep when you’re done with your work sleep • Otherwise it will keep running forever • You also need to exp explicit licitly ly ch check eck for or sig signals ls • Check if should stop working • kthread_should_stop() CS 423: Operating Systems Design 30 �

  31. MP2 Timer and Scheduler Bottom Top Half � Half � CS 423: Operating Systems Design 31 �

  32. MP2 Final Notes • Develop things incrementally, follow the mp2 description • Test things one at a time • Use fixed point arithmetic • Use global variables for persistent state • Remember to cleanup everything • Failure to do so may not allow you to insert your module again CS 423: Operating Systems Design 32 �

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend