From a0a9437a1a4eb35299c69b4dec103cf7b05b7769 Mon Sep 17 00:00:00 2001 From: Jonne Itkonen <jonne.itkonen@jyu.fi> Date: Tue, 18 Mar 2025 22:44:31 +0200 Subject: [PATCH] osoitteenmuutos leikkiarkkitehtuurilla kuvia muokattu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit olivat ennen muualla piirrettyjä, nyt bytefieldejä --- moniste/kayttojarjestelmat.tex | 11 +++ moniste/tex/muistinhallinta.tex | 133 +++++++++++++++++++++++++++++++- 2 files changed, 142 insertions(+), 2 deletions(-) diff --git a/moniste/kayttojarjestelmat.tex b/moniste/kayttojarjestelmat.tex index 9681faf..23147da 100644 --- a/moniste/kayttojarjestelmat.tex +++ b/moniste/kayttojarjestelmat.tex @@ -105,6 +105,17 @@ % \renewcommand{\includegraphics}[2][width=\textwidth]{\IfFileExists{#2}{\includegraphicsoriginal[#1]{#2}}{\noimage}} + +% pystyteksti bittimerkinnöille +\newlength{\bitlabelwidth} +\newcommand{\rotbitheader}[1]{% + \tiny + \settowidth{\bitlabelwidth}{\quad 99}% + \rotatebox[origin=B]{90}{\makebox[\bitlabelwidth][r]{#1}}% +} + + + \begin{document} %\include{./tex/prologi} diff --git a/moniste/tex/muistinhallinta.tex b/moniste/tex/muistinhallinta.tex index 96cd14f..697daa7 100644 --- a/moniste/tex/muistinhallinta.tex +++ b/moniste/tex/muistinhallinta.tex @@ -304,7 +304,97 @@ x86-64 -arkkitehtuurissa hienojakoisemmin niin sanotun \begin{figure}[ht] \centering - \includegraphics[width=.8\textwidth]{osoitteenmuunnos_sivutaulu_20bit_leikkiarkkitehtuuri} + % \includegraphics[width=.8\textwidth]{osoitteenmuunnos_sivutaulu_20bit_leikkiarkkitehtuuri} + + \begin{bytefield}[leftcurly=.,rightcurly=.,bitwidth=0.9em]{32} + \bitheader[endianness=big,bitformatting=\rotbitheader]{0-31} \\ + \begin{rightwordgroup}{(PTE:n osoite)} + \begin{leftwordgroup}{rivi/indeksi} + \bitbox{8}{käyttöj.} & \bitbox{12}{Fyysisen sivun numero} & + \bitbox{4}{käyttöj.} & + \bitbox{2}{res.} & + \bitbox{1}{D} & \bitbox{1}{A} & \bitbox{1}{E} & + \bitbox{1}{U} & \bitbox{1}{W} & \bitbox{1}{P} + \end{leftwordgroup} + \end{rightwordgroup} \\ + + \begin{rightwordgroup}{$\leftarrow$ 0x027000 } + \begin{leftwordgroup}{0x00} + \bitbox{8}{} & \bitbox{12}{0x000} & + \bitboxes{1}{000000000000} + \end{leftwordgroup} + \end{rightwordgroup} \\ + + \begin{rightwordgroup}{$\leftarrow$ 0x027004 } + \begin{leftwordgroup}{0x01} + \bitbox{8}{} & \bitbox{12}{0x345} & + \bitboxes{1}{001000011101} + \end{leftwordgroup} + \end{rightwordgroup} \\ + + \begin{rightwordgroup}{$\leftarrow$ 0x027008 } + \begin{leftwordgroup}{0x02} + \bitbox{8}{} & \bitbox{12}{0x88a} & + \bitboxes{1}{000000001101} + \end{leftwordgroup} + \end{rightwordgroup} \\ + + \begin{rightwordgroup}{$\leftarrow$ 0x02700c } + \begin{leftwordgroup}{0x03} + \bitbox{8}{} & \bitbox{12}{0x678} & + \bitboxes{1}{000000010111} + \end{leftwordgroup} + \end{rightwordgroup} \\ + + \begin{rightwordgroup}{$\leftarrow$ 0x027010 } + \begin{leftwordgroup}{0x04} + \bitbox{8}{} & \bitbox{12}{0x000} & + \bitboxes{1}{000000000110} + \end{leftwordgroup} + \end{rightwordgroup} \\ + + \begin{rightwordgroup}{$\leftarrow$ 0x027014 } + \begin{leftwordgroup}{0x05} + \bitbox{8}{} & \bitbox{12}{0x9ec} & + \bitboxes{1}{010000110111} + \end{leftwordgroup} + \end{rightwordgroup} \\ + + \skippedwords \\ + + \begin{rightwordgroup}{$\leftarrow$ 0x0271fc } + \begin{leftwordgroup}{0x7f} + \bitbox{8}{} & \bitbox{12}{0x3c0} & + \bitboxes{1}{000000110111} + \end{leftwordgroup} + \end{rightwordgroup} \\ + + \begin{rightwordgroup}{$\leftarrow$ 0x027200 } + \begin{leftwordgroup}{0x80} + \bitbox{8}{} & \bitbox{12}{0x000} & + \bitboxes{1}{000000000000} + \end{leftwordgroup} + \end{rightwordgroup} \\ + + \skippedwords \\ + + \begin{rightwordgroup}{$\leftarrow$ 0x0273f8 } + \begin{leftwordgroup}{0xfe} + \bitbox{8}{} & \bitbox{12}{0x0e2} & + \bitboxes{1}{000000110011} + \end{leftwordgroup} + \end{rightwordgroup} \\ + + \begin{rightwordgroup}{$\leftarrow$ 0x0273fc } + \begin{leftwordgroup}{0xff} + \bitbox{8}{} & \bitbox{12}{0x0f0} & + \bitboxes{1}{000000011001} + \end{leftwordgroup} + \end{rightwordgroup} \\ + + + \end{bytefield} + \caption{\label{fig:leikkisivutaulu} Leikkiesimerkki prosessin sivutaulusta 20-bittisellä virtuaaliosoiteavaruudella, 24-bittisellä fyysisellä osoiteavaruudella ja 4096 tavun @@ -336,7 +426,46 @@ virtuaalinen\footnote{Esimerkiksi AMD64 määrittelee fyysisen \begin{figure}[ht] \centering - \includegraphics[width=.5\textwidth]{osoitteenmuunnos_20bit_leikkiarkkitehtuuri} + % \includegraphics[width=.5\textwidth]{osoitteenmuunnos_20bit_leikkiarkkitehtuuri} + \begin{bytefield}[leftcurly=.,rightcurly=.,bitwidth=0.9em]{32} + + \bitbox[]{4}{0x} + \bitboxes[]{4}{03cde} + \\ + + \bitbox[]{4}{Bitit:} & + \bitbox{4}[bgcolor=gray!50]{0 0 0 0} & + \bitbox{4}[bgcolor=gray!50]{0 0 1 1} & + \bitbox{4}[bgcolor=gray!20]{1 1 0 0} & + \bitbox{4}[bgcolor=gray!20]{1 1 0 1} & + \bitbox{4}[bgcolor=gray!20]{1 1 1 0} & + \\ + + \bitbox[]{4}{Osiot:} & + \bitbox[]{8}[bgcolor=gray!50]{Bitit 19…12} & + \bitbox[]{12}[bgcolor=gray!20]{Bitit 11…0} + \\ + + \bitbox[]{4}{} & + \bitbox[]{8}[bgcolor=gray!50]{\small (8 bittiä)} & + \bitbox[]{12}[bgcolor=gray!20]{\small (12 bittiä)} + \\ + + \bitbox[]{4}{Indeksit:} & + \bitbox[]{8}[bgcolor=gray!50]{3} & + \bitbox[]{12}[bgcolor=gray!20]{0Xcde (=3294)} + \\ + + \bitbox[]{4}{} & + \bitbox[]{8}{} & \bitbox[]{12}{\raggedright Osoite sivun sisällä.} + \\ + + \bitbox[]{4}{} & + \bitbox[]{8}{\raggedright Indeksi sivutaulun riviin.} & + \bitbox[]{12}{\raggedright (Pysyy samana fyysisellä Sivulla.)} + + \end{bytefield} + \caption{\label{fig:leikkiosoite} Leikkiesimerkki prosessin virtuaalimuistiosoitteesta 20-bittisellä virtuaaliosoiteavaruudella ja 4096 tavun sivukoolla.} -- GitLab