\documentclass[pdf,colorBG,slideColor]{prosper}
\hypersetup{pdfpagemode=FullScreen}

\title{ Aggressive Writeback in the Linux Kernel }
\subtitle{DIMACS REU Project}
\author{Robert Renaud}

\begin{document}
\maketitle

\overlays{6}{
  \begin{slide}{ About Linux }
    \begin{itemstep}
      \item Open Source Operating System
      \item 100s or more contributors
      \item 7 contributors with rutgers.edu emails
      \item hope to make it 8
      \item cute mascot 
      \item \includegraphics[height=40mm]{tux.ps}
    \end{itemstep}

  \end{slide}
}

\overlays{8}{
\begin{slide}{ Two Level Memory }
  \begin{itemstep}
    \item RAM
      \begin{itemstep}
        \item low latency - nanoseconds
        \item small capacity
          \item high bandwidth - GB/s
      \end{itemstep}
    \item Disk
      \begin{itemstep}
        \item enormous latency - milliseconds
        \item large capacity
        \item medium bandwidth - 10s of MB/s
      \end{itemstep}
  \end{itemstep}
  
\end{slide}}

\overlays{3}{
  \begin{slide}{ Latency/Bandwidth Ratio }
    \begin{itemstep}
    \item use blocks
    \item amortized latency = latency / block accesses
    \item exploits locality of reference
    \end{itemstep}
  \end{slide}
}


\overlays{3}{
  \begin{slide}{ Memory Abstraction }
    \begin{itemstep}
    \item Virtual Memory
    \item Hide real location of data
    \item Evict pages when needed
    \end{itemstep}
  \end{slide}
}


\overlays{3}{\begin{slide}{ Eviction }
  \begin{itemstep}
    \item Clean vs Dirty
    \item Dirty write back costly
    \item Eviction Policy
      \begin{itemize}
        \item Least Recently Used
        \item Least Frequently Used
      \end{itemize}
    
  \end{itemstep}
  \end{slide}
}

\overlays{5}{\begin{slide}{ LRU in Linux }
    \begin{itemstep}
      \item active list
      \item inactive list
      \item on reference, move up
      \item periodically, refill inactive
      \item only approximation to LRU
    \end{itemstep}
  \end{slide}
}

\overlays{2}{
  \begin{slide}{ LRU insufficient }
    \begin{itemstep}
    \item Databases do own memory management
    \item Clashes with OS
    \end{itemstep}
  \end{slide}
}

\overlays{5}{
  \begin{slide}{ Properties of Disk }
    \begin{itemstep}
    \item mechanical movement
      \begin{itemize}
        \item disk seeks slow
        \item small writes costly
      \end{itemize}
      \item the big secret
      \begin{itemize}
      \item page write cost $=$ track write cost
      \end{itemize}
    \item about 30 pages per track
    \item try to cluster page writes
    \item benchmark
      \begin{itemize}
        \item Sequential page writes - 8 MB/s
        \item Random page writes - .35 MB/s
      \end{itemize}
    \end{itemstep}
  \end{slide}
}

\overlays{4}{
  \begin{slide}{ Aggressive Write back }
    \begin{itemstep}
      \item LRU decides to evict a page
      \item Aggressively write back nearby pages
      \item Relatively easy to bolt on
      \item Theoretically wrong
    \end{itemstep}
  \end{slide}
}

\overlays{3}{
  \begin{slide}{ Better Idea }
    \begin{itemstep}
      \item dirtiness should be bigger factor
      \item prefer dirtier tracks
      \item out of scope of project
    \end{itemstep}
    \end{slide}
    }

\overlays{3} {
  \begin{slide}{ Progress }
    \begin{itemstep}
      \item some source code level understanding
      \item printing out data structures in kernel
      \item no behavioral modification yet
    \end{itemstep}
  \end{slide}
}
    

\overlays{3}{
  \begin{slide}{ Acknowledgements }
    \begin{itemstep}
      \item DIMACS
      \item Martin Farach-Colton
      \item All the REU students
    \end{itemstep}
    \end{slide}
}
    
\end{document}
