mirror of
https://gitlab.cs.fau.de/ik15ydit/latexandmore.git
synced 2024-11-25 04:59:32 +01:00
62 lines
2.7 KiB
TeX
62 lines
2.7 KiB
TeX
\section{Sätze}
|
|
\subsection{Allgemein}
|
|
Warum wurden Sätze eingeführt? \\
|
|
Sätze abstrahieren von Blöcken. Blöcke sind Hardware spezifisch.
|
|
Sie haben unterschiedliche Längen und die Aufgabe von Einheiten von
|
|
Platte und HS zu transportieren. Daher hat man eine anwendungspezifische
|
|
Einheit eingeführt, die Daten zusammenfasst.\\
|
|
\subsection{Satzadresse}
|
|
Eine Satzadresse ist ein Bezeichner unter der man einen einzelnen Satz wiederfinden kann. Sie wird als stabil bezeichnet, wenn sich beim
|
|
verschieben des Satzes die Adresse nicht ändert.
|
|
$\rightarrow$ Neue Schicht über Blöcke
|
|
\subsection{Wechselpuffertechnik}
|
|
Optimierungsmöglichkeit bei sequenziellen Dateien.
|
|
Man verwendet \textit{zwei} Blockpuffer.\\
|
|
Anwendung beim
|
|
\begin{itemize}
|
|
\item Lesen: während Sätze in Puffer 1 gelesen werden \textbf{gleichzeitig} nächsten Block von Platte in Puffer 2 lesen
|
|
\item Schreiben: wenn Puffer 1 voll, \textbf{asynchron} auf Platte schreiben und gleichzeitig Puffer 2 zur Aufnahme weiterer Sätze verwenden
|
|
\end{itemize}
|
|
\subsection{Satzzugriff über Schlüsselwerte}
|
|
\subsection{Normales Hashing}
|
|
Man möchte nun Sätze und deren Inhalt nicht nur über
|
|
die Satzadresse wiederfinden, sondern auch über \textbf{inhaltliche Kriterien}.
|
|
\textbf{Schlüssel} definieren ein oder mehrere Felder eines Satzes, über
|
|
das man den Satz wiederfinden kann.
|
|
|
|
Lösung dafür ist \textbf{Hashing} der Sätze nach Schlüssel.
|
|
|
|
Kollisionen verhindern:
|
|
\begin{itemize}
|
|
\item Open Addressing (ausweichen auf Nachbar Buckets)
|
|
\begin{itemize}
|
|
\item $+$ kein zusätzlicher Speicherplatz erforderlich
|
|
\item $-$ beim Suchen findet man im Bucket auch Überläufer
|
|
\item $-$ beim löschen Überläufer zurückholen
|
|
\item $-$ in Nachbarbuckets werden ggf weitere Überläufe erzeugt
|
|
\end{itemize}
|
|
\item Overflow Buckets
|
|
\begin{itemize}
|
|
\item Anlegen spezieller Überlauf Buckets für jeden Bucket
|
|
\begin{itemize}
|
|
\item $-$ zusätzlicher Speicherplatz erforderlich
|
|
\item $+$ keine Mischung von sätzen
|
|
\item $+$ keine Beeinträchtigung der Nachbarbuckets
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\subsubsection{Bewertung}
|
|
\begin{itemize}
|
|
\item sehr schneller Zugriff über Schlüssel (1 bis 2 Blockzugriffe)
|
|
\item gestreute Speicherung kann nur nach \textbf{einem} Schlüssel erfolgen
|
|
\item Speicherplatz muss um voraus belegt werden
|
|
\end{itemize}
|
|
\subsection{Virtuelles Hashing}
|
|
Vorteile vom virtuellen Hashing ggü. normalen Hashing:\\
|
|
Das normale Hashing ist nicht erweiterbar, d.h. man muss den gesamten
|
|
Speicher im voraus belegen. Dadurch kommt man in Platznot oder verschwendet zuviel.
|
|
Beim linearen Hashing versucht man durch kontinuierliche Reorganisation
|
|
Überlaufprobleme zu vermeiden.
|
|
|
|
Beschreibung von Dateizustand:
|