From 1ae182095ef7df5d70d091651e4b1e40aa384811 Mon Sep 17 00:00:00 2001 From: Luis Gerhorst Date: Sun, 11 Feb 2018 14:29:12 +0100 Subject: [PATCH] =?UTF-8?q?Progammieraufgabe:=20R=C3=BCckgabewert,=20sinnv?= =?UTF-8?q?olle=20Parameter,=20keine=20Variablendefinitionen=20verlangen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Es soll der Wahlfreie Zugriff auf einen Satz implementiert werden → Rückgabewert ist Pointer auf Byte-Array (char *) Ein Satz liegt in einem Segment (aka Blockdatei) → Name des Segments asl Parameter Eine TID ist ein 2-Tupel aus Blocknummer und Index in diesen Block Verbesserungsvorschläge erwünscht, vielleicht hab ich auch was falsch verstanden. (e.g soll der Student `index = tid.index` selbst einfügen? Was soll das Parameter `uint32 index` bedeuten?) --- IDB/klausur_ws1516/klausur_idb_WS1516.tex | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/IDB/klausur_ws1516/klausur_idb_WS1516.tex b/IDB/klausur_ws1516/klausur_idb_WS1516.tex index dbef067..9f4b2b9 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}