mirror of
https://gitlab.cs.fau.de/ik15ydit/latexandmore.git
synced 2024-11-25 21:25:02 +01:00
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:
parent
e836fbf807
commit
1ae182095e
@ -115,10 +115,11 @@ Dies ist eine studentische, prüfungsschwierigkeit immitierende Aufgabenzusammen
|
|||||||
\subsection*{a)}
|
\subsection*{a)}
|
||||||
Aus der Vorlesung sind die Funktionen der Pufferschnittstelle bekannt. Ergaenzen sie den folgenden Programmablauf mit ensprechenden Funktionsaufrufen aus dieser Scchnittstelle.
|
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]
|
\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 :=
|
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)){
|
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 =
|
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}
|
\end{lstlisting}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user