[Speicher] Ergänze LFU-Strategie
This commit is contained in:
parent
ff3b81431d
commit
38fba031e3
2 changed files with 37 additions and 2 deletions
|
@ -559,7 +559,7 @@ Verwaltung der \acsp{CL} als einfach verwaltete Liste, \dash Zeiger auf den Nach
|
|||
Ständig genutzte Datenstücke werden genauso schnell verdrängt wie Daten, die nur ein einziges Mal gebraucht werden. Anders gesagt: Daten, die lange nicht benötigt wurden, werden auch nicht schneller verdrängt, als Daten, die genauso lange im Cache sind, aber erst kürzlich gebraucht wurden.
|
||||
|
||||
\subsubsection{Least-Recently-Used (LRU)}
|
||||
Bei der \acf{LRU}-Strategie wird die \acl{HSS}, auf welche am längsten nicht zugegriffen wurde, verdrängt.
|
||||
Bei der \acf{LRU} Strategie wird die \acl{HSS}, auf welche am längsten nicht zugegriffen wurde, verdrängt.
|
||||
|
||||
\textit{Aufwand}: \newline
|
||||
Timestamp mit Update bei jedem Zugriff $\Rightarrow$ Die Suche bei Verdrängung ist zu aufwändig
|
||||
|
@ -568,4 +568,38 @@ Timestamp mit Update bei jedem Zugriff $\Rightarrow$ Die Suche bei Verdrängung
|
|||
Verwaltung als \textit{doppelt} verkettete Liste, \dash Zeiger auf Vorgänger \textit{und} Nachfolger in jeder \acs{CL}. Globalen Zeiger auf ersten und letzten Eintrag.
|
||||
|
||||
\textit{Schlecht unterstützte Zugriffsmuster}: \newline
|
||||
Häufigkeit der Zugriffe wird nicht berücksichtigt, \dash vielfach genutzte \aclp{HSS} werden genauso verdrängt wie \acs{HSS} mit nur einem Zugriff)
|
||||
Häufigkeit der Zugriffe wird nicht berücksichtigt, \dash vielfach genutzte \aclp{HSS} werden genauso verdrängt wie \acs{HSS} mit nur einem Zugriff)
|
||||
|
||||
\subsubsection{Least-Frequently-Used (LFU)}
|
||||
Bei der \acf{LFU} Strategie wird die \acl{HSS} verdrängt, welche bisher am seltensten (\enquote{am wenigsten häufig}) verwendet wurde.
|
||||
|
||||
\columnratio{0.35}
|
||||
\begin{paracol}{2}
|
||||
\textit{Aufwand (für Statusinfo):}
|
||||
\begin{itemize}[noitemsep]
|
||||
\item Benutzungszähler
|
||||
\item Einlagerungszeit
|
||||
\end{itemize}
|
||||
\switchcolumn
|
||||
\medskip
|
||||
Häufigkeit=$\frac{\text{Zugriffe}}{\text{Zeit}}$
|
||||
|
||||
$\Rightarrow$ Bei Verdrängung aufwändige Berechnung und Suche
|
||||
\end{paracol}
|
||||
|
||||
\newpage % Nur für's Layout
|
||||
|
||||
\textit{Problem (Zugriffsmuster)}: \newline
|
||||
Neu eingelagerte Seiten werden schnell wieder verdrängt, wenn sich der Zugriffszähler am Anfang nicht schnell genug erhöht und andere etablierte Seiten eine höhere Häufigkeit aufgrund vieler \enquote{alter} Zugriffe aufweisen.
|
||||
|
||||
\textit{Lösungsansatz}: \newline
|
||||
Zugriffe müssen \enquote{altern}, \dash alte Zugriffe werden weniger stark gewichtet als neue Zugriffe.
|
||||
|
||||
\textit{Mögliche Implementierung}: \newline
|
||||
Mehrere Zugriffszähler in jeder \acs{CL} für die letzten $i$ Zeitscheiben.
|
||||
Dividieren ist damit überflüssig (alle Zeitscheiben sind gleich lang): Addition der mit $2^j$ gewichteten Zähler als \enquote{Häufigkeit} ($j=i-1$ für jüngste Zeitscheiben, $j=0$ für älteste Zeitscheibe).
|
||||
|
||||
\textit{Weiterhin}: \newline
|
||||
Bei der Verdrängung gibt ein Problem bei der Suche nach der niedrigsten \enquote{Häufigkeit}. \newline
|
||||
$\Rightarrow$ evtl. Lösung über eine bei Beginn jedes Zeitslots neu aufzubauende verkettete Liste. \newline
|
||||
\phantom{$\Rightarrow$ }Hier gibt es viel Platz für Optimierungen der \acs{CPU}-Hersteller.
|
||||
|
|
|
@ -63,6 +63,7 @@
|
|||
\acro{HSS}{Hauptspeicherseite}
|
||||
\acrodefplural{HSS}[HSS]{Hauptspeicherseiten}
|
||||
\acro{HW}{Hardware}
|
||||
\acro{LFU}{Least-Frequently-Used}
|
||||
\acro{LRU}{Least-Recently-Used}
|
||||
\acro{LW}{Laufwerk}
|
||||
\acro{PC}{Personal Computer}
|
||||
|
|
Loading…
Reference in a new issue