diff --git a/IDB/klausur_ws1516/klausur_idb_WS1516.tex b/IDB/klausur_ws1516/klausur_idb_WS1516.tex index 95be59f..433a75f 100644 --- a/IDB/klausur_ws1516/klausur_idb_WS1516.tex +++ b/IDB/klausur_ws1516/klausur_idb_WS1516.tex @@ -114,11 +114,12 @@ Dies ist eine studentische, prüfungsschwierigkeit immitierende Aufgabenzusammen \section*{Aufgabe 4: Puffer} \subsection*{a)} Aus der Vorlesung sind die Funktionen der Pufferschnittstelle bekannt. Ergaenzen sie den folgenden Programmablauf mit ensprechenden Funktionsaufrufen aus dieser Scchnittstelle. -Fehlerbehandlung sowie Behandlung von fragmentierten Saetzen ist nicht notwendig. +Fehlerbehandlung sowie Behandlung von fragmentierten Saetzen ist nicht notwendig. +\texttt{struct tid} hat die Felder \texttt{block_no} und \texttt{index}. \begin{lstlisting}[language=c,tabsize=4] -static void read(char* tid, uint_32 index){ +static char *read(char* segment_identifier, struct tid tid) { char* page_in_main_memory := @@ -127,7 +128,7 @@ static void read(char* tid, uint_32 index){ if (indirection(page_in_main_memory, tid.index)){ - char* tid_indirected = getIndirection(page_in_main_memory, index); + char* tid_indirected = getIndirection(page_in_main_memory, tid.index); page_in_main_memory = @@ -139,10 +140,10 @@ static void read(char* tid, uint_32 index){ } - char* final := special_memcpy(page_in_main_memory, index); + char* final := special_memcpy(page_in_main_memory, tid.index); - return satz; + return final; } \end{lstlisting}