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

@ -115,10 +115,11 @@ Dies ist eine studentische, prüfungsschwierigkeit immitierende Aufgabenzusammen
\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.
\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}