%!PS-Adobe-2.0 %%Creator: dvips by Radical Eye Software %%Pages: 7 1 %%BoundingBox: 0 0 612 792 %%EndComments %%BeginDocument: tex.pro /TeXDict 200 dict def TeXDict begin /bdf{bind def}def /bop-aux{}bdf /@rigin{ /@page-height exch def /@page-width exch def 72 Resolution div dup neg scale translate}bdf /@letter{Resolution dup -10 mul 8.5 11 @rigin}bdf /@landscape{[ 0 1 -1 0 0 0]concat Resolution dup 8.5 11 @rigin}bdf /@a4{Resolution dup -10.6929133858 mul 21 2.54 div 29.7 2.54 div @rigin}bdf /@legal{Resolution dup -13 mul 8.5 14 @rigin}bdf /@11x17{statusdict /11x17tray known{statusdict begin 11x17tray end}if Resolution dup -16 mul 11 17 @rigin}bdf /@manualfeed{ statusdict /manualfeed true put}bdf /@copies{/#copies exch def}bdf /@draft{ /bop-aux{gsave initmatrix 72 dup scale @page-width 2 div @page-height 2 div translate @page-height @page-width atan rotate /Helvetica-Bold findfont 2 scalefont setfont(DRAFT)dup stringwidth pop 2 div neg -1 moveto .95 setgray show grestore}bdf}bdf /@FontMatrix[1 0 0 -1 0 0]def /@FontBBox[0 0 0 0]def /dmystr(ZZf@@@)def /newname{dmystr cvn}bdf /df{/fontname exch def dmystr 2 fontname cvx(@@@@)cvs putinterval newname 7 dict def newname load begin /FontType 3 def /FontMatrix @FontMatrix def /FontBBox @FontBBox def /BitMaps 256 array def /BuildChar{CharBuilder}def /Encoding IdentityEncoding def end fontname{/foo setfont}2 array copy cvx def fontname load 0 dmystr 6 string copy cvn cvx put}bdf /dfe{newname dup load definefont setfont}bdf /ch-image{ ch-data 0 get}bdf /ch-width{ch-data 1 get}bdf /ch-height{ch-data 2 get}bdf /ch-xoff{ch-data 3 get}bdf /ch-yoff{ch-data 4 get}bdf /ch-dx{ch-data 5 get} bdf /CharBuilder{save 3 1 roll exch /BitMaps get exch get /ch-data exch def ch-data null ne{ch-dx 0 ch-xoff ch-yoff neg ch-xoff ch-width add ch-height ch-yoff sub setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-height ch-yoff sub .1 add]{ch-image}imagemask}if restore}bdf /dc{/ch-code exch def /ch-data exch def newname load /BitMaps get ch-code ch-data put}bdf /bop{gsave /SaveImage save def /bop-aux load exec 0 0 moveto}bdf /eop{clear SaveImage restore showpage grestore}bdf /@start{/Resolution exch def /IdentityEncoding 256 array def 0 1 255{IdentityEncoding exch 1 string dup 0 3 index put cvn put}for}bdf /p{show}bdf /RuleMatrix[1 0 0 -1 -.1 -.1]def /BlackDots 8 string def /v{gsave currentpoint translate false RuleMatrix{ BlackDots}imagemask grestore}bdf /a{moveto}bdf /delta 0 def /tail{dup /delta exch def 0 rmoveto}bdf /b{exch show tail}bdf /c{show delta 4 sub tail}bdf /d{ show delta 3 sub tail}bdf /e{show delta 2 sub tail}bdf /f{show delta 1 sub tail}bdf /g{show delta 0 rmoveto}bdf /h{show delta 1 add tail}bdf /i{show delta 2 add tail}bdf /j{show delta 3 add tail}bdf /k{show delta 4 add tail} bdf /l{show -4 0 rmoveto}bdf /m{show -3 0 rmoveto}bdf /n{show -2 0 rmoveto} bdf /o{show -1 0 rmoveto}bdf /q{show 1 0 rmoveto}bdf /r{show 2 0 rmoveto}bdf /s{show 3 0 rmoveto}bdf /t{show 4 0 rmoveto}bdf /w{0 rmoveto}bdf /x{0 exch rmoveto}bdf /y{3 2 roll show moveto}bdf /bos{/section save def}bdf /eos{clear section restore}bdf end %%EndDocument TeXDict begin 300 @start /fa df[<0C003C00CC000C000C000C000C000C000C000C000C00 0C000C000C000C00FF80>9 16 2 0 15]49 dc[<1F00618040C08060C0600060006000C0018003 0006000C00102020207FC0FFC0>11 16 1 0 15]50 dc[<1F00218060C060C000C0008001800F 00008000400060C060C060804060801F00>11 16 1 0 15]51 dc dfe /fb df[<387CFEFEFE7C 38>7 7 4 0 16]46 dc[<00180000780001F800FFF800FFF80001F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F8007FFFE07FFFE0>19 32 4 0 28]49 dc[ <03FC000FFF003C1FC07007E07C07F0FE03F0FE03F8FE03F8FE01F87C01F83803F80003F80003 F00003F00007E00007C0000F80001F00003E0000380000700000E01801C0180380180700180E00 380FFFF01FFFF03FFFF07FFFF0FFFFF0FFFFF0>21 32 3 0 28]50 dc[<000070000000007000 000000F800000000F800000000F800000001FC00000001FC00000003FE00000003FE00000003FE 00000006FF000000067F0000000E7F8000000C3F8000000C3F800000183FC00000181FC0000038 1FE00000300FE00000300FE00000600FF000006007F00000E007F80000FFFFF80000FFFFF80001 8001FC00018001FC00038001FE00030000FE00030000FE000600007F000600007F00FFE00FFFF8 FFE00FFFF8>37 34 2 0 42]65 dc[<0003FE0080001FFF818000FF01E38001F8003F8003E000 1F8007C0000F800F800007801F800007803F000003803F000003807F000001807E000001807E00 000180FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE 000000007E000000007E000001807F000001803F000001803F000003801F800003000F80000300 07C000060003F0000C0001F800380000FF00F000001FFFC0000003FE0000>33 34 3 0 40]67 dc[39 34 2 0 44]78 dc[<01FC0407FF8C1F03FC3C007C 7C003C78001C78001CF8000CF8000CFC000CFC0000FF0000FFE0007FFF007FFFC03FFFF01FFFF8 0FFFFC03FFFE003FFE0003FF00007F00003F00003FC0001FC0001FC0001FE0001EE0001EF0003C FC003CFF00F8C7FFE080FF80>24 34 3 0 31]83 dc[<7FFFFFFF807FFFFFFF807E03F80F8078 03F807807003F803806003F80180E003F801C0E003F801C0C003F800C0C003F800C0C003F800C0 C003F800C00003F800000003F800000003F800000003F800000003F800000003F800000003F800 000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8 00000003F800000003F800000003F800000003F800000003F8000003FFFFF80003FFFFF800>34 34 2 0 39]84 dc[<07FC001FFF803F07C03F03E03F01E03F01F01E01F00001F00001F0003FF0 03FDF01FC1F03F01F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81FF87F07E03F>24 22 2 0 27]97 dc[<00FE0007FF800F87C01E01E03E01F07C00F07C00F8FC00F8FC00F8FFFFF8FFFF F8FC0000FC0000FC00007C00007C00007E00003E00181F00300FC07003FFC000FF00>21 22 2 0 26]101 dc[26 35 2 0 31]104 dc [<1C003F007F007F007F003F001C000000000000000000000000000000FF00FF001F001F001F00 1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE0>11 36 2 0 16]105 dc[11 35 2 0 16]108 dc[43 22 2 0 48]109 dc[26 22 2 0 31]110 dc[<00FE0007FFC00F83E01E00F03E00F87C007C7C007C7C 007CFC007EFC007EFC007EFC007EFC007EFC007EFC007E7C007C7C007C3E00F81F01F00F83E007 FFC000FE00>23 22 2 0 28]111 dc[19 22 2 0 23]114 dc[<0FF3003FFF00781F00600700E00300E00300F00300FC0000 7FE0007FF8003FFE000FFF0001FF00000F80C00780C00380E00380E00380F00700FC0E00EFFC00 C7F000>17 22 2 0 22]115 dc[<0180000180000180000180000380000380000780000780000F 80003F8000FFFF00FFFF000F80000F80000F80000F80000F80000F80000F80000F80000F80000F 80000F80000F81800F81800F81800F81800F81800F830007C30003FE0000F800>17 32 1 0 22] 116 dc[26 22 2 0 31]117 dc[27 32 1 10 30]121 dc dfe /fc df[<0C001C00EC000C000C000C000C000C000C000C000C000C000C 000C000C000C000C000C00FFC0>10 19 3 0 17]49 dc[<1F0060C06060F070F0306030007000 70006000C001C00180020004000810101020207FE0FFE0>12 19 2 0 17]50 dc[<0FC0307070 38703870380038003000E00FC0007000380018001C601CF01CF018E03860701FC0>14 19 1 0 17]51 dc dfe /fd df[<0180300380700380700380700700E00700E00700E00700E00E01C00E 01C00E01C00E01C01C03881C03881C03881E07883E19903BE0E038000038000070000070000070 0000700000E00000E00000C00000>21 27 1 9 25]22 dc[<0000038000000F0000003C000000 F0000003C000000F0000003C000000F0000003C000000F0000003C000000F0000000F00000003C 0000000F00000003C0000000F00000003C0000000F00000003C0000000F00000003C0000000F00 00000380>25 24 3 2 32]60 dc dfe /fe df[<007E1F8001C170400703C060060380E00E0380 400E0380000E0380000E0380000E0380000E038000FFFFFFE00E0380E00E0380E00E0380E00E03 80E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E 0380E07F8FE3FC>30 26 0 0 32]14 dc[<60C0F1E0F9F068D0081008100810102010202040C1 80>12 11 1 -15 19]34 dc[<00800100020004000C0008001800300030003000600060006000 6000E000E000E000E000E000E000E000E000E000E0006000600060006000300030003000180008 000C000400020001000080>9 38 3 10 15]40 dc[<8000400020001000180008000C00060006 000600030003000300030003800380038003800380038003800380038003800300030003000300 0600060006000C00080018001000200040008000>9 38 2 10 15]41 dc[<60F0F07010101020 204080>4 11 3 7 11]44 dc[10 2 0 -7 13]45 dc[<60F0F060>4 4 3 0 11]46 dc[<0004000C00180018001800300030003000600060006000C000C000C0018001800180030003 0003000600060006000C000C000C00180018001800300030003000600060006000C000C000>14 37 2 9 19]47 dc[<078018603030303060186018E01CE01CE01CE01CE01CE01CE01CE01CE01C E01CE01CE01C601860187038303018600780>14 24 2 0 19]48 dc[<03000700FF0007000700 070007000700070007000700070007000700070007000700070007000700070007000700FFF0> 12 24 3 0 19]49 dc[<0F80106020304038803CC01CE01C401C003C003800380070006000C001 800100020004040804100430083FF87FF8FFF8>14 24 2 0 19]50 dc[<0F8010E02070607870 382038007800700070006000C00F8000E000700038003C003CE03CE03CC03C4038407030E00F80 >14 24 2 0 19]51 dc[<30183FF03FE03FC02000200020002000200027C03860203000380018 001C001C401CE01CE01C80184038403030E00F80>14 24 2 0 19]53 dc[<40007FFE7FFC7FFC 400880108010802000400040008001800180010003000300030003000700070007000700070007 000200>15 25 2 0 19]55 dc[<07801860303070306018E018E018E01CE01CE01C601C603C30 3C185C0F9C001C00180018003870307060604021801F00>14 24 2 0 19]57 dc[<000C000000 0C0000000C0000001E0000001E0000003F00000027000000270000004380000043800000438000 0081C0000081C0000081C0000100E0000100E00001FFE000020070000200700006007800040038 000400380008001C0008001C001C001E00FF00FFC0>26 26 1 0 29]65 dc[<003F0201C0C603 002E0E001E1C000E1C0006380006780002700002700002F00000F00000F00000F00000F00000F0 00007000027000027800023800041C00041C00080E000803003001C0C0003F00>23 26 2 0 28] 67 dc[24 26 2 0 29]68 dc[20 26 2 0 25]70 dc[11 26 1 0 14]73 dc[30 26 2 0 35]77 dc[24 26 2 0 29]78 dc[<007F000001C1C000070070000E0038001C001C 003C001E0038000E0078000F0070000700F0000780F0000780F0000780F0000780F0000780F000 0780F0000780F000078078000F0078000F0038000E003C001E001C001C000E0038000700700001 C1C000007F0000>25 26 2 0 30]79 dc[21 26 2 0 26]80 dc[25 26 2 0 28]82 dc[<0FC21836200E6006C006C002 C002C002E00070007E003FE01FF807FC003E000E00070003800380038003C002C006E004D81887 E0>16 26 2 0 21]83 dc[<7FFFFF00701C0700401C0100401C0100C01C0180801C0080801C00 80801C0080001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C 0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C000003FFE000> 25 26 1 0 28]84 dc[27 26 1 0 29]89 dc[7 37 3 9 11]91 dc[<1830204040804080810081008100B160F9F078F03060>12 11 5 -15 19]92 dc[7 37 0 9 11]93 dc[<3F8070C070E020700070007007F01C7030707070E0 70E071E071E0F171FB1E3C>16 16 2 0 19]97 dc[18 26 1 0 21]98 dc[<07F80C1C381C 30087000E000E000E000E000E000E0007000300438080C1807E0>14 16 1 0 17]99 dc[<007E 00000E00000E00000E00000E00000E00000E00000E00000E00000E0003CE000C3E00380E00300E 00700E00E00E00E00E00E00E00E00E00E00E00E00E00600E00700E00381E001C2E0007CFC0>18 26 1 0 21]100 dc[<07C01C3030187018600CE00CFFFCE000E000E000E0006000300438080C18 07E0>14 16 1 0 17]101 dc[<01F0031807380E100E000E000E000E000E000E00FFC00E000E00 0E000E000E000E000E000E000E000E000E000E000E000E007FE0>13 26 0 0 12]102 dc[<0FCE 187330307038703870387038303018602FC02000600070003FF03FFC1FFE600FC003C003C003C0 036006381C07E0>16 24 1 8 19]103 dc[18 26 1 0 21]104 dc[<18003C003C0018000000 00000000000000000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C 00FF80>9 26 0 0 10]105 dc[<018003C003C001800000000000000000000000000FC001C001 C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C041C0E180E300 7E00>10 33 -2 7 12]106 dc[18 26 1 0 20]107 dc[ 9 26 0 0 10]108 dc[29 16 1 0 32]109 dc[18 16 1 0 21]110 dc[<07E01C38300C700E6006E007 E007E007E007E007E0076006700E381C1C3807E0>16 16 1 0 19]111 dc[18 23 1 7 21]112 dc[12 16 1 0 15]114 dc[<1F20 60E04020C020C020F0007F003FC01FE000F080708030C030C020F0408F80>12 16 1 0 15]115 dc[<0400040004000C000C001C003C00FFC01C001C001C001C001C001C001C001C001C201C201C 201C201C200E400380>11 23 1 0 15]116 dc[18 16 1 0 21]117 dc [17 16 1 0 20]118 dc[25 16 1 0 28]119 dc[18 16 1 0 20]120 dc[17 23 1 7 20]121 dc dfe /ff df[10 3 3 -7 15]45 dc[<3078F060>5 4 4 0 13]46 dc[<003C00 00C6000183000303000603000603800E03800C03801C03801C0300380700380700380700380700 700E00700E00700E00700E00E01C00E01C00E01C00E03800E03800E03000C06000E0600060C000 7180001E0000>17 29 5 1 21]48 dc[<00020006000C001C007C039C00380038003800380070 00700070007000E000E000E000E001C001C001C001C003800380038003800780FFF0>15 28 4 0 21]49 dc[<003C0000C3000101800201800201C00441C00441C00841C00841C00841C010838010 83801107000E0600000C0000180000300000C00001000006000008000010010010020020020040 06007E0C00C7F80083F80080E000>18 29 4 1 21]50 dc[<003E0000C1800101800200C00400 C00440C00841C00841C00841C0088380070380000700000E0001F800003800000C00000C00000E 00000E00000E00000E00700E00E01C00801C0080380080300040600021C0001F0000>18 29 4 1 21]51 dc[<0001800001C0000380000380000380000300000700000700000600000E00000C0000 1C0000180000180000300000300000600000400000C600018E00010E00020E00061C000C1C0018 1C003F1C0040F800803F0000380000380000700000700000700000700000E000006000>18 36 2 8 21]52 dc[<000F0000308000C0800183800383800300000600000E00000C00001C00001CF000 3B18003C0C00380C00780C00700E00700E00700E00601C00E01C00E01C00E01C00E03800E03800 E0700060600060C0002180001E0000>17 29 5 1 21]54 dc[<001E0000610000818001808003 00C00300C006018006018006018007030007860003CC0003F00001F000037800063C00081E0018 0E00300E00600600600600600600C00C00C00C00C0180060100060200030C0000F0000>18 29 4 1 21]56 dc[<003C0000C6000183000303000603000E03000C03801C03801C03001C0300380700 380700380700380F00380E00181E00181E000C6C00079C00001C00001800003800003000006000 E0C000E0C0008180008600007C0000>17 29 5 1 21]57 dc[<00001800000018000000380000 00380000007800000078000000B8000001B800000138000002380000023C0000041C0000041C00 00081C0000181C0000101C0000201C0000201C00007FFC0000401C0000801C0001801C0001001C 0002001C0002001C0004000E000C000E001C001E00FF00FFC0>26 29 2 0 31]65 dc[<01FFFE 00003C0780003803C0003801C0003801C0003801C0007001C0007003C0007003C00070078000E0 070000E00E0000E03C0000FFF80001C01C0001C00E0001C00F0001C00F0003800F0003800F0003 800F0003800F0007001E0007001C0007003C00070078000E01E000FFFF8000>26 28 3 0 29] 66 dc[<0003F020001E0C60003002E000E003C001C001C0038001C0070000C00E0000801E0000 801C0000803C0000803C000000780000007800000078000000F0000000F0000000F0000000F000 0000F0000400F0000400F0000400F0000800700008007000100038002000180040000C01800007 06000001F80000>27 30 6 1 30]67 dc[<01FFFE00003C0780003801C0003801C0003800E000 3800E0007000F00070007000700070007000F000E000F000E000F000E000F000E000F001C001E0 01C001E001C001E001C001C0038003C003800380038007800380070007000E0007001C00070038 00070070000E01C000FFFF0000>28 28 3 0 31]68 dc[<01FFFFE0003C00E000380060003800 4000380040003800400070004000700040007020400070200000E0400000E0400000E0C00000FF C00001C0800001C0800001C0800001C08000038101000380010003800200038002000700040007 00040007000C00070018000E007800FFFFF000>27 28 3 0 28]69 dc[<01FFFFC0003C01C000 3800C00038008000380080003800800070008000700080007020800070200000E0400000E04000 00E0C00000FFC00001C0800001C0800001C0800001C08000038100000380000003800000038000 00070000000700000007000000070000000F000000FFF00000>26 28 3 0 27]70 dc[<01FFCF FE003C01E0003801C0003801C0003801C0003801C00070038000700380007003800070038000E0 070000E0070000E0070000FFFF0001C00E0001C00E0001C00E0001C00E0003801C0003801C0003 801C0003801C00070038000700380007003800070038000F007800FFE7FF00>31 28 3 0 31] 72 dc[<01FFC0003C0000380000380000380000380000700000700000700000700000E00000E0 0000E00000E00001C00001C00001C00001C0000380000380000380000380000700000700000700 000700000F0000FFE000>18 28 2 0 16]73 dc[<01FFE0003C00003800003800003800003800 00700000700000700000700000E00000E00000E00000E00001C00001C00001C00001C000038008 0380080380080380100700100700300700600700E00E03C0FFFFC0>21 28 3 0 26]76 dc[<01 FE0007F8003E000780002E000F00002E001700002E001700002E002700004E002E00004E004E00 004E004E00004E008E00008E011C00008E011C00008E021C00008E021C00010704380001070438 00010708380001071038000207107000020720700002072070000207407000040740E000040780 E000040700E0000C0700E0001C0601E000FF861FFC00>37 28 3 0 37]77 dc[<01FC03FE001C 0070003C0060002E0040002E0040002E0040004700800047008000470080004380800083810000 838100008181000081C1000101C2000101C2000100E2000100E2000200E4000200740002007400 020074000400380004003800040038000C0018001C001000FF801000>31 28 3 0 31]78 dc[< 0007F000001C1C0000700E0000E0070001C0038003800380070003800E0003C01E0003C01C0003 C03C0003C03C0003C0780003C0780003C0780003C0F0000780F0000780F0000780F0000F00F000 0F00F0000E00F0001E00F0003C0070003800700070007800E0003801C0001C0380000E0E000003 F80000>26 30 6 1 32]79 dc[<01FFFC00003C070000380380003801C0003801C0003801C000 7003C0007003C0007003C00070038000E0078000E0070000E00E0000E0380001FFE00001C00000 01C0000001C0000003800000038000000380000003800000070000000700000007000000070000 000F000000FFE00000>26 28 3 0 28]80 dc[<000F8400304C00403C00801801001803001803 001806001006001006000007000007000003E00003FC0001FF00007F800007C00001C00001C000 00C00000C02000C02000C0600180600180600300600200F00400CC180083E000>22 30 3 1 23] 83 dc[<1FFFFFC01C0701C0300E00C0200E0080600E0080400E0080401C0080801C0080801C00 80001C0000003800000038000000380000003800000070000000700000007000000070000000E0 000000E0000000E0000000E0000001C0000001C0000001C0000001C0000003C000007FFE0000> 26 28 7 0 30]84 dc[<7FF0FF800F001C000E0018000E0010000E0010000E0010001C0020001C 0020001C0020001C00200038004000380040003800400038004000700080007000800070008000 70008000E0010000E0010000E0010000E0020000E0020000E0040000E004000060080000303000 00104000000F800000>25 29 9 1 31]85 dc[36 29 9 1 41]87 dc[<01FF81FE001E00F0001C0060001E0080000E01 80000E0100000F02000007040000070800000790000003A0000003C0000001C0000001C0000001 E0000002E0000004E0000008F0000010700000207000006038000040380000803C0001001C0002 001C0006001E001E001E00FF80FFC0>31 28 2 0 31]88 dc[<03CC063C0C3C181C3838303870 387038E070E070E070E070E0E2C0E2C0E261E462643C38>15 18 5 0 21]97 dc[<01F007080C 08181C3838300070007000E000E000E000E000E000E008E010602030C01F00>14 18 5 0 19] 99 dc[<001F80000380000380000700000700000700000700000E00000E00000E00000E0003DC 00063C000C3C00181C00383800303800703800703800E07000E07000E07000E07000E0E200C0E2 00C0E20061E4006264003C3800>17 29 5 0 21]100 dc[<01E007100C1018083810701070607F 80E000E000E000E000E000E0086010602030C01F00>13 18 5 0 19]101 dc[<0003C000067000 0C70001C60001C00001C0000380000380000380000380000380003FF8000700000700000700000 700000700000E00000E00000E00000E00000E00001C00001C00001C00001C00001C00003800003 8000038000030000030000070000C60000E60000CC0000780000>20 37 -1 8 13]102 dc[<00 F3018F030F06070E0E0C0E1C0E1C0E381C381C381C381C383830383038187818F00F7000700070 00E000E0C0C0E1C0C3007E00>16 26 3 8 19]103 dc[<0FC00001C00001C00003800003800003 80000380000700000700000700000700000E78000E8C000F0E000E0E001C0E001C0E001C0E001C 0E00381C00381C00381C00383800703880703880707080707100E03200601C00>17 29 3 0 21] 104 dc[<01800380010000000000000000000000000000001C002600470047008E008E000E001C 001C001C0038003800710071007100720072003C00>9 28 4 0 13]105 dc[<0FC00001C00001 C0000380000380000380000380000700000700000700000700000E0F000E11000E23800E43801C 83001C80001D00001E00003F800039C00038E00038E00070E20070E20070E20070E400E0640060 3800>17 29 3 0 19]107 dc[<1F800380038007000700070007000E000E000E000E001C001C00 1C001C0038003800380038007000700070007000E400E400E400E40068003800>9 29 4 0 11] 108 dc[<3C1E0780266318C04683A0E04703C0E08E0380E08E0380E00E0380E00E0380E01C0701 C01C0701C01C0701C01C070380380E0388380E0388380E0708380E0710701C0320300C01C0>29 18 4 0 34]109 dc[<3C3C002646004687004707008E07008E07000E07000E07001C0E001C0E00 1C0E001C1C00381C40381C40383840383880701900300E00>18 18 4 0 23]110 dc[<01E00718 0C0C180C380C300E700E700EE01CE01CE01CE018E038E030E06060C031801E00>15 18 5 0 21] 111 dc[<07870004D98008E0C008E0C011C0E011C0E001C0E001C0E00381C00381C00381C00381 800703800703000707000706000E8C000E70000E00000E00001C00001C00001C00001C00003C00 00FF8000>19 26 1 8 21]112 dc[<3C3C26C2468747078E068E000E000E001C001C001C001C00 380038003800380070003000>16 18 4 0 18]114 dc[<01F006080C080C1C18181C001F001FC0 0FF007F0007800386030E030C030806060C01F00>14 18 3 0 17]115 dc[<00C001C001C001C0 0380038003800380FFE00700070007000E000E000E000E001C001C001C001C0038403840384038 8019000E00>11 26 3 0 14]116 dc[<1E0300270700470700470700870E00870E000E0E000E0E 001C1C001C1C001C1C001C1C003838803838801838801839001C5900078E00>17 18 4 0 22] 117 dc[<1E01832703874703874703838707018707010E07010E07011C0E021C0E021C0E021C0E 04180C04181C04181C081C1C100C263007C3C0>24 18 4 0 28]119 dc[<070E0019910010E380 20E38041C30041C00001C00001C000038000038000038000038000070200670200E70400CB0400 8B080070F000>17 18 3 0 19]120 dc[<1E03270747074707870E870E0E0E0E0E1C1C1C1C1C1C 1C1C38383838183818381C7007F00070007000E0E0C0E1C0818047003C00>16 26 4 8 20]121 dc[<038207C20FEC08381008001000200040008001000200040008081008383067F043E081C0> 15 18 3 0 17]122 dc dfe /fg df[<1C007F007F00FF80FFC0FFC07FC07FC01CC000C000C001 80018001800300030006000C00180030002000>10 21 5 12 19]44 dc[<000E00001E00007E00 07FE00FFFE00FFFE00F8FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE0000FE0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE>23 39 5 0 34]49 dc[<00FF800003FFF0000FFFFC001F03FE003800FF007C007F80FE003FC0FF003FC0FF003FE0FF 001FE0FF001FE07E001FE03C003FE000003FE000003FC000003FC000007F8000007F000000FE00 0000FC000001F8000003F0000003E00000078000000F0000001E0000003C00E0007000E000E000 E001C001C0038001C0070001C00FFFFFC01FFFFFC03FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFF FF80>27 39 3 0 34]50 dc[<007F800003FFF00007FFFC000F81FE001F00FF003F80FF003F80 7F803F807F803F807F801F807F800F007F800000FF000000FF000000FE000001FC000001F80000 07F00000FFC00000FFF0000001FC0000007E0000007F0000007F8000003FC000003FC000003FE0 00003FE03C003FE07E003FE0FF003FE0FF003FE0FF003FC0FF007FC07E007F807C007F003F01FE 001FFFFC0007FFF00000FF8000>27 39 3 0 34]51 dc[<00000E0000001E0000003E0000007E 000000FE000000FE000001FE000003FE0000077E00000E7E00000E7E00001C7E0000387E000070 7E0000E07E0000E07E0001C07E0003807E0007007E000E007E000E007E001C007E0038007E0070 007E00E0007E00FFFFFFF8FFFFFFF8FFFFFFF80000FE000000FE000000FE000000FE000000FE00 0000FE000000FE000000FE00007FFFF8007FFFF8007FFFF8>29 39 2 0 34]52 dc[<0C000300 0F803F000FFFFE000FFFFC000FFFF8000FFFF0000FFFE0000FFFC0000FFE00000E0000000E0000 000E0000000E0000000E0000000E0000000E7FC0000FFFF8000F80FC000E003E000C003F000000 1F8000001FC000001FC000001FE000001FE018001FE07C001FE0FE001FE0FE001FE0FE001FE0FE 001FC0FC001FC078003F8078003F803C007F001F01FE000FFFF80003FFF00000FF8000>27 39 3 0 34]53 dc[<0007F000003FFC0000FFFE0001FC0F0003F01F8007E03F800FC03F801FC03F801F 803F803F801F003F8000007F0000007F0000007F000000FF000000FF0FC000FF3FF800FF707C00 FFC03E00FFC03F00FF801F80FF801FC0FF001FC0FF001FE0FF001FE0FF001FE07F001FE07F001F E07F001FE07F001FE03F001FE03F001FC01F801FC01F803F800FC03F0007E07E0003FFFC0000FF F000003FC000>27 39 3 0 34]54 dc[<000003800000000007C00000000007C0000000000FE0 000000000FE0000000000FE0000000001FF0000000001FF0000000003FF8000000003FF8000000 003FF80000000073FC0000000073FC00000000F3FE00000000E1FE00000000E1FE00000001C0FF 00000001C0FF00000003C0FF80000003807F80000007807FC0000007003FC0000007003FC00000 0E003FE000000E001FE000001E001FF000001C000FF000001FFFFFF000003FFFFFF800003FFFFF F80000780007FC0000700003FC0000700003FC0000E00001FE0000E00001FE0001E00001FF0001 C00000FF0001C00000FF00FFFE001FFFFEFFFE001FFFFEFFFE001FFFFE>47 41 2 0 52]65 dc[ 41 41 3 0 49]66 dc[<00003FF001800003FFFE0380000FFF FF8780003FF007DF8000FF8001FF8001FE00007F8003FC00003F8007F000001F800FF000000F80 1FE0000007801FE0000007803FC0000007803FC0000003807FC0000003807F80000003807F8000 000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000 FF8000000000FF8000000000FF80000000007F80000000007F80000000007FC0000003803FC000 0003803FC0000003801FE0000003801FE0000007000FF00000070007F000000E0003FC00001E00 01FE00003C0000FF8000F800003FF007E000000FFFFFC0000003FFFF000000003FF80000>41 41 4 0 50]67 dc[45 41 3 0 53]68 dc[36 41 3 0 43]70 dc[<00007FE003000003FFFC0700001FFFFF0F00003FF00FFF0000FF80 01FF0001FE0000FF0003F800003F0007F000003F000FF000001F001FE000000F001FE000000F00 3FC000000F003FC0000007007FC0000007007F80000007007F8000000000FF8000000000FF8000 000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000 FF8001FFFFF87F8001FFFFF87F8001FFFFF87FC00000FF003FC00000FF003FC00000FF001FE000 00FF001FE00000FF000FF00000FF0007F00000FF0003F80000FF0001FE0000FF0000FF8001FF00 003FF007BF00001FFFFF1F000003FFFE0F0000007FF00300>45 41 4 0 54]71 dc[47 41 3 0 54]72 dc[22 41 2 0 26]73 dc[47 41 3 0 54]75 dc[58 41 3 0 65]77 dc[47 41 3 0 54]78 dc[<0000FFE000000007FF FC0000003FC07F8000007F001FC00001FC0007F00003F80003F80007F00001FC000FF00001FE00 1FE00000FF001FE00000FF003FC000007F803FC000007F807FC000007FC07F8000003FC07F8000 003FC07F8000003FC0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0 FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE07F8000003FC07FC000 007FC07FC000007FC03FC000007F803FC000007F801FE00000FF001FE00000FF000FF00001FE00 07F00001FC0003F80003F80001FC0007F00000FF001FE000003FC07F8000000FFFFE00000000FF E00000>43 41 4 0 52]79 dc[39 41 3 0 47]80 dc[48 41 3 0 52]82 dc[<007F806003FFF0E007FFF9E00F807FE01F001FE0 3E0007E07C0003E07C0001E0FC0001E0FC0001E0FC0000E0FE0000E0FE0000E0FF000000FFC000 007FFE00007FFFE0003FFFFC001FFFFE000FFFFF8007FFFFC003FFFFE000FFFFE00007FFF00000 7FF000000FF8000007F8000003F8600001F8E00001F8E00001F8E00001F8F00001F0F00001F0F8 0003F0FC0003E0FF0007C0FFE01F80F3FFFF00E0FFFE00C01FF000>29 41 4 0 38]83 dc[<7F FFFFFFFFC07FFFFFFFFFC07FFFFFFFFFC07F803FC03FC07E003FC007C078003FC003C078003FC0 03C070003FC001C0F0003FC001E0F0003FC001E0E0003FC000E0E0003FC000E0E0003FC000E0E0 003FC000E0E0003FC000E000003FC0000000003FC0000000003FC0000000003FC0000000003FC0 000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000 003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0 000000003FC0000000003FC0000000003FC0000000003FC00000007FFFFFE000007FFFFFE00000 7FFFFFE000>43 40 2 0 48]84 dc[<01FF800007FFF0000F81F8001FC07E001FC07E001FC03F 000F803F8007003F8000003F8000003F8000003F80000FFF8000FFFF8007FC3F800FE03F803F80 3F803F003F807F003F80FE003F80FE003F80FE003F80FE003F807E007F807F00DF803F839FFC0F FF0FFC01FC03FC>30 27 2 0 33]97 dc[33 42 2 0 38]98 dc[<001FF80000FFFE0003F01F0007E03F800FC03F801F803F803F801F007F800E007F00 00007F000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000007F0000007F 0000007F8000003F8001C01F8001C00FC0038007E0070003F01E0000FFFC00001FE000>26 27 2 0 31]99 dc[<00003FF80000003FF80000003FF800000003F800000003F800000003F800000003 F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8000000 03F800001FE3F80000FFFBF80003F03FF80007E00FF8000FC007F8001F8003F8003F8003F8007F 0003F8007F0003F8007F0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800 FF0003F800FF0003F8007F0003F8007F0003F8007F0003F8003F8003F8001F8003F8000F8007F8 0007C00FF80003F03BFF8000FFF3FF80003FC3FF80>33 42 2 0 38]100 dc[<003FE00001FFF8 0003F07E0007C01F000F801F801F800F803F800FC07F000FC07F0007C07F0007E0FF0007E0FF00 07E0FFFFFFE0FFFFFFE0FF000000FF000000FF0000007F0000007F0000007F0000003F8000E01F 8000E00FC001C007E0038003F81F0000FFFE00001FF000>27 27 2 0 32]101 dc[<0007F0003F FC00FE3E01F87F03F87F03F07F07F07F07F03E07F00007F00007F00007F00007F00007F00007F0 00FFFFC0FFFFC0FFFFC007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0 0007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0007FFF807FFF 807FFF80>24 42 2 0 21]102 dc[<00FF81F003FFE7F80FC1FE7C1F80FC7C1F007C383F007E10 7F007F007F007F007F007F007F007F007F007F007F007F003F007E001F007C001F80FC000FC1F8 001FFFE00018FF800038000000380000003C0000003E0000003FFFF8001FFFFF001FFFFF800FFF FFC007FFFFE01FFFFFF03E0007F07C0001F8F80000F8F80000F8F80000F8F80000F87C0001F03C 0001E01F0007C00FC01F8003FFFE00007FF000>30 40 2 13 34]103 dc[33 42 3 0 38]104 dc[<07000FC01FE03FE03FE03FE01FE00FC00700000000 0000000000000000000000FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE>15 43 3 0 20]105 dc[31 42 2 0 36]107 dc[15 42 3 0 20]108 dc[53 27 3 0 58] 109 dc[33 27 3 0 38]110 dc[<003FE00001FF FC0003F07E000FC01F801F800FC03F800FE03F0007E07F0007F07F0007F07F0007F0FF0007F8FF 0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F87F0007F07F0007F03F800FE0 3F800FE01F800FC00FC01F8007F07F0001FFFC00003FE000>29 27 2 0 34]111 dc[33 39 2 12 38]112 dc[24 27 2 0 28]114 dc[<03FE300FFFF01E03F03800F0700070F00070 F00070F80070FC0000FFE0007FFE007FFF803FFFE01FFFF007FFF800FFF80003FC0000FC60007C E0003CF0003CF00038F80038FC0070FF01E0F7FFC0C1FF00>22 27 2 0 27]115 dc[<00700000 700000700000700000F00000F00000F00001F00003F00003F00007F0001FFFF0FFFFF0FFFFF007 F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007 F03807F03807F03807F03807F03807F03803F03803F87001F86000FFC0001F80>21 38 1 0 27] 116 dc[33 27 3 0 38]117 dc[33 27 1 0 36]118 dc[47 27 1 0 50]119 dc [33 39 1 12 36]121 dc dfe /fh df[<007E1F0001C1B1800303E3C00703C3C00E03C1800E 01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC000E01C0000E01C0000E01C000 0E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0 000E01C0000E01C0000E01C0007F87FC00>26 29 0 0 24]11 dc[<007E0001C1800301800703 C00E03C00E01800E00000E00000E00000E00000E0000FFFFC00E01C00E01C00E01C00E01C00E01 C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07F87F8>21 29 0 0 23]12 dc[<007FC001C1C00303C00703C00E01C00E01C00E01C00E01C00E01C00E01C0 0E01C0FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0 0E01C00E01C00E01C00E01C00E01C07FCFF8>21 29 0 0 23]13 dc[<003F07E00001C09C1800 0380F018000701F03C000E01E03C000E00E018000E00E000000E00E000000E00E000000E00E000 000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E0 1C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00 E01C000E00E01C000E00E01C007FC7FCFF80>33 29 0 0 35]14 dc[<003F07FC0001C0DC1C00 0381F03C000701F03C000E01E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C 000E00E01C00FFFFFFFC000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E0 1C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00 E01C000E00E01C000E00E01C007FC7FCFF80>33 29 0 0 35]15 dc[<6060F0F0F8F868680808 0808080810101010202040408080>13 12 1 -17 21]34 dc[<0F0000C0188000C03060038070 3807006027FB00E0100600E0100C00E0100C00E0101800E0101800E0103000E010600060206000 7020C00030418000188180000F0303C00006062000060C10000C1C080018180800183804003038 04006038040060380400C0380400C03804018038040300180803001C0806000C100C0006200400 03C0>30 33 2 2 35]37 dc[<00E0000001900000030800000308000007080000070800000708 0000070800000710000007100000072000000740000003C03FE003800F00038006000380040005 C0040009C0080010E0100030E010006070200060702000E0384000E03C4000E01C8000E00F0020 E0070020700780403009C0401830E18007C03E00>27 31 2 1 32]38 dc[<60F0F86808080810 10204080>5 12 4 -17 12]39 dc[<004000800100020006000C000C0018001800300030007000 600060006000E000E000E000E000E000E000E000E000E000E000E000E000600060006000700030 003000180018000C000C0006000200010000800040>10 42 3 11 16]40 dc[<80004000200010 0018000C000C000600060003000300038001800180018001C001C001C001C001C001C001C001C0 01C001C001C001C0018001800180038003000300060006000C000C0018001000200040008000> 10 42 2 11 16]41 dc[<60F0F0701010101020204080>4 12 4 8 12]44 dc[11 2 0 -8 14]45 dc[<60F0F060>4 4 4 0 12]46 dc[<00010003000600060006000C000C000C0018 001800180030003000300060006000C000C000C0018001800180030003000300060006000C000C 000C00180018001800300030003000600060006000C000C000>16 41 2 10 21]47 dc[<03C00C 301818300C300C700E60066006E007E007E007E007E007E007E007E007E007E007E007E007E007 60066006700E300C300C18180C3007E0>16 29 2 1 21]48 dc[<030007003F00C70007000700 070007000700070007000700070007000700070007000700070007000700070007000700070007 000F80FFF8>13 28 4 0 21]49 dc[<07C01830201C400C400EF00FF80FF807F8077007000F00 0E000E001C001C00380070006000C00180030006010C01180110023FFE7FFEFFFE>16 28 2 0 21]50 dc[<07E01830201C201C781E780E781E381E001C001C00180030006007E00030001C001C 000E000F000F700FF80FF80FF80FF00E401C201C183007E0>16 29 2 1 21]51 dc[<000C0000 0C00001C00003C00003C00005C0000DC00009C00011C00031C00021C00041C000C1C00081C0010 1C00301C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C00001C00001C0001 FFC0>18 28 1 0 21]52 dc[<300C3FF83FF03FC020002000200020002000200023E024302818 301C200E000E000F000F000F600FF00FF00FF00F800E401E401C2038187007C0>16 29 2 1 21] 53 dc[<00F0030C06040C0E181E301E300C700070006000E3E0E430E818F00CF00EE006E007E0 07E007E007E007600760077006300E300C18180C3003E0>16 29 2 1 21]54 dc[<4000007FFF 807FFF007FFF0040020080040080040080080000100000100000200000600000400000C00000C0 0001C0000180000180000380000380000380000380000780000780000780000780000780000780 00030000>17 29 2 1 21]55 dc[<03E00C301008200C20066006600660067006780C3E083FB0 1FE007F007F818FC307E601E600FC007C003C003C003C00360026004300C1C1007E0>16 29 2 1 21]56 dc[<03C00C301818300C700C600EE006E006E007E007E007E007E0076007700F300F1817 0C2707C700060006000E300C780C78187010203030C00F80>16 29 2 1 21]57 dc[<60F0F060 0000000000000000000060F0F060>4 18 4 0 12]58 dc[<000600000006000000060000000F00 00000F0000000F00000017800000178000001780000023C0000023C0000023C0000041E0000041 E0000041E0000080F0000080F0000180F8000100780001FFF80003007C0002003C0002003C0006 003E0004001E0004001E000C001F001E001F00FF80FFF0>28 29 1 0 31]65 dc[24 28 2 0 29]66 dc[<001F808000E0618001801980070007800E0003801C0003801C0001 8038000180780000807800008070000080F0000000F0000000F0000000F0000000F0000000F000 0000F0000000F0000000700000807800008078000080380000801C0001001C0001000E00020007 0004000180080000E03000001FC000>25 30 2 1 30]67 dc[27 28 2 0 32]68 dc[ 24 28 2 0 28]69 dc[22 28 2 0 27]70 dc[<001F808000E0618001801980 070007800E0003801C0003801C00018038000180780000807800008070000080F0000000F00000 00F0000000F0000000F0000000F0000000F000FFF0F0000F807000078078000780780007803800 07801C0007801C0007800E00078007000B800180118000E06080001F8000>28 30 2 1 33]71 dc[26 28 2 0 31]72 dc[12 28 1 0 15]73 dc[<1FFF00F8 007800780078007800780078007800780078007800780078007800780078007800780078007870 78F878F878F878F0F040E021C01F00>16 29 1 1 21]74 dc[28 28 2 0 32]75 dc[ 21 28 2 0 26]76 dc[33 28 2 0 38]77 dc[26 28 2 0 31]78 dc[<003F800000E0E0000380380007001C000E000E001C0007003C000780 38000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001 E0F00001E0F00001E0700001C0780003C0780003C0380003803C0007801C0007000E000E000700 1C000380380000E0E000003F8000>27 30 2 1 32]79 dc[23 28 2 0 28] 80 dc[<003F800000E0E0000380380007001C000E000E001C0007003C00078038000380780003 C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F000 01E0700001C0780003C0780003C0380003803C0E07801C1107000E208E0007205C0003A0780000 F0E020003FE0200000602000003060000038E000003FC000003FC000001F8000000F00>27 37 2 8 32]81 dc[28 29 2 1 31]82 dc[<07E0801C1980300580700380600180E00180E00080E000 80E00080F00000F800007C00007FC0003FF8001FFE0007FF0000FF80000F800007C00003C00001 C08001C08001C08001C0C00180C00180E00300D00200CC0C0083F800>18 30 2 1 23]83 dc[< 7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F0020000F00 00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F 0000000F0000000F0000000F0000000F0000000F0000000F0000001F800003FFFC00>27 28 1 0 30]84 dc[26 29 2 1 31]85 dc[28 29 1 1 31]86 dc[40 29 1 1 43]87 dc[<7FF0FFC00FC03E000780180003C0 180003E0100001E0200001F0600000F0400000788000007D8000003D0000001E0000001F000000 0F0000000F8000000F80000013C0000023E0000021E0000041F00000C0F8000080780001007C00 03003C0002001E0006001F001F003F80FFC0FFF0>28 28 1 0 31]88 dc[30 28 0 0 31]89 dc[7 41 4 10 12]91 dc[<08081010202040404040808080808080B0B0F8F878783030>13 12 6 -17 21]92 dc[7 41 0 10 12]93 dc[<1FC000307000783800781C00301C00001C0000 1C0001FC000F1C00381C00701C00601C00E01C40E01C40E01C40603C40304E801F8700>18 18 2 0 21]97 dc[19 29 1 0 23]98 dc[<07E00C301878307870306000E0 00E000E000E000E000E00060007004300418080C3007C0>14 18 2 0 18]99 dc[<003F000007 0000070000070000070000070000070000070000070000070000070003E7000C1700180F003007 00700700600700E00700E00700E00700E00700E00700E00700600700700700300700180F000C37 0007C7E0>19 29 2 0 23]100 dc[<03E00C301818300C700E6006E006FFFEE000E000E000E000 60007002300218040C1803E0>15 18 1 0 18]101 dc[<00F8018C071E061E0E0C0E000E000E00 0E000E000E00FFE00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E 007FE0>15 29 0 0 13]102 dc[<00038003C4C00C38C01C3880181800381C00381C00381C0038 1C001818001C38000C300013C0001000003000001800001FF8001FFF001FFF803003806001C0C0 00C0C000C0C000C06001803003001C0E0007F800>18 28 1 9 21]103 dc[20 29 1 0 23]104 dc[<18003C003C0018000000000000000000000000000000FC001C001C 001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80>9 29 1 0 12] 105 dc[<00C001E001E000C000000000000000000000000000000FE000E000E000E000E000E000 E000E000E000E000E000E000E000E000E000E000E000E000E000E000E060E0F0C0F1C061803E00 >11 37 -3 8 13]106 dc[19 29 1 0 22]107 dc[9 29 1 0 12]108 dc[33 18 1 0 36]109 dc[20 18 1 0 23]110 dc[<03F0000E1C00 180600300300700380600180E001C0E001C0E001C0E001C0E001C0E001C0600180700380300300 1806000E1C0003F000>18 18 1 0 21]111 dc[19 26 1 8 23]112 dc[<03C1000C3300180B 00300F00700700700700E00700E00700E00700E00700E00700E00700600700700700300F00180F 000C370007C700000700000700000700000700000700000700000700003FE0>19 26 2 8 22] 113 dc[13 18 1 0 16]114 dc[<1F9030704030C010C010E010F8007F803FE00FF000F880388018C0 18C018E010D0608FC0>13 18 1 0 16]115 dc[<04000400040004000C000C001C003C00FFE01C 001C001C001C001C001C001C001C001C001C101C101C101C101C100C100E2003C0>12 26 1 0 16]116 dc[20 18 1 0 23]117 dc[19 18 1 0 22]118 dc[27 18 1 0 30]119 dc[<7F8FF00F03800F0300070200038400 01C80001D80000F00000700000780000F800009C00010E00020E000607000403801E07C0FF0FF8 >21 18 0 0 22]120 dc[19 26 1 8 22]121 dc[<7FFC70386038407040F040E041C003C003 8007000F040E041C043C0C380870087038FFF8>14 18 1 0 18]122 dc[20 1 0 -11 21]123 dc dfe /fi df[<00038000000380000007C0000007C0000007C000000FE000000FE000 001FF000001BF000001BF0000031F8000031F8000061FC000060FC0000E0FE0000C07E0000C07E 0001803F0001FFFF0003FFFF8003001F8003001F8006000FC006000FC00E000FE00C0007E0FFC0 7FFEFFC07FFE>31 28 2 0 36]65 dc[<0FF8001C1E003E0F803E07803E07C01C07C00007C000 7FC007E7C01F07C03C07C07C07C0F807C0F807C0F807C0780BC03E13F80FE1F8>21 18 1 0 23] 97 dc[23 29 1 0 27]98 dc[<03FC000E0E001C1F003C1F00781F00 780E00F80000F80000F80000F80000F80000F800007800007801803C01801C03000E0E0003F800 >17 18 2 0 21]99 dc[17 18 1 0 20]114 dc[<1FD8 30786018E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830CFC0>14 18 2 0 19]115 dc[<0300030003000300070007000F000F003FFCFFFC1F001F001F001F001F001F001F 001F001F001F0C1F0C1F0C1F0C0F08079803F0>14 26 1 0 19]116 dc dfe /fj df[<3078FC FC7830>6 6 10 0 26]46 dc[<003E0001FF8003FFC007C1E00F00E01E0F703C3FF0387FF07070 F870E07870E078E1C038E1C038E1C038E1C038E1C038E1C038E1C038E1C03870E07070E0707070 E0387FE03C3FC01E0F000F003807C0F803FFF001FFE0003F00>21 30 2 0 26]64 dc[21 30 2 0 26]66 dc[<1FF0003FFC007FFE00780F0030070000038000 0380007F8007FF801FFF803F8380780380700380E00380E00380E00380700780780F803FFFFC1F FDFC07F0FC>22 21 3 0 26]97 dc[<00FF8003FFC00FFFE01F01E03C00C07800007000007000 00E00000E00000E00000E00000E000007000007000007800703C00701F01F00FFFE003FFC000FE 00>20 21 3 0 26]99 dc[<001FC0001FC0001FC00001C00001C00001C00001C00001C00001C0 01F1C007FDC00FFFC01E0FC03C07C07803C07001C0E001C0E001C0E001C0E001C0E001C0E001C0 E001C07003C07003C03807C03E0FC01FFFFC07FDFC01F1FC>22 30 2 0 26]100 dc[<01F80007 FF000FFF801E07C03C01C07800E07000E0E00070E00070FFFFF0FFFFF0FFFFF0E0000070000070 00007800703C00701F01F00FFFE003FFC000FE00>20 21 3 0 26]101 dc[23 30 1 0 26]104 dc[<00C00001E00001E00000C000000000000000000000000000 0000000000007FE0007FE0007FE00000E00000E00000E00000E00000E00000E00000E00000E000 00E00000E00000E00000E00000E00000E00000E0007FFF80FFFFC07FFF80>18 31 4 0 26]105 dc[<7CE0E000FFFBF8007FFFF8001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C001C1C1C001C 1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C007F1F1F00 FF9F9F807F1F1F00>25 21 0 0 26]109 dc[23 21 1 0 26]110 dc[<7F83F0FF8FF87FBFFC03FC3C03F01803E00003C00003C000 0380000380000380000380000380000380000380000380000380000380007FFF00FFFF007FFF00 >22 21 2 0 26]114 dc[<07FB801FFF807FFF80780780E00380E00380E003807800007FC0003F FC0007FE00003F800007806001C0E001C0E001C0F003C0FC0780FFFF00EFFE00E3F800>18 21 4 0 26]115 dc[23 21 1 0 26] 117 dc dfe /fk df[<70F8FCFC7404040404080810102040>6 15 4 10 14]44 dc[<70F8F8F8 70>5 5 4 0 14]46 dc[<01F000071C000C06001803003803803803807001C07001C07001C070 01C0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F0 01E0F001E07001C07001C07001C07803C03803803803801C07000C0600071C0001F000>19 34 2 1 24]48 dc[<008003800F80F38003800380038003800380038003800380038003800380038003 800380038003800380038003800380038003800380038003800380038007C0FFFE>15 33 4 0 24]49 dc[<03F0000C1C001007002007804003C04003C08003E0F003E0F801E0F801E0F801E020 03E00003E00003C00003C0000780000700000E00001C0000180000300000600000C00001800001 00000200200400200800201800603000403FFFC07FFFC0FFFFC0>19 33 2 0 24]50 dc[<03F8 000C1E001007002007804007C07807C07803C07807C03807C0000780000780000700000F00000E 0000380003F000001C00000F000007800007800003C00003C00003E02003E07003E0F803E0F803 E0F003C04003C0400780200780100F000C1C0003F000>19 34 2 1 24]51 dc[<1000801E0700 1FFF001FFE001FF80013E00010000010000010000010000010000010000010F800130E00140700 1803801003800001C00001C00001E00001E00001E00001E07001E0F001E0F001E0E001C08001C0 4003C04003802007001006000C1C0003F000>19 34 2 1 24]53 dc[<01F000060C000C060018 0700380380700380700380F001C0F001C0F001C0F001E0F001E0F001E0F001E0F001E07001E070 03E03803E01805E00C05E00619E003E1E00001C00001C00001C000038000038030030078070078 0600700C002018001030000FC000>19 34 2 1 24]57 dc[<0001800000018000000180000003 C0000003C0000003C0000005E0000005E000000DF0000008F0000008F0000010F8000010780000 10780000203C0000203C0000203C0000401E0000401E0000401E0000800F0000800F0000FFFF00 0100078001000780030007C0020003C0020003C0040003E0040001E0040001E00C0000F00C0000 F03E0001F8FF800FFF>32 35 2 0 37]65 dc[29 34 2 0 35]66 dc[<0007E0100038183000E0063001C00170038000F0070000F00E000070 1E0000701C0000303C0000303C0000307C0000107800001078000010F8000000F8000000F80000 00F8000000F8000000F8000000F8000000F800000078000000780000107C0000103C0000103C00 00101C0000201E0000200E000040070000400380008001C0010000E0020000381C000007E000> 28 36 3 1 35]67 dc[27 34 2 0 32]70 dc[ 40 34 2 0 45]77 dc[32 34 2 0 37]78 dc[27 34 2 0 33]80 dc[<03F0200C0C601802603001E07000E0600060E00060E00060E00020E00020E000 20F00000F000007800007F00003FF0001FFE000FFF0003FF80003FC00007E00001E00000F00000 F0000070800070800070800070800070C00060C00060E000C0F000C0C80180C6070081FC00>20 36 3 1 27]83 dc[32 35 2 1 37] 85 dc[<0FE0001838003C0C003C0E0018070000070000070000070000FF0007C7001E07003C07 00780700700700F00708F00708F00708F00F087817083C23900FC1E0>21 21 2 0 24]97 dc[< 0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0000 0E00000E1F000E61C00E80600F00300E00380E003C0E001C0E001E0E001E0E001E0E001E0E001E 0E001E0E001E0E001C0E003C0E00380F00700C80600C41C0083F00>23 35 1 0 27]98 dc[<01 FE000703000C07801C0780380300780000700000F00000F00000F00000F00000F00000F00000F0 00007000007800403800401C00800C010007060001F800>18 21 2 0 22]99 dc[<0000E0000F E00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E001F8 E00704E00C02E01C01E03800E07800E07000E0F000E0F000E0F000E0F000E0F000E0F000E0F000 E07000E07800E03800E01801E00C02E0070CF001F0FE>23 35 2 0 27]100 dc[<01FC00070700 0C03801C01C03801C07801E07000E0F000E0FFFFE0F00000F00000F00000F00000F00000700000 7800203800201C00400E008007030000FC00>19 21 1 0 22]101 dc[<003C00C6018F038F030F 070007000700070007000700070007000700FFF807000700070007000700070007000700070007 000700070007000700070007000700070007807FF8>16 35 0 0 15]102 dc[<00007001F19807 1E180E0E181C07001C07003C07803C07803C07803C07801C07001C07000E0E000F1C0019F00010 00001000001800001800001FFE000FFFC00FFFE03800F0600030400018C00018C00018C0001860 00306000303800E00E038003FE00>21 33 1 11 24]103 dc[<0E0000FE00001E00000E00000E 00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E1F800E60C00E80E00F 00700F00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E 00700E00700E00700E0070FFE7FF>24 35 1 0 27]104 dc[<1C001E003E001E001C0000000000 0000000000000000000000000E00FE001E000E000E000E000E000E000E000E000E000E000E000E 000E000E000E000E000E000E00FFC0>10 34 1 0 14]105 dc[<0E00FE001E000E000E000E000E 000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 0E000E000E000E000E000E000E000E00FFE0>11 35 1 0 14]108 dc[<0E1FC07F00FE60E18380 1E807201C00F003C00E00F003C00E00E003800E00E003800E00E003800E00E003800E00E003800 E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E0038 00E00E003800E00E003800E0FFE3FF8FFE>39 21 1 0 42]109 dc[<0E1F80FE60C01E80E00F00 700F00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00 700E00700E00700E0070FFE7FF>24 21 1 0 27]110 dc[<01FC000707000C01801800C03800E0 700070700070F00078F00078F00078F00078F00078F00078F000787000707800F03800E01C01C0 0E038007070001FC00>21 21 1 0 24]111 dc[<0E1F00FE61C00E80600F00700E00380E003C0E 001C0E001E0E001E0E001E0E001E0E001E0E001E0E001E0E003C0E003C0E00380F00700E80E00E 41C00E3F000E00000E00000E00000E00000E00000E00000E00000E00000E0000FFE000>23 31 1 10 27]112 dc[<0E3CFE461E8F0F0F0F060F000E000E000E000E000E000E000E000E000E000E00 0E000E000E000F00FFF0>16 21 1 0 19]114 dc[<0F8830786018C018C008C008E008F0007F80 3FE00FF001F8003C801C800C800CC00CC008E018D0308FC0>14 21 2 0 19]115 dc[<02000200 020002000600060006000E001E003E00FFF80E000E000E000E000E000E000E000E000E000E000E 000E040E040E040E040E040E040708030801F0>14 31 1 0 19]116 dc[<0E0070FE07F01E00F0 0E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070 0E00F00E00F006017003827800FC7F>24 21 1 0 27]117 dc[23 21 1 0 26]118 dc[23 31 1 10 26]121 dc dfe /fl df[17 3 1 -14 22]45 dc[39 49 4 0 47]66 dc[<00003FE0010001FFF8030007F01E03001F80030700 3E000087007800004F00F000002F01E000001F03C000000F078000000F0F800000070F00000007 1F000000031E000000033E000000033C000000017C000000017C000000017C0000000178000000 00F800000000F800000000F800000000F800000000F800000000F800000000F800000000F80000 0000F800000000F800000000F80000000078000000007C000000007C000000017C000000013C00 0000013E000000011E000000011F000000020F000000020F80000006078000000403C000000801 E000000800F00000100078000020003E0000C0001F8003800007F00F000001FFFC0000003FE000 >40 51 4 1 48]67 dc[17 49 3 0 23]73 dc[53 49 4 0 61]77 dc[<00003FC000000001C03800000007000E0000001C000380 0000380001C00000F00000F00001E00000780003C000003C00038000001C00078000001E000F00 00000F000F0000000F001E00000007801E00000007803C00000003C03C00000003C07C00000003 E07C00000003E07800000001E07800000001E0F800000001F0F800000001F0F800000001F0F800 000001F0F800000001F0F800000001F0F800000001F0F800000001F0F800000001F0F800000001 F0F800000001F07C00000003E07C00000003E07C00000003E07C00000003E03C00000003C03E00 000007C01E00000007801E00000007800F0000000F000F0000000F00078000001E0003C000003C 0003C000003C0001E00000780000F00000F00000380001C000001C000380000007000E00000001 E078000000003FC00000>44 51 4 1 52]79 dc[37 49 4 0 45] 80 dc[<007F802001FFE02007C078600F001C601E0006E03C0003E0380001E0780000E0700000 E070000060F0000060F0000060F0000020F0000020F0000020F8000020F80000007C0000007E00 00003F0000003FC000001FF800000FFF800007FFF80003FFFC0000FFFF00000FFF800000FFC000 001FE0000007E0000003F0000001F0000000F0000000F8000000F8800000788000007880000078 8000007880000078C0000078C0000070E00000F0E00000E0F00000E0F80001C0EC000380C70007 00C1F01E00807FFC00800FF000>29 51 4 1 37]83 dc[<7FFFFFFFFFE07FFFFFFFFFE07E000F 8007E078000F8001E070000F8000E060000F80006040000F80002040000F800020C0000F800030 C0000F80003080000F80001080000F80001080000F80001080000F80001080000F80001080000F 80001000000F80000000000F80000000000F80000000000F80000000000F80000000000F800000 00000F80000000000F80000000000F80000000000F80000000000F80000000000F80000000000F 80000000000F80000000000F80000000000F80000000000F80000000000F80000000000F800000 00000F80000000000F80000000000F80000000000F80000000000F80000000000F80000000000F 80000000000F80000000000F80000000000F80000000000F80000000001FC00000000FFFFF8000 000FFFFF8000>44 49 2 0 48]84 dc[<00FE00000303C0000C00E00010007000100038003C00 3C003E001C003E001E003E001E0008001E0000001E0000001E0000001E00000FFE0000FC1E0003 E01E000F801E001F001E003E001E003C001E007C001E00F8001E04F8001E04F8001E04F8003E04 F8003E0478003E047C005E043E008F080F0307F003FC03E0>30 31 3 0 33]97 dc[<003F8000 E0600380180700040F00041E001E1C003E3C003E7C003E7C0008780000F80000F80000F80000F8 0000F80000F80000F80000F80000F800007800007C00007C00003C00011E00011E00020F000207 000403801800E060003F80>24 31 3 0 29]99 dc[<000001E000003FE000003FE0000003E000 0001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0 000001E0000001E0000001E0000001E0000001E0001F81E000F061E001C019E0078005E00F0003 E00E0003E01E0001E03C0001E03C0001E07C0001E0780001E0F80001E0F80001E0F80001E0F800 01E0F80001E0F80001E0F80001E0F80001E0F80001E0780001E0780001E03C0001E03C0001E01C 0001E01E0003E00E0005E0070009E0038011F000E061FF003F81FF>32 50 3 0 37]100 dc[<00 3F800000E0E0000380380007003C000E001E001E001E001C000F003C000F007C000F0078000F80 78000780F8000780F8000780FFFFFF80F8000000F8000000F8000000F8000000F8000000F80000 00780000007C0000003C0000003C0000801E0000800E0001000F0002000780020001C00C0000F0 3000001FC000>25 31 2 0 29]101 dc[<0007E0001C1000383800707C00E07C01E07C01C03803 C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C000FFFFC0FF FFC003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003 C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003 C00007E0007FFF007FFF00>22 50 1 0 20]102 dc[<000000F0007F030801C1C41C0380E81C07 0070080F0078001E003C001E003C003E003E003E003E003E003E003E003E003E003E003E003E00 1E003C001E003C000F007800070070000780E00009C1C000087F00001800000018000000180000 0018000000180000001C0000000E0000000FFFF80007FFFF0003FFFF800E000FC0180001E03000 00F070000070E0000038E0000038E0000038E0000038E00000387000007070000070380000E01C 0001C00700070001C01C00003FE000>30 47 2 15 33]103 dc[<0780000000FF80000000FF80 0000000F8000000007800000000780000000078000000007800000000780000000078000000007 800000000780000000078000000007800000000780000000078000000007800000000780000000 07800000000780FE00000783078000078C03C000079001E00007A001E00007A000F00007C000F0 0007C000F000078000F000078000F000078000F000078000F000078000F000078000F000078000 F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0000780 00F000078000F000078000F000078000F000078000F000078000F0000FC001F800FFFC1FFF80FF FC1FFF80>33 50 2 0 37]104 dc[<07000F801F801F800F800700000000000000000000000000 000000000000000000000780FF80FF800F80078007800780078007800780078007800780078007 8007800780078007800780078007800780078007800780078007800FC0FFF8FFF8>13 48 2 0 18]105 dc[<07800000FF800000FF8000000F8000000780000007800000078000000780000007 800000078000000780000007800000078000000780000007800000078000000780000007800000 0780000007801FFC07801FFC078007E00780078007800600078004000780080007801000078060 0007808000078100000783800007878000078FC0000793C00007A1E00007C1F0000780F0000780 780007807C0007803C0007803E0007801F0007800F0007800F80078007C0078003C0078003E00F C007F8FFFC0FFFFFFC0FFF>32 50 2 0 35]107 dc[<0780FF80FF800F80078007800780078007 800780078007800780078007800780078007800780078007800780078007800780078007800780 07800780078007800780078007800780078007800780078007800780078007800780078007800F C0FFFCFFFC>14 50 2 0 18]108 dc[<0780FE001FC000FF83078060F000FF8C03C18078000F90 01E2003C0007A001E4003C0007A000F4001E0007C000F8001E0007C000F8001E00078000F0001E 00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000 F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00 078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0 001E00078000F0001E00078000F0001E000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83FFF0> 52 31 2 0 56]109 dc[<0780FE0000FF83078000FF8C03C0000F9001E00007A001E00007A000 F00007C000F00007C000F000078000F000078000F000078000F000078000F000078000F0000780 00F000078000F000078000F000078000F000078000F000078000F000078000F000078000F00007 8000F000078000F000078000F000078000F000078000F000078000F000078000F0000FC001F800 FFFC1FFF80FFFC1FFF80>33 31 2 0 37]110 dc[<001FC00000F0780001C01C00070007000F00 07801E0003C01C0001C03C0001E03C0001E0780000F0780000F0780000F0F80000F8F80000F8F8 0000F8F80000F8F80000F8F80000F8F80000F8F80000F8780000F07C0001F03C0001E03C0001E0 1E0003C01E0003C00F00078007800F0001C01C0000F07800001FC000>29 31 2 0 33]111 dc[< 0781FC00FF860700FF8803C00F9001E007A000F007C00078078000780780003C0780003C078000 3E0780001E0780001F0780001F0780001F0780001F0780001F0780001F0780001F0780001F0780 001F0780003E0780003E0780003C0780007C0780007807C000F007A000F007A001E00798038007 860F000781F8000780000007800000078000000780000007800000078000000780000007800000 0780000007800000078000000FC00000FFFC0000FFFC0000>32 45 2 14 37]112 dc[<0783E0 FF8C18FF907C0F907C07A07C07C03807C00007C00007C000078000078000078000078000078000 078000078000078000078000078000078000078000078000078000078000078000078000078000 0780000FC000FFFE00FFFE00>22 31 2 0 25]114 dc[<01FC100E03301800F0300070600030E0 0030E00010E00010E00010F00010F800007E00003FF0001FFF000FFFC003FFE0003FF00001F800 00F880003C80003C80001CC0001CC0001CE0001CE00018F00038F00030CC0060C301C080FE00> 22 31 2 0 26]115 dc[<00400000400000400000400000400000C00000C00000C00001C00001 C00003C00007C0000FC0001FFFE0FFFFE003C00003C00003C00003C00003C00003C00003C00003 C00003C00003C00003C00003C00003C00003C00003C00003C00003C01003C01003C01003C01003 C01003C01003C01003C01001C02001E02000E0400078C0001F00>20 44 1 0 25]116 dc[33 31 1 0 35]118 dc[ 33 45 1 14 35]121 dc dfe end TeXDict begin @letter %%EndProlog %%Page: 1 1 bop 175 302 a fl(The)22 b(Increasing)f(Irrelev)n(ance)g(of)h(IPC)g(P)n(erfor\ mance)g(for)351 394 y(Microk)o(ernel-Based)f(Op)q(erating)h(Systems)713 520 y fk(Brian)16 b(N.)f(Bershad)603 578 y(Sc)n(ho)r(ol)h(of)h(Computer)e(Science) 609 636 y(Carnegie)h(Mellon)f(Univ)n(ersit)n(y)686 694 y(5000)j(F)l(orb)r(es) e(Av)n(en)n(ue)669 752 y(Pittsburgh,)g(P)l(A)g(15213)580 869 y fj(Brian.Ber)o (sha)o(d@)o(cs.)o(cmu)o(.ed)o(u)736 970 y fk(Marc)n(h)h(10,)f(1992)809 1188 y fi(Abstract)176 1264 y fh(IPC)c(is)f(the)h(glue)g(with)f(whic)o(h)h(tradition\ al)e(op)q(erating)h(system)h(services)h(such)f(as)f(netw)o(orking,)114 1313 y (and)k(\014ling,)f(are)i(pro)o(vided)f(in)g(microk)m(ernel-based)i(op)q(erati\ ng)e(systems.)23 b(Because)17 b(applications)114 1363 y(rely)g(hea)o(vily)f (on)h(cross-address)j(space)f(comm)l(unication,)e(IPC)g(p)r(erformance)g(is)g (often)g(view)o(ed)114 1413 y(as)f(b)q(eing)g(the)g(\\Ac)o(hilles)g(heel")g (of)f(a)h(microk)m(ernel-based)i(op)q(erating)e(system.)24 b(In)16 b(this)g (pap)q(er)g(I)114 1463 y(discuss)d(four)f(reasons)h(wh)n(y)f(IPC)h(p)q(erform\ ance)e(is)h(b)r(ecoming)e(increasingly)i(irrelev)n(an)n(t)h(to)e(o)o(v)o(eral\ l)114 1513 y(system)i(p)r(erformance.)114 1650 y fg(1)69 b(In)n(tro)r(duction) 114 1741 y fh(Microk)n(ernels)12 b(such)e(as)h(V)f([Cheriton)g(84],)g(Chorus) h([Rozier)f(et)h(al.)16 b(88],)9 b(and)i(Mac)o(h)f([Accetta)i(et)f(al.)114 1791 y(86])k(pro)o(vide)h(the)h(infrastructure)h(with)e(whic)o(h)g(other)h (op)q(erating)f(systems)h(such)f(as)g(Unix,)g(MS-)114 1841 y(DOS)10 b(and)g (VMS)g(can)g(b)q(e)h(implemen)l(ted)g(as)f(user-level)g(programs)e([Golub)h (et)i(al.)16 b(90,)9 b(Rashid)g(et)i(al.)114 1890 y(91,)g(Cheriton)h(et)h(al.) k(90,)11 b(Wiecek)i(92].)j(Because)e(applications)d(use)i(cross-address)i(spa\ ce)e(IPC)f(to)114 1940 y(in)n(teract)j(with)d(traditional)g(op)q(erating)h (system)g(services,)i(IPC)f(p)q(erformance)f(has)g(b)q(een)i(though)n(t)114 1990 y(to)g(b)q(e)i(the)f(Ac)o(hilles)g(heel)g(of)f(microk)m(ernel-based)i (systems.)24 b(Ev)o(en)17 b(with)e(the)h(impro)m(v)o(emen)o(ts)g(in)114 2040 y (IPC)11 b(p)q(erformance)g(that)h(ha)o(v)n(e)g(o)q(ccurred)h(in)e(the)h(past) g(5)f(y)o(ears)h([Bershad)g(et)g(al.)17 b(90,)10 b(Dra)o(v)n(es)j(et)f(al.) 114 2090 y(91],)h(microk)n(ernel)j(based)f(systems)g(are)h(still)e(b)q(eliev) o(ed)h(to)g(ha)o(v)o(e)g ff(inher)n(ently)g fh(w)o(orse)g(p)r(erformance)114 2139 y(than)i(their)i(monolithic)c(coun)o(terparts.)32 b(This)17 b(b)q(elief) h(stems)g(from)e(the)i(fact)g(that)g(the)h(system)114 2189 y(call,)11 b(whic) o(h)i(is)f(the)h(mec)o(hanism)e(for)h(in)n(teracting)i(with)e(monolithic)e (op)q(erating)i(systems,)h(such)f(as)0 2236 y 720 2 v 69 2309 a fe(This)i(res\ earch)g(w)n(as)g(sp)r(onsored)g(in)h(part)e(by)g(The)h(Defense)g(Adv)n(anced) h(Researc)o(h)f(Pro)s(jects)f(Agency)m(,)h(Information)0 2355 y(Science)h(and) g(T)l(ec)o(hnology)h(O\016ce,)d(under)i(the)f(title)h(\\Research)f(on)g(P)o (arallel)i(Computing",)f(ARP)m(A)f(Order)g(No.)19 b(7330,)0 2401 y(issued)13 b (by)e(DARP)m(A/CMO)g(under)i(Con)o(tract)f(MD)o(A972-90-C-0035)g(and)h(in)g (part)f(b)o(y)g(the)g(Op)q(en)g(Soft)o(w)o(are)g(F)l(oundation)0 2446 y(\(OSF\ \),)h(and)g(a)g(National)i(Science)f(F)m(oundation)i(Presidential)f(Y)l(oung) f(In)o(v)o(estigator)h(Aw)n(ard.)p eop %%Page: 2 2 bop 114 120 a fh(4.3BSD)10 b([Le\017er)g(et)i(al.)k(89])10 b(and)g(Sprite)i ([Ousterhout)f(et)h(al.)k(88],)10 b(is)g(faster)i(than)f(a)f(cross-address) 114 170 y(space)j(IPC,)f(whic)o(h)g(is)g(ho)o(w)g(applications)f(in)o(teract) i(with)f(user-level)g(op)q(erating)g(system)g(services.)176 220 y(Although)e (IPC)g(latency)g(in)g(microk)m(ernels)i(is)e(slo)n(w)o(er)h(than)f(system)g (call)f(latency)m(,)h(the)h(absolute)114 270 y(di\013erence)j(b)q(et)o(w)o (een)f(them)e(has)i(reac)o(hed)g(the)g(p)q(oin)n(t)f(where)h(it)f(can)g(b)r (e)g(largely)f(ignored.)18 b(In)12 b(other)114 319 y(w)n(ords,)k(IPC)f(p)q (erformance)f(is)h(b)q(ecoming)f(increasingly)g(irrelev)o(an)n(t)h(as)g(a)g (metric)f(with)h(whic)o(h)f(to)114 369 y(assess)h(microk)n(ernel)f(viabilit)m (y)l(.)176 419 y(There)f(are)g(four)f(reasons)i(that)e(IPC)h(p)q(erformance)f (should)g(no)g(longer)g(b)r(e)g(a)g(principal)g(metric)114 469 y(b)o(y)k(whic) o(h)h(one)f(judges)h(the)h(\\goo)q(dness")g(of)e(a)g(particular)g(op)q(eratin\ g)h(system)f(microk)n(ernel,)h(or)114 519 y(ev)o(en)f(a)g(particular)g(approa\ c)o(h)g(to)g(building)f(op)q(erating)h(system)g(microk)m(ernels.)26 b(In)16 b (brief,)g(these)114 568 y(reasons)f(are:)159 637 y(1.)22 b(IPC)14 b(has)g(got\ ten)g(faster)g(faster)h(than)f(the)g(rest)h(of)f(the)g(op)q(erating)g(system.) 159 703 y(2.)22 b(P)o(erformance)13 b(is)h(dominated)e(b)o(y)i(cac)o(hes,)h (not)e(b)o(y)h(address)h(spaces.)159 770 y(3.)22 b(All)13 b(data)g(do)q(es)i (not)f(need)h(to)e(b)q(e)i(marshalled)d(through)i(the)g(k)o(ernel.)159 836 y (4.)22 b(All)13 b(services)i(do)f(not)g(need)h(a)e(hardw)o(are)h(\014rewall.) 176 905 y(The)c(\014rst)g(t)o(w)o(o)f(reasons)h(stem)f(from)f(the)i(ev)o(er-g\ ro)o(wing)f(p)q(erformance)g(im)m(balances)h(whic)o(h)f(exist)114 954 y(in)g (to)q(da)o(y's)h(systems.)16 b(Simply)8 b(stated,)j(IPC)f(mec)o(hanisms)e(are) j(not)f(the)g(p)q(erformance)g(b)q(ottlenecks)114 1004 y(whic)o(h)j(they)h (once)g(w)o(ere.)19 b(Instead,)14 b(there)h(are)f(other,)g(more)e(fundamen)n (tal)h(b)q(ottlenecks,)g(such)g(as)114 1054 y(memory)8 b(transfer)k(sp)r(eed,) g(netw)n(ork)f(latencies,)h(disk)f(sp)r(eed,)h(and)f(cac)o(he)h(managemen)l (t)f(o)o(v)o(erhead.)114 1104 y(The)i(second)i(t)o(w)n(o)e(reasons)i(are)e (due)h(to)f(the)h(maturit)m(y)f(whic)o(h)g(microk)n(ernel-based)h(systems)f (ha)o(v)o(e)114 1154 y(ac)o(hiev)n(ed)20 b(in)e(the)h(last)f(few)h(y)o(ears.) 33 b(Sp)q(eci\014cally)l(,)20 b(in)e(their)h(e\013orts)h(to)e(increase)i(p)q (erformance,)114 1204 y(systems)11 b(builders)h(ha)o(v)n(e)g(disco)o(v)o(ered) g(a)g(collection)f(of)f(techniques)i(whic)o(h)f(can)h(b)q(e)g(used)g(to)f(b)o (ypass,)114 1253 y(or)i(at)h(least)g(\\dance)h(around")e(IPC)h(facilities.) 176 1303 y(In)19 b(the)h(rest)g(of)f(this)g(pap)q(er)g(I)h(expand)f(on)g(the) g(reasons)i(listed)e(ab)q(o)n(v)o(e,)h(and)f(discuss)i(wh)n(y)114 1353 y(w)n (e)e(should)e(stop)h(measuring)e(microk)n(ernel)i(systems)g(b)o(y)f(the)i(sp) q(eed)g(of)e(their)h(round)g(trip)f(IPC)114 1403 y(times.)h(I)c(present)g(exa\ mples)g(and)g(observ)n(ations)g(from)e(the)j(Mac)o(h)f(3.0)f(microk)n(ernel)i (running)f(on)114 1453 y(a)f(collection)h(of)f(arc)o(hitectural)i(platforms)d (to)h(motiv)l(ate)h(and)g(substan)o(tiate)g(the)h(discussion.)114 1590 y fg (2)92 b(IPC)22 b(Has)h(Gotten)g(F)-6 b(aster)23 b(F)-6 b(aster)24 b(Than)f (the)f(Rest)g(of)114 1665 y(The)g(Op)r(erating)g(System)114 1756 y fh(It)14 b (has)h(b)r(een)g(observed)g(that)g(op)q(erating)f(system)h(p)q(erformance)g (has)f(impro)n(v)n(ed)h(far)g(less)g(rapidly)114 1805 y(than)h(w)n(ould)g(b)q (e)h(exp)q(ected)h(giv)n(en)e(impro)m(v)o(emen)n(ts)h(in)f(pro)q(cessor)i(arc) o(hitecture)f(and)f(implemen-)114 1855 y(tation)h([Ousterhout)h(90,)f(Anderso\ n)i(et)f(al.)28 b(91].)g(Although)17 b(the)i(time)d(to)h(add)h(t)o(w)n(o)g (registers)114 1905 y(together)d(has)g(decreased)i(b)o(y)d(almost)f(t)o(w)o (o)h(orders)h(of)f(magnitude)f(in)h(the)i(last)e(decade,)h(the)h(p)q(er-)114 1955 y(formance)e(of)g(k)o(ey)h(op)q(erating)g(system)g(services,)h(such)f (as)g(\014ling,)e(paging,)h(and)h(net)o(w)o(orking,)f(has)114 2005 y(remained) d(relativ)o(ely)h(\015at.)18 b(Disks)12 b(con)o(tin)o(ue)h(to)f(spin)h(at)f (ab)q(out)h(the)g(same)f(sp)q(eed)i(as)e(they)h(alw)n(a)o(ys)114 2054 y(ha)n (v)o(e,)19 b(bu\013er)g(cac)o(hes)g(remain)d(limited)g(b)o(y)h(memory)f(bandw\ idth,)i(and)f(core)i(netw)n(ork)f(latency)114 2104 y(remains)f(on)g(the)i(ord\ er)g(of)e(several)g(h)o(undred)i(microseconds)f(\(although)f(netw)o(ork)h(ban\ dwidth)114 2154 y(has)c(impro)m(v)n(ed)h(somewhat)e(more)g(dramatically\).) 176 2204 y(In)f(con)o(trast)h(to)f(the)g(p)q(erformance)g(of)g(the)g(services) i(whic)o(h)e(are)g(b)r(eing)f(pro)o(vided)h(b)o(y)g(the)h(op)q(er-)114 2254 y (ating)f(system,)h(the)i(time)d(to)h(send)i(a)e(message)g(b)q(etw)o(een)h(t)o (w)o(o)f(address)i(spaces)g(on)e(the)h(same)f(ma-)114 2303 y(c)o(hine)g(has)g (dropp)q(ed)h(substan)o(tially)-5 b(.)18 b(The)13 b(reasons)h(for)f(this)g (are)g(t)o(w)o(o-fold.)k(First,)c(w)n(e'v)o(e)g(b)r(ecome)114 2353 y(more)i (careful)h(and)g(more)f(successful)j(at)e(building)f(IPC)h(mec)o(hanisms)f (\\for)g(sp)r(eed,")i(ruthlessly)114 2403 y(streamlining)12 b(and)i(optimizin\ g)d(the)k(common)d(cases.)20 b(Using)14 b(the)h(Mac)o(h)f(3.0)f(microk)m(erne\ l)i(as)g(an)114 2453 y(example,)h(IPC)h(p)r(erformance)g(on)g(a)g(Micro)o(v)m (ax-I)q(I)q(I)g(\(CV)m(ax)g(pro)q(cessor\))i(has)f(gone)f(from)e(ab)q(out)114 2503 y(750)g fd(\026)p fh(secs)j(for)e(a)f(round-trip)i(RPC)e(in)h(1989)f([Be\ rshad)i(90])e(to)h(497)g fd(\026)p fh(secs)h(in)f(1992)f(\(measured)114 2553 y (recently)e(using)h(Mac)o(h)g(3.0)e(v)o(ersion)i(MK68\).)k(The)c(impro)m(v)o (emen)n(ts)g(w)o(ere)h(due)f(to)g(tigh)n(tening)g(the)114 2602 y(in)n(terface) h([Dra)n(v)o(es)g(90],)d(and)i(the)g(implemen)l(tation)g([Dra)n(v)n(es)h(et)g (al.)i(91].)176 2652 y(The)e(second)h(reason)g(wh)o(y)f(IPC)g(has)g(gotten)g (faster)g(faster)h(than)f(the)g(rest)i(of)d(the)h(op)q(erating)114 2702 y(sys\ tem)e(is)g(that)h(measured)f(IPC)h(p)q(erformance)f(has,)g(at)g(least)h(to)f (this)h(p)q(oin)n(t,)f(track)o(ed)g(pro)r(cessor)p eop %%Page: 3 3 bop 114 120 a fh(p)q(erformance)12 b(reasonably)h(w)o(ell.)639 105 y fc(1) 674 120 y fh(In)g(Mac)o(h,)f(this)h(is)g(largely)f(b)q(ecause)i(the)f(impro)m (v)o(emen)n(ts)h(made)114 170 y(in)d(the)i(last)e(several)h(y)o(ears)h(ha)n (v)o(e)f(mo)n(v)n(ed)h(IPC)f(p)q(erformance)g(o\013)g(of)f(the)i(memory)c(cur\ ve)j(and)g(on)n(to)114 220 y(the)18 b(pro)q(cessor)i(curv)o(e)f(b)n(y)f(tigh) n(tening)g(the)h(localit)n(y)f(of)f(the)i(IPC)f(paths.)30 b(Again,)18 b(using) f(Mac)o(h)114 270 y(3.0)c(MK68,)g(a)g(round-trip)h(RPC)g(tak)o(es)g(57)g fd (\026)p fh(secs)911 254 y fc(2)945 270 y fh(on)g(a)f(DecStation)h(5000/200.)i (That)e(system,)114 319 y(whic)o(h)i(uses)h(a)f(MIPS)g(R3000)f(pro)q(cessor)j (running)d(at)h(25Mhz,)h(is)f(rated)g(at)g(roughly)g(ten)g(times)114 369 y (the)f(p)q(erformance)g(of)f(the)i(CV)l(ax.)21 b(In)15 b(k)o(eeping)g(with)f (this,)h(cross-address)i(space)f(RPC)f(is)f(ab)q(out)114 419 y(nine)g(times)f (faster)h(than)g(the)g(same)f(co)r(de)h(running)g(on)f(a)h(CV)m(ax.)176 469 y (With)g(IPC)h(p)q(erformance)f(impro)m(ving)g(more)g(rapidly)g(than)g(general) h(op)q(erating)g(system)f(ser-)114 519 y(vice)d(p)q(erformance,)g(the)h(\\hit\ ")e(required)i(to)f(access)i(such)e(a)g(service)h(is)f(b)q(ecoming)f(less)i (imp)o(ortan)o(t.)114 568 y(F)l(or)f(example,)f(on)g(the)h(older)g(CV)m(ax,)f (the)h(497)f fd(\026)p fh(secs)j(required)e(to)g(do)f(a)h(cross-address)i(spa\ ce)f(RPC)114 618 y(w)n(as)j(comparable)d(to)i(the)h(time)e(it)h(to)q(ok)g(see\ k)h(one)f(disk)g(track,)f(or)h(copy)g(a)f(512)h(b)o(yte)g(blo)q(c)o(k)g(from) 114 668 y(a)g(system)g(bu\013er)h(cac)o(he)g(in)n(to)f(a)g(user)i(bu\013er,)e (or)h(to)f(transmit)f(a)g(pack)n(et)i(o)o(v)n(er)g(an)f(Ethernet.)21 b(On)114 718 y(the)d(DecStation)h(5000/200,)d(ho)o(w)o(ev)o(er,)j(the)g(IPC)f(p)r(enal\ t)n(y)g(is)g(substantially)e(less.)32 b(Since)18 b(disk)114 768 y(access,)f (data)f(transfer,)g(and)g(net)o(w)o(ork)g(latencies)g(ha)o(v)o(e)g(not)g(impr\ o)m(v)n(ed)h(at)e(an)o(ywhere)i(the)f(same)114 817 y(rate,)g(the)g(additional) d(cost)j(of)f(the)h(IPC)g(required)g(to)f(indirect)h(to)g(these)g(facilities) f(has)g(b)r(ecome)114 867 y(less)f(signi\014can)o(t.)114 984 y fb(2.1)55 b (System)17 b(Calls)h(Are)h(Not)f(The)h(Solution)114 1060 y fh(System)g(calls) h(used)h(in)f(monolithic)d(k)o(ernels)k(are)g(the)f(alternativ)o(e)g(to)g(the) h(IPC)f(mec)o(hanisms)114 1110 y(used)13 b(in)f(microk)m(ernels.)18 b(Monolit\ hic)11 b(op)q(erating)i(system)f(services)h(reside)h(in)e(the)g(k)o(ernel,)h (and)f(are)114 1160 y(accessed)i(b)n(y)e(applications)e(with)i(a)f(single)g (k)o(ernel)h(b)q(oundary)g(crossing.)17 b(On)12 b(older)g(systems,)g(suc)o (h)114 1210 y(as)g(the)h(CV)l(ax,)f(the)h(time)d(to)i(execute)i(a)e(Mac)o(h)g (system)g(call)1058 1194 y fc(3)1088 1210 y fh(w)o(as)g(ab)q(out)g(60)g fd (\026)p fh(secs,)h(substantially)114 1259 y(less)18 b(than)g(the)h(IPC)f(o)n (v)o(erhead)h(\(497)e fd(\026)p fh(secs\))j(on)d(that)h(mac)n(hine.)30 b(In) 18 b(con)o(trast,)h(on)f(the)g(newer)114 1309 y(DecStation)11 b(5000/200,)f (system)i(call)f(o)n(v)o(erhead)i(is)e(ab)q(out)h(8)g fd(\026)p fh(secs,)h (or)f(ab)q(out)f(50)h fd(\026)p fh(secs)h(less)f(than)114 1359 y(a)g(round-tr\ ip)g(RPC.)g(While)g(the)h(relativ)n(e)g(cost)g(of)f(IPC)h(and)f(system)h(call\ s)f(on)g(the)h(t)o(w)o(o)f(mac)n(hines)114 1409 y(is)17 b(the)h(same,)f(the)g (absolute)h(di\013erence)h ff(c)n(omp)n(ar)n(e)n(d)e fh(to)g(the)h(service)h (access)g(cost)f(\(disk,)g(bu\013er,)114 1459 y(or)c(netw)n(ork\),)g(is)h(m)m (uch)f(smaller.)k(As)d(a)f(result,)h(there)h(is)e(diminishing)d(incentiv)n (e)k(to)f(use)i(system)114 1508 y(calls,)d(rather)h(than)g(generalized)h(IPC) f(facilities,)e(to)i(access)i(system)d(services.)114 1646 y fg(3)69 b(P)n(erf\ ormance)34 b(is)g(Dominated)g(By)h(Cac)n(hes,)i(Not)e(b)n(y)114 1720 y(Addres\ s)23 b(Spaces)114 1811 y fh(The)11 b(in)n(v)o(o)q(cation)f(of)g(an)g(op)q(era\ ting)h(system)f(service)i(implies)d(a)h(change)g(in)g(lo)q(calit)n(y)l(.)17 b (In)11 b(monolithic)114 1861 y(systems,)f(the)h(new)g(localit)o(y)f(is)g(in)g (the)h(k)o(ernel.)17 b(In)10 b(microk)n(ernel-based)h(systems,)g(the)g(new)g (localit)n(y)114 1911 y(is)16 b(in)f(another)i(address)g(space.)26 b(In)16 b (b)q(oth)g(cases,)i(ho)o(w)o(ev)o(er,)f(the)f(change)g(in)g(localit)n(y)g(can) h(result)114 1961 y(in)d(an)g(increased)j(cac)o(he)e(miss)f(rate)h([Agarw)n (al)f(et)i(al.)k(88,)13 b(Mogul)h(&)h(Borg)g(91].)20 b(On)15 b(older)g(st)o (yle,)114 2011 y(slo)n(w)o(er)k(architectures)h(\()p fd(<)f fh(10)g(MIPS\),)f (cache)h(miss)e(p)r(enalties)i(w)n(ere)h(only)e(a)h(few)f(cycles.)34 b(On)114 2060 y(to)q(da)n(y's)13 b(architectures,)h(ho)o(w)o(ev)o(er,)f(cache)h(miss)e (p)q(enalties)h(are)h(tens,)g(and)f(so)q(on)g(to)g(b)q(e)h(h)o(undreds,)114 2110 y(of)d(cycles.)18 b(These)c(kinds)d(of)h(p)q(enalties)g(can)g(easily)f (dw)o(arf)h(the)g(k)o(ernel's)g(IPC)h(o)n(v)o(erhead.)18 b(In)12 b(e\013ect,) 114 2160 y(the)19 b(cost)h(of)f(accessing)h(an)f(op)q(erating)g(system)f(serv\ ice)j(is)e(going)f(to)h(b)q(e)g(most)f(in\015uenced)j(b)n(y)114 2210 y(whethe\ r)15 b(or)f(not)g(that)g(service)h(is)f(in)f(the)i(cac)o(he)g({)e(not)h(wheth\ er)h(or)f(not)g(it's)g(in)f(the)i(k)n(ernel)g(or)f(in)114 2260 y(another)g (address)h(space.)176 2309 y(One)h(could)g(argue,)g(ho)o(w)o(ev)o(er,)g(that) g(OS)g(in)o(teraction)g(via)f(a)h(microk)m(ernel)g(actually)f(in)o(v)n(olv)o (es)114 2359 y(t)o(w)n(o)e(changes)g(in)g(lo)q(calit)n(y)g({)g(one)g(to)g(the) h(microk)n(ernel)g(and)f(another)g(to)g(the)h(server.)k(While)13 b(true,)0 2406 y 720 2 v 52 2464 a fa(1)69 2479 y fe(Although)e(IPC)e(p)r(erformance)h (is)g(ultimately)i(limited)f(by)e(arc)o(hitectural)j(features)e(suc)o(h)g(as) f(trap)h(and)g(context)f(switch)0 2525 y(time,)i(and)h(although)g(these)g(tim\ es)f(ha)o(ve)f(not)h(b)r(een)g(improving)h(at)f(the)f(same)h(rate)g(as)g(pro) r(cessor)g(sp)q(eed)g([Anderson)h(et)e(al.)0 2571 y(91],)j(practical)h(IPC)f (p)q(erformance)h(has)f(not)h(y)o(et)f(reac)o(hed)g(this)h(limit.)52 2631 y fa (2)69 2647 y fe(All)g(times)g(w)n(ere)f(measured)h(with)g(w)n(arm)f(caches.) 52 2707 y fa(3)69 2723 y fe(Mach,)f(although)j(a)e(microkernel,)h(do)r(es)f (exp)q(ort)g(a)g(small)i(n)o(um)o(b)r(er)e(of)f(\\true")i(system)f(calls.)p eop %%Page: 4 4 bop 114 120 a fh(the)13 b(microk)m(ernel's)h(localit)n(y)f(\(at)g(least)g (on)f(the)i(critical)e(path)h(through)g(to)f(the)i(op)q(erating)f(system)114 170 y(serv)o(er\))j(is)e(small.)j(The)e(common-case)e(round)h(trip)g(IPC)h (path)f(in)g(Mac)o(h)h(3.0)e(on)h(the)h(MIPS,)g(for)114 220 y(example,)e(requ\ ires)k(less)f(than)f(4KB)h(of)e(instructions)i(and)g(references)i(less)e(than) f(2KB)g(of)g(data,)114 270 y(most)f(of)i(whic)o(h)g(is)f(on)h(the)h(k)n(ernel) g(stack.)24 b(Because)17 b(the)g(localit)o(y)e(is)h(small,)e(and)i(iden)o(ti\ \014able)f ff(a)114 319 y(priori)p fh(,)e(one)i(could)f(decrease)j(the)e(c)o (hance)h(that)f(misses)f(o)q(ccur)i(on)e(the)h(IPC)g(path)g(b)n(y)g(allocatin\ g)114 369 y(memory)i(with)j(an)g(eye)g(to)o(w)o(ards)g(the)h(cache)g(hashing) e(function)h([Bershad)h(et)g(al.)37 b(92].)f(F)l(or)114 419 y(virtually)12 b (addressed)k(cac)o(hes,)e(this)g(means)f(devoting)g(pieces)i(of)e(the)i(mac)m (hine's)f(virtual)f(address)114 469 y(space)j(to)f(the)h(microk)m(ernel.)23 b (F)m(or)15 b(a)g(ph)o(ysically)f(addressed)j(cac)o(he,)f(ph)o(ysical)f(memory) d(m)n(ust)k(b)q(e)114 519 y(dev)o(oted,)f(although)f(one)g(can)h(pla)o(y)f (tric)o(ks)h(with)g(split)f(instruction)h(and)g(data)f(caches)h(to)g(ensure) 114 568 y(that)f(only)f(data)g(pages)h(con\015ict)h(with)e(designated)i(instr\ uction)f(pages,)g(and)f(vice)i(v)n(ersa.)176 618 y(One)21 b(place)f(where)i (cac)o(he)f(p)q(erformance)f(b)q(ecomes)g(apparen)o(t)h(is)f(in)g(the)g(manag\ emen)m(t)g(of)114 668 y(external)12 b(devices)h(whic)o(h)e(use)i(DMA,)e(and)g (not)h(programmed,)d(I/O.)i(Before)i(the)f(pro)q(cessor)h(reads)114 718 y(mem\ ory)i(in)n(to)i(whic)o(h)h(DMA)f(has)g(b)r(een)h(p)q(erformed,)f(it)g(m)n(ust) h(purge)g(that)f(memory)e(from)h(the)114 768 y(cac)o(he)21 b(to)g(ensure)h (that)f(stale)g(data)f(is)h(not)g(returned.)40 b(Before)22 b(a)e(pro)q(cessor) j(issues)f(a)e(write)114 817 y(request)h(to)e(a)g(DMA)g(device,)i(it)e(m)n (ust)g(\015ush)h(the)g(memory)d(to)i(b)r(e)g(written)h(from)e(the)i(cac)o(he,) 114 867 y(again)14 b(to)i(ensure)h(that)f(stale)g(data)f(is)h(not)g(read)g (b)o(y)f(the)i(device.)24 b(These)17 b(cache)f(op)q(erations)g(are)114 917 y (exp)q(ensiv)o(e.)21 b(F)l(or)15 b(example,)e(on)h(the)h(HP-700,)f(a)g(high)g (p)q(erformance)g(w)o(orkstation)g(based)h(on)g(the)114 967 y(HPP)m(A)20 b (RISC)f(pro)q(cessor)i(with)f(a)f(cycle)i(time)d(of)h(20)g(nanoseconds,)j(cac\ he)e(purge)g(and)g(\015ush)114 1017 y(op)q(erations)12 b(tak)n(e)g(b)q(etw)o (een)g(1)g(and)f(14)g(cycles)i(p)q(er)g(line)e(\(32)g(b)o(ytes\),)h(DMA)g(op) q(erations)g(tend)g(to)g(b)q(e)114 1067 y(page-orien)n(ted,)k(so)g(I/O)f(op)q (erations)h(require)g(b)q(et)o(w)o(een)h(128)d(and)h(896)g(cycles)h(simply)e (to)h(ensure)114 1116 y(memory)e(coherency)n(.)23 b(In)15 b(the)h(case)h(of)d (device)j(reads,)f(p)q(erformance)f(degrades)i(ev)o(en)f(further)g(as)114 1166 y(the)j(newly)h(transferred)g(data)f(is)g(faulted)g(in)o(to)g(the)g(cache,)h (at)f(a)g(cost)h(of)f(16)f(cycles)j(p)q(er)f(line)114 1216 y(\(2048)c(cycles) i(p)r(er)f(page\).)29 b(In)17 b(con)o(trast,)h(a)f(cross-address)j(space)e (RPC)f(in)g(Mac)o(h)g(3.0)f(on)h(that)114 1266 y(mac)m(hine)i(tak)o(es)g(ab)q (out)g(70)f fd(\026)p fh(secs)i(\(3600)e(cycles\).)33 b(Consequently)m(,)19 b (the)g ff(c)n(ost)g fh(of)f(accessing)i(an)114 1316 y(out-of-k)m(ernel)14 b (device)g(server)g(\(c)o(hanging)f(address)h(spaces\))h(represen)q(ts)f(only) e(one)h(component)g(of)114 1365 y(the)h(total)f(CPU/device)i(comm)l(unication) f(cost.)114 1503 y fg(4)69 b(All)13 b(Data)j(Do)r(es)f(Not)g(Need)f(to)h(b)s (e)f(Marshalled)h(Through)114 1577 y(the)22 b(Kernel)114 1668 y fh(Microk)n (ernel-based)16 b(op)q(erating)f(systems)g(can)g(preallo)q(cate)g(bu\013ers)h (b)q(etw)o(een)f(clien)o(t)g(and)g(server)114 1718 y(address)j(spaces.)30 b (This)17 b(allo)m(ws)h(an)f(op)q(erating)g(system)g(service)i(to)e(share)h (address)g(space)h(with)114 1768 y(applications,)10 b(just)h(as)h(it)f(did)g (when)h(the)f(service)i(w)o(as)e(resident)h(in)f(the)h(k)n(ernel.)18 b(Small) 9 b(to)i(medium)114 1818 y(amoun)m(ts)g(of)f(data)g(can)h(b)q(e)g(transferred) h(from)d(one)h(address)i(space)g(to)e(another)h(b)o(y)f(dep)r(ositing)g(it)g (in)114 1868 y(the)k(shared)g(regions,)f(rather)i(than)e(b)o(y)g(sending)h (it)f(through)g(the)h(k)o(ernel)g(in)f(a)g(message)g([Bershad)114 1917 y(et) 18 b(al.)27 b(91].)h(Large)17 b(data)g(segmen)o(ts)h(\(on)f(the)h(order)g(of) f(pages\))h(can)g(b)q(e)g(passed)g(using)f(virtual)114 1967 y(memory)11 b(pri\ mitiv)l(es.)176 2017 y(Co-mapping)k(of)i(IPC)h(data)g(has)g(b)q(een)g(used)h (in)e(several)h(places.)30 b(A)o(t)18 b(CMU,)f(applications)114 2067 y(share) i(memory)d(with)i(the)h(Unix)e(server)i(to)f(pass)h(data)f(in)g(and)g(out)h (of)e(the)i(\014le)g(system.)31 b(W)l(e)114 2117 y(ha)n(v)o(e)13 b(recen)q (tly)f(applied)g(this)h(technique)g(to)f(the)i(so)q(c)o(k)o(et)f(in)o(terface) h(as)e(w)o(ell.)35 b(On)14 b(a)e(DS5000/200,)114 2166 y(w)n(e)j(ha)o(v)o(e)g (found)f(that)g(the)i(mapp)o(ed)f(so)q(ck)n(et)h(in)n(terface)g(do)q(es)f(not) f(impro)m(v)o(e)h(the)g(p)q(erformance)g(on)114 2216 y(small)f(pack)n(ets)k (\(few)o(er)g(than)f(100)f(b)o(ytes\),)j(but)e(in)g(larger)g(pac)o(k)n(ets)h (there)h(is)e(an)f(impro)n(v)n(emen)o(t.)114 2266 y(F)l(or)d(pac)o(k)o(ets)h (of)f(4KB,)g(sends)h(using)f(the)g(mapped)h(so)q(c)o(k)o(et)g(in)n(terface)g (are)g(15%)e(faster)i(than)f(using)114 2316 y(the)g(regular,)f(non-mapped,)h (in)n(terface.)19 b(In)13 b(pac)o(k)n(ets)h(of)e(more)g(than)h(4KB)g(the)g (mapped)g(in)n(terface)114 2366 y(a)n(v)o(oids)19 b(the)h(cost)g(of)f(dynamic\ ally)e(allo)o(cating)j(and)f(deallocating)g(the)h(region)g(for)f(out-of-line) 114 2416 y(transmission,)13 b(although)i(for)g(extremely)f(large)h(pac)o(k)o (ets)h(remapping,)e(rather)i(than)f(cop)o(ying,)f(is)114 2465 y(more)f(e\016c\ ien)o(t.)176 2515 y(Co-mapping)c(can)j(b)q(e)g(used)h(e\013ectively)f(for)f (non-Unix)g(in)o(terfaces)i(as)f(w)o(ell.)k(F)m(or)c(example,)e(w)o(e)114 2565 y(ha)n(v)o(e)j(built)f(a)g(v)n(ersion)h(of)f(the)h(X11)f(windo)n(w)h(server)g (whic)o(h)f(uses)i(Mac)o(h)e(IPC)h(for)f(comm)l(unication)114 2615 y(b)q(et)o (w)o(een)k(X)f(clien)o(ts)h(and)f(the)h(serv)o(er.)23 b(X)15 b(do)q(es)h(call) e(request)j(bu\013ering,)e(but)h(clien)n(ts)g(frequently)114 2665 y(\015ush)e (the)h(bu\013er,)g(whic)n(h)g(causes)g(the)g(data)e(to)h(b)r(e)g(made)f(a)o (v)m(ailable)g(to)h(the)g(server.)19 b(When)c(Unix)114 2714 y(stream)j(so)q (ck)n(ets)i(are)f(used)h(to)f(implem)o(en)m(t)g(the)g(transp)r(ort)g(la)n(y)o (er,)h(the)f(\015ush)h(causes)g(a)e(so)r(c)o(k)o(et)p eop %%Page: 5 5 bop 114 120 a fh(write)20 b(to)f(o)q(ccur.)36 b(With)19 b(so)q(ck)n(ets,)j (m)m(ultiple)d(\015ushes)i(ma)m(y)e(o)q(ccur)i(b)q(efore)f(the)h(serv)o(er)g (collects)114 170 y(an)n(y)e(of)g(the)g(data,)h(but)f(all)f(of)g(the)i(data)e (can)h(b)r(e)g(collected)h(in)e(one)i(receiv)o(e,)h(so)e(transferring)114 220 y(data)e(through)h(the)g(k)n(ernel)h(do)q(esn't)f(necessarily)g(increase)h (the)g(n)n(um)n(b)q(er)f(of)f(con)o(text)i(switc)o(hes.)114 270 y(When)d(usin\ g)g(Mac)o(h's)h(IPC,)f(whic)o(h)g(is)g(message-orien)o(ted,)h(ev)o(ery)g(\015\ ush)g(results)g(in)f(a)g(message.)114 319 y(Message)g(b)q(oundaries)f(are)g (main)m(tained,)f(so)h(ev)o(ery)h(message)e(m)n(ust)h(b)q(e)h(collected)f(sep\ arately)h(b)n(y)114 369 y(the)e(X)h(serv)o(er,)g(increasing)f(the)h(the)g(n)o (um)m(b)q(er)g(of)f(user-kernel)g(b)r(oundary)g(crossings)h(and)f(con)o(text) 114 419 y(switc)o(hes)19 b(relativ)n(e)f(to)g(a)f(so)r(c)o(k)o(et-based)h(imp\ lemen)m(tation.)29 b(W)l(e)18 b(are)g(modifying)e(the)i(X)g(library)114 469 y (to)f(bu\013er)h(requests)h(in)e(shared)h(memory)-6 b(.)27 b(Flushes)18 b(tra\ nsfer)g(the)g(data)f(to)g(the)h(shared)g(bu\013er,)114 519 y(and)c(only)f(cau\ se)i(an)f(IPC)g(message)g(to)g(b)q(e)g(sent)g(if)f(previous)i(IPC)f(messages) g(ha)o(v)n(e)h(not)f(y)o(et)g(b)q(een)114 568 y(collected.)114 706 y fg(5)69 b (All)21 b(Services)g(Do)i(Not)g(Need)f(a)h(Hardw)n(are)h(Firew)n(all)114 797 y fh(The)18 b(cost)g(of)g(accessing)g(functions)g(in)g(another)g(protection)g (domain)e(\(whether)j(in)e(the)i(k)o(ernel)114 846 y(or)c(in)g(a)h(serv)o(er'\ s)h(address)f(space\))h(has)f(pro)o(vided)f(motiv)l(ation)g(for)g(microk)m (ernel-based)i(systems)114 896 y(to)d(migrate)f(what)h(w)o(ere)h(once)g(k)o (ernel)g(functions)g(in)n(to)f(clien)o(t)h(address)h(spaces.)21 b(This)14 b (is)g(p)q(ossible)114 946 y(when)h(unprotecting)g(the)g(functions)f(has)h(no) f(security)g(implications.)j(F)m(or)d(example,)f(there's)j(no)114 996 y(reaso\ n)d(to)g(put)h(the)g(system)f(clock)g(in)f(the)i(k)o(ernel,)g(let)f(alone)f (another)i(address)g(space)h({)e(on)f(most)114 1046 y(arc)o(hitectures,)21 b (the)e(clo)q(ck)f(can)h(b)q(e)g(mapped)g(directly)g(in)n(to)f(user)i(address) g(spaces.)34 b(Similarl)o(y)-6 b(,)114 1095 y(net)o(w)o(ork)13 b(proto)q(cols) g(can)h(execute)h(in)d(the)i(address)g(spaces)h(of)d(the)i(applications)e(whi\ c)o(h)h(are)h(com-)114 1145 y(m)m(unicating)e(rather)i(than)f(in)g(the)h(k)n (ernel)g(or)f(a)g(sp)r(ecial)f(proto)q(col)h(server)h([Sc)o(hro)q(eder)g(&)f (Burrows)114 1195 y(90,)g(Maeda)i(&)g(Bershad)h(92].)j(Applications)14 b(can) h(send)g(and)g(receive)g(pac)o(k)o(ets)g(directly)g(through)114 1245 y(the)j (netw)o(ork)g(in)n(terface.)33 b(If)17 b(the)i(netw)o(ork)f(is)g(assumed)g (to)g(b)q(e)g(insecure)i(\(as)f(is)f(generally)g(the)114 1295 y(case\),)e(the\ n)h(executing)f(the)h(proto)q(cols)f(in)f(a)g(secure)j(protection)e(domain)e (o\013ers)j(no)e(additional)114 1345 y(in)n(tegrit)o(y)m(.)j(Encryption,)13 b (and)h(not)g(hardw)o(are)g(protection)h(mo)o(des,)f(are)h(necessary)h(here.) 176 1394 y(Another)e(technique)g(for)g(remo)m(ving)f(hardw)o(are)h(\014rewall\ s)f(is)h(to)f(migrate)f(pieces)j(of)e(the)i(op)q(er-)114 1444 y(ating)f(syste\ m)h(service)h(in)n(to)f(clien)o(ts')g(address)h(spaces.)23 b(Mac)o(h's)15 b (Unix)g(em)n(ulation)e(pack)m(age)i(uses)114 1494 y(this)e(approac)o(h)h(with) f(its)g(transparent)h(em)n(ulation)e(library)l(,)h(whic)o(h)g(is)h(a)f(shared) h(library)f(mapped)114 1544 y(in)n(to)k(ev)o(ery)h(Unix)e(address)j(space.)28 b(Unix)17 b(system)f(calls)h(are)g(re\015ected)j(out)d(of)f(the)i(k)n(ernel)g (in)n(to)114 1594 y(the)h(caller's)f(em)n(ulation)f(library)-5 b(.)32 b(There\ ,)20 b(the)f(em)n(ulation)e(library)g(ma)m(y)i(simply)d(forw)n(ard)j(the)114 1643 y(system)d(call)f(on)o(to)h(the)h(Unix)f(server,)h(or)g(it)f(ma)m(y)g (implemen)l(t)h(the)g(call)e(itself,)h(if)g(p)q(ossible.)26 b(F)l(or)114 1693 y(example,)10 b(the)j(em)n(ulation)e(library)g(uses)i(a)f(mapped)g(\014le)g (in)o(terface)h(for)e(comm)m(unicating)g(with)h(the)114 1743 y(Unix)h(server.) 19 b(Read)14 b(and)g(write)g(system)g(calls)g(are)g(in)o(tercepted)i(b)o(y)e (the)g(em)n(ulation)f(library)g(and)114 1793 y(con)o(v)o(erted)f(in)n(to)f (loads)f(and)h(stores)h(to)f(the)g(mapped)g(memory)e(whic)o(h)h(backs)h(the)g (\014le.)17 b(In)11 b(this)g(w)o(a)n(y)m(,)114 1843 y(binary)i(compatibilit)l (y)h(with)g(Unix)g(is)g(main)m(tained,)g(and)g(cross-address)j(space)e(IPC)f (is)h(a)n(v)o(oided.)114 1893 y(This)g(approac)o(h)h(has)g(b)r(een)g(generali\ zed)h(in)e(the)i(Mac)o(h)f(m)m(ultiserver)g(pro)s(ject)g([Julin)f(et)h(al.)24 b(91],)114 1942 y(and)14 b(has)h(resulted)h(in)f(substan)o(tial)f(IPC)h(reduc\ tions.)22 b(In)15 b(b)q(enchmarks)f(on)g(that)h(system,)f(whic)o(h)114 1992 y (are)f(in)o(tended)h(to)f(b)q(e)h(p)q(ersuasive)f(but)h(not)f(conclusiv)o(e,) g(clien)o(t-side)g(em)n(ulation)f(p)q(ermits)h(t)o(w)o(o)f(out)114 2042 y(of) h(three)i(system)f(calls)f(to)h(b)q(e)h(implem)o(en)m(ted)f(without)g(an)f (RPC.)114 2179 y fg(6)69 b(Conclusions)114 2270 y fh(IPC)15 b(p)q(erformance) g(has)g(come)f(a)h(long)f(w)o(a)n(y)h(in)g(the)g(last)g(ten)g(y)o(ears.)22 b (W)m(e)15 b(no)o(w)f(understand)j(ho)n(w)114 2320 y(to)12 b(build)f(IPC)i(mec) n(hanisms)e(whic)o(h)h(are)h(only)e(a)h(few)h(tens)g(of)f(microseconds)g(slo) n(w)o(er)h(than)g(system)114 2370 y(calls.)31 b(While)18 b(this)g(ma)n(y)g (at)g(\014rst)h(seem)g(unacceptably)g(high,)f(an)h(examination)d(of)i(the)h (other)114 2420 y(issues)f(in)g(op)q(erating)f(system)h(p)q(erformance)g(rev) o(eals)g(that)g(the)g(additional)e(o)n(v)o(erhead)j(is)f(small)114 2469 y(com\ pared)d(to)i(the)g(services)h(whic)o(h)e(are)h(b)q(eing)g(accessed.)27 b(More\ ov)n(er,)18 b(the)f(gro)n(wing)f(mismatc)l(h)114 2519 y(b)q(et)o(w)o(een)g (cac)o(he)g(and)e(memory)f(sp)q(eed)j(is)f(making)d(the)j(ph)o(ysical)g(locat\ ion)g(of)f(op)q(erating)h(system)114 2569 y(co)q(de)i(and)g(data)f(m)n(uc)o (h)h(more)f(imp)o(ortan)o(t)h(than)g(the)g(soft)o(w)o(are)g(path)g(b)o(y)g (whic)n(h)g(it)g(is)f(accessed.)114 2619 y(Finally)-5 b(,)12 b(as)h(microk)n (ernel-based)h(op)q(erating)f(systems)g(ha)o(v)o(e)g(matured,)f(useful)h(tech\ niques)g(whic)o(h)114 2669 y(reduce)k(the)f(frequency)h(of)e(op)q(erating)g (system)h(in)n(teraction,)g(and)g(hence,)h(IPC,)e(ha)n(v)o(e)h(also)f(b)q(een) 114 2718 y(dev)o(elop)q(ed.)j(F)m(or)13 b(these)h(reasons,)g(the)g(ra)o(w)f (p)q(erformance)g(of)f(IPC)h(facilities)f(is)h(largely)g(b)q(ecoming)p eop %%Page: 6 6 bop 114 120 a fh(an)13 b(irrelev)n(an)o(t)h(metric)f(b)o(y)h(whic)o(h)g(to)f (judge)h(microk)n(ernel-based)h(op)q(erating)f(systems.)114 257 y fg(Ac)n(kno) n(wledgemen)n(ts)114 348 y fh(Jose)19 b(Carlos)f(Brustoloni,)h(Ric)n(h)g(Dra) o(v)n(es,)h(Dan)e(Julin,)h(Mark)f(Stevenson,)i(and)e(Bob)h(Wheeler)114 398 y (supplied)c(most)f(of)h(the)g(measuremen)n(ts)h(presented)g(in)f(this)g(pap)q (er.)23 b(Con)n(v)o(ersations)16 b(with)f(these)114 448 y(p)q(eople,)h(as)g (w)o(ell)f(as)h(with)g(Bob)g(Baron,)g(Jo)r(e)g(Barrera,)h(Alessandro)g(F)l (orin,)f(Mic)o(hael)g(Ginsberg,)114 498 y(Chris)e(Maeda)g(and)f(Dan)h(Sto)q (dolsky)f(con)o(tributed)i(to)f(this)g(pap)q(er.)114 635 y fg(References)114 726 y fh([Accetta)h(et)f(al.)f(86])21 b(Accetta,)e(M.)d(J.,)h(Baron,)h(R.)e (V.,)h(Bolosky)l(,)g(W.,)f(Golub,)g(D.)g(B.,)h(Rashid,)309 775 y(R.)d(F.,)h (T)l(ev)n(anian,)f(Jr.,)h(A.,)f(and)h(Y)m(oung,)f(M.)h(W.)20 b(Mach:)g(A)15 b (New)g(Kernel)h(F)m(ounda-)309 825 y(tion)g(for)f(UNIX)i(Dev)o(elopmen)m(t.) 25 b(In)16 b ff(Pr)m(o)n(c)n(e)n(e)n(dings)h(of)g(the)g(Summer)g(1986)g(USENI\ X)309 875 y(Confer)n(enc)n(e)p fh(,)d(pages)g(93{113,)e(July)i(1986.)114 941 y ([Agarw)n(al)f(et)h(al.)f(88])22 b(Agarw)o(al,)16 b(A.,)h(Hennessy)n(,)h(J.,) f(and)g(Horo)n(witz,)h(M.)27 b(Cac)o(he)18 b(P)o(erformacne)309 991 y(of)12 b (Op)q(erating)h(System)e(and)h(Multiprogramm)o(ing)d(W)l(orkloads.)15 b ff (A)n(CM)f(T)l(r)m(ansactions)309 1041 y(on)i(Computer)e(Systems)p fh(,)g(6\(4\ \):393{431,)d(No)o(v)o(em)m(b)r(er)j(1988.)114 1107 y([Anderson)g(et)h(al.)d (91])22 b(Anderson,)c(T.,)e(Levy)m(,)h(H.,)g(Bershad,)h(B.,)f(and)f(Lazo)o (wsk)n(a,)h(E.)26 b(The)17 b(In-)309 1157 y(teraction)h(of)e(Architecture)i (and)f(Op)q(erating)g(System)f(Design.)27 b(In)17 b ff(Pr)m(o)o(c)n(e)n(e)m (dings)h(of)309 1207 y(the)c(F)m(ourth)f(Symp)n(osium)h(on)g(A)n(r)n(chite)n (ctur)m(al)f(Supp)o(ort)g(for)g(Pr)m(o)n(gr)n(amming)g(L)n(anguages)309 1256 y (and)j(Op)n(er)m(ating)f(Systems)p fh(,)f(pages)g(108{121,)e(April)h(1991.) 114 1322 y([Bershad)h(90])22 b(Bershad,)16 b(B.)f(N.)21 b ff(High)16 b(Perfor\ manc)m(e)g(Cr)m(oss-A)n(ddr)n(ess)g(Sp)n(ac)o(e)f(Communic)o(ation)p fh(.)309 1372 y(PhD)h(dissertation,)g(Univ)o(ersit)o(y)g(of)f(W)l(ashington,)g(Departm\ en)o(t)g(of)h(Computer)e(Sci-)309 1422 y(ence)i(and)d(Engineering,)h(Seattle,) g(W)-5 b(A)14 b(98195,)e(June)j(1990.)114 1488 y([Bershad)f(et)h(al.)d(90])22 b(Bershad,)14 b(B.)f(N.,)f(Anderson,)i(T.)e(E.,)g(Lazo)o(wsk)n(a,)g(E.)h(D.,) e(and)i(Levy)m(,)f(H.)h(M.)309 1538 y(Ligh)o(t)o(w)n(eigh)o(t)i(Remote)f(Pro) q(cedure)j(Call.)i ff(A)o(CM)d(T)l(r)n(ansactions)g(on)h(Computer)e(Sys-)309 1588 y(tems)p fh(,)h(8\(1\):37{55,)e(F)m(ebruary)j(1990.)23 b(Also)15 b(app)q (eared)i(in)f ff(Pr)m(o)n(c)n(e)n(e)n(dings)h(of)g(the)g(12th)309 1638 y(A)o (CM)e(Symp)o(osium)g(on)g(Op)n(er)m(ating)g(Systems)g(Principles)p fh(,)e(Dec\ em)o(b)q(er)i(1989.)114 1704 y([Bershad)f(et)h(al.)d(91])22 b(Bershad,)14 b (B.)f(N.,)f(Anderson,)i(T.)e(E.,)g(Lazo)o(wsk)n(a,)g(E.)h(D.,)e(and)i(Levy)m (,)f(H.)h(M.)309 1753 y(User-Lev)q(el)k(Remote)f(Pro)q(cedure)j(Call.)26 b ff (A)o(CM)18 b(T)l(r)m(ansactions)h(on)g(Computer)e(Sys-)309 1803 y(tems)p fh (,)d(9\(2\):175{198,)d(Ma)n(y)j(1991.)114 1869 y([Bershad)g(et)h(al.)d(92])22 b(Bershad,)17 b(B.)e(N.,)g(F)m(orin,)g(A.,)g(and)g(Dra)o(v)n(es,)h(R.)23 b (Cac)o(he)15 b(E\013ects)j(for)d(a)g(Mi-)309 1919 y(crokernel)f(Op)r(erating) g(System.)k(T)l(echnical)13 b(rep)r(ort,)h(Sc)o(ho)q(ol)g(of)f(Computer)g(Sci\ ence,)309 1969 y(Carnegie)i(Mellon)e(Univ)n(ersity)l(,)h(1992.)j(In)c(prepara\ tion.)114 2035 y([Cheriton)g(84])22 b(Cheriton,)12 b(D.)e(R.)k(The)e(V)f(Kern\ el:)18 b(A)12 b(Soft)n(w)o(are)g(Base)g(for)f(Distributed)h(Systems.)309 2085 y ff(IEEE)k(Softwar)m(e)p fh(,)d(1\(2\):19{42,)f(April)h(1984.)114 2151 y([Ch\ eriton)g(et)i(al.)d(90])22 b(Cheriton,)d(D.)f(R.,)g(Whitehead,)h(G.)e(R.,)h (and)g(Szn)o(yter,)i(E.)e(W.)30 b(Binary)309 2201 y(Em)n(ulation)13 b(of)g (Unix)g(using)g(the)h(V)g(Kernel.)19 b(In)13 b ff(Summer)i(1990)h(Usenix)e (Confer)n(enc)n(e)309 2251 y(Pr)n(o)n(c)n(e)n(e)n(dings)p fh(,)g(1990.)114 2317 y([Dra)n(v)n(es)h(90])22 b(Dra)n(v)o(es,)16 b(R.)e(P)m(.)22 b(A)16 b(Rev\ ised)f(IPC)h(In)o(terface.)23 b(In)15 b ff(Pr)n(o)n(c)n(e)n(e)n(dings)h(of)g (the)g(First)g(Mach)309 2367 y(USENIX)f(Workshop)p fh(,)g(pages)f(101{121,)e (Octob)q(er)j(1990.)114 2433 y([Dra)n(v)n(es)g(et)g(al.)d(91])22 b(Dra)o(v)n (es,)13 b(R.)e(P)m(.,)h(Bershad,)h(B.)f(N.,)g(Rashid,)f(R.)g(F.,)h(and)g(Dean\ ,)g(R.)f(W.)k(Using)309 2482 y(Con)o(tin)o(uations)k(to)h(Implemen)m(t)g(Thre\ ad)g(Managemen)n(t)g(and)g(Comm)l(unication)f(in)309 2532 y(Op)r(erating)9 b (Systems.)i(In)e ff(Pr)m(o)o(c)m(e)n(e)n(dings)i(of)g(the)g(13th)g(A)o(CM)f (Symp)o(osium)h(on)g(Op)n(er)m(ating)309 2582 y(Systems)16 b(Principles)p fh (,)c(pages)j(122{136,)c(Octob)r(er)k(1991.)114 2648 y([Golub)d(et)i(al.)f(90]) 22 b(Golub,)9 b(D.,)h(Dean,)h(R.,)f(F)l(orin,)g(A.,)h(and)f(Rashid,)g(R.)i (Unix)e(as)g(an)g(Application)309 2698 y(Program.)26 b(In)17 b ff(Pr)n(o)n (c)n(e)n(e)n(dings)h(of)g(the)f(Summer)h(1990)h(USENIX)f(Confer)m(enc)o(e)p fh (,)f(pages)309 2748 y(87{95,)c(June)h(1990.)p eop %%Page: 7 7 bop 114 120 a fh([Julin)13 b(et)h(al.)f(91])21 b(Julin,)14 b(D.)f(P)m(.,)g (Chew,)h(J.)g(J.,)f(Stevenson,)h(J.)g(M.,)f(Guedes,)i(P)m(.,)e(Nev)o(es,)i (P)l(.,)e(and)309 170 y(Ro)o(y)l(,)e(P)m(.)h(Generalized)f(Em)n(ulation)e(Ser\ vices)j(for)f(Mac)o(h)f(3.0:)16 b(Ov)o(erview,)11 b(Exp)q(eriences)309 220 y (and)19 b(Current)h(Status.)34 b(In)19 b ff(Pr)n(o)n(c)n(e)n(e)n(dings)h(of)g (the)g(1991)g(Usenix)g(Mach)h(Workshop)p fh(,)309 270 y(No)o(v)o(em)n(b)q(er) 15 b(1991.)114 336 y([Le\017er)f(et)g(al.)f(89])22 b(Le\017er,)16 b(S.,)g(McK\ usick,)g(M.,)f(Karels,)i(M.,)e(and)h(Quarterman,)g(J.)24 b ff(The)17 b(De-) 309 386 y(sign)f(and)g(Implementation)g(of)f(the)g(4.3BSD)i(UNIX)e(Op)n(er)m (ating)h(System)p fh(.)k(Addison-)309 436 y(W)m(esley)m(,)13 b(Reading,)g(MA,) g(1989.)114 502 y([Maeda)g(&)h(Bershad)h(92])22 b(Maeda,)12 b(C.)g(and)g(Bers\ had,)h(B.)f(N.)j(Net)o(w)o(orking)c(Performance)g(for)h(Mi-)309 552 y(crokern\ els.)17 b(In)d ff(Pr)m(o)n(c)n(e)n(e)n(dings)h(of)f(the)g(Thir)m(d)h(Workshop) g(on)f(Workstation)h(Op)n(er)m(ating)309 602 y(Systems)p fh(,)f(April)f(1992.) 114 668 y([Mogul)f(&)i(Borg)g(91])22 b(Mogul,)15 b(J.)g(and)g(Borg,)h(A.)23 b (The)16 b(E\013ect)h(of)d(Con)o(text)i(Switc)o(hes)h(on)e(Cac)o(he)309 718 y (Performance.)g(In)e ff(Pr)m(o)n(c)n(e)n(e)n(dings)h(of)g(the)g(F)l(ourth)g (Symp)o(osium)f(on)i(A)n(r)n(chite)n(ctur)m(al)f(Sup-)309 768 y(p)o(ort)f(for) g(Pr)n(o)n(gr)m(amming)h(L)n(anguages)h(and)g(Op)n(er)m(ating)f(Systems)p fh (,)f(pages)g(75{84,)e(April)309 817 y(1991.)114 884 y([Ousterhout)k(90])21 b (Ousterhout,)c(J.)d(K.)22 b(Wh)n(y)15 b(Op)r(erating)g(Systems)f(Aren't)i(Get\ ting)e(F)m(aster)i(As)309 934 y(F)m(ast)d(As)f(Hardw)o(are.)k(In)c ff(Pr)n (o)n(c)n(e)n(e)n(dings)h(of)h(the)f(summer)g(1991)h(USENIX)g(Confer)m(enc)o (e)p fh(,)309 984 y(pages)h(247{256,)c(June)k(1990.)114 1050 y([Ousterhout)g (et)f(al.)f(88])21 b(Ousterhout,)16 b(J.,)d(Cherenson,)i(A.,)e(and)h(Douglis,) e(F.)19 b(The)14 b(Sprite)h(Net-)309 1100 y(w)o(ork)g(Op)r(erating)g(System.) 22 b ff(IEEE)17 b(Computer)f(Magazine)p fh(,)g(21\(2\):23{36,)d(F)m(ebruary) 309 1150 y(1988.)114 1216 y([Rashid)f(et)j(al.)d(91])22 b(Rashid,)12 b(R.)h (F.,)f(Malan,)g(G.,)g(Golub,)g(D.,)h(and)g(Baron,)g(R.)j(DOS)e(as)f(a)g(Mac)o (h)309 1266 y(3.0)i(Application.)23 b(In)16 b ff(Pr)m(o)n(c)n(e)n(e)n(dings)h (of)g(the)g(1991)g(Usenix)g(Mach)g(Workshop)p fh(,)g(pages)309 1316 y(27{40,) c(No)n(v)o(em)n(b)q(er)i(1991.)114 1382 y([Rozier)e(et)h(al.)f(88])22 b(Rozie\ r,)11 b(M.,)g(Abrossimo)m(v,)h(V.,)e(Armand,)g(F.,)h(Boule,)h(I.,)e(Giend,)h (M.,)g(Guille-)309 1432 y(mon)n(t,)i(M.,)g(Herrmann,)g(F.,)f(Leonard,)i(P)m (.,)f(Langlois,)e(S.,)i(and)h(Neuhauser,)h(W.)i(The)309 1482 y(Chorus)e(Distr\ ibuted)f(Op)q(erating)g(System.)k ff(Computing)d(Systems)p fh(,)e(1\(4\),)h (1988.)114 1548 y([Sc)o(hro)q(eder)h(&)f(Burrows)g(90])21 b(Schro)q(eder,)d (M.)e(D.)g(and)g(Burrows,)h(M.)26 b(P)o(erformance)16 b(of)g(Fire\015y)309 1598 y(RPC.)i ff(A)o(CM)d(T)l(r)n(ansactions)g(on)h(Computer)e(Systems)p fh (,)g(8\(1\):1{17,)e(F)l(ebruary)j(1990.)114 1664 y([Wiecek)e(92])22 b(Wiecek,) 16 b(C.)23 b(A)15 b(Mo)q(del)h(and)f(Protot)o(yp)q(e)h(of)f(VMS)g(Using)h(the) g(Mac)o(h)f(3.0)g(Kernel.)309 1714 y(In)f ff(Pr)m(o)n(c)n(e)n(e)n(dings)h(of) f(the)h(1992)g(Usenix)f(Micr)n(okernel)g(Workshop)p fh(,)g(April)f(27{28)f (1992.)309 1764 y(This)i(issue.)p eop %%Trailer end %%EOF