Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!pacific.mps.ohio-state.edu!linac!sunova!sunova.ssc.gov!cwk From: cwk@boomer.ssc.gov (Carl W. Kalbfleisch) Newsgroups: comp.realtime Subject: Overview of Real-Time Kernels at the SSC Message-ID: Date: 18 Jun 91 21:36:08 GMT Sender: usenet@sunova.ssc.gov Reply-To: cwk@psychosis.ssc.gov Distribution: usa Organization: SSC Laboratory, Dallas, TX Lines: 1558 Nntp-Posting-Host: boomer.ssc.gov Based on the number of requests I am getting for copies of our paper entitled "Overview of real-time kernels at the SSC Laboratory", I have decide that there is enough interest to post the Post Script file to this newsgroup. Save the file, remove the text above and below the "cut here" text and send it to your favorite Post Script printer. Enjoy! Comments are welcome, everything else is not. Carl W. Kalbfleisch ------------------------CUT HERE-------------------------- %! % This file is a NONconforming PostScript file. (TeXPS: dvi->PostScript Driver dvitps, Version 2.19 of June 23, 1989\n)print flush % Copyright 1989 Stephan v. Bechtolsheim (unless otherwise stated) % applies to various prologue files. Read documentation for details. save % dvitps: BEGIN including file "/usr/local/lib/tex/pro/texpre.pro" /@bop0 { PsPrintEnabled { (Pass0: Page ) print == flush } {pop} ifelse } def /@eop0 { pop } def /@bop1 { PsPrintEnabled { (Pass1: Page ) print == flush } {pop} ifelse save DviTranslateVector-X DviTranslateVector-Y translate DviOrientationMatrix concat Page-H-Offset Page-V-Offset translate 3 1 roll translate 0 0 moveto Draft-Flag { @Draft } if /DriverDelta 0 def } def /@eop1 { pop showpage restore } def /@end { (Done!\n) print flush } def /@ReportVmStatus { (\n@ReportVmStatus: ) print print (: ) print vmstatus (max: ) print 20 string cvs print (, used: ) print 20 string cvs print (, level: ) print 20 string cvs print (\n) print flush } def /@ReportVmStatusNew { (VM: ) print exch print (, printer: ) print /Vmfree vmstatus pop exch pop def Vmfree ( ) cvs print (, driver: ) print dup ( ) cvs print (, delta: ) print Vmfree sub ( ) cvs print (\n) print flush } def /@Draft { gsave Page-H-Offset neg Page-V-Offset neg translate -45 rotate -150 0 moveto /Helvetica-Bold findfont [120.0 0 0 -120.0 0 0 ] makefont setfont (DRAFT) show grestore gsave Page-H-Offset neg Page-V-Offset neg translate 300 -100 moveto /Helvetica-Bold findfont [60.0 0 0 -60.0 0 0 ] makefont setfont Date-and-Time show ( :: ) show Dvi-File-Name show grestore } def % dvitps: END including file "/usr/local/lib/tex/pro/texpre.pro" % dvitps: BEGIN including file "/usr/local/lib/tex/pro/pos.pro" /a { rmoveto } def /DriverDelta 0 def /b { exch p dup /DriverDelta exch def 0 rmoveto } def /c { p DriverDelta 4 sub dup /DriverDelta exch def 0 rmoveto } def /d { p DriverDelta 3 sub dup /DriverDelta exch def 0 rmoveto } def /e { p DriverDelta 2 sub dup /DriverDelta exch def 0 rmoveto } def /f { p DriverDelta 1 sub dup /DriverDelta exch def 0 rmoveto } def /g { p DriverDelta 0 rmoveto } def /h { p DriverDelta 1 add dup /DriverDelta exch def 0 rmoveto } def /i { p DriverDelta 2 add dup /DriverDelta exch def 0 rmoveto } def /j { p DriverDelta 3 add dup /DriverDelta exch def 0 rmoveto } def /k { p DriverDelta 4 add dup /DriverDelta exch def 0 rmoveto } def /l { p -4 0 rmoveto } def /m { p -3 0 rmoveto } def /n { p -2 0 rmoveto } def /o { p -1 0 rmoveto } def /q { p 1 0 rmoveto } def /r { p 2 0 rmoveto } def /s { p 3 0 rmoveto } def /t { p 4 0 rmoveto } def /p { show } def /w { 0 exch rmoveto } def /x { 0 rmoveto } def /y { 3 -1 roll p rmoveto } def /u-string ( ) def /u { u-string exch 0 exch put u-string show } def /v { u-string exch 0 exch put currentpoint u-string show moveto } def % dvitps: END including file "/usr/local/lib/tex/pro/pos.pro" % dvitps: BEGIN including file "/usr/local/lib/tex/pro/rules.pro" /z { /dy exch def /dx exch def currentpoint currentpoint transform round exch round exch itransform newpath moveto dx 0 rlineto 0 dy rlineto dx neg 0 rlineto closepath fill moveto } def /z { /dy exch def /dx exch def currentpoint 0.2 0.2 rmoveto currentpoint newpath moveto dx 0 rlineto 0 dy rlineto dx neg 0 rlineto closepath fill moveto } def % dvitps: END including file "/usr/local/lib/tex/pro/rules.pro" /Dvi-File-Name (paper.dvi) def (Dvi file name: ") print Dvi-File-Name print (".\n) print /Draft-Flag false def /#copies 1 def /NumCharsInPixelFonts 256 def /HostName (carob) def (This PostScript file was produced on host \") print HostName print (\".\n) print /PsPrintEnabled true def /Page-H-Offset 0.000000 def /Page-V-Offset 0.000000 def /ExecPsConv {0.30 mul} def /Date-and-Time (Fri May 3 13:00 1991) def /DviTranslateVector-X 72.000 def /DviTranslateVector-Y 720.000 def /DviOrientationMatrix [ 0.240 0.000 0.000 -0.240 0.0 0.0 ] def % dvitps: BEGIN including file "/usr/local/lib/tex/pro/pixel-fonts.pro" /@newfont { /newname exch def newname 7 dict def newname load begin /FontType 3 def /FontMatrix [1 0 0 -1 0 0] def /FontBBox [0 0 1 1] def /BitMaps NumCharsInPixelFonts array def /BuildChar {CharBuilder} def /Encoding NumCharsInPixelFonts array def 0 1 NumCharsInPixelFonts 1 sub {Encoding exch /.undef put} for end newname newname load definefont pop } def /ch-image {ch-data 0 get} def /ch-width {ch-data 1 get} def /ch-height {ch-data 2 get} def /ch-xoff {ch-data 3 get} def /ch-yoff {ch-data 4 get} def /ch-tfmw {ch-data 5 get} def /CharBuilder { /ch-code exch def /font-dict exch def /ch-data font-dict /BitMaps get ch-code get def ch-data null eq not { ch-tfmw 0 ch-xoff neg ch-height ch-yoff sub neg ch-width ch-xoff neg add ch-yoff setcachedevice 0 0 transform round exch round exch itransform translate ch-width ch-height true [1 0 0 1 ch-xoff ch-height ch-yoff sub] {ch-image} imagemask } if } def /@dc { /ch-code exch def /ch-data exch def currentfont /BitMaps get ch-code ch-data put currentfont /Encoding get ch-code ( ) cvs % convert the character code to a string cvn ch-code exch put } def /@sf /setfont load def % dvitps: END including file "/usr/local/lib/tex/pro/pixel-fonts.pro" 3 @bop0 /@F4 @newfont @F4 @sf [< 03FFFC00001F8000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F 0000800F0020800F0020800F0020C00F0020400F0040400F0040600F00C0700F01C07FFFFF C0> 27 28 -1 27 30] 84 @dc [< 1F8700304E80603C40E01C40E01C40E01C40601C00701C00381C000F1C0001FC00001C0000 1C00301C00781C007838003070001FC000> 18 18 -2 17 21] 97 @dc [< 10F8001906001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C 00C01C01C01C01801E03001D86001C7C001C00001C00001C00001C00001C00001C00001C00 001C00001C00001C0000FC0000> 19 29 -1 28 23] 98 @dc [< FF801C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C 001C001C001C001C001C001C001C001C001C00FC00> 9 29 -1 28 12] 108 @dc [< 03E00C181804300270026000E000E000E000E000FFFEE0066006700E300C18180C3003E0> 15 18 -1 17 18] 101 @dc [< FFFE7FFE3FFE100218010C0106010300018000C0006000700038001C001C000E000E000F70 07F807F807F80FF00F400E400C201C183007C0> 16 28 -2 27 21] 50 @dc [< 60F0F0600000000000000000000060F0F060> 4 18 -4 17 12] 58 @dc [< 000007C0FFF01C200F003C200F0038100F0078100F0078100F0078000F0078000F0078000F 0078000F0078000F0078000F00F0000F00E0000F03C0000FFF00000F01E0000F0078000F00 3C000F001C000F001E000F001E000F001E000F001E000F001C000F003C000F0078000F01E0 00FFFF0000> 28 29 -2 27 31] 82 @dc [< FFE0FFE0> 11 2 0 9 14] 45 @dc [< FF801C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FC0000 0000000000000000000000000018003C003C001800> 9 29 -1 28 12] 105 @dc [< FF8FF8FF801C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01 C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001E01E01C 001D019018001C83883800FC7E07E000> 33 18 -1 17 35] 109 @dc [< 8FC0D060E010C018C0188018803800F80FF03FE07F80F800E010C010C010403030701F90> 13 18 -1 17 16] 115 @dc [< FF80001C00001C00001C00001C00001C00001C00001C00001CF8001D06001E03001C01801C 01C01C01C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01801E03001D86 00FC7C00> 19 26 -1 17 23] 112 @dc [< 03F0000E1C00180600300300700380600180E001C0E001C0E001C0E001C0E001C0E001C060 01807003803003001806000E1C0003F000> 18 18 -1 17 21] 111 @dc [< FF9FF01C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C 03801C03801E03801D03001C8700FC7C00> 20 18 -1 17 23] 110 @dc [< 83F800CC0C00D00200E00300C00180C001808001C08001C08001C00001C00003C00007C000 0F8000FF8007FF001FFE003FF8007FC0007C0000F80000F00000E00080E00080E00080E001 806001807003803005801C198007E080> 18 30 -2 28 23] 83 @dc [< 003F800000E0E0000380380007001C000E000E001C0007003C00078038000380780003C078 0003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F000 01E0700001C0780003C0780003C0380003803C0007801C0007000E000E0007001C00038038 0000E0E000003F8000> 27 30 -2 28 32] 79 @dc [< 00060000000600000006000000060000000600000006000000060000000600000006000000 060000000600000006000000060000FFFFFFE0FFFFFFE00006000000060000000600000006 00000006000000060000000600000006000000060000000600000006000000060000000600 00> 27 28 -2 23 32] 43 @dc [< 000600000006000000060000000F0000000F0000001F8000001E8000001E8000003C400000 3C4000003C4000007820000078200000F8300000F0100000F0100001F0080001E0080001E0 080003C0040003C0040003C0040007800200078002000F8003000F0001000F0001801F0003 C0FFE00FF0> 28 29 -1 27 31] 86 @dc [< FFC0FFF01F003F8006001F0002001E0003003C0001007C000080780000C0F8000041F00000 21E0000023E0000013C000000F8000000F8000000F0000001F0000001E0000003D0000007D 80000078800000F0400001F0600001E0200003E0100003C01800078018000FC03E007FF0FF C0> 28 28 -1 27 31] 88 @dc [< 07E01830201C401CF00EF80FF80FF80F700F000F000F000E001C001C003007E00060003000 18001C001C381E781E780E781E201C201C183007E0> 16 29 -2 27 21] 51 @dc [< FFFFF00F01F00F00700F00300F00100F00180F00180F00080F00080F00080F00000F00000F 00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00 000F00000F8000FFF800> 21 28 -2 27 26] 76 @dc [< 3C0000660000F30000F10000F0800000800000800000400000400000E00000E00000E00001 D00001D00003D8000388000388000704000704000704000E02000E02001C01001C01003C03 80FF07E0> 19 26 -1 17 22] 121 @dc [< FF0FF81E07C0040380060700020E00010E00009C0000F80000780000700000F00001D80001 C8000384000702000F03000F03807F8FF0> 21 18 0 17 22] 120 @dc [< 001800180000180018000018001800003C003C00003C003C00003C003C00003E007C00007A 007A00007A007A00007900FA0000F100F10000F100F10000F100F10001E081E08001E081E0 8001E081E08003E043C04003C043C04003C043C04003C02780400780278020078027802007 801F00200F001F00100F001F00100F001F00101E001E00181F001F003CFFE0FFE0FF> 40 29 -1 27 43] 87 @dc [< FFC01C001C001C001C001C001C001C001C001C001C001C001C001C301E781E781D30FCE0> 13 18 -1 17 16] 114 @dc [< FF9FE01C0F801C0F001C0E001C1C001C3C001C38001C78001E70001DE0001CE0001C40001C 20001C10001C08001C0C001C0F001C3FC01C00001C00001C00001C00001C00001C00001C00 001C00001C00001C0000FC0000> 19 29 -1 28 22] 107 @dc [< C000C0006000600060003000300030001800180018000C000C000C00060006000300030003 0001800180018000C000C000C000600060003000300030001800180018000C000C000C0006 0006000600030001> 16 41 -2 30 21] 47 @dc [< 00400000E00000E00000E00001D00001D00003D8000388000388000704000704000704000E 02000E02001C01001C01003C0380FF07E0> 19 18 -1 17 22] 118 @dc [< 07F8001C0E00300300600180C000C0C000C0C000C06001C03003801FFF801FFF001FF80018 000030000010000013C0000C30001C3800181800381C00381C00381C00381C001818001C38 800C38C003C4C0000380> 18 28 -1 18 21] 103 @dc /@F3 @newfont @F3 @sf [< C00000E00000E000007000007000007000007000003800003800003BE0E03E19901E07881C 03881C03881C03880E01C00E01C00E01C00E01C00700E00700E00700E00700E00380700380 70038070018030> 21 27 -1 17 25] 22 @dc @F4 @sf [< 07C00C301808300470046000E000E000E000E000E000E00060007030307818780C3007E0> 14 18 -2 17 18] 99 @dc @F4 @sf [< FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F 000F000F000F000F000F000F000F000F00FFF0> 12 28 -1 27 15] 73 @dc [< 03C00E200C101C101C101C101C101C101C001C001C001C001C001C001C001C001C00FFE03C 001C000C000C000400040004000400> 12 26 -1 25 16] 116 @dc [< 03E3F00E1B800C07801C07801C03801C03801C03801C03801C03801C03801C03801C03801C 03801C03801C03801C03801C0380FC1F80> 20 18 -1 17 23] 117 @dc [< 03E00C301818300C300E700660076007E007E007E007E007E007E006F00EF00CE818E430E3 E0600070007000300C301E181E0C0E0604030C00F0> 16 29 -2 27 21] 54 @dc [< FFF80F80070007000700070007000700070007000700070007000700070007000700070007 0007000700070007000700C7003F0007000300> 13 28 -4 27 21] 49 @dc [< 07E01C10300C60046002C003C003C003C003C007600F601E307E18FC07F807F01FE03FB03E 08780C70066006600660062006200C10080C3003E0> 16 29 -2 27 21] 56 @dc [< 07C018702038401C401E800EF00FF00FF00F600F000F000F000F000E200E301C2818243023 E02000200020002000200020003FC03FF03FF8300C> 16 29 -2 27 21] 53 @dc [< 07E00C301818300C300C700E60066006E007E007E007E007E007E007E007E007E007E007E0 07E007E00760066006700E300C300C18180C3003C0> 16 29 -2 27 21] 48 @dc [< 0F8030C0203070107818780C300C000E0006000607C70C271817300F700F6007E007E007E0 07E007E007E006E006600E700C300C18180C3003C0> 16 29 -2 27 21] 57 @dc [< 01FFC0001C00001C00001C00001C00001C00001C00001C00FFFFC0C01C00401C00201C0030 1C00101C00081C000C1C00041C00021C00031C00011C00009C0000DC00005C00003C00003C 00001C00000C00000C00> 18 28 -1 27 21] 52 @dc [< 03000007800007800007800007800007800007800003800003800003800003800001800001 800001C00000C00000C0000040000060000020000010000010008008008004008004004002 007FFF007FFF007FFF80400000> 17 29 -2 27 21] 55 @dc [< FFF87038700838083C0C1C040E040F040700038003C041C040E040F04070603870387FFC> 14 18 -1 17 18] 122 @dc [< 07C7E00C3700180F00300700700700600700E00700E00700E00700E00700E00700E0070060 0700700700300700180F000C170003E7000007000007000007000007000007000007000007 00000700000700000700003F00> 19 29 -2 28 23] 100 @dc [< 60F0F060> 4 4 -4 3 12] 46 @dc [< FFF3FFC00F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F 003C000F003C000F003C000F003C000F003C000FFFFC000F003C000F003C000F003C000F00 3C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C00FFF3FF C0> 26 28 -2 27 31] 72 @dc [< 7FE00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00E 000E000E000E000E000E000E0C061E071E018C00F8> 15 29 0 28 13] 102 @dc [< 001F00000070C00000C02000018010000380100007800800070008000F0004000F0004000F 0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F00 04000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F000E 00FFF07FC0> 26 29 -2 27 31] 85 @dc [< FF8004001C000C0008000C0008001C0008003C0008003C0008007C0008007C000800F40008 01E4000801E4000803C4000807C40008078400080F0400080F0400081E0400083C0400083C 04000878040008F8040008F0040009E0040009E004000BC004000F8004000F800E00FF007F C0> 26 28 -2 27 31] 78 @dc [< 008020000180300001C0700001C0700003C0680003A0E80003A0E8000720C4000711C40007 11C4000E1182000E0B82000E0B82001C0B01001C0701001C0701803C0F0380FF3FCFE0> 27 18 -1 17 30] 119 @dc [< FF9FF01C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C 03801C03801E03801D03001C87001C7C001C00001C00001C00001C00001C00001C00001C00 001C00001C00001C0000FC0000> 20 29 -1 28 23] 104 @dc [< 804020101008080868F8F060> 5 12 -4 28 12] 39 @dc [< 004000800100020006000C000C0018001800300030007000600060006000E000E000E000E0 00E000E000E000E000E000E000E000E000600060006000700030003000180018000C000C00 06000200010000800040> 10 42 -3 30 16] 40 @dc [< 800040002000100018000C000C000600060003000300038001800180018001C001C001C001 C001C001C001C001C001C001C001C001C0018001800180038003000300060006000C000C00 18001000200040008000> 10 42 -2 30 16] 41 @dc [< 804020201010101070F0F060> 4 12 -4 3 12] 44 @dc [< FF80FFF01E001F000C001F0004001E0004001E0006003E0002003C0002003C0003007C0001 FFF800010078000180F8000080F0000080F0000041E0000041E0000041E0000023C0000023 C0000023C000001780000017800000178000000F0000000F0000000F000000060000000600 0000060000> 28 29 -1 28 31] 65 @dc [< 003FE000070000070000070000070000070000070000070007C7000C3700180F00300F0070 0700600700E00700E00700E00700E00700E00700E00700700700700700300F00180B000C33 0003C100> 19 26 -2 17 22] 113 @dc [< 7F87F80E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E 01C00E01C00E01C00E01C00E01C0FFFFC00E00000E00000E00000E00000E00000E01800E03 C00703C003018001C180007E00> 21 29 0 28 23] 12 @dc [< 7FCFF80E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E 01C00E01C00E01C00E01C00E01C0FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01 C00703C00303C001C1C0007FC0> 21 29 0 28 23] 13 @dc [< 7F87FC000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E 01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC000E01 C0000E01C0000E01C0000E01C0000E01C0000E01C0000E03C1800703C3C00303E3C001C1B1 80007E1F00> 26 29 0 28 24] 11 @dc [< FFF0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F 00000FFF800F00E00F00780F003C0F001C0F001E0F001E0F001E0F001E0F001E0F001C0F00 3C0F00780F00E0FFFF80> 23 28 -2 27 28] 80 @dc [< FFFFFC0F003C0F000C0F00060F00060F00020F00020F00020F00010F02010F02000F02000F 02000F06000FFE000F06000F02000F02000F02000F02020F00020F00020F00060F00040F00 040F000C0F003CFFFFFC> 24 28 -2 27 28] 69 @dc [< FFF8000F80000F00000F00000F00000F00000F00000F00000F00000F02000F02000F02000F 02000F06000FFE000F06000F02000F02000F02000F02040F00040F00040F000C0F00080F00 080F00180F0078FFFFF8> 22 28 -2 27 27] 70 @dc [< 001F800000E060800180118007000B800E0007801C0007801C000780380007807800078078 00078070000780F0000F80F000FFF0F0000000F0000000F0000000F0000000F0000000F000 0000700000807800008078000080380001801C0001801C0003800E00038007000780018019 8000E06180001F8080> 28 30 -2 28 33] 71 @dc [< FFFFC0000F0070000F001C000F000E000F0007000F0007800F0003800F0003C00F0001C00F 0001C00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F00 01C00F0001C00F0003C00F0003800F0007000F0007000F000E000F003C000F00F000FFFFC0 00> 27 28 -2 27 32] 68 @dc [< FFFFE00F00780F003C0F001E0F001E0F000F0F000F0F000F0F000F0F000F0F000E0F001E0F 003C0F00780FFFE00F01F00F00780F003C0F001C0F001E0F001E0F001E0F001E0F001C0F00 3C0F00380F00F0FFFFC0> 24 28 -2 27 29] 66 @dc [< FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 C0C0FEFE> 7 41 -4 30 12] 91 @dc [< FEFE0606060606060606060606060606060606060606060606060606060606060606060606 0606FEFE> 7 41 0 30 12] 93 @dc [< 3E006180F1C0F0C060E000E000E000E000E000E000E000E000E000E000E000E000E000E000 E000E000E000E000E000E000E00FE0000000000000000000000000000000C001E001E000C0 > 11 37 3 28 13] 106 @dc [< 001FC00000E0300001800800070004000E0002001C0001001C000100380000807800008078 00008070000080F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000 0000700000807800008078000080380001801C0001801C0003800E00038007000780018019 8000E06180001F8080> 25 30 -2 28 30] 67 @dc [< FF8307FF801C030078000803007800080780780008078078000807807800080F407800080F 407800081E207800081E207800081E207800083C107800083C107800083C10780008780878 000878087800087808780008F004780008F004780008F004780009E002780009E00278000B C00178000BC00178000BC00178000F8000F8000F8000F800FF8000FF80> 33 28 -2 27 38] 77 @dc [< FFFFE0F803E07800E03C00603C00201E00201F00300F001007801007801003C01003E00001 E00000F00000F000007800007C00003C00001E00401E00400F00400F804007806003C06003 C07001E07C01F07FFFF0> 20 28 -2 27 25] 90 @dc [< 1F0021C040E0F0F0F878F878F8787078007800780078007800780078007800780078007800 780078007800780078007800780078007800F81FFF> 16 29 -1 27 21] 74 @dc 3 @eop0 0 0 3 @bop1 708 53 a @F4 @sf(T)m(able)13 b(2:)18 b(Real-Time)13 b(Resp)q (onse)-1322 55 y 2109 -2 z -1 50 a 2 -50 z 540 x 2 -50 z 130 -15 a(pSOS+) 130 15 y 2 -50 z 116 -15 a(VR)m(TX32)114 15 y 2 -50 z 123 -15 a(LynxOS)121 15 y 2 -50 z 113 -15 a(VxW)m(orks)111 15 y 2 -50 z -2109 50 a 2 -50 z 540 x 2 -50 z 26 -15 a(min/max/a)o -1 x(vg)f @F3 @sf(\026)p @F4 @sf(sec)26 15 y 2 -50 z 25 -15 a(min/max/a)o -1 x(vg)g @F3 @sf(\026)p @F4 @sf(sec)26 15 y 2 -50 z 25 -15 a(min/max/a)n(vg)g @F3 @sf(\026)p @F4 @sf(sec)26 15 y 2 -50 z 26 -15 a(min/ma)o(x/a)o(vg)o 13 x @F3 @sf(\026)p @F4 @sf(sec)25 15 y 2 -50 z -2108 2 a 2109 -2 z -1 49 a 2 -50 z 26 -15 a(In)o(terrupt)j(Service)g (Resp)q(onse)25 15 y 2 -50 z 145 -15 a(6/6/6)143 15 y 2 -50 z 145 -15 a (6/6/6)142 15 y 2 -50 z 114 -15 a(13/88/1)o(3)111 15 y 2 -50 z 134 -15 a (6/56/6)132 15 y 2 -50 z -2108 2 a 2109 -2 z -1 50 a 2 -50 z 26 -15 a(In)o (terrupt)g(T)m(ask)f(Resp)q(onse)67 15 y 2 -50 z 83 -15 a(100/169/1)o(63) 80 15 y 2 -50 z 82 -15 a(169/343/16)o(9)80 15 y 2 -50 z 82 -15 a (163/262/17)o(5)80 15 y 2 -50 z 83 -15 a(119/319)o(/125)o 80 15 a 2 -50 z -2108 2 a 2109 -2 z -21 166 a(VR)m(TX)24 b(to)g(customized)h(b)q(oards.) 50 b(Host)25 b(supp)q(ort)g(curren)o(tly)-1049 49 y(exists)20 b(only)e (for)h(SUN3/SUN4)g(with)g(Sun's)h(o)o(wn)f(proprietary)-1050 50 y(windo)o (wing)c(en)o(vironmen)o(t.)24 b(The)16 b(source)h(lev)o(el)f(debugger)h (\(R)m(T-)-1051 50 y(source\))12 b(and)f(the)g(sym)o(b)q(olic)f(debugger)i (\(R)m(Tscop)q(e\))f(can)g(function)-1050 50 y(across)i(an)f(ethernet/se)q (rial)h(link)e(b)q(et)o(w)o(een)i(the)g(host)f(and)g(target.)-1050 50 y (Lik)o(e)g(pSOS+,)h(breakp)q(oin)o(ts)g(can)f(b)q(e)h(set)g(at)g(task)f (as)g(w)o(ell)g(as)g(sys-)-1049 49 y(tem)17 b(lev)o(el.)26 b(T)m(asks)16 b (ma)o(y)g(b)q(e)h(stopp)q(ed)h(and)e(information)f(ab)q(out)-1050 50 y(k)o (ernel)20 b(data)f(structure)q(s)i(displa)o(y)o(ed.)34 b(A)20 b(run-time)f (shell)g(with)-1050 50 y(dynamic)13 b(linking)f(capabilit)o(y)g(is)h(a)o (v)n(ailabl)o(e)g(for)g(quic)o(k)g(protot)o(yp-)-1050 50 y(ing)j(of)g (applications.)26 b(Although)17 b(somewhat)g(daun)o(ting)f(to)g(the)-1049 50 y(\014rst-time)11 b(user,)h(VR)m(TX)d(is)i(an)f(extremely)h(\015exible)f (and)h(v)o(ersatile)-1050 50 y(system)k(to)e(the)i(initiated.)-383 49 y (VxW)m(orks)27 b(includes)i(a)e(pro)o(v)o(en)h(real-time)g(k)o(ernel)g (and)g(a)-1050 50 y(UNIX)21 b(cross-dev)o(elopmen)o(t)h(pac)o(k)n(age)e (with)h(extensiv)o(e)h(UNIX-)-1050 50 y(compatible)f(net)o(w)o(orking)g (facilities.)40 b(V)m(ersion)21 b(4.02)g(supp)q(orts)-1049 50 y(only)e(a)h (preemptiv)o(e)h(priorit)o(y)e(sc)o(heduling)h(k)o(ernel)g(while)g(V5.0) -1051 50 y(o\013ers)25 b(in)e(addition)g(round-robin)h(sc)o(heduling.)48 b (V)m(ersion)24 b(5.0)-1051 49 y(also)11 b(promises)h(b)q(etter)h(p)q (erformance)g(with)e(some)h(compliance)f(to)-1050 50 y(P)o(osix)18 b (1003.4)g(Real-Tim)o(e)g(Extensions.)34 b(VxW)m(orks)18 b(curren)o(tly)-1049 50 y(is)e(p)q(orted)g(to)g(a)f(n)o(um)o(b)q(er)h(of)f(di\013eren)o(t)i (target)f(b)q(oards)g(with)f(the)-1049 50 y(host)h(supp)q(ort)h(fully)d (implemen)o(ted)h(only)g(on)h(the)g(SUN3/SUN4)-1050 50 y(systems.)25 b (The)16 b(source-lev)o(el)g(debugger)h(is)e(a)h(remote)g(debugger)-1049 49 y(based)f(on)f(the)h(F)m(ree)g(Soft)o(w)o(are)e(F)m(oundation)g(GDB)h ([7].)k(The)d(de-)-1050 50 y(bugger)e(can)g(only)f(debug)i(single)e(tasks)i (and)f(curren)o(tly)g(do)q(es)h(not)-1050 50 y(ha)o(v)o(e)k(an)h(X11)f(in)o (terface.)32 b(A)19 b(sym)o(b)q(olic)e(debugger)j(with)e(some)-1050 50 y (system)e(status)g(displa)o(ys)e(is)h(also)g(standard.)22 b(Dynamic)14 b (loading)o -1051 50 a(of)i(ob)r(jects)i(o)o(v)o(er)e(the)i(net)o(w)o(ork)e (or)h(from)f(a)g(disk)h(together)g(with)-1050 50 y(an)d(in)o(teractiv)o(e)g (C-in)o(terpreter)h(in)o(terface)g(can)f(b)q(e)g(useful)g(during)-1050 49 y (the)g(dev)o(elopmen)o(t)g(cycle.)-370 50 y(LynxOS)d(pro)o(vides)g(a)f (complete)i(Unix)e(dev)o(elopmen)o(t)h(en)o(viron-)-1050 50 y(men)o(t.)20 b (It)15 b(can)g(also)f(b)q(e)h(used)h(for)e(a)g(cross-dev)o(e)q(lopmen)o(t)h (system)-1049 50 y(lik)o(e)h(the)h(other)g(three)h(k)o(ernels.)26 b(It)17 b (o\013ers)g(go)q(o)q(d)f(real-time)g(p)q(er-)-1049 50 y(formance)c(with)f (memory)g(protection.)18 b(LynxOS)12 b(1.21)e(curren)o(tly)-1049 49 y (o\013ers)16 b(compliance)e(to)h(P)o(osix)g(1003.1)o(,)f(SVID)g(4.2)g(and)h (BSD)g(4.3)-1051 50 y(with)f(future)g(releases)i(complying)d(with)g (1003.4)f(Draft)i(9)g(\(Real-)-1051 50 y(Time)20 b(Extensions\).)37 b(It) 21 b(has)f(b)q(een)h(p)q(orted)g(to)f(four)g(di\013eren)o(t)-1049 50 y (computer)c(arc)o(hitectures.)23 b(It)15 b(has)g(a)f(Unix)h(System)g(V.3)f (binary)-1050 50 y(compatible)g(in)o(terface)g(built)g(in)o(to)g(the)g (LynxOS)h(k)o(ernel)g(so)f(that)-1050 49 y(binaries)k(w)o(ork)h(under)g (LynxOS)g(and)f(the)h(standard)g(Unix)f(for)-1050 50 y(that)j(arc)o (hitecture)q 22 x(without)g(mo)q(di\014cation.)39 b(The)21 b(debug)h(en-) -1050 50 y(vironmen)o(t)17 b(consists)h(of)f(GDB)g(as)g(the)h(source-lev)o (el)h(debugger.)-1050 50 y(There)c(is)f(presen)o(tly)h(no)e(k)o(ernel)i (debugger.)-351 81 y(V.)f(CONCLUSIONS)-663 81 y(It)21 b(has)g(b)q(een)i (our)e(exp)q(erience)q 23 x(that)g(a)g(compile-do)o(wnload-)o -1051 50 a (debug)12 b(cycle)h(common)e(with)h(all)f(the)i(em)o(b)q(edded)g(systems)g (is)f(not)-1050 50 y(a)g(ma)r(jor)f(problem)h(for)f(us,)h(Etherne)q(t)h (and)f(NFS)g(links)f(mak)o(e)h(this)-1050 50 y(a)i(sp)q(eedy)h(pro)q (cess.)830 -2354 y(It)k(has)f(b)q(ecome)h(apparen)o(t)f(the)h(imp)q (ortance)f(of)f(compliance)-1050 49 y(with)j(standards.)37 b(Standards)20 b (adherence)q 21 x(mak)o(es)g(co)q(de)h(more)-1050 50 y(p)q(ortable.)d(W)m (e)13 b(had)h(to)f(e\013ectiv)o(ely)i(rewrite)f(all)f(the)h(tests)h(for)e (all)-1051 50 y(the)h(k)o(ernels)h(b)q(ecause)h(of)d(the)i(in)o(terface)f (di\013erences)q(.)-809 50 y(Another)19 b(conclusion)e(is)h(the)g(imp)q (ortance)f(of)g(ha)o(ving)g(a)g(ma-)-1051 50 y(ture)d(debugging)f(en)o (vironmen)o(t,)g(a)g(source-lev)o(el)h(remote)g(debug-)-1050 49 y(ger)19 b (with)f(a)h(X11)f(Windo)o(ws)g(in)o(terface)h(that)g(can)g(debug)g(opti-) -1051 50 y(mized)13 b(co)q(de)h(is)e(extremely)i(useful.)k(A)13 b(go)q(o)q (d)f(k)o(ernel)h(debugger)h(is)-1050 50 y(also)d(v)o(ery)h(imp)q(ortan)o (t,)f(allo)o(wing)f(the)i(user)h(to)f(halt)f(all)g(tasks)h(and)-1050 50 y (examine)i(states)h(of)f(an)o(y)f(individual)f(task)j(with)e(relationship)h (to)-1050 50 y(other)g(tasks.)-170 50 y(After)h(w)o(e)e(factor)h(in)f(the)h (hardw)o(are)f(di\013erence)q(s)i(b)q(et)o(w)o(een)g(our)-1050 49 y(en)o (vironmen)o(t)e(and)g(the)g(individual)e(v)o(endors')i(test)h(b)q(ed,)g (most)f(of)-1051 50 y(the)j(timing)d(results)j(w)o(e)g(obtain)e(agrees)i (surprisingly)f(w)o(ell)f(with)-1050 50 y(the)g(resp)q(e)q(ctiv)o(e)h(v)o (endors')f(published)g(v)n(alues.)-696 50 y(F)m(urthermore,)e(w)o(e)f (realize)g(that)g(di\013erences)q 12 x(in)f(compilers)h(can)-1050 50 y (con)o(tribute)19 b(to)f(the)g(o)o(v)o(erall)f(p)q(erformance)i(of)f(the)g (k)o(ernels)h(and)-1050 49 y(will)12 b(require)j(further)g(in)o(v)o (estigation.)-560 50 y(Finally)m(,)o 16 x(the)i(more)f(hosts)h(and)f (targets)i(that)e(a)g(giv)o(en)g(cross-)-1049 50 y(dev)o(elopmen)o(t)j(k)o (ernel)g(supp)q(orts,)h(the)g(more)e(attractiv)o(e)h(it)f(will)-1051 50 y (b)q(e,)g(esp)q(ecially)f(in)g(a)f(v)n(astly)h(heterogeneous)i(en)o (vironmen)o(t)e(lik)o(e)-1051 50 y(the)d(SSC.)270 112 y(Reference)q(s)-203 15 y 219 -2 z -395 76 a([1])19 b(Motorola,)12 b(Inc.,)h(T)m(ec)o(hnical)g (Systems)h(Division,)e(P)m(.O.)g(Bo)o(x)-965 50 y(2953,)h(Pho)q(enix)h(AZ)g (85062)-510 66 y([2])19 b(Soft)o(w)o(are)h(Comp)q(onen)o(t)h(Group,)g (Inc.,)g(1731)f(T)m(ec)o(hnology)-966 50 y(Driv)o(e,)13 b(San)h(Jose,)g (CA)g(95110,)e(\(408\))i(437-0700)o -844 66 a([3])19 b(Ready)k(Systems,)j (Inc.,)f(470)e(P)o(otrero)h(Av)o(e.,)h(P)m(.O.)d(Bo)o(x)-965 50 y(60217,) 12 b(Sunn)o(yv)n(ale,)h(CA)h(94086)-582 67 y([4])19 b(Wind)32 b(Riv)o(er)h (Systems,)38 b(Inc.,)f(1010)31 b(A)o(tlan)o(tic)i(Av)o(e.,)-966 49 y (Alameda,)13 b(CA)h(94501,)e(\(415\))h(748-4100)-723 67 y([5])19 b(Lynx) 14 b(Real-Time)f(Systems,)i(Inc.,)e(16780)g(Lark)h(Av)o(e.,)g(Los)-965 50 y (Gatos,)f(CA)h(95030,)e(\(408\))i(354-7770)o -669 66 a([6])19 b(Microtec)e (Researc)o(h,)f(Inc.,)g(2350)e(Mission)h(College)g(Blvd.,)-966 50 y(San)o (ta)f(Clara,)e(CA)i(95054,)e(\(408\))i(980-1300)-779 66 y([7])19 b(F)m (ree)i(Soft)o(w)o(are)f(F)m(oundation,)f(675)h(Massac)o(h)o(usetts)i(Av)o (e.,)-966 50 y(Cam)o(bridge,)13 b(MA)h(02139)432 669 y(P)o(age)g(3)-2052 b 3 @eop1 2 @bop0 @F4 @sf [< 01800180018001804182F18F399C0FF003C003C00FF0399CF18F41820180018001800180> 16 18 -2 30 21] 42 @dc [< 00000F0000001F8000003FC000003FC0000038E00000306000006020003FE02000F0E02003 A0780007205C000E208E001C1107003C0E078038000380780003C0780003C0700001C0F000 01E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003 C0780003C0380003803C0007801C0007000E000E0007001C000380380000E0E000003F8000 > 27 37 -2 28 32] 81 @dc /@F2 @newfont @F2 @sf [< 0C00000E00000E000007000007000007000003000003800003800001800001C00000C00000 C000006000006000006000003000001000001800800800800C00400400400600601A003027 003C61001FE08017E08009C040> 18 29 -7 27 21] 55 @dc [< 60F07830> 5 4 -4 3 13] 46 @dc [< 000380000007E0000007F000000FF000000E18000006080000040C0003FC04000F0E04001D 0780003905C0007104E0007080700070783800F0001C00F0001E00F0000E00F0000F00F000 0F00F0000780F0000780F0000780780003C0780003C0780003C03C0003C03C0003C01C0003 C01E0003C00E0003C0070003800380038001C0078000E0070000700E00001C1C000007F000 > 26 37 -6 28 32] 81 @dc [< 078E001C59001839001838803838803838801C1C001C1C001C1C001C1C000E0E000E0E0087 0E00870E004707004707002707001E0300> 17 18 -4 17 22] 117 @dc [< 1F0030C060206010E008E000E000E000E000E0007F8070607010381018080C10071001E0> 13 18 -5 17 19] 101 @dc [< FFF000000F0000000700000007000000070000000700000003800000038000000380000003 81000001C0800001C0800001C0800001C0800000FFC00000E0C00000E0400000E040000070 2000007020800070008000700080003800800038008000380080003800C0003C01C001FFFF C0> 26 28 -3 27 27] 70 @dc [< 3C0072007200710071007100380038001C001C001C000E008E008E004700470026001C0000 00000000000000000000000000010003800180> 9 28 -4 27 13] 105 @dc [< 38006800E400E400E400E400700070007000700038003800380038001C001C001C001C000E 000E000E000E000700070007000700038003801F80> 9 29 -4 28 11] 108 @dc [< 800000C000006000006000003000003000001800001800000C00000C000006000003000003 000001800001800000C00000C000006000003000003000001800001800000C00000C000006 000006000003000001800001800000C00000C000006000006000003000003000001800000C 00000C000006000006000002> 23 41 -1 30 21] 47 @dc [< FFFF00000E01C000070070000700380007001C0007000E0003800700038007800380038003 8003C001C001C001C001E001C001E001C001E000E000F000E000F000E000F000E000F00070 00F00070007000700070007000F0003800E0003800E0003801C0003801C0003C078001FFFE 00> 28 28 -3 27 31] 68 @dc [< 3000700038003800380038001C001C001C001C000E000E008E008E064707468726C23C3C> 16 18 -4 17 18] 114 @dc [< 3C38626461E4C0E2C0E2E0E2E070E070E070E0707038703830383838181C0C3C063C03CC> 15 18 -5 17 21] 97 @dc [< 300E00701900383880383840381C40381C401C1C001C0E001C0E001C0E000E07000E07008E 07008E07004707004687002646003C3C00> 18 18 -4 17 23] 110 @dc @F2 @sf [< 0F000030C000602000601000C01800C00C00C00C00600600600600600600300E00180E0008 1E00063C0003780001F00003F00003CC000786000703000601800601800601800300C00300 C0018080008180006100001E00> 18 29 -4 27 21] 56 @dc [< FF00FFC01C001E000C000E0004000E0002001C0002001C0001001C0001801C0000801C0000 401C00007FFC0000201C0000201C0000101C0000181C0000081C0000041C0000041C000002 3C0000023800000138000001B8000000B80000007800000078000000380000003800000018 0000001800> 26 29 -2 28 31] 65 @dc [< 1E00318060C0E060E030E038E018E01CE01CE01C700E700E300E380C180C0C0C071801E0> 15 18 -5 17 21] 111 @dc [< 1F0030C06020E010E008E000E000E000E000E0007000700030003838181C0C08070801F0> 14 18 -5 17 19] 99 @dc [< 0E00190038803840384038401C001C001C001C000E000E000E000E00070007000700FFE003 8003800380038001C001C001C000C0> 11 26 -3 25 14] 116 @dc [< 7E00C300E1C0C0C000E000E0007000700F7018F01878303830383838381C381C381C381C1C 0E1C0E0C0E0E0E0607030F018F00F3> 16 26 -3 17 19] 103 @dc [< FF861FFC001C0601E0000C0700E000040700E000040780E000040740E00002074070000207 207000020720700002071070000107103800010708380001070438000107043800008E021C 00008E021C00008E011C00008E011C00004E008E00004E004E00004E004E00004E002E0000 2E002700002E001700002E001700002E000F00003E00078001FE0007F8> 37 28 -3 27 37] 77 @dc [< 300C01C0701C0320380E0710380E0708380E0388380E03881C0703801C0701C01C0701C01C 0701C00E0380E00E0380E08E0380E08E0380E04703C0E04683A0E0266318C03C1E0780> 29 18 -4 17 34] 109 @dc [< 3C0047008180E1C0E0C000E00070007007F01C7018381838383838381C1C1C1C1C1C1C1C0E 0E0E0E870E870E4707470727071E03> 16 26 -4 17 20] 121 @dc @F4 @sf [< 007FF800000780000007800000078000000780000007800000078000000780000007800000 0780000007800000078000000FC000000F4000001F2000001E2000003C1000007C18000078 080000F8040000F0040001F0020003E0020003C0010007C00180078000800F8001E0FFF007 FC> 30 28 0 27 31] 89 @dc [< 804020201010101070F0F0600000000000000000000060F0F060> 4 26 -4 17 12] 59 @dc 2 @eop0 0 0 2 @bop1 648 53 a @F4 @sf(T)m(able)13 b(1:)18 b(Throughput)c (Measuremen)o(ts)-1402 97 y 2162 -2 z -1 50 a 2 -50 z 26 -15 a(T)m(est)g (Description)269 15 y 2 -50 z 130 -15 a(pSOS+)129 15 y 2 -50 z 117 -15 a (VR)m(TX32)113 15 y 2 -50 z 123 -15 a(LynxOS)122 15 y 2 -50 z 113 -15 a (VxW)m(orks)111 15 y 2 -50 z -2162 50 a 2 -50 z 593 x 2 -50 z 26 -15 a (min/max/)o(a)o(vg)e @F3 @sf(\026)p @F4 @sf(sec)25 15 y 2 -50 z 26 -15 a (min/max/)o(a)o(vg)g @F3 @sf(\026)p @F4 @sf(sec)25 15 y 2 -50 z 26 -15 a (min/max/a)o -1 x(vg)g @F3 @sf(\026)p @F4 @sf(sec)26 15 y 2 -50 z 25 -15 a (min/max/a)n(vg)g @F3 @sf(\026)p @F4 @sf(sec)26 15 y 2 -50 z -2161 2 a 2162 -2 z -1 49 a 2 -50 z 26 -15 a(Create/Delete)j(T)m(ask)212 15 y 2 -50 z 83 -15 a(540/600/)o(591)79 15 y 2 -50 z 83 -15 a(370/380/3)o(71)79 15 y 2 -50 z 187 -15 a(*)185 15 y 2 -50 z 51 -15 a(1378/1446)o(/1423)o 49 15 a 2 -50 z -2161 2 a 2162 -2 z -1 50 a 2 -50 z 26 -15 a(Ping)e(Susp)q(end/Resume)j(T)m (ask)56 15 y 2 -50 z 83 -15 a(120/130/)o(128)79 15 y 2 -50 z 83 -15 a (140/150/1)o(42)79 15 y 2 -50 z 187 -15 a(*)185 15 y 2 -50 z 82 -15 a (174/182/17)o(7)80 15 y 2 -50 z -2161 2 a 2162 -2 z -1 49 a 2 -50 z 26 -15 a (Susp)q(end/Resume)f(T)m(ask)154 15 y 2 -50 z 114 -15 a(80/90/83)110 15 y 2 -50 z 114 -15 a(80/90/87)110 15 y 2 -50 z 187 -15 a(*)185 15 y 2 -50 z 113 -15 a(68/74/69)111 15 y 2 -50 z -2161 2 a 2162 -2 z -1 50 a 2 -50 z 26 -15 a(Ping)e(Semaphore)272 15 y 2 -50 z 83 -15 a(210/220/)o(219)79 15 y 2 -50 z 83 -15 a(230/250/2)o(39)79 15 y 2 -50 z 83 -15 a(390/400/3)o(97) 80 15 y 2 -50 z 82 -15 a(228/234/23)o(2)80 15 y 2 -50 z -2161 2 a 2162 -2 z -1 49 a 2 -50 z 26 -15 a(Getting/Releasing)g(Semaphore)24 15 y 2 -50 z 114 -15 a(63/64/63)110 15 y 2 -50 z 114 -15 a(55/56/55)110 15 y 2 -50 z 114 -15 a(73/76/74)111 15 y 2 -50 z 113 -15 a(33/34/33)111 15 y 2 -50 z -2161 2 a 2162 -2 z -1 50 a 2 -50 z 26 -15 a(Queue)i(Fill)375 15 y 2 -50 z 114 -15 a(40/50/46)110 15 y 2 -50 z 114 -15 a(20/30/26)110 15 y 2 -50 z 83 -15 a (136/146/1)o(40)80 15 y 2 -50 z 113 -15 a(19/21/20)111 15 y 2 -50 z -2161 2 a 2162 -2 z -1 49 a 2 -50 z 26 -15 a(Queue)g(Drain)334 15 y 2 -50 z 114 -15 a(40/50/43)110 15 y 2 -50 z 114 -15 a(20/40/29)110 15 y 2 -50 z 83 -15 a (126/136/1)o(32)80 15 y 2 -50 z 113 -15 a(21/25/22)111 15 y 2 -50 z -2161 2 a 2162 -2 z -1 50 a 2 -50 z 26 -15 a(Queue)g(Fill)e(Urgen)o(t)238 15 y 2 -50 z 114 -15 a(40/50/47)110 15 y 2 -50 z 114 -15 a(20/30/27)110 15 y 2 -50 z 83 -15 a(166/175/1)o(70)80 15 y 2 -50 z 113 -15 a(70/76/72)111 15 y 2 -50 z -2161 2 a 2162 -2 z -1 49 a 2 -50 z 26 -15 a(Single)g(Queue)i (Fill/Drai)o(n)129 15 y 2 -50 z 114 -15 a(90/93/91)110 15 y 2 -50 z 114 -15 a(50/70/59)110 15 y 2 -50 z 83 -15 a(270/290/2)o(78)80 15 y 2 -50 z 113 -15 a(43/48/44)111 15 y 2 -50 z -2161 2 a 2162 -2 z -1 49 a 2 -50 z 26 -15 a(Alternate)g(Queues)g(Fill/Drai)o(n)49 15 y 2 -50 z 83 -15 a (230/240/)o(238)79 15 y 2 -50 z 83 -15 a(250/260/2)o(52)79 15 y 2 -50 z 83 -15 a(860/900/8)o(67)80 15 y 2 -50 z 82 -15 a(366/376/37)o(1)80 15 y 2 -50 z -2161 2 a 2162 -2 z -1 50 a 2 -50 z 26 -15 a(Allo)q(cate)f(Memory) 253 15 y 2 -50 z 114 -15 a(40/40/40)110 15 y 2 -50 z 114 -15 a(20/30/27) 110 15 y 2 -50 z 114 -15 a(34/79/57)111 15 y 2 -50 z 113 -15 a(67/71/68) 111 15 y 2 -50 z -2161 2 a 2162 -2 z -1 49 a 2 -50 z 26 -15 a(Deallo)q (cate)f(Memory)214 15 y 2 -50 z 114 -15 a(30/40/38)110 15 y 2 -50 z 114 -15 a(30/40/33)110 15 y 2 -50 z 114 -15 a(20/21/20)111 15 y 2 -50 z 113 -15 a(82/86/83)111 15 y 2 -50 z -2161 2 a 2162 -2 z 166 w(long)18 b(it)g (tak)o(es)h(to)g(drain)f(the)i(queue.)33 b(Finally)17 b(w)o(e)i(rep)q(eat)h (the)-1049 50 y(t)o(w)o(o)15 b(tests)h(with)f(priorit)o(y)f(messages)i (i.e.)21 b(messages)c(are)e(sen)o(t)h(to)-1050 50 y(the)j(head)g(of)e(the)i (queue.)33 b(VxW)m(orks)18 b(4.02)f(do)q(es)i(not)f(supp)q(ort)-1049 49 y (message)12 b(queues)h(but)f(ring)g(bu\013ers)h(with)e(semaphores)i(giv)o (es)e(the)-1049 50 y(functionalit)o(y)g(of)h(a)g(message)i(queue.)k (LynxOS)13 b(uses)h(SysV)f(mes-)-1050 50 y(sage)h(queues)h(with)f(priorit)o (y)f(messages)i(handled)f(di\013eren)o(tly)m(.)-995 52 y @F2 @sf(7.)28 b (Queue)19 b(Fil)r(l/Dr)n(ain)d @F4 @sf(A)i(single)e(task)i(sends)g(a)f (message)h(to)f(a)-1050 50 y(queue)j(whic)o(h)f(the)h(task)g(immediately)e (receiv)o(es)j(on)e(the)h(same)-1050 49 y(queue.)30 b(There)19 b(is)e(no)h (task)f(con)o(text)i(switc)o(h)e(nor)h(is)g(there)g(an)o(y)-1050 50 y(p)q (ending)f(queue)h(op)q(erations.)27 b(The)18 b(next)f(test)h(consists)g (of)e(t)o(w)o(o)-1050 50 y(tasks)f(with)f(t)o(w)o(o)g(queues.)20 b(The)15 b (t)o(w)o(o)f(tasks)g(alternate)h(execution)-1049 50 y(b)o(y)10 b(sending)g (to)g(the)g(queue)h(that)f(the)g(other)h(is)f(blo)q(c)o(k)o(ed)g(w)o (aiting)e(to)-1050 50 y(receiv)o(e)j(from.)k(The)10 b(total)f(time)g(no)o (w)f(includes)i(con)o(text)g(switc)o(hes,)-1049 50 y(queue)15 b(p)q(ends)g (and)e(sending)i(plus)e(rece)q(iving)h(a)f(message.)-922 51 y @F2 @sf(8.) 24 b(A)o(l)r(lo)n(c)n(ating/De)n(al)r(lo)n(c)n(ating)16 b(Memory)g @F4 @sf (W)m(e)f(measure)i(the)f(time)-1050 50 y(it)j(tak)o(es)g(to)g(allo)q(cate)f (a)h(n)o(um)o(b)q(er)g(of)f(bu\013ers)j(from)d(a)g(memory)-1050 50 y (partition)d(and)i(the)f(time)g(it)g(tak)o(es)h(to)f(return)h(those)g (bu\013ers)h(to)-1050 50 y(the)c(partition.)6 100 y(I)q(I)q(I.)f (REAL-TIME)h(RESPONSE)-758 99 y(The)e(Motorola)f(MVME147S-1)g(includes)h (an)g(auxiliary)e(timer)-1050 50 y(capable)18 b(of)g(generating)g(in)o (terrupts.)32 b(A)19 b(driv)o(er)f(for)g(the)h(timer)-1050 50 y(w)o(as)13 b (written)h(for)f(all)e(four)i(k)o(ernels.)19 b(W)m(e)13 b(quan)o(tify)f (the)h(real-time)-1050 50 y(resp)q(onse)j(of)d(the)h(k)o(ernels)h(b)o(y)e (measuring)h(the)g(in)o(terrupt)h(service)-1049 50 y(resp)q(onse)k(and)f (the)g(in)o(terrupt)g(task)g(resp)q(onse.)30 b(The)18 b(in)o(terrupt)-1049 49 y(service)c(resp)q(onse)h(is)d(the)h(time)g(it)f(tak)o(es)h(to)f (execute)q 14 x(the)h(\014rst)h(in-)-1051 50 y(struction)h(of)g(an)f(in)o (terrupt)i(service)g(routine)f(\(ISR\))f(from)g(when)-1049 50 y(the)e(in)o (terrupt)f(o)q(ccurs.)19 b(The)11 b(task)h(resp)q(onse)h(is)d(the)i(time)f (it)g(tak)o(es)-1050 50 y(for)16 b(a)f(user)j(task)e(to)g(resume)h (execution)f(from)g(when)g(the)h(in)o(ter-)-1050 50 y(rupt)e(o)q(ccurs.) 20 b(These)c(measuremen)o(ts)f(w)o(ere)h(tak)o(en)e(o)o(v)o(er)g(a)g (large)-1050 49 y(n)o(um)o(b)q(er)e(of)f(times)g(and)h(the)g(maxim)o(um)o (,)e(minim)o(um)g(and)h(a)o(v)o(erage)-1050 50 y(times)i(are)h(rep)q (orted)h(o)o(v)o(er)f(the)g(span)f(of)g(the)h(test.)19 b(The)14 b(LynxOS) -1050 50 y(w)o(as)j(the)h(only)e(k)o(ernel)i(with)f(a)f(SCSI)i(disk)f (attac)o(hed)g(to)g(it)g(and)-1050 50 y(all)12 b(k)o(ernels)j(had)e(net)o (w)o(ork)h(attac)o(hmen)o(ts)g(and)g(a)f(real-time)g(clo)q(c)o(k)-1050 50 y (as)19 b(other)h(sources)g(of)f(in)o(terrupts.)35 b(The)19 b(source)h(of)f (in)o(terrupts)-1049 50 y(for)f(the)h(actual)e(measuremen)o(t)j(w)o(as)e (an)g(auxili)o(ary)f(coun)o(ter)i(on)51 -1798 y(the)d(MVME147S-1)f(and)h (the)g(measuremen)o(t)h(task)e(runs)i(at)e(the)-1049 50 y(highest)f (priorit)o(y)m(.)-248 50 y(T)o(ypically)m(,)c(a)h(user)h(task)g(is)f(blo)q (c)o(k)o(ed)g(w)o(aiting)f(for)h(a)g(semaphore)-1049 49 y(to)20 b(b)q(e)h (released)h(b)o(y)e(the)h(ISR.)e(The)i(coun)o(ter)g(is)f(programmed)-1050 50 y(to)e(start)h(coun)o(ting)e(up)i(from)e(a)h(preset)i(v)n(alue)d(to)h (a)g(maxim)o(um)o -1051 50 a(v)n(alue)11 b(when)h(it)f(will)f(generate)j (an)f(in)o(terrupt,)g(resets)q 13 x(itself)f(to)g(the)-1049 50 y(preset) 21 b(v)n(alue)d(and)h(b)q(egins)g(coun)o(ting)g(up)g(again.)32 b(Eac)o(h) 20 b(coun)o(t)-1050 50 y(corresp)q(onds)e(to)d(6.25)g @F3 @sf(\026)p @F4 @sf (s.)24 b(The)16 b(ISR)f(then)i(immediately)d(reads)-1049 50 y(the)h(coun)o (ter,)h(whic)o(h)f(giv)o(es)g(the)g(in)o(terrupt)h(resp)q(onse)h(time,)d (and)-1050 49 y(then)g(releases)g(the)g(semaphore.)k(When)c(the)f(k)o (ernel)h(resc)o(hedules)-1048 50 y(the)19 b(user)g(task)g(after)f (completion)g(of)f(the)i(ISR,)f(the)g(user)i(task)-1050 50 y(b)q(ecomes)i (un)o(blo)q(c)o(k)o(ed,)f(reads)h(the)f(coun)o(ter)g(whic)o(h)g(then)g (giv)o(es)-1050 50 y(the)14 b(task)g(resp)q(onse)q 15 x(time.)-94 77 y (IV.)f(OBSER)-5 b(V)g(A)q -3 x(TIONS)-681 76 y(pSOS+)15 b(is)e(a)g(robust)h (real-time)e(k)o(ernel.)19 b(Co)q(de)13 b(can)h(b)q(e)g(dev)o(el-)-1050 50 y(op)q(ed)j(on)g(a)g(n)o(um)o(b)q(er)g(of)g(di\013eren)o(t)h(host)f (platforms)g(and)f(do)o(wn-)-1050 50 y(loaded)d(to)g(the)g(target)h(with)e (the)i(\014nal)f(application)e(stand-alone)-1050 50 y(in)22 b(R)o(OM.)f (Soft)o(w)o(are)h(Comp)q(onen)o(ts)g(Group)g(\(SCG\))g(supp)q(orts)-1049 50 y(pSOS+)e(on)g(man)o(y)f(target)h(systems)h(and)e(pro)o(vides)h(source)h (to)-1050 50 y(driv)o(ers)h(making)d(p)q(orts)j(to)e(sp)q(ecialized)i(b)q (oards)f(easier.)40 b(The)-1049 49 y(XRA)m(Y+)19 b(debugger,)i(based)f(on)f (the)h(p)q(opular)f(XRA)m(Y)g(debug-)-1050 50 y(ger)d(from)f(Microtec)i ([6])e(is)g(capable)h(of)f(debugging)g(target)i(resi-)-1050 50 y(den)o(t)g (optimized)f(C)g(source)i(co)q(de)f(across)g(ethernet)q 17 x(or)g(RS-232.)o -1051 50 a(There)g(is)e(also)g(an)g(X11)g(in)o(terface)h(whic)o(h)f(o\013ers)i (increased)g(v)o(er-)-1050 50 y(satilit)o(y)m(.)o 17 x(In)12 b(addition)g (to)g(task-lev)o(el)h(breakp)q(oin)o(ts,)g(system-lev)o(el)-1050 49 y (breaks)21 b(can)f(also)g(b)q(e)h(set)g(at)f(the)h(system-lev)o(el;)i (stopping)d(all)-1051 50 y(tasks.)h(This)14 b(allo)o(ws)g(access)i(to)f (the)g(on)o(b)q(oard)f(monitor)g(and)g(the)-1049 50 y(state)h(of)e(all)g (pSOS+)i(ob)r(jects.)20 b(Optional)13 b(comp)q(onen)o(ts)i(pro)o(vide)-1050 50 y(UNIX-compatible)10 b(net)o(w)o(ork)i(faciliti)o(es)f(and)f(an)h(ANSI)g (standard)-1049 50 y(run-time)j(library)m(.)j(Field)c(supp)q(ort)i(w)o(as)f (excellen)o(t.)-785 49 y(VR)m(TX,)20 b(from)h(Ready)g(Systems,)i(pro)o (vides)e(a)g(full)f(comple-)-1050 50 y(men)o(t)11 b(of)f(supp)q(ort)h (soft)o(w)o(are)g(in)f(addition)f(to)i(the)g(VR)m(TX/32)e(real-)-1050 50 y (time)15 b(k)o(ernel.)24 b(These)17 b(include)f(pac)o(k)n(ages)g(for)f (I/O)h(\014le)g(manage-)-1051 50 y(men)o(t,)d(net)o(w)o(orking,)g(m)o (ultipro)q(cessing)g(and)g(a)g(run-time)h(library)m(.)o -1051 50 a(VR)m (TX)f(is)g(supp)q(orted)h(on)f(sev)o(eral)h(commercially)e(a)o(v)n(ail)o (able)g(tar-)-1050 50 y(get)24 b(b)q(oards)h(with)f(supp)q(orting)g(do)q (cumen)o(tation)g(for)g(p)q(orting)-122 311 y(P)o(age)14 b(2)-2052 b 2 @eop1 1 @bop0 /@F1 @newfont @F1 @sf [< 000FE00000783C0000E00E0003C00780078003C00F0001E00F0001E01E0000F03E0000F83C 0000787C00007C7C00007C7800003CF800003EF800003EF800003EF800003EF800003EF800 003EF800003EF800003EF800003E7800003C7800003C7C00007C7C00007C3C0000783C0000 781E0000F00E0000E00F0001E0078003C003C0078000E00E0000783C00000FE000> 31 36 -3 34 38] 79 @dc [< 0000C000000000C000000000C000000001E000000001E000000003F000000003D000000003 D0000000078800000007880000000F8C0000000F040000000F040000001F020000001E0200 00001E020000003C010000003C010000007C0180000078008000007800800000F000400000 F000400000F000400001E000200001E000200003E000300003C000100003C0001000078000 080007800008000780000C000F00000C001F80001F00FFF0007FC0> 34 35 -1 33 37] 86 @dc [< FFFFFFE00F8003E0078000E007800070078000300780003007800010078000100780001007 8000080780000807802008078020000780200007802000078060000780E00007FFE0000780 E0000780600007802000078020000780200007802020078000200780002007800020078000 600780004007800040078000C0078001C00F8007C0FFFFFFC0> 29 34 -2 33 33] 69 @dc [< 0000007C00FFFC01E2000FC003C100078007C08007800FC08007800F808007800F80000780 0F800007800F800007800F000007800F000007800F000007800F000007800E000007801E00 0007801C00000780380000078070000007FFE0000007803C000007800E0000078007800007 8007C000078003C000078003E000078003E000078003E000078003E000078003E000078003 C000078007C000078007800007800E00000F803C0000FFFFE00000> 33 35 -2 33 36] 82 @dc [< FFFC0FC0078007800780078007800780078007800780078007800780078007800780078007 8007800780078007800780078007800780078007800780078007800FC0FFFC> 14 34 -2 33 18] 73 @dc [< 00020000800000030001800000070001C00000070001C00000070001C000000F8003E00000 0F8003E000000F8003E000001E40079000001E40079000001E40079000003C200F0800003C 200F0800003C200F0800007C101E04000078101E04000078101E040000F8183E060000F008 3C020000F0083C020000F0083C020001E00478010001E00478010001E00478010003C002F0 008003C002F0008003C002F00080078001E00040078001E00040078001E000400F0003C000 200F0003C000200F0003C000701F8007E000F8FFF03FFC03FE> 47 35 -1 33 50] 87 @dc [< FFFE00000FC000000780000007800000078000000780000007800000078000000780000007 8000000780000007802000078020000780200007802000078060000780E00007FFE0000780 E0000780600007802000078020000780200007802020078000200780002007800020078000 600780004007800040078000C0078001C00F8007C0FFFFFFC0> 27 34 -2 33 32] 70 @dc [< FF800FFF3E0001F80C0000F00C0000F0040001E0040001E0040003E0020003C0020003C003 0007C0010007800100078000FFFF0000800F0000800F0000401E0000401E0000401E000020 3C0000203C0000203C0000107800001078000010F8000008F0000008F000000DF0000005E0 000005E0000003C0000003C0000003C000000180000001800000018000> 32 35 -2 34 37] 65 @dc [< FFFFFF000F803F0007800F0007800300078003000780010007800180078001800780008007 80008007800080078000800780000007800000078000000780000007800000078000000780 00000780000007800000078000000780000007800000078000000780000007800000078000 00078000000780000007800000078000000FC00000FFFE0000> 25 34 -2 33 30] 76 @dc [< FFE0FFE0> 11 2 -1 11 16] 45 @dc [< 03FFFF00000FC0000007800000078000000780000007800000078000000780000007800000 07800000078000000780000007800000078000000780000007800000078000000780000007 80000007800000078000000780000007800080078004800780048007800480078004C00780 0C40078008400780084007800860078018780780787FFFFFF8> 30 34 -2 33 35] 84 @dc [< FFE0203FFF1F007003F00E007001E004007001E00400F801E00400F801E00400F801E00401 E401E00401E401E00401E401E00403C201E00403C201E004078101E004078101E004078101 E0040F0081E0040F0081E0040F0081E0041E0041E0041E0041E0043C0021E0043C0021E004 3C0021E004780011E004780011E004780011E004F00009E004F00009E004F00009E005E000 05E005E00005E007C00003E00FC00003F0FFC00003FF> 40 34 -2 33 45] 77 @dc [< FFFC07FF800FC000FC00078000F800078000F000078001E000078001E000078003C0000780 07C000078007800007800F000007800F000007801E000007803C000007C03C000007A07800 000790F000000788F000000789E000000787E000000783C000000781800000078080000007 80400000078020000007801000000780080000078004000007800200000780010000078000 8000078000400007800060000FC000F800FFFC03FF00> 33 34 -2 33 38] 75 @dc [< FFE000201F0000600E000060040000E0040001E0040001E0040003E0040003E0040007A004 000F2004000F2004001E2004003E2004003C20040078200400F8200400F0200401E0200401 E0200403C0200407802004078020040F0020041F0020041E0020043C0020047C0020047800 2004F0002004F0002005E0002007C0007007C000F8FF8007FF> 32 34 -2 33 37] 78 @dc [< 81FC00C60700C80180F000C0E000C0C00060C0006080007080007080007080007000007000 00F00000F00001E00007E0003FC003FF800FFF001FFE003FF0007F0000780000F00000F000 00E00020E00020E00020E00060E000606000607000E03001E01802600C0C6003F020> 20 36 -3 34 27] 83 @dc [< FFFC3FFF0FC003F0078001E0078001E0078001E0078001E0078001E0078001E0078001E007 8001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E007FFFFE00780 01E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001 E0078001E0078001E0078001E0078001E00FC003F0FFFC3FFF> 32 34 -2 33 37] 72 @dc [< 0003F000001C0800003006000060010000E0008001C0008003C0004003C000400380004007 80002007800020078000200780002007800020078000200780002007800020078000200780 00200780002007800020078000200780002007800020078000200780002007800020078000 2007800020078000200780002007800020078000700FC000F8FFFC07FF> 32 35 -2 33 37] 85 @dc [< FFFC00000FC000000780000007800000078000000780000007800000078000000780000007 80000007800000078000000780000007800000078000000780000007FFF00007803C000780 0F0007800780078007C0078003C0078003E0078003E0078003E0078003E0078003E0078003 E0078003C0078007C00780078007800F000F803C00FFFFF000> 27 34 -2 33 33] 80 @dc [< 0007E00000381C0000E0020001C0010003800080070000400E0000401E0000201C0000203C 0000103C0000107C0000107800001078000000F8000000F8000000F8000000F8000000F800 0000F8000000F8000000F800000078000010780000107C0000103C0000303C0000301C0000 301E0000700E000070070000F0038000F001C0017000E00630003818300007E010> 28 36 -3 34 35] 67 @dc [< FFFFF8000F801E0007800700078003C0078001E0078000E0078000F0078000780780007807 80007C0780003C0780003C0780003E0780003E0780003E0780003E0780003E0780003E0780 003E0780003E0780003E0780003C0780003C0780003C0780007C0780007807800078078000 F0078000E0078001C0078003C0078007000F801E00FFFFF000> 31 34 -2 33 37] 68 @dc [< 0007F000003C0C0800E0031801C000B8038000B8070000780F0000781E0000781E0000783C 0000783C0000787C00007878000078780000F8F8001FFFF8000000F8000000F8000000F800 0000F8000000F8000000F800000078000008780000087C0000083C0000183C0000181E0000 181E0000380F00003807000078038000F801C001B800E00218003C0C180007F008> 32 36 -3 34 38] 71 @dc [< FFFFFC000F800F00078007C0078003E0078001F0078001F0078000F8078000F8078000F807 8000F8078000F8078000F8078000F0078001F0078001E0078003C00780078007FFFE000780 3E0007800F80078007C0078003E0078001E0078001F0078001F0078001F0078001F0078001 F0078001E0078003E0078003C0078007800F800E00FFFFF800> 29 34 -2 33 35] 66 @dc [< 003FFF00000003E000000001E000000001E000000001E000000001E000000001E000000001 E000000001E000000001E000000001E000000001E000000001E000000001E000000003E000 000003D000000007D800000007880000000F840000001F040000001E020000003E01000000 3C010000007C00800000F800C00000F000400001F000200001E000200003E000100007C000 180007800008000F80000C001F80001F00FFF0007FC0> 34 34 -1 33 37] 89 @dc @F4 @sf [< FFF07FF00F001F800F001F000F001E000F003C000F003C000F0078000F00F8000F00F0000F 01E0000F01E0000F83C0000F4780000F2780000F2F00000F1F00000F0E00000F0400000F02 00000F0100000F0080000F0040000F0020000F0010000F0008000F000C000F000F00FFF03F E0> 28 28 -2 27 32] 75 @dc /@F6 @newfont @F6 @sf [< 040004000400C460E4E03F800E003F80E4E0C460040004000400> 11 13 -2 13 17] 3 @dc /@F0 @newfont @F0 @sf [< FF003FFC3C0007C00C0003C0040003C0040003C0020003C0030003C0010003C0008003C000 8007C0004007C0007FFF800020078000300780001007800008078000080780000407800004 0780000207800002078000010780000087800000878000004F8000004F0000002F0000002F 0000001F0000000F0000000F0000000700000007000000030000000300> 30 35 -3 34 36] 65 @dc [< 1F0031C060E06070E038E038E03CE01EE01EE01E700F700F700F700F380F380738073C061E 0E1D0C1CF81C000E000E000E000E0007000700070007000380038003803F8003C0> 16 35 -5 34 22] 98 @dc [< 1FC000203000400800E00400F00600F00600700700000700000F00003E0003FE0007FC000F F0000F00000C00000C03000C038004018002008001830000FC00> 17 21 -3 20 20] 115 @dc [< 1E003100708070407020702038103800380038001C001C001C001C000E000E000E000E0007 000700FFF80700038003800380038001C001C001C001C000C0> 13 31 -4 30 16] 116 @dc [< 3000007000003800003800003800003800001C00001C00001C00001C00000E00000E00000E 00000E00008700008701808703C08783C04741C02620801C1F00> 18 21 -5 20 21] 114 @dc [< 0F0780308C40305C40703C20701C20F01C20F00E10F00E00F00E00F00E0078070078070078 07003807003C03801C03800E03800E03800705C00185C000F8C0> 20 21 -5 20 25] 97 @dc [< 0FC000183000300C00700200700100F00100F00000F00000F00000F0000078000078000078 00003800003C00001C07800E078007038003018001C100007E00> 17 21 -5 20 22] 99 @dc @F4 @sf [< 7FC7FCFF800E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00 E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C 000E00E01C000E00E01C00FFFFFFFC000E00E000000E00E000000E00E000000E00E000000E 00E000000E00E018000E01E03C000701F03C000380F0180001C09C1800003F07E000> 33 29 0 28 35] 14 @dc [< 30307878F8F8B0B080808080808040404040202010100808> 13 12 -6 28 21] 92 @dc [< 808040402020101010100808080808086868F8F8F0F06060> 13 12 -1 28 21] 34 @dc /@F7 @newfont @F7 @sf [< 0C000C008C40EDC07F800C007F80EDC08C400C000C00> 10 11 -3 11 16] 3 @dc /@F5 @newfont @F5 @sf [< 00FC000303000E01C01C00E0380070300030700038700038E0001CE0001CE0001CE0001CE0 001CE0001CE0001C6000187000383000303800701C00E00E01C003030000FC00> 22 23 -2 22 27] 79 @dc [< FF80001C00001C00001C00001C00001C00001CF8001F0E001C07001C03801C01801C01C01C 01C01C01C01C01C01C01801C03801C03001F0E00FCF800> 18 20 0 13 20] 112 @dc [< 07C01830301070086000E000E000E000FFF8E0187038303018600FC0> 13 14 -1 13 16] 101 @dc [< FF801C001C001C001C001C001C001C001C001C001C101E381D38FCF0> 13 14 0 13 14] 114 @dc [< 1F1E70FFE079E039E039703830381E3803F800381038383038601FC0> 16 14 -1 13 18] 97 @dc [< 0F001C8038403840384038403800380038003800380038003800FF80380018001800080008 000800> 10 20 -1 19 14] 116 @dc [< 07CFC0182E00301E00700E00600E00E00E00E00E00E00E00E00E00600E00700E00300E001C 3E0007CE00000E00000E00000E00000E00000E00000E00000E00000E00007E00> 18 23 -1 22 20] 100 @dc [< 10F8001B0E001C03001C03801C01801C01C01C01C01C01C01C01C01C01801C03801C03001F 06001CF8001C00001C00001C00001C00001C00001C00001C00001C0000FC0000> 18 23 0 22 20] 98 @dc [< 7800A400E200E200010001000180018003C003C003C0072007200E100E101C081C083C0C3C 0EFE1F> 16 20 -1 13 19] 121 @dc [< FF9FE01C07001C07001C07001C07001C07001C07001C07001C07001C07001C07001E07001D 8E001C7C001C00001C00001C00001C00001C00001C00001C00001C0000FC0000> 19 23 0 22 20] 104 @dc [< 007E000181800300400600200E00201C00101C00101C00101C00101C00101C00101C00101C 00101C00101C00101C00101C00101C00101C00101C00101C00101C0038FF80FE> 23 23 -1 22 26] 85 @dc [< FF9FE01C07001C07001C07001C07001C07001C07001C07001C07001C07001C07001E07001D 8E00FC7C00> 19 14 0 13 20] 110 @dc [< FF1C1C1C1C1C1C1C1C1C1C1C1C7C0000000000183C3C18> 8 23 0 22 10] 105 @dc [< 0180018003C003C003C0072007200E100E101C081C083C0C3C0EFE1F> 16 14 -1 13 19] 118 @dc [< 9F00E0C0C0608060806001E01FC07F80FF00E000C040C04060C01F40> 11 14 -1 13 14] 115 @dc [< FF803C1C00721C00E11C00E11C00E01C00E01C00E01C00E01C00E01C01C01C07801FFE001C 03801C00C01C00E01C00701C00701C00701C00701C00E01C00C01C0380FFFC00> 24 23 -1 22 26] 82 @dc [< 07C01830300870086000E000E000E000E000600070103038183807F0> 13 14 -1 13 16] 99 @dc [< FE03FE3800F01800E00800E00800E00401C00401C007FFC002038002038003078001070001 0700008E00008E00008E00005C00005C00005C00003800003800003800001000> 23 23 -1 22 26] 65 @dc [< 07C018303018701CE00EE00EE00EE00EE00E600C600C3018183007C0> 15 14 -1 13 18] 111 @dc [< 40402020101070F0F060> 4 10 -3 3 10] 44 @dc [< FFE00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E 000E000E000E00FFE0> 11 23 -1 22 13] 73 @dc [< 60F0F060> 4 4 -3 3 10] 46 @dc [< FF801C001C001C001C001C001C001C001C001C001C001C001C00FF801C001C001C001C001C 001C200E70067003E0> 12 23 0 22 11] 102 @dc [< 87E0D810E008C0048006800680060006000E001C01FC0FF83FE07F007000E000C004C004C0 04400C601C302C0FC4> 15 23 -2 22 20] 83 @dc [< FFFF001C01C01C00601C00301C00381C001C1C001C1C000C1C000E1C000E1C000E1C000E1C 000E1C000E1C000E1C000C1C001C1C00181C00381C00301C00E01C01C0FFFF00> 23 23 -1 22 27] 68 @dc [< FF9FE7F81C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C 0701C01C0701C01E0781C01D8E6380FC7C1F00> 29 14 0 13 29] 109 @dc [< FFFFF01C00F01C00301C00101C00101C00181C00081C04081C04081C04001C0C001FFC001C 0C001C04001C04001C04001C00101C00101C00101C00201C00601C00E0FFFFE0> 21 23 -1 22 24] 69 @dc [< 0FE03838600CC006C006C006600E3FFC3FF83FE0600020002F8018C0306070707070707030 6018E30F9E> 16 21 -1 13 18] 103 @dc [< 03E7E00E17001C0F001C07001C07001C07001C07001C07001C07001C07001C07001C07001C 0700FC3F00> 19 14 0 13 20] 117 @dc [< 00FC000383000E00801C0040380020300020700010600010E00010E00000E00000E00000E0 0000E00000E000106000107000103000303800301C00700E00B003833000FC10> 20 23 -2 22 25] 67 @dc [< FE00103800301000301000701000F01001D01001D0100390100710100F10100E10101C1010 381010381010701010E01011C01011C0101380101700101F00101E0038FC00FE> 23 23 -1 22 26] 78 @dc [< FF80FF80> 9 2 0 7 12] 45 @dc [< 07C01C703018701C600C600CE00EE00EE00EE00EE00EE00EE00EE00EE00E600C600C701C30 18183007C0> 15 21 -1 20 18] 48 @dc [< FFF07FF03FF0101808080C0806000300018000C000600070007000384038E038C038803040 7030E00F80> 13 21 -2 20 18] 50 @dc [< 0FE03830600CC004C006C006C00E601E607C18F80FF00FC01F603E107818700C600C600C20 18183007E0> 15 21 -1 20 18] 56 @dc [< 1F8020C0603070187018001C000C000E0F8E186E301E601EE00EE00EE00EE00CE00C601830 18183007C0> 15 21 -1 20 18] 57 @dc [< 03FE00700070007000700070FFFEC0704070207010701870087004700270017001F000F000 7000300030> 15 21 -1 20 18] 52 @dc [< 07C018303018300C600E600EE00EE00EE00EF00CF018EC30E3E0E00060007000301C181C08 0C060801F0> 15 21 -1 20 18] 54 @dc @F2 @sf [< FFF00780038003800380038001C001C001C001C000E000E000E000E0007000700070007000 38003800380038039C007C001C000C00060002> 15 28 -4 27 21] 49 @dc [< 01F80000070600000C01800018004000380020007000100070000800F0000800F0000400F0 000400F0000400F0000000F0000000F0000000F00000007800000078000000780000003C00 00003C0000801C0000801E0000800E000080070000C0038001C001C001C000E003C0003002 E0001E0C600003F020> 27 30 -6 28 30] 67 @dc [< 7FFE000003C0000001C0000001C0000001C0000001C0000000E0000000E0000000E0000000 E000000070000000700000007000000070000000380000003800000038000000380000001C 0000801C0080801C0080401C0080400E0080600E0080200E0080300E00C01C0701C01FFFFF C0> 26 28 -7 27 30] 84 @dc [< 1F0060C08060C030E03060300038007807F00FF01FC01F001C0018180C1C0C08060801F0> 14 18 -3 17 17] 115 @dc [< 603800E0640070E40070E20070E20070E20038E00038E00039C0003F80001E00001D00001C 80001C83000E43800E23800E11000E0F000700000700000700000700000380000380000380 0003800001C00001C0000FC000> 17 29 -3 28 19] 107 @dc @F2 @sf [< 80E00083F800C7F8007E0C0040060020020010020010010008000006000001000000C00000 3000001800000C000E06001107001083801083800841C00841C00841C00441C00441C00201 C002018001018000C300003C00> 18 29 -4 27 21] 50 @dc [< FFE000000F0000000700000007000000070000000700000003800000038000000380000003 80000001C0000001C0000001C0000001FFE00000E0380000E00E0000E0070000E007800070 0380007003C0007003C0007003C0003801C0003801C0003801C000380380003C070001FFFC 00> 26 28 -3 27 28] 80 @dc [< 83E000CC1800F004006002006003006001806001802000C02000C00000C00000C00001C000 01C00007C0007F8001FF0003FC0003E0000700000700000600000600100600100300180300 1801001800801800403C00304C000F84> 22 30 -3 28 23] 83 @dc [< FF80003C00001C00001C00001C00001C00000E00000E00000E70000E8C0007060007070007 03000703800381800381C00381C00381C001C0E001C0E011C0E011C0E008E0C008E0C004D9 80078700> 19 26 -1 17 21] 112 @dc [< 3C380062640061E400C0E200C0E200E0E200E07000E07000E07000E0700070380070380030 3800383800181C000C3C00063C0003DC00000E00000E00000E00000E000007000007000007 00000700000380000380001F80> 17 29 -5 28 21] 100 @dc [< 00001E00FFE079000F0078800700F0800700F0400700F0400700F000038070000380700003 8070000380700001C0700001C0700001C0600001C0C00000FFC00000E0700000E01C0000E0 0E0000700F0000700780007007800070078000380380003803800038038000380700003C0E 0001FFF800> 26 29 -3 27 30] 82 @dc @F2 @sf [< 1F000021C000406000803000803800801C00E01C00700E00000E00000E00000E00000E0000 0C00000C0000380001F800000E000007000703800883800841C00841C00841C00440C00400 C00200C001018000C180003E00> 18 29 -4 27 21] 51 @dc @F2 @sf [< 00600000E000007000007000007000007000003800003800803F0040F8003F1C00181C000C 1C00061C00020E00010E00018E0000C600004000006000003000003000001800001800001C 00000C00000E000006000007000007000003000003800003800003800001C0000180> 18 36 -2 27 21] 52 @dc [< 601C00E03200707100707080703880703880383800381C00381C00381C001C0E001C0E001C 0E001C0E000E0E000F0E000E8C000E78000700000700000700000700000380000380000380 0003800001C00001C0000FC000> 17 29 -3 28 21] 104 @dc @F2 @sf [< 1F000021C000406000403000803800801800E01C00700C00700E00000E00000E0000060000 0700000700080600040600060600058C000478000200000200000200000200000100000100 0001FE0001FF8000FFC000C060> 19 29 -4 27 21] 53 @dc [< 01F80000070710000C00900018007800380038007000380070003800F0001C00F0001C00F0 001C00F0001C00F0001E00F001FFC0F0000000F00000007800000078000000780000003C00 00003C0000801C0000801E0000800E000080070000C0038001C001C001C000E003C0003002 E0001E0C600003F020> 27 30 -6 28 32] 71 @dc @F2 @sf [< 1E000021800060C000606000E07000E03800E03800E01C00E01C00E01C00601C00700E0070 0E00700E00780C00380C003C0C003B18001CF0001C00000C00000E00000600000300000383 8001838000C080003080000F00> 17 29 -5 27 21] 54 @dc [< 804040201010080838783818> 5 12 -3 3 13] 44 @dc [< 0F800000104000003030000060080000E0040000E0040000E0020000E0020000E0010000E0 010000E0010000700080007000800070008000700080003800400038004000380040003800 40001C0020001C0020001C0020001C0020000E0010000E0010000E0010000E0018000F001C 007FF0FF80> 25 29 -9 27 31] 85 @dc 1 @eop0 0 0 1 @bop1 419 17 a @F1 @sf(O)o(VER)-5 b(VI)o(EW)15 b(OF)h(REAL-TIME)h (KERNELS)f(A)l(T)g(THE)-1224 58 y(SUPER)o(CONDUCTING)f(SUPER)h(COLLIDER)i (LABORA)l(TOR)l(Y)-1286 133 y @F4 @sf(K.)13 b(Lo)o(w,)g(S.)h(Ac)o(hary)o (a,)f(M.)h(Allen,)f(E.)g(F)m(augh)o(t,)g(D.)g(Haenni,)g(C.)h(Kalb\015eisc)o (h)-781 49 y(SSC)g(Lab)q(oratory)14 -15 y @F6 @sf(\003)-385 65 y @F4 @sf (2550)f(Bec)o(kleymeade)i(Av)o(e.)-403 50 y(Dalla)o(s,)e(T)m(exas)h(75237) -1257 87 y @F0 @sf(A)o(bstr)n(act)-133 98 y @F4 @sf(The)9 b(Sup)q (erconduc)q(ting)h(Sup)q(er)h(Collider)d(Lab)q(oratory)i(\(SSCL\))-1050 49 y(will)j(ha)o(v)o(e)h(man)o(y)f(subsystems)j(that)e(will)f(require)i (real-time)f(mi-)-1051 50 y(cropro)q(cess)q(or)21 b(con)o(trol.)36 b (Examples)20 b(of)f(suc)o(h)i(sub-systems)g(re-)-1049 50 y(quiring)d (real-time)g(con)o(trols)h(are)g(p)q(o)o(w)o(er)g(supply)g(ramp)f(gener-) -1049 50 y(ators)i(and)g(quenc)o(h)h(protection)g(monitors)e(for)h(the)h (sup)q(ercon-)-1049 50 y(ducting)e(magnets.)35 b(W)m(e)19 b(plan)f(on)h (using)g(a)g(commercial)g(m)o(ul-)-1051 49 y(titasking)14 b(real-time)h(k)o (ernel)g(in)g(these)h(systems.)23 b(These)16 b(k)o(ernels)-1049 50 y(m)o (ust)11 b(p)q(erform)g(in)f(a)g(consisten)o(t,)i(reliable)f(and)f(e\016cien)o (t)h(manner.)-1050 50 y(Actual)20 b(p)q(erformance)h(measuremen)o(ts)g(ha)o (v)o(e)f(b)q(een)g(conducted)-1048 50 y(on)f(four)g(di\013eren)o(t)h(k)o (ernels,)h(all)d(running)h(on)g(the)h(same)f(hard-)-1050 50 y(w)o(are)12 b (platform.)17 b(The)12 b(measuremen)o(ts)i(fall)c(in)o(to)i(t)o(w)o(o)g (categories.)-1050 50 y(Throughput)21 b(measuremen)o(ts)i(co)o(v)o(ering)e (the)h(\\non-real-time")-1051 49 y(asp)q(ects)15 b(of)e(the)h(k)o(ernel)g (include)g(pro)q(cess)q 15 x(creation/termination)-1051 50 y(times,)d(in)o (terpro)q(cess)q 12 x(comm)o(unication)e(facilities)h(in)o(v)o(olving)o 10 x(mes-)-1050 50 y(sages,)17 b(semaphores)g(and)g(shared)g(memory)f(and)g (memory)g(allo-)o -1051 50 a(cation/deallo)q(cation.)o 17 x(Measuremen)o (ts)q 15 x(concen)o(trating)f(on)e(real-)-1050 50 y(time)f(resp)q(onse)i (are)f(con)o(text)g(switc)o(h)f(times,)g(in)o(terrupt)h(latencies)-1049 49 y(and)h(in)o(terrupt)g(task)g(resp)q(onse)q(.)-176 109 y(I.)g(INTR)o (ODUCTION)-673 106 y(The)9 b(pro)q(cess)q 11 x(of)g(ev)n(aluating)f (real-time)h(k)o(ernels)h(from)f(di\013eren)o(t)-1049 50 y(v)o(endors)15 b (can)g(b)q(e)h(a)e(confusing)h(exp)q(erience)q(.)22 b(One)15 b(is)g(faced)g (with)-1050 50 y(a)20 b(plethora)h(of)f(p)q(erformance)i(n)o(um)o(b)q(ers)g (from)e(the)h(individual)o -1051 49 a(v)o(endors')13 b(informatio)o(n)e (pac)o(k)n(ages,)i(eac)o(h)g(displa)o(ying)e(sup)q(eriorit)o(y)-1050 50 y (and)18 b(adv)n(an)o(tages)f(o)o(v)o(er)h(their)h(comp)q(etitors.)31 b (Eac)o(h)18 b(v)o(endor)h(in-)-1051 50 y(v)n(ariably)14 b(measures)i(p)q (erformance)g(n)o(um)o(b)q(ers)g(in)f(di\013eren)o(t)h(w)o(a)o(ys)-1050 50 y(and)d(on)g(di\013eren)o(t)h(hardw)o(are)g(platforms)e(th)o(us)i (making)d(compar-)-1050 50 y(isons)j(almost)f(meaningless.)-421 53 y(T)m (o)f(compare)h(and)f(ev)n(aluate)h(the)g(di\013eren)o(t)h(o\013erings,)f (w)o(e)g(p)q(er-)-1049 50 y(formed)j(our)f(o)o(wn)h(tests)h(in)e(a)h(con)o (trolled)f(en)o(vironmen)o(t.)24 b(Pro)q(d-)-1050 50 y(ucts)13 b(from)e (the)h(four)f(v)o(endors)i(that)f(met)g(our)f(base)i(requiremen)o(ts)-1049 49 y(w)o(ere)h(tested)g(on)e(the)h(same)g(hardw)o(are)g(platform.)j(The)d (platform)-1051 50 y(on)d(whic)o(h)h(all)e(four)i(v)o(endors)g(is)g(supp)q (orted)h(is)e(the)i(MVME147S-1)-1051 50 y([1];)17 b(a)g(VME)g(based,)h (single)f(b)q(oard)g(computer)g(with)g(a)g(25MHz)-1050 50 y(68030)d(from)h (Motorola.)22 b(The)16 b(four)f(k)o(ernels)h(selecte)q(d,)h(listed)e(in) -1050 50 y(no)i(particular)g(order,)i(w)o(ere)f(pSOS+)g(from)f(Soft)o(w)o (are)g(Comp)q(o-)-1051 49 y(nen)o(ts)j(Group)f([2],)o 19 x(VR)m(TX32)f (from)g(Ready)h(Systems)h([3],)o 19 x(Vx-)-1050 50 y(W)m(orks)14 b (\(v4.02\))g(from)h(Wind)f(Riv)o(er)g(Systems)i([4])e(and)h(LynxOS)-1050 50 y(\(v1.21\))e(from)g(Lynx)h(Real-Tim)o(e)f(Systems)i([5].)-726 53 y(It) 9 b(should)g(b)q(e)h(stresse)q(d)h(that)e(these)i(tests)f(only)f(pro)o (vide)g(quan)o(ti-)-1051 50 y(tativ)o(e)j(measuremen)o(ts)h(of)e(a)h (particular)g(system's)h(p)q(erformance.)-1050 50 y(Qualitativ)o(e)f(asp)q (ects)q 14 x(suc)o(h)j(as)e(dev)o(elopmen)o(t)h(en)o(vironmen)o(t,)f(de-) -1050 50 y(bug)21 b(capabilities,)g(connectivit)o(y)m(,)h(compliance)e (with)h(industry)-1050 49 y 420 -2 z 26 w @F7 @sf(\003)2 12 y @F5 @sf(Op)q (erated)6 b(b)o(y)h(the)h(Univ)o(ersit)o(ies)e(Researc)o(h)g(Asso)q (ciation,)o 8 x(Inc.,)h(for)g(the)g(U.S.)-1050 40 y(Departmen)o(t)o 11 x (of)k(Energy)f(under)g(Con)o(tract)g(No.)15 b(DE-A)o(C02-89ER4048)o(6.)80 -2389 y @F4 @sf(standards,)20 b(tec)o(hnical)e(supp)q(ort)h(and)f (host/target)h(a)o(v)n(ail)o(abi)o(lit)o(y)o -1051 50 a(will)12 b(b)q(e)j (addressed)h(at)d(the)i(end)f(of)f(this)h(pap)q(er.)-726 51 y(Eac)o(h)k (test)h(w)o(as)e(executed)i(a)e(n)o(um)o(b)q(er)h(of)f(times)g(in)g(order)h (to)-1050 49 y(compute)e(the)h(a)o(v)o(erage)e(time)h(to)f(complete)i(a)e (test.)25 b(The)16 b(en)o(tire)-1049 50 y(measuremen)o(t)21 b(is)f(then)i (rep)q(eated)g(sev)o(eral)e(times)h(to)f(measure)-1049 50 y(the)13 b(v)n (ariance)f(of)g(this)h(a)o(v)o(erage)f(v)n(alue)g(in)g(the)h(form)f(of)g (maxim)o(um)o -1051 50 a(and)g(minim)o(um)o 11 x(a)o(v)o(erage)h(v)n (alues.)k(Clo)q(c)o(k)12 b(resolution,)g(n)o(um)o(b)q(er)h(of)-1051 50 y (iterations)j(and)g(cac)o(he)h(conditions)e(w)o(ere)i(iden)o(tical)f(for)f (all)g(four)-1050 49 y(k)o(ernels.)20 96 y(I)q(I.)e(THR)o(OUGHPUT)h (MEASUREMENTS)-852 95 y(Throughput)f(measuremen)o(ts)g(are)f(tabulated)g (in)f(T)m(able)g(1)h(and)-1050 50 y(what)19 b(follo)o -1 x(ws)f(is)g(a)h (brief)g(description)g(of)f(eac)o(h)h(test)h(as)f(it)f(ap-)-1050 50 y(p)q (ears)f(in)f(the)h(table.)25 b(Idiosyncrasies)17 b(of)e(eac)o(h)i(k)o (ernel)g(will)e(also)-1051 49 y(b)q(e)h(noted.)25 b(An)16 b(asterisk)g (means)g(that)g(a)g(particular)f(test)i(could)-1050 50 y(not)d(b)q(e)g(p)q (erformed)h(on)e(that)h(k)o(ernel.)-596 51 y @F2 @sf(1.)k(Cr)n(e)n (ate/Delete)12 b(T)m(ask)g @F4 @sf(This)f(test)h(measures)h(the)f(time)f (it)g(tak)o(es)-1049 50 y(to)h(create)i(and)e(delete)h(a)f(task.)18 b(A) 12 b(task)h(deletes)g(itself)f(as)h(so)q(on)f(as)-1050 50 y(it)j(is)g (created.)24 b(The)15 b(created)q 16 x(task)h(has)f(a)g(higher)g(priorit)o (y)g(than)-1050 49 y(the)f(creator,)h(so)f(the)g(time)g(quoted)g(actually)f (includes)h(a)g(create,)-1049 50 y(start,)g(delete)h(and)f(t)o(w)o(o)f (task)h(con)o(text)h(switc)o(hes.)-787 51 y @F2 @sf(2.)j(Ping)12 b(Susp)n (end/R)q -2 x(esume)h(T)m(ask)e @F4 @sf(A)g(lo)o(w)f(priorit)o(y)g(task)g (resumes)-1048 50 y(a)20 b(susp)q(ende)q(d)i(high)d(priorit)o(y)h(task.) 38 b(The)20 b(high)g(priorit)o(y)g(task)-1050 50 y(immediately)c(susp)q (en)q(ds)j(itself.)31 b(This)17 b(measuremen)o(t)i(includes)-1049 49 y(t)o (w)o(o)12 b(task)g(con)o(text)h(switc)o(hes)g(and)f(the)g(time)g(it)g(tak)o (es)g(to)g(susp)q(end)-1048 50 y(and)18 b(resume)i(a)e(task.)32 b(There) 20 b(is)e(no)h(facilit)o(y)e(to)h(susp)q(end)i(and)-1050 50 y(resume)g(a)e (task)h(on)g(LynxOS)g(apart)g(from)f(using)g(signals.)32 b(So)-1050 50 y (this)14 b(test)h(w)o(as)f(not)f(p)q(erformed)i(under)g(LynxOS.)-792 50 y @F2 @sf(3.)k(Susp)n(end/R)n(esume)d(T)m(ask)c @F4 @sf(This)h(is)f(iden)o (tical)g(to)h(previous)g(test)-1049 50 y(except)19 b(that)e(a)g(high)f (priorit)o(y)h(task)g(susp)q(ends)q 18 x(and)g(resumes)q 18 x(a)-1050 50 y (susp)q(ende)q(d)g(lo)o(w)o(er)f(priorit)o(y)g(task)g(so)h(that)f(there)i (is)e(no)g(con)o(text)-1049 50 y(switc)o(hing.)-182 51 y @F2 @sf(4.)i (Ping)12 b(Semaphor)n(e)g @F4 @sf(Tw)o(o)e(tasks)h(of)f(the)h(same)g (priorit)o(y)f(comm)o(u-)-1051 49 y(nicate)g(with)f(eac)o(h)h(other)g (through)f(semaphores.)18 b(T)m(ask)9 b(A)g(creates)-1048 50 y(a)k (semaphore,)g(gets)h(the)g(semaphore)f(and)g(then)h(creates)h(T)m(ask)e(B) -1050 50 y(whic)o(h)e(blo)q(c)o(ks)h(when)g(it)g(attempts)g(to)f(get)h (the)g(semaphore.)18 b(T)m(ask)-1050 50 y(A)10 b(then)g(releases)h(the)g (semaphore)f(whic)o(h)g(immediately)e(un)o(blo)q(c)o(ks)-1050 50 y(T)m (ask)j(B.)h(T)m(ask)f(A)h(then)h(attempts)f(to)g(get)g(the)g(semaphore)h (whic)o(h)-1050 49 y(causes)k(it)d(to)h(blo)q(c)o(k)g(un)o(til)g(T)m(ask)f (B)i(releases)h(it.)k(The)16 b(t)o(w)o(o)e(tasks)-1049 50 y(then)d (alternate)g(o)o(wnership)g(of)f(the)h(semaphore)g(thereb)o(y)h(causing) -1050 50 y(con)o(text)h(switc)o(hes.)18 b(In)13 b(our)f(v)o(ersion)g(of)g (VxW)m(orks,)f(t)o(w)o(o)h(separate)-1049 50 y(semaphores)g(are)g (required)g(b)q(ecause)h(round-robin)e(sc)o(heduling)g(is)-1050 50 y(not)j (supp)q(orted.)-266 50 y @F2 @sf(5.)38 b(Getting/R)n(ele)n(asing)22 b (Semaphor)n(e)f @F4 @sf(The)h(time)e(rep)q(orted)j(in-)-1051 50 y(cludes)e (the)f(time)g(it)f(tak)o(es)i(to)e(get)i(and)e(immediately)g(release)-1049 50 y(a)14 b(semaphore)g(within)f(the)i(same)f(task)g(con)o(text.)-779 51 y @F2 @sf(6.)20 b(Queue)c(Fil)r(l,Dr)n(ain,Fil)r(l)e(Ur)n(gent)f @F4 @sf(W)m (e)h(\014rst)i(time)e(ho)o(w)g(long)f(it)-1050 50 y(tak)o(es)i(to)f(\014ll)f (a)i(queue)g(with)f(messages)h(and)g(then)g(w)o(e)f(time)g(ho)o(w)-122 311 y (P)o(age)g(1)-2052 b 1 @eop1 ------------------------CUT HERE-------------------------- -- +--------------------------------------------------------------------------+ | Carl W. Kalbfleisch cwk@psychosis.ssc.gov | | Superconducting Super Collider Laboratory | | 2550 Beckleymeade Avenue, MS-4002 | | Dallas, Texas 75237 (214) 708-3428 | +--------------------------------------------------------------------------+