\section{Puffer}
Frame = Im HS vorgesehener Platz zur Aufnahme eines Blocks $\rightarrow$ normalerweise so groß wie Block

Bei Zugriff auf Blöcke im HS müssen diese ggf eingelagert werden.
\subsection{Ersetzungsstrategie}
\begin{itemize}
		\item wählt den zu verdrängenden Block aus
		\item Ziel: Minimierung von physischen Zugriffen
\end{itemize}

\subsubsection{FIFO}
Block der am längsten im Puffer ist wird ersetzt.\\ $\rightarrow$ ungünstig
da häufig benutzte Blöcke gerade im Puffer bleiben sollen

\subsubsection{LFU (least frequently used)}
Block auf den am seltensten zugegriffen wird ersetzt.
\begin{itemize}
		\item $-$ für sequentielles Lesen nicht brauchbar
		\item $-$ hat ein Block einmal wieder zugegriffen bleibt der lange erhalten
\end{itemize}

\subsubsection{LRU (least recently used)}
\begin{itemize}
		\item bewertetes Alter seit dem letzten Zugriff
		\item quasi verkettete Liste aller Blöcke im Puffer, wo bei Verdrängung letzter Block der Kette ersetzt wird
\end{itemize}
\begin{figure}[H]
		\begin{center}
				\includegraphics[scale=0.7]{pics/lru.png}
				\caption{LRU}
		\end{center}
\end{figure}
\subsubsection{Clock}
LRU Verhalten mit einfacher Implementierung.
\textbf{Prinzip}:
\begin{itemize}
		\item Benutzt(Dirty)-Bit eines Blocks im Puffer wird bei Zugriff auf
				1 gesetzt
		\item bei Verdrängung zyklischer Suche mit dem Auswahlzeiger:
				\begin{itemize}
						\item Falls Benutzt Bit = 1, wird es auf 0 gesetzt $\rightarrow$ Zeiger wandert zum nächsten Block
						\item Falls Benutzt Bit = 0, Block wird ersetzt
				\end{itemize}
\end{itemize}

\subsection{Dienste einer Pufferverwaltung}
Einkapselung der Pufferverwaltung: 
\begin{lstlisting}[language=C]
char * Buffer::fix (BlockFile File, int BlockNo, char Mode);
\end{lstlisting}
\begin{itemize}
		\item Block ist vor Verdrängung geschützt
		\item \textbf{Mode} gibt an welcher Block nur gelesen oder auch
				geändert werden soll
\end{itemize}
\begin{lstlisting}
void Buffer::unix (char * BufferAddresse)
\end{lstlisting}
\begin{itemize}
		\item gibt Block im Puffer zur Ersetzung frei
\end{itemize}
