<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Creator: fig2dev Version 3.2 Patchlevel 5 --> <!-- CreationDate: Mon Aug 30 17:25:01 2010 --> <!-- Magnification: 1.050 --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="646.51501" height="465.49869" viewBox="1441 1382 8577.2987 6161.3924" id="svg2837" version="1.1" inkscape:version="0.48.0 r9654" sodipodi:docname="layer_diagram.svg" inkscape:export-filename="/home/singler/code/stxxl/trunk/images/layer_diagram.png" inkscape:export-xdpi="82.480003" inkscape:export-ydpi="82.480003"> <metadata id="metadata3059"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title></dc:title> </cc:Work> </rdf:RDF> </metadata> <defs id="defs3057"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 252 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="648 : 252 : 1" inkscape:persp3d-origin="324 : 168 : 1" id="perspective3061" /> <defs id="defs2845"> <pattern id="tile1" x="0" y="0" width="200" height="200" patternUnits="userSpaceOnUse"> <path d="M 0 -100 200 20" id="path2848" /> <path d="M 0 -60 200 60" id="path2850" /> <path d="M 0 -20 200 100" id="path2852" /> <path d="M 0 20 200 140" id="path2854" /> <path d="M 0 60 200 180" id="path2856" /> <path d="M 0 100 200 220" id="path2858" /> <path d="M 0 140 200 260" id="path2860" /> <path d="M 0 180 200 300" id="path2862" /> </pattern> </defs> <defs id="defs2870"> <pattern id="tile2" x="0" y="0" width="200" height="200" patternUnits="userSpaceOnUse"> <path d="M 0 -100 200 20" id="path2873" /> <path d="M 0 -60 200 60" id="path2875" /> <path d="M 0 -20 200 100" id="path2877" /> <path d="M 0 20 200 140" id="path2879" /> <path d="M 0 60 200 180" id="path2881" /> <path d="M 0 100 200 220" id="path2883" /> <path d="M 0 140 200 260" id="path2885" /> <path d="M 0 180 200 300" id="path2887" /> </pattern> </defs> <defs id="defs2895"> <pattern id="tile3" x="0" y="0" width="200" height="200" patternUnits="userSpaceOnUse"> <path d="M 0 -100 200 20" id="path2898" /> <path d="M 0 -60 200 60" id="path2900" /> <path d="M 0 -20 200 100" id="path2902" /> <path d="M 0 20 200 140" id="path2904" /> <path d="M 0 60 200 180" id="path2906" /> <path d="M 0 100 200 220" id="path2908" /> <path d="M 0 140 200 260" id="path2910" /> <path d="M 0 180 200 300" id="path2912" /> </pattern> </defs> <defs id="defs2920"> <pattern id="tile4" x="0" y="0" width="200" height="200" patternUnits="userSpaceOnUse"> <path d="M 0 -100 200 20" id="path2923" /> <path d="M 0 -60 200 60" id="path2925" /> <path d="M 0 -20 200 100" id="path2927" /> <path d="M 0 20 200 140" id="path2929" /> <path d="M 0 60 200 180" id="path2931" /> <path d="M 0 100 200 220" id="path2933" /> <path d="M 0 140 200 260" id="path2935" /> <path d="M 0 180 200 300" id="path2937" /> </pattern> </defs> <defs id="defs2945"> <pattern id="tile5" x="0" y="0" width="200" height="200" patternUnits="userSpaceOnUse"> <path d="M 0 -100 200 20" id="path2948" /> <path d="M 0 -60 200 60" id="path2950" /> <path d="M 0 -20 200 100" id="path2952" /> <path d="M 0 20 200 140" id="path2954" /> <path d="M 0 60 200 180" id="path2956" /> <path d="M 0 100 200 220" id="path2958" /> <path d="M 0 140 200 260" id="path2960" /> <path d="M 0 180 200 300" id="path2962" /> </pattern> </defs> <defs id="defs2970"> <pattern id="tile6" x="0" y="0" width="200" height="200" patternUnits="userSpaceOnUse"> <path d="M 0 -100 200 20" id="path2973" /> <path d="M 0 -60 200 60" id="path2975" /> <path d="M 0 -20 200 100" id="path2977" /> <path d="M 0 20 200 140" id="path2979" /> <path d="M 0 60 200 180" id="path2981" /> <path d="M 0 100 200 220" id="path2983" /> <path d="M 0 140 200 260" id="path2985" /> <path d="M 0 180 200 300" id="path2987" /> </pattern> </defs> </defs> <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1272" inkscape:window-height="936" id="namedview3055" showgrid="false" inkscape:zoom="0.82731493" inkscape:cx="321.87004" inkscape:cy="226.51891" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg2837" units="mm" fit-margin-top="2" fit-margin-left="3" fit-margin-right="3" fit-margin-bottom="3" /> <text xml:space="preserve" x="-4696.7891" y="2153.5166" font-style="normal" font-weight="bold" font-size="441" id="text2993" style="font-size:441px;font-style:normal;font-weight:bold;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:Helvetica" transform="matrix(-3.6732199e-6,-1,1,-3.6732199e-6,0,0)">TXXL</text> <text xml:space="preserve" x="-5454.3784" y="2173.2498" font-style="normal" font-weight="bold" font-size="567" id="text2997" style="font-size:567px;font-style:normal;font-weight:bold;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:Helvetica" transform="matrix(-1.101966e-5,-1,1,-1.101966e-5,0,0)">S</text> <rect id="rect2999" style="color:#000000;fill:#9eb0d5;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:32.00000043;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" rx="251" height="1464" width="7370" y="3903.1101" x="2389.5339" ry="251" /> <rect id="rect3001" style="color:#000000;fill:#9eb0d5;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:32.00000043;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" rx="173" height="1472" width="3023" y="2326.7798" x="6736.5342" ry="173" /> <rect id="rect3003" style="fill:#9eb0d5;fill-opacity:1;stroke:#000000;stroke-width:32.00000043000000005;stroke-linecap:butt;stroke-linejoin:miter;color:#000000;fill-rule:nonzero;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" rx="188" height="1472" width="4155" y="2334.7798" x="2389.5339" ry="188" /> <rect id="rect3005" style="fill:#4d6eb1;fill-opacity:1;stroke:#000000;stroke-width:32;stroke-linecap:butt;stroke-linejoin:miter" rx="251.00002" height="519" width="7370.0039" y="1484.7797" x="2389.5339" ry="251" /> <rect id="rect3007" style="color:#000000;fill:#4d6eb1;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:32.00000043;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" rx="251" height="519" width="7370.0039" y="6874.4941" x="2437.5339" ry="251" /> <rect id="rect3009" style="color:#000000;fill:#9eb0d5;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:32.00000043;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" rx="251" height="1124.3066" width="7370.0039" y="5471.4375" x="2389.5339" ry="251" /> <rect id="rect3011" style="fill:none;stroke:#000000;stroke-width:16;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:62, 62" rx="0" height="4459.9976" width="8279.2451" y="2226.7505" x="1590.0269" /> <polyline id="polyline3013" style="fill:none;stroke:#000000;stroke-width:32;stroke-linecap:butt;stroke-linejoin:miter" points="2456,4535 9826,4535 9118,4535 " transform="translate(-66.465922,-64.889013)" /> <polyline id="polyline3015" style="fill:none;stroke:#000000;stroke-width:31.93028641;stroke-linecap:butt;stroke-linejoin:miter" points="2457,6188 9778,6188 9293,6188 " transform="matrix(1.0043713,0,0,1,-77.206305,-197.55876)" /> <polyline id="polyline3017" style="fill:none;stroke:#000000;stroke-width:32;stroke-linecap:butt;stroke-linejoin:miter" points="2456,2881 5905,2881 6614,2881 " transform="translate(-66.465922,67.780745)" /> <polyline id="polyline3019" style="fill:none;stroke:#000000;stroke-width:32;stroke-linecap:butt;stroke-linejoin:miter" points="6803,2881 9307,2881 9826,2881 " transform="translate(-66.465922,67.780745)" /> <text style="font-size:215px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:AvantGarde" id="text3021" font-size="215" font-weight="normal" font-style="normal" y="6368.4375" x="6074.5342" xml:space="preserve"><tspan style="font-size:265.33950806px" id="tspan3245">files, I/O requests, disk queues, completion handlers</tspan></text> <text style="font-size:215px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:AvantGarde" id="text3023" font-size="215" font-weight="normal" font-style="normal" y="5131.1084" x="6121.5342" xml:space="preserve"><tspan style="font-size:265.33950806px" id="tspan3243">block prefetcher, buffered block writer</tspan></text> <text style="font-size:215px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:AvantGarde" id="text3025" font-size="215" font-weight="normal" font-style="normal" y="6964.7793" x="6074.5342" xml:space="preserve" /> <text style="font-size:265px;font-style:normal;font-weight:bold;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:Helvetica" id="text3027" font-size="265" font-weight="bold" font-style="normal" y="5849.4375" x="6074.5342" xml:space="preserve"><tspan style="font-size:371.47531128px" id="tspan3223">Asynchronous I/O Primitives</tspan></text> <text style="font-size:265px;font-style:normal;font-weight:bold;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:Helvetica" id="text3029" font-size="265" font-weight="bold" font-style="normal" y="4328.1084" x="6121.5342" xml:space="preserve"><tspan style="font-size:371.47531128px" id="tspan3219">Block Management</tspan></text> <text style="font-size:215px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:AvantGarde" id="text3031" font-size="215" font-weight="normal" font-style="normal" y="4801.1084" x="6121.5342" xml:space="preserve"><tspan style="font-size:265.33950806px" id="tspan3241">typed block, block manager, buffered streams,</tspan></text> <text style="font-size:215px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:AvantGarde" id="text3033" font-size="215" font-weight="normal" font-style="normal" y="3279.7798" x="2796.8733" xml:space="preserve"><tspan style="font-size:265.33950806px" id="tspan3227">Containers:</tspan></text> <text style="font-size:265px;font-style:normal;font-weight:bold;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:Helvetica" id="text3035" font-size="265" font-weight="bold" font-style="normal" y="2759.7798" x="4468.5342" xml:space="preserve"><tspan style="font-size:371.47531128px" id="tspan3215">STL Interface</tspan></text> <text style="font-size:164px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:AvantGarde" id="text3037" font-size="164" font-weight="normal" font-style="normal" y="3159.2458" x="4638.876" xml:space="preserve"><tspan style="font-size:199.00462341px" id="tspan3231">vector, stack, set</tspan></text> <text style="font-size:164px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:AvantGarde" id="text3039" font-size="164" font-weight="normal" font-style="normal" y="3374.7798" x="4497.876" xml:space="preserve"><tspan style="font-size:199.00462341px" id="tspan3233">priority_queue, map</tspan></text> <text style="font-size:164px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:AvantGarde" id="text3041" font-size="164" font-weight="normal" font-style="normal" y="3663.8477" x="4449.876" xml:space="preserve"><tspan style="font-size:199.00462341px" id="tspan3235">sort, for_each, merge</tspan></text> <text style="font-size:215px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:AvantGarde" id="text3043" font-size="215" font-weight="normal" font-style="normal" y="3326.7798" x="7326.8076" xml:space="preserve"><tspan style="font-size:265.33950806px" id="tspan3237">Pipelined sorting,</tspan></text> <text style="font-size:215px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:AvantGarde" id="text3045" font-size="215" font-weight="normal" font-style="normal" y="3610.7798" x="7278.8076" xml:space="preserve"><tspan style="font-size:265.33950806px" id="tspan3239">zero-I/O scanning</tspan></text> <text style="font-size:265px;font-style:normal;font-weight:bold;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:Helvetica" id="text3047" font-size="265" font-weight="bold" font-style="normal" y="2759.7798" x="8242.4658" xml:space="preserve"><tspan style="font-size:371.47531128px" id="tspan3217">Pipelining</tspan></text> <text style="font-size:215px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:AvantGarde" id="text3049" font-size="215" font-weight="normal" font-style="normal" y="3663.8477" x="2796.8733" xml:space="preserve"><tspan style="font-size:265.33950806px" id="tspan3229">Algorithms:</tspan></text> <text style="font-size:265px;font-style:normal;font-weight:bold;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:Helvetica" id="text3051" font-size="265" font-weight="bold" font-style="normal" y="7252.4941" x="6027.5342" xml:space="preserve"><tspan style="font-size:371.47531128px" id="tspan3225">Operating System</tspan></text> <text style="font-size:265px;font-style:normal;font-weight:bold;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0.025in;font-family:Helvetica" id="text3053" font-size="265" font-weight="bold" font-style="normal" y="1836.2465" x="6054.0684" xml:space="preserve"><tspan style="font-size:371.47531128px" id="tspan3221">Applications</tspan></text> </svg>