|
43 | 43 |
|
44 | 44 | \begin{slide}{Scheduling criteria}
|
45 | 45 | \itms{
|
46 |
| - \item Why do we care? |
47 |
| - \ittms{ |
48 |
| - \item What goals should we have for a scheduling algorithm? |
49 |
| - } |
| 46 | + \item What goals should we have for a scheduling algorithm? |
50 | 47 | \pause
|
51 | 48 | \item \emph{Throughput} -- \# of procs that complete per unit time
|
52 | 49 | \ittms{
|
|
243 | 240 | }
|
244 | 241 | \item Can lead to unfairness or starvation
|
245 | 242 | \item In practice, can't actually predict the future
|
246 |
| - \item But can estimate CPU burst length based on past |
247 |
| - \ittms{ |
248 |
| - \item Exponentially weighted average a good idea |
249 |
| - \item $t_n$ actual length of proc's $n^\mathrm{th}$ CPU burst |
250 |
| - \item $\tau_{n+1}$ estimated length of proc's $n+1^\mathrm{st}$ |
251 |
| - \item Choose parameter $\alpha$ where $0<\alpha\le1$ |
252 |
| - \item Let $\tau_{n+1}=\alpha t_n+(1-\alpha)\tau_n$ |
253 |
| - } |
| 243 | +% \item But can estimate CPU burst length based on past |
| 244 | +% \ittms{ |
| 245 | +% \item Exponentially weighted average a good idea |
| 246 | +% \item $t_n$ actual length of proc's $n^\mathrm{th}$ CPU burst |
| 247 | +% \item $\tau_{n+1}$ estimated length of proc's $n+1^\mathrm{st}$ |
| 248 | +% \item Choose parameter $\alpha$ where $0<\alpha\le1$ |
| 249 | +% \item Let $\tau_{n+1}=\alpha t_n+(1-\alpha)\tau_n$ |
| 250 | +% } |
254 | 251 | }
|
255 | 252 | \end{slide}
|
256 | 253 |
|
257 |
| -\begin{slide}{Exp. weighted average example} |
258 |
| -\centerline{\includegraphics[width=4in]{figs/predict}} |
259 |
| -\end{slide} |
| 254 | +%\begin{slide}{Exp. weighted average example} |
| 255 | +%\centerline{\includegraphics[width=4in]{figs/predict}} |
| 256 | +%\end{slide} |
260 | 257 |
|
261 | 258 | \begin{slide}{Round robin (RR) scheduling}
|
262 | 259 | \centerline{\includegraphics[width=3.3in]{figs/rr}}
|
|
367 | 364 | }}
|
368 | 365 | \end{slide}
|
369 | 366 |
|
| 367 | +\section{Multilevel feedback queues (BSD 4.4)} |
370 | 368 |
|
371 |
| -\begin{slide}{Multilevel feeedback queues (BSD)} |
| 369 | +\begin{slide}{Multilevel feedback queues (BSD)} |
372 | 370 | \centerline{\includegraphics[height=1.5in]{figs/bsd}}
|
373 | 371 | \itms{
|
374 | 372 | \item Every runnable process on one of 32 run queues
|
|
564 | 562 | % }
|
565 | 563 | % \end{slide}
|
566 | 564 |
|
| 565 | +\iffalse |
567 | 566 | \begin{slide}{Thread dependencies}
|
568 | 567 | \itms{
|
569 | 568 | \item Say $H$ at high priority, $L$ at low priority
|
|
608 | 607 | }
|
609 | 608 | }
|
610 | 609 | \end{slide}
|
| 610 | +\fi |
611 | 611 |
|
| 612 | +\section{Borrowed Virtual Time Scheduler} |
612 | 613 |
|
613 | 614 | \begin{slide}{Borrowed Virtual Time Scheduler \cref{readings/bvt.pdf}{[Duda]}}
|
614 | 615 | \itms{
|
|
788 | 789 | % }
|
789 | 790 | % \end{slide}
|
790 | 791 |
|
791 |
| -\begin{slide}{Lottery Scheduler \cref{readings/lottery.pdf}{[Waldspurger]}} |
792 |
| -\itms{ |
793 |
| -\item Reading assignment a great paper and simple algorithm |
794 |
| -\gap |
795 |
| -\item Randomly select a process to run! |
796 |
| -\gap |
797 |
| -\item Process priorities are determined by a number of tickets (or shares) |
798 |
| -} |
799 |
| -\end{slide} |
800 |
| - |
801 | 792 | \end{document}
|
0 commit comments