Progammieraufgabe: Rückgabewert, sinnvolle Parameter, keine Variablendefinitionen verlangen

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?)
This commit is contained in:
Luis Gerhorst 2018-02-11 14:29:12 +01:00
parent e836fbf807
commit 1ae182095e

View File

@ -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}