Start DBI chapter
This commit is contained in:
107
img/dynamorio.tikz
Normal file
107
img/dynamorio.tikz
Normal file
@@ -0,0 +1,107 @@
|
||||
\begin{tikzpicture}
|
||||
\begin{pgfonlayer}{nodelayer}
|
||||
\node [style=none] (0) at (0, -2.5) {Multithreaded Application};
|
||||
\node [style=none] (1) at (-2, -1.75) {};
|
||||
\node [style=none] (2) at (-2, -3.25) {};
|
||||
\node [style=none] (3) at (2, -3.25) {};
|
||||
\node [style=none] (4) at (2, -1.75) {};
|
||||
\node [style=none] (5) at (-6, -1.75) {};
|
||||
\node [style=none] (6) at (6, -1.75) {};
|
||||
\node [style=none] (7) at (6, -3.25) {};
|
||||
\node [style=none] (8) at (-6, -3.25) {};
|
||||
\node [style=none] (9) at (-8.5, -5) {};
|
||||
\node [style=none] (10) at (9.75, -5) {};
|
||||
\node [style=none] (11) at (9.75, -13.5) {};
|
||||
\node [style=none] (12) at (-8.5, -13.5) {};
|
||||
\node [style=align text] (13) at (-7.25, -9.25) {Kernel-meditated\\Control Transfers};
|
||||
\node [style=os] (14) at (0, -15.5) {Operating System};
|
||||
\node [style=hardware] (15) at (0, -16.5) {Hardware};
|
||||
\node [style=dispatch] (16) at (0, -6.75) {Dispatch};
|
||||
\node [style=bb builder] (17) at (6, -6.75) {Basic Block\\Builder};
|
||||
\node [style=code cache] (19) at (0, -11.75) {Code Cache};
|
||||
\node [style=none] (20) at (2.25, -6.5) {};
|
||||
\node [style=none] (21) at (2.25, -7) {};
|
||||
\node [style=none] (22) at (3.75, -6.5) {};
|
||||
\node [style=none] (23) at (3.75, -7) {};
|
||||
\node [style=none] (24) at (-0.25, -8) {};
|
||||
\node [style=none] (25) at (0.25, -8) {};
|
||||
\node [style=none] (26) at (-0.25, -10.5) {};
|
||||
\node [style=none] (27) at (0.25, -10.5) {};
|
||||
\node [style=none] (28) at (-3, -8.75) {};
|
||||
\node [style=none] (29) at (9, -8.75) {};
|
||||
\node [style=none] (30) at (9, -9.75) {};
|
||||
\node [style=none] (31) at (-3, -9.75) {};
|
||||
\node [style=none] (32) at (3, -9.25) {Context Switch};
|
||||
\node [style=none] (33) at (-4, -3.25) {};
|
||||
\node [style=none] (34) at (0, -3.25) {};
|
||||
\node [style=none] (35) at (4, -3.25) {};
|
||||
\node [style=none] (36) at (0, -5.5) {};
|
||||
\node [style=none] (37) at (0.5, -5.5) {};
|
||||
\node [style=none] (38) at (-0.5, -5.5) {};
|
||||
\node [style=none] (39) at (-0.25, -13) {};
|
||||
\node [style=none] (40) at (0.25, -13) {};
|
||||
\node [style=none] (41) at (-0.25, -15) {};
|
||||
\node [style=none] (42) at (0.25, -15) {};
|
||||
\node [style=none] (43) at (-2.25, -6.75) {};
|
||||
\node [style=none] (44) at (-2.25, -7.25) {};
|
||||
\node [style=none] (45) at (-2.25, -6.25) {};
|
||||
\node [style=none] (46) at (-4.25, -7.25) {};
|
||||
\node [style=none] (47) at (-4.75, -6.75) {};
|
||||
\node [style=none] (48) at (-5.25, -6.25) {};
|
||||
\node [style=none] (49) at (-5.25, -15) {};
|
||||
\node [style=none] (50) at (-4.75, -15) {};
|
||||
\node [style=none] (51) at (-4.25, -15) {};
|
||||
\node [style=none] (52) at (-5, -3.25) {};
|
||||
\node [style=none] (53) at (-1, -3.25) {};
|
||||
\node [style=none] (54) at (3, -3.25) {};
|
||||
\node [style=none] (55) at (-2.25, -11.5) {};
|
||||
\node [style=none] (56) at (-2.25, -12) {};
|
||||
\node [style=none] (57) at (-3, -11.5) {};
|
||||
\node [style=none] (58) at (-3, -12) {};
|
||||
\node [style=none] (59) at (2.75, -14.25) {System Calls};
|
||||
\end{pgfonlayer}
|
||||
\begin{pgfonlayer}{edgelayer}
|
||||
\draw [style=block] (6.center)
|
||||
to (7.center)
|
||||
to (3.center)
|
||||
to (2.center)
|
||||
to (8.center)
|
||||
to (5.center)
|
||||
to (1.center)
|
||||
to (4.center)
|
||||
to cycle;
|
||||
\draw [style=dashed line] (1.center) to (2.center);
|
||||
\draw [style=dashed line] (4.center) to (3.center);
|
||||
\draw [style=kernel] (11.center)
|
||||
to (10.center)
|
||||
to (9.center)
|
||||
to (12.center)
|
||||
to cycle;
|
||||
\draw [style=latex arrow] (20.center) to (22.center);
|
||||
\draw [style=latex arrow] (23.center) to (21.center);
|
||||
\draw [style=context switch] (30.center)
|
||||
to (31.center)
|
||||
to (28.center)
|
||||
to (29.center)
|
||||
to cycle;
|
||||
\draw [style=latex arrow] (24.center) to (26.center);
|
||||
\draw [style=latex arrow] (27.center) to (25.center);
|
||||
\draw [style=latex arrow] (33.center) to (38.center);
|
||||
\draw [style=latex arrow] (34.center) to (36.center);
|
||||
\draw [style=latex arrow] (35.center) to (37.center);
|
||||
\draw [style=latex arrow] (39.center) to (41.center);
|
||||
\draw [style=latex arrow] (42.center) to (40.center);
|
||||
\draw [style=latex arrow] (48.center) to (45.center);
|
||||
\draw [style=latex arrow] (47.center) to (43.center);
|
||||
\draw [style=latex arrow] (46.center) to (44.center);
|
||||
\draw (48.center) to (49.center);
|
||||
\draw (47.center) to (50.center);
|
||||
\draw (46.center) to (51.center);
|
||||
\draw [style=latex arrow dashed] (48.center) to (52.center);
|
||||
\draw [style=latex arrow dashed] (47.center) to (53.center);
|
||||
\draw [style=latex arrow dashed] (46.center) to (54.center);
|
||||
\draw (56.center) to (58.center);
|
||||
\draw (58.center) to (57.center);
|
||||
\draw [style=latex arrow] (57.center) to (55.center);
|
||||
\end{pgfonlayer}
|
||||
\end{tikzpicture}
|
||||
@@ -13,6 +13,12 @@
|
||||
\tikzstyle{target socket}=[fill=white, draw=black, shape=rectangle, minimum width=2mm, minimum height=5mm]
|
||||
\tikzstyle{cache}=[fill=white, draw=black, shape=rectangle, minimum height=8mm, minimum width=2cm]
|
||||
\tikzstyle{l3cache}=[fill=white, draw=black, shape=rectangle, minimum height=2.5cm, minimum width=2cm]
|
||||
\tikzstyle{dispatch}=[fill={rgb,255: red,254; green,254; blue,174}, draw=black, shape=rectangle, minimum height=1.25cm, minimum width=2.25cm]
|
||||
\tikzstyle{bb builder}=[fill={rgb,255: red,174; green,254; blue,174}, draw=black, shape=rectangle, minimum height=1.25cm, align=center, minimum width=2.25cm]
|
||||
\tikzstyle{code cache}=[fill={rgb,255: red,174; green,169; blue,254}, draw=black, shape=rectangle, minimum height=1.25cm, minimum width=2.25cm]
|
||||
\tikzstyle{os}=[fill={rgb,255: red,207; green,207; blue,207}, draw=black, shape=rectangle, minimum width=6cm]
|
||||
\tikzstyle{hardware}=[fill={rgb,255: red,174; green,169; blue,174}, draw=black, shape=rectangle, minimum width=6cm]
|
||||
\tikzstyle{align text}=[fill=none, draw=none, rotate=90, align=center]
|
||||
|
||||
% Edge styles
|
||||
\tikzstyle{dashed line}=[-, dashed]
|
||||
@@ -22,3 +28,7 @@
|
||||
\tikzstyle{inner block}=[-, fill={rgb,255: red,199; green,213; blue,255}, thick, draw={rgb,255: red,60; green,106; blue,255}]
|
||||
\tikzstyle{dotted line}=[-, dotted]
|
||||
\tikzstyle{arrow without head}=[-, thick]
|
||||
\tikzstyle{kernel}=[-, draw=red, fill={rgb,255: red,254; green,169; blue,174}]
|
||||
\tikzstyle{latex arrow}=[-, -latex]
|
||||
\tikzstyle{context switch}=[-, dashed, fill={rgb,255: red,222; green,222; blue,222}]
|
||||
\tikzstyle{latex arrow dashed}=[-, -latex, dashed]
|
||||
|
||||
Reference in New Issue
Block a user