QEMU/Linux Assignments, Scheduling Continued

QEMU/Linux Assignments, Scheduling Continued

Operating Systems 9/20/2018 Programming Assignment #2 About QEMU • DUE DATE: Monday, October 1 2018 • A processor emulator • Emulates code for target CPU on host CPU MINI-HOMEWORK DEADLINE: Tuesday Sep 25 • Download assignment files • Build the Linux kernel • Boot the QEMU image with the Linux kernel Guest System • Report output of the procedure Host System – uname -a 1 2 Why QEMU? Download the Code • Allow you to change the kernel • Get the files you need: – OS requires privilege to overwrite kernel file – Use git clone • Isolate kernel changes from the real machine – Approximate space requirements • Make programming and debugging easier – Kernel source and object code: 4 GB – Everything: About 4 GB of disk space 3 4 CSC 256/456 1 Operating Systems 9/20/2018 Get It Started! Start Up a New Kernel • Start QEMU and default Debian installation • Specify path to your kernel bzImage to – cd install runqemu.sh – sh runqemu.sh – sh runqemu.sh linux-3.18- • No password 77/arch/x86_64/boot/bzImage • Use poweroff command to shutdown • When QEMU boots, use uname -a to check if you booted the correct kernel image • Can kill qemu from different window if kernel panics • README.md file contains useful information 5 6 CPU Scheduling • Selects from among the processes/threads that are ready to execute, and allocates the CPU to it • CPU scheduling may take place at: 1. Hardware interrupt/software exception CPU Scheduling 2. System calls • Nonpreemptive: – Scheduling only when the current process terminates CS 256/456 or not able to run further Department of Computer Science • Preemptive: University of Rochester – Scheduling can occur at any opportunity possible 9/20/2018 CSC 2/456 7 9/20/2018 CSC 2/456 8 CSC 256/456 2 Operating Systems 9/20/2018 First-Come, First-Served (FCFS) Scheduling Criteria Scheduling • Minimize turnaround time – amount of time to execute a Process CPU Time particular process (includes I/O, CPU, memory time, waiting time in the ready queue) P1 24 P 3 • Maximize throughput – # of processes that complete their 2 execution per time unit P3 3 • Suppose that the processes arrive in the order: P1 , P2 , P3 • Maximize CPU utilization – the proportion of the CPU that The schedule is: is not idle • Minimize response time – amount of time it takes from when a request was submitted until the first response is P1 P2 P3 produced (interactivity) 0 24 27 30 • Waiting time: time spent in the ready queue • Turnaround time for P1 = 24; P2 = 27; P3 = 30 • Fairness: avoid starvation • Average turnaround time: (24 + 27 + 30)/3 = 27 9/20/2018 CSC 2/456 9 9/20/2018 CSC 2/456 10 Shortest-Job-First (SJF) FCFS Scheduling (Cont.) Scheduling Suppose that the processes arrive in the order • Associate with each process the length of its CPU time. P , P , P . Use these lengths to schedule the process with the 2 3 1 shortest CPU time • The schedule is: • Two variations: – Non-preemptive – once CPU given to the process it P2 P3 P1 cannot be taken away until it completes – preemptive – if a new process arrives with CPU time 0 3 6 30 less than remaining time of current executing process, • Turnaround time for P1 = 30; P2 = 3; P3 = 6 preempt • Average turnaround time: (30 + 3 + 6)/3 = 13 • Preemptive SJF is optimal – gives minimum average • Much better than previous case. turnaround time for a given set of processes • Short process delayed by long process: Convoy effect • Problem: – don’t know the process CPU time ahead of time 9/20/2018 CSC 2/456 11 9/20/2018 CSC 2/456 12 CSC 256/456 3 Operating Systems 9/20/2018 Example of Preemptive SJF Priority Scheduling • A priority number (integer) is associated with each process Process Arrival Time CPU Time • The CPU is allocated to the process with the highest priority P1 0.0 7 – preemptive P2 2.0 4 P3 4.0 1 – nonpreemptive P4 5.0 4 • SJF is a priority scheduling where priority is the predicted • SJF (preemptive) CPU time • Problem: Starvation – low priority processes may never P P P P P P 1 2 3 2 4 1 execute • Solution: Aging – as time progresses, increase the priority of 0 11 16 2 4 5 7 the process • Average turnaround time = (16 + 5 + 1 +6)/4 = 7 9/20/2018 CSC 2/456 13 9/20/2018 CSC 2/456 14 What Happened on the Mars Round Robin (RR) Pathfinder (1997)? • Each process gets a fixed unit of CPU time (time quantum), https://cs.unc.edu/~anderson/teach/comp790/papers/mars_pathfinder_long_version.html usually 10-100 milliseconds. After this time has elapsed, the process is preempted and added to the end of the ready Problem: Priority Inversion queue • If there are n processes in the ready queue and the time quantum is q, then each process gets 1/n of the CPU time in chunks of at most q time units at once. No process waits more than (n-1)q time units • Performance – q small fair, starvation-free, better interactivity – q large FIFO https://www.rapitasystems.com/blog/what-really-happened-to-the-software-on-the-mars-pathfinder-spacecraft – q must be large with respect to context switch cost, Solution: Priority Inheritance [L. Sha, R. Rajkumar, and J. P. Lehoczky. Priority otherwise overhead is too high Inheritance Protocols: An Approach to Real-Time Synchronization. In IEEE Transactions on Computers, vol. 39, pp. 1175-1185, Sep. 1990.] 9/20/2018 CSC 2/456 15 9/20/2018 CSC 2/456 16 CSC 256/456 4 Operating Systems 9/20/2018 Example of RR with Quantum = 20 Multilevel Scheduling • Ready tasks are partitioned into separate classes: Process CPU Time foreground (interactive) P1 53 background (batch) P 17 2 • Each class has its own scheduling algorithm, P 68 3 foreground – RR P4 24 background – FCFS • The schedule is: • Scheduling must be done between the classes. – Fixed priority scheduling; (i.e., serve all from P P P P P P P P P P 1 2 3 4 1 3 4 1 3 3 foreground then from background). Possibility of 0 20 37 57 77 97 117 121 134 154 162 starvation • Typically, higher average turnaround than SJF, but – Time slice – each class gets a certain amount of CPU better response time which it can schedule amongst its processes; e.g., • 80% to foreground in RR • 20% to background in FCFS 9/20/2018 CSC 2/456 17 9/20/2018 CSC 2/456 18 Example of Multilevel Feedback Multilevel Feedback Queue Queue • A process can move between the various queues; aging can • Three queues: be implemented this way – Q – RR with time quantum 8 milliseconds • Multilevel-feedback-queue scheduler defined by the 0 following parameters: – Q1 – RR time quantum 16 milliseconds – number of queues – Q2 – FCFS – scheduling algorithms for each queue • Scheduling – method used to determine when to upgrade a process – A new job enters queue Q0 which is served FCFS. When it gains CPU, job receives 8 milliseconds. If it does not finish in 8 – method used to determine when to demote a process milliseconds, job is moved to queue Q1. – method used to determine which queue a process will – At Q job is again served FCFS and receives 16 additional enter when that process needs service 1 milliseconds. If it still does not complete, it is preempted and moved to queue Q2. 9/20/2018 CSC 2/456 19 9/20/2018 CSC 2/456 20 CSC 256/456 5 Operating Systems 9/20/2018 Multilevel Feedback Queues Lottery Scheduling • Give processes lottery tickets for various system resources • Choose ticket at random and allow process holding the ticket to get the resource • Hold a lottery at periodic intervals • Properties – Chance of winning proportional to number of tickets held (highly responsive) – Cooperating processes may exchange tickets – Fair-share scheduling easily implemented by allocating tickets to users and dividing tickets among child processes 9/20/2018 CSC 2/456 21 9/20/2018 CSC 2/456 22 Real-Time Scheduling Cost of Context Switch • Hard real-time systems – required to complete a critical task within a guaranteed amount of time • Direct overhead of context switch • Soft real-time computing – requires that critical processes – saving old contexts, restoring new contexts, … … receive priority over less fortunate ones • EDF – Earliest Deadline First Scheduling • Indirect overhead of context switch – caching, memory management overhead 9/20/2018 CSC 2/456 23 9/20/2018 CSC 2/456 24 CSC 256/456 6 Operating Systems 9/20/2018 Solaris Dispatch Table Solaris Scheduling 9/20/2018 CSC 2/456 25 9/20/2018 CSC 2/456 26 Priorities and Time-slice length Linux Task Scheduling • Linux 2.5 and up uses a preemptive, priority-based algorithm with two separate priority ranges: – A time-sharing class/range for fair preemptive scheduling (nice value ranging from 100-140) – A real-time class that conforms to POSIX real-time standard (0- 99) • Numerically lower values indicate higher priority • Higher-priority tasks get longer time quanta (200-10 ms) • One runqueue per processor (logical or physical); load balancing phase to equally distribute tasks among runqueues • Runqueue indexed by priority and contains two priority arrays – active and expired • Choose task with highest priority on active array; switch active and expired arrays when active is empty • Time-sharing tasks are assigned the nice value +/- 5 9/20/2018 CSC 2/456 27 9/20/2018 CSC 2/456 28 CSC 256/456 7 Operating Systems 9/20/2018 List of Tasks Indexed According to Multiprocessor Context Switch Priorities • Disabling signals not sufficient • Acquire scheduler lock when accessing any scheduler data structure, e.g., yield: disable_signals acquire(scheduler_lock) // spin lock enqueue(ready_list, current) reschedule release(scheduler_lock) re-enable_signals 9/20/2018 CSC 2/456 29 9/20/2018 CSC 2/456 30 CPU Scheduling on Multi- Processors Multiprocessor

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    9 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us