single-level-page-table.tex 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. \documentclass{article}
  2. \usepackage[pdftex,active,tightpage]{preview}
  3. \setlength\PreviewBorder{2mm}
  4. % http://upload.wikimedia.org/wikipedia/de/5/5d/EinstufigeSeitentabelle.png
  5. \usepackage{tikz}
  6. \usetikzlibrary{calc, shapes.multipart}
  7. \begin{document}
  8. \begin{preview}
  9. \begin{tikzpicture}
  10. \newcommand{\PageNumber}{Seitennummer};
  11. \newcommand{\Offset}{Offset};
  12. \newcommand{\VirtualAdress}{Virtuelle Adresse};
  13. \newcommand{\RealAdress}{Reale Adresse};
  14. \newcommand{\PageTable}{Seitentabelle};
  15. \newcommand{\textBoxHeight}{1};
  16. \node[rectangle split, rectangle split horizontal,
  17. rectangle split parts=2, draw, fill=black!20,label=left:\textbf{\VirtualAdress}]
  18. (VirtualAdressNode) at (5,0)
  19. {\nodepart{one}\PageNumber \nodepart{two}\Offset};
  20. \newcommand{\titleShift}{0.45cm};
  21. \draw[<->] ([yshift=\titleShift]VirtualAdressNode.one west) -- ([yshift=\titleShift]VirtualAdressNode.one split);
  22. \draw[<->] ([yshift=\titleShift]VirtualAdressNode.one split) -- ([yshift=\titleShift]VirtualAdressNode.one east);
  23. \node[fill=white,font=\tiny,yshift=\titleShift] at ($(VirtualAdressNode.one west)!0.5!(VirtualAdressNode.one split)$) {n bit};
  24. \node[fill=white,font=\tiny,yshift=\titleShift] at ($(VirtualAdressNode.one split)!0.5!(VirtualAdressNode.one east)$) {m bit};
  25. \node[rectangle split,
  26. rectangle split parts=10, draw, fill=black!20]
  27. (PageTableNode1) at (2,-3)
  28. {};
  29. \node[rectangle split, minimum width=3cm,anchor=west,
  30. rectangle split parts=10, draw, fill=black!20,label=above:\textbf{\PageTable}]
  31. (PageTableNode2) at (2.2,-3)
  32. {};
  33. \node (StatusBitsNode) at (2,-5.6) {Statusbits};
  34. \node (BasisadresseNode) at (4,-5.6) {Basisadresse};
  35. \draw[->,very thick] (StatusBitsNode) -- (2, -5);
  36. \draw[->,very thick] (BasisadresseNode) -- (4, -5);
  37. \node[rectangle split, rectangle split horizontal,
  38. rectangle split parts=2, draw, fill=black!20,label=left:\textbf{\RealAdress}]
  39. (RealAdressNode) at (5,-6.4)
  40. {\nodepart{one}Basisadresse der realen Seite \nodepart{two}\Offset};
  41. \draw[->, very thick] (VirtualAdressNode.two south) -- (RealAdressNode.two north);
  42. \end{tikzpicture}
  43. \end{preview}
  44. \end{document}