5141 lines
233 KiB
PostScript
5141 lines
233 KiB
PostScript
%!
|
|
%%BoundingBox: (atend)
|
|
%%Pages: (atend)
|
|
%%DocumentFonts: (atend)
|
|
%%EndComments
|
|
%
|
|
% FrameMaker PostScript Prolog 3.0, for use with FrameMaker 3.0
|
|
% Copyright (c) 1986,87,89,90,91 by Frame Technology Corporation.
|
|
% All rights reserved.
|
|
%
|
|
% Known Problems:
|
|
% Due to bugs in Transcript, the 'PS-Adobe-' is omitted from line 1
|
|
/FMversion (3.0) def
|
|
% Set up Color vs. Black-and-White
|
|
/FMPrintInColor systemdict /colorimage known
|
|
systemdict /currentcolortransfer known or def
|
|
% Uncomment this line to force b&w on color printer
|
|
% /FMPrintInColor false def
|
|
/FrameDict 295 dict def
|
|
systemdict /errordict known not {/errordict 10 dict def
|
|
errordict /rangecheck {stop} put} if
|
|
% The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk
|
|
FrameDict /tmprangecheck errordict /rangecheck get put
|
|
errordict /rangecheck {FrameDict /bug true put} put
|
|
FrameDict /bug false put
|
|
mark
|
|
% Some PS machines read past the CR, so keep the following 3 lines together!
|
|
currentfile 5 string readline
|
|
00
|
|
0000000000
|
|
cleartomark
|
|
errordict /rangecheck FrameDict /tmprangecheck get put
|
|
FrameDict /bug get {
|
|
/readline {
|
|
/gstring exch def
|
|
/gfile exch def
|
|
/gindex 0 def
|
|
{
|
|
gfile read pop
|
|
dup 10 eq {exit} if
|
|
dup 13 eq {exit} if
|
|
gstring exch gindex exch put
|
|
/gindex gindex 1 add def
|
|
} loop
|
|
pop
|
|
gstring 0 gindex getinterval true
|
|
} def
|
|
} if
|
|
/FMVERSION {
|
|
FMversion ne {
|
|
/Times-Roman findfont 18 scalefont setfont
|
|
100 100 moveto
|
|
(FrameMaker version does not match postscript_prolog!)
|
|
dup =
|
|
show showpage
|
|
} if
|
|
} def
|
|
/FMLOCAL {
|
|
FrameDict begin
|
|
0 def
|
|
end
|
|
} def
|
|
/gstring FMLOCAL
|
|
/gfile FMLOCAL
|
|
/gindex FMLOCAL
|
|
/orgxfer FMLOCAL
|
|
/orgproc FMLOCAL
|
|
/organgle FMLOCAL
|
|
/orgfreq FMLOCAL
|
|
/yscale FMLOCAL
|
|
/xscale FMLOCAL
|
|
/manualfeed FMLOCAL
|
|
/paperheight FMLOCAL
|
|
/paperwidth FMLOCAL
|
|
/FMDOCUMENT {
|
|
array /FMfonts exch def
|
|
/#copies exch def
|
|
FrameDict begin
|
|
0 ne dup {setmanualfeed} if
|
|
/manualfeed exch def
|
|
/paperheight exch def
|
|
/paperwidth exch def
|
|
/yscale exch def
|
|
/xscale exch def
|
|
currenttransfer cvlit /orgxfer exch def
|
|
currentscreen cvlit /orgproc exch def
|
|
/organgle exch def /orgfreq exch def
|
|
setpapername
|
|
manualfeed {true} {papersize} ifelse
|
|
{manualpapersize} {false} ifelse
|
|
{desperatepapersize} if
|
|
end
|
|
} def
|
|
/pagesave FMLOCAL
|
|
/orgmatrix FMLOCAL
|
|
/landscape FMLOCAL
|
|
/FMBEGINPAGE {
|
|
FrameDict begin
|
|
/pagesave save def
|
|
3.86 setmiterlimit
|
|
/landscape exch 0 ne def
|
|
landscape {
|
|
90 rotate 0 exch neg translate pop
|
|
}
|
|
{pop pop}
|
|
ifelse
|
|
xscale yscale scale
|
|
/orgmatrix matrix def
|
|
gsave
|
|
} def
|
|
/FMENDPAGE {
|
|
grestore
|
|
pagesave restore
|
|
end
|
|
showpage
|
|
} def
|
|
/FMFONTDEFINE {
|
|
FrameDict begin
|
|
findfont
|
|
ReEncode
|
|
1 index exch
|
|
definefont
|
|
FMfonts 3 1 roll
|
|
put
|
|
end
|
|
} def
|
|
/FMFILLS {
|
|
FrameDict begin
|
|
array /fillvals exch def
|
|
end
|
|
} def
|
|
/FMFILL {
|
|
FrameDict begin
|
|
fillvals 3 1 roll put
|
|
end
|
|
} def
|
|
/FMNORMALIZEGRAPHICS {
|
|
newpath
|
|
0.0 0.0 moveto
|
|
1 setlinewidth
|
|
0 setlinecap
|
|
0 0 0 sethsbcolor
|
|
0 setgray
|
|
} bind def
|
|
/fx FMLOCAL
|
|
/fy FMLOCAL
|
|
/fh FMLOCAL
|
|
/fw FMLOCAL
|
|
/llx FMLOCAL
|
|
/lly FMLOCAL
|
|
/urx FMLOCAL
|
|
/ury FMLOCAL
|
|
/FMBEGINEPSF {
|
|
end
|
|
/FMEPSF save def
|
|
/showpage {} def
|
|
FMNORMALIZEGRAPHICS
|
|
[/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall
|
|
fx fy translate
|
|
rotate
|
|
fw urx llx sub div fh ury lly sub div scale
|
|
llx neg lly neg translate
|
|
} bind def
|
|
/FMENDEPSF {
|
|
FMEPSF restore
|
|
FrameDict begin
|
|
} bind def
|
|
FrameDict begin
|
|
/setmanualfeed {
|
|
%%BeginFeature *ManualFeed True
|
|
statusdict /manualfeed true put
|
|
%%EndFeature
|
|
} def
|
|
/max {2 copy lt {exch} if pop} bind def
|
|
/min {2 copy gt {exch} if pop} bind def
|
|
/inch {72 mul} def
|
|
/pagedimen {
|
|
paperheight sub abs 16 lt exch
|
|
paperwidth sub abs 16 lt and
|
|
{/papername exch def} {pop} ifelse
|
|
} def
|
|
/papersizedict FMLOCAL
|
|
/setpapername {
|
|
/papersizedict 14 dict def
|
|
papersizedict begin
|
|
/papername /unknown def
|
|
/Letter 8.5 inch 11.0 inch pagedimen
|
|
/LetterSmall 7.68 inch 10.16 inch pagedimen
|
|
/Tabloid 11.0 inch 17.0 inch pagedimen
|
|
/Ledger 17.0 inch 11.0 inch pagedimen
|
|
/Legal 8.5 inch 14.0 inch pagedimen
|
|
/Statement 5.5 inch 8.5 inch pagedimen
|
|
/Executive 7.5 inch 10.0 inch pagedimen
|
|
/A3 11.69 inch 16.5 inch pagedimen
|
|
/A4 8.26 inch 11.69 inch pagedimen
|
|
/A4Small 7.47 inch 10.85 inch pagedimen
|
|
/B4 10.125 inch 14.33 inch pagedimen
|
|
/B5 7.16 inch 10.125 inch pagedimen
|
|
end
|
|
} def
|
|
/papersize {
|
|
papersizedict begin
|
|
/Letter {lettertray letter} def
|
|
/LetterSmall {lettertray lettersmall} def
|
|
/Tabloid {11x17tray 11x17} def
|
|
/Ledger {ledgertray ledger} def
|
|
/Legal {legaltray legal} def
|
|
/Statement {statementtray statement} def
|
|
/Executive {executivetray executive} def
|
|
/A3 {a3tray a3} def
|
|
/A4 {a4tray a4} def
|
|
/A4Small {a4tray a4small} def
|
|
/B4 {b4tray b4} def
|
|
/B5 {b5tray b5} def
|
|
/unknown {unknown} def
|
|
papersizedict dup papername known {papername} {/unknown} ifelse get
|
|
end
|
|
/FMdicttop countdictstack 1 add def
|
|
statusdict begin stopped end
|
|
countdictstack -1 FMdicttop {pop end} for
|
|
} def
|
|
/manualpapersize {
|
|
papersizedict begin
|
|
/Letter {letter} def
|
|
/LetterSmall {lettersmall} def
|
|
/Tabloid {11x17} def
|
|
/Ledger {ledger} def
|
|
/Legal {legal} def
|
|
/Statement {statement} def
|
|
/Executive {executive} def
|
|
/A3 {a3} def
|
|
/A4 {a4} def
|
|
/A4Small {a4small} def
|
|
/B4 {b4} def
|
|
/B5 {b5} def
|
|
/unknown {unknown} def
|
|
papersizedict dup papername known {papername} {/unknown} ifelse get
|
|
end
|
|
stopped
|
|
} def
|
|
/desperatepapersize {
|
|
statusdict /setpageparams known
|
|
{
|
|
paperwidth paperheight 0 1
|
|
statusdict begin
|
|
{setpageparams} stopped pop
|
|
end
|
|
} if
|
|
} def
|
|
/savematrix {
|
|
orgmatrix currentmatrix pop
|
|
} bind def
|
|
/restorematrix {
|
|
orgmatrix setmatrix
|
|
} bind def
|
|
/dmatrix matrix def
|
|
/dpi 72 0 dmatrix defaultmatrix dtransform
|
|
dup mul exch dup mul add sqrt def
|
|
/freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def
|
|
/sangle 1 0 dmatrix defaultmatrix dtransform exch atan def
|
|
/DiacriticEncoding [
|
|
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
/.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
|
|
/numbersign /dollar /percent /ampersand /quotesingle /parenleft
|
|
/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
|
|
/two /three /four /five /six /seven /eight /nine /colon /semicolon
|
|
/less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
|
|
/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
|
|
/bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h
|
|
/i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
|
|
/braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute
|
|
/Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis
|
|
/atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis
|
|
/iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve
|
|
/ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex
|
|
/udieresis /dagger /.notdef /cent /sterling /section /bullet
|
|
/paragraph /germandbls /registered /copyright /trademark /acute
|
|
/dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef
|
|
/yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
/ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown
|
|
/exclamdown /logicalnot /.notdef /florin /.notdef /.notdef
|
|
/guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde
|
|
/Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright
|
|
/quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis
|
|
/fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl
|
|
/periodcentered /quotesinglbase /quotedblbase /perthousand
|
|
/Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute
|
|
/Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve
|
|
/Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron
|
|
/breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
|
|
] def
|
|
/ReEncode {
|
|
dup
|
|
length
|
|
dict begin
|
|
{
|
|
1 index /FID ne
|
|
{def}
|
|
{pop pop} ifelse
|
|
} forall
|
|
0 eq {/Encoding DiacriticEncoding def} if
|
|
currentdict
|
|
end
|
|
} bind def
|
|
/graymode true def
|
|
/bwidth FMLOCAL
|
|
/bpside FMLOCAL
|
|
/bstring FMLOCAL
|
|
/onbits FMLOCAL
|
|
/offbits FMLOCAL
|
|
/xindex FMLOCAL
|
|
/yindex FMLOCAL
|
|
/x FMLOCAL
|
|
/y FMLOCAL
|
|
/setpattern {
|
|
/bwidth exch def
|
|
/bpside exch def
|
|
/bstring exch def
|
|
/onbits 0 def /offbits 0 def
|
|
freq sangle landscape {90 add} if
|
|
{/y exch def
|
|
/x exch def
|
|
/xindex x 1 add 2 div bpside mul cvi def
|
|
/yindex y 1 add 2 div bpside mul cvi def
|
|
bstring yindex bwidth mul xindex 8 idiv add get
|
|
1 7 xindex 8 mod sub bitshift and 0 ne
|
|
{/onbits onbits 1 add def 1}
|
|
{/offbits offbits 1 add def 0}
|
|
ifelse
|
|
}
|
|
setscreen
|
|
{} settransfer
|
|
offbits offbits onbits add div FMsetgray
|
|
/graymode false def
|
|
} bind def
|
|
/grayness {
|
|
FMsetgray
|
|
graymode not {
|
|
/graymode true def
|
|
orgxfer cvx settransfer
|
|
orgfreq organgle orgproc cvx setscreen
|
|
} if
|
|
} bind def
|
|
/HUE FMLOCAL
|
|
/SAT FMLOCAL
|
|
/BRIGHT FMLOCAL
|
|
/Colors FMLOCAL
|
|
FMPrintInColor
|
|
|
|
{
|
|
/HUE 0 def
|
|
/SAT 0 def
|
|
/BRIGHT 0 def
|
|
% array of arrays Hue and Sat values for the separations [HUE BRIGHT]
|
|
/Colors
|
|
[[0 0 ] % black
|
|
[0 0 ] % white
|
|
[0.00 1.0] % red
|
|
[0.37 1.0] % green
|
|
[0.60 1.0] % blue
|
|
[0.50 1.0] % cyan
|
|
[0.83 1.0] % magenta
|
|
[0.16 1.0] % comment / yellow
|
|
] def
|
|
|
|
/BEGINBITMAPCOLOR {
|
|
BITMAPCOLOR} def
|
|
/BEGINBITMAPCOLORc {
|
|
BITMAPCOLORc} def
|
|
/BEGINBITMAPTRUECOLOR {
|
|
BITMAPTRUECOLOR } def
|
|
/BEGINBITMAPTRUECOLORc {
|
|
BITMAPTRUECOLORc } def
|
|
/K {
|
|
Colors exch get dup
|
|
0 get /HUE exch store
|
|
1 get /BRIGHT exch store
|
|
HUE 0 eq BRIGHT 0 eq and
|
|
{1.0 SAT sub setgray}
|
|
{HUE SAT BRIGHT sethsbcolor}
|
|
ifelse
|
|
} def
|
|
/FMsetgray {
|
|
/SAT exch 1.0 exch sub store
|
|
HUE 0 eq BRIGHT 0 eq and
|
|
{1.0 SAT sub setgray}
|
|
{HUE SAT BRIGHT sethsbcolor}
|
|
ifelse
|
|
} bind def
|
|
}
|
|
|
|
{
|
|
/BEGINBITMAPCOLOR {
|
|
BITMAPGRAY} def
|
|
/BEGINBITMAPCOLORc {
|
|
BITMAPGRAYc} def
|
|
/BEGINBITMAPTRUECOLOR {
|
|
BITMAPTRUEGRAY } def
|
|
/BEGINBITMAPTRUECOLORc {
|
|
BITMAPTRUEGRAYc } def
|
|
/FMsetgray {setgray} bind def
|
|
/K {
|
|
pop
|
|
} def
|
|
}
|
|
ifelse
|
|
/normalize {
|
|
transform round exch round exch itransform
|
|
} bind def
|
|
/dnormalize {
|
|
dtransform round exch round exch idtransform
|
|
} bind def
|
|
/lnormalize {
|
|
0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop
|
|
} bind def
|
|
/H {
|
|
lnormalize setlinewidth
|
|
} bind def
|
|
/Z {
|
|
setlinecap
|
|
} bind def
|
|
/fillvals FMLOCAL
|
|
/X {
|
|
fillvals exch get
|
|
dup type /stringtype eq
|
|
{8 1 setpattern}
|
|
{grayness}
|
|
ifelse
|
|
} bind def
|
|
/V {
|
|
gsave eofill grestore
|
|
} bind def
|
|
/N {
|
|
stroke
|
|
} bind def
|
|
/M {newpath moveto} bind def
|
|
/E {lineto} bind def
|
|
/D {curveto} bind def
|
|
/O {closepath} bind def
|
|
/n FMLOCAL
|
|
/L {
|
|
/n exch def
|
|
newpath
|
|
normalize
|
|
moveto
|
|
2 1 n {pop normalize lineto} for
|
|
} bind def
|
|
/Y {
|
|
L
|
|
closepath
|
|
} bind def
|
|
/x1 FMLOCAL
|
|
/x2 FMLOCAL
|
|
/y1 FMLOCAL
|
|
/y2 FMLOCAL
|
|
/rad FMLOCAL
|
|
/R {
|
|
/y2 exch def
|
|
/x2 exch def
|
|
/y1 exch def
|
|
/x1 exch def
|
|
x1 y1
|
|
x2 y1
|
|
x2 y2
|
|
x1 y2
|
|
4 Y
|
|
} bind def
|
|
% The following commented out code did not work for tangent lines of zero
|
|
% length. The code following it was provided by Frame to patch this error.
|
|
%
|
|
%/RR {
|
|
% /rad exch def
|
|
% normalize
|
|
% /y2 exch def
|
|
% /x2 exch def
|
|
% normalize
|
|
% /y1 exch def
|
|
% /x1 exch def
|
|
% newpath
|
|
% x1 y1 rad add moveto
|
|
% x1 y2 x2 y2 rad arcto
|
|
% x2 y2 x2 y1 rad arcto
|
|
% x2 y1 x1 y1 rad arcto
|
|
% x1 y1 x1 y2 rad arcto
|
|
% closepath
|
|
% 16 {pop} repeat
|
|
% } bind def
|
|
/rarc
|
|
{rad
|
|
{arcto} stopped
|
|
} bind def
|
|
/RR {
|
|
/rad exch def
|
|
normalize
|
|
/y2 exch def
|
|
/x2 exch def
|
|
normalize
|
|
/y1 exch def
|
|
/x1 exch def
|
|
mark
|
|
newpath
|
|
x1 y1 rad add moveto
|
|
x1 y2 x2 y2 rarc
|
|
x2 y2 x2 y1 rarc
|
|
x2 y1 x1 y1 rarc
|
|
% x2 y1 x1 y1 rarc
|
|
x1 y1 x1 y2 rarc
|
|
closepath
|
|
cleartomark
|
|
} bind def
|
|
|
|
/C {
|
|
grestore
|
|
gsave
|
|
R
|
|
clip
|
|
} bind def
|
|
/FMpointsize FMLOCAL
|
|
/F {
|
|
FMfonts exch get
|
|
FMpointsize scalefont
|
|
setfont
|
|
} bind def
|
|
/Q {
|
|
/FMpointsize exch def
|
|
F
|
|
} bind def
|
|
/T {
|
|
moveto show
|
|
} bind def
|
|
/RF {
|
|
rotate
|
|
0 ne {-1 1 scale} if
|
|
} bind def
|
|
/TF {
|
|
gsave
|
|
moveto
|
|
RF
|
|
show
|
|
grestore
|
|
} bind def
|
|
/P {
|
|
moveto
|
|
0 32 3 2 roll widthshow
|
|
} bind def
|
|
/PF {
|
|
gsave
|
|
moveto
|
|
RF
|
|
0 32 3 2 roll widthshow
|
|
grestore
|
|
} bind def
|
|
/S {
|
|
moveto
|
|
0 exch ashow
|
|
} bind def
|
|
/SF {
|
|
gsave
|
|
moveto
|
|
RF
|
|
0 exch ashow
|
|
grestore
|
|
} bind def
|
|
/B {
|
|
moveto
|
|
0 32 4 2 roll 0 exch awidthshow
|
|
} bind def
|
|
/BF {
|
|
gsave
|
|
moveto
|
|
RF
|
|
0 32 4 2 roll 0 exch awidthshow
|
|
grestore
|
|
} bind def
|
|
/G {
|
|
gsave
|
|
newpath
|
|
normalize translate 0.0 0.0 moveto
|
|
dnormalize scale
|
|
0.0 0.0 1.0 5 3 roll arc
|
|
closepath fill
|
|
grestore
|
|
} bind def
|
|
/A {
|
|
gsave
|
|
savematrix
|
|
newpath
|
|
2 index 2 div add exch 3 index 2 div sub exch
|
|
normalize 2 index 2 div sub exch 3 index 2 div add exch
|
|
translate
|
|
scale
|
|
0.0 0.0 1.0 5 3 roll arc
|
|
restorematrix
|
|
stroke
|
|
grestore
|
|
} bind def
|
|
/x FMLOCAL
|
|
/y FMLOCAL
|
|
/w FMLOCAL
|
|
/h FMLOCAL
|
|
/xx FMLOCAL
|
|
/yy FMLOCAL
|
|
/ww FMLOCAL
|
|
/hh FMLOCAL
|
|
/FMsaveobject FMLOCAL
|
|
/FMoptop FMLOCAL
|
|
/FMdicttop FMLOCAL
|
|
/BEGINPRINTCODE {
|
|
/FMdicttop countdictstack 1 add def
|
|
/FMoptop count 4 sub def
|
|
/FMsaveobject save def
|
|
userdict begin
|
|
/showpage {} def
|
|
FMNORMALIZEGRAPHICS
|
|
3 index neg 3 index neg translate
|
|
} bind def
|
|
/ENDPRINTCODE {
|
|
count -1 FMoptop {pop pop} for
|
|
countdictstack -1 FMdicttop {pop end} for
|
|
FMsaveobject restore
|
|
} bind def
|
|
/gn {
|
|
0
|
|
{ 46 mul
|
|
cf read pop
|
|
32 sub
|
|
dup 46 lt {exit} if
|
|
46 sub add
|
|
} loop
|
|
add
|
|
} bind def
|
|
/str FMLOCAL
|
|
/cfs {
|
|
/str sl string def
|
|
0 1 sl 1 sub {str exch val put} for
|
|
str def
|
|
} bind def
|
|
/ic [
|
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
|
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
|
|
0
|
|
{0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx}
|
|
{10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx}
|
|
{19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12}
|
|
{13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh}
|
|
{4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh}
|
|
{13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl}
|
|
{7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl}
|
|
{0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl}
|
|
{10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl}
|
|
] def
|
|
/sl FMLOCAL
|
|
/val FMLOCAL
|
|
/ws FMLOCAL
|
|
/im FMLOCAL
|
|
/bs FMLOCAL
|
|
/cs FMLOCAL
|
|
/len FMLOCAL
|
|
/pos FMLOCAL
|
|
/ms {
|
|
/sl exch def
|
|
/val 255 def
|
|
/ws cfs
|
|
/im cfs
|
|
/val 0 def
|
|
/bs cfs
|
|
/cs cfs
|
|
} bind def
|
|
400 ms
|
|
/cip {
|
|
is
|
|
0
|
|
cf cs readline pop
|
|
{ ic exch get exec
|
|
add
|
|
} forall
|
|
pop
|
|
|
|
/tot w 1 sub def
|
|
0 1 tot {
|
|
/indx exch def
|
|
/indxa is indx get def
|
|
/placer nredt indxa get def
|
|
/placeg ngreent indxa get def
|
|
/placeb nbluet indxa get def
|
|
cris indx placer 255 mul cvi put
|
|
cgis indx placeg 255 mul cvi put
|
|
cbis indx placeb 255 mul cvi put
|
|
} for pop cris
|
|
|
|
|
|
} bind def
|
|
/ip {
|
|
is
|
|
0
|
|
cf cs readline pop
|
|
{ ic exch get exec
|
|
add
|
|
} forall
|
|
pop
|
|
|
|
} bind def
|
|
/wh {
|
|
/len exch def
|
|
/pos exch def
|
|
ws 0 len getinterval im pos len getinterval copy pop
|
|
pos len
|
|
} bind def
|
|
/bl {
|
|
/len exch def
|
|
/pos exch def
|
|
bs 0 len getinterval im pos len getinterval copy pop
|
|
pos len
|
|
} bind def
|
|
/s1 1 string def
|
|
/fl {
|
|
/len exch def
|
|
/pos exch def
|
|
/val cf s1 readhexstring pop 0 get def
|
|
pos 1 pos len add 1 sub {im exch val put} for
|
|
pos len
|
|
} bind def
|
|
/hx {
|
|
3 copy getinterval
|
|
cf exch readhexstring pop pop
|
|
} bind def
|
|
/h FMLOCAL
|
|
/w FMLOCAL
|
|
/d FMLOCAL
|
|
/lb FMLOCAL
|
|
/bitmapsave FMLOCAL
|
|
/is FMLOCAL
|
|
/cf FMLOCAL
|
|
/wbytes {
|
|
dup
|
|
8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse
|
|
} bind def
|
|
/BEGINBITMAPBWc {
|
|
1 {} COMMONBITMAPc
|
|
} bind def
|
|
/BEGINBITMAPGRAYc {
|
|
8 {} COMMONBITMAPc
|
|
} bind def
|
|
/BEGINBITMAP2BITc {
|
|
2 {} COMMONBITMAPc
|
|
} bind def
|
|
/COMMONBITMAPc {
|
|
/r exch def
|
|
/d exch def
|
|
gsave
|
|
translate rotate scale /h exch def /w exch def
|
|
/lb w d wbytes def
|
|
sl lb lt {lb ms} if
|
|
/bitmapsave save def
|
|
r
|
|
/is im 0 lb getinterval def
|
|
ws 0 lb getinterval is copy pop
|
|
/cf currentfile def
|
|
w h d [w 0 0 h neg 0 h]
|
|
{ip} image
|
|
bitmapsave restore
|
|
grestore
|
|
} bind def
|
|
/BEGINBITMAPBW {
|
|
1 {} COMMONBITMAP
|
|
} bind def
|
|
/BEGINBITMAPGRAY {
|
|
8 {} COMMONBITMAP
|
|
} bind def
|
|
/BEGINBITMAP2BIT {
|
|
2 {} COMMONBITMAP
|
|
} bind def
|
|
/COMMONBITMAP {
|
|
/r exch def
|
|
/d exch def
|
|
gsave
|
|
translate rotate scale /h exch def /w exch def
|
|
/bitmapsave save def
|
|
r
|
|
/is w d wbytes string def
|
|
/cf currentfile def
|
|
w h d [w 0 0 h neg 0 h]
|
|
{cf is readhexstring pop} image
|
|
bitmapsave restore
|
|
grestore
|
|
} bind def
|
|
/proc1 FMLOCAL
|
|
/proc2 FMLOCAL
|
|
/newproc FMLOCAL
|
|
/Fmcc {
|
|
/proc2 exch cvlit def
|
|
/proc1 exch cvlit def
|
|
/newproc proc1 length proc2 length add array def
|
|
newproc 0 proc1 putinterval
|
|
newproc proc1 length proc2 putinterval
|
|
newproc cvx
|
|
} bind def
|
|
/ngrayt 256 array def
|
|
/nredt 256 array def
|
|
/nbluet 256 array def
|
|
/ngreent 256 array def
|
|
/gryt FMLOCAL
|
|
/blut FMLOCAL
|
|
/grnt FMLOCAL
|
|
/redt FMLOCAL
|
|
/indx FMLOCAL
|
|
/cynu FMLOCAL
|
|
/magu FMLOCAL
|
|
/yelu FMLOCAL
|
|
/k FMLOCAL
|
|
/u FMLOCAL
|
|
/colorsetup {
|
|
currentcolortransfer
|
|
/gryt exch def
|
|
/blut exch def
|
|
/grnt exch def
|
|
/redt exch def
|
|
0 1 255 {
|
|
/indx exch def
|
|
/cynu 1 red indx get 255 div sub def
|
|
/magu 1 green indx get 255 div sub def
|
|
/yelu 1 blue indx get 255 div sub def
|
|
/k cynu magu min yelu min def
|
|
nredt indx 1 0 cynu max sub redt exec put
|
|
ngreent indx 1 0 magu max sub grnt exec put
|
|
nbluet indx 1 0 yelu max sub blut exec put
|
|
ngrayt indx 1 k sub gryt exec put
|
|
} for
|
|
} bind def
|
|
/tran FMLOCAL
|
|
/fakecolorsetup {
|
|
/tran 256 string def
|
|
0 1 255 {/indx exch def
|
|
tran indx
|
|
red indx get 77 mul
|
|
green indx get 151 mul
|
|
blue indx get 28 mul
|
|
add add 256 idiv put} for
|
|
currenttransfer
|
|
{255 mul cvi tran exch get 255.0 div}
|
|
exch Fmcc settransfer
|
|
} bind def
|
|
/BITMAPCOLOR {
|
|
/d 8 def
|
|
gsave
|
|
translate rotate scale /h exch def /w exch def
|
|
/bitmapsave save def
|
|
colorsetup
|
|
/is w d wbytes string def
|
|
/ris w d wbytes string def
|
|
/gis w d wbytes string def
|
|
/bis w d wbytes string def
|
|
/cf currentfile def
|
|
w h d [w 0 0 h neg 0 h]
|
|
{cf is readhexstring pop
|
|
/tot w 1 sub def
|
|
0 1 tot {
|
|
/indx exch def
|
|
/indxa is indx get def
|
|
/placer nredt indxa get def
|
|
/placeg ngreent indxa get def
|
|
/placeb nbluet indxa get def
|
|
ris indx placer 255 mul cvi put
|
|
gis indx placeg 255 mul cvi put
|
|
bis indx placeb 255 mul cvi put
|
|
} for pop ris}
|
|
{gis} {bis} true 3 colorimage
|
|
bitmapsave restore
|
|
grestore
|
|
} bind def
|
|
/BITMAPCOLORc {
|
|
/d 8 def
|
|
gsave
|
|
translate rotate scale /h exch def /w exch def
|
|
/lb w d wbytes def
|
|
sl lb lt {lb ms} if
|
|
/bitmapsave save def
|
|
colorsetup
|
|
/is im 0 lb getinterval def
|
|
/cris lb string def
|
|
/cgis lb string def
|
|
/cbis lb string def
|
|
ws 0 lb getinterval is copy pop
|
|
/cf currentfile def
|
|
w h d [w 0 0 h neg 0 h]
|
|
{cip} {cgis} {cbis} true 3 colorimage
|
|
bitmapsave restore
|
|
grestore
|
|
} bind def
|
|
/BITMAPTRUECOLORc {
|
|
gsave
|
|
translate rotate scale /h exch def /w exch def
|
|
/bitmapsave save def
|
|
|
|
/is w string def
|
|
|
|
ws 0 w getinterval is copy pop
|
|
/cf currentfile def
|
|
w h 8 [w 0 0 h neg 0 h]
|
|
{ip} {gip} {bip} true 3 colorimage
|
|
bitmapsave restore
|
|
grestore
|
|
} bind def
|
|
/BITMAPTRUECOLOR {
|
|
gsave
|
|
translate rotate scale /h exch def /w exch def
|
|
/bitmapsave save def
|
|
/is w string def
|
|
/gis w string def
|
|
/bis w string def
|
|
/cf currentfile def
|
|
w h 8 [w 0 0 h neg 0 h]
|
|
{ cf is readhexstring pop }
|
|
{ cf gis readhexstring pop }
|
|
{ cf bis readhexstring pop }
|
|
true 3 colorimage
|
|
bitmapsave restore
|
|
grestore
|
|
} bind def
|
|
/BITMAPTRUEGRAYc {
|
|
gsave
|
|
translate rotate scale /h exch def /w exch def
|
|
/bitmapsave save def
|
|
|
|
/is w string def
|
|
|
|
ws 0 w getinterval is copy pop
|
|
/cf currentfile def
|
|
w h 8 [w 0 0 h neg 0 h]
|
|
{ip gip bip w gray} image
|
|
bitmapsave restore
|
|
grestore
|
|
} bind def
|
|
/ww FMLOCAL
|
|
/r FMLOCAL
|
|
/g FMLOCAL
|
|
/b FMLOCAL
|
|
/i FMLOCAL
|
|
/gray {
|
|
/ww exch def
|
|
/b exch def
|
|
/g exch def
|
|
/r exch def
|
|
0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul
|
|
b i get .114 mul add add r i 3 -1 roll floor cvi put } for
|
|
r
|
|
} bind def
|
|
/BITMAPTRUEGRAY {
|
|
gsave
|
|
translate rotate scale /h exch def /w exch def
|
|
/bitmapsave save def
|
|
/is w string def
|
|
/gis w string def
|
|
/bis w string def
|
|
/cf currentfile def
|
|
w h 8 [w 0 0 h neg 0 h]
|
|
{ cf is readhexstring pop
|
|
cf gis readhexstring pop
|
|
cf bis readhexstring pop w gray} image
|
|
bitmapsave restore
|
|
grestore
|
|
} bind def
|
|
/BITMAPGRAY {
|
|
8 {fakecolorsetup} COMMONBITMAP
|
|
} bind def
|
|
/BITMAPGRAYc {
|
|
8 {fakecolorsetup} COMMONBITMAPc
|
|
} bind def
|
|
/ENDBITMAP {
|
|
} bind def
|
|
end
|
|
/ALDsave FMLOCAL
|
|
/ALDmatrix matrix def ALDmatrix currentmatrix pop
|
|
/StartALD {
|
|
/ALDsave save def
|
|
savematrix
|
|
ALDmatrix setmatrix
|
|
} bind def
|
|
/InALD {
|
|
restorematrix
|
|
} bind def
|
|
/DoneALD {
|
|
ALDsave restore
|
|
} bind def
|
|
%%EndProlog
|
|
%%BeginSetup
|
|
(3.0) FMVERSION
|
|
1 1 612 792 0 1 18 FMDOCUMENT
|
|
0 0 /Helvetica-Bold FMFONTDEFINE
|
|
1 0 /Times-Roman FMFONTDEFINE
|
|
2 0 /Times-Bold FMFONTDEFINE
|
|
3 1 /Symbol FMFONTDEFINE
|
|
4 0 /Courier-Bold FMFONTDEFINE
|
|
5 0 /Times-Italic FMFONTDEFINE
|
|
6 0 /Helvetica FMFONTDEFINE
|
|
32 FMFILLS
|
|
0 0 FMFILL
|
|
1 0.1 FMFILL
|
|
2 0.3 FMFILL
|
|
3 0.5 FMFILL
|
|
4 0.7 FMFILL
|
|
5 0.9 FMFILL
|
|
6 0.97 FMFILL
|
|
7 1 FMFILL
|
|
8 <0f1e3c78f0e1c387> FMFILL
|
|
9 <0f87c3e1f0783c1e> FMFILL
|
|
10 <cccccccccccccccc> FMFILL
|
|
11 <ffff0000ffff0000> FMFILL
|
|
12 <8142241818244281> FMFILL
|
|
13 <03060c183060c081> FMFILL
|
|
14 <8040201008040201> FMFILL
|
|
16 1 FMFILL
|
|
17 0.9 FMFILL
|
|
18 0.7 FMFILL
|
|
19 0.5 FMFILL
|
|
20 0.3 FMFILL
|
|
21 0.1 FMFILL
|
|
22 0.03 FMFILL
|
|
23 0 FMFILL
|
|
24 <f0e1c3870f1e3c78> FMFILL
|
|
25 <f0783c1e0f87c3e1> FMFILL
|
|
26 <3333333333333333> FMFILL
|
|
27 <0000ffff0000ffff> FMFILL
|
|
28 <7ebddbe7e7dbbd7e> FMFILL
|
|
29 <fcf9f3e7cf9f3f7e> FMFILL
|
|
30 <7fbfdfeff7fbfdfe> FMFILL
|
|
%%EndSetup
|
|
%%Page: "1" 1
|
|
%%BeginPaperSize: Letter
|
|
%%EndPaperSize
|
|
612 792 0 FMBEGINPAGE
|
|
72 444.68 558 444.68 2 L
|
|
2 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
0.25 H
|
|
N
|
|
0 10 Q
|
|
(Autumn 1994) 495.24 60.29 T
|
|
1 24 Q
|
|
-0.17 (REACT) 207 677 S
|
|
1 19 Q
|
|
-0.13 (TM) 284.8 686.6 S
|
|
1 24 Q
|
|
-0.17 ( In IRIX) 313.04 677 S
|
|
1 19 Q
|
|
-0.13 (TM) 392.98 686.6 S
|
|
1 24 Q
|
|
-0.17 ( 5.3) 421.22 677 S
|
|
207 629 558 639 C
|
|
207 630 459 630 2 L
|
|
0.25 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 0 612 792 C
|
|
1 24 Q
|
|
0 X
|
|
0 K
|
|
-0.17 (T) 207 647 S
|
|
-0.17 (echnical Report) 219.81 647 S
|
|
2 12 Q
|
|
(Silicon Graphics, Inc.) 207 605 T
|
|
2 10 Q
|
|
(A description of the r) 207 425.33 T
|
|
(eal-time capabilities of IRIX V) 297.87 425.33 T
|
|
(ersion 5.3) 427.42 425.33 T
|
|
(running on Onyx) 207 412.33 T
|
|
1 8 Q
|
|
-0.05 (TM) 280.32 416.33 S
|
|
2 10 Q
|
|
( and CHALLENGE) 292.2 412.33 T
|
|
1 8 Q
|
|
-0.05 (TM) 377.18 416.33 S
|
|
2 10 Q
|
|
( multipr) 389.06 412.33 T
|
|
(ocessor) 424.14 412.33 T
|
|
(systems.) 207 399.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "1" 2
|
|
%%Page: "2" 2
|
|
612 792 0 FMBEGINPAGE
|
|
FMENDPAGE
|
|
%%EndPage: "2" 3
|
|
%%Page: "3" 3
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 9 Q
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(3) 527.85 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(31) 546.89 60.96 T
|
|
54 660.33 540 667.33 C
|
|
54 660.33 540 667.33 R
|
|
7 X
|
|
0 K
|
|
V
|
|
51 664.33 303 664.33 2 L
|
|
0.25 H
|
|
0 Z
|
|
0 X
|
|
N
|
|
0 0 612 792 C
|
|
1 20 Q
|
|
0 X
|
|
0 K
|
|
-0.14 (T) 54 673.99 S
|
|
-0.14 (able of Contents) 64.68 673.99 S
|
|
1 10 Q
|
|
(Introduction) 162 643.66 T
|
|
(5) 535 643.66 T
|
|
(Scope Of This Document) 189 631.66 T
|
|
(5) 535 631.66 T
|
|
(Con\336guration Assumptions) 189 619.66 T
|
|
(5) 535 619.66 T
|
|
(Related Documentation) 189 607.66 T
|
|
(5) 535 607.66 T
|
|
(System Interrupt Response) 162 591.66 T
|
|
(6) 535 591.66 T
|
|
(T) 189 579.66 T
|
|
(otal Interrupt Response T) 194.41 579.66 T
|
|
(ime) 295.93 579.66 T
|
|
(6) 535 579.66 T
|
|
(Interrupt Latency) 189 567.66 T
|
|
(7) 535 567.66 T
|
|
(Hardware Interrupt Latency) 211.75 555.66 T
|
|
(7) 535 555.66 T
|
|
(Software Interrupt Latency) 211.75 543.66 T
|
|
(8) 535 543.66 T
|
|
(Potential Sources Of Software Interrupt Latency) 211.75 531.66 T
|
|
(8) 535 531.66 T
|
|
(Interrupt Handlers) 252 519.66 T
|
|
(8) 535 519.66 T
|
|
(Critical Kernel Regions) 252 507.66 T
|
|
(8) 535 507.66 T
|
|
(Software Interrupt Response T) 189 495.66 T
|
|
(ime) 311.61 495.66 T
|
|
(9) 535 495.66 T
|
|
(Con\336guring For Real-T) 162 479.66 T
|
|
(ime Operation) 256.6 479.66 T
|
|
(10) 530.01 479.66 T
|
|
(Redirecting Interrupts) 189 467.66 T
|
|
(10) 530.01 467.66 T
|
|
(Assigning Processes T) 189 455.66 T
|
|
(o Processors) 278.8 455.66 T
|
|
(1) 530.37 455.66 T
|
|
(1) 535 455.66 T
|
|
(Locking Processes Into Memory) 189 443.66 T
|
|
(1) 530.37 443.66 T
|
|
(1) 535 443.66 T
|
|
(Processor Isolation) 189 431.66 T
|
|
(12) 530.01 431.66 T
|
|
(Overview) 211.75 419.66 T
|
|
(12) 530.01 419.66 T
|
|
(Activities That Override Processor Isolation) 211.75 407.66 T
|
|
(12) 530.01 407.66 T
|
|
(Minimizing Memory Management Overhead) 211.75 395.66 T
|
|
(13) 530.01 395.66 T
|
|
(Controlling Process Scheduling) 189 383.66 T
|
|
(13) 530.01 383.66 T
|
|
(Setting Process Priority) 211.75 371.66 T
|
|
(13) 530.01 371.66 T
|
|
(Disabling The UNIX Scheduler \050Shutting Of) 211.75 359.66 T
|
|
(f Clock Interrupts\051) 391.17 359.66 T
|
|
(14) 530.01 359.66 T
|
|
(Deadline Scheduling) 211.75 347.66 T
|
|
(14) 530.01 347.66 T
|
|
(Frame Scheduler) 252 335.66 T
|
|
(15) 530.01 335.66 T
|
|
(Other Real-T) 162 319.66 T
|
|
(ime Programming Features) 214.66 319.66 T
|
|
(18) 530.01 319.66 T
|
|
(T) 189 307.66 T
|
|
(imers) 194.76 307.66 T
|
|
(18) 530.01 307.66 T
|
|
(Interval T) 211.75 295.66 T
|
|
(imers) 251.09 295.66 T
|
|
(17) 530.01 295.66 T
|
|
(Event T) 211.75 283.66 T
|
|
(imers) 243.32 283.66 T
|
|
(17) 530.01 283.66 T
|
|
(Details Of T) 211.75 271.66 T
|
|
(imer Resolution) 261.36 271.66 T
|
|
(19) 530.01 271.66 T
|
|
(Asynchronous Disk I/O) 189 259.66 T
|
|
(20) 530.01 259.66 T
|
|
(External Interrupts) 189 247.66 T
|
|
(22) 530.01 247.66 T
|
|
(Signals) 189 235.66 T
|
|
(22) 530.01 235.66 T
|
|
(VME Bus Capabilities and Use) 162 219.66 T
|
|
(25) 530.01 219.66 T
|
|
(Con\336gurations) 189 207.66 T
|
|
(25) 530.01 207.66 T
|
|
(Memory Mapping) 189 195.66 T
|
|
(26) 530.01 195.66 T
|
|
(PIO Mapping) 211.75 183.66 T
|
|
(26) 530.01 183.66 T
|
|
(DMA Mapping) 211.75 171.66 T
|
|
(26) 530.01 171.66 T
|
|
(Optimizing Bandwidth and Latency) 189 159.66 T
|
|
(27) 530.01 159.66 T
|
|
(PIO Operations) 211.74 147.66 T
|
|
(29) 530.01 147.66 T
|
|
(DMA Engine) 211.74 135.66 T
|
|
(29) 530.01 135.66 T
|
|
(Intelligent I/O Controllers) 211.74 123.66 T
|
|
(30) 530.01 123.66 T
|
|
(SCSI Capabilities and Use) 162 107.66 T
|
|
(31) 530.01 107.66 T
|
|
(Summary of REACT System Functions) 162 92.66 T
|
|
(32) 530.01 92.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "3" 4
|
|
%%Page: "4" 4
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(4) 54 60.96 T
|
|
0 9 Q
|
|
( of) 59.56 60.96 T
|
|
(31) 73.32 60.96 T
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
54 664.33 540 671.33 C
|
|
54 664.33 540 671.33 R
|
|
7 X
|
|
0 K
|
|
V
|
|
51 668.33 303 668.33 2 L
|
|
0.25 H
|
|
0 Z
|
|
0 X
|
|
N
|
|
0 0 612 792 C
|
|
1 16 Q
|
|
0 X
|
|
0 K
|
|
-0.11 (List of Figures) 54 676.66 S
|
|
1 10 Q
|
|
(Components of T) 155.02 651.66 T
|
|
(otal Interrupt Response) 224.28 651.66 T
|
|
(6) 535 651.66 T
|
|
(Hardware Interrupt Path) 155.02 639.66 T
|
|
(7) 535 639.66 T
|
|
(Components of Software Interrupt Response T) 155.02 627.66 T
|
|
(ime) 341.48 627.66 T
|
|
(9) 535 627.66 T
|
|
(Frame Scheduler Operation) 155.02 615.66 T
|
|
(16) 530.01 615.66 T
|
|
(Asynchronous I/O operation) 155.02 603.66 T
|
|
(21) 530.01 603.66 T
|
|
54 575.33 540 582.33 C
|
|
54 575.33 540 582.33 R
|
|
7 X
|
|
0 K
|
|
V
|
|
51 579.33 303 579.33 2 L
|
|
0.25 H
|
|
0 Z
|
|
0 X
|
|
N
|
|
0 0 612 792 C
|
|
1 16 Q
|
|
0 X
|
|
0 K
|
|
-0.11 (List of T) 54 587.66 S
|
|
-0.11 (ables) 107.86 587.66 S
|
|
1 10 Q
|
|
(Signal Functions Summary) 153 562.66 T
|
|
(24) 530.01 562.66 T
|
|
(CHALLENGE / Onyx VME Slots) 153 550.66 T
|
|
(25) 530.01 550.66 T
|
|
(POWERchannel-2 \050Pc-2\051 Con\336gurations vs. Number of VME Busses) 153 538.66 T
|
|
(27) 530.01 538.66 T
|
|
(VME Bus DMA Performance \050using DMA board on VME\051) 153 526.66 T
|
|
(28) 530.01 526.66 T
|
|
(VME PIO Bandwidth \050CPU accessing Slave on VME Bus\051) 153 514.66 T
|
|
(29) 530.01 514.66 T
|
|
(VME DMA Engine Performance vs. Block Size \050MB / sec, D32 transfers\051) 153 502.66 T
|
|
(30) 530.01 502.66 T
|
|
(REACT System Functions) 153 490.66 T
|
|
(32) 530.01 490.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "4" 5
|
|
%%Page: "5" 5
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Introduction) 207 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(5) 527.85 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
72 672.33 558 675.33 C
|
|
207 674.48 558 674.48 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
72 674.48 198 674.48 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 12 Q
|
|
0 X
|
|
0 K
|
|
(1.0) 207 679.33 T
|
|
( Introduction) 223.67 679.33 T
|
|
1 10 Q
|
|
-0.18 (The REACT extensions to IRIX enable a multiprocessor system to be con\336gured to pro-) 207 657.66 P
|
|
(vide deterministic performance, including the response to external interrupts and sig-) 207 645.66 T
|
|
(nals. REACT also provides features that simplify the implementation of real-time) 207 633.66 T
|
|
(applications.) 207 621.66 T
|
|
(The approach used in IRIX with REACT to achieving determinism is to provide the) 207 597.66 T
|
|
(user with full control over the assignment of software activity to processors. One pro-) 207 585.66 T
|
|
(cessor \050or more, if desired\051 is designated as the system processor) 207 573.66 T
|
|
(, and all non-determin-) 465.57 573.66 T
|
|
(istic system activity takes place on that processor) 207 561.66 T
|
|
(. For example, system activity) 403.26 561.66 T
|
|
(typically includes the UNIX) 207 549.66 T
|
|
1 8 Q
|
|
(TM) 319.98 553.66 T
|
|
1 10 Q
|
|
( scheduler and general-purpose disk and network I/O.) 331.97 549.66 T
|
|
-0.29 (The remaining processors are designated as real-time processors, and no system activity) 207 537.66 P
|
|
(takes place on those processors unless it is explicitly requested by a real-time process.) 207 525.66 T
|
|
0 F
|
|
(1.1) 184.11 495.66 T
|
|
(Scope Of This Document) 207 495.66 T
|
|
1 F
|
|
(This document covers the subset of IRIX operating system functionality and of Onyx) 207 479.66 T
|
|
(and CHALLENGE multiprocessor hardware that is of particular interest to developers) 207 467.66 T
|
|
-0.12 (of real-time applications. It provides a description of system functionality) 207 455.66 P
|
|
-0.12 (, identi\336es the) 499.51 455.66 P
|
|
(system calls and user interfaces that provide access to the functionality) 207 443.66 T
|
|
(, and provides) 489.48 443.66 T
|
|
(background information.) 207 431.66 T
|
|
0 F
|
|
(1.2) 184.11 401.66 T
|
|
(Con\336guration Assumptions) 207 401.66 T
|
|
1 F
|
|
(The descriptions included in this document are accurate for all Onyx systems and all) 207 385.66 T
|
|
(multiprocessor CHALLENGE systems running IRIX 5.3. W) 207 373.66 T
|
|
(ithin this document, these) 448.67 373.66 T
|
|
(con\336gurations are referred to generically as \322the system\323.) 207 361.66 T
|
|
0 F
|
|
(1.3) 184.11 331.66 T
|
|
(Related Documentation) 207 331.66 T
|
|
1 F
|
|
(Refer also to the following documents:) 207 315.66 T
|
|
-0.1 (Advanced Site and Server Administration Guide \050M4-ADMIN-3.0, or available on-line) 207 291.66 P
|
|
(through IRIS Insight) 207 279.66 T
|
|
1 8 Q
|
|
(TM) 289.73 283.66 T
|
|
1 10 Q
|
|
(\051) 301.73 279.66 T
|
|
(CHALLENGE and Onyx Performance Report) 207 255.66 T
|
|
(IRIX Device Driver Programming Guide \050007-091) 207 231.66 T
|
|
(1-030\051) 410.09 231.66 T
|
|
(IRIX Device Driver Reference Pages \050007-2183-001\051) 207 207.66 T
|
|
(IRIX Man Pages \050M4-IRXMP-4.0, or available on-line through IRIS Insight\051) 207 183.66 T
|
|
(IRIX System Programming Guide \050available on-line through IRIS Insight\051) 207 159.66 T
|
|
(Symmetric Multiprocessing Systems T) 207 135.66 T
|
|
(echnical Report \050EVER-IND-TR \05001/93\051\051) 362.05 135.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "5" 6
|
|
%%Page: "6" 6
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(System Interrupt Response) 189 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(6) 54 60.96 T
|
|
0 9 Q
|
|
( of) 59.56 60.96 T
|
|
0 10 Q
|
|
( 33) 70.54 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
54 672.33 540 675.33 C
|
|
189 674.48 540 674.48 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
54 674.48 180 674.48 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 12 Q
|
|
0 X
|
|
0 K
|
|
(2.0) 189 679.33 T
|
|
( System Interrupt Response) 205.67 679.33 T
|
|
1 10 Q
|
|
(This section describes the events that occur in response to an external interrupt.) 189 657.66 T
|
|
0 F
|
|
(2.1) 166.11 627.66 T
|
|
(T) 189 627.66 T
|
|
(otal Interrupt Response T) 194.37 627.66 T
|
|
(ime) 315.25 627.66 T
|
|
1 F
|
|
(The REACT extensions included in IRIX provide guaranteed deterministic interrupt) 189 603.66 T
|
|
(response on a properly con\336gured system. Performance is speci\336ed in terms of total) 189 591.66 T
|
|
(interrupt response, which is de\336ned as the interval between the occurrence of an exter-) 189 579.66 T
|
|
(nal interrupt and the start of execution of a user process that was enabled by that inter-) 189 567.66 T
|
|
(rupt. The worst-case total interrupt response time for a properly con\336gured system) 189 555.66 T
|
|
(running IRIX V) 189 543.66 T
|
|
(.5 is guaranteed not to exceed 200) 251.56 543.66 T
|
|
3 F
|
|
(m) 390.34 543.66 T
|
|
1 F
|
|
(s.) 396.1 543.66 T
|
|
-0.17 (T) 189 519.66 P
|
|
-0.17 (otal Interrupt Response time can be divided into two component intervals \050refer to Fig-) 194.41 519.66 P
|
|
(ure 1\051:) 189 507.66 T
|
|
0 9 Q
|
|
(1.) 189 489.66 T
|
|
2 10 Q
|
|
-0.15 (Interrupt latency) 202.74 489.66 P
|
|
-0.15 (.) 275.61 489.66 P
|
|
1 F
|
|
-0.15 ( The time between the occurrence of a hardware interrupt and the) 278.11 489.66 P
|
|
(instant when the operating system begins responding to that interrupt.) 202.74 477.66 T
|
|
0 9 Q
|
|
(2.) 189 462.66 T
|
|
2 10 Q
|
|
(Softwar) 202.74 462.66 T
|
|
(e interrupt r) 236.43 462.66 T
|
|
(esponse time.) 289.54 462.66 T
|
|
1 F
|
|
( The system time spent responding to the inter-) 346.17 462.66 T
|
|
(rupt, ending when a user process begins executing.) 202.74 450.66 T
|
|
(Figure 1: Components of T) 189 116.68 T
|
|
(otal Interrupt Response) 297.13 116.68 T
|
|
54 89.3 540 687.33 C
|
|
82.01 137.34 540 423.33 C
|
|
0 34 -295 480 -21 446 274 91.01 144.33 FMBEGINEPSF
|
|
%%BeginDocument: <inline>
|
|
%!PS-Adobe-3.0 EPSF-3.0
|
|
%%Creator: Adobe Illustrator(TM) 3.2
|
|
%%For: (Frank X. Doyle) (Dangerous Ideas Group)
|
|
%%Title: (Fig. 1 Chart)
|
|
%%CreationDate: (1/20/94) (4:39 PM)
|
|
%%BoundingBox: 34 -295 480 -21
|
|
%%DocumentProcessColors: Black
|
|
%%DocumentFonts: Helvetica
|
|
%%DocumentSuppliedResources: procset Adobe_packedarray 2.0 0
|
|
%%+ procset Adobe_cmykcolor 1.1 0
|
|
%%+ procset Adobe_cshow 1.1 0
|
|
%%+ procset Adobe_customcolor 1.0 0
|
|
%%+ procset Adobe_typography_AI3 1.0 1
|
|
%%+ procset Adobe_IllustratorA_AI3 1.0 1
|
|
%AI3_ColorUsage: Black&White
|
|
%AI3_TemplateBox: 306 -394 306 -394
|
|
%AI3_TileBox: 18 -782 594 -6
|
|
%AI3_DocumentPreview: Macintosh_Pic
|
|
%%EndComments
|
|
%%BeginProlog
|
|
%%BeginResource: procset Adobe_packedarray 2.0 0
|
|
%%Title: (Packed Array Operators)
|
|
%%Version: 2.0
|
|
%%CreationDate: (8/2/90) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
userdict /Adobe_packedarray 5 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/packedarray where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
Adobe_packedarray begin
|
|
Adobe_packedarray
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
userdict 3 1 roll put
|
|
} forall
|
|
end
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
} def
|
|
/packedarray % arguments count packedarray array
|
|
{
|
|
array astore readonly
|
|
} def
|
|
/setpacking % boolean setpacking -
|
|
{
|
|
pop
|
|
} def
|
|
/currentpacking % - setpacking boolean
|
|
{
|
|
false
|
|
} def
|
|
currentdict readonly pop end
|
|
%%EndResource
|
|
Adobe_packedarray /initialize get exec
|
|
%%BeginResource: procset Adobe_cmykcolor 1.1 0
|
|
%%Title: (CMYK Color Operators)
|
|
%%Version: 1.1
|
|
%%CreationDate: (1/23/89) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_cmykcolor 4 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/setcmykcolor where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
userdict /Adobe_cmykcolor_vars 2 dict dup begin put
|
|
/_setrgbcolor
|
|
/setrgbcolor load def
|
|
/_currentrgbcolor
|
|
/currentrgbcolor load def
|
|
Adobe_cmykcolor begin
|
|
Adobe_cmykcolor
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
pop pop
|
|
} forall
|
|
end
|
|
end
|
|
Adobe_cmykcolor begin
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
currentdict Adobe_cmykcolor eq
|
|
{
|
|
end
|
|
} if
|
|
} def
|
|
/setcmykcolor % cyan magenta yellow black setcmykcolor -
|
|
{
|
|
1 sub 4 1 roll
|
|
3
|
|
{
|
|
3 index add neg dup 0 lt
|
|
{
|
|
pop 0
|
|
} if
|
|
3 1 roll
|
|
} repeat
|
|
Adobe_cmykcolor_vars /_setrgbcolor get exec
|
|
pop
|
|
} def
|
|
/currentcmykcolor % - currentcmykcolor cyan magenta yellow black
|
|
{
|
|
Adobe_cmykcolor_vars /_currentrgbcolor get exec
|
|
3
|
|
{
|
|
1 sub neg 3 1 roll
|
|
} repeat
|
|
0
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
%%EndResource
|
|
%%BeginResource: procset Adobe_cshow 1.1 0
|
|
%%Title: (cshow Operator)
|
|
%%Version: 1.1
|
|
%%CreationDate: (1/23/89) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_cshow 3 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/cshow where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
userdict /Adobe_cshow_vars 1 dict dup begin put
|
|
/_cshow % - _cshow proc
|
|
{} def
|
|
Adobe_cshow begin
|
|
Adobe_cshow
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
userdict 3 1 roll put
|
|
} forall
|
|
end
|
|
end
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
} def
|
|
/cshow % proc string cshow -
|
|
{
|
|
exch
|
|
Adobe_cshow_vars
|
|
exch /_cshow
|
|
exch put
|
|
{
|
|
0 0 Adobe_cshow_vars /_cshow get exec
|
|
} forall
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
%%EndResource
|
|
%%BeginResource: procset Adobe_customcolor 1.0 0
|
|
%%Title: (Custom Color Operators)
|
|
%%Version: 1.0
|
|
%%CreationDate: (5/9/88) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_customcolor 5 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/setcustomcolor where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
Adobe_customcolor begin
|
|
Adobe_customcolor
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
pop pop
|
|
} forall
|
|
end
|
|
Adobe_customcolor begin
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
currentdict Adobe_customcolor eq
|
|
{
|
|
end
|
|
} if
|
|
} def
|
|
/findcmykcustomcolor % cyan magenta yellow black name findcmykcustomcolor object
|
|
{
|
|
5 packedarray
|
|
} def
|
|
/setcustomcolor % object tint setcustomcolor -
|
|
{
|
|
exch
|
|
aload pop pop
|
|
4
|
|
{
|
|
4 index mul 4 1 roll
|
|
} repeat
|
|
5 -1 roll pop
|
|
setcmykcolor
|
|
} def
|
|
/setoverprint % boolean setoverprint -
|
|
{
|
|
pop
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
%%EndResource
|
|
%%BeginResource: procset Adobe_typography_AI3 1.1 0
|
|
%%Title: (Typography Operators)
|
|
%%Version: 1.0
|
|
%%CreationDate:(5/31/90) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_typography_AI3 47 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/TZ
|
|
where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
Adobe_typography_AI3 begin
|
|
Adobe_typography_AI3
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
pop pop
|
|
} forall
|
|
end
|
|
Adobe_typography_AI3 begin
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
currentdict Adobe_typography_AI3 eq
|
|
{
|
|
end
|
|
} if
|
|
} def
|
|
% [ number value stream [ array for encoding modification ] modifyEncoding ==> [ modified array ]
|
|
/modifyEncoding
|
|
{
|
|
/_tempEncode exch ddef
|
|
|
|
% pointer for sequential encodings
|
|
/_pntr 0 ddef
|
|
|
|
{
|
|
% get bottom object
|
|
counttomark -1 roll
|
|
% is it a mark ?
|
|
dup type dup /marktype eq
|
|
{
|
|
% exit
|
|
pop pop exit
|
|
}
|
|
{
|
|
% ... object ... type ....
|
|
% insert if a nametype
|
|
/nametype eq
|
|
{
|
|
% insert the name at _pntr and increment pointer
|
|
_tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
|
|
put
|
|
}
|
|
{
|
|
% reset _pntr if it's a number
|
|
/_pntr exch ddef
|
|
}
|
|
ifelse
|
|
}
|
|
ifelse
|
|
}
|
|
loop
|
|
|
|
% return the modified encoding
|
|
_tempEncode
|
|
}
|
|
def
|
|
/TE % Set std platform encoding % (encoding pairs) TE -
|
|
{
|
|
StandardEncoding 256 array copy modifyEncoding
|
|
/_nativeEncoding exch def
|
|
} def
|
|
% re-define font
|
|
% expected arguments
|
|
% for 'normal fonts :
|
|
% [ /_Helvetica-Bold/Helvetica-Bold direction fontScript defaultEncoding TZ
|
|
%
|
|
% for cartographic, pictographic, and expert fonts :
|
|
% [ ... number value stream ... /_Symbol/Symbol
|
|
% direction fontScript defaultEncoding TZ
|
|
% for blended fonts w/ default encoding :
|
|
% [ /_AdobeSans_20ULig1XCond-Bold/AdobeSans
|
|
% direction fontScript defaultEncoding [ w0 w1 ... wn ] TZ
|
|
% for blended fonts w/ special encoding :
|
|
% [ ... number value stream ... /_AdobeSans_20ULig1XCond/AdobeSans
|
|
% direction fontScript defaultEncoding [ w0 w1 ... wn ] TZ
|
|
/TZ
|
|
{
|
|
% set weight vector (if present)
|
|
dup type /arraytype eq {/_wv exch def} {/_wv 0 def} ifelse
|
|
% platform dependent coding flag
|
|
/_useNativeEncoding exch def
|
|
% pop fontScript & direction
|
|
pop pop
|
|
|
|
% create a new dictionary with length
|
|
% equal to original dictionary length + 2
|
|
% copy all the key/value pairs except FID
|
|
% call makeblended font with the weight values if _wv is an array
|
|
findfont _wv type /arraytype eq {_wv makeblendedfont} if dup length 2 add dict
|
|
|
|
begin
|
|
|
|
% copy all the values but the FID
|
|
% into the new dictionary
|
|
mark exch
|
|
{
|
|
1 index /FID ne { def } if cleartomark mark
|
|
}
|
|
forall
|
|
% discard last mark
|
|
pop
|
|
|
|
% define FontName
|
|
/FontName exch def
|
|
|
|
% if no re-encoding stream is present
|
|
% then if the base encoding vector of the font
|
|
% is the same as StandardEncoding
|
|
% and the use platform encoding flag is true
|
|
% then install AI platform encoding
|
|
% else leave the base encoding in effect
|
|
counttomark 0 eq
|
|
{
|
|
1 _useNativeEncoding eq
|
|
{
|
|
/Encoding _nativeEncoding def
|
|
}
|
|
if
|
|
% clean up
|
|
cleartomark
|
|
}
|
|
{
|
|
% custom encoding to be done
|
|
% start off with a copy of the font's standard encoding
|
|
/Encoding load 256 array copy
|
|
modifyEncoding /Encoding exch def
|
|
}
|
|
ifelse
|
|
FontName currentdict
|
|
end
|
|
|
|
% register the new font
|
|
definefont pop
|
|
}
|
|
def
|
|
% text painting operators
|
|
/tr % string tr ax ay string
|
|
{
|
|
_ax _ay 3 2 roll
|
|
} def
|
|
/trj % string trj cx cy fillchar ax ay string
|
|
{
|
|
_cx _cy _sp _ax _ay 6 5 roll
|
|
} def
|
|
/a0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
dup
|
|
currentpoint 3 2 roll
|
|
tr _psf
|
|
newpath moveto
|
|
tr _ctm _pss
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
dup
|
|
currentpoint 3 2 roll
|
|
trj _pjsf
|
|
newpath moveto
|
|
trj _ctm _pjss
|
|
} ddef
|
|
|
|
} def
|
|
/a1
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
dup currentpoint 4 2 roll gsave
|
|
dup currentpoint 3 2 roll
|
|
tr _psf
|
|
newpath moveto
|
|
tr _ctm _pss
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
dup currentpoint 4 2 roll gsave
|
|
dup currentpoint 3 2 roll
|
|
trj _pjsf
|
|
newpath moveto
|
|
trj _ctm _pjss
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
|
|
} def
|
|
/e0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
tr _psf
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
trj _pjsf
|
|
} ddef
|
|
} def
|
|
/e1
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
dup currentpoint 4 2 roll gsave
|
|
tr _psf
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
dup currentpoint 4 2 roll gsave
|
|
trj _pjsf
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
} def
|
|
/i0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
tr sp
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
trj jsp
|
|
} ddef
|
|
} def
|
|
/i1
|
|
{
|
|
W N
|
|
} def
|
|
/o0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
tr sw rmoveto
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
trj swj rmoveto
|
|
} ddef
|
|
} def
|
|
/r0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
tr _ctm _pss
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
trj _ctm _pjss
|
|
} ddef
|
|
} def
|
|
/r1
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
dup currentpoint 4 2 roll currentpoint gsave newpath moveto
|
|
tr _ctm _pss
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
dup currentpoint 4 2 roll currentpoint gsave newpath moveto
|
|
trj _ctm _pjss
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
} def
|
|
% font operators
|
|
% Binding
|
|
/To % begin text % bindType To -
|
|
{
|
|
pop _ctm currentmatrix pop
|
|
} def
|
|
/TO % end text % TO -
|
|
{
|
|
Te _ctm setmatrix newpath
|
|
} def
|
|
% Text paths
|
|
/Tp % begin text path % a b c d tx ty startPt Tp -
|
|
{
|
|
pop _tm astore pop _ctm setmatrix
|
|
_tDict begin /W {} def /h {} def
|
|
} def
|
|
/TP % end text path % TP -
|
|
{
|
|
end
|
|
iTm 0 0 moveto
|
|
} def
|
|
% Render mode & matrix operators
|
|
/Tr % begin render % render Tr -
|
|
{
|
|
_render 3 le {currentpoint newpath moveto} if
|
|
dup 8 eq {pop 0} {dup 9 eq {pop 1} if} ifelse
|
|
dup /_render exch ddef
|
|
_renderStart exch get load exec
|
|
} def
|
|
/iTm % internal set text matrix % - iTm - (uses _tm as implicit argument)
|
|
{
|
|
_ctm setmatrix _tm concat 0 _rise translate _hs 1 scale
|
|
} def
|
|
/Tm % set text matrix % a b c d tx ty Tm -
|
|
{
|
|
_tm astore pop iTm 0 0 moveto
|
|
} def
|
|
/Td % translate text matrix % tx ty Td -
|
|
{
|
|
_mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
|
|
} def
|
|
/Te % end render % - Te -
|
|
{
|
|
_render -1 eq {} {_renderEnd _render get dup null ne {load exec} {pop} ifelse} ifelse
|
|
/_render -1 ddef
|
|
} def
|
|
% Attributes
|
|
/Ta % set alignment % alignment Ta -
|
|
{
|
|
pop
|
|
} def
|
|
/Tf % set font name and size % fontname size Tf -
|
|
{
|
|
dup 1000 div /_fScl exch ddef
|
|
exch findfont exch scalefont setfont
|
|
} def
|
|
/Tl % set leading % leading paragraphLeading Tl -
|
|
{
|
|
pop
|
|
0 exch _leading astore pop
|
|
} def
|
|
/Tt % set user tracking % userTracking Tt -
|
|
{
|
|
pop
|
|
} def
|
|
/TW % set word spacing % minSpace optSpace maxSpace TW -
|
|
{
|
|
3 npop
|
|
} def
|
|
/Tw % set computed word spacing % wordSpace Tw
|
|
{
|
|
/_cx exch ddef
|
|
} def
|
|
/TC % set character spacing % minSpace optSpace maxSpace TC -
|
|
{
|
|
3 npop
|
|
} def
|
|
/Tc % set computed char spacing % charSpace Tc -
|
|
{
|
|
/_ax exch ddef
|
|
} def
|
|
/Ts % set super/subscripting (rise) % rise Ts -
|
|
{
|
|
/_rise exch ddef
|
|
currentpoint
|
|
iTm
|
|
moveto
|
|
} def
|
|
/Ti % set indentation % firstStartIndent otherStartIndent stopIndent Ti -
|
|
{
|
|
3 npop
|
|
} def
|
|
/Tz % set horizontal scaling % scalePercent Tz -
|
|
{
|
|
100 div /_hs exch ddef
|
|
iTm
|
|
} def
|
|
/TA % set pairwise kerning % autoKern TA -
|
|
% autoKern = 0 -> no pair kerning
|
|
% = 1 -> automatic pair kerning
|
|
{
|
|
pop
|
|
} def
|
|
/Tq % set hanging quotes % hangingQuotes Tq -
|
|
% hangingQuotes = 0 -> no hanging quotes
|
|
% = 1 -> hanging quotes
|
|
{
|
|
pop
|
|
} def
|
|
% Text Bodies
|
|
/TX {pop} def
|
|
%/Tx % non-justified text % textString Tx -
|
|
%/Tj % justified text % textString Tj -
|
|
/Tk % kern % autoKern kernValue Tk -
|
|
% autoKern = 0 -> manual kern, = 1 -> auto kern
|
|
% kernValue = kern value in em/1000 space
|
|
{
|
|
exch pop _fScl mul neg 0 rmoveto
|
|
} def
|
|
/TK % non-printing kern % autoKern kernValue TK -
|
|
{
|
|
2 npop
|
|
} def
|
|
/T* % carriage return & line feed % - T* -
|
|
{
|
|
_leading aload pop neg Td
|
|
} def
|
|
/T*- % carriage return & negative line feed % - T*- -
|
|
{
|
|
_leading aload pop Td
|
|
} def
|
|
/T- % print a discretionary hyphen % - T- -
|
|
{
|
|
_hyphen Tx
|
|
} def
|
|
/T+ % discretionary hyphen hyphen % - T+ -
|
|
{} def
|
|
/TR % reset pattern matrix % a b c d tx ty TR -
|
|
{
|
|
_ctm currentmatrix pop
|
|
_tm astore pop
|
|
iTm 0 0 moveto
|
|
} def
|
|
/TS % special chars % textString justified TS -
|
|
{
|
|
0 eq {Tx} {Tj} ifelse
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
%%EndResource
|
|
%%BeginResource: procset Adobe_IllustratorA_AI3 1.0 2
|
|
%%Title: (Adobe Illustrator (R) Version 3.0 Abbreviated Prolog)
|
|
%%Version: 1.0
|
|
%%CreationDate: (7/22/89) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_IllustratorA_AI3 61 dict dup begin put
|
|
% initialization
|
|
/initialize % - initialize -
|
|
{
|
|
% 47 vars, but leave slack of 10 entries for custom Postscript fragments
|
|
userdict /Adobe_IllustratorA_AI3_vars 57 dict dup begin put
|
|
% paint operands
|
|
/_lp /none def
|
|
/_pf {} def
|
|
/_ps {} def
|
|
/_psf {} def
|
|
/_pss {} def
|
|
/_pjsf {} def
|
|
/_pjss {} def
|
|
/_pola 0 def
|
|
/_doClip 0 def
|
|
% paint operators
|
|
/cf currentflat def % - cf flatness
|
|
% typography operands
|
|
/_tm matrix def
|
|
/_renderStart [/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0] def
|
|
/_renderEnd [null null null null /i1 /i1 /i1 /i1] def
|
|
/_render -1 def
|
|
/_rise 0 def
|
|
/_ax 0 def % x character spacing (_ax, _ay, _cx, _cy follows awidthshow naming convention)
|
|
/_ay 0 def % y character spacing
|
|
/_cx 0 def % x word spacing
|
|
/_cy 0 def % y word spacing
|
|
/_leading [0 0] def
|
|
/_ctm matrix def
|
|
/_mtx matrix def
|
|
/_sp 16#020 def
|
|
/_hyphen (-) def
|
|
/_fScl 0 def
|
|
/_cnt 0 def
|
|
/_hs 1 def
|
|
/_nativeEncoding 0 def
|
|
/_useNativeEncoding 0 def
|
|
/_tempEncode 0 def
|
|
/_pntr 0 def
|
|
/_tDict 2 dict def
|
|
% typography operators
|
|
/Tx {} def
|
|
/Tj {} def
|
|
% compound path operators
|
|
/CRender {} def
|
|
% printing
|
|
/_AI3_savepage {} def
|
|
% color operands
|
|
/_gf null def
|
|
/_cf 4 array def
|
|
/_if null def
|
|
/_of false def
|
|
/_fc {} def
|
|
/_gs null def
|
|
/_cs 4 array def
|
|
/_is null def
|
|
/_os false def
|
|
/_sc {} def
|
|
/_i null def
|
|
Adobe_IllustratorA_AI3 begin
|
|
Adobe_IllustratorA_AI3
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
pop pop
|
|
} forall
|
|
end
|
|
end
|
|
Adobe_IllustratorA_AI3 begin
|
|
Adobe_IllustratorA_AI3_vars begin
|
|
newpath
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
end
|
|
end
|
|
} def
|
|
% definition operators
|
|
/_ % - _ null
|
|
null def
|
|
/ddef % key value ddef -
|
|
{
|
|
Adobe_IllustratorA_AI3_vars 3 1 roll put
|
|
} def
|
|
/xput % key value literal xput -
|
|
{
|
|
dup load dup length exch maxlength eq
|
|
{
|
|
dup dup load dup
|
|
length 2 mul dict copy def
|
|
} if
|
|
load begin def end
|
|
} def
|
|
/npop % integer npop -
|
|
{
|
|
{
|
|
pop
|
|
} repeat
|
|
} def
|
|
% marking operators
|
|
/sw % ax ay string sw x y
|
|
{
|
|
dup length exch stringwidth
|
|
exch 5 -1 roll 3 index 1 sub mul add
|
|
4 1 roll 3 1 roll 1 sub mul add
|
|
} def
|
|
/swj % cx cy fillchar ax ay string swj x y
|
|
{
|
|
dup 4 1 roll
|
|
dup length exch stringwidth
|
|
exch 5 -1 roll 3 index 1 sub mul add
|
|
4 1 roll 3 1 roll 1 sub mul add
|
|
6 2 roll /_cnt 0 ddef
|
|
{1 index eq {/_cnt _cnt 1 add ddef} if} forall pop
|
|
exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop
|
|
} def
|
|
/ss % ax ay string matrix ss -
|
|
{
|
|
4 1 roll
|
|
{ % matrix ax ay char 0 0 {proc} -
|
|
2 npop
|
|
(0) exch 2 copy 0 exch put pop
|
|
gsave
|
|
false charpath currentpoint
|
|
4 index setmatrix
|
|
stroke
|
|
grestore
|
|
moveto
|
|
2 copy rmoveto
|
|
} exch cshow
|
|
3 npop
|
|
} def
|
|
/jss % cx cy fillchar ax ay string matrix jss -
|
|
{
|
|
4 1 roll
|
|
{ % cx cy fillchar matrix ax ay char 0 0 {proc} -
|
|
2 npop
|
|
(0) exch 2 copy 0 exch put
|
|
gsave
|
|
_sp eq
|
|
{
|
|
exch 6 index 6 index 6 index 5 -1 roll widthshow
|
|
currentpoint
|
|
}
|
|
{
|
|
false charpath currentpoint
|
|
4 index setmatrix stroke
|
|
}ifelse
|
|
grestore
|
|
moveto
|
|
2 copy rmoveto
|
|
} exch cshow
|
|
6 npop
|
|
} def
|
|
% path operators
|
|
/sp % ax ay string sp -
|
|
{
|
|
{
|
|
2 npop (0) exch
|
|
2 copy 0 exch put pop
|
|
false charpath
|
|
2 copy rmoveto
|
|
} exch cshow
|
|
2 npop
|
|
} def
|
|
/jsp % cx cy fillchar ax ay string jsp -
|
|
{
|
|
{ % cx cy fillchar ax ay char 0 0 {proc} -
|
|
2 npop
|
|
(0) exch 2 copy 0 exch put
|
|
_sp eq
|
|
{
|
|
exch 5 index 5 index 5 index 5 -1 roll widthshow
|
|
}
|
|
{
|
|
false charpath
|
|
}ifelse
|
|
2 copy rmoveto
|
|
} exch cshow
|
|
5 npop
|
|
} def
|
|
% path construction operators
|
|
/pl % x y pl x y
|
|
{
|
|
transform
|
|
0.25 sub round 0.25 add exch
|
|
0.25 sub round 0.25 add exch
|
|
itransform
|
|
} def
|
|
/setstrokeadjust where
|
|
{
|
|
pop true setstrokeadjust
|
|
/c % x1 y1 x2 y2 x3 y3 c -
|
|
{
|
|
curveto
|
|
} def
|
|
/C
|
|
/c load def
|
|
/v % x2 y2 x3 y3 v -
|
|
{
|
|
currentpoint 6 2 roll curveto
|
|
} def
|
|
/V
|
|
/v load def
|
|
/y % x1 y1 x2 y2 y -
|
|
{
|
|
2 copy curveto
|
|
} def
|
|
/Y
|
|
/y load def
|
|
/l % x y l -
|
|
{
|
|
lineto
|
|
} def
|
|
/L
|
|
/l load def
|
|
/m % x y m -
|
|
{
|
|
moveto
|
|
} def
|
|
}
|
|
{%else
|
|
/c
|
|
{
|
|
pl curveto
|
|
} def
|
|
/C
|
|
/c load def
|
|
/v
|
|
{
|
|
currentpoint 6 2 roll pl curveto
|
|
} def
|
|
/V
|
|
/v load def
|
|
/y
|
|
{
|
|
pl 2 copy curveto
|
|
} def
|
|
/Y
|
|
/y load def
|
|
/l
|
|
{
|
|
pl lineto
|
|
} def
|
|
/L
|
|
/l load def
|
|
/m
|
|
{
|
|
pl moveto
|
|
} def
|
|
}ifelse
|
|
% graphic state operators
|
|
/d % array phase d -
|
|
{
|
|
setdash
|
|
} def
|
|
/cf {} def % - cf flatness
|
|
/i % flatness i -
|
|
{
|
|
dup 0 eq
|
|
{
|
|
pop cf
|
|
} if
|
|
setflat
|
|
} def
|
|
/j % linejoin j -
|
|
{
|
|
setlinejoin
|
|
} def
|
|
/J % linecap J -
|
|
{
|
|
setlinecap
|
|
} def
|
|
/M % miterlimit M -
|
|
{
|
|
setmiterlimit
|
|
} def
|
|
/w % linewidth w -
|
|
{
|
|
setlinewidth
|
|
} def
|
|
% path painting operators
|
|
/H % - H -
|
|
{} def
|
|
/h % - h -
|
|
{
|
|
closepath
|
|
} def
|
|
/N % - N -
|
|
{
|
|
_pola 0 eq
|
|
{
|
|
_doClip 1 eq {clip /_doClip 0 ddef} if
|
|
newpath
|
|
}
|
|
{
|
|
/CRender {N} ddef
|
|
}ifelse
|
|
} def
|
|
/n % - n -
|
|
{N} def
|
|
/F % - F -
|
|
{
|
|
_pola 0 eq
|
|
{
|
|
_doClip 1 eq
|
|
{
|
|
gsave _pf grestore clip newpath /_lp /none ddef _fc
|
|
/_doClip 0 ddef
|
|
}
|
|
{
|
|
_pf
|
|
}ifelse
|
|
}
|
|
{
|
|
/CRender {F} ddef
|
|
}ifelse
|
|
} def
|
|
/f % - f -
|
|
{
|
|
closepath
|
|
F
|
|
} def
|
|
/S % - S -
|
|
{
|
|
_pola 0 eq
|
|
{
|
|
_doClip 1 eq
|
|
{
|
|
gsave _ps grestore clip newpath /_lp /none ddef _sc
|
|
/_doClip 0 ddef
|
|
}
|
|
{
|
|
_ps
|
|
}ifelse
|
|
}
|
|
{
|
|
/CRender {S} ddef
|
|
}ifelse
|
|
} def
|
|
/s % - s -
|
|
{
|
|
closepath
|
|
S
|
|
} def
|
|
/B % - B -
|
|
{
|
|
_pola 0 eq
|
|
{
|
|
_doClip 1 eq % F clears _doClip
|
|
gsave F grestore
|
|
{
|
|
gsave S grestore clip newpath /_lp /none ddef _sc
|
|
/_doClip 0 ddef
|
|
}
|
|
{
|
|
S
|
|
}ifelse
|
|
}
|
|
{
|
|
/CRender {B} ddef
|
|
}ifelse
|
|
} def
|
|
/b % - b -
|
|
{
|
|
closepath
|
|
B
|
|
} def
|
|
/W % - W -
|
|
{
|
|
/_doClip 1 ddef
|
|
} def
|
|
/* % - [string] * -
|
|
{
|
|
count 0 ne
|
|
{
|
|
dup type (stringtype) eq {pop} if
|
|
} if
|
|
_pola 0 eq {newpath} if
|
|
} def
|
|
% group operators
|
|
/u % - u -
|
|
{} def
|
|
/U % - U -
|
|
{} def
|
|
/q % - q -
|
|
{
|
|
_pola 0 eq {gsave} if
|
|
} def
|
|
/Q % - Q -
|
|
{
|
|
_pola 0 eq {grestore} if
|
|
} def
|
|
/*u % - *u -
|
|
{
|
|
_pola 1 add /_pola exch ddef
|
|
} def
|
|
/*U % - *U -
|
|
{
|
|
_pola 1 sub /_pola exch ddef
|
|
_pola 0 eq {CRender} if
|
|
} def
|
|
/D % polarized D -
|
|
{pop} def
|
|
/*w % - *w -
|
|
{} def
|
|
/*W % - *W -
|
|
{} def
|
|
% place operators
|
|
/` % matrix llx lly urx ury string ` -
|
|
{
|
|
/_i save ddef
|
|
6 1 roll 4 npop
|
|
concat pop
|
|
userdict begin
|
|
/showpage {} def
|
|
0 setgray
|
|
0 setlinecap
|
|
1 setlinewidth
|
|
0 setlinejoin
|
|
10 setmiterlimit
|
|
[] 0 setdash
|
|
newpath
|
|
0 setgray
|
|
false setoverprint
|
|
} def
|
|
/~ % - ~ -
|
|
{
|
|
end
|
|
_i restore
|
|
} def
|
|
% color operators
|
|
/O % flag O -
|
|
{
|
|
0 ne
|
|
/_of exch ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/R % flag R -
|
|
{
|
|
0 ne
|
|
/_os exch ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/g % gray g -
|
|
{
|
|
/_gf exch ddef
|
|
/_fc
|
|
{
|
|
_lp /fill ne
|
|
{
|
|
_of setoverprint
|
|
_gf setgray
|
|
/_lp /fill ddef
|
|
} if
|
|
} ddef
|
|
/_pf
|
|
{
|
|
_fc
|
|
fill
|
|
} ddef
|
|
/_psf
|
|
{
|
|
_fc
|
|
ashow
|
|
} ddef
|
|
/_pjsf
|
|
{
|
|
_fc
|
|
awidthshow
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/G % gray G -
|
|
{
|
|
/_gs exch ddef
|
|
/_sc
|
|
{
|
|
_lp /stroke ne
|
|
{
|
|
_os setoverprint
|
|
_gs setgray
|
|
/_lp /stroke ddef
|
|
} if
|
|
} ddef
|
|
/_ps
|
|
{
|
|
_sc
|
|
stroke
|
|
} ddef
|
|
/_pss
|
|
{
|
|
_sc
|
|
ss
|
|
} ddef
|
|
/_pjss
|
|
{
|
|
_sc
|
|
jss
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/k % cyan magenta yellow black k -
|
|
{
|
|
_cf astore pop
|
|
/_fc
|
|
{
|
|
_lp /fill ne
|
|
{
|
|
_of setoverprint
|
|
_cf aload pop setcmykcolor
|
|
/_lp /fill ddef
|
|
} if
|
|
} ddef
|
|
/_pf
|
|
{
|
|
_fc
|
|
fill
|
|
} ddef
|
|
/_psf
|
|
{
|
|
_fc
|
|
ashow
|
|
} ddef
|
|
/_pjsf
|
|
{
|
|
_fc
|
|
awidthshow
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/K % cyan magenta yellow black K -
|
|
{
|
|
_cs astore pop
|
|
/_sc
|
|
{
|
|
_lp /stroke ne
|
|
{
|
|
_os setoverprint
|
|
_cs aload pop setcmykcolor
|
|
/_lp /stroke ddef
|
|
} if
|
|
} ddef
|
|
/_ps
|
|
{
|
|
_sc
|
|
stroke
|
|
} ddef
|
|
/_pss
|
|
{
|
|
_sc
|
|
ss
|
|
} ddef
|
|
/_pjss
|
|
{
|
|
_sc
|
|
jss
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/x % cyan magenta yellow black name gray x -
|
|
{
|
|
/_gf exch ddef
|
|
findcmykcustomcolor
|
|
/_if exch ddef
|
|
/_fc
|
|
{
|
|
_lp /fill ne
|
|
{
|
|
_of setoverprint
|
|
_if _gf 1 exch sub setcustomcolor
|
|
/_lp /fill ddef
|
|
} if
|
|
} ddef
|
|
/_pf
|
|
{
|
|
_fc
|
|
fill
|
|
} ddef
|
|
/_psf
|
|
{
|
|
_fc
|
|
ashow
|
|
} ddef
|
|
/_pjsf
|
|
{
|
|
_fc
|
|
awidthshow
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/X % cyan magenta yellow black name gray X -
|
|
{
|
|
/_gs exch ddef
|
|
findcmykcustomcolor
|
|
/_is exch ddef
|
|
/_sc
|
|
{
|
|
_lp /stroke ne
|
|
{
|
|
_os setoverprint
|
|
_is _gs 1 exch sub setcustomcolor
|
|
/_lp /stroke ddef
|
|
} if
|
|
} ddef
|
|
/_ps
|
|
{
|
|
_sc
|
|
stroke
|
|
} ddef
|
|
/_pss
|
|
{
|
|
_sc
|
|
ss
|
|
} ddef
|
|
/_pjss
|
|
{
|
|
_sc
|
|
jss
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
% locked object operator
|
|
/A % value A -
|
|
{
|
|
pop
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
% annotate page operator
|
|
/annotatepage
|
|
{
|
|
} def
|
|
%%EndResource
|
|
%%EndProlog
|
|
%%BeginSetup
|
|
%%IncludeFont: Helvetica
|
|
Adobe_cmykcolor /initialize get exec
|
|
Adobe_cshow /initialize get exec
|
|
Adobe_customcolor /initialize get exec
|
|
Adobe_typography_AI3 /initialize get exec
|
|
Adobe_IllustratorA_AI3 /initialize get exec
|
|
[
|
|
39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
|
|
/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute
|
|
/egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde
|
|
/oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex
|
|
/udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
|
|
/registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash
|
|
/.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef
|
|
/.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash
|
|
/questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef
|
|
/guillemotleft/guillemotright/ellipsis/.notdef/Agrave/Atilde/Otilde/OE/oe
|
|
/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide
|
|
/.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright
|
|
/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
|
|
/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex
|
|
/Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex
|
|
/Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla
|
|
/hungarumlaut/ogonek/caron
|
|
TE
|
|
%AI3_BeginEncoding: _Helvetica Helvetica
|
|
[/_Helvetica/Helvetica 0 0 1 TZ
|
|
%AI3_EndEncoding TrueType
|
|
%%EndSetup
|
|
0 A
|
|
0 i 0 J 0 j 1 w 4 M []0 d
|
|
%AI3_Note:
|
|
0 D
|
|
540 254 m
|
|
540 -1042 L
|
|
(N) *
|
|
36 254 m
|
|
36 -1042 L
|
|
(N) *
|
|
108 254 m
|
|
108 -1042 L
|
|
(N) *
|
|
180 254 m
|
|
180 -1042 L
|
|
(N) *
|
|
324 254 m
|
|
324 -1042 L
|
|
(N) *
|
|
252 254 m
|
|
252 -1042 L
|
|
(N) *
|
|
396 254 m
|
|
396 -1042 L
|
|
(N) *
|
|
468 254 m
|
|
468 -1042 L
|
|
(N) *
|
|
0 To
|
|
0.8552 0 0 0.8552 97.5762 -29.3903 0 Tp
|
|
TP
|
|
-10.1342 0 Td
|
|
0 Tr
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
/_Helvetica 9.3543 Tf
|
|
0 Ts
|
|
100 Tz
|
|
0 Tt
|
|
0 TA
|
|
0 0 5 TC
|
|
100 100 200 TW
|
|
0 0 0 Ti
|
|
1 Ta
|
|
0 Tq
|
|
0 0 Tl
|
|
0 Tc
|
|
0 Tw
|
|
(VME) Tx
|
|
(\r) TX
|
|
-7.2772 -11.3543 Td
|
|
(Interrupt) Tx
|
|
(\r) TX
|
|
2.6012 -11.3543 Td
|
|
(Occurs) Tx
|
|
(\r) TX
|
|
TO
|
|
0 To
|
|
0.8552 0 0 0.8552 405.457 -29.3903 0 Tp
|
|
TP
|
|
-6.7577 0 Td
|
|
0 Tr
|
|
(OS) Tx
|
|
(\r) TX
|
|
-14.2964 -11.3543 Td
|
|
(Response) Tx
|
|
(\r) TX
|
|
1.0448 -11.3543 Td
|
|
(Complete) Tx
|
|
(\r) TX
|
|
TO
|
|
0 R
|
|
0 G
|
|
1 D
|
|
36.8552 -79.8552 m
|
|
467.0332 -79.8552 l
|
|
S
|
|
u
|
|
0 O
|
|
0 g
|
|
0 D
|
|
460.2919 -79.9154 m
|
|
458.8279 -77.6304 L
|
|
458.91 -77.5757 L
|
|
462.8369 -79.1355 L
|
|
464.2052 -79.4365 465.5734 -79.7376 466.9417 -80.0386 c
|
|
465.5734 -80.3396 464.2052 -80.6406 462.8369 -80.9416 c
|
|
458.91 -82.5014 L
|
|
458.8279 -82.4604 L
|
|
460.2919 -80.1617 L
|
|
460.2919 -79.9154 L
|
|
f
|
|
U
|
|
u
|
|
0 R
|
|
0 G
|
|
1.7104 w
|
|
159.1523 -72.1582 m
|
|
159.1523 -79.8552 l
|
|
159.1523 -87.5522 l
|
|
S
|
|
U
|
|
u
|
|
220.7285 -72.1582 m
|
|
220.7285 -79.8552 l
|
|
220.7285 -87.5522 l
|
|
S
|
|
U
|
|
u
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
98.3698 -65.8587 m
|
|
100.5453 -65.8587 L
|
|
97.5762 -68.8552 L
|
|
94.5934 -65.8587 L
|
|
96.7826 -65.8587 L
|
|
98.3698 -65.8587 L
|
|
f
|
|
U
|
|
u
|
|
406.2506 -65.8587 m
|
|
408.4262 -65.8587 L
|
|
405.457 -68.8552 L
|
|
402.4742 -65.8587 L
|
|
404.6634 -65.8587 L
|
|
406.2506 -65.8587 L
|
|
f
|
|
U
|
|
0 To
|
|
0.8552 0 0 0.8552 251.9442 -292.6605 0 Tp
|
|
TP
|
|
-104.2173 0 Td
|
|
0 Tr
|
|
(Figure 1: Components of Total Interrupt Response) Tx
|
|
(\r) TX
|
|
TO
|
|
0 To
|
|
0.8552 0 0 0.8552 468.0166 -76.9008 0 Tp
|
|
TP
|
|
-1.6243 0 Td
|
|
0 Tr
|
|
/_Helvetica 11.6929 Tf
|
|
(t) Tx
|
|
(\r) TX
|
|
TO
|
|
u
|
|
0 R
|
|
0 G
|
|
1.7104 w
|
|
97.6523 -72.1582 m
|
|
97.6523 -79.8552 l
|
|
97.6523 -87.5522 l
|
|
S
|
|
U
|
|
u
|
|
405.3809 -72.1582 m
|
|
405.3809 -79.8552 l
|
|
405.3809 -87.5522 l
|
|
S
|
|
U
|
|
u
|
|
1 w
|
|
97.6523 -53.1582 m
|
|
97.6523 -60.8552 l
|
|
97.6523 -68.5522 l
|
|
S
|
|
U
|
|
u
|
|
405.3809 -52.6582 m
|
|
405.3809 -60.3552 l
|
|
405.3809 -68.0522 l
|
|
S
|
|
U
|
|
0 To
|
|
0.8552 0 0 0.8552 159.0762 -29.3903 0 Tp
|
|
TP
|
|
-21.0483 0 Td
|
|
0 Tr
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
/_Helvetica 9.3543 Tf
|
|
(Processor) Tx
|
|
(\r) TX
|
|
1.8179 -11.3543 Td
|
|
(Receives) Tx
|
|
(\r) TX
|
|
1.819 -11.3543 Td
|
|
(Interrupt) Tx
|
|
(\r) TX
|
|
TO
|
|
u
|
|
159.8698 -65.8587 m
|
|
162.0453 -65.8587 L
|
|
159.0762 -68.8552 L
|
|
156.0934 -65.8587 L
|
|
158.2826 -65.8587 L
|
|
159.8698 -65.8587 L
|
|
f
|
|
U
|
|
u
|
|
0 R
|
|
0 G
|
|
1 w
|
|
159.1523 -53.1582 m
|
|
159.1523 -60.8552 l
|
|
159.1523 -68.5522 l
|
|
S
|
|
U
|
|
0 To
|
|
0.8552 0 0 0.8552 220.5762 -29.3903 0 Tp
|
|
TP
|
|
-6.7577 0 Td
|
|
0 Tr
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
(OS) Tx
|
|
(\r) TX
|
|
-7.5387 -11.3543 Td
|
|
(Begins) Tx
|
|
(\r) TX
|
|
-10.6572 -11.3543 Td
|
|
(Responding) Tx
|
|
(\r) TX
|
|
TO
|
|
u
|
|
221.3698 -65.8587 m
|
|
223.5453 -65.8587 L
|
|
220.5762 -68.8552 L
|
|
217.5934 -65.8587 L
|
|
219.7826 -65.8587 L
|
|
221.3698 -65.8587 L
|
|
f
|
|
U
|
|
u
|
|
0 R
|
|
0 G
|
|
1 w
|
|
220.6523 -53.1582 m
|
|
220.6523 -60.8552 l
|
|
220.6523 -68.5522 l
|
|
S
|
|
U
|
|
u
|
|
1.7104 w
|
|
159.1523 -129.1582 m
|
|
159.1523 -136.8552 l
|
|
159.1523 -144.5522 l
|
|
S
|
|
U
|
|
u
|
|
220.7285 -129.1582 m
|
|
220.7285 -136.8552 l
|
|
220.7285 -144.5522 l
|
|
S
|
|
U
|
|
u
|
|
97.6523 -129.1582 m
|
|
97.6523 -136.8552 l
|
|
97.6523 -144.5522 l
|
|
S
|
|
U
|
|
u
|
|
u
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
216.9588 -135.7722 m
|
|
216.9588 -133.5967 L
|
|
219.9553 -136.5658 L
|
|
216.9588 -139.5486 L
|
|
216.9588 -137.3594 L
|
|
216.9588 -135.7722 L
|
|
f
|
|
U
|
|
0 R
|
|
0 G
|
|
1 w
|
|
211.9553 -136.4897 m
|
|
219.6523 -136.4897 l
|
|
S
|
|
U
|
|
-342 -143.5 m
|
|
954 -143.5 L
|
|
(N) *
|
|
u
|
|
u
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
155.4588 -135.7722 m
|
|
155.4588 -133.5967 L
|
|
158.4553 -136.5658 L
|
|
155.4588 -139.5486 L
|
|
155.4588 -137.3594 L
|
|
155.4588 -135.7722 L
|
|
f
|
|
U
|
|
0 R
|
|
0 G
|
|
1 w
|
|
150.4553 -136.4897 m
|
|
158.1523 -136.4897 l
|
|
S
|
|
U
|
|
u
|
|
u
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
163.0412 -137.2278 m
|
|
163.0412 -139.4033 L
|
|
160.0447 -136.4342 L
|
|
163.0412 -133.4514 L
|
|
163.0412 -135.6406 L
|
|
163.0412 -137.2278 L
|
|
f
|
|
U
|
|
0 R
|
|
0 G
|
|
1 w
|
|
168.0447 -136.5103 m
|
|
160.3477 -136.5103 l
|
|
S
|
|
U
|
|
u
|
|
u
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
101.7912 -137.2278 m
|
|
101.7912 -139.4033 L
|
|
98.7947 -136.4342 L
|
|
101.7912 -133.4514 L
|
|
101.7912 -135.6406 L
|
|
101.7912 -137.2278 L
|
|
f
|
|
U
|
|
0 R
|
|
0 G
|
|
1 w
|
|
106.7947 -136.5103 m
|
|
99.0977 -136.5103 l
|
|
S
|
|
U
|
|
0 To
|
|
0.8552 0 0 0.8552 130.0762 -134.1403 0 Tp
|
|
TP
|
|
-20.2661 0 Td
|
|
0 Tr
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
(Hardware) Tx
|
|
(\r) TX
|
|
3.8892 -11.3543 Td
|
|
(Latency) Tx
|
|
(\r) TX
|
|
TO
|
|
0 To
|
|
0.8552 0 0 0.8552 191.0762 -134.1403 0 Tp
|
|
TP
|
|
-18.4517 0 Td
|
|
0 Tr
|
|
(Software) Tx
|
|
(\r) TX
|
|
2.0748 -11.3543 Td
|
|
(Latency) Tx
|
|
(\r) TX
|
|
TO
|
|
u
|
|
0 R
|
|
0 G
|
|
1.7104 w
|
|
220.7285 -185.1582 m
|
|
220.7285 -192.8552 l
|
|
220.7285 -200.5522 l
|
|
S
|
|
U
|
|
u
|
|
97.6523 -185.1582 m
|
|
97.6523 -192.8552 l
|
|
97.6523 -200.5522 l
|
|
S
|
|
U
|
|
u
|
|
u
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
216.9588 -191.7722 m
|
|
216.9588 -189.5967 L
|
|
219.9553 -192.5658 L
|
|
216.9588 -195.5486 L
|
|
216.9588 -193.3594 L
|
|
216.9588 -191.7722 L
|
|
f
|
|
U
|
|
0 R
|
|
0 G
|
|
1 w
|
|
211.9553 -192.4897 m
|
|
219.6523 -192.4897 l
|
|
S
|
|
U
|
|
u
|
|
u
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
101.7912 -193.2278 m
|
|
101.7912 -195.4033 L
|
|
98.7947 -192.4342 L
|
|
101.7912 -189.4514 L
|
|
101.7912 -191.6406 L
|
|
101.7912 -193.2278 L
|
|
f
|
|
U
|
|
0 R
|
|
0 G
|
|
1 w
|
|
106.7947 -192.5103 m
|
|
99.0977 -192.5103 l
|
|
S
|
|
U
|
|
0 To
|
|
0.8552 0 0 0.8552 158.5762 -194.1403 0 Tp
|
|
TP
|
|
-35.0878 0 Td
|
|
0 Tr
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
(Interrupt Latency) Tx
|
|
(\r) TX
|
|
TO
|
|
1 w
|
|
405.5 254 m
|
|
405.5 -1042 L
|
|
(N) *
|
|
u
|
|
0 R
|
|
0 G
|
|
1.7104 w
|
|
405.4785 -185.1582 m
|
|
405.4785 -192.8552 l
|
|
405.4785 -200.5522 l
|
|
S
|
|
U
|
|
1 w
|
|
405.5 254 m
|
|
405.5 -1042 L
|
|
(N) *
|
|
u
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
224.2912 -193.2278 m
|
|
224.2912 -195.4033 L
|
|
221.2947 -192.4342 L
|
|
224.2912 -189.4514 L
|
|
224.2912 -191.6406 L
|
|
224.2912 -193.2278 L
|
|
f
|
|
U
|
|
0 R
|
|
0 G
|
|
1 w
|
|
243.2947 -192.5103 m
|
|
221.5977 -192.5103 l
|
|
S
|
|
u
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
401.9588 -191.7722 m
|
|
401.9588 -189.5967 L
|
|
404.9553 -192.5658 L
|
|
401.9588 -195.5486 L
|
|
401.9588 -193.3594 L
|
|
401.9588 -191.7722 L
|
|
f
|
|
U
|
|
0 R
|
|
0 G
|
|
1 w
|
|
382.9553 -192.4897 m
|
|
404.6523 -192.4897 l
|
|
S
|
|
0 To
|
|
0.8552 0 0 0.8552 312.5762 -194.1403 0 Tp
|
|
TP
|
|
-71.2055 0 Td
|
|
0 Tr
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
(Software Interrupt Response Time) Tx
|
|
(\r) TX
|
|
TO
|
|
u
|
|
0 R
|
|
0 G
|
|
1.7104 w
|
|
97.6523 -240.6582 m
|
|
97.6523 -248.3552 l
|
|
97.6523 -256.0522 l
|
|
S
|
|
U
|
|
u
|
|
405.4785 -240.6582 m
|
|
405.4785 -248.3552 l
|
|
405.4785 -256.0522 l
|
|
S
|
|
U
|
|
u
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
401.9588 -247.2722 m
|
|
401.9588 -245.0967 L
|
|
404.9553 -248.0658 L
|
|
401.9588 -251.0486 L
|
|
401.9588 -248.8594 L
|
|
401.9588 -247.2722 L
|
|
f
|
|
U
|
|
0 To
|
|
0.8552 0 0 0.8552 251.5762 -249.6403 0 Tp
|
|
TP
|
|
-63.4099 0 Td
|
|
0 Tr
|
|
(TotaI Interrupt Response Time) Tx
|
|
(\r) TX
|
|
TO
|
|
u
|
|
101.2912 -248.7278 m
|
|
101.2912 -250.9033 L
|
|
98.2947 -247.9342 L
|
|
101.2912 -244.9514 L
|
|
101.2912 -247.1406 L
|
|
101.2912 -248.7278 L
|
|
f
|
|
U
|
|
u
|
|
0 R
|
|
0 G
|
|
1 w
|
|
182.2947 -248.0103 m
|
|
98.5977 -248.0103 l
|
|
S
|
|
U
|
|
u
|
|
404.2947 -248.0103 m
|
|
320.5977 -248.0103 l
|
|
S
|
|
U
|
|
%%PageTrailer
|
|
gsave annotatepage grestore showpage
|
|
%%Trailer
|
|
Adobe_IllustratorA_AI3 /terminate get exec
|
|
Adobe_typography_AI3 /terminate get exec
|
|
Adobe_customcolor /terminate get exec
|
|
Adobe_cshow /terminate get exec
|
|
Adobe_cmykcolor /terminate get exec
|
|
Adobe_packedarray /terminate get exec
|
|
%%EOF
|
|
%%EndDocument
|
|
FMENDEPSF
|
|
54 89.3 540 687.33 C
|
|
0 0 612 792 C
|
|
181.11 108.66 410 128.66 R
|
|
7 X
|
|
0 K
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "6" 7
|
|
%%Page: "7" 7
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(System Interrupt Response) 207 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(7) 527.85 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
(2.2) 184.11 680.66 T
|
|
(Interrupt Latency) 207 680.66 T
|
|
1 F
|
|
(Interrupt latency) 207 664.66 T
|
|
(, as de\336ned in the previous section, can be subdivided into two compo-) 272.68 664.66 T
|
|
(nent intervals:) 207 652.66 T
|
|
0 9 Q
|
|
(1.) 207 634.66 T
|
|
2 10 Q
|
|
(Hardwar) 220.74 634.66 T
|
|
(e interrupt latency) 259.98 634.66 T
|
|
(.) 338.82 634.66 T
|
|
1 F
|
|
( The time required for the interrupt to propagate) 341.32 634.66 T
|
|
(through the hardware from its source to the R4400) 220.74 622.66 T
|
|
1 8 Q
|
|
(TM) 422.82 626.66 T
|
|
1 10 Q
|
|
( interrupt pin.) 434.82 622.66 T
|
|
0 9 Q
|
|
(2.) 207 607.66 T
|
|
2 10 Q
|
|
(Softwar) 220.74 607.66 T
|
|
(e interrupt latency) 254.43 607.66 T
|
|
(.) 333.26 607.66 T
|
|
1 F
|
|
( The interval between the instant when the R4400) 335.76 607.66 T
|
|
(receives the interrupt, and the instant when the operating system begins responding) 220.74 595.66 T
|
|
(to the hardware interrupt.) 220.74 583.66 T
|
|
0 9 Q
|
|
(2.2.1) 178.01 560.33 T
|
|
(Hardware Interrupt Latency) 207 560.33 T
|
|
1 10 Q
|
|
(The system implements 128 interrupt levels with priority control hardware on the CPU) 207 547.66 T
|
|
-0.15 (boards. In addition to being divided by levels, interrupts may be directed to speci\336c pro-) 207 535.66 P
|
|
(cessors or to groups of processors.) 207 523.66 T
|
|
(The path followed by VME interrupt signals is shown in Figure 2.) 207 499.66 T
|
|
(Figure 2: Hardware Interrupt Path) 207 262.66 T
|
|
(On the VCAM VME controller) 207 238.66 T
|
|
(, there are eight Interrupt Level / Destination registers) 332.07 238.66 T
|
|
(which can be programmed with arbitrary interrupt levels and destination processors.) 207 226.66 T
|
|
(\050Direct access to these registers is limited to the OS; see section 3.1.\051 Seven of these) 207 214.66 T
|
|
-0.14 (registers are directly associated with the seven VME interrupt lines; the eighth is associ-) 207 202.66 P
|
|
(ated with error detection circuitry within the VCAM. When one of the interrupt lines is) 207 190.66 T
|
|
-0.36 (active or an error is detected by the VCAM, the interrupt level and destination contained) 207 178.66 P
|
|
-0.23 (in the associated register is used to transmit an interrupt over the POWERpath-2) 207 166.66 P
|
|
1 8 Q
|
|
-0.19 (TM) 525.09 170.66 P
|
|
1 10 Q
|
|
-0.23 ( bus,) 537.09 166.66 P
|
|
(where it is received and acted on by the appropriate CPU.) 207 154.66 T
|
|
(The typical time required for the interrupt to propagate from the VME bus to the appro-) 207 130.66 T
|
|
-0.3 (priate CPU chip is approximately 2) 207 118.66 P
|
|
3 F
|
|
-0.3 (m) 346.78 118.66 P
|
|
1 F
|
|
-0.3 (s. The theoretical worst-case propagation delay is 8) 352.54 118.66 P
|
|
3 F
|
|
(m) 207 106.66 T
|
|
1 F
|
|
(s. Note that the theoretical worst case requires a very lar) 212.76 106.66 T
|
|
(ge con\336guration. For typical) 437.11 106.66 T
|
|
(con\336gurations, 4) 207 94.66 T
|
|
3 F
|
|
(m) 274.18 94.66 T
|
|
1 F
|
|
(s is a more appropriate worst-case maximum propagation delay) 279.94 94.66 T
|
|
(.) 532.99 94.66 T
|
|
72 89.3 558 687.33 C
|
|
173.02 283.33 558 472.33 C
|
|
0 25 -189 398 -12 373 186 187.02 286.33 FMBEGINEPSF
|
|
%%BeginDocument: <inline>
|
|
%!PS-Adobe-3.0 EPSF-3.0
|
|
%%Creator: Adobe Illustrator(TM) 3.2
|
|
%%For: (Frank X. Doyle) (Dangerous Ideas Group)
|
|
%%Title: (Fig. 2 Chart)
|
|
%%CreationDate: (1/20/94) (4:52 PM)
|
|
%%BoundingBox: 25 -189 398 -12
|
|
%%DocumentProcessColors: Black
|
|
%%DocumentFonts: Helvetica
|
|
%%DocumentSuppliedResources: procset Adobe_packedarray 2.0 0
|
|
%%+ procset Adobe_cmykcolor 1.1 0
|
|
%%+ procset Adobe_cshow 1.1 0
|
|
%%+ procset Adobe_customcolor 1.0 0
|
|
%%+ procset Adobe_typography_AI3 1.0 1
|
|
%%+ procset Adobe_IllustratorA_AI3 1.0 1
|
|
%AI3_ColorUsage: Black&White
|
|
%AI3_TemplateBox: 306 -394 306 -394
|
|
%AI3_TileBox: 18 -782 594 -6
|
|
%AI3_DocumentPreview: Macintosh_Pic
|
|
%%EndComments
|
|
%%BeginProlog
|
|
%%BeginResource: procset Adobe_packedarray 2.0 0
|
|
%%Title: (Packed Array Operators)
|
|
%%Version: 2.0
|
|
%%CreationDate: (8/2/90) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
userdict /Adobe_packedarray 5 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/packedarray where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
Adobe_packedarray begin
|
|
Adobe_packedarray
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
userdict 3 1 roll put
|
|
} forall
|
|
end
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
} def
|
|
/packedarray % arguments count packedarray array
|
|
{
|
|
array astore readonly
|
|
} def
|
|
/setpacking % boolean setpacking -
|
|
{
|
|
pop
|
|
} def
|
|
/currentpacking % - setpacking boolean
|
|
{
|
|
false
|
|
} def
|
|
currentdict readonly pop end
|
|
%%EndResource
|
|
Adobe_packedarray /initialize get exec
|
|
%%BeginResource: procset Adobe_cmykcolor 1.1 0
|
|
%%Title: (CMYK Color Operators)
|
|
%%Version: 1.1
|
|
%%CreationDate: (1/23/89) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_cmykcolor 4 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/setcmykcolor where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
userdict /Adobe_cmykcolor_vars 2 dict dup begin put
|
|
/_setrgbcolor
|
|
/setrgbcolor load def
|
|
/_currentrgbcolor
|
|
/currentrgbcolor load def
|
|
Adobe_cmykcolor begin
|
|
Adobe_cmykcolor
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
pop pop
|
|
} forall
|
|
end
|
|
end
|
|
Adobe_cmykcolor begin
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
currentdict Adobe_cmykcolor eq
|
|
{
|
|
end
|
|
} if
|
|
} def
|
|
/setcmykcolor % cyan magenta yellow black setcmykcolor -
|
|
{
|
|
1 sub 4 1 roll
|
|
3
|
|
{
|
|
3 index add neg dup 0 lt
|
|
{
|
|
pop 0
|
|
} if
|
|
3 1 roll
|
|
} repeat
|
|
Adobe_cmykcolor_vars /_setrgbcolor get exec
|
|
pop
|
|
} def
|
|
/currentcmykcolor % - currentcmykcolor cyan magenta yellow black
|
|
{
|
|
Adobe_cmykcolor_vars /_currentrgbcolor get exec
|
|
3
|
|
{
|
|
1 sub neg 3 1 roll
|
|
} repeat
|
|
0
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
%%EndResource
|
|
%%BeginResource: procset Adobe_cshow 1.1 0
|
|
%%Title: (cshow Operator)
|
|
%%Version: 1.1
|
|
%%CreationDate: (1/23/89) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_cshow 3 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/cshow where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
userdict /Adobe_cshow_vars 1 dict dup begin put
|
|
/_cshow % - _cshow proc
|
|
{} def
|
|
Adobe_cshow begin
|
|
Adobe_cshow
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
userdict 3 1 roll put
|
|
} forall
|
|
end
|
|
end
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
} def
|
|
/cshow % proc string cshow -
|
|
{
|
|
exch
|
|
Adobe_cshow_vars
|
|
exch /_cshow
|
|
exch put
|
|
{
|
|
0 0 Adobe_cshow_vars /_cshow get exec
|
|
} forall
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
%%EndResource
|
|
%%BeginResource: procset Adobe_customcolor 1.0 0
|
|
%%Title: (Custom Color Operators)
|
|
%%Version: 1.0
|
|
%%CreationDate: (5/9/88) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_customcolor 5 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/setcustomcolor where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
Adobe_customcolor begin
|
|
Adobe_customcolor
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
pop pop
|
|
} forall
|
|
end
|
|
Adobe_customcolor begin
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
currentdict Adobe_customcolor eq
|
|
{
|
|
end
|
|
} if
|
|
} def
|
|
/findcmykcustomcolor % cyan magenta yellow black name findcmykcustomcolor object
|
|
{
|
|
5 packedarray
|
|
} def
|
|
/setcustomcolor % object tint setcustomcolor -
|
|
{
|
|
exch
|
|
aload pop pop
|
|
4
|
|
{
|
|
4 index mul 4 1 roll
|
|
} repeat
|
|
5 -1 roll pop
|
|
setcmykcolor
|
|
} def
|
|
/setoverprint % boolean setoverprint -
|
|
{
|
|
pop
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
%%EndResource
|
|
%%BeginResource: procset Adobe_typography_AI3 1.1 0
|
|
%%Title: (Typography Operators)
|
|
%%Version: 1.0
|
|
%%CreationDate:(5/31/90) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_typography_AI3 47 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/TZ
|
|
where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
Adobe_typography_AI3 begin
|
|
Adobe_typography_AI3
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
pop pop
|
|
} forall
|
|
end
|
|
Adobe_typography_AI3 begin
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
currentdict Adobe_typography_AI3 eq
|
|
{
|
|
end
|
|
} if
|
|
} def
|
|
% [ number value stream [ array for encoding modification ] modifyEncoding ==> [ modified array ]
|
|
/modifyEncoding
|
|
{
|
|
/_tempEncode exch ddef
|
|
|
|
% pointer for sequential encodings
|
|
/_pntr 0 ddef
|
|
|
|
{
|
|
% get bottom object
|
|
counttomark -1 roll
|
|
% is it a mark ?
|
|
dup type dup /marktype eq
|
|
{
|
|
% exit
|
|
pop pop exit
|
|
}
|
|
{
|
|
% ... object ... type ....
|
|
% insert if a nametype
|
|
/nametype eq
|
|
{
|
|
% insert the name at _pntr and increment pointer
|
|
_tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
|
|
put
|
|
}
|
|
{
|
|
% reset _pntr if it's a number
|
|
/_pntr exch ddef
|
|
}
|
|
ifelse
|
|
}
|
|
ifelse
|
|
}
|
|
loop
|
|
|
|
% return the modified encoding
|
|
_tempEncode
|
|
}
|
|
def
|
|
/TE % Set std platform encoding % (encoding pairs) TE -
|
|
{
|
|
StandardEncoding 256 array copy modifyEncoding
|
|
/_nativeEncoding exch def
|
|
} def
|
|
% re-define font
|
|
% expected arguments
|
|
% for 'normal fonts :
|
|
% [ /_Helvetica-Bold/Helvetica-Bold direction fontScript defaultEncoding TZ
|
|
%
|
|
% for cartographic, pictographic, and expert fonts :
|
|
% [ ... number value stream ... /_Symbol/Symbol
|
|
% direction fontScript defaultEncoding TZ
|
|
% for blended fonts w/ default encoding :
|
|
% [ /_AdobeSans_20ULig1XCond-Bold/AdobeSans
|
|
% direction fontScript defaultEncoding [ w0 w1 ... wn ] TZ
|
|
% for blended fonts w/ special encoding :
|
|
% [ ... number value stream ... /_AdobeSans_20ULig1XCond/AdobeSans
|
|
% direction fontScript defaultEncoding [ w0 w1 ... wn ] TZ
|
|
/TZ
|
|
{
|
|
% set weight vector (if present)
|
|
dup type /arraytype eq {/_wv exch def} {/_wv 0 def} ifelse
|
|
% platform dependent coding flag
|
|
/_useNativeEncoding exch def
|
|
% pop fontScript & direction
|
|
pop pop
|
|
|
|
% create a new dictionary with length
|
|
% equal to original dictionary length + 2
|
|
% copy all the key/value pairs except FID
|
|
% call makeblended font with the weight values if _wv is an array
|
|
findfont _wv type /arraytype eq {_wv makeblendedfont} if dup length 2 add dict
|
|
|
|
begin
|
|
|
|
% copy all the values but the FID
|
|
% into the new dictionary
|
|
mark exch
|
|
{
|
|
1 index /FID ne { def } if cleartomark mark
|
|
}
|
|
forall
|
|
% discard last mark
|
|
pop
|
|
|
|
% define FontName
|
|
/FontName exch def
|
|
|
|
% if no re-encoding stream is present
|
|
% then if the base encoding vector of the font
|
|
% is the same as StandardEncoding
|
|
% and the use platform encoding flag is true
|
|
% then install AI platform encoding
|
|
% else leave the base encoding in effect
|
|
counttomark 0 eq
|
|
{
|
|
1 _useNativeEncoding eq
|
|
{
|
|
/Encoding _nativeEncoding def
|
|
}
|
|
if
|
|
% clean up
|
|
cleartomark
|
|
}
|
|
{
|
|
% custom encoding to be done
|
|
% start off with a copy of the font's standard encoding
|
|
/Encoding load 256 array copy
|
|
modifyEncoding /Encoding exch def
|
|
}
|
|
ifelse
|
|
FontName currentdict
|
|
end
|
|
|
|
% register the new font
|
|
definefont pop
|
|
}
|
|
def
|
|
% text painting operators
|
|
/tr % string tr ax ay string
|
|
{
|
|
_ax _ay 3 2 roll
|
|
} def
|
|
/trj % string trj cx cy fillchar ax ay string
|
|
{
|
|
_cx _cy _sp _ax _ay 6 5 roll
|
|
} def
|
|
/a0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
dup
|
|
currentpoint 3 2 roll
|
|
tr _psf
|
|
newpath moveto
|
|
tr _ctm _pss
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
dup
|
|
currentpoint 3 2 roll
|
|
trj _pjsf
|
|
newpath moveto
|
|
trj _ctm _pjss
|
|
} ddef
|
|
|
|
} def
|
|
/a1
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
dup currentpoint 4 2 roll gsave
|
|
dup currentpoint 3 2 roll
|
|
tr _psf
|
|
newpath moveto
|
|
tr _ctm _pss
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
dup currentpoint 4 2 roll gsave
|
|
dup currentpoint 3 2 roll
|
|
trj _pjsf
|
|
newpath moveto
|
|
trj _ctm _pjss
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
|
|
} def
|
|
/e0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
tr _psf
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
trj _pjsf
|
|
} ddef
|
|
} def
|
|
/e1
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
dup currentpoint 4 2 roll gsave
|
|
tr _psf
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
dup currentpoint 4 2 roll gsave
|
|
trj _pjsf
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
} def
|
|
/i0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
tr sp
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
trj jsp
|
|
} ddef
|
|
} def
|
|
/i1
|
|
{
|
|
W N
|
|
} def
|
|
/o0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
tr sw rmoveto
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
trj swj rmoveto
|
|
} ddef
|
|
} def
|
|
/r0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
tr _ctm _pss
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
trj _ctm _pjss
|
|
} ddef
|
|
} def
|
|
/r1
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
dup currentpoint 4 2 roll currentpoint gsave newpath moveto
|
|
tr _ctm _pss
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
dup currentpoint 4 2 roll currentpoint gsave newpath moveto
|
|
trj _ctm _pjss
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
} def
|
|
% font operators
|
|
% Binding
|
|
/To % begin text % bindType To -
|
|
{
|
|
pop _ctm currentmatrix pop
|
|
} def
|
|
/TO % end text % TO -
|
|
{
|
|
Te _ctm setmatrix newpath
|
|
} def
|
|
% Text paths
|
|
/Tp % begin text path % a b c d tx ty startPt Tp -
|
|
{
|
|
pop _tm astore pop _ctm setmatrix
|
|
_tDict begin /W {} def /h {} def
|
|
} def
|
|
/TP % end text path % TP -
|
|
{
|
|
end
|
|
iTm 0 0 moveto
|
|
} def
|
|
% Render mode & matrix operators
|
|
/Tr % begin render % render Tr -
|
|
{
|
|
_render 3 le {currentpoint newpath moveto} if
|
|
dup 8 eq {pop 0} {dup 9 eq {pop 1} if} ifelse
|
|
dup /_render exch ddef
|
|
_renderStart exch get load exec
|
|
} def
|
|
/iTm % internal set text matrix % - iTm - (uses _tm as implicit argument)
|
|
{
|
|
_ctm setmatrix _tm concat 0 _rise translate _hs 1 scale
|
|
} def
|
|
/Tm % set text matrix % a b c d tx ty Tm -
|
|
{
|
|
_tm astore pop iTm 0 0 moveto
|
|
} def
|
|
/Td % translate text matrix % tx ty Td -
|
|
{
|
|
_mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
|
|
} def
|
|
/Te % end render % - Te -
|
|
{
|
|
_render -1 eq {} {_renderEnd _render get dup null ne {load exec} {pop} ifelse} ifelse
|
|
/_render -1 ddef
|
|
} def
|
|
% Attributes
|
|
/Ta % set alignment % alignment Ta -
|
|
{
|
|
pop
|
|
} def
|
|
/Tf % set font name and size % fontname size Tf -
|
|
{
|
|
dup 1000 div /_fScl exch ddef
|
|
exch findfont exch scalefont setfont
|
|
} def
|
|
/Tl % set leading % leading paragraphLeading Tl -
|
|
{
|
|
pop
|
|
0 exch _leading astore pop
|
|
} def
|
|
/Tt % set user tracking % userTracking Tt -
|
|
{
|
|
pop
|
|
} def
|
|
/TW % set word spacing % minSpace optSpace maxSpace TW -
|
|
{
|
|
3 npop
|
|
} def
|
|
/Tw % set computed word spacing % wordSpace Tw
|
|
{
|
|
/_cx exch ddef
|
|
} def
|
|
/TC % set character spacing % minSpace optSpace maxSpace TC -
|
|
{
|
|
3 npop
|
|
} def
|
|
/Tc % set computed char spacing % charSpace Tc -
|
|
{
|
|
/_ax exch ddef
|
|
} def
|
|
/Ts % set super/subscripting (rise) % rise Ts -
|
|
{
|
|
/_rise exch ddef
|
|
currentpoint
|
|
iTm
|
|
moveto
|
|
} def
|
|
/Ti % set indentation % firstStartIndent otherStartIndent stopIndent Ti -
|
|
{
|
|
3 npop
|
|
} def
|
|
/Tz % set horizontal scaling % scalePercent Tz -
|
|
{
|
|
100 div /_hs exch ddef
|
|
iTm
|
|
} def
|
|
/TA % set pairwise kerning % autoKern TA -
|
|
% autoKern = 0 -> no pair kerning
|
|
% = 1 -> automatic pair kerning
|
|
{
|
|
pop
|
|
} def
|
|
/Tq % set hanging quotes % hangingQuotes Tq -
|
|
% hangingQuotes = 0 -> no hanging quotes
|
|
% = 1 -> hanging quotes
|
|
{
|
|
pop
|
|
} def
|
|
% Text Bodies
|
|
/TX {pop} def
|
|
%/Tx % non-justified text % textString Tx -
|
|
%/Tj % justified text % textString Tj -
|
|
/Tk % kern % autoKern kernValue Tk -
|
|
% autoKern = 0 -> manual kern, = 1 -> auto kern
|
|
% kernValue = kern value in em/1000 space
|
|
{
|
|
exch pop _fScl mul neg 0 rmoveto
|
|
} def
|
|
/TK % non-printing kern % autoKern kernValue TK -
|
|
{
|
|
2 npop
|
|
} def
|
|
/T* % carriage return & line feed % - T* -
|
|
{
|
|
_leading aload pop neg Td
|
|
} def
|
|
/T*- % carriage return & negative line feed % - T*- -
|
|
{
|
|
_leading aload pop Td
|
|
} def
|
|
/T- % print a discretionary hyphen % - T- -
|
|
{
|
|
_hyphen Tx
|
|
} def
|
|
/T+ % discretionary hyphen hyphen % - T+ -
|
|
{} def
|
|
/TR % reset pattern matrix % a b c d tx ty TR -
|
|
{
|
|
_ctm currentmatrix pop
|
|
_tm astore pop
|
|
iTm 0 0 moveto
|
|
} def
|
|
/TS % special chars % textString justified TS -
|
|
{
|
|
0 eq {Tx} {Tj} ifelse
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
%%EndResource
|
|
%%BeginResource: procset Adobe_IllustratorA_AI3 1.0 2
|
|
%%Title: (Adobe Illustrator (R) Version 3.0 Abbreviated Prolog)
|
|
%%Version: 1.0
|
|
%%CreationDate: (7/22/89) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_IllustratorA_AI3 61 dict dup begin put
|
|
% initialization
|
|
/initialize % - initialize -
|
|
{
|
|
% 47 vars, but leave slack of 10 entries for custom Postscript fragments
|
|
userdict /Adobe_IllustratorA_AI3_vars 57 dict dup begin put
|
|
% paint operands
|
|
/_lp /none def
|
|
/_pf {} def
|
|
/_ps {} def
|
|
/_psf {} def
|
|
/_pss {} def
|
|
/_pjsf {} def
|
|
/_pjss {} def
|
|
/_pola 0 def
|
|
/_doClip 0 def
|
|
% paint operators
|
|
/cf currentflat def % - cf flatness
|
|
% typography operands
|
|
/_tm matrix def
|
|
/_renderStart [/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0] def
|
|
/_renderEnd [null null null null /i1 /i1 /i1 /i1] def
|
|
/_render -1 def
|
|
/_rise 0 def
|
|
/_ax 0 def % x character spacing (_ax, _ay, _cx, _cy follows awidthshow naming convention)
|
|
/_ay 0 def % y character spacing
|
|
/_cx 0 def % x word spacing
|
|
/_cy 0 def % y word spacing
|
|
/_leading [0 0] def
|
|
/_ctm matrix def
|
|
/_mtx matrix def
|
|
/_sp 16#020 def
|
|
/_hyphen (-) def
|
|
/_fScl 0 def
|
|
/_cnt 0 def
|
|
/_hs 1 def
|
|
/_nativeEncoding 0 def
|
|
/_useNativeEncoding 0 def
|
|
/_tempEncode 0 def
|
|
/_pntr 0 def
|
|
/_tDict 2 dict def
|
|
% typography operators
|
|
/Tx {} def
|
|
/Tj {} def
|
|
% compound path operators
|
|
/CRender {} def
|
|
% printing
|
|
/_AI3_savepage {} def
|
|
% color operands
|
|
/_gf null def
|
|
/_cf 4 array def
|
|
/_if null def
|
|
/_of false def
|
|
/_fc {} def
|
|
/_gs null def
|
|
/_cs 4 array def
|
|
/_is null def
|
|
/_os false def
|
|
/_sc {} def
|
|
/_i null def
|
|
Adobe_IllustratorA_AI3 begin
|
|
Adobe_IllustratorA_AI3
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
pop pop
|
|
} forall
|
|
end
|
|
end
|
|
Adobe_IllustratorA_AI3 begin
|
|
Adobe_IllustratorA_AI3_vars begin
|
|
newpath
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
end
|
|
end
|
|
} def
|
|
% definition operators
|
|
/_ % - _ null
|
|
null def
|
|
/ddef % key value ddef -
|
|
{
|
|
Adobe_IllustratorA_AI3_vars 3 1 roll put
|
|
} def
|
|
/xput % key value literal xput -
|
|
{
|
|
dup load dup length exch maxlength eq
|
|
{
|
|
dup dup load dup
|
|
length 2 mul dict copy def
|
|
} if
|
|
load begin def end
|
|
} def
|
|
/npop % integer npop -
|
|
{
|
|
{
|
|
pop
|
|
} repeat
|
|
} def
|
|
% marking operators
|
|
/sw % ax ay string sw x y
|
|
{
|
|
dup length exch stringwidth
|
|
exch 5 -1 roll 3 index 1 sub mul add
|
|
4 1 roll 3 1 roll 1 sub mul add
|
|
} def
|
|
/swj % cx cy fillchar ax ay string swj x y
|
|
{
|
|
dup 4 1 roll
|
|
dup length exch stringwidth
|
|
exch 5 -1 roll 3 index 1 sub mul add
|
|
4 1 roll 3 1 roll 1 sub mul add
|
|
6 2 roll /_cnt 0 ddef
|
|
{1 index eq {/_cnt _cnt 1 add ddef} if} forall pop
|
|
exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop
|
|
} def
|
|
/ss % ax ay string matrix ss -
|
|
{
|
|
4 1 roll
|
|
{ % matrix ax ay char 0 0 {proc} -
|
|
2 npop
|
|
(0) exch 2 copy 0 exch put pop
|
|
gsave
|
|
false charpath currentpoint
|
|
4 index setmatrix
|
|
stroke
|
|
grestore
|
|
moveto
|
|
2 copy rmoveto
|
|
} exch cshow
|
|
3 npop
|
|
} def
|
|
/jss % cx cy fillchar ax ay string matrix jss -
|
|
{
|
|
4 1 roll
|
|
{ % cx cy fillchar matrix ax ay char 0 0 {proc} -
|
|
2 npop
|
|
(0) exch 2 copy 0 exch put
|
|
gsave
|
|
_sp eq
|
|
{
|
|
exch 6 index 6 index 6 index 5 -1 roll widthshow
|
|
currentpoint
|
|
}
|
|
{
|
|
false charpath currentpoint
|
|
4 index setmatrix stroke
|
|
}ifelse
|
|
grestore
|
|
moveto
|
|
2 copy rmoveto
|
|
} exch cshow
|
|
6 npop
|
|
} def
|
|
% path operators
|
|
/sp % ax ay string sp -
|
|
{
|
|
{
|
|
2 npop (0) exch
|
|
2 copy 0 exch put pop
|
|
false charpath
|
|
2 copy rmoveto
|
|
} exch cshow
|
|
2 npop
|
|
} def
|
|
/jsp % cx cy fillchar ax ay string jsp -
|
|
{
|
|
{ % cx cy fillchar ax ay char 0 0 {proc} -
|
|
2 npop
|
|
(0) exch 2 copy 0 exch put
|
|
_sp eq
|
|
{
|
|
exch 5 index 5 index 5 index 5 -1 roll widthshow
|
|
}
|
|
{
|
|
false charpath
|
|
}ifelse
|
|
2 copy rmoveto
|
|
} exch cshow
|
|
5 npop
|
|
} def
|
|
% path construction operators
|
|
/pl % x y pl x y
|
|
{
|
|
transform
|
|
0.25 sub round 0.25 add exch
|
|
0.25 sub round 0.25 add exch
|
|
itransform
|
|
} def
|
|
/setstrokeadjust where
|
|
{
|
|
pop true setstrokeadjust
|
|
/c % x1 y1 x2 y2 x3 y3 c -
|
|
{
|
|
curveto
|
|
} def
|
|
/C
|
|
/c load def
|
|
/v % x2 y2 x3 y3 v -
|
|
{
|
|
currentpoint 6 2 roll curveto
|
|
} def
|
|
/V
|
|
/v load def
|
|
/y % x1 y1 x2 y2 y -
|
|
{
|
|
2 copy curveto
|
|
} def
|
|
/Y
|
|
/y load def
|
|
/l % x y l -
|
|
{
|
|
lineto
|
|
} def
|
|
/L
|
|
/l load def
|
|
/m % x y m -
|
|
{
|
|
moveto
|
|
} def
|
|
}
|
|
{%else
|
|
/c
|
|
{
|
|
pl curveto
|
|
} def
|
|
/C
|
|
/c load def
|
|
/v
|
|
{
|
|
currentpoint 6 2 roll pl curveto
|
|
} def
|
|
/V
|
|
/v load def
|
|
/y
|
|
{
|
|
pl 2 copy curveto
|
|
} def
|
|
/Y
|
|
/y load def
|
|
/l
|
|
{
|
|
pl lineto
|
|
} def
|
|
/L
|
|
/l load def
|
|
/m
|
|
{
|
|
pl moveto
|
|
} def
|
|
}ifelse
|
|
% graphic state operators
|
|
/d % array phase d -
|
|
{
|
|
setdash
|
|
} def
|
|
/cf {} def % - cf flatness
|
|
/i % flatness i -
|
|
{
|
|
dup 0 eq
|
|
{
|
|
pop cf
|
|
} if
|
|
setflat
|
|
} def
|
|
/j % linejoin j -
|
|
{
|
|
setlinejoin
|
|
} def
|
|
/J % linecap J -
|
|
{
|
|
setlinecap
|
|
} def
|
|
/M % miterlimit M -
|
|
{
|
|
setmiterlimit
|
|
} def
|
|
/w % linewidth w -
|
|
{
|
|
setlinewidth
|
|
} def
|
|
% path painting operators
|
|
/H % - H -
|
|
{} def
|
|
/h % - h -
|
|
{
|
|
closepath
|
|
} def
|
|
/N % - N -
|
|
{
|
|
_pola 0 eq
|
|
{
|
|
_doClip 1 eq {clip /_doClip 0 ddef} if
|
|
newpath
|
|
}
|
|
{
|
|
/CRender {N} ddef
|
|
}ifelse
|
|
} def
|
|
/n % - n -
|
|
{N} def
|
|
/F % - F -
|
|
{
|
|
_pola 0 eq
|
|
{
|
|
_doClip 1 eq
|
|
{
|
|
gsave _pf grestore clip newpath /_lp /none ddef _fc
|
|
/_doClip 0 ddef
|
|
}
|
|
{
|
|
_pf
|
|
}ifelse
|
|
}
|
|
{
|
|
/CRender {F} ddef
|
|
}ifelse
|
|
} def
|
|
/f % - f -
|
|
{
|
|
closepath
|
|
F
|
|
} def
|
|
/S % - S -
|
|
{
|
|
_pola 0 eq
|
|
{
|
|
_doClip 1 eq
|
|
{
|
|
gsave _ps grestore clip newpath /_lp /none ddef _sc
|
|
/_doClip 0 ddef
|
|
}
|
|
{
|
|
_ps
|
|
}ifelse
|
|
}
|
|
{
|
|
/CRender {S} ddef
|
|
}ifelse
|
|
} def
|
|
/s % - s -
|
|
{
|
|
closepath
|
|
S
|
|
} def
|
|
/B % - B -
|
|
{
|
|
_pola 0 eq
|
|
{
|
|
_doClip 1 eq % F clears _doClip
|
|
gsave F grestore
|
|
{
|
|
gsave S grestore clip newpath /_lp /none ddef _sc
|
|
/_doClip 0 ddef
|
|
}
|
|
{
|
|
S
|
|
}ifelse
|
|
}
|
|
{
|
|
/CRender {B} ddef
|
|
}ifelse
|
|
} def
|
|
/b % - b -
|
|
{
|
|
closepath
|
|
B
|
|
} def
|
|
/W % - W -
|
|
{
|
|
/_doClip 1 ddef
|
|
} def
|
|
/* % - [string] * -
|
|
{
|
|
count 0 ne
|
|
{
|
|
dup type (stringtype) eq {pop} if
|
|
} if
|
|
_pola 0 eq {newpath} if
|
|
} def
|
|
% group operators
|
|
/u % - u -
|
|
{} def
|
|
/U % - U -
|
|
{} def
|
|
/q % - q -
|
|
{
|
|
_pola 0 eq {gsave} if
|
|
} def
|
|
/Q % - Q -
|
|
{
|
|
_pola 0 eq {grestore} if
|
|
} def
|
|
/*u % - *u -
|
|
{
|
|
_pola 1 add /_pola exch ddef
|
|
} def
|
|
/*U % - *U -
|
|
{
|
|
_pola 1 sub /_pola exch ddef
|
|
_pola 0 eq {CRender} if
|
|
} def
|
|
/D % polarized D -
|
|
{pop} def
|
|
/*w % - *w -
|
|
{} def
|
|
/*W % - *W -
|
|
{} def
|
|
% place operators
|
|
/` % matrix llx lly urx ury string ` -
|
|
{
|
|
/_i save ddef
|
|
6 1 roll 4 npop
|
|
concat pop
|
|
userdict begin
|
|
/showpage {} def
|
|
0 setgray
|
|
0 setlinecap
|
|
1 setlinewidth
|
|
0 setlinejoin
|
|
10 setmiterlimit
|
|
[] 0 setdash
|
|
newpath
|
|
0 setgray
|
|
false setoverprint
|
|
} def
|
|
/~ % - ~ -
|
|
{
|
|
end
|
|
_i restore
|
|
} def
|
|
% color operators
|
|
/O % flag O -
|
|
{
|
|
0 ne
|
|
/_of exch ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/R % flag R -
|
|
{
|
|
0 ne
|
|
/_os exch ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/g % gray g -
|
|
{
|
|
/_gf exch ddef
|
|
/_fc
|
|
{
|
|
_lp /fill ne
|
|
{
|
|
_of setoverprint
|
|
_gf setgray
|
|
/_lp /fill ddef
|
|
} if
|
|
} ddef
|
|
/_pf
|
|
{
|
|
_fc
|
|
fill
|
|
} ddef
|
|
/_psf
|
|
{
|
|
_fc
|
|
ashow
|
|
} ddef
|
|
/_pjsf
|
|
{
|
|
_fc
|
|
awidthshow
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/G % gray G -
|
|
{
|
|
/_gs exch ddef
|
|
/_sc
|
|
{
|
|
_lp /stroke ne
|
|
{
|
|
_os setoverprint
|
|
_gs setgray
|
|
/_lp /stroke ddef
|
|
} if
|
|
} ddef
|
|
/_ps
|
|
{
|
|
_sc
|
|
stroke
|
|
} ddef
|
|
/_pss
|
|
{
|
|
_sc
|
|
ss
|
|
} ddef
|
|
/_pjss
|
|
{
|
|
_sc
|
|
jss
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/k % cyan magenta yellow black k -
|
|
{
|
|
_cf astore pop
|
|
/_fc
|
|
{
|
|
_lp /fill ne
|
|
{
|
|
_of setoverprint
|
|
_cf aload pop setcmykcolor
|
|
/_lp /fill ddef
|
|
} if
|
|
} ddef
|
|
/_pf
|
|
{
|
|
_fc
|
|
fill
|
|
} ddef
|
|
/_psf
|
|
{
|
|
_fc
|
|
ashow
|
|
} ddef
|
|
/_pjsf
|
|
{
|
|
_fc
|
|
awidthshow
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/K % cyan magenta yellow black K -
|
|
{
|
|
_cs astore pop
|
|
/_sc
|
|
{
|
|
_lp /stroke ne
|
|
{
|
|
_os setoverprint
|
|
_cs aload pop setcmykcolor
|
|
/_lp /stroke ddef
|
|
} if
|
|
} ddef
|
|
/_ps
|
|
{
|
|
_sc
|
|
stroke
|
|
} ddef
|
|
/_pss
|
|
{
|
|
_sc
|
|
ss
|
|
} ddef
|
|
/_pjss
|
|
{
|
|
_sc
|
|
jss
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/x % cyan magenta yellow black name gray x -
|
|
{
|
|
/_gf exch ddef
|
|
findcmykcustomcolor
|
|
/_if exch ddef
|
|
/_fc
|
|
{
|
|
_lp /fill ne
|
|
{
|
|
_of setoverprint
|
|
_if _gf 1 exch sub setcustomcolor
|
|
/_lp /fill ddef
|
|
} if
|
|
} ddef
|
|
/_pf
|
|
{
|
|
_fc
|
|
fill
|
|
} ddef
|
|
/_psf
|
|
{
|
|
_fc
|
|
ashow
|
|
} ddef
|
|
/_pjsf
|
|
{
|
|
_fc
|
|
awidthshow
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/X % cyan magenta yellow black name gray X -
|
|
{
|
|
/_gs exch ddef
|
|
findcmykcustomcolor
|
|
/_is exch ddef
|
|
/_sc
|
|
{
|
|
_lp /stroke ne
|
|
{
|
|
_os setoverprint
|
|
_is _gs 1 exch sub setcustomcolor
|
|
/_lp /stroke ddef
|
|
} if
|
|
} ddef
|
|
/_ps
|
|
{
|
|
_sc
|
|
stroke
|
|
} ddef
|
|
/_pss
|
|
{
|
|
_sc
|
|
ss
|
|
} ddef
|
|
/_pjss
|
|
{
|
|
_sc
|
|
jss
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
% locked object operator
|
|
/A % value A -
|
|
{
|
|
pop
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
% annotate page operator
|
|
/annotatepage
|
|
{
|
|
} def
|
|
%%EndResource
|
|
%%EndProlog
|
|
%%BeginSetup
|
|
%%IncludeFont: Helvetica
|
|
Adobe_cmykcolor /initialize get exec
|
|
Adobe_cshow /initialize get exec
|
|
Adobe_customcolor /initialize get exec
|
|
Adobe_typography_AI3 /initialize get exec
|
|
Adobe_IllustratorA_AI3 /initialize get exec
|
|
[
|
|
39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
|
|
/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute
|
|
/egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde
|
|
/oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex
|
|
/udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
|
|
/registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash
|
|
/.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef
|
|
/.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash
|
|
/questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef
|
|
/guillemotleft/guillemotright/ellipsis/.notdef/Agrave/Atilde/Otilde/OE/oe
|
|
/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide
|
|
/.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright
|
|
/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
|
|
/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex
|
|
/Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex
|
|
/Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla
|
|
/hungarumlaut/ogonek/caron
|
|
TE
|
|
%AI3_BeginEncoding: _Helvetica Helvetica
|
|
[/_Helvetica/Helvetica 0 0 1 TZ
|
|
%AI3_EndEncoding TrueType
|
|
%%EndSetup
|
|
0 A
|
|
0 i 0 J 0 j 1 w 4 M []0 d
|
|
%AI3_Note:
|
|
0 D
|
|
540 254 m
|
|
540 -1042 L
|
|
(N) *
|
|
36 254 m
|
|
36 -1042 L
|
|
(N) *
|
|
108 254 m
|
|
108 -1042 L
|
|
(N) *
|
|
180 254 m
|
|
180 -1042 L
|
|
(N) *
|
|
324 254 m
|
|
324 -1042 L
|
|
(N) *
|
|
252 254 m
|
|
252 -1042 L
|
|
(N) *
|
|
396 254 m
|
|
396 -1042 L
|
|
(N) *
|
|
468 254 m
|
|
468 -1042 L
|
|
(N) *
|
|
0 To
|
|
0.8552 0 0 0.8552 44.0762 -33.3903 0 Tp
|
|
TP
|
|
-12.2136 0 Td
|
|
0 Tr
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
/_Helvetica 9.3543 Tf
|
|
0 Ts
|
|
100 Tz
|
|
0 Tt
|
|
0 TA
|
|
0 0 5 TC
|
|
100 100 200 TW
|
|
0 0 0 Ti
|
|
1 Ta
|
|
0 Tq
|
|
0 0 Tl
|
|
0 Tc
|
|
0 Tw
|
|
(IRQ 7) Tx
|
|
(\r) TX
|
|
12.2136 -11.3543 Td
|
|
(\r) TX
|
|
-12.2136 -11.3543 Td
|
|
(IRQ 1) Tx
|
|
(\r) TX
|
|
TO
|
|
0 To
|
|
0.8552 0 0 0.8552 222.4442 -187.1605 0 Tp
|
|
TP
|
|
-69.6457 0 Td
|
|
0 Tr
|
|
(Figure 2: Hardware Interrupt Path) Tx
|
|
(\r) TX
|
|
TO
|
|
1 w
|
|
-342 -143.5 m
|
|
954 -143.5 L
|
|
(N) *
|
|
405.5 254 m
|
|
405.5 -1042 L
|
|
(N) *
|
|
405.5 254 m
|
|
405.5 -1042 L
|
|
(N) *
|
|
0 R
|
|
0 G
|
|
0.855 w
|
|
102.8471 -17.1261 m
|
|
126.8191 -40.8789 L
|
|
102.8471 -64.7412 L
|
|
S
|
|
u
|
|
113 -30 m
|
|
57 -30 l
|
|
S
|
|
U
|
|
u
|
|
113 -52 m
|
|
57 -52 l
|
|
S
|
|
U
|
|
0 To
|
|
1 0 0 1 43.5 -39.5 0 Tp
|
|
TP
|
|
-1.3994 0 Td
|
|
0 Tr
|
|
0 O
|
|
0 g
|
|
1 w
|
|
/_Helvetica 7.9997 Tf
|
|
4 0 Tl
|
|
(\245) Tx
|
|
(\r) TX
|
|
T*
|
|
(\245) Tx
|
|
(\r) TX
|
|
T*
|
|
(\245) Tx
|
|
(\r) TX
|
|
TO
|
|
1 To
|
|
1 0 0 1 136 -17 0 Tp
|
|
1 g
|
|
0 R
|
|
0 G
|
|
0.85 w
|
|
183.5 -64.5 m
|
|
183.5 -17 L
|
|
136 -17 L
|
|
136 -64.5 L
|
|
183.5 -64.5 L
|
|
b
|
|
TP
|
|
23.75 -3 Td
|
|
2 Tr
|
|
(\r) TX
|
|
TO
|
|
1 w
|
|
-342 -17 m
|
|
954 -17 L
|
|
(N) *
|
|
-342 -64.5 m
|
|
954 -64.5 L
|
|
(N) *
|
|
u
|
|
0 O
|
|
1 g
|
|
0 R
|
|
0 G
|
|
0.855 w
|
|
298.5 -64.5 m
|
|
298.5 -17 L
|
|
220 -17 L
|
|
220 -64.5 L
|
|
298.5 -64.5 L
|
|
b
|
|
259.25 -40.75 m
|
|
B
|
|
U
|
|
u
|
|
393.4015 -57.7431 m
|
|
393.4015 -20.9931 L
|
|
356.6515 -20.9931 L
|
|
356.6515 -57.7431 L
|
|
393.4015 -57.7431 L
|
|
b
|
|
375.0265 -39.3681 m
|
|
B
|
|
U
|
|
u
|
|
u
|
|
320 -17 m
|
|
320 -143.5 l
|
|
B
|
|
U
|
|
u
|
|
337 -17 m
|
|
337 -143.5 l
|
|
B
|
|
U
|
|
U
|
|
u
|
|
u
|
|
0.5 w
|
|
183.5 -37 m
|
|
191 -29.5 197 -32.5 v
|
|
203 -35.5 207.5 -42 219.5 -33.5 c
|
|
S
|
|
U
|
|
u
|
|
183 -46 m
|
|
190.5 -38.5 196.5 -41.5 v
|
|
202.5 -44.5 207 -51 219 -42.5 c
|
|
S
|
|
U
|
|
U
|
|
0 To
|
|
0.8552 0 0 0.8552 159.0762 -33.8903 0 Tp
|
|
TP
|
|
-13.5107 0 Td
|
|
0 Tr
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
/_Helvetica 9.3543 Tf
|
|
0 0 Tl
|
|
(VCAM) Tx
|
|
(\r) TX
|
|
3.3765 -11.3543 Td
|
|
(VME) Tx
|
|
(\r) TX
|
|
-10.1308 -11.3543 Td
|
|
(Controller) Tx
|
|
(\r) TX
|
|
TO
|
|
0 To
|
|
0.8552 0 0 0.8552 258.5762 -37.8903 0 Tp
|
|
TP
|
|
-38.2017 0 Td
|
|
0 Tr
|
|
(POWERchannel-2) Tx
|
|
(\r) TX
|
|
25.7254 -11.3543 Td
|
|
(Board) Tx
|
|
(\r) TX
|
|
TO
|
|
u
|
|
0 To
|
|
0.8552 0 0 0.8552 375.0762 -31.8903 0 Tp
|
|
TP
|
|
-9.8727 0 Td
|
|
0 Tr
|
|
(CPU) Tx
|
|
(\r) TX
|
|
-2.6035 -11.3543 Td
|
|
(Board) Tx
|
|
(\r) TX
|
|
9.8761 -11.3543 Td
|
|
(0) Tx
|
|
(\r) TX
|
|
TO
|
|
u
|
|
0 R
|
|
0 G
|
|
0.25 w
|
|
373.5625 -50.875 m
|
|
376.5625 -46.375 l
|
|
S
|
|
U
|
|
U
|
|
u
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
316.655 -41.1995 m
|
|
316.655 -39.024 L
|
|
319.6515 -41.9931 L
|
|
316.655 -44.9759 L
|
|
316.655 -42.7867 L
|
|
316.655 -41.1995 L
|
|
f
|
|
U
|
|
u
|
|
0 R
|
|
0 G
|
|
1 w
|
|
298.6515 -41.917 m
|
|
319.3485 -41.917 l
|
|
S
|
|
U
|
|
u
|
|
u
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
353.655 -92.6995 m
|
|
353.655 -90.524 L
|
|
356.6515 -93.4931 L
|
|
353.655 -96.4759 L
|
|
353.655 -94.2867 L
|
|
353.655 -92.6995 L
|
|
f
|
|
U
|
|
0 R
|
|
0 G
|
|
1 w
|
|
337.6515 -93.417 m
|
|
356.3485 -93.417 l
|
|
S
|
|
U
|
|
0 To
|
|
0.8552 0 0 0.8552 289.5762 -100.8903 0 Tp
|
|
TP
|
|
-30.9244 0 Td
|
|
0 Tr
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
(POWERpath-2) Tx
|
|
(\r) TX
|
|
22.8662 -11.3543 Td
|
|
(Bus) Tx
|
|
(\r) TX
|
|
TO
|
|
0 To
|
|
1 0 0 1 374.5 -65 0 Tp
|
|
TP
|
|
-1.3994 0 Td
|
|
0 Tr
|
|
1 w
|
|
/_Helvetica 7.9997 Tf
|
|
4 0 Tl
|
|
(\245) Tx
|
|
(\r) TX
|
|
T*
|
|
(\245) Tx
|
|
(\r) TX
|
|
T*
|
|
(\245) Tx
|
|
(\r) TX
|
|
TO
|
|
u
|
|
u
|
|
0.8552 w
|
|
353.655 -34.1995 m
|
|
353.655 -32.024 L
|
|
356.6515 -34.9931 L
|
|
353.655 -37.9759 L
|
|
353.655 -35.7867 L
|
|
353.655 -34.1995 L
|
|
f
|
|
U
|
|
0 R
|
|
0 G
|
|
1 w
|
|
337.6515 -34.917 m
|
|
356.3485 -34.917 l
|
|
S
|
|
U
|
|
u
|
|
0 O
|
|
1 g
|
|
0.855 w
|
|
393.4015 -110.2431 m
|
|
393.4015 -73.4931 L
|
|
356.6515 -73.4931 L
|
|
356.6515 -110.2431 L
|
|
393.4015 -110.2431 L
|
|
b
|
|
375.0265 -91.8681 m
|
|
B
|
|
U
|
|
0 To
|
|
0.8552 0 0 0.8552 376.5762 -85.3903 0 Tp
|
|
TP
|
|
-9.8727 0 Td
|
|
0 Tr
|
|
0 g
|
|
0.8552 w
|
|
/_Helvetica 9.3543 Tf
|
|
0 0 Tl
|
|
(CPU) Tx
|
|
(\r) TX
|
|
-2.6035 -11.3543 Td
|
|
(Board) Tx
|
|
(\r) TX
|
|
9.8761 -11.3543 Td
|
|
(n) Tx
|
|
(\r) TX
|
|
TO
|
|
%%PageTrailer
|
|
gsave annotatepage grestore showpage
|
|
%%Trailer
|
|
Adobe_IllustratorA_AI3 /terminate get exec
|
|
Adobe_typography_AI3 /terminate get exec
|
|
Adobe_customcolor /terminate get exec
|
|
Adobe_cshow /terminate get exec
|
|
Adobe_cmykcolor /terminate get exec
|
|
Adobe_packedarray /terminate get exec
|
|
%%EOF
|
|
%%EndDocument
|
|
FMENDEPSF
|
|
72 89.3 558 687.33 C
|
|
0 0 612 792 C
|
|
197.22 255.89 382.23 275.89 R
|
|
7 X
|
|
0 K
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "7" 8
|
|
%%Page: "8" 8
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(System Interrupt Response) 189 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(8) 54 60.96 T
|
|
0 9 Q
|
|
( of) 59.56 60.96 T
|
|
0 10 Q
|
|
( 33) 70.54 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
1 10 Q
|
|
(W) 189 680.66 T
|
|
(orst case interrupt propagation time can be reduced signi\336cantly by not supporting) 197.63 680.66 T
|
|
(graphics or HIPPI interfaces with the same POWERchannel-2 interface used for VME.) 189 668.66 T
|
|
-0.36 (Upon receiving a VME interrupt at a CPU, the OS\325) 189 644.66 P
|
|
-0.36 (s VME Kernel Driver will read status) 390.11 644.66 P
|
|
-0.37 (registers to identify the interrupting device\050s\051 and clear the interrupt. This information is) 189 632.66 P
|
|
(used to select which device-speci\336c interrupt handler will execute. Interrupts are not) 189 620.66 T
|
|
(cleared until all devices requesting service at that level have been read.) 189 608.66 T
|
|
-0.11 (In order to minimize the time spent handling interrupts on the VME bus, it is preferable) 189 584.66 P
|
|
(to connect only a single device to each VME interrupt line.) 189 572.66 T
|
|
0 9 Q
|
|
(2.2.2) 160.01 549.33 T
|
|
(Software Interrupt Latency) 189 549.33 T
|
|
1 10 Q
|
|
(Software interrupt latency is the interval between the instant when the hardware inter-) 189 536.66 T
|
|
(rupt signal arrives at the R4400, and the instant when the OS begins responding to the) 189 524.66 T
|
|
(interrupt.) 189 512.66 T
|
|
(Anytime interrupts are not masked in software, then software interrupt latency is less) 189 494.66 T
|
|
(than one instruction time. The approach taken in IRIX with REACT is to enable real-) 189 482.66 T
|
|
(time processors to always have interrupts enabled when a real-time interrupt can occur) 189 470.66 T
|
|
(,) 534.99 470.66 T
|
|
(so that software latency is less than one instruction time. The implications of this are) 189 458.66 T
|
|
(covered in the following sections, which describe the situations in which interrupts are) 189 446.66 T
|
|
(masked.) 189 434.66 T
|
|
0 9 Q
|
|
(2.2.3) 160.01 411.33 T
|
|
(Potential Sources Of Software Interrupt Latency) 189 411.33 T
|
|
1 10 Q
|
|
(The two situations in which interrupts are masked are:) 189 398.66 T
|
|
0 9 Q
|
|
(1.) 189 380.66 T
|
|
1 10 Q
|
|
(When a higher priority interrupt handler is executing.) 202.74 380.66 T
|
|
0 9 Q
|
|
(2.) 189 365.66 T
|
|
1 10 Q
|
|
(When critical regions of kernel code are executing.) 202.74 365.66 T
|
|
(IRIX with REACT enable users to prevent higher priority interrupts from introducing) 189 341.66 T
|
|
(latency by directing them away from real-time processors. Critical regions of kernel) 189 329.66 T
|
|
(code are avoided or carefully managed. The following sections examine these two situ-) 189 317.66 T
|
|
(ations in detail.) 189 305.66 T
|
|
0 9 Q
|
|
(2.2.3.1) 152.52 282.33 T
|
|
(Interrupt Handlers) 189 282.33 T
|
|
1 10 Q
|
|
-0.06 (While an interrupt handler is executing, it masks interrupts at an equal or lower priority) 189 269.66 P
|
|
-0.15 (from being serviced. Furthermore, all pending interrupts that are equal to or higher than) 189 257.66 P
|
|
(the priority of a new interrupt must complete execution before the new interrupt is ser-) 189 245.66 T
|
|
(viced. Interrupt handlers run only on the processor to which the interrupt is directed.) 189 233.66 T
|
|
-0.01 (Once non-real-time interrupts are directed away from real-time processors as described) 189 221.66 P
|
|
(in Section 3, they will never introduce latency) 189 209.66 T
|
|
(.) 372.67 209.66 T
|
|
0 9 Q
|
|
(2.2.3.2) 152.52 186.33 T
|
|
(Critical Kernel Regions) 189 186.33 T
|
|
1 10 Q
|
|
-0.1 (IRIX is a fully symmetric multiprocessor OS that allows multiple processors to execute) 189 173.66 P
|
|
(in the kernel simultaneously) 189 161.66 T
|
|
(. Certain critical sections of kernel code require exclusive) 301.34 161.66 T
|
|
(access to shared resources. Spin locks are used to arbitrate which processor has exclu-) 189 149.66 T
|
|
(sive access to the shared resources. Once a processor acquires a spin lock and enters a) 189 137.66 T
|
|
-0.01 (critical section of kernel code, it raises its interrupt level. New interrupts that are below) 189 125.66 P
|
|
(the processor) 189 113.66 T
|
|
(\325) 242.38 113.66 T
|
|
(s interrupt level will not be serviced until the critical section of kernel) 245.16 113.66 T
|
|
(code is complete and the processor) 189 101.66 T
|
|
(\325) 328.98 101.66 T
|
|
(s interrupt level is lowered.) 331.76 101.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "8" 9
|
|
%%Page: "9" 9
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(System Interrupt Response) 207 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(9) 527.85 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
1 F
|
|
(Where possible, real-time processes should avoid making system calls during time-crit-) 207 680.66 T
|
|
(ical regions. Instead, forking processes, allocating memory) 207 668.66 T
|
|
(, etc. should be done as part) 442.01 668.66 T
|
|
-0.18 (of an initialization routine. T) 207 656.66 P
|
|
-0.18 (ypically) 320.79 656.66 P
|
|
-0.18 (, the only types of kernel activity that must be done) 352.34 656.66 P
|
|
(during a time-critical region are process synchronization and context switches.) 207 644.66 T
|
|
0 F
|
|
(2.3) 184.11 614.66 T
|
|
(Software Interrupt Response T) 207 614.66 T
|
|
(ime) 352.32 614.66 T
|
|
1 F
|
|
(The software interrupt response time is the interval between the time the OS begins) 207 598.66 T
|
|
(responding to an interrupt and the time that a user level process begins executing. Fig-) 207 586.66 T
|
|
(ure 3 shows the sequence of operations that are included in the software interrupt) 207 574.66 T
|
|
(response time. These are described below:) 207 562.66 T
|
|
4 11 Q
|
|
(\245) 207 544.66 T
|
|
2 10 Q
|
|
(Mode switch.) 220.74 544.66 T
|
|
1 F
|
|
( A mode switch occurs whenever a processor enters or leaves the ker-) 277.37 544.66 T
|
|
(nel. It involves saving / restoring basic resources such as the integer registers and) 220.74 532.66 T
|
|
(graphics registers \050if any\051. When entering the kernel, it also includes steps to deter-) 220.74 520.66 T
|
|
(mine why the kernel was entered.) 220.74 508.66 T
|
|
4 11 Q
|
|
(\245) 207 493.66 T
|
|
2 10 Q
|
|
(Interrupt handler) 220.74 493.66 T
|
|
(.) 296.17 493.66 T
|
|
1 F
|
|
( This is device-speci\336c code that always runs in kernel mode on) 298.67 493.66 T
|
|
(the processor to which an interrupt is directed. Users must provide an interrupt han-) 220.74 481.66 T
|
|
(dler for any device they add to the system that generates interrupts. T) 220.74 469.66 T
|
|
(ypically) 496.78 469.66 T
|
|
(, an) 528.34 469.66 T
|
|
(interrupt handler will unblock a process or send a signal to alert a process that the) 220.74 457.66 T
|
|
(interrupt has occurred.) 220.74 445.66 T
|
|
4 11 Q
|
|
(\245) 207 430.66 T
|
|
2 10 Q
|
|
-0.1 (Dispatch cycle.) 220.74 430.66 P
|
|
1 F
|
|
-0.1 ( During the dispatch cycle, the scheduler determines which user pro-) 284.49 430.66 P
|
|
(cess should run next. A dispatch cycle will be followed either by a context switch) 220.74 418.66 T
|
|
-0.35 (and a mode switch, or by only a mode switch, depending on the circumstances. If the) 220.74 406.66 P
|
|
-0.14 (next user process to be run is not the same user process that was previously running,) 220.74 394.66 P
|
|
(the scheduler initiates a context switch.) 220.74 382.66 T
|
|
(If the processor was in the kernel idle loop at the time the interrupt occurred, a con-) 220.74 367.66 T
|
|
(text switch will not be required if the next process to be run was also running just) 220.74 355.66 T
|
|
(before the processor entered the idle loop.) 220.74 343.66 T
|
|
4 11 Q
|
|
(\245) 207 328.66 T
|
|
2 10 Q
|
|
(Context switch.) 220.74 328.66 T
|
|
1 F
|
|
( During a context switch, the kernel saves the context of one user) 286.81 328.66 T
|
|
(process and restores the context of another user process.) 220.74 316.66 T
|
|
(Figure 3: Components of Software Interrupt Response T) 207 108.68 T
|
|
(ime) 432.34 108.68 T
|
|
72 89.3 558 687.33 C
|
|
100.01 129.34 558 289.33 C
|
|
0 34 -169 480 -21 450 153 109.01 136.33 FMBEGINEPSF
|
|
%%BeginDocument: <inline>
|
|
%!PS-Adobe-3.0 EPSF-3.0
|
|
%%Creator: Adobe Illustrator(TM) 3.2
|
|
%%For: (Frank X. Doyle) (Dangerous Ideas Group)
|
|
%%Title: (Fig. 3 Chart)
|
|
%%CreationDate: (1/20/94) (4:40 PM)
|
|
%%BoundingBox: 34 -169 480 -21
|
|
%%DocumentProcessColors: Black
|
|
%%DocumentFonts: Helvetica
|
|
%%DocumentSuppliedResources: procset Adobe_packedarray 2.0 0
|
|
%%+ procset Adobe_cmykcolor 1.1 0
|
|
%%+ procset Adobe_cshow 1.1 0
|
|
%%+ procset Adobe_customcolor 1.0 0
|
|
%%+ procset Adobe_typography_AI3 1.0 1
|
|
%%+ procset Adobe_IllustratorA_AI3 1.0 1
|
|
%AI3_ColorUsage: Black&White
|
|
%AI3_TemplateBox: 306 -394 306 -394
|
|
%AI3_TileBox: 18 -782 594 -6
|
|
%AI3_DocumentPreview: Macintosh_Pic
|
|
%%EndComments
|
|
%%BeginProlog
|
|
%%BeginResource: procset Adobe_packedarray 2.0 0
|
|
%%Title: (Packed Array Operators)
|
|
%%Version: 2.0
|
|
%%CreationDate: (8/2/90) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
userdict /Adobe_packedarray 5 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/packedarray where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
Adobe_packedarray begin
|
|
Adobe_packedarray
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
userdict 3 1 roll put
|
|
} forall
|
|
end
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
} def
|
|
/packedarray % arguments count packedarray array
|
|
{
|
|
array astore readonly
|
|
} def
|
|
/setpacking % boolean setpacking -
|
|
{
|
|
pop
|
|
} def
|
|
/currentpacking % - setpacking boolean
|
|
{
|
|
false
|
|
} def
|
|
currentdict readonly pop end
|
|
%%EndResource
|
|
Adobe_packedarray /initialize get exec
|
|
%%BeginResource: procset Adobe_cmykcolor 1.1 0
|
|
%%Title: (CMYK Color Operators)
|
|
%%Version: 1.1
|
|
%%CreationDate: (1/23/89) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_cmykcolor 4 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/setcmykcolor where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
userdict /Adobe_cmykcolor_vars 2 dict dup begin put
|
|
/_setrgbcolor
|
|
/setrgbcolor load def
|
|
/_currentrgbcolor
|
|
/currentrgbcolor load def
|
|
Adobe_cmykcolor begin
|
|
Adobe_cmykcolor
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
pop pop
|
|
} forall
|
|
end
|
|
end
|
|
Adobe_cmykcolor begin
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
currentdict Adobe_cmykcolor eq
|
|
{
|
|
end
|
|
} if
|
|
} def
|
|
/setcmykcolor % cyan magenta yellow black setcmykcolor -
|
|
{
|
|
1 sub 4 1 roll
|
|
3
|
|
{
|
|
3 index add neg dup 0 lt
|
|
{
|
|
pop 0
|
|
} if
|
|
3 1 roll
|
|
} repeat
|
|
Adobe_cmykcolor_vars /_setrgbcolor get exec
|
|
pop
|
|
} def
|
|
/currentcmykcolor % - currentcmykcolor cyan magenta yellow black
|
|
{
|
|
Adobe_cmykcolor_vars /_currentrgbcolor get exec
|
|
3
|
|
{
|
|
1 sub neg 3 1 roll
|
|
} repeat
|
|
0
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
%%EndResource
|
|
%%BeginResource: procset Adobe_cshow 1.1 0
|
|
%%Title: (cshow Operator)
|
|
%%Version: 1.1
|
|
%%CreationDate: (1/23/89) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_cshow 3 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/cshow where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
userdict /Adobe_cshow_vars 1 dict dup begin put
|
|
/_cshow % - _cshow proc
|
|
{} def
|
|
Adobe_cshow begin
|
|
Adobe_cshow
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
userdict 3 1 roll put
|
|
} forall
|
|
end
|
|
end
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
} def
|
|
/cshow % proc string cshow -
|
|
{
|
|
exch
|
|
Adobe_cshow_vars
|
|
exch /_cshow
|
|
exch put
|
|
{
|
|
0 0 Adobe_cshow_vars /_cshow get exec
|
|
} forall
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
%%EndResource
|
|
%%BeginResource: procset Adobe_customcolor 1.0 0
|
|
%%Title: (Custom Color Operators)
|
|
%%Version: 1.0
|
|
%%CreationDate: (5/9/88) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_customcolor 5 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/setcustomcolor where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
Adobe_customcolor begin
|
|
Adobe_customcolor
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
pop pop
|
|
} forall
|
|
end
|
|
Adobe_customcolor begin
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
currentdict Adobe_customcolor eq
|
|
{
|
|
end
|
|
} if
|
|
} def
|
|
/findcmykcustomcolor % cyan magenta yellow black name findcmykcustomcolor object
|
|
{
|
|
5 packedarray
|
|
} def
|
|
/setcustomcolor % object tint setcustomcolor -
|
|
{
|
|
exch
|
|
aload pop pop
|
|
4
|
|
{
|
|
4 index mul 4 1 roll
|
|
} repeat
|
|
5 -1 roll pop
|
|
setcmykcolor
|
|
} def
|
|
/setoverprint % boolean setoverprint -
|
|
{
|
|
pop
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
%%EndResource
|
|
%%BeginResource: procset Adobe_typography_AI3 1.1 0
|
|
%%Title: (Typography Operators)
|
|
%%Version: 1.0
|
|
%%CreationDate:(5/31/90) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_typography_AI3 47 dict dup begin put
|
|
/initialize % - initialize -
|
|
{
|
|
/TZ
|
|
where
|
|
{
|
|
pop
|
|
}
|
|
{
|
|
Adobe_typography_AI3 begin
|
|
Adobe_typography_AI3
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
pop pop
|
|
} forall
|
|
end
|
|
Adobe_typography_AI3 begin
|
|
} ifelse
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
currentdict Adobe_typography_AI3 eq
|
|
{
|
|
end
|
|
} if
|
|
} def
|
|
% [ number value stream [ array for encoding modification ] modifyEncoding ==> [ modified array ]
|
|
/modifyEncoding
|
|
{
|
|
/_tempEncode exch ddef
|
|
|
|
% pointer for sequential encodings
|
|
/_pntr 0 ddef
|
|
|
|
{
|
|
% get bottom object
|
|
counttomark -1 roll
|
|
% is it a mark ?
|
|
dup type dup /marktype eq
|
|
{
|
|
% exit
|
|
pop pop exit
|
|
}
|
|
{
|
|
% ... object ... type ....
|
|
% insert if a nametype
|
|
/nametype eq
|
|
{
|
|
% insert the name at _pntr and increment pointer
|
|
_tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
|
|
put
|
|
}
|
|
{
|
|
% reset _pntr if it's a number
|
|
/_pntr exch ddef
|
|
}
|
|
ifelse
|
|
}
|
|
ifelse
|
|
}
|
|
loop
|
|
|
|
% return the modified encoding
|
|
_tempEncode
|
|
}
|
|
def
|
|
/TE % Set std platform encoding % (encoding pairs) TE -
|
|
{
|
|
StandardEncoding 256 array copy modifyEncoding
|
|
/_nativeEncoding exch def
|
|
} def
|
|
% re-define font
|
|
% expected arguments
|
|
% for 'normal fonts :
|
|
% [ /_Helvetica-Bold/Helvetica-Bold direction fontScript defaultEncoding TZ
|
|
%
|
|
% for cartographic, pictographic, and expert fonts :
|
|
% [ ... number value stream ... /_Symbol/Symbol
|
|
% direction fontScript defaultEncoding TZ
|
|
% for blended fonts w/ default encoding :
|
|
% [ /_AdobeSans_20ULig1XCond-Bold/AdobeSans
|
|
% direction fontScript defaultEncoding [ w0 w1 ... wn ] TZ
|
|
% for blended fonts w/ special encoding :
|
|
% [ ... number value stream ... /_AdobeSans_20ULig1XCond/AdobeSans
|
|
% direction fontScript defaultEncoding [ w0 w1 ... wn ] TZ
|
|
/TZ
|
|
{
|
|
% set weight vector (if present)
|
|
dup type /arraytype eq {/_wv exch def} {/_wv 0 def} ifelse
|
|
% platform dependent coding flag
|
|
/_useNativeEncoding exch def
|
|
% pop fontScript & direction
|
|
pop pop
|
|
|
|
% create a new dictionary with length
|
|
% equal to original dictionary length + 2
|
|
% copy all the key/value pairs except FID
|
|
% call makeblended font with the weight values if _wv is an array
|
|
findfont _wv type /arraytype eq {_wv makeblendedfont} if dup length 2 add dict
|
|
|
|
begin
|
|
|
|
% copy all the values but the FID
|
|
% into the new dictionary
|
|
mark exch
|
|
{
|
|
1 index /FID ne { def } if cleartomark mark
|
|
}
|
|
forall
|
|
% discard last mark
|
|
pop
|
|
|
|
% define FontName
|
|
/FontName exch def
|
|
|
|
% if no re-encoding stream is present
|
|
% then if the base encoding vector of the font
|
|
% is the same as StandardEncoding
|
|
% and the use platform encoding flag is true
|
|
% then install AI platform encoding
|
|
% else leave the base encoding in effect
|
|
counttomark 0 eq
|
|
{
|
|
1 _useNativeEncoding eq
|
|
{
|
|
/Encoding _nativeEncoding def
|
|
}
|
|
if
|
|
% clean up
|
|
cleartomark
|
|
}
|
|
{
|
|
% custom encoding to be done
|
|
% start off with a copy of the font's standard encoding
|
|
/Encoding load 256 array copy
|
|
modifyEncoding /Encoding exch def
|
|
}
|
|
ifelse
|
|
FontName currentdict
|
|
end
|
|
|
|
% register the new font
|
|
definefont pop
|
|
}
|
|
def
|
|
% text painting operators
|
|
/tr % string tr ax ay string
|
|
{
|
|
_ax _ay 3 2 roll
|
|
} def
|
|
/trj % string trj cx cy fillchar ax ay string
|
|
{
|
|
_cx _cy _sp _ax _ay 6 5 roll
|
|
} def
|
|
/a0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
dup
|
|
currentpoint 3 2 roll
|
|
tr _psf
|
|
newpath moveto
|
|
tr _ctm _pss
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
dup
|
|
currentpoint 3 2 roll
|
|
trj _pjsf
|
|
newpath moveto
|
|
trj _ctm _pjss
|
|
} ddef
|
|
|
|
} def
|
|
/a1
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
dup currentpoint 4 2 roll gsave
|
|
dup currentpoint 3 2 roll
|
|
tr _psf
|
|
newpath moveto
|
|
tr _ctm _pss
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
dup currentpoint 4 2 roll gsave
|
|
dup currentpoint 3 2 roll
|
|
trj _pjsf
|
|
newpath moveto
|
|
trj _ctm _pjss
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
|
|
} def
|
|
/e0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
tr _psf
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
trj _pjsf
|
|
} ddef
|
|
} def
|
|
/e1
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
dup currentpoint 4 2 roll gsave
|
|
tr _psf
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
dup currentpoint 4 2 roll gsave
|
|
trj _pjsf
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
} def
|
|
/i0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
tr sp
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
trj jsp
|
|
} ddef
|
|
} def
|
|
/i1
|
|
{
|
|
W N
|
|
} def
|
|
/o0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
tr sw rmoveto
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
trj swj rmoveto
|
|
} ddef
|
|
} def
|
|
/r0
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
tr _ctm _pss
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
trj _ctm _pjss
|
|
} ddef
|
|
} def
|
|
/r1
|
|
{
|
|
/Tx % text % textString Tx -
|
|
{
|
|
dup currentpoint 4 2 roll currentpoint gsave newpath moveto
|
|
tr _ctm _pss
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
/Tj % justified text % textString Tj -
|
|
{
|
|
dup currentpoint 4 2 roll currentpoint gsave newpath moveto
|
|
trj _ctm _pjss
|
|
grestore 3 1 roll moveto tr sp
|
|
} ddef
|
|
} def
|
|
% font operators
|
|
% Binding
|
|
/To % begin text % bindType To -
|
|
{
|
|
pop _ctm currentmatrix pop
|
|
} def
|
|
/TO % end text % TO -
|
|
{
|
|
Te _ctm setmatrix newpath
|
|
} def
|
|
% Text paths
|
|
/Tp % begin text path % a b c d tx ty startPt Tp -
|
|
{
|
|
pop _tm astore pop _ctm setmatrix
|
|
_tDict begin /W {} def /h {} def
|
|
} def
|
|
/TP % end text path % TP -
|
|
{
|
|
end
|
|
iTm 0 0 moveto
|
|
} def
|
|
% Render mode & matrix operators
|
|
/Tr % begin render % render Tr -
|
|
{
|
|
_render 3 le {currentpoint newpath moveto} if
|
|
dup 8 eq {pop 0} {dup 9 eq {pop 1} if} ifelse
|
|
dup /_render exch ddef
|
|
_renderStart exch get load exec
|
|
} def
|
|
/iTm % internal set text matrix % - iTm - (uses _tm as implicit argument)
|
|
{
|
|
_ctm setmatrix _tm concat 0 _rise translate _hs 1 scale
|
|
} def
|
|
/Tm % set text matrix % a b c d tx ty Tm -
|
|
{
|
|
_tm astore pop iTm 0 0 moveto
|
|
} def
|
|
/Td % translate text matrix % tx ty Td -
|
|
{
|
|
_mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
|
|
} def
|
|
/Te % end render % - Te -
|
|
{
|
|
_render -1 eq {} {_renderEnd _render get dup null ne {load exec} {pop} ifelse} ifelse
|
|
/_render -1 ddef
|
|
} def
|
|
% Attributes
|
|
/Ta % set alignment % alignment Ta -
|
|
{
|
|
pop
|
|
} def
|
|
/Tf % set font name and size % fontname size Tf -
|
|
{
|
|
dup 1000 div /_fScl exch ddef
|
|
exch findfont exch scalefont setfont
|
|
} def
|
|
/Tl % set leading % leading paragraphLeading Tl -
|
|
{
|
|
pop
|
|
0 exch _leading astore pop
|
|
} def
|
|
/Tt % set user tracking % userTracking Tt -
|
|
{
|
|
pop
|
|
} def
|
|
/TW % set word spacing % minSpace optSpace maxSpace TW -
|
|
{
|
|
3 npop
|
|
} def
|
|
/Tw % set computed word spacing % wordSpace Tw
|
|
{
|
|
/_cx exch ddef
|
|
} def
|
|
/TC % set character spacing % minSpace optSpace maxSpace TC -
|
|
{
|
|
3 npop
|
|
} def
|
|
/Tc % set computed char spacing % charSpace Tc -
|
|
{
|
|
/_ax exch ddef
|
|
} def
|
|
/Ts % set super/subscripting (rise) % rise Ts -
|
|
{
|
|
/_rise exch ddef
|
|
currentpoint
|
|
iTm
|
|
moveto
|
|
} def
|
|
/Ti % set indentation % firstStartIndent otherStartIndent stopIndent Ti -
|
|
{
|
|
3 npop
|
|
} def
|
|
/Tz % set horizontal scaling % scalePercent Tz -
|
|
{
|
|
100 div /_hs exch ddef
|
|
iTm
|
|
} def
|
|
/TA % set pairwise kerning % autoKern TA -
|
|
% autoKern = 0 -> no pair kerning
|
|
% = 1 -> automatic pair kerning
|
|
{
|
|
pop
|
|
} def
|
|
/Tq % set hanging quotes % hangingQuotes Tq -
|
|
% hangingQuotes = 0 -> no hanging quotes
|
|
% = 1 -> hanging quotes
|
|
{
|
|
pop
|
|
} def
|
|
% Text Bodies
|
|
/TX {pop} def
|
|
%/Tx % non-justified text % textString Tx -
|
|
%/Tj % justified text % textString Tj -
|
|
/Tk % kern % autoKern kernValue Tk -
|
|
% autoKern = 0 -> manual kern, = 1 -> auto kern
|
|
% kernValue = kern value in em/1000 space
|
|
{
|
|
exch pop _fScl mul neg 0 rmoveto
|
|
} def
|
|
/TK % non-printing kern % autoKern kernValue TK -
|
|
{
|
|
2 npop
|
|
} def
|
|
/T* % carriage return & line feed % - T* -
|
|
{
|
|
_leading aload pop neg Td
|
|
} def
|
|
/T*- % carriage return & negative line feed % - T*- -
|
|
{
|
|
_leading aload pop Td
|
|
} def
|
|
/T- % print a discretionary hyphen % - T- -
|
|
{
|
|
_hyphen Tx
|
|
} def
|
|
/T+ % discretionary hyphen hyphen % - T+ -
|
|
{} def
|
|
/TR % reset pattern matrix % a b c d tx ty TR -
|
|
{
|
|
_ctm currentmatrix pop
|
|
_tm astore pop
|
|
iTm 0 0 moveto
|
|
} def
|
|
/TS % special chars % textString justified TS -
|
|
{
|
|
0 eq {Tx} {Tj} ifelse
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
%%EndResource
|
|
%%BeginResource: procset Adobe_IllustratorA_AI3 1.0 2
|
|
%%Title: (Adobe Illustrator (R) Version 3.0 Abbreviated Prolog)
|
|
%%Version: 1.0
|
|
%%CreationDate: (7/22/89) ()
|
|
%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
|
|
currentpacking true setpacking
|
|
userdict /Adobe_IllustratorA_AI3 61 dict dup begin put
|
|
% initialization
|
|
/initialize % - initialize -
|
|
{
|
|
% 47 vars, but leave slack of 10 entries for custom Postscript fragments
|
|
userdict /Adobe_IllustratorA_AI3_vars 57 dict dup begin put
|
|
% paint operands
|
|
/_lp /none def
|
|
/_pf {} def
|
|
/_ps {} def
|
|
/_psf {} def
|
|
/_pss {} def
|
|
/_pjsf {} def
|
|
/_pjss {} def
|
|
/_pola 0 def
|
|
/_doClip 0 def
|
|
% paint operators
|
|
/cf currentflat def % - cf flatness
|
|
% typography operands
|
|
/_tm matrix def
|
|
/_renderStart [/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0] def
|
|
/_renderEnd [null null null null /i1 /i1 /i1 /i1] def
|
|
/_render -1 def
|
|
/_rise 0 def
|
|
/_ax 0 def % x character spacing (_ax, _ay, _cx, _cy follows awidthshow naming convention)
|
|
/_ay 0 def % y character spacing
|
|
/_cx 0 def % x word spacing
|
|
/_cy 0 def % y word spacing
|
|
/_leading [0 0] def
|
|
/_ctm matrix def
|
|
/_mtx matrix def
|
|
/_sp 16#020 def
|
|
/_hyphen (-) def
|
|
/_fScl 0 def
|
|
/_cnt 0 def
|
|
/_hs 1 def
|
|
/_nativeEncoding 0 def
|
|
/_useNativeEncoding 0 def
|
|
/_tempEncode 0 def
|
|
/_pntr 0 def
|
|
/_tDict 2 dict def
|
|
% typography operators
|
|
/Tx {} def
|
|
/Tj {} def
|
|
% compound path operators
|
|
/CRender {} def
|
|
% printing
|
|
/_AI3_savepage {} def
|
|
% color operands
|
|
/_gf null def
|
|
/_cf 4 array def
|
|
/_if null def
|
|
/_of false def
|
|
/_fc {} def
|
|
/_gs null def
|
|
/_cs 4 array def
|
|
/_is null def
|
|
/_os false def
|
|
/_sc {} def
|
|
/_i null def
|
|
Adobe_IllustratorA_AI3 begin
|
|
Adobe_IllustratorA_AI3
|
|
{
|
|
dup xcheck
|
|
{
|
|
bind
|
|
} if
|
|
pop pop
|
|
} forall
|
|
end
|
|
end
|
|
Adobe_IllustratorA_AI3 begin
|
|
Adobe_IllustratorA_AI3_vars begin
|
|
newpath
|
|
} def
|
|
/terminate % - terminate -
|
|
{
|
|
end
|
|
end
|
|
} def
|
|
% definition operators
|
|
/_ % - _ null
|
|
null def
|
|
/ddef % key value ddef -
|
|
{
|
|
Adobe_IllustratorA_AI3_vars 3 1 roll put
|
|
} def
|
|
/xput % key value literal xput -
|
|
{
|
|
dup load dup length exch maxlength eq
|
|
{
|
|
dup dup load dup
|
|
length 2 mul dict copy def
|
|
} if
|
|
load begin def end
|
|
} def
|
|
/npop % integer npop -
|
|
{
|
|
{
|
|
pop
|
|
} repeat
|
|
} def
|
|
% marking operators
|
|
/sw % ax ay string sw x y
|
|
{
|
|
dup length exch stringwidth
|
|
exch 5 -1 roll 3 index 1 sub mul add
|
|
4 1 roll 3 1 roll 1 sub mul add
|
|
} def
|
|
/swj % cx cy fillchar ax ay string swj x y
|
|
{
|
|
dup 4 1 roll
|
|
dup length exch stringwidth
|
|
exch 5 -1 roll 3 index 1 sub mul add
|
|
4 1 roll 3 1 roll 1 sub mul add
|
|
6 2 roll /_cnt 0 ddef
|
|
{1 index eq {/_cnt _cnt 1 add ddef} if} forall pop
|
|
exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop
|
|
} def
|
|
/ss % ax ay string matrix ss -
|
|
{
|
|
4 1 roll
|
|
{ % matrix ax ay char 0 0 {proc} -
|
|
2 npop
|
|
(0) exch 2 copy 0 exch put pop
|
|
gsave
|
|
false charpath currentpoint
|
|
4 index setmatrix
|
|
stroke
|
|
grestore
|
|
moveto
|
|
2 copy rmoveto
|
|
} exch cshow
|
|
3 npop
|
|
} def
|
|
/jss % cx cy fillchar ax ay string matrix jss -
|
|
{
|
|
4 1 roll
|
|
{ % cx cy fillchar matrix ax ay char 0 0 {proc} -
|
|
2 npop
|
|
(0) exch 2 copy 0 exch put
|
|
gsave
|
|
_sp eq
|
|
{
|
|
exch 6 index 6 index 6 index 5 -1 roll widthshow
|
|
currentpoint
|
|
}
|
|
{
|
|
false charpath currentpoint
|
|
4 index setmatrix stroke
|
|
}ifelse
|
|
grestore
|
|
moveto
|
|
2 copy rmoveto
|
|
} exch cshow
|
|
6 npop
|
|
} def
|
|
% path operators
|
|
/sp % ax ay string sp -
|
|
{
|
|
{
|
|
2 npop (0) exch
|
|
2 copy 0 exch put pop
|
|
false charpath
|
|
2 copy rmoveto
|
|
} exch cshow
|
|
2 npop
|
|
} def
|
|
/jsp % cx cy fillchar ax ay string jsp -
|
|
{
|
|
{ % cx cy fillchar ax ay char 0 0 {proc} -
|
|
2 npop
|
|
(0) exch 2 copy 0 exch put
|
|
_sp eq
|
|
{
|
|
exch 5 index 5 index 5 index 5 -1 roll widthshow
|
|
}
|
|
{
|
|
false charpath
|
|
}ifelse
|
|
2 copy rmoveto
|
|
} exch cshow
|
|
5 npop
|
|
} def
|
|
% path construction operators
|
|
/pl % x y pl x y
|
|
{
|
|
transform
|
|
0.25 sub round 0.25 add exch
|
|
0.25 sub round 0.25 add exch
|
|
itransform
|
|
} def
|
|
/setstrokeadjust where
|
|
{
|
|
pop true setstrokeadjust
|
|
/c % x1 y1 x2 y2 x3 y3 c -
|
|
{
|
|
curveto
|
|
} def
|
|
/C
|
|
/c load def
|
|
/v % x2 y2 x3 y3 v -
|
|
{
|
|
currentpoint 6 2 roll curveto
|
|
} def
|
|
/V
|
|
/v load def
|
|
/y % x1 y1 x2 y2 y -
|
|
{
|
|
2 copy curveto
|
|
} def
|
|
/Y
|
|
/y load def
|
|
/l % x y l -
|
|
{
|
|
lineto
|
|
} def
|
|
/L
|
|
/l load def
|
|
/m % x y m -
|
|
{
|
|
moveto
|
|
} def
|
|
}
|
|
{%else
|
|
/c
|
|
{
|
|
pl curveto
|
|
} def
|
|
/C
|
|
/c load def
|
|
/v
|
|
{
|
|
currentpoint 6 2 roll pl curveto
|
|
} def
|
|
/V
|
|
/v load def
|
|
/y
|
|
{
|
|
pl 2 copy curveto
|
|
} def
|
|
/Y
|
|
/y load def
|
|
/l
|
|
{
|
|
pl lineto
|
|
} def
|
|
/L
|
|
/l load def
|
|
/m
|
|
{
|
|
pl moveto
|
|
} def
|
|
}ifelse
|
|
% graphic state operators
|
|
/d % array phase d -
|
|
{
|
|
setdash
|
|
} def
|
|
/cf {} def % - cf flatness
|
|
/i % flatness i -
|
|
{
|
|
dup 0 eq
|
|
{
|
|
pop cf
|
|
} if
|
|
setflat
|
|
} def
|
|
/j % linejoin j -
|
|
{
|
|
setlinejoin
|
|
} def
|
|
/J % linecap J -
|
|
{
|
|
setlinecap
|
|
} def
|
|
/M % miterlimit M -
|
|
{
|
|
setmiterlimit
|
|
} def
|
|
/w % linewidth w -
|
|
{
|
|
setlinewidth
|
|
} def
|
|
% path painting operators
|
|
/H % - H -
|
|
{} def
|
|
/h % - h -
|
|
{
|
|
closepath
|
|
} def
|
|
/N % - N -
|
|
{
|
|
_pola 0 eq
|
|
{
|
|
_doClip 1 eq {clip /_doClip 0 ddef} if
|
|
newpath
|
|
}
|
|
{
|
|
/CRender {N} ddef
|
|
}ifelse
|
|
} def
|
|
/n % - n -
|
|
{N} def
|
|
/F % - F -
|
|
{
|
|
_pola 0 eq
|
|
{
|
|
_doClip 1 eq
|
|
{
|
|
gsave _pf grestore clip newpath /_lp /none ddef _fc
|
|
/_doClip 0 ddef
|
|
}
|
|
{
|
|
_pf
|
|
}ifelse
|
|
}
|
|
{
|
|
/CRender {F} ddef
|
|
}ifelse
|
|
} def
|
|
/f % - f -
|
|
{
|
|
closepath
|
|
F
|
|
} def
|
|
/S % - S -
|
|
{
|
|
_pola 0 eq
|
|
{
|
|
_doClip 1 eq
|
|
{
|
|
gsave _ps grestore clip newpath /_lp /none ddef _sc
|
|
/_doClip 0 ddef
|
|
}
|
|
{
|
|
_ps
|
|
}ifelse
|
|
}
|
|
{
|
|
/CRender {S} ddef
|
|
}ifelse
|
|
} def
|
|
/s % - s -
|
|
{
|
|
closepath
|
|
S
|
|
} def
|
|
/B % - B -
|
|
{
|
|
_pola 0 eq
|
|
{
|
|
_doClip 1 eq % F clears _doClip
|
|
gsave F grestore
|
|
{
|
|
gsave S grestore clip newpath /_lp /none ddef _sc
|
|
/_doClip 0 ddef
|
|
}
|
|
{
|
|
S
|
|
}ifelse
|
|
}
|
|
{
|
|
/CRender {B} ddef
|
|
}ifelse
|
|
} def
|
|
/b % - b -
|
|
{
|
|
closepath
|
|
B
|
|
} def
|
|
/W % - W -
|
|
{
|
|
/_doClip 1 ddef
|
|
} def
|
|
/* % - [string] * -
|
|
{
|
|
count 0 ne
|
|
{
|
|
dup type (stringtype) eq {pop} if
|
|
} if
|
|
_pola 0 eq {newpath} if
|
|
} def
|
|
% group operators
|
|
/u % - u -
|
|
{} def
|
|
/U % - U -
|
|
{} def
|
|
/q % - q -
|
|
{
|
|
_pola 0 eq {gsave} if
|
|
} def
|
|
/Q % - Q -
|
|
{
|
|
_pola 0 eq {grestore} if
|
|
} def
|
|
/*u % - *u -
|
|
{
|
|
_pola 1 add /_pola exch ddef
|
|
} def
|
|
/*U % - *U -
|
|
{
|
|
_pola 1 sub /_pola exch ddef
|
|
_pola 0 eq {CRender} if
|
|
} def
|
|
/D % polarized D -
|
|
{pop} def
|
|
/*w % - *w -
|
|
{} def
|
|
/*W % - *W -
|
|
{} def
|
|
% place operators
|
|
/` % matrix llx lly urx ury string ` -
|
|
{
|
|
/_i save ddef
|
|
6 1 roll 4 npop
|
|
concat pop
|
|
userdict begin
|
|
/showpage {} def
|
|
0 setgray
|
|
0 setlinecap
|
|
1 setlinewidth
|
|
0 setlinejoin
|
|
10 setmiterlimit
|
|
[] 0 setdash
|
|
newpath
|
|
0 setgray
|
|
false setoverprint
|
|
} def
|
|
/~ % - ~ -
|
|
{
|
|
end
|
|
_i restore
|
|
} def
|
|
% color operators
|
|
/O % flag O -
|
|
{
|
|
0 ne
|
|
/_of exch ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/R % flag R -
|
|
{
|
|
0 ne
|
|
/_os exch ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/g % gray g -
|
|
{
|
|
/_gf exch ddef
|
|
/_fc
|
|
{
|
|
_lp /fill ne
|
|
{
|
|
_of setoverprint
|
|
_gf setgray
|
|
/_lp /fill ddef
|
|
} if
|
|
} ddef
|
|
/_pf
|
|
{
|
|
_fc
|
|
fill
|
|
} ddef
|
|
/_psf
|
|
{
|
|
_fc
|
|
ashow
|
|
} ddef
|
|
/_pjsf
|
|
{
|
|
_fc
|
|
awidthshow
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/G % gray G -
|
|
{
|
|
/_gs exch ddef
|
|
/_sc
|
|
{
|
|
_lp /stroke ne
|
|
{
|
|
_os setoverprint
|
|
_gs setgray
|
|
/_lp /stroke ddef
|
|
} if
|
|
} ddef
|
|
/_ps
|
|
{
|
|
_sc
|
|
stroke
|
|
} ddef
|
|
/_pss
|
|
{
|
|
_sc
|
|
ss
|
|
} ddef
|
|
/_pjss
|
|
{
|
|
_sc
|
|
jss
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/k % cyan magenta yellow black k -
|
|
{
|
|
_cf astore pop
|
|
/_fc
|
|
{
|
|
_lp /fill ne
|
|
{
|
|
_of setoverprint
|
|
_cf aload pop setcmykcolor
|
|
/_lp /fill ddef
|
|
} if
|
|
} ddef
|
|
/_pf
|
|
{
|
|
_fc
|
|
fill
|
|
} ddef
|
|
/_psf
|
|
{
|
|
_fc
|
|
ashow
|
|
} ddef
|
|
/_pjsf
|
|
{
|
|
_fc
|
|
awidthshow
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/K % cyan magenta yellow black K -
|
|
{
|
|
_cs astore pop
|
|
/_sc
|
|
{
|
|
_lp /stroke ne
|
|
{
|
|
_os setoverprint
|
|
_cs aload pop setcmykcolor
|
|
/_lp /stroke ddef
|
|
} if
|
|
} ddef
|
|
/_ps
|
|
{
|
|
_sc
|
|
stroke
|
|
} ddef
|
|
/_pss
|
|
{
|
|
_sc
|
|
ss
|
|
} ddef
|
|
/_pjss
|
|
{
|
|
_sc
|
|
jss
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/x % cyan magenta yellow black name gray x -
|
|
{
|
|
/_gf exch ddef
|
|
findcmykcustomcolor
|
|
/_if exch ddef
|
|
/_fc
|
|
{
|
|
_lp /fill ne
|
|
{
|
|
_of setoverprint
|
|
_if _gf 1 exch sub setcustomcolor
|
|
/_lp /fill ddef
|
|
} if
|
|
} ddef
|
|
/_pf
|
|
{
|
|
_fc
|
|
fill
|
|
} ddef
|
|
/_psf
|
|
{
|
|
_fc
|
|
ashow
|
|
} ddef
|
|
/_pjsf
|
|
{
|
|
_fc
|
|
awidthshow
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
/X % cyan magenta yellow black name gray X -
|
|
{
|
|
/_gs exch ddef
|
|
findcmykcustomcolor
|
|
/_is exch ddef
|
|
/_sc
|
|
{
|
|
_lp /stroke ne
|
|
{
|
|
_os setoverprint
|
|
_is _gs 1 exch sub setcustomcolor
|
|
/_lp /stroke ddef
|
|
} if
|
|
} ddef
|
|
/_ps
|
|
{
|
|
_sc
|
|
stroke
|
|
} ddef
|
|
/_pss
|
|
{
|
|
_sc
|
|
ss
|
|
} ddef
|
|
/_pjss
|
|
{
|
|
_sc
|
|
jss
|
|
} ddef
|
|
/_lp /none ddef
|
|
} def
|
|
% locked object operator
|
|
/A % value A -
|
|
{
|
|
pop
|
|
} def
|
|
currentdict readonly pop end
|
|
setpacking
|
|
% annotate page operator
|
|
/annotatepage
|
|
{
|
|
} def
|
|
%%EndResource
|
|
%%EndProlog
|
|
%%BeginSetup
|
|
%%IncludeFont: Helvetica
|
|
Adobe_cmykcolor /initialize get exec
|
|
Adobe_cshow /initialize get exec
|
|
Adobe_customcolor /initialize get exec
|
|
Adobe_typography_AI3 /initialize get exec
|
|
Adobe_IllustratorA_AI3 /initialize get exec
|
|
[
|
|
39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
|
|
/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute
|
|
/egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde
|
|
/oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex
|
|
/udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
|
|
/registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash
|
|
/.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef
|
|
/.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash
|
|
/questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef
|
|
/guillemotleft/guillemotright/ellipsis/.notdef/Agrave/Atilde/Otilde/OE/oe
|
|
/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide
|
|
/.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright
|
|
/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
|
|
/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex
|
|
/Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex
|
|
/Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla
|
|
/hungarumlaut/ogonek/caron
|
|
TE
|
|
%AI3_BeginEncoding: _Helvetica Helvetica
|
|
[/_Helvetica/Helvetica 0 0 1 TZ
|
|
%AI3_EndEncoding TrueType
|
|
%%EndSetup
|
|
0 A
|
|
0 i 0 J 0 j 1 w 4 M []0 d
|
|
%AI3_Note:
|
|
0 D
|
|
540 254 m
|
|
540 -1042 L
|
|
(N) *
|
|
36 254 m
|
|
36 -1042 L
|
|
(N) *
|
|
108 254 m
|
|
108 -1042 L
|
|
(N) *
|
|
180 254 m
|
|
180 -1042 L
|
|
(N) *
|
|
324 254 m
|
|
324 -1042 L
|
|
(N) *
|
|
252 254 m
|
|
252 -1042 L
|
|
(N) *
|
|
396 254 m
|
|
396 -1042 L
|
|
(N) *
|
|
468 254 m
|
|
468 -1042 L
|
|
(N) *
|
|
0 To
|
|
0.8552 0 0 0.8552 97.5762 -29.3903 0 Tp
|
|
TP
|
|
-22.3535 0 Td
|
|
0 Tr
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
/_Helvetica 9.3543 Tf
|
|
0 Ts
|
|
100 Tz
|
|
0 Tt
|
|
0 TA
|
|
0 0 5 TC
|
|
100 100 200 TW
|
|
0 0 0 Ti
|
|
1 Ta
|
|
0 Tq
|
|
0 0 Tl
|
|
0 Tc
|
|
0 Tw
|
|
(OS Begins) Tx
|
|
(\r) TX
|
|
-2.6001 -11.3543 Td
|
|
(Responding) Tx
|
|
(\r) TX
|
|
0.7856 -11.3543 Td
|
|
(To Interrupt) Tx
|
|
(\r) TX
|
|
TO
|
|
0 To
|
|
0.8552 0 0 0.8552 126.6538 -91.4008 0 Tp
|
|
TP
|
|
-11.6952 0 Td
|
|
0 Tr
|
|
(Mode) Tx
|
|
(\r) TX
|
|
-2.0771 -11.3543 Td
|
|
(Switch) Tx
|
|
(\r) TX
|
|
TO
|
|
0 To
|
|
0.8552 0 0 0.8552 190.368 -91.4008 0 Tp
|
|
TP
|
|
-26.2473 0 Td
|
|
0 Tr
|
|
(Kernel-Level) Tx
|
|
(\r) TX
|
|
-8.8347 -11.3543 Td
|
|
(Interrupt Handler) Tx
|
|
(\r) TX
|
|
-2.6001 -11.3543 Td
|
|
(\(unblocks process) Tx
|
|
(\r) TX
|
|
4.6783 -11.3543 Td
|
|
(or sends signal\)) Tx
|
|
(\r) TX
|
|
TO
|
|
0 To
|
|
0.8552 0 0 0.8552 405.457 -29.3903 0 Tp
|
|
TP
|
|
-6.7577 0 Td
|
|
0 Tr
|
|
(OS) Tx
|
|
(\r) TX
|
|
-14.2964 -11.3543 Td
|
|
(Response) Tx
|
|
(\r) TX
|
|
1.0448 -11.3543 Td
|
|
(Complete) Tx
|
|
(\r) TX
|
|
TO
|
|
0 R
|
|
0 G
|
|
1 D
|
|
36.8552 -79.8552 m
|
|
467.0332 -79.8552 l
|
|
S
|
|
u
|
|
0 O
|
|
0 g
|
|
0 D
|
|
460.2919 -79.9154 m
|
|
458.8279 -77.6304 L
|
|
458.91 -77.5757 L
|
|
462.8369 -79.1355 L
|
|
464.2052 -79.4365 465.5734 -79.7376 466.9417 -80.0386 c
|
|
465.5734 -80.3396 464.2052 -80.6406 462.8369 -80.9416 c
|
|
458.91 -82.5014 L
|
|
458.8279 -82.4604 L
|
|
460.2919 -80.1617 L
|
|
460.2919 -79.9154 L
|
|
f
|
|
U
|
|
u
|
|
0 R
|
|
0 G
|
|
1.7104 w
|
|
159.1523 -72.1582 m
|
|
159.1523 -79.8552 l
|
|
159.1523 -87.5522 l
|
|
S
|
|
U
|
|
u
|
|
220.7285 -72.1582 m
|
|
220.7285 -79.8552 l
|
|
220.7285 -87.5522 l
|
|
S
|
|
U
|
|
u
|
|
282.3047 -72.1582 m
|
|
282.3047 -79.8552 l
|
|
282.3047 -87.5522 l
|
|
S
|
|
U
|
|
u
|
|
343.8809 -72.1582 m
|
|
343.8809 -79.8552 l
|
|
343.8809 -87.5522 l
|
|
S
|
|
U
|
|
u
|
|
0 O
|
|
0 g
|
|
0.8552 w
|
|
98.3698 -65.8587 m
|
|
100.5453 -65.8587 L
|
|
97.5762 -68.8552 L
|
|
94.5934 -65.8587 L
|
|
96.7826 -65.8587 L
|
|
98.3698 -65.8587 L
|
|
f
|
|
U
|
|
u
|
|
406.2506 -65.8587 m
|
|
408.4262 -65.8587 L
|
|
405.457 -68.8552 L
|
|
402.4742 -65.8587 L
|
|
404.6634 -65.8587 L
|
|
406.2506 -65.8587 L
|
|
f
|
|
U
|
|
0 To
|
|
0.8552 0 0 0.8552 251.5166 -91.4008 0 Tp
|
|
TP
|
|
-18.1913 0 Td
|
|
0 Tr
|
|
(Dispatch) Tx
|
|
(\r) TX
|
|
TO
|
|
0 To
|
|
0.8552 0 0 0.8552 310.9547 -91.4008 0 Tp
|
|
TP
|
|
-31.1859 0 Td
|
|
0 Tr
|
|
(Context Switch) Tx
|
|
(\r) TX
|
|
6.4973 -11.3543 Td
|
|
(\(may not be) Tx
|
|
(\r) TX
|
|
5.9812 -11.3543 Td
|
|
(required\)) Tx
|
|
(\r) TX
|
|
TO
|
|
0 To
|
|
0.8552 0 0 0.8552 373.3861 -91.4008 0 Tp
|
|
TP
|
|
-11.6952 0 Td
|
|
0 Tr
|
|
(Mode) Tx
|
|
(\r) TX
|
|
-2.0771 -11.3543 Td
|
|
(Switch) Tx
|
|
(\r) TX
|
|
TO
|
|
0 To
|
|
0.8552 0 0 0.8552 251.9442 -166.6605 0 Tp
|
|
TP
|
|
-123.9639 0 Td
|
|
0 Tr
|
|
(Figure 3: Components of Software Interrupt Response Time) Tx
|
|
(\r) TX
|
|
TO
|
|
0 To
|
|
0.8552 0 0 0.8552 468.0166 -76.9008 0 Tp
|
|
TP
|
|
-1.6243 0 Td
|
|
0 Tr
|
|
/_Helvetica 11.6929 Tf
|
|
(t) Tx
|
|
(\r) TX
|
|
TO
|
|
u
|
|
0 R
|
|
0 G
|
|
1.7104 w
|
|
97.6523 -72.1582 m
|
|
97.6523 -79.8552 l
|
|
97.6523 -87.5522 l
|
|
S
|
|
U
|
|
u
|
|
405.3809 -72.1582 m
|
|
405.3809 -79.8552 l
|
|
405.3809 -87.5522 l
|
|
S
|
|
U
|
|
u
|
|
1 w
|
|
97.6523 -53.1582 m
|
|
97.6523 -60.8552 l
|
|
97.6523 -68.5522 l
|
|
S
|
|
U
|
|
u
|
|
405.3809 -52.6582 m
|
|
405.3809 -60.3552 l
|
|
405.3809 -68.0522 l
|
|
S
|
|
U
|
|
%%PageTrailer
|
|
gsave annotatepage grestore showpage
|
|
%%Trailer
|
|
Adobe_IllustratorA_AI3 /terminate get exec
|
|
Adobe_typography_AI3 /terminate get exec
|
|
Adobe_customcolor /terminate get exec
|
|
Adobe_cshow /terminate get exec
|
|
Adobe_cmykcolor /terminate get exec
|
|
Adobe_packedarray /terminate get exec
|
|
%%EOF
|
|
%%EndDocument
|
|
FMENDEPSF
|
|
72 89.3 558 687.33 C
|
|
0 0 612 792 C
|
|
191 100 480 121 R
|
|
7 X
|
|
0 K
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "9" 10
|
|
%%Page: "10" 10
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Con\336guring For Real-T) 189 739.85 T
|
|
(ime Operation) 286.7 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(10) 54 60.96 T
|
|
0 9 Q
|
|
( of) 65.11 60.96 T
|
|
0 10 Q
|
|
( 33) 76.1 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
54 672.33 540 675.33 C
|
|
189 674.48 540 674.48 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
54 674.48 180 674.48 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 12 Q
|
|
0 X
|
|
0 K
|
|
(3.0) 189 679.33 T
|
|
( Con\336guring For Real-T) 205.67 679.33 T
|
|
(ime Operation) 339.39 679.33 T
|
|
1 10 Q
|
|
-0.01 (The steps required to establish a set of real-time processors with deterministic response) 189 657.66 P
|
|
(to interrupts are outlined below) 189 645.66 T
|
|
(. A detailed description of each step is provided in the) 313.82 645.66 T
|
|
(sections that follow) 189 633.66 T
|
|
(.) 266.64 633.66 T
|
|
0 9 Q
|
|
(1.) 189 615.66 T
|
|
1 10 Q
|
|
(Direct interrupts not related to real-time processes away from real-time processors.) 202.74 615.66 T
|
|
(Direct real-time interrupts to the real-time processors.) 202.74 603.66 T
|
|
0 9 Q
|
|
(2.) 189 588.66 T
|
|
1 10 Q
|
|
(Restrict each real-time processor so that all processes not explicitly assigned to it) 202.74 588.66 T
|
|
(will be run on a non-real-time processor) 202.74 576.66 T
|
|
(.) 362.63 576.66 T
|
|
0 9 Q
|
|
(3.) 189 561.66 T
|
|
1 10 Q
|
|
(Lock real-time processes onto real-time processors.) 202.74 561.66 T
|
|
0 9 Q
|
|
(4.) 189 546.66 T
|
|
1 10 Q
|
|
(Allocate and lock physical memory to all virtual addresses used by real-time pro-) 202.74 546.66 T
|
|
(cesses.) 202.74 534.66 T
|
|
0 9 Q
|
|
(5.) 189 519.66 T
|
|
1 10 Q
|
|
-0.03 (Isolate the real-time processors from interprocessor interrupts used in a multiproces-) 202.74 519.66 P
|
|
(sor system.) 202.74 507.66 T
|
|
0 9 Q
|
|
(6.) 189 492.66 T
|
|
1 10 Q
|
|
(Exempt real-time processors from system clock interrupts and UNIX timesharing) 202.74 492.66 T
|
|
(scheduler activity) 202.74 480.66 T
|
|
(.) 272.88 480.66 T
|
|
(Once these steps are complete, the total response time to an interrupt directed to a real-) 189 456.66 T
|
|
(time processor will be less than 200) 189 444.66 T
|
|
3 F
|
|
(m) 334.74 444.66 T
|
|
1 F
|
|
(s, from the time the hardware interrupt occurs) 340.5 444.66 T
|
|
(until a user process begins executing.) 189 432.66 T
|
|
(This timing assumes that the interrupt is initiated by a VME device, and that no other) 189 408.66 T
|
|
(VME interrupts of the same level are outstanding at the time the interrupt occurs. An) 189 396.66 T
|
|
(interrupt handler speci\336c to that interrupt will unblock a user process that is sleeping) 189 384.66 T
|
|
(awaiting the interrupt. The guaranteed timing assumes that another user process is exe-) 189 372.66 T
|
|
(cuting at the time the interrupt occurs, so a context switch is necessary) 189 360.66 T
|
|
(.) 470.1 360.66 T
|
|
(An additional step is required to ensure that the processes assigned to real-time proces-) 189 336.66 T
|
|
-0.25 (sors execute in the desired order) 189 324.66 P
|
|
-0.25 (. The user must assign a priority in the real-time band to) 316.24 324.66 P
|
|
(each process. All real-time priorities \050i.e. priorities in the real-time band\051 are non-) 189 312.66 T
|
|
(degrading.) 189 300.66 T
|
|
(When the REACT/pro frame scheduler is used to schedule processes, step 2 - 6 listed) 189 276.66 T
|
|
(above are invoked automatically) 189 264.66 T
|
|
(. In this case, the only other explicit user action) 318.53 264.66 T
|
|
(required to con\336gure for real-time operation is to direct interrupts properly) 189 252.66 T
|
|
(.) 487.02 252.66 T
|
|
0 F
|
|
(3.1) 166.11 222.66 T
|
|
(Redirecting Interrupts) 189 222.66 T
|
|
1 F
|
|
(Mapping of hardware interrupts to processors is controlled by system software. The) 189 206.66 T
|
|
-0.13 (user has full control over the assignment of VME interrupts to processors. The user can-) 189 194.66 P
|
|
(not speci\336cally control the direction of other types of interrupts to processors, but he) 189 182.66 T
|
|
(can prevent the system from assigning any of these interrupts to real-time processors.) 189 170.66 T
|
|
(Controlling the mapping of interrupts to processors is done by editing the \336le) 189 146.66 T
|
|
5 F
|
|
(/var/sys-) 500.21 146.66 T
|
|
-0.14 (gen/system) 189 134.66 P
|
|
1 F
|
|
-0.14 (, then running) 232.86 134.66 P
|
|
5 F
|
|
-0.14 (autocon\336g\0501M\051) 290.73 134.66 P
|
|
1 F
|
|
-0.14 (or) 355.27 134.66 P
|
|
5 F
|
|
-0.14 ( lboot\0501M\051) 363.6 134.66 P
|
|
1 F
|
|
-0.14 (. Non-real-time interrupts should) 406.48 134.66 P
|
|
(be directed away from the real-time processors \050using NOINTR directive\051, and real-) 189 122.66 T
|
|
(time interrupts should be directed to real-time processor \050using IPL directive\051. VME) 189 110.66 T
|
|
-0.23 (interrupts are controllable by VME interrupt level \050IRQn\051. That is, all interrupts at a par-) 189 98.66 P
|
|
FMENDPAGE
|
|
%%EndPage: "10" 11
|
|
%%Page: "11" 11
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Con\336guring For Real-T) 207 739.85 T
|
|
(ime Operation) 304.7 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(1) 522.84 60.96 T
|
|
(1) 527.85 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
1 F
|
|
(ticular IRQ level on the VME bus will be directed to the same processor) 207 680.66 T
|
|
(. In systems) 495.41 680.66 T
|
|
(with multiple VME buses, the mapping of IRQ levels to processors cannot be speci\336ed) 207 668.66 T
|
|
(by bus. This means, for example, that IRQ7 for all VME buses will be directed to the) 207 656.66 T
|
|
(same processor) 207 644.66 T
|
|
(.) 267.79 644.66 T
|
|
0 F
|
|
(3.2) 184.11 614.66 T
|
|
(Assigning Processes T) 207 614.66 T
|
|
(o Processors) 316.24 614.66 T
|
|
1 F
|
|
-0.1 (The POWERpath-2 hardware architecture is fully symmetric, meaning that there are no) 207 598.66 P
|
|
(software activities which can only run on a speci\336c processor) 207 586.66 T
|
|
(. If desired, processes can) 452.1 586.66 T
|
|
-0.31 (be allowed to migrate freely among processors. In its default \050non-real-time\051 state, IRIX) 207 574.66 P
|
|
(optimizes utilization by assigning the highest priority ready-to-run process to the \336rst) 207 562.66 T
|
|
(available processor \050subject to some modi\336cation due to cache af) 207 550.66 T
|
|
(\336nity\051. Other schedul-) 467.46 550.66 T
|
|
(ing modes are available, however) 207 538.66 T
|
|
(, enabling the user to explicitly control assignment of) 340.66 538.66 T
|
|
(processes to processors.) 207 526.66 T
|
|
(In a real-time environment, the user should designate one or more processors for run-) 207 502.66 T
|
|
(ning real-time processes, lock real-time processes onto these processors, and restrict) 207 490.66 T
|
|
(these processors from running any other processes. This can be done using shell com-) 207 478.66 T
|
|
(mands, or more typically) 207 466.66 T
|
|
(, using system calls.) 306.29 466.66 T
|
|
-0.18 (The) 207 442.66 P
|
|
5 F
|
|
-0.18 (sysmp\0502\051) 224.86 442.66 P
|
|
1 F
|
|
-0.18 ( command MP_MUSTRUN speci\336es that a process must run on a speci\336c) 260.94 442.66 P
|
|
-0.22 (processor) 207 430.66 P
|
|
-0.22 (. Its shell command equivalent is) 244.75 430.66 P
|
|
5 F
|
|
-0.22 (mpadmin\0501\051) 377.51 430.66 P
|
|
1 F
|
|
-0.22 (. The locked process will always) 426.37 430.66 P
|
|
(run on the speci\336ed processor) 207 418.66 T
|
|
(, even when kernel code is executing on behalf of the pro-) 325.95 418.66 T
|
|
(cess. An exception to this can occur with drivers which are not semaphored. If the pro-) 207 406.66 T
|
|
(cess calls a non-semaphored driver that includes an interrupt handler for an interrupt) 207 394.66 T
|
|
(directed to another processor) 207 382.66 T
|
|
(, however) 322.34 382.66 T
|
|
(, the interrupt handler will execute on the other) 361.35 382.66 T
|
|
(processor) 207 370.66 T
|
|
(. This temporary override of MP_MUSTRUN is transparent to the user) 244.75 370.66 T
|
|
(.) 528.17 370.66 T
|
|
(Threads created using) 207 346.66 T
|
|
5 F
|
|
(spr) 297.2 346.66 T
|
|
(oc\0502\051) 309.6 346.66 T
|
|
1 F
|
|
( will inherit their parent\325) 330.69 346.66 T
|
|
(s processor assignment. In the) 428.41 346.66 T
|
|
-0.36 (case where threads are created prior to calling) 207 334.66 P
|
|
5 F
|
|
-0.36 (sysmp\0502\051) 390.08 334.66 P
|
|
1 F
|
|
-0.36 (, each thread must be assigned to) 426.16 334.66 P
|
|
(a processor individually) 207 322.66 T
|
|
(.) 302.4 322.66 T
|
|
-0.32 (The) 207 298.66 P
|
|
5 F
|
|
-0.32 (sysmp\0502\051) 224.72 298.66 P
|
|
1 F
|
|
-0.32 ( command MP_RESTRICT restricts a processor to running only processes) 260.8 298.66 P
|
|
(assigned to it using) 207 286.66 T
|
|
5 F
|
|
(sysmp\0502\051) 286.41 286.66 T
|
|
1 F
|
|
( MP_MUSTRUN, or its shell command equivalent,) 322.49 286.66 T
|
|
5 F
|
|
-0.03 (runon\0501\051) 207 274.66 P
|
|
1 F
|
|
-0.03 (. An exception to this restriction are interrupt handlers of interrupts directed to) 242.53 274.66 P
|
|
(that processor) 207 262.66 T
|
|
(. T) 262.24 262.66 T
|
|
(o avoid having an interrupt handler run on a processor) 272.64 262.66 T
|
|
(, the interrupt) 489.02 262.66 T
|
|
(should be directed to a dif) 207 250.66 T
|
|
(ferent processor using NOINTR. MP_RESTRICT requires) 310.91 250.66 T
|
|
(superuser privileges.) 207 238.66 T
|
|
0 F
|
|
(3.3) 184.11 208.66 T
|
|
(Locking Processes Into Memory) 207 208.66 T
|
|
1 F
|
|
(In a virtual memory system, any memory reference can potentially cause a page fault.) 207 192.66 T
|
|
(The time required to bring the data being referenced from disk into physical memory) 207 180.66 T
|
|
(will destroy real-time behavior) 207 168.66 T
|
|
(. IRIX with REACT enables users to lock processes into) 329.97 168.66 T
|
|
(memory) 207 156.66 T
|
|
(, ensuring that real-time processes will never incur a page fault.) 239.66 156.66 T
|
|
(IRIX with REACT provides the ability to lock / unlock a speci\336ed range of addresses) 207 132.66 T
|
|
(into physical memory using) 207 120.66 T
|
|
5 F
|
|
(mpin\0502\051) 320.83 120.66 T
|
|
1 F
|
|
( and) 352.47 120.66 T
|
|
5 F
|
|
(munpin\0502\051) 371.9 120.66 T
|
|
1 F
|
|
(. When called,) 413.54 120.66 T
|
|
5 F
|
|
(mpin\0502\051) 473.76 120.66 T
|
|
1 F
|
|
( causes the) 505.41 120.66 T
|
|
-0.11 (kernel to allocate physical memory to the speci\336ed address range and locks those pages) 207 108.66 P
|
|
(down before returning to the user program. The call) 207 96.66 T
|
|
5 F
|
|
(munpin\0502\051) 416.83 96.66 T
|
|
1 F
|
|
( undoes any previous) 458.47 96.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "11" 12
|
|
%%Page: "12" 12
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Con\336guring For Real-T) 189 739.85 T
|
|
(ime Operation) 286.7 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(12) 54 60.96 T
|
|
0 9 Q
|
|
( of) 65.11 60.96 T
|
|
0 10 Q
|
|
( 33) 76.1 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
1 10 Q
|
|
(locking using) 189 680.66 T
|
|
5 F
|
|
(mpin\0502\051) 245.64 680.66 T
|
|
1 F
|
|
(. Shared memory segments \050see) 277.28 680.66 T
|
|
5 F
|
|
(shmop\0502\051) 406.63 680.66 T
|
|
1 F
|
|
(\051, shared arenas \050see) 444.38 680.66 T
|
|
5 F
|
|
(usinit\0503P\051) 189 668.66 T
|
|
1 F
|
|
(\051, and) 228.98 668.66 T
|
|
5 F
|
|
(mmap\0502\051) 254.23 668.66 T
|
|
1 F
|
|
( \336les must still be individually locked using) 290.31 668.66 T
|
|
5 F
|
|
(mpin\0502\051) 467.46 668.66 T
|
|
1 F
|
|
(.) 499.1 668.66 T
|
|
(UNIX SVR3 provided this capability in a rudimentary fashion, using) 189 644.66 T
|
|
5 F
|
|
(plock\0502\051) 467.44 644.66 T
|
|
1 F
|
|
(, which) 500.74 644.66 T
|
|
(allows text, data, or stack segments to be locked in their entirety) 189 632.66 T
|
|
(. IRIX also supports) 445.12 632.66 T
|
|
5 F
|
|
-0.08 (plock\0502\051) 189 620.66 P
|
|
1 F
|
|
-0.08 (, and has extended its functioning to automatically lock shared library sections.) 222.3 620.66 P
|
|
(In addition, when) 189 608.66 T
|
|
5 F
|
|
(plock\0502\051) 261.73 608.66 T
|
|
1 F
|
|
( is used, any growth of a locked section \050via) 295.03 608.66 T
|
|
5 F
|
|
(sbrk\0502\051) 473.51 608.66 T
|
|
1 F
|
|
(\051 will) 502.38 608.66 T
|
|
(cause the pages to be immediately faulted in and locked down.) 189 596.66 T
|
|
0 F
|
|
(3.4) 166.11 566.66 T
|
|
(Processor Isolation) 189 566.66 T
|
|
0 9 Q
|
|
(3.4.1) 160.01 543.33 T
|
|
(Overview) 189 543.33 T
|
|
1 10 Q
|
|
(The processor isolation feature of IRIX with REACT enables the user to prevent the) 189 530.66 T
|
|
(kernel from sending inter) 189 518.66 T
|
|
(-processor interrupts a real-time processor) 290.11 518.66 T
|
|
(.) 458.31 518.66 T
|
|
-0.14 (In order to maintain the integrity of the shared memory) 189 500.66 P
|
|
-0.14 (, symmetric multiprocessing pro-) 407.73 500.66 P
|
|
-0.13 (gramming environment, IRIX must carry on two system activities that are not visible to) 189 488.66 P
|
|
(user processes. These are instruction cache \337ushes, and T) 189 476.66 T
|
|
(ranslation Look-Aside Buf) 418.46 476.66 T
|
|
(fer) 525.43 476.66 T
|
|
-0.18 (\050TLB\051 \337ushes. Nominally) 189 464.66 P
|
|
-0.18 (, at irregular intervals IRIX will generate inter) 291.55 464.66 P
|
|
-0.18 (-processor inter-) 474.4 464.66 P
|
|
(rupts to all processors to signal them to \337ush their TLB or instruction cache. For iso-) 189 452.66 T
|
|
(lated processors, IRIX will instead set a status bit to indicate that a \337ush is pending.) 189 440.66 T
|
|
(When an isolated processor enters kernel mode, the status bits are tested and any pend-) 189 428.66 T
|
|
(ing \337ushes are carried out. \050A processor enters kernel mode whenever the running pro-) 189 416.66 T
|
|
(cess makes a system call, or when an external interrupt occurs that is directed to that) 189 404.66 T
|
|
-0.08 (processor) 189 392.66 P
|
|
-0.08 (.\051 This ensures that the user) 226.75 392.66 P
|
|
-0.08 (\325) 336.67 392.66 P
|
|
-0.08 (s real-time process will never be preempted by an) 339.44 392.66 P
|
|
(unsolicited interrupt from the kernel, and eliminates the overhead of \336elding an inter) 189 380.66 T
|
|
(-) 527.17 380.66 T
|
|
(processor interrupt.) 189 368.66 T
|
|
-0.34 (Processor isolation is established using either the) 189 344.66 P
|
|
5 F
|
|
-0.34 (sysmp\0502\051) 385.09 344.66 P
|
|
1 F
|
|
-0.34 ( command MP_ISOLA) 421.17 344.66 P
|
|
-0.34 (TE, or) 512.65 344.66 P
|
|
(the) 189 332.66 T
|
|
5 F
|
|
(mpadmin\0501\051) 203.71 332.66 T
|
|
1 F
|
|
( shell command.) 252.57 332.66 T
|
|
0 9 Q
|
|
(3.4.2) 160.01 309.33 T
|
|
(Activities That Override Processor Isolation) 189 309.33 T
|
|
1 10 Q
|
|
-0.15 (All IRIX kernel services are available to a process running on an isolated processor) 189 296.66 P
|
|
-0.15 (, but) 520.03 296.66 P
|
|
(certain system calls will generate inter) 189 284.66 T
|
|
(-processor interrupts that are not blocked by pro-) 342.3 284.66 T
|
|
(cessor isolation. Fielding such an interrupt introduces latency which can cause non-) 189 272.66 T
|
|
(deterministic behavior in processes running on the processor) 189 260.66 T
|
|
(.) 430.78 260.66 T
|
|
(The following system calls will generate interrupts if they are executed by a process) 189 236.66 T
|
|
(running on an isolated processor) 189 224.66 T
|
|
(, or by an) 318.51 224.66 T
|
|
5 F
|
|
(spr) 358.76 224.66 T
|
|
(oc) 371.16 224.66 T
|
|
1 F
|
|
( of such a process running on any pro-) 380.6 224.66 T
|
|
(cessor) 189 212.66 T
|
|
(. These system calls can be used in a real-time application without introducing) 213.43 212.66 T
|
|
(non-determinism provided they are executed in an initialization routine.) 189 200.66 T
|
|
4 11 Q
|
|
(\245) 189 182.66 T
|
|
5 10 Q
|
|
(cachectl\0502\051) 202.74 182.66 T
|
|
1 F
|
|
( system call to mark pages cacheable or uncacheable) 247.7 182.66 T
|
|
4 11 Q
|
|
(\245) 189 167.66 T
|
|
5 10 Q
|
|
(fork\0502\051) 202.74 167.66 T
|
|
1 F
|
|
( system call to create a new process) 230.5 167.66 T
|
|
4 11 Q
|
|
(\245) 189 152.66 T
|
|
1 10 Q
|
|
(sproc\0502\051 system call to create a new share group process) 202.74 152.66 T
|
|
4 11 Q
|
|
(\245) 189 137.66 T
|
|
5 10 Q
|
|
(sbrk\0502\051) 202.74 137.66 T
|
|
1 F
|
|
( system call that releases memory or grows memory past a 4 MB boundary) 231.61 137.66 T
|
|
4 11 Q
|
|
(\245) 189 122.66 T
|
|
5 10 Q
|
|
(mpr) 202.74 122.66 T
|
|
(otect\0502\051) 218.48 122.66 T
|
|
1 F
|
|
( system call to set protection on a portion of memory that is shared) 249.56 122.66 T
|
|
(\050MAP_LOCAL is immune\051) 202.74 110.66 T
|
|
4 11 Q
|
|
(\245) 189 95.66 T
|
|
5 10 Q
|
|
(pr) 202.74 95.66 T
|
|
(ctl\0502\051) 211.26 95.66 T
|
|
1 F
|
|
( system call to acquire information on the current process) 232.91 95.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "12" 13
|
|
%%Page: "13" 13
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Con\336guring For Real-T) 207 739.85 T
|
|
(ime Operation) 304.7 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(13) 522.29 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
1 F
|
|
-0.2 (The following system calls will generate inter) 207 680.66 P
|
|
-0.2 (-processor interrupts to an isolated proces-) 388.83 680.66 P
|
|
(sor if they are called from any processor and passed the) 207 668.66 T
|
|
5 F
|
|
(pid) 431.54 668.66 T
|
|
1 F
|
|
( of a process running on the) 444.31 668.66 T
|
|
(isolated processor) 207 656.66 T
|
|
(.) 278.34 656.66 T
|
|
4 11 Q
|
|
(\245) 207 638.66 T
|
|
5 10 Q
|
|
(pr) 220.74 638.66 T
|
|
(ctl\0502\051) 229.26 638.66 T
|
|
1 F
|
|
( system call to acquire information on a process running on an isolated pro-) 250.91 638.66 T
|
|
(cessor) 220.74 626.66 T
|
|
4 11 Q
|
|
(\245) 207 611.66 T
|
|
1 10 Q
|
|
-0.16 (a write using) 220.74 611.66 P
|
|
5 F
|
|
-0.16 (pr) 274.4 611.66 P
|
|
-0.16 (oc\0504\051) 282.91 611.66 P
|
|
1 F
|
|
-0.16 ( to the address space of a process running on an isolated proces-) 304 611.66 P
|
|
(sor) 220.74 599.66 T
|
|
0 9 Q
|
|
(3.4.3) 178.01 576.33 T
|
|
(Minimizing Memory Management Overhead) 207 576.33 T
|
|
1 10 Q
|
|
-0.16 (A processor on which no process frees any memory page will never be required to \337ush) 207 563.66 P
|
|
(its TLB, even without processor isolation. Accordingly) 207 551.66 T
|
|
(, real-time processes and device) 426.77 551.66 T
|
|
-0.32 (drivers should be written so that memory resources are allocated once and reused, rather) 207 539.66 P
|
|
(than repeatedly allocated and freed.) 207 527.66 T
|
|
0 F
|
|
(3.5) 184.11 497.66 T
|
|
(Controlling Process Scheduling) 207 497.66 T
|
|
1 F
|
|
-0.37 (UNIX typically implements priority aging for processes. The priority of a process that is) 207 481.66 P
|
|
(CPU-bound is lowered gradually as the process runs. This ensures that lower priority) 207 469.66 T
|
|
(processes can eventually run, and is desirable behavior in the environments for which) 207 457.66 T
|
|
(UNIX originally was designed; i.e. interactive users typing on ASCII terminals. In a) 207 445.66 T
|
|
(real-time environment, the user typically wishes to ensure that a process will run imme-) 207 433.66 T
|
|
-0.14 (diately when an event occurs \050e.g. delivery of a timer signal\051. Specifying a high priority) 207 421.66 P
|
|
(with the UNIX) 207 409.66 T
|
|
5 F
|
|
(nice\0502\051) 269.46 409.66 T
|
|
1 F
|
|
( system call is only a partial solution; even \322niced\323 jobs age.) 297.76 409.66 T
|
|
(IRIX with REACT provides \336xed-priority scheduler services which meet the require-) 207 397.66 T
|
|
(ments of a real-time environment.) 207 385.66 T
|
|
0 9 Q
|
|
(3.5.1) 178.01 362.33 T
|
|
(Setting Process Priority) 207 362.33 T
|
|
1 10 Q
|
|
(Under IRIX with REACT) 207 349.66 T
|
|
(, the user can specify a \336xed priority for a process that does) 309.8 349.66 T
|
|
(not decrease over time. Fixed priorities are available in three bands: above normal) 207 337.66 T
|
|
-0.18 (UNIX priorities \050real-time band\051, within the same range as normal UNIX priorities, and) 207 325.66 P
|
|
(below normal UNIX priorities. These bands are appropriate for real-time processes,) 207 313.66 T
|
|
(general purpose processes, and lar) 207 301.66 T
|
|
(ge background processes, respectively) 343.64 301.66 T
|
|
(. Any process) 496.2 301.66 T
|
|
(in the highest priority \050real-time\051 band will always take precedence over any process in) 207 289.66 T
|
|
(either of the other two bands. No process in the lowest priority band will ever run if) 207 277.66 T
|
|
(there are any processes ready to run in either of the two higher priority bands.) 207 265.66 T
|
|
(W) 207 241.66 T
|
|
(ithin the real-time priority band, there are 10 priority levels \05030 - 39\051. If two or more) 216.04 241.66 T
|
|
-0.21 (processes are ready-to-run at the time of a scheduling event, the highest priority process) 207 229.66 P
|
|
(\050lowest priority level\051 will always run. If a high priority process becomes ready to run) 207 217.66 T
|
|
(while a lower priority process is running, the lower priority process will be preempted) 207 205.66 T
|
|
(immediately) 207 193.66 T
|
|
(.) 256.32 193.66 T
|
|
-0.01 (Fixed priorities in the real-time band can be dangerous if misused. If a process with the) 207 169.66 P
|
|
(highest \336xed priority enters an in\336nite loop, then all other processes will be unable to) 207 157.66 T
|
|
(run on that processor) 207 145.66 T
|
|
(. On a uniprocessor) 290.55 145.66 T
|
|
(, a system reset is the only way to regain con-) 367.87 145.66 T
|
|
-0.09 (trol. On a multiprocessor system, it is possible to kill the of) 207 133.66 P
|
|
-0.09 (fending process from a shell) 442.69 133.66 P
|
|
(executing on another processor) 207 121.66 T
|
|
(.) 331.07 121.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "13" 14
|
|
%%Page: "14" 14
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Con\336guring For Real-T) 189 739.85 T
|
|
(ime Operation) 286.7 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(14) 54 60.96 T
|
|
0 9 Q
|
|
( of) 65.11 60.96 T
|
|
0 10 Q
|
|
( 33) 76.1 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
1 10 Q
|
|
(Fixed process priorities are established using the) 189 680.66 T
|
|
5 F
|
|
(schedctl\0502\051) 385.81 680.66 T
|
|
1 F
|
|
( system call. The real-time) 430.22 680.66 T
|
|
(priorities range between 30 and 39, inclusive. The calling process must have superuser) 189 668.66 T
|
|
(privileges to set a \336xed priority above normal UNIX priorities.) 189 656.66 T
|
|
(If a real-time process is waiting for a lock that is held by a lower priority process, the) 189 632.66 T
|
|
(priority of the process that holds the lock will be temporarily raised to that of the real-) 189 620.66 T
|
|
(time process. This avoids a form of priority inversion that would otherwise occur if the) 189 608.66 T
|
|
(low priority process had to wait for a resource held by a process whose priority was) 189 596.66 T
|
|
(above its own, but below that of the real-time process.) 189 584.66 T
|
|
0 9 Q
|
|
(3.5.2) 160.01 561.33 T
|
|
(Disabling The UNIX Scheduler \050Shutting Off Clock Interrupts\051) 189 561.33 T
|
|
1 10 Q
|
|
(When con\336gured as a timesharing system, the UNIX scheduler daemon wakes up on) 189 548.66 T
|
|
(each processor at the beginning of each time slice and determines which process will) 189 536.66 T
|
|
-0.16 (run on that processor during that time slice. The scheduler updates the accounting statis-) 189 524.66 P
|
|
(tics for the running process, decrements its time slice, and performs some other time-) 189 512.66 T
|
|
(sharing accounting.) 189 500.66 T
|
|
(The UNIX scheduler daemon is awakened by a system clock interrupt sourced by a) 189 476.66 T
|
|
-0.34 (hardware timer) 189 464.66 P
|
|
-0.34 (. Each processor has its own hardware timer) 248.88 464.66 P
|
|
-0.34 (. The system clock timers are) 422.44 464.66 P
|
|
(clocked by the processor) 189 452.66 T
|
|
(\325) 288.45 452.66 T
|
|
(s clock signal, and generate an interrupt every 10 ms. The) 291.23 452.66 T
|
|
-0.22 (default time slice is 30 ms, which means that the scheduler is run every third clock inter-) 189 440.66 P
|
|
(rupt. The time slice is a tunable parameter) 189 428.66 T
|
|
(.) 356.66 428.66 T
|
|
-0.12 (In a real-time environment, this periodic system activity may be unnecessary) 189 404.66 P
|
|
-0.12 (, and repre-) 494.45 404.66 P
|
|
(sent undesirable overhead. IRIX with REACT enables the user to shut of) 189 392.66 T
|
|
(f periodic) 480.28 392.66 T
|
|
-0.25 (scheduler activity on an isolated processor using) 189 380.66 P
|
|
5 F
|
|
-0.25 (sysmp\0502\051) 383.54 380.66 P
|
|
1 F
|
|
-0.25 (. \050See the previous section for) 419.62 380.66 P
|
|
-0.13 (a description of processor isolation.\051 The clock must remain enabled on at least one pro-) 189 368.66 P
|
|
(cessor in a multiprocessor system. By default, the clock on processor 0 must remain) 189 356.66 T
|
|
(enabled. This can be modi\336ed using the MP_F) 189 344.66 T
|
|
(ASTCLOCK command in the) 374.82 344.66 T
|
|
5 F
|
|
(sysmp\0502\051) 496.97 344.66 T
|
|
1 F
|
|
(system call.) 189 332.66 T
|
|
(Shutting of) 189 308.66 T
|
|
(f the clock on a processor suspends the action of the scheduler daemon.) 233.53 308.66 T
|
|
-0.2 (Under these circumstances, a running user process will continue to run without interrup-) 189 296.66 P
|
|
(tion until it chooses to yield. The process accounting information usually collected by) 189 284.66 T
|
|
(the scheduler will be lost while the clock inteprocessor interrupt is shut of) 189 272.66 T
|
|
(f.) 484.18 272.66 T
|
|
(Scheduler services remain available on an as-needed basis on a processor that does not) 189 248.66 T
|
|
(receive clock interrupts. That is, if a process blocks or sleeps waiting for completion of) 189 236.66 T
|
|
-0.29 (an I/O system call, the scheduler will be invoked to run the next-highest priority process) 189 224.66 P
|
|
(that is assigned to that processor \050if any\051.) 189 212.66 T
|
|
(If the clock interrupt is not shut of) 189 188.66 T
|
|
(f on a real-time processor) 325.67 188.66 T
|
|
(, that processor will incur a) 427.41 188.66 T
|
|
-0.09 (clock interrupt once per time slice. The clock interrupt handler typically requires 200) 189 176.66 P
|
|
3 F
|
|
-0.09 (m) 527.95 176.66 P
|
|
1 F
|
|
-0.09 (s) 533.7 176.66 P
|
|
(to execute, and user interrupts to the processor are disabled during this time.) 189 164.66 T
|
|
(Unless the REACT/pro frame scheduler is being used \050see next section\051, processors on) 189 140.66 T
|
|
-0.33 (which the clock has been disabled will continue to receive an occasional clock interrupt.) 189 128.66 P
|
|
(This is because it is not possible to completely disable clock interrupts in hardware.) 189 116.66 T
|
|
(Instead, when a processor) 189 104.66 T
|
|
(\325) 292.61 104.66 T
|
|
(s clock interrupt is disabled, the timer is programmed to a) 295.39 104.66 T
|
|
(lar) 189 92.66 T
|
|
(ge value. It continues to generate an interrupt every F0000000 \050Hex\051 ticks. The dura-) 199.36 92.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "14" 15
|
|
%%Page: "15" 15
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Con\336guring For Real-T) 207 739.85 T
|
|
(ime Operation) 304.7 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(15) 522.29 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
1 F
|
|
(tion of this period varies with the speed of the processor being used, and can be calcu-) 207 680.66 T
|
|
(lated by multiplying F0000000 \050Hex\051 times the clock period of the processor) 207 668.66 T
|
|
(. The) 513.75 668.66 T
|
|
(overhead of processing these occasional interrupts is minimized by the clock interrupt) 207 656.66 T
|
|
(handler) 207 644.66 T
|
|
(. Upon being entered, the interrupt handler will determine that clock interrupts) 236.42 644.66 T
|
|
-0.05 (are disabled, and return immediately) 207 632.66 P
|
|
-0.05 (. Handling an interrupt in this way requires the pro-) 352.45 632.66 P
|
|
(cessor to execute in kernel mode for approximately 20 microseconds.) 207 620.66 T
|
|
(When in use, the REACT/pro frame scheduler periodically resets the clock interrupt) 207 596.66 T
|
|
(timer and thus prevents a clock interrupt from ever occuring.) 207 584.66 T
|
|
0 9 Q
|
|
(3.5.3) 178.01 561.33 T
|
|
(Deadline Scheduling) 207 561.33 T
|
|
1 10 Q
|
|
(IRIX with REACT includes a deadline scheduling mode which guarantees that a pro-) 207 548.66 T
|
|
(cess will be given an opportunity to execute for a speci\336c amount of time within a spe-) 207 536.66 T
|
|
-0.29 (ci\336c, recurring period. This capability is useful for applications such as data acquisition,) 207 524.66 P
|
|
-0.21 (which require a \336xed amount of processing on successive frames of data. Media servers) 207 512.66 P
|
|
(which must source frames of data at \336xed intervals also require this capability) 207 500.66 T
|
|
(.) 518.35 500.66 T
|
|
-0.37 (Deadline scheduling is enabled using the system call) 207 476.66 P
|
|
5 F
|
|
-0.37 (schedctl\0502\051) 417.2 476.66 P
|
|
1 F
|
|
-0.37 (, which permits the user) 461.61 476.66 P
|
|
(to set the length of the recurring period, as well as the run time to be allocated to the) 207 464.66 T
|
|
(process in each period. The process is guaranteed to receive its allotment during the) 207 452.66 T
|
|
(period, though exactly when is not speci\336ed.) 207 440.66 T
|
|
0 9 Q
|
|
(3.5.3.1) 170.52 417.33 T
|
|
(Frame Scheduler) 207 417.33 T
|
|
1 10 Q
|
|
(REACT/pro, available as a layered software product for IRIX 5.3 and subsequent) 207 404.66 T
|
|
(releases, includes a frame scheduler that is useful in real-time simulation applications.) 207 392.66 T
|
|
(The frame scheduler is a kernel module that cyclically schedules processes at intervals) 207 380.66 T
|
|
(de\336ned by a regularly-occurring interrupt. When enabled on a processor) 207 368.66 T
|
|
(, the frame) 495.25 368.66 T
|
|
(scheduler replaces all other IRIX scheduling policies on that processor) 207 356.66 T
|
|
(. Frame schedul-) 488.73 356.66 T
|
|
(ers can be enabled on all but one processor in a multiprocessor system; i.e. all but the) 207 344.66 T
|
|
(system processor) 207 332.66 T
|
|
(. Each frame scheduler manages execution of processes only on its) 275.01 332.66 T
|
|
(own processor) 207 320.66 T
|
|
(, but multiple frame schedulers can be synchronized to enable frames on) 264.61 320.66 T
|
|
(separate processors in a system to be synchronized.) 207 308.66 T
|
|
(The frame scheduler uses an incoming interrupt to partition time into a sequence of) 207 284.66 T
|
|
(minor frames. The interrupt source can be the internal timer \050see Section 4.1\051, an exter-) 207 272.66 T
|
|
(nal interrupt \050see Section 4.3\051, an interrupt from one of the VME buses, the vertical) 207 260.66 T
|
|
-0.01 (retrace interrupt in an Onyx graphics system, or an interrupt sent from another user pro-) 207 248.66 P
|
|
(cess. A user) 207 236.66 T
|
|
(-de\336ned number of minor frames comprise a lar) 254.81 236.66 T
|
|
(ger recurring periodic time) 446.43 236.66 T
|
|
(slice, called a major frame. This arrangement is shown in Figure 4.) 207 224.66 T
|
|
(Each minor frame is associated with a queue of processes to be executed within that) 207 200.66 T
|
|
-0.17 (interval of time. The list of processes in the queue is maintained in priority order) 207 188.66 P
|
|
-0.17 (. At the) 526.32 188.66 P
|
|
(beginning of each minor frame, control is passed to the \336rst process in the queue. The) 207 176.66 T
|
|
(remaining processes in the queue are executed when the previous process yields the) 207 164.66 T
|
|
(CPU. Processes are typically enqueued as part of the set-up of the frame scheduler) 207 152.66 T
|
|
(, but) 536.34 152.66 T
|
|
(they also can be added or deleted from a queue dynamically after the frame scheduler) 207 140.66 T
|
|
(has been started.) 207 128.66 T
|
|
-0.06 (The minor / major frame construct enables multiple, related frame rates to be created in) 207 104.66 P
|
|
(the following way) 207 92.66 T
|
|
(. Specify a timer interrupt to start minor frames at the highest desired) 279.08 92.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "15" 16
|
|
%%Page: "16" 16
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Con\336guring For Real-T) 189 739.85 T
|
|
(ime Operation) 286.7 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(16) 54 60.96 T
|
|
0 9 Q
|
|
( of) 65.11 60.96 T
|
|
0 10 Q
|
|
( 33) 76.1 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
1 10 Q
|
|
(rate, and specify the number of minor frames per major frame equal to the ratio of the) 189 680.66 T
|
|
-0.35 (lowest and highest desired rates. Enqueue processes to be run at the highest rate in every) 189 668.66 P
|
|
-0.32 (minor frame, and enqueue processes to be run at the lowest rate in only one minor frame) 189 656.66 P
|
|
(per major frame. Enqueue processes to be run at the middle rate in every other minor) 189 644.66 T
|
|
(frame, and so on.) 189 632.66 T
|
|
-0.34 (Each enqueued process is assigned a) 189 338.35 P
|
|
5 F
|
|
-0.34 (discipline) 335.76 338.35 P
|
|
1 F
|
|
-0.34 (, which speci\336es the process\325 preemption) 374.63 338.35 P
|
|
(behavior within the queue. Nominally) 189 326.35 T
|
|
(, a process that has not been found ready to run) 340.2 326.35 T
|
|
-0.07 (throughout the duration of a minor frame will generate an underrun error) 189 314.35 P
|
|
-0.07 (, and a process) 478.96 314.35 P
|
|
(that has not yielded the CPU by the end of its minor frame will generate an overrun) 189 302.35 T
|
|
(error) 189 290.35 T
|
|
(. Errors result in a signal being sent to the group of processes participating in the) 207.87 290.35 T
|
|
(frame scheduler setup. These errors can be masked by specifying the) 189 278.35 T
|
|
5 F
|
|
(r) 466.55 278.35 T
|
|
(eal-time under-) 470.07 278.35 T
|
|
(runnable) 189 266.35 T
|
|
1 F
|
|
( or) 225.09 266.35 T
|
|
5 F
|
|
(r) 238.41 266.35 T
|
|
(eal-time overrunable) 241.93 266.35 T
|
|
1 F
|
|
( discipline, respectively) 326.04 266.35 T
|
|
(, for the process when it is) 420.04 266.35 T
|
|
(created. A process that is overrunable can also be assigned the) 189 254.35 T
|
|
5 F
|
|
(continue) 440.46 254.35 T
|
|
1 F
|
|
(discipline,) 477.38 254.35 T
|
|
(which speci\336es that if the process that has not yielded the CPU by the end of the minor) 189 242.35 T
|
|
-0.36 (frame, it will be continued from that point in a later minor frame \050on which it is queued\051.) 189 230.35 P
|
|
-0.09 (One or more processes per queue can be assigned the) 189 218.35 P
|
|
5 F
|
|
-0.09 (backgr) 403.51 218.35 P
|
|
-0.09 (ound) 430.89 218.35 P
|
|
1 F
|
|
-0.09 ( discipline. These pro-) 450.88 218.35 P
|
|
-0.01 (cesses must be enqueued last in the queues. Background processes run only when there) 189 206.35 P
|
|
(are spare cycles, and do not generate overrun or underrun errors.) 189 194.35 T
|
|
(Processes controlled by the frame scheduler can perform operations that result in their) 189 170.35 T
|
|
(execution being suspended, such as awaiting completion of an I/O operation or avail-) 189 158.35 T
|
|
(ability of a system resource. When a process suspends, the frame scheduler will start) 189 146.35 T
|
|
-0.11 (execution of the next highest priority process. As soon as the event occurs on which the) 189 134.35 P
|
|
-0.2 (higher process is waiting, the frame scheduler will suspend execution of the lower prior-) 189 122.35 P
|
|
(ity process and resume execution of the higher priority process.) 189 110.35 T
|
|
189 383.01 540 629.33 C
|
|
501.46 533.63 513 530.33 501.46 527.02 501.46 530.33 4 Y
|
|
0 X
|
|
0 K
|
|
V
|
|
207 530.33 501.46 530.33 2 L
|
|
1 H
|
|
2 Z
|
|
N
|
|
225 539.33 225 521.33 2 L
|
|
3 H
|
|
N
|
|
333 539.33 333 521.33 2 L
|
|
N
|
|
441 539.33 441 521.33 2 L
|
|
N
|
|
261 539.33 261 521.33 2 L
|
|
0.5 H
|
|
N
|
|
297 539.33 297 521.33 2 L
|
|
N
|
|
369 539.33 369 521.33 2 L
|
|
N
|
|
405 539.33 405 521.33 2 L
|
|
N
|
|
477 539.33 477 521.33 2 L
|
|
N
|
|
333 602.33 333 539.33 2 L
|
|
1 X
|
|
N
|
|
225 602.33 225 539.33 2 L
|
|
N
|
|
441 602.33 441 539.33 2 L
|
|
N
|
|
261 566.33 261 539.33 2 L
|
|
N
|
|
297 566.33 297 539.33 2 L
|
|
N
|
|
369 566.33 369 539.33 2 L
|
|
N
|
|
236.54 563.02 225 566.33 236.54 569.63 236.54 566.33 4 Y
|
|
0 X
|
|
V
|
|
249.46 569.63 261 566.33 249.46 563.02 249.46 566.33 4 Y
|
|
V
|
|
236.54 566.33 249.46 566.33 2 L
|
|
0 Z
|
|
N
|
|
272.54 563.02 261 566.33 272.54 569.63 272.54 566.33 4 Y
|
|
V
|
|
285.46 569.63 297 566.33 285.46 563.02 285.46 566.33 4 Y
|
|
V
|
|
272.54 566.33 285.46 566.33 2 L
|
|
N
|
|
308.54 563.02 297 566.33 308.54 569.63 308.54 566.33 4 Y
|
|
V
|
|
321.46 569.63 333 566.33 321.46 563.02 321.46 566.33 4 Y
|
|
V
|
|
308.54 566.33 321.46 566.33 2 L
|
|
N
|
|
405 566.33 405 539.33 2 L
|
|
2 Z
|
|
1 X
|
|
N
|
|
344.54 563.02 333 566.33 344.54 569.63 344.54 566.33 4 Y
|
|
0 X
|
|
V
|
|
357.46 569.63 369 566.33 357.46 563.02 357.46 566.33 4 Y
|
|
V
|
|
344.54 566.33 357.46 566.33 2 L
|
|
0 Z
|
|
N
|
|
380.54 563.02 369 566.33 380.54 569.63 380.54 566.33 4 Y
|
|
V
|
|
393.46 569.63 405 566.33 393.46 563.02 393.46 566.33 4 Y
|
|
V
|
|
380.54 566.33 393.46 566.33 2 L
|
|
N
|
|
416.54 563.02 405 566.33 416.54 569.63 416.54 566.33 4 Y
|
|
V
|
|
429.46 569.63 441 566.33 429.46 563.02 429.46 566.33 4 Y
|
|
V
|
|
416.54 566.33 429.46 566.33 2 L
|
|
N
|
|
477 566.33 477 539.33 2 L
|
|
2 Z
|
|
1 X
|
|
N
|
|
452.54 563.02 441 566.33 452.54 569.63 452.54 566.33 4 Y
|
|
0 X
|
|
V
|
|
465.46 569.63 477 566.33 465.46 563.02 465.46 566.33 4 Y
|
|
V
|
|
452.54 566.33 465.46 566.33 2 L
|
|
0 Z
|
|
N
|
|
236.54 599.02 225 602.33 236.54 605.63 236.54 602.33 4 Y
|
|
V
|
|
321.46 605.63 333 602.33 321.46 599.02 321.46 602.33 4 Y
|
|
V
|
|
236.54 602.33 321.46 602.33 2 L
|
|
N
|
|
344.54 599.02 333 602.33 344.54 605.63 344.54 602.33 4 Y
|
|
V
|
|
429.46 605.63 441 602.33 429.46 599.02 429.46 602.33 4 Y
|
|
V
|
|
344.54 602.33 429.46 602.33 2 L
|
|
N
|
|
452.54 599.02 441 602.33 452.54 605.63 452.54 602.33 4 Y
|
|
V
|
|
452.54 602.33 477 602.33 2 L
|
|
2 Z
|
|
N
|
|
234 440.33 252 512.33 R
|
|
N
|
|
234 440.33 234 422.33 2 L
|
|
N
|
|
252 440.33 252 422.33 2 L
|
|
N
|
|
234 458.33 252 458.33 2 L
|
|
N
|
|
234 476.33 252 476.33 2 L
|
|
N
|
|
234 494.33 252 494.33 2 L
|
|
N
|
|
239.69 518.79 243 530.33 246.31 518.79 243 518.79 4 Y
|
|
V
|
|
243 512.33 243 518.79 2 L
|
|
N
|
|
270 440.33 288 512.33 R
|
|
N
|
|
270 440.33 270 422.33 2 L
|
|
N
|
|
288 440.33 288 422.33 2 L
|
|
N
|
|
270 458.33 288 458.33 2 L
|
|
N
|
|
270 476.33 288 476.33 2 L
|
|
N
|
|
270 494.33 288 494.33 2 L
|
|
N
|
|
275.69 518.79 279 530.33 282.31 518.79 279 518.79 4 Y
|
|
V
|
|
279 512.33 279 518.79 2 L
|
|
N
|
|
306 440.33 324 512.33 R
|
|
N
|
|
306 440.33 306 422.33 2 L
|
|
N
|
|
324 440.33 324 422.33 2 L
|
|
N
|
|
306 458.33 324 458.33 2 L
|
|
N
|
|
306 476.33 324 476.33 2 L
|
|
N
|
|
306 494.33 324 494.33 2 L
|
|
N
|
|
311.69 518.79 315 530.33 318.31 518.79 315 518.79 4 Y
|
|
V
|
|
315 512.33 315 518.79 2 L
|
|
N
|
|
1 10 Q
|
|
(Major Frame) 361.54 613.51 T
|
|
(Major Frame) 252 613.51 T
|
|
1 7 Q
|
|
(Minor) 234 575.33 T
|
|
(-0) 251.33 575.33 T
|
|
(Minor) 270 575.33 T
|
|
(-1) 287.33 575.33 T
|
|
(Minor) 306 575.33 T
|
|
(-2) 323.33 575.33 T
|
|
(Minor) 342 575.33 T
|
|
(-0) 359.33 575.33 T
|
|
(Minor) 378 575.33 T
|
|
(-1) 395.33 575.33 T
|
|
(Minor) 414 575.33 T
|
|
(-2) 431.33 575.33 T
|
|
1 8 Q
|
|
(TIME) 495 512.33 T
|
|
(Q0) 234 413.33 T
|
|
(Q1) 270 413.33 T
|
|
(Q3) 306 413.33 T
|
|
329.69 509.79 333 521.33 336.31 509.79 333 509.79 4 Y
|
|
V
|
|
333 509.79 333 503.33 2 L
|
|
N
|
|
473.69 509.79 477 521.33 480.31 509.79 477 509.79 4 Y
|
|
V
|
|
477 509.79 477 503.33 2 L
|
|
N
|
|
437.69 509.79 441 521.33 444.31 509.79 441 509.79 4 Y
|
|
V
|
|
441 509.79 441 503.33 2 L
|
|
N
|
|
401.69 509.79 405 521.33 408.31 509.79 405 509.79 4 Y
|
|
V
|
|
405 509.79 405 503.33 2 L
|
|
N
|
|
365.69 509.79 369 521.33 372.31 509.79 369 509.79 4 Y
|
|
V
|
|
369 509.79 369 503.33 2 L
|
|
N
|
|
293.69 509.79 297 521.33 300.31 509.79 297 509.79 4 Y
|
|
V
|
|
297 509.79 297 503.33 2 L
|
|
N
|
|
257.69 509.79 261 521.33 264.31 509.79 261 509.79 4 Y
|
|
V
|
|
261 509.79 261 503.33 2 L
|
|
N
|
|
221.69 509.79 225 521.33 228.31 509.79 225 509.79 4 Y
|
|
V
|
|
225 509.79 225 503.33 2 L
|
|
N
|
|
(Real-time Event Interrupts) 351 494.33 T
|
|
(Process Queues) 333 449.33 T
|
|
1 10 Q
|
|
(Figure 4: Frame Scheduler Operation) 287.83 389.19 T
|
|
0 0 612 792 C
|
|
FMENDPAGE
|
|
%%EndPage: "16" 17
|
|
%%Page: "17" 17
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Con\336guring For Real-T) 207 739.85 T
|
|
(ime Operation) 304.7 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(17) 522.29 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
1 F
|
|
(A frame scheduler is created by a user) 207 680.66 T
|
|
(-mode program using the) 359.72 680.66 T
|
|
5 F
|
|
(frs_cr) 462.98 680.66 T
|
|
(eate\0503\051) 486.49 680.66 T
|
|
1 F
|
|
( call. This) 514.79 680.66 T
|
|
-0.29 (call speci\336es the CPU that will run the frame scheduler process group, isolates this CPU) 207 668.66 P
|
|
(\050see Section 3.4\051, speci\336es the number of minor frames that will form a major frame,) 207 656.66 T
|
|
(and speci\336es the interrupt source that will drive the scheduler) 207 644.66 T
|
|
(.) 452.11 644.66 T
|
|
-0.17 (The process issuing the) 207 620.66 P
|
|
5 F
|
|
-0.17 (frs_cr) 302.38 620.66 P
|
|
-0.17 (eate) 325.89 620.66 P
|
|
1 F
|
|
-0.17 ( call becomes the) 342.54 620.66 P
|
|
5 F
|
|
-0.17 (master pr) 413.48 620.66 P
|
|
-0.17 (ocess) 451.54 620.66 P
|
|
1 F
|
|
-0.17 (for this frame sched-) 475.52 620.66 P
|
|
(uler) 207 608.66 T
|
|
(. The master process creates all the other processes that are members of the frame) 221.99 608.66 T
|
|
-0.23 (scheduler process group, using) 207 596.66 P
|
|
5 F
|
|
-0.23 ( fork\0502\051) 329.54 596.66 P
|
|
1 F
|
|
-0.23 (or) 361.83 596.66 P
|
|
5 F
|
|
-0.23 (spr) 372.42 596.66 P
|
|
-0.23 (oc\0502\051.) 384.82 596.66 P
|
|
1 F
|
|
-0.23 (The master process assigns each pro-) 410.68 596.66 P
|
|
-0.14 (cess to a minor frame, using) 207 584.66 P
|
|
5 F
|
|
-0.14 (frs_enqueue\0503\051) 321.37 584.66 P
|
|
1 F
|
|
-0.14 (. \050The master process is not queued) 381.87 584.66 P
|
|
3 F
|
|
-0.14 (,) 522.33 584.66 P
|
|
1 F
|
|
-0.14 ( since it) 524.82 584.66 P
|
|
(must run asynchronously in order to respond to signals.\051 A single process may be) 207 572.66 T
|
|
(enqueued on several queues simultaneously; that is, the same process may execute on) 207 560.66 T
|
|
-0.15 (multiple minor frames within the same major frame. After a process is enqueued, it con-) 207 548.66 P
|
|
(nects itself to the frame scheduler using the function) 207 536.66 T
|
|
5 F
|
|
(frs_join\0503\051) 418.79 536.66 T
|
|
1 F
|
|
(.) 461.55 536.66 T
|
|
(After all processes have been enqueued, the master process signals the frame scheduler) 207 518.66 T
|
|
-0.22 (to start activating processes, using) 207 506.66 P
|
|
5 F
|
|
-0.22 (frs_start\0503) 345.26 506.66 P
|
|
1 F
|
|
-0.22 (\051. If all enqueued processes have been con-) 387.47 506.66 P
|
|
(nected to the frame scheduler using) 207 494.66 T
|
|
5 F
|
|
(frs_join\0503\051) 351.33 494.66 T
|
|
1 F
|
|
(, the scheduler enables the event inter-) 394.09 494.66 T
|
|
(rupt, waits for its next occurrence, and starts scheduling the member processes in real-) 207 482.66 T
|
|
(time.) 207 470.66 T
|
|
-0.23 (The master process or any process in the frame scheduler process group may initiate the) 207 452.66 P
|
|
(termination of a frame scheduler using) 207 440.66 T
|
|
5 F
|
|
( frs_destr) 361.61 440.66 T
|
|
(oy\0503\051) 399.27 440.66 T
|
|
1 F
|
|
(. This call disconnects all pro-) 420.36 440.66 T
|
|
(cesses from the frame scheduler and un-isolates the CPU. After disconnection, pro-) 207 428.66 T
|
|
-0.13 (cesses continue execution in normal mode and may not issue any frame scheduler calls.) 207 416.66 P
|
|
-0.03 (Each frame scheduler executes on an isolated processor) 207 392.66 P
|
|
-0.03 (. Multiple frame schedulers exe-) 428.52 392.66 P
|
|
-0.08 (cuting on dif) 207 380.66 P
|
|
-0.08 (ferent CPUs can be synchronized, such that one frame scheduler is de\336ned) 257.75 380.66 P
|
|
(to be a synchronization master and the other frame schedulers are synchronization) 207 368.66 T
|
|
(slaves. In all cases, frame schedulers executing on dif) 207 356.66 T
|
|
(ferent processors will be synchro-) 421.09 356.66 T
|
|
-0.04 (nized if they are using the same interrupt source. For the case of the internal timer inter-) 207 344.66 P
|
|
-0.2 (rupt, synchronization is maintained as a result of hardware synchronization of all timers) 207 332.66 P
|
|
-0.08 (in the system. For other interrupt sources, synchronization is maintained using the inter-) 207 320.66 P
|
|
(rupt multi-cast feature of the POWERpath-2 system bus. When the selected interrupt) 207 308.66 T
|
|
(occurs, it is multicast simultaneously to all processors.) 207 296.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "17" 18
|
|
%%Page: "18" 18
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Other Real-T) 189 739.85 T
|
|
(ime Programming Features) 242.77 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(18) 54 60.96 T
|
|
0 9 Q
|
|
( of) 65.11 60.96 T
|
|
0 10 Q
|
|
( 33) 76.1 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
54 672.33 540 675.33 C
|
|
189 674.48 540 674.48 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
54 674.48 180 674.48 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 12 Q
|
|
0 X
|
|
0 K
|
|
(4.0) 189 679.33 T
|
|
( Other Real-T) 205.67 679.33 T
|
|
(ime Programming Features) 280.76 679.33 T
|
|
1 10 Q
|
|
(This section discusses additional features included in IRIX with REACT that are often) 189 657.66 T
|
|
(useful to real-time users.) 189 645.66 T
|
|
0 F
|
|
(4.1) 166.11 615.66 T
|
|
(T) 189 615.66 T
|
|
(imers) 194.93 615.66 T
|
|
1 F
|
|
-0.2 (IRIX with REACT includes support for Berkeley interval timers \050) 189 599.66 P
|
|
5 F
|
|
-0.2 (itimers) 450.65 599.66 P
|
|
1 F
|
|
-0.2 (\051. These timers) 478.42 599.66 P
|
|
(generate an interrupt at the end of the speci\336ed interval. Hardware support for) 189 587.66 T
|
|
5 F
|
|
(itimers) 503.19 587.66 T
|
|
1 F
|
|
(included in the system enables short intervals to be timed with high accuracy and no) 189 575.66 T
|
|
(increase in system overhead.) 189 563.66 T
|
|
(IRIX with REACT also supports event timers, which are useful for measuring the real) 189 539.66 T
|
|
-0.05 (time between two points in the user) 189 527.66 P
|
|
-0.05 (\325) 331.19 527.66 P
|
|
-0.05 (s code. Three types of event timer facilities are pro-) 333.97 527.66 P
|
|
(vided in IRIX with REACT) 189 515.66 T
|
|
(: UNIX System V timers, BSD4.2 timers, and direct access) 299.55 515.66 T
|
|
(to hardware timers from user code.) 189 503.66 T
|
|
0 9 Q
|
|
(4.1.1) 160.01 480.33 T
|
|
(Interval T) 189 480.33 T
|
|
(imers) 228.8 480.33 T
|
|
1 10 Q
|
|
(BSD4.2 UNIX introduced the) 189 467.66 T
|
|
5 F
|
|
(itimer) 310.86 467.66 T
|
|
1 F
|
|
( facility) 334.74 467.66 T
|
|
(. An) 364.9 467.66 T
|
|
5 F
|
|
(itimer) 384.61 467.66 T
|
|
1 F
|
|
( allows the user to specify both) 408.49 467.66 T
|
|
(an of) 189 455.66 T
|
|
(fset from the current time \050the delay\051 and the recurrence time \050the interval\051. The) 209.08 455.66 T
|
|
(timer will wait until the delay has passed, then begin timing the interval. At the end of) 189 443.66 T
|
|
(the interval, it will \336re, interrupting the processor that set up the) 189 431.66 T
|
|
5 F
|
|
(itimer) 447.17 431.66 T
|
|
1 F
|
|
(. The kernel\325) 470.49 431.66 T
|
|
(s) 521.29 431.66 T
|
|
5 F
|
|
(itimer) 189 419.66 T
|
|
1 F
|
|
( interrupt handler delivers a signal to the process that set it up. As described) 212.88 419.66 T
|
|
(below) 189 407.66 T
|
|
(, three types of) 212.78 407.66 T
|
|
5 F
|
|
(itimers) 274.67 407.66 T
|
|
1 F
|
|
( are provided, each of which delivers a dif) 302.44 407.66 T
|
|
(ferent signal to) 470.73 407.66 T
|
|
(the process. Each user process can utilize up to one) 189 395.66 T
|
|
5 F
|
|
(itimer) 396.34 395.66 T
|
|
1 F
|
|
( of each type.) 420.21 395.66 T
|
|
(The \336rst type is the real-time) 189 371.66 T
|
|
5 F
|
|
(itimer) 307.26 371.66 T
|
|
1 F
|
|
(, which delivers the signal SIGALRM. This timer) 330.73 371.66 T
|
|
-0.27 (measures wall clock time. It can time intervals from 400) 189 359.66 P
|
|
3 F
|
|
-0.27 (m) 414.23 359.66 P
|
|
1 F
|
|
-0.27 (s to 200 hours with resolution) 419.99 359.66 P
|
|
-0.19 (of greater than 1) 189 347.66 P
|
|
3 F
|
|
-0.19 (m) 256.5 347.66 P
|
|
1 F
|
|
-0.19 (s, subject to the restrictions on the) 262.25 347.66 P
|
|
5 F
|
|
-0.19 (fasthz) 399.7 347.66 P
|
|
1 F
|
|
-0.19 ( parameter that are described) 423.02 347.66 P
|
|
(in the following section. The accuracy of the hardware that underlies the) 189 335.66 T
|
|
5 F
|
|
(itimers) 481.27 335.66 T
|
|
1 F
|
|
( is one) 509.03 335.66 T
|
|
(hundred parts per million. \050NOTE: The timer resolution speci\336ed in this paragraph) 189 323.66 T
|
|
(assumes IRIX V) 189 311.66 T
|
|
(ersion 5.2 or later) 253.95 311.66 T
|
|
(.\051) 323.91 311.66 T
|
|
(The second) 189 287.66 T
|
|
5 F
|
|
(itimer) 237.29 287.66 T
|
|
1 F
|
|
( type is a process-virtual-time timer) 261.17 287.66 T
|
|
(, which delivers the signal) 403.17 287.66 T
|
|
(SIGVT) 189 275.66 T
|
|
(ALRM. It runs only when the process is running in user mode.) 217.62 275.66 T
|
|
(The third) 189 251.66 T
|
|
5 F
|
|
(itimer) 228.42 251.66 T
|
|
1 F
|
|
( type is the system-virtual-time timer) 252.29 251.66 T
|
|
(, which delivers the signal SIG-) 399.86 251.66 T
|
|
(PROF) 189 239.66 T
|
|
(. It runs both when the process is in user mode and when the kernel is operating) 213.2 239.66 T
|
|
(on behalf of the user) 189 227.66 T
|
|
(. During all system calls and I/O driver execution, the kernel is) 270.61 227.66 T
|
|
(operating on behalf of a user process. T) 189 215.66 T
|
|
(ime spent executing interrupt handlers is not) 346.85 215.66 T
|
|
(counted as part of system virtual time, since it is not always possible to determine to) 189 203.66 T
|
|
(which process the time should be assigned.) 189 191.66 T
|
|
(The resolution of the process-virtual-time and system-virtual-time) 189 167.66 T
|
|
5 F
|
|
(itimers) 455.76 167.66 T
|
|
1 F
|
|
( is 10 ms.) 483.53 167.66 T
|
|
(T) 189 155.66 T
|
|
(imers other than) 194.76 155.66 T
|
|
5 F
|
|
(itimers) 262.21 155.66 T
|
|
1 F
|
|
( \050such as) 289.98 155.66 T
|
|
5 F
|
|
(stimer) 327.44 155.66 T
|
|
1 F
|
|
( or) 352.43 155.66 T
|
|
5 F
|
|
(utimer) 365.75 155.66 T
|
|
1 F
|
|
(\051 do not measure real-time, and) 391.85 155.66 T
|
|
(should not be used for real-time applications.) 189 143.66 T
|
|
0 9 Q
|
|
(4.1.2) 160.01 120.33 T
|
|
(Event T) 189 120.33 T
|
|
(imers) 221.3 120.33 T
|
|
1 10 Q
|
|
(Event timers are typically used to measure the elapsed time between events. By getting) 189 107.66 T
|
|
-0.28 (the time before and after an operation and then subtracting, the application can calculate) 189 95.66 P
|
|
FMENDPAGE
|
|
%%EndPage: "18" 19
|
|
%%Page: "19" 19
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Other Real-T) 207 739.85 T
|
|
(ime Programming Features) 260.77 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(19) 522.29 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
1 F
|
|
-0.38 (elapsed time. For timing events, IRIX with REACT supports direct user code access to a) 207 680.66 P
|
|
-0.05 (free-running hardware timer) 207 668.66 P
|
|
-0.05 (, and two syntaxes of UNIX system calls. The free-running) 319.74 668.66 P
|
|
(hardware timer provides the highest resolution and accuracy) 207 656.66 T
|
|
(, and is recommended for) 447.55 656.66 T
|
|
(use in real-time applications.) 207 644.66 T
|
|
-0.01 (Each processor has a free-running timer which consists of a 52-bit counter clocked con-) 207 620.66 P
|
|
-0.42 (tinuously by the POWERpath-2 bus clock. The SGI_QUER) 207 608.66 P
|
|
-0.42 (Y_CYCLECNTR command) 442.8 608.66 P
|
|
(of) 207 596.66 T
|
|
5 F
|
|
(syssgi\0502\051) 217.82 596.66 T
|
|
1 F
|
|
( returns the address of the counter and the period of its clock signal. \050In the) 253.35 596.66 T
|
|
(current generation of multiprocessor systems, the clock period is 21 nS, though this) 207 584.66 T
|
|
(hardware dependency should not be programmed into applications.\051 After querying for) 207 572.66 T
|
|
-0.2 (the counter) 207 560.66 P
|
|
-0.2 (\325) 251.85 560.66 P
|
|
-0.2 (s address, a user process can use) 254.63 560.66 P
|
|
5 F
|
|
-0.2 (mmap\0502\051) 385.3 560.66 P
|
|
1 F
|
|
-0.2 ( to map the counter into its virtual) 421.38 560.66 P
|
|
-0.39 (address space. The process can subsequently read the hardware counter directly) 207 548.66 P
|
|
-0.39 (, without) 520.75 548.66 P
|
|
(the overhead of a system call. The time required to read this counter is approximately) 207 536.66 T
|
|
(100 nS. All timers in a system are synchronized in hardware; i.e. all timers start at zero) 207 524.66 T
|
|
(on the same clock tick and so always contain the same value.) 207 512.66 T
|
|
(In IRIX V) 207 488.66 T
|
|
(.5, there are two options for reading the timers, depending upon the require-) 246.79 488.66 T
|
|
(ments of the application. The \336rst option is to read the counter as a 64-bit integer) 207 476.66 T
|
|
(. How-) 530.12 476.66 T
|
|
-0.24 (ever) 207 464.66 P
|
|
-0.24 (, the underlying assembler code will perform two 32-bit loads. This gives rise to the) 223.8 464.66 P
|
|
(possibility of a carry occuring between the two 32-bit loads. \050A carry will occur every) 207 452.66 T
|
|
(90.2 seconds.\051 T) 207 440.66 T
|
|
(o fully account for this possibility) 272.36 440.66 T
|
|
(, the user must perform three 32-bit) 406.92 440.66 T
|
|
(reads: the high order section, followed by the low order section, followed by the high) 207 428.66 T
|
|
(order section. If the two reads of the high order section are not equal, then a carry) 207 416.66 T
|
|
(occurred.) 207 404.66 T
|
|
(In IRIX V) 207 380.66 T
|
|
(.6, the 52-bit timer can be read as a 64-bit integer) 246.79 380.66 T
|
|
(.) 443.31 380.66 T
|
|
-0.2 (The) 207 356.66 P
|
|
5 F
|
|
-0.2 (gettimeofday\0503B\051) 224.84 356.66 P
|
|
1 F
|
|
-0.2 ( call provides a system call interface to the timer described above.) 294.23 356.66 P
|
|
-0.09 (The system initializes a time base on power) 207 344.66 P
|
|
-0.09 (-up using the battery backed up time-of-day) 380.74 344.66 P
|
|
(clock and associates a counter value with that time. Subsequent) 207 332.66 T
|
|
5 F
|
|
(gettimeofday\0503B\051) 463.21 332.66 T
|
|
1 F
|
|
( calls) 532.6 332.66 T
|
|
(will return the original time base plus the dif) 207 320.66 T
|
|
(ference between the current counter value) 385.04 320.66 T
|
|
-0.27 (and the original power) 207 308.66 P
|
|
-0.27 (-up counter value. The resolution of this counter is determined by) 296.19 308.66 P
|
|
(the system parameter) 207 296.66 T
|
|
5 F
|
|
(fasthz) 294.43 296.66 T
|
|
1 F
|
|
( \050see the following section for an explanation of) 317.76 296.66 T
|
|
5 F
|
|
(fasthz) 511.78 296.66 T
|
|
1 F
|
|
(\051.) 535.11 296.66 T
|
|
(Note that if the) 207 284.66 T
|
|
5 F
|
|
(timed\0501M\051) 269.74 284.66 T
|
|
1 F
|
|
( daemon is enabled, it may modify the) 311.92 284.66 T
|
|
5 F
|
|
(gettimeofday\0503B\051) 467.66 284.66 T
|
|
1 F
|
|
(timer) 207 272.66 T
|
|
(, resulting in erroneous event timing.) 227.7 272.66 T
|
|
(Process execution time accounting information is traditionally measured under UNIX) 207 248.66 T
|
|
(System V using the) 207 236.66 T
|
|
5 F
|
|
(times\0502\051) 287.52 236.66 T
|
|
1 F
|
|
( system call. Berkeley added the) 320.27 236.66 T
|
|
5 F
|
|
(getrusage\0503\051) 452.11 236.66 T
|
|
1 F
|
|
( system call.) 503.19 236.66 T
|
|
(The) 207 224.66 T
|
|
5 F
|
|
(times\0502\051) 225.04 224.66 T
|
|
1 F
|
|
( and) 257.79 224.66 T
|
|
5 F
|
|
(getrusage\0503B\051) 277.22 224.66 T
|
|
1 F
|
|
( return reports of accumulated real, user) 334.4 224.66 T
|
|
(, and system) 493.58 224.66 T
|
|
(times. Under IRIX V) 207 212.66 T
|
|
(.5, the kernel time-stamps each process state transitions between) 290.09 212.66 T
|
|
(user and kernel mode using the free-running timer and accumulates the elapsed time) 207 200.66 T
|
|
(between state transitions.) 207 188.66 T
|
|
(Shutting of) 207 164.66 T
|
|
(f the system clock using the) 251.53 164.66 T
|
|
5 F
|
|
(sysmp\0502\051) 365.34 164.66 T
|
|
1 F
|
|
( command MP_NONPREEMPTIVE) 401.42 164.66 T
|
|
(does not af) 207 152.66 T
|
|
(fect the gathering of process state transition data.) 250.68 152.66 T
|
|
0 9 Q
|
|
(4.1.3) 178.01 129.33 T
|
|
(Details Of T) 207 129.33 T
|
|
(imer Resolution) 256.78 129.33 T
|
|
1 10 Q
|
|
(Each processor in a multiprocessor system includes two hardware clock interrupt sig-) 207 116.66 T
|
|
(nals.) 207 104.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "19" 20
|
|
%%Page: "20" 20
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Other Real-T) 189 739.85 T
|
|
(ime Programming Features) 242.77 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(20) 54 60.96 T
|
|
0 9 Q
|
|
( of) 65.11 60.96 T
|
|
0 10 Q
|
|
( 33) 76.1 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
1 10 Q
|
|
(The \336rst clock signal, called the CPU scheduler clock, has a \336xed period of 10 ms, and) 189 680.66 T
|
|
-0.03 (is used for scheduling and statistics gathering. The system clock is not accessible to the) 189 668.66 P
|
|
(user) 189 656.66 T
|
|
(.) 205.1 656.66 T
|
|
(The second clock signal, referred to as the \322fast clock\323, has a variable frequency set by) 189 632.66 T
|
|
-0.37 (the system parameter) 189 620.66 P
|
|
5 F
|
|
-0.37 (fasthz) 275.31 620.66 P
|
|
1 F
|
|
-0.37 (. The fast clock is distributed to all processors, and is used as) 298.64 620.66 P
|
|
(the basis of the real-time timers. It is also used for event timer system calls such as) 189 608.66 T
|
|
5 F
|
|
(get-) 522.11 608.66 T
|
|
(timeofday\0503B\051) 189 596.66 T
|
|
1 F
|
|
(.) 246.18 596.66 T
|
|
(The allowable frequency range for) 189 572.66 T
|
|
5 F
|
|
(fasthz) 329.7 572.66 T
|
|
1 F
|
|
( is from 500 Hz to 2500 Hz \05010 ms to 400) 353.03 572.66 T
|
|
3 F
|
|
(m) 522.93 572.66 T
|
|
1 F
|
|
(s) 528.68 572.66 T
|
|
-0.03 (period\051. The resolution of the real-time) 189 560.66 P
|
|
5 F
|
|
-0.03 (itimer) 347.31 560.66 P
|
|
1 F
|
|
-0.03 ( is determined by the) 371.19 560.66 P
|
|
5 F
|
|
-0.03 (fasthz) 457.37 560.66 P
|
|
1 F
|
|
-0.03 ( period. When) 480.69 560.66 P
|
|
5 F
|
|
(setitimer\0502\051) 189 548.66 T
|
|
1 F
|
|
( is called, it divides the) 235.63 548.66 T
|
|
5 F
|
|
(fasthz) 330.3 548.66 T
|
|
1 F
|
|
( period into the requested) 353.63 548.66 T
|
|
5 F
|
|
(itimer) 457.72 548.66 T
|
|
1 F
|
|
( interval to) 481.6 548.66 T
|
|
(determine how many clock ticks in duration the interval should be. This results in an) 189 536.66 T
|
|
(interval with a precision of one) 189 524.66 T
|
|
5 F
|
|
(fasthz) 316.13 524.66 T
|
|
1 F
|
|
( period.) 339.46 524.66 T
|
|
-0.05 (By choosing an appropriate value of) 189 500.66 P
|
|
5 F
|
|
-0.05 (fasthz) 336.39 500.66 P
|
|
1 F
|
|
-0.05 (, it is possible to time any interval within the) 359.72 500.66 P
|
|
(range of 400) 189 488.66 T
|
|
3 F
|
|
( m) 239.51 488.66 T
|
|
1 F
|
|
(s to 200 hours \050accurate to the level of the underlying crystal oscillator) 247.77 488.66 T
|
|
-0.14 (which generates the clock signal\051. An appropriate value of) 189 476.66 P
|
|
5 F
|
|
-0.14 (fasthz) 423.67 476.66 P
|
|
1 F
|
|
-0.14 ( is one whose period is) 447 476.66 P
|
|
(an even divisor of the desired interval. For example, if an interval of 5 ms is desired,) 189 464.66 T
|
|
(2000 Hz \050whose period is 500) 189 452.66 T
|
|
3 F
|
|
(m) 311.69 452.66 T
|
|
1 F
|
|
(s\051 is an appropriate value.) 317.45 452.66 T
|
|
-0.03 (The default value of) 189 428.66 P
|
|
5 F
|
|
-0.03 (fasthz) 272.16 428.66 P
|
|
1 F
|
|
-0.03 ( is 1000 Hz \0501 ms\051. It can be modi\336ed using the) 295.49 428.66 P
|
|
5 F
|
|
-0.03 (systune\0501M\051) 488.12 428.66 P
|
|
1 F
|
|
(utility) 189 416.66 T
|
|
(.) 212.24 416.66 T
|
|
-0.17 (In the current generation of hardware, the frequency of the hardware clock signal that is) 189 392.66 P
|
|
(used to generate) 189 380.66 T
|
|
5 F
|
|
(fasthz) 256.44 380.66 T
|
|
1 F
|
|
( is 47 MHz \05021 ns period\051. \050Always use the SGI_QUER) 279.77 380.66 T
|
|
(Y_CY-) 502.68 380.66 T
|
|
-0.22 (CLECNTR command of) 189 368.66 P
|
|
5 F
|
|
-0.22 (syssgi\0502\051) 289.1 368.66 P
|
|
1 F
|
|
-0.22 ( to read the frequency in any application program that) 324.63 368.66 P
|
|
(uses it.\051 The accuracy of the crystal oscillator that sources this signal is 100 parts per) 189 356.66 T
|
|
(million. This translates to a maximum timing error of 100 microseconds per second.) 189 344.66 T
|
|
(While a timer may drift this much relative to an external time source, the skew among) 189 332.66 T
|
|
-0.1 (timers for dif) 189 320.66 P
|
|
-0.1 (ferent processors in the same system will be less than one clock tick, since) 241.36 320.66 P
|
|
(all timers are clocked by the same hardware clock signal.) 189 308.66 T
|
|
0 F
|
|
(4.2) 166.11 278.66 T
|
|
(Asynchronous Disk I/O) 189 278.66 T
|
|
1 F
|
|
(T) 189 262.66 T
|
|
(ypically when a user process makes a system call to perform disk I/O, the kernel ini-) 194.41 262.66 T
|
|
(tiates the I/O operation, and the user process is blocked until the I/O operation com-) 189 250.66 T
|
|
(pletes. T) 189 238.66 T
|
|
(o meet the needs of real-time applications, IRIX with REACT supports) 222.72 238.66 T
|
|
(asynchronous I/O. When an asynchronous I/O system call is made, the kernel initiates) 189 226.66 T
|
|
-0.04 (the I/O request on behalf of the user process and returns control to the user process.The) 189 214.66 P
|
|
-0.03 (user process can either wait for the I/O operation to complete, or it can continue execut-) 189 202.66 P
|
|
(ing until receipt of a signal. This sequence of events is shown in Figure 5.) 189 190.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "20" 21
|
|
%%Page: "21" 21
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Other Real-T) 207 739.85 T
|
|
(ime Programming Features) 260.77 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(21) 522.29 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
1 F
|
|
(.) 207 680.66 T
|
|
(Figure 4: Asynchronous I/O operation) 207 411.52 T
|
|
(The asynchronous I/O interface is implemented using four child processes created by) 207 387.52 T
|
|
5 F
|
|
(spr) 207 375.52 T
|
|
(oc\0502\051) 219.4 375.52 T
|
|
1 F
|
|
( that perform the actual I/O operations, and a control block in memory \050) 240.49 375.52 T
|
|
5 F
|
|
(aiocb) 527.5 375.52 T
|
|
1 F
|
|
(\051) 549.71 375.52 T
|
|
(containing user) 207 363.52 T
|
|
(- and system-de\336ned status and control information for the transaction,) 268.15 363.52 T
|
|
(such as the \336le pointer) 207 351.52 T
|
|
(, the number of bytes, and the priority of the request.) 296.54 351.52 T
|
|
(The child processes can be created by the) 207 327.52 T
|
|
5 F
|
|
(aio_init) 375.19 327.52 T
|
|
1 F
|
|
( system call, or by the call that ini-) 406.29 327.52 T
|
|
-0.18 (tiates the \336rst asynchronous I/O transaction. For real-time application, it is preferable to) 207 315.52 P
|
|
(create the child processes using the system call) 207 303.52 T
|
|
5 F
|
|
(aio_init) 397.42 303.52 T
|
|
1 F
|
|
(, which allows the calling pro-) 428.52 303.52 T
|
|
(cess to assign execution of the child processes to another processor) 207 291.52 T
|
|
(. \050This is because) 474.58 291.52 T
|
|
(child processes created using) 207 279.52 T
|
|
5 F
|
|
(spr) 325.8 279.52 T
|
|
(oc) 338.2 279.52 T
|
|
1 F
|
|
( inherit their parent\325) 347.63 279.52 T
|
|
(s processor assignment, so that) 427.3 279.52 T
|
|
(child processes created in a real-time process\325 address space will run on that real-time) 207 267.52 T
|
|
(processor) 207 255.52 T
|
|
(.\051 The) 244.75 255.52 T
|
|
5 F
|
|
(aio_init\0503\051) 271.11 255.52 T
|
|
1 F
|
|
( call should be made prior to isolating the real-time proces-) 313.87 255.52 T
|
|
(sor) 207 243.52 T
|
|
(. It is available in IRIX 5.2 and later versions.) 218.66 243.52 T
|
|
(The asynchronous I/O interface is initialized when a process issues its \336rst asynchro-) 207 219.52 T
|
|
-0.33 (nous I/O read \050) 207 207.52 P
|
|
5 F
|
|
-0.33 (aio_r) 266.23 207.52 P
|
|
-0.33 (ead) 287.52 207.52 P
|
|
1 F
|
|
-0.33 (\051, asynchronous I/O write \050) 301.95 207.52 P
|
|
5 F
|
|
-0.33 (aio_write\051) 408.58 207.52 P
|
|
1 F
|
|
-0.33 (, or multiple asynchronous) 450.23 207.52 P
|
|
(I/O reads/writes \050) 207 195.52 T
|
|
5 F
|
|
(lio_listio) 276.94 195.52 T
|
|
1 F
|
|
(\051 request. Initialization includes creating the child processes) 312.49 195.52 T
|
|
-0.16 (\050if they have not already been created by) 207 183.52 P
|
|
5 F
|
|
-0.16 (aio_init) 371.16 183.52 P
|
|
1 F
|
|
-0.16 (\051 and enqueueing the) 402.27 183.52 P
|
|
5 F
|
|
-0.16 (aiocb) 487.69 183.52 P
|
|
1 F
|
|
-0.16 ( for the sub-) 509.89 183.52 P
|
|
(sequent I/O transactions. The child processes busy wait on a semaphore that is incre-) 207 171.52 T
|
|
(mented each time an I/O request is made. When the semaphore is non-zero, one of the) 207 159.52 T
|
|
-0.2 (child processes wakes up and handles the \336rst aio request from the linked list of aio con-) 207 147.52 P
|
|
(trol blocks.) 207 135.52 T
|
|
-0.22 (By default, aio requests are queued in the order of the priority of the processes initiating) 207 111.52 P
|
|
-0.05 (the requests. The user can optionally reduce the priority of a particular request by speci-) 207 99.52 P
|
|
72 89.3 558 687.33 C
|
|
207 432.18 558 677.33 C
|
|
1 10 Q
|
|
0 X
|
|
0 K
|
|
(aio_init) 308.72 620.92 T
|
|
(aio_read) 306.12 582.25 T
|
|
(aio_suspend) 301.11 501.58 T
|
|
351 624.33 468 624.33 2 L
|
|
0.5 H
|
|
2 Z
|
|
N
|
|
279 530.32 369 557.32 R
|
|
N
|
|
(real-time processing) 283.32 540.41 T
|
|
461.47 588.32 466.67 585.32 461.47 582.32 461.47 585.32 4 Y
|
|
V
|
|
349.67 585.32 461.47 585.32 2 L
|
|
N
|
|
471 561.85 468 556.65 465 561.85 468 561.85 4 Y
|
|
V
|
|
468 574.65 468 561.85 2 L
|
|
N
|
|
432 529.65 522 556.65 R
|
|
N
|
|
(i/o processing) 449.1 539.74 T
|
|
477 529.65 477 502.65 2 L
|
|
N
|
|
383.2 499.65 378 502.65 383.2 505.65 383.2 502.65 4 Y
|
|
V
|
|
383.2 502.65 477 502.65 2 L
|
|
N
|
|
422.67 592.32 512.67 610.32 R
|
|
N
|
|
(start child processes) 427.4 597.91 T
|
|
471 615.2 468 610 465 615.2 468 615.2 4 Y
|
|
V
|
|
468 624.33 468 615.2 2 L
|
|
N
|
|
468 591.33 468 574.65 2 L
|
|
N
|
|
297 615.33 351 633.33 9 RR
|
|
N
|
|
294.33 495.99 357.33 513.99 9 RR
|
|
N
|
|
296.33 576.66 350.33 594.66 9 RR
|
|
N
|
|
270 457.65 387 484.65 R
|
|
N
|
|
(Handle Signal) 300.03 467.74 T
|
|
266 651.99 383 669.99 R
|
|
N
|
|
(User Process) 298.54 657.58 T
|
|
(Receive Info) 405 509.5 T
|
|
326.33 638.53 323.33 633.33 320.33 638.53 323.33 638.53 4 Y
|
|
V
|
|
323.33 652 323.33 638.53 2 L
|
|
N
|
|
326.33 598.53 323.33 593.33 320.33 598.53 323.33 598.53 4 Y
|
|
V
|
|
323.33 615.33 323.33 598.53 2 L
|
|
N
|
|
327 561.86 324 556.67 321 561.86 324 561.86 4 Y
|
|
V
|
|
324 576 324 561.86 2 L
|
|
N
|
|
327 519.2 324 514 321 519.2 324 519.2 4 Y
|
|
V
|
|
324 528.67 324 519.2 2 L
|
|
N
|
|
(Figure 5: Asynchronous I/O operation) 312.14 437.42 T
|
|
72 89.3 558 687.33 C
|
|
0 0 612 792 C
|
|
FMENDPAGE
|
|
%%EndPage: "21" 22
|
|
%%Page: "22" 22
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Other Real-T) 189 739.85 T
|
|
(ime Programming Features) 242.77 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(22) 54 60.96 T
|
|
0 9 Q
|
|
( of) 65.11 60.96 T
|
|
0 10 Q
|
|
( 33) 76.1 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
1 10 Q
|
|
-0.14 (fying a value other than 0 in the) 189 680.66 P
|
|
5 F
|
|
-0.14 (aio_r) 317.77 680.66 P
|
|
-0.14 (eqprio) 339.06 680.66 P
|
|
1 F
|
|
-0.14 ( \336eld of the) 365.15 680.66 P
|
|
5 F
|
|
-0.14 (aiocb) 412.89 680.66 P
|
|
1 F
|
|
-0.14 (. This value will be added) 435.09 680.66 P
|
|
(to the process priority to determine the request\325) 189 668.66 T
|
|
(s order in the queue.) 378.04 668.66 T
|
|
(The) 189 644.66 T
|
|
5 F
|
|
(lio_listio\0503\051) 207.04 644.66 T
|
|
1 F
|
|
( allows multiple I/O requests to be made in a single function call. The) 254.24 644.66 T
|
|
(user process can simultaneously enqueue a number of aio requests to a device and) 189 632.66 T
|
|
-0.03 (optionally receive a queued signal when the request completes. The operation to be per-) 189 620.66 P
|
|
(formed \050read or write\051 is speci\336ed in the) 189 608.66 T
|
|
5 F
|
|
(aio_lio_opcode) 352.76 608.66 T
|
|
1 F
|
|
( \336eld of each) 414.95 608.66 T
|
|
5 F
|
|
(iocb) 469.35 608.66 T
|
|
1 F
|
|
(.) 486.56 608.66 T
|
|
(The user process can choose to synchronously wait a speci\336ed amount of time for aio) 189 584.66 T
|
|
(completion, using the) 189 572.66 T
|
|
5 F
|
|
(aio_suspend\0503\051) 277.84 572.66 T
|
|
1 F
|
|
( call. This gives a program the capability of queu-) 339.47 572.66 T
|
|
-0.04 (ing a number of aio requests, and then waiting until at least one of them has completed,) 189 560.66 P
|
|
(or the program is interrupted by a signal, or the timeout speci\336ed in the call expires.) 189 548.66 T
|
|
(When) 189 536.66 T
|
|
5 F
|
|
(aio_suspend) 215.37 536.66 T
|
|
1 F
|
|
( is used with) 265.34 536.66 T
|
|
5 F
|
|
(aio_err) 318.09 536.66 T
|
|
(or\0503\051) 347.7 536.66 T
|
|
1 F
|
|
( and) 368.24 536.66 T
|
|
5 F
|
|
(aio_r) 387.67 536.66 T
|
|
(eturn\0503\051) 408.96 536.66 T
|
|
1 F
|
|
(, the user process incurs) 441.71 536.66 T
|
|
(the least amount of overhead using asynchronous I/O: upon return from) 189 524.66 T
|
|
5 F
|
|
(aio_suspend) 477.96 524.66 T
|
|
1 F
|
|
(,) 527.93 524.66 T
|
|
(the functions) 189 512.66 T
|
|
5 F
|
|
(aio_err) 243.41 512.66 T
|
|
(or) 273.02 512.66 T
|
|
1 F
|
|
( and) 281.91 512.66 T
|
|
5 F
|
|
(aio_r) 301.34 512.66 T
|
|
(eturn) 322.63 512.66 T
|
|
1 F
|
|
( can be applied to the individual) 343.73 512.66 T
|
|
5 F
|
|
(aiocb) 474.47 512.66 T
|
|
1 F
|
|
( for com-) 496.68 512.66 T
|
|
(pletion status.) 189 500.66 T
|
|
(Alternatively) 189 476.66 T
|
|
(, the user process can continue executing after the aio request has been) 241.09 476.66 T
|
|
-0.23 (queued, and be noti\336ed of I/O completion by a signal. The signal type is speci\336ed either) 189 464.66 P
|
|
(in the) 189 452.66 T
|
|
5 F
|
|
(aio_sigevent.sevt_signo) 213.99 452.66 T
|
|
1 F
|
|
( \336eld of the) 309.2 452.66 T
|
|
5 F
|
|
(aiocb) 357.51 452.66 T
|
|
1 F
|
|
(, or as the) 379.71 452.66 T
|
|
5 F
|
|
(sig.sevt_signo) 421.07 452.66 T
|
|
1 F
|
|
( ar) 477.43 452.66 T
|
|
(gument to) 487.52 452.66 T
|
|
5 F
|
|
-0.18 (lio_listio) 189 440.66 P
|
|
1 F
|
|
-0.18 (. Because of the overhead of asynchronous signal delivery) 224.55 440.66 P
|
|
-0.18 (, this method is most) 455.36 440.66 P
|
|
(appropriate when the number of outstanding asynchronous I/O requests is small, or) 189 428.66 T
|
|
(when the process cannot af) 189 416.66 T
|
|
(ford to block because it has other time-sensitive tasks to) 297.06 416.66 T
|
|
(complete.) 189 404.66 T
|
|
(The) 189 380.66 T
|
|
5 F
|
|
(aio_err) 207.04 380.66 T
|
|
(or) 236.65 380.66 T
|
|
1 F
|
|
( and) 245.54 380.66 T
|
|
5 F
|
|
(aio_r) 264.97 380.66 T
|
|
(eturn) 286.26 380.66 T
|
|
1 F
|
|
( calls can be used to determine the error status and return) 307.36 380.66 T
|
|
(status, respectively) 189 368.66 T
|
|
(, of an aio operation while it is proceeding.) 264.41 368.66 T
|
|
(Pending aio requests can be cancelled using) 189 344.66 T
|
|
5 F
|
|
(aio_cancel\0503\051.) 366.92 344.66 T
|
|
1 F
|
|
( In compliance with the) 424.93 344.66 T
|
|
(POSIX standard, any requested signal will be delivered to the process that initiated the) 189 332.66 T
|
|
(request.) 189 320.66 T
|
|
0 F
|
|
(4.3) 166.11 290.66 T
|
|
(External Interrupts) 189 290.66 T
|
|
1 F
|
|
(CHALLENGE and Onyx systems provide six I/O lines \050two inputs and four outputs\051) 189 274.66 T
|
|
-0.13 (designed to be connected to external equipment. The interface to these lines is provided) 189 262.66 P
|
|
(by the special device \336le) 189 250.66 T
|
|
5 F
|
|
(/dev/ei) 290.31 250.66 T
|
|
1 F
|
|
( \050see) 316.96 250.66 T
|
|
5 F
|
|
(ei\0507\051) 338.05 250.66 T
|
|
1 F
|
|
(\051. This interface allows separate machines to) 356.92 250.66 T
|
|
-0.25 (send and receive interrupts over a dedicated wire for purposes of inter) 189 238.66 P
|
|
-0.25 (-machine synchro-) 465.59 238.66 P
|
|
(nization.) 189 226.66 T
|
|
(The eternal interrupt device driver maintains per) 189 202.66 T
|
|
(-process state information, allowing) 382.53 202.66 T
|
|
(any number of processes to open this device and use it without interfering with each) 189 190.66 T
|
|
(other) 189 178.66 T
|
|
(. In order to distribute the overhead associated with the) 208.99 178.66 T
|
|
5 F
|
|
( ioctl) 428.83 178.66 T
|
|
1 F
|
|
( calls, a user) 449.1 178.66 T
|
|
(-process) 498.3 178.66 T
|
|
(can specify which CPU executes the device driver system calls \050EIIOCSETSYSCPU\051) 189 166.66 T
|
|
(and which CPU executes the interrupt handlers \050EIIOCSETINTRCPU\051.) 189 154.66 T
|
|
-0.07 (The device driver maintains queues of incoming interrupts for each process that has the) 189 130.66 P
|
|
-0.11 (device \336le open. There are two interrupt queues for each process: one for use by the sig-) 189 118.66 P
|
|
(nal handler and the other for use by the busy wait function, as explained below) 189 106.66 T
|
|
(. The) 503.4 106.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "22" 23
|
|
%%Page: "23" 23
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Other Real-T) 207 739.85 T
|
|
(ime Programming Features) 260.77 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(23) 522.29 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
1 F
|
|
-0.35 (interrupt queues allow software to determine how many interrupts have arrived but have) 207 680.66 P
|
|
(not yet been retrieved by the process. The queue can be \337ushed by the user program.) 207 668.66 T
|
|
(A user process can enable or disable interrupts using the EIIOCENABLE and EIIO-) 207 644.66 T
|
|
-0.19 (CDISABLE commands. Interrupts are automatically disabled when the device is closed) 207 632.66 P
|
|
-0.24 (by the last process. A process can assert \050EIIOCSETHI\051 or de-assert \050EIIOCSETLO\051 an) 207 620.66 P
|
|
(interrupt on any of the four output pins and generate an outgoing interrupt pulse) 207 608.66 T
|
|
(\050EIIOCSTROBE\051.) 207 596.66 T
|
|
(Incoming interrupts can be handled in a number of ways. Using the EIIOCSETSIG) 207 572.66 T
|
|
-0.08 (command, a process can instruct the driver to send a signal when each interrupt arrives.) 207 560.66 P
|
|
(The interrupt queue permits the signal handler to know exactly how many interrupts) 207 548.66 T
|
|
(have arrived, even if a signal was discarded. Or a user process may request to block in) 207 536.66 T
|
|
(an) 207 524.66 T
|
|
5 F
|
|
(ioctl\050\051) 218.93 524.66 T
|
|
1 F
|
|
( until an interrupt is received. Finally) 243.36 524.66 T
|
|
(, in situations where the overhead of a) 391.23 524.66 T
|
|
(system call is unacceptable \050for example, when interrupts occur frequently\051, a process) 207 512.66 T
|
|
(can busy wait for an interrupt to arrive, using the) 207 500.66 T
|
|
5 F
|
|
(eicbusywait) 404.91 500.66 T
|
|
1 F
|
|
( library function. The) 452.11 500.66 T
|
|
-0.01 (interrupt queue maintained for this function insures that an interrupt arriving before the) 207 488.66 P
|
|
(library call is made will still be available to the calling process.) 207 476.66 T
|
|
-0.22 (A process can specify the value in microseconds of the outgoing pulse width \050EIIOCSE-) 207 452.66 P
|
|
-0.45 (T) 207 440.66 P
|
|
-0.45 (OPW\051, the expected incoming pulse width \050EIIOCSETIPW\051, and the threshold beyond) 212.93 440.66 P
|
|
(which an incoming pulse is considered to be \322stuck\323 \050EIIOCSETSPW\051.) 207 428.66 T
|
|
(The outgoing pulse width determines how long the output lines are asserted when the) 207 404.66 T
|
|
(driver generates an outgoing interrupt using EIIOCSTROBE. This value should not be) 207 392.66 T
|
|
(set too high, because the processor busy waits with all interrupts blocked during this) 207 380.66 T
|
|
(time. On the other hand, too short a pulse may not be reliably received by the remote) 207 368.66 T
|
|
(machine. The default is 5) 207 356.66 T
|
|
3 F
|
|
(m) 308.31 356.66 T
|
|
1 F
|
|
(s and should not normally be changed.) 314.07 356.66 T
|
|
-0.18 (The expected incoming pulse width determines how long the interrupt handler will wait) 207 332.66 P
|
|
(before returning. The interrupt handler must not return while the input line is still) 207 320.66 T
|
|
(asserted; otherwise, multiple interrupts are received from the same input pulse, indicat-) 207 308.66 T
|
|
-0.25 (ing to the driver that the line is \322stuck\323. The value of the expected incoming pulse width) 207 296.66 P
|
|
-0.05 (should match the outgoing pulse width of the machine producing the pulse. The default) 207 284.66 P
|
|
(is 5) 207 272.66 T
|
|
3 F
|
|
(m) 221.16 272.66 T
|
|
1 F
|
|
(s.) 226.92 272.66 T
|
|
(The \322stuck\323 pulse width de\336nes the minimum allowable time between distinct input) 207 248.66 T
|
|
(pulses: any two pulses that arrive within this time are considered to be the same pulse.) 207 236.66 T
|
|
(Setting this value too low will cause a single pulse to be processed as more than one) 207 224.66 T
|
|
(interrupt; on the other hand, setting this value too high will limit the maximum rate at) 207 212.66 T
|
|
(which interrupts can be received. The default value is 500 microseconds.) 207 200.66 T
|
|
0 F
|
|
(4.4) 184.11 170.66 T
|
|
(Signals) 207 170.66 T
|
|
1 F
|
|
(A signal is a synchronous or asynchronous noti\336cation of an event that is sent to a pro-) 207 154.66 T
|
|
-0.25 (cess when the event associated with that signal occurs. Examples of such events include) 207 142.66 P
|
|
(hardware exceptions, timer expiration, terminal activity) 207 130.66 T
|
|
(, as well as calls to) 428.69 130.66 T
|
|
5 F
|
|
(kill\0502\051) 506.14 130.66 T
|
|
1 F
|
|
(,) 530.56 130.66 T
|
|
5 F
|
|
(sig-) 535.56 130.66 T
|
|
(queue\0503\051) 207 118.66 T
|
|
1 F
|
|
(,) 242.52 118.66 T
|
|
5 F
|
|
(sigsend\0502\051) 247.52 118.66 T
|
|
1 F
|
|
(, or) 289.15 118.66 T
|
|
5 F
|
|
(raise\0503c\051) 304.98 118.66 T
|
|
1 F
|
|
(. In some cases, a single event generates signals for) 341.06 118.66 T
|
|
(multiple processes. A process may request a detailed noti\336cation of the source of the) 207 106.66 T
|
|
(signal and the reason why it was generated \050see) 207 94.66 T
|
|
5 F
|
|
(siginfo\0505\051\051.) 399.34 94.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "23" 24
|
|
%%Page: "24" 24
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Other Real-T) 189 739.85 T
|
|
(ime Programming Features) 242.77 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(24) 54 60.96 T
|
|
0 9 Q
|
|
( of) 65.11 60.96 T
|
|
0 10 Q
|
|
( 33) 76.1 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
1 10 Q
|
|
-0.33 (IRIX with REACT supports the signal functions in BSD4.3 and System V) 189 680.66 P
|
|
-0.33 (, as well as the) 480.58 680.66 P
|
|
-0.3 (POSIX P1003.1b-1993 real-time signals extension. The basic dif) 189 668.66 P
|
|
-0.3 (ferences between these) 446.27 668.66 P
|
|
(signal interfaces are summarized in T) 189 656.66 T
|
|
(able 1. Because only the POSIX convention pro-) 338.46 656.66 T
|
|
(vides reliable and deterministic signal noti\336cation, the remaining discussion in this sec-) 189 644.66 T
|
|
(tion will be con\336ned to just those signals.) 189 632.66 T
|
|
(IRIX with REACT supports signal numbers between 0 and 64. The signals between 0) 189 474.66 T
|
|
(and 32 have prede\336ned names \050see) 189 462.66 T
|
|
5 F
|
|
(/var/include/sys/signal.h) 331.1 462.66 T
|
|
1 F
|
|
(\051. The POSIX standard) 429.11 462.66 T
|
|
(reserves all signals between 33 \050SIGR) 189 450.66 T
|
|
(TMIN\051 and 64 \050SIGR) 340.79 450.66 T
|
|
(TMAX\051 for real-time appli-) 427.07 450.66 T
|
|
(cations.The signals between 1 and 32 are of equal priority) 189 438.66 T
|
|
(, but have a higher priority) 419.84 438.66 T
|
|
-0.37 (than real-time signals. The real-time signals are prioritized such that the lower the signal) 189 426.66 P
|
|
(number) 189 414.66 T
|
|
(, the higher the signal\325) 219.13 414.66 T
|
|
(s priority) 308.24 414.66 T
|
|
(.) 343.96 414.66 T
|
|
(Each process may specify a system action to be taken in response to each signal type) 189 390.66 T
|
|
-0.1 (sent to it, called the signal\325) 189 378.66 P
|
|
-0.1 (s) 295.67 378.66 P
|
|
5 F
|
|
-0.1 ( disposition) 299.56 378.66 P
|
|
1 F
|
|
-0.1 (.The set of system signal actions for a process is) 345.84 378.66 P
|
|
-0.21 (initialized from that of its parent. Once a disposition has been installed for a speci\336c sig-) 189 366.66 P
|
|
-0.17 (nal, it usually remains installed until another disposition is explicitly requested by a call) 189 354.66 P
|
|
(to either) 189 342.66 T
|
|
5 F
|
|
(sigaction\0502\051,) 224.53 342.66 T
|
|
1 F
|
|
( or until the process execs. When a process execs, all signals) 275.33 342.66 T
|
|
-0.15 (whose disposition have been set to catch the signal will be set to the default disposition,) 189 330.66 P
|
|
(SIG_DFL. Alternatively) 189 318.66 T
|
|
(, a process may request that the system automatically reset the) 286.07 318.66 T
|
|
(disposition of a signal to SIG_DFL after it has been caught \050see) 189 306.66 T
|
|
5 F
|
|
(sigaction\0502\051) 446.05 306.66 T
|
|
1 F
|
|
(\051.) 494.35 306.66 T
|
|
(A signal is said to be delivered to a process when the appropriate action for the process) 189 282.66 T
|
|
(and signal is taken. During the time between the generation of a signal and its delivery) 189 270.66 T
|
|
(,) 534.22 270.66 T
|
|
-0.21 (the signal is said to be pending \050see) 189 258.66 P
|
|
5 F
|
|
-0.21 (sigpending\0502\051) 331.65 258.66 P
|
|
1 F
|
|
-0.21 (\051. A process can determine the signals) 387.17 258.66 P
|
|
-0.04 (that are currently pending using) 189 246.66 P
|
|
5 F
|
|
-0.04 (sigpending) 318.45 246.66 P
|
|
1 F
|
|
-0.04 (.When a pending signal is delivered, the sig-) 362.32 246.66 P
|
|
(nal will remain pending if there are additional signals queued to that signal number) 189 234.66 T
|
|
(.) 520.73 234.66 T
|
|
(Otherwise the pending indication is reset.) 189 222.66 T
|
|
-0.14 (Because a signal\324s disposition is determined at the time it is delivered, rather than when) 189 198.66 P
|
|
(it is caught, a signal\324s disposition can change while it is pending. When multiple) 189 186.66 T
|
|
(unblocked signals are pending, the highest priority signal will be delivered \336rst. On the) 189 174.66 T
|
|
(other hand, a lower priority signal cannot preempt a higher priority signal handler) 189 162.66 T
|
|
(.) 515.16 162.66 T
|
|
(Each process has a signal mask that de\336nes the set of signals currently blocked from) 189 138.66 T
|
|
-0.26 (delivery to it \050see) 189 126.66 P
|
|
5 F
|
|
-0.26 (sigpr) 260.12 126.66 P
|
|
-0.26 (ocmask\0502\051) 280.3 126.66 P
|
|
1 F
|
|
-0.26 (\051. The signal mask for a process is initialized from that) 321.93 126.66 P
|
|
(of its parent. A signal that is blocked by a process will not be lost, but will be queued) 189 114.66 T
|
|
54 600.33 540 623.33 C
|
|
189 608.33 540 608.33 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
54 608.33 180 608.33 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(T) 54 594.33 T
|
|
(ABLE 1.) 58.83 594.33 T
|
|
6 F
|
|
(Signal Functions Summary) 189 594.33 T
|
|
0 8 Q
|
|
(System V) 189 570.99 T
|
|
(BSD4.3) 285 570.99 T
|
|
(Posix 1003.1) 375 570.99 T
|
|
(Posix 1003.1b-1993) 462.57 570.99 T
|
|
1 9 Q
|
|
(32 signals) 189 556.33 T
|
|
(32 signals) 285 556.33 T
|
|
(32 signals) 375 556.33 T
|
|
(64 signals) 462.57 556.33 T
|
|
(Not reliable) 189 541.33 T
|
|
(Reliable) 285 541.33 T
|
|
(Reliable) 375 541.33 T
|
|
(Reliable) 462.57 541.33 T
|
|
(Error if signal occurs) 189 526.33 T
|
|
(during system call) 189 515.33 T
|
|
(Restarts system call) 285 526.33 T
|
|
(on signal) 285 515.33 T
|
|
(Restarts system call) 375 526.33 T
|
|
(on signal) 375 515.33 T
|
|
(Restarts system call) 462.57 526.33 T
|
|
(on signal) 462.57 515.33 T
|
|
(Signals not queued) 189 500.33 T
|
|
(Signals not queued) 285 500.33 T
|
|
(Signals not queued) 375 500.33 T
|
|
(Signals queued) 462.57 500.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "24" 25
|
|
%%Page: "25" 25
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Other Real-T) 207 739.85 T
|
|
(ime Programming Features) 260.77 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(25) 522.29 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
1 F
|
|
(and left pending, so that if it is later unblocked \050) 207 680.66 T
|
|
5 F
|
|
(sigsuspend\0502\051) 399.37 680.66 T
|
|
1 F
|
|
(\051 the signal will be deliv-) 454.89 680.66 T
|
|
(ered. A process can also block a signal by setting its disposition to SIG_IGN.) 207 668.66 T
|
|
-0.05 (If the disposition of a signal is the address of a function, and the signal\324s SA_SIGINFO) 207 644.66 P
|
|
(\337ag is set \050see) 207 632.66 T
|
|
5 F
|
|
(sigaction\0502\051) 265.85 632.66 T
|
|
1 F
|
|
(\051, the handler will be passed a pointer to the) 314.15 632.66 T
|
|
5 F
|
|
(siginfo_t) 491.52 632.66 T
|
|
1 F
|
|
( struc-) 526.51 632.66 T
|
|
-0.29 (ture, containing the signal\325) 207 620.66 P
|
|
-0.29 (s cause, as well as a pointer to the structure) 312.74 620.66 P
|
|
5 F
|
|
-0.29 (ucontext_t,) 485.01 620.66 P
|
|
1 F
|
|
-0.29 ( which) 529.15 620.66 P
|
|
(contains the receiving process\325 context when the signal was delivered. When the signal) 207 608.66 T
|
|
-0.01 (handler returns, the receiving process resumes execution at the point it was interrupted,) 207 596.66 P
|
|
(unless the signal handler makes other arrangements.) 207 584.66 T
|
|
(A process can wait for the occurrence of a signal in a number of ways. It can wait for a) 207 560.66 T
|
|
(number of signals to occur with a speci\336ed timeout \050) 207 548.66 T
|
|
5 F
|
|
(sigtimedwait) 417.69 548.66 T
|
|
1 F
|
|
(\051 or without timeout) 468.79 548.66 T
|
|
(\050) 207 536.66 T
|
|
5 F
|
|
(sigwaitrt) 210.33 536.66 T
|
|
1 F
|
|
(\051. It can unblock a signal and then wait for that signal in a single atomic oper-) 245.88 536.66 T
|
|
(ation \050) 207 524.66 T
|
|
5 F
|
|
(sigsuspend\0503\051) 232.82 524.66 T
|
|
1 F
|
|
(\051. Or it can simply return the value for a queued signal \050) 288.33 524.66 T
|
|
5 F
|
|
(sigwait-) 511.22 524.66 T
|
|
(info\0503\051) 207 512.66 T
|
|
1 F
|
|
(\051.) 234.21 512.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "25" 26
|
|
%%Page: "26" 26
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(VME Bus Capabilities and Use) 189 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(26) 54 60.96 T
|
|
0 9 Q
|
|
( of) 65.11 60.96 T
|
|
0 10 Q
|
|
( 33) 76.1 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
54 672.33 540 675.33 C
|
|
189 674.48 540 674.48 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
54 674.48 180 674.48 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 12 Q
|
|
0 X
|
|
0 K
|
|
(5.0) 189 679.33 T
|
|
( VME Bus Capabilities and Use) 205.67 679.33 T
|
|
1 10 Q
|
|
(The system VME interface is a high performance implementation which provides full) 189 657.66 T
|
|
-0.18 (support for all features of Revision C.2 of the VME Speci\336cation plus the A64 and D64) 189 645.66 P
|
|
(modes as de\336ned in Revision D. The VME interface is designed to allow both direct) 189 633.66 T
|
|
(access of addresses on the POWERpath-2 bus by devices on the VME bus and direct) 189 621.66 T
|
|
(access of addresses on the VME bus by devices on the POWERpath-2. Address map-) 189 609.66 T
|
|
(ping is provided which allows VME devices to perform DMA access to user) 189 597.66 T
|
|
(-process) 494.69 597.66 T
|
|
(virtual addresses.) 189 585.66 T
|
|
0 F
|
|
(5.1) 166.11 555.66 T
|
|
(Con\336gurations) 189 555.66 T
|
|
1 F
|
|
-0.13 (All CHALLENGE and Onyx systems contain a 9U VME bus in their main card cage as) 189 539.66 P
|
|
(part of the standard I/O complement. Rack con\336gurations may optionally include an) 189 527.66 T
|
|
(auxiliary 9U VME card cage. This cage may be con\336gured as one, two, or four VME) 189 515.66 T
|
|
-0.06 (busses. T) 189 503.66 P
|
|
-0.06 (able 2 illustrates the number of VME slots available in various CHALLENGE) 225.43 503.66 P
|
|
(and Onyx con\336gurations:) 189 491.66 T
|
|
(Determining whether to split the auxiliary VME cage into multiple busses should be) 189 326.66 T
|
|
(done by examining the bandwidth required. Each additional VME bus which is con\336g-) 189 314.66 T
|
|
(ured requires an F cable output from an F-HIO card installed in a POWERchannel-2) 189 302.66 T
|
|
(board and a Remote VCAM board installed in the auxiliary VME cage.) 189 290.66 T
|
|
(Up to a total of three VME busses \050two in auxiliary cage\051 may be supported using the) 189 266.66 T
|
|
-0.23 (\336rst POWERchannel-2 board in a system; four or more busses requires the addition of a) 189 254.66 P
|
|
-0.33 (second POWERchannel-2. T) 189 242.66 P
|
|
-0.33 (able 3 illustrates the con\336guration requirements for various) 303.38 242.66 P
|
|
(numbers of VME busses.) 189 230.66 T
|
|
54 459.33 540 482.33 C
|
|
189 467.33 540 467.33 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
54 467.33 180 467.33 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(T) 54 453.33 T
|
|
(ABLE 2.) 58.83 453.33 T
|
|
6 F
|
|
(CHALLENGE / Onyx VME Slots) 189 453.33 T
|
|
0 8 Q
|
|
-0.1 (Main Cage) 276 420.99 P
|
|
(VME Slots) 276 411.99 T
|
|
(Aux Cage) 330 429.99 T
|
|
(VME Slots) 330 420.99 T
|
|
(- 1 Bus) 330 411.99 T
|
|
(Aux Cage) 384 429.99 T
|
|
(VME slots) 384 420.99 T
|
|
(- 2 Busses) 384 411.99 T
|
|
(Aux Cage) 438 429.99 T
|
|
(VME Slots) 438 420.99 T
|
|
(- 4 Busses) 438 411.99 T
|
|
1 9 Q
|
|
(CHALLENGE L) 189 397.33 T
|
|
(5) 276 397.33 T
|
|
(none) 330 397.33 T
|
|
(none) 384 397.33 T
|
|
(none) 438 397.33 T
|
|
(Onyx Deskside) 189 382.33 T
|
|
(3) 276 382.33 T
|
|
(none) 330 382.33 T
|
|
(none) 384 382.33 T
|
|
(none) 438 382.33 T
|
|
(Challenge XL) 189 367.33 T
|
|
(5) 276 367.33 T
|
|
(20) 330 367.33 T
|
|
(10 / 9) 384 367.33 T
|
|
(5 / 4 / 4 / 4) 438 367.33 T
|
|
(Onyx Rack) 189 352.33 T
|
|
(4) 276 352.33 T
|
|
(20) 330 352.33 T
|
|
(10 / 9) 384 352.33 T
|
|
(5 / 4 / 4 / 4) 438 352.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "26" 27
|
|
%%Page: "27" 27
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(VME Bus Capabilities and Use) 207 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(27) 522.29 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
1 9 Q
|
|
(Note that F-HIO Short modules, which are intended for use only on POWERchannel-2) 219 504.33 T
|
|
-0.16 (#1, have only a single F Cable output, while regular F-HIO modules provide two F Cable) 219 494.33 P
|
|
(outputs. This explains why a second POWERchannel-2 board is required for 4 or more) 219 484.33 T
|
|
0 (VME busses, but the HIO slots on POWERchannel-2 #1 is not used in this con\336guration.) 219 474.33 P
|
|
0 10 Q
|
|
(5.2) 184.11 445.66 T
|
|
(Memory Mapping) 207 445.66 T
|
|
1 F
|
|
-0.04 (The system supports mapping of VME addresses into the POWERpath-2 address space) 207 429.66 P
|
|
(for programmed I/O \050PIO\051 control of VME devices and supports mapping of POWER-) 207 417.66 T
|
|
(path-2 addresses into the address space of the VME bus for direct memory accesses) 207 405.66 T
|
|
(\050DMA\051 by devices on the VME bus. The implementation and operation of these two) 207 393.66 T
|
|
(mappings dif) 207 381.66 T
|
|
(fer) 259.29 381.66 T
|
|
(, as described below) 269.98 381.66 T
|
|
(.) 350.38 381.66 T
|
|
0 9 Q
|
|
(5.2.1) 178.01 358.33 T
|
|
(PIO Mapping) 207 358.33 T
|
|
1 10 Q
|
|
-0.15 (PIO mapping is based on opening a 128 megabyte) 207 345.66 P
|
|
5 F
|
|
-0.15 (window) 409.12 345.66 P
|
|
1 F
|
|
-0.15 ( from the POWERpath-2 bus) 440.22 345.66 P
|
|
(address map into the VME address spaces. Each VME bus in the system has its own) 207 333.66 T
|
|
(window) 207 321.66 T
|
|
(. This window is divided into sixteen 8 Mb segments. The \336rst of these seg-) 238.55 321.66 T
|
|
(ments contains VCAM control registers and the A16 VME address space.) 207 309.66 T
|
|
-0.02 (The other 15 segments are used to access the VME bus through a 15 entry Map Ram in) 207 285.66 P
|
|
(the VMECC. Each Map Ram entry contains a six bit Address Modi\336er and nine high-) 207 273.66 T
|
|
-0.01 (order address bits. When a reference is made to one of the segments, these bits are read) 207 261.66 P
|
|
-0.31 (from the Map Ram and combined with the of) 207 249.66 P
|
|
-0.31 (fset into the 8 Mb segment to form an A64,) 385.35 249.66 P
|
|
-0.08 (A32, or A24 VME address. One of the VCAM control registers stores the additional 32) 207 237.66 P
|
|
(high order address bits which are used to form A64 addresses.) 207 225.66 T
|
|
-0.01 (PIO Map Ram entries are set up by making a system call. Parameters of the call are the) 207 201.66 P
|
|
-0.3 (VME address range to be mapped and the Address Modi\336er code to use in accessing the) 207 189.66 P
|
|
-0.35 (VME bus. The service returns a pointer to the virtual address at which the VME bus will) 207 177.66 P
|
|
(be accessed. The mapping remains established for the life of the calling process unless) 207 165.66 T
|
|
(another call is made to close the mapping. See) 207 153.66 T
|
|
5 F
|
|
(usrvme\0507\051.) 394.65 153.66 T
|
|
0 9 Q
|
|
(5.2.2) 178.01 130.33 T
|
|
(DMA Mapping) 207 130.33 T
|
|
1 10 Q
|
|
(DMA mapping is based on the use of page tables which are stored in the system main) 207 117.66 T
|
|
(memory) 207 105.66 T
|
|
(. This scheme allows VME DMA devices to reference a stream of contiguous) 239.66 105.66 T
|
|
(virtual addresses which correspond to virtual addresses in the user process\325 space.) 207 93.66 T
|
|
72 648.33 558 671.33 C
|
|
207 656.33 558 656.33 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
72 656.33 198 656.33 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(T) 72 642.33 T
|
|
(ABLE 3.) 76.83 642.33 T
|
|
6 F
|
|
(POWERchannel-2 \050Pc-2\051 Con\336gurations vs. Number of VME Busses) 207 642.33 T
|
|
0 8 Q
|
|
(# VME) 207 618.99 T
|
|
(Busses) 207 609.99 T
|
|
(Pc-2 #1 Slot) 261 618.99 T
|
|
(1) 261 609.99 T
|
|
(Pc-2 #1 Slot) 322.67 618.99 T
|
|
(2) 322.67 609.99 T
|
|
(Pc-2 #2) 384.35 618.99 T
|
|
(Slot 1) 384.35 609.99 T
|
|
(Pc-2 #2) 438.35 618.99 T
|
|
(Slot 2) 438.35 609.99 T
|
|
1 9 Q
|
|
(1) 207 595.33 T
|
|
(open) 261 595.33 T
|
|
(open) 322.67 595.33 T
|
|
(not req.) 384.35 595.33 T
|
|
(not req.) 438.35 595.33 T
|
|
(2) 207 580.33 T
|
|
(F-HIO Short) 261 580.33 T
|
|
(open) 322.67 580.33 T
|
|
(not req.) 384.35 580.33 T
|
|
(not req.) 438.35 580.33 T
|
|
(3 \0501 Pc-2\051) 207 565.33 T
|
|
(F-HIO Short) 261 565.33 T
|
|
(F-HIO Short) 322.67 565.33 T
|
|
(not req.) 384.35 565.33 T
|
|
(not req.) 438.35 565.33 T
|
|
(3 \0502 Pc-2\051) 207 550.33 T
|
|
(open) 261 550.33 T
|
|
(open) 322.67 550.33 T
|
|
(F-HIO) 384.35 550.33 T
|
|
(open) 438.35 550.33 T
|
|
(4) 207 535.33 T
|
|
(open) 261 535.33 T
|
|
(open) 322.67 535.33 T
|
|
(F-HIO) 384.35 535.33 T
|
|
(F-HIO) 438.35 535.33 T
|
|
(5) 207 520.33 T
|
|
(open) 261 520.33 T
|
|
(open) 322.67 520.33 T
|
|
(F-HIO) 384.35 520.33 T
|
|
(F-HIO) 438.35 520.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "27" 28
|
|
%%Page: "28" 28
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(VME Bus Capabilities and Use) 189 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(28) 54 60.96 T
|
|
0 9 Q
|
|
( of) 65.11 60.96 T
|
|
0 10 Q
|
|
( 33) 76.1 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
1 10 Q
|
|
-0.38 (These virtual addresses may refer to scattered physical pages in main memory) 189 681.36 P
|
|
-0.38 (. Thus, the) 496.44 681.36 P
|
|
(VME device is able to view the addresses it references in the same way as the user pro-) 189 669.36 T
|
|
-0.09 (cess, and DMA transfers which span multiple pages can be performed as a single opera-) 189 657.37 P
|
|
(tion.) 189 645.37 T
|
|
(Each DMA stream from the VME bus is assigned a VME V) 189 621.37 T
|
|
(irtual Base address which) 428.51 621.37 T
|
|
(corresponds to a pointer into a translation ram on the POWERchannel-2. The contents) 189 609.37 T
|
|
(of this ram point to the beginning of a page table in main memory) 189 597.37 T
|
|
(. Bits 20:12 of the) 451.8 597.37 T
|
|
(VME V) 189 585.37 T
|
|
(irtual Address are used as the of) 220.32 585.37 T
|
|
(fset into the page table. The page table entry is) 348.37 585.37 T
|
|
(used to translate the VME V) 189 573.37 T
|
|
(irtual Address into a physical address on the POWERchan-) 302.49 573.37 T
|
|
(nel-2.) 189 561.37 T
|
|
(Each VME I/O adapter on the POWERchannel-2 caches sixteen translations internally) 189 537.37 T
|
|
(.) 534.2 537.37 T
|
|
(Whenever a VME device performs a memory reference, the translation cache is) 189 525.36 T
|
|
-0.1 (checked. If a hit occurs, the cache entry is used to translate the VME V) 189 513.37 P
|
|
-0.1 (irtual Address to) 471.18 513.37 P
|
|
(a POWERpath-2 bus physical address. If a miss occurs, the POWERchannel-2 hard-) 189 501.37 T
|
|
(ware automatically fetches a new translation from the page tables in main memory and) 189 489.37 T
|
|
-0.22 (loads the new translation into the cache, replacing the least recently used entry) 189 477.37 P
|
|
-0.22 (. Because) 499.64 477.37 P
|
|
(each VME bus has its own translation cache with eight pairs of entries, up to eight) 189 465.37 T
|
|
(DMA streams can be simultaneously active on a single VME bus without incurring a) 189 453.37 T
|
|
(loss of performance due to thrashing.) 189 441.37 T
|
|
(A kernel-resident device driver is required to set up DMA mapping. See) 189 417.37 T
|
|
5 F
|
|
(IRIX Device) 480.17 417.37 T
|
|
(Driver Pr) 189 405.37 T
|
|
(ogramming Guide) 227.77 405.37 T
|
|
1 F
|
|
( for more information.) 300.78 405.37 T
|
|
0 F
|
|
(5.3) 166.11 375.37 T
|
|
(Optimizing Bandwidth and Latency) 189 375.37 T
|
|
1 F
|
|
-0.35 (The system architecture is designed to maximize the total available I/O connectivity and) 189 359.37 P
|
|
(bandwidth. Most high performance I/O devices operate by performing block-mode) 189 347.37 T
|
|
-0.27 (DMA, and this is the mode of operation which yields the best results. For devices which) 189 335.37 P
|
|
(are not capable of DMA operation, the system provides the option of accessing these) 189 323.37 T
|
|
(boards via programmed I/O. In addition, the system provides a DMA engine in the) 189 311.37 T
|
|
-0.39 (VME interface which can perform DMA with non-DMA VME devices to optimize their) 189 299.37 P
|
|
(performance.) 189 287.37 T
|
|
(T) 189 269.37 T
|
|
(able 4 summarizes the performance of the system VME bus using a VME DMA) 194.41 269.37 T
|
|
(device to access system memory in various transfer modes. Actual performance may) 189 257.37 T
|
|
(vary somewhat depending on the timing of the DMA controller used. The system has) 189 245.37 T
|
|
-0.13 (enough bandwidth that performance is nearly independent of whether other I/O streams) 189 233.37 P
|
|
-0.19 (\050from other VME busses or other controllers on the POWERchannel-2\051 are active at the) 189 221.37 P
|
|
(same time.) 189 209.37 T
|
|
54 177.03 540 200.03 C
|
|
189 185.03 540 185.03 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
54 185.03 180 185.03 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(T) 54 171.03 T
|
|
(ABLE 4.) 58.83 171.03 T
|
|
6 F
|
|
(VME Bus DMA Performance \050using DMA board on VME\051) 189 171.03 T
|
|
0 8 Q
|
|
(READ) 251.19 147.7 T
|
|
(WRITE) 305.19 147.7 T
|
|
1 9 Q
|
|
(D8) 189 133.03 T
|
|
(0.4 Mb / S) 251.19 133.03 T
|
|
(0.6 Mb / S) 305.19 133.03 T
|
|
(D16) 189 118.03 T
|
|
(0.8 Mb / S) 251.19 118.03 T
|
|
(1.3 Mb / S) 305.19 118.03 T
|
|
(D32) 189 103.03 T
|
|
(1.6 Mb / S) 251.19 103.03 T
|
|
(2.6 Mb / S) 305.19 103.03 T
|
|
FMENDPAGE
|
|
%%EndPage: "28" 29
|
|
%%Page: "29" 29
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(VME Bus Capabilities and Use) 207 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(29) 522.29 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
0 9 Q
|
|
(5.3.1) 178.01 568.03 T
|
|
(PIO Operations) 207 568.03 T
|
|
1 10 Q
|
|
(Some VME devices are only capable of operating in a slave mode. For these boards,) 207 555.37 T
|
|
(there are two alternative ways to access them: using PIO operations from a CPU or) 207 543.37 T
|
|
(using the DMA engine included in the POWERpath-2 architecture. PIO is the most) 207 531.36 T
|
|
(straightforward method and will generally require little or no rewriting to port applica-) 207 519.36 T
|
|
(tion software from other systems. However) 207 507.36 T
|
|
(, the bandwidth available through this) 379.8 507.36 T
|
|
(method is limited, especially for reads \050see T) 207 495.36 T
|
|
(able 5.\051. This is because PIO operations) 386.17 495.36 T
|
|
(cannot be pipelined - the entire path from the POWERchannel-2 to the VME bus and) 207 483.36 T
|
|
-0.08 (the CPU itself remains occupied from the time a PIO read starts to its completion. Each) 207 471.36 P
|
|
(PIO read operation requires two transfers over the POWERpath-2 bus; one to send the) 207 459.36 T
|
|
(VME address to be read, and another to retrieve the data. W) 207 447.37 T
|
|
(rite operations to the VME) 446.68 447.37 T
|
|
(bus are somewhat faster) 207 435.37 T
|
|
(, requiring data to be passed in only one direction. \050In contrast,) 302.91 435.37 T
|
|
(DMA transfers can be extensively pipelined through the use of data prefetching, which) 207 423.37 T
|
|
(is performed by the hardware.\051 Latency for single PIO reads from the VME bus is) 207 411.37 T
|
|
(approximately 4 microseconds.) 207 399.37 T
|
|
-0.38 (If multiple VME busses are in use, PIO bandwidth may be increased by using a dif) 207 375.37 P
|
|
-0.38 (ferent) 532.57 375.37 P
|
|
(CPU to perform PIO accesses to each VME bus. Using more than one CPU to do PIO) 207 363.37 T
|
|
(accesses to devices on the same VME bus will result in little or no increase in overall) 207 351.37 T
|
|
(bandwidth, due to the fact that the POWERpath-2 bus uses split transactions.) 207 339.37 T
|
|
0 9 Q
|
|
(5.3.2) 178.01 184.03 T
|
|
(DMA Engine) 207 184.03 T
|
|
1 10 Q
|
|
(Because of the modest PIO transfer rates achievable, a DMA engine is included as part) 207 171.37 T
|
|
-0.06 (of each VME bus in a POWERpath-2 system. The DMA engine enables ef) 207 159.37 P
|
|
-0.06 (\336cient block-) 505.04 159.37 P
|
|
(mode DMA transfers of data between system memory and VME boards which support) 207 147.37 T
|
|
(only slave mode \050PIO\051 operations.) 207 135.37 T
|
|
(Provided that blocks of data of at least 32 contiguous bytes are used, this DMA engine) 207 111.37 T
|
|
-0.25 (can transfer data at a higher rate than that achieved using PIO. The DMA engine is capa-) 207 99.37 P
|
|
1 9 Q
|
|
(D32 BLOCK) 207 621.03 T
|
|
(22 Mb / S) 269.19 621.03 T
|
|
(24 Mb / S) 323.19 621.03 T
|
|
(D64 BLOCK) 207 606.03 T
|
|
(55 Mb / S) 269.19 606.03 T
|
|
(58 Mb / S) 323.19 606.03 T
|
|
72 283.03 558 306.03 C
|
|
207 291.03 558 291.03 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
72 291.03 198 291.03 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(T) 72 277.03 T
|
|
(ABLE 5.) 76.83 277.03 T
|
|
6 F
|
|
(VME PIO Bandwidth \050CPU accessing Slave on VME Bus\051) 207 277.03 T
|
|
0 8 Q
|
|
(READ) 261 253.7 T
|
|
(WRITE) 315 253.7 T
|
|
1 9 Q
|
|
(D8) 207 239.03 T
|
|
(0.2 Mb / S) 261 239.03 T
|
|
-0.15 (0.75 Mb / S) 315 239.03 P
|
|
(D16) 207 224.03 T
|
|
(0.5 Mb / S) 261 224.03 T
|
|
(1.5 Mb / S) 315 224.03 T
|
|
(D32) 207 209.03 T
|
|
(1 Mb / S) 261 209.03 T
|
|
(3 Mb / S) 315 209.03 T
|
|
72 665.03 558 688.03 C
|
|
207 673.03 558 673.03 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
72 673.03 198 673.03 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(T) 72 659.03 T
|
|
(ABLE 4.) 76.83 659.03 T
|
|
6 F
|
|
(VME Bus DMA Performance \050using DMA board on VME\051) 207 659.03 T
|
|
0 8 Q
|
|
(READ) 269.19 635.7 T
|
|
(WRITE) 323.19 635.7 T
|
|
FMENDPAGE
|
|
%%EndPage: "29" 30
|
|
%%Page: "30" 30
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(VME Bus Capabilities and Use) 189 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(30) 54 60.96 T
|
|
0 9 Q
|
|
( of) 65.11 60.96 T
|
|
0 10 Q
|
|
( 33) 76.1 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
1 10 Q
|
|
-0.37 (ble of performing D8, D16, D32, D32 Block, and D64 Block data transfers in A16, A24,) 189 680.66 P
|
|
(and A32 address spaces.) 189 668.66 T
|
|
-0.26 (T) 189 644.66 P
|
|
-0.26 (able 6 illustrates the performance of the DMA engine versus the size of the transfer for) 194.41 644.66 P
|
|
(a typical VME slave device using D32 accesses. The performance increases with) 189 632.66 T
|
|
(increasing block size because the start-up cost of using the DMA engine is amortized) 189 620.66 T
|
|
-0.11 (over a lar) 189 608.66 P
|
|
-0.11 (ger number of bytes. In systems with multiple VME busses, each bus includes) 226.34 608.66 P
|
|
-0.37 (an independent DMA engine, with the result that simultaneous performance on each bus) 189 596.66 P
|
|
(will be as shown in T) 189 584.66 T
|
|
(able 6. Performance using D64 transfers will be approximately) 274.08 584.66 T
|
|
(\050though somewhat less than\051 twice the performance shown in T) 189 572.66 T
|
|
(able 6.) 442.28 572.66 T
|
|
(A set of library functions for controlling the DMA engine from a user process is pro-) 189 548.66 T
|
|
(vided in IRIX with REACT) 189 536.66 T
|
|
(. These allow the user to set up buf) 299.31 536.66 T
|
|
(fers, map the DMA) 438.75 536.66 T
|
|
(engine into a process\325 virtual address space, and initiate DMA operations. \050See) 189 524.66 T
|
|
5 F
|
|
(usr) 189 512.66 T
|
|
(dma\0507\051) 201.4 512.66 T
|
|
1 F
|
|
( and) 230.27 512.66 T
|
|
5 F
|
|
(udmalib\0503\051) 249.7 512.66 T
|
|
1 F
|
|
(\051. The initialization routines use system calls, but the actual) 294.11 512.66 T
|
|
-0.23 (transfers are completed in user mode, eliminating the overhead of making a system call.) 189 305.66 P
|
|
(This keeps very low the overhead involved in using the DMA engine, resulting in a net) 189 293.66 T
|
|
(performance increase compared with PIOs for transfers of 32 bytes and lar) 189 281.66 T
|
|
(ger) 487.18 281.66 T
|
|
(.) 499.39 281.66 T
|
|
0 9 Q
|
|
(5.3.3) 160.01 258.33 T
|
|
(Intelligent I/O Controllers) 189 258.33 T
|
|
1 10 Q
|
|
(In addition to the techniques described above, it is possible to use a VME CPU board) 189 245.66 T
|
|
-0.3 (\050non-SGI\051 to act as an intelligent DMA engine to copy data between a slave VME board) 189 233.66 P
|
|
(and system memory) 189 221.66 T
|
|
(. This may of) 268.86 221.66 T
|
|
(fer advantages if non-contiguous blocks of data must) 321.98 221.66 T
|
|
-0.06 (be transferred, or if it is desirable to do some preprocessing of the data before writing it) 189 209.66 P
|
|
(to system memory) 189 197.66 T
|
|
(.) 262.2 197.66 T
|
|
54 480.33 540 503.33 C
|
|
189 488.33 540 488.33 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
54 488.33 180 488.33 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(T) 54 474.33 T
|
|
(ABLE 6.) 58.83 474.33 T
|
|
6 F
|
|
(VME DMA Engine Performance vs. Block Size \050MB / sec, D32 transfers\051) 189 474.33 T
|
|
0 8 Q
|
|
(Size \050bytes\051) 189 450.99 T
|
|
(READ) 245.43 450.99 T
|
|
(WRITE) 304.52 450.99 T
|
|
(BLOCK READ) 368.94 450.99 T
|
|
(BLOCK WRITE) 434.24 450.99 T
|
|
1 9 Q
|
|
(32) 189 436.33 T
|
|
(2.8) 245.43 436.33 T
|
|
(2.6) 304.52 436.33 T
|
|
(2.7) 368.94 436.33 T
|
|
(2.7) 434.24 436.33 T
|
|
(64) 189 421.33 T
|
|
(3.8) 245.43 421.33 T
|
|
(3.8) 304.52 421.33 T
|
|
(4.0) 368.94 421.33 T
|
|
(3.9) 434.24 421.33 T
|
|
(128) 189 406.33 T
|
|
(5.0) 245.43 406.33 T
|
|
(5.3) 304.52 406.33 T
|
|
(5.6) 368.94 406.33 T
|
|
(5.8) 434.24 406.33 T
|
|
(256) 189 391.33 T
|
|
(6.0) 245.43 391.33 T
|
|
(6.7) 304.52 391.33 T
|
|
(6.4) 368.94 391.33 T
|
|
(7.3) 434.24 391.33 T
|
|
(512) 189 376.33 T
|
|
(6.4) 245.43 376.33 T
|
|
(7.7) 304.52 376.33 T
|
|
(7.0) 368.94 376.33 T
|
|
(8.0) 434.24 376.33 T
|
|
(1024) 189 361.33 T
|
|
(6.8) 245.43 361.33 T
|
|
(8.0) 304.52 361.33 T
|
|
(7.5) 368.94 361.33 T
|
|
(8.8) 434.24 361.33 T
|
|
(2048) 189 346.33 T
|
|
(7.0) 245.43 346.33 T
|
|
(8.4) 304.52 346.33 T
|
|
(7.8) 368.94 346.33 T
|
|
(9.2) 434.24 346.33 T
|
|
(4096) 189 331.33 T
|
|
(7.1) 245.43 331.33 T
|
|
(8.7) 304.52 331.33 T
|
|
(7.9) 368.94 331.33 T
|
|
(9.4) 434.24 331.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "30" 31
|
|
%%Page: "31" 31
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(SCSI Capabilities and Use) 207 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(31) 522.29 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
72 672.33 558 675.33 C
|
|
207 674.48 558 674.48 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
72 674.48 198 674.48 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 12 Q
|
|
0 X
|
|
0 K
|
|
(6.0) 207 679.33 T
|
|
( SCSI Capabilities and Use) 223.67 679.33 T
|
|
1 10 Q
|
|
(The system includes two SCSI-2 controllers on each POWERchannel-2 board, and has) 207 657.66 T
|
|
(the capability to add additional controllers on HIO modules in groups of three. Since) 207 645.66 T
|
|
-0.1 (these controllers are capable of dif) 207 633.66 P
|
|
-0.1 (ferential output, SCSI devices can be cabled long dis-) 344.24 633.66 P
|
|
(tances from the system cabinet. The SCSI controllers are inexpensive and ef) 207 621.66 T
|
|
(\336cient) 511.59 621.66 T
|
|
(DMA devices which make near) 207 609.66 T
|
|
(-optimum use of the POWERpath-2 bus bandwidth.) 333.36 609.66 T
|
|
(Using 16-bit SCSI, useful bandwidths of up to 14 megabytes per second may be) 207 585.66 T
|
|
(achieved on each SCSI channel. Using 8-bit SCSI, approximately 7 megabytes per sec-) 207 573.66 T
|
|
(ond is available. These bandwidths may be achieved by con\336guring the system to per-) 207 561.66 T
|
|
(form DMA directly into the user process\325 address space without buf) 207 549.66 T
|
|
(fering.) 478.84 549.66 T
|
|
(Although SCSI represents a non-traditional approach to controlling real-time external) 207 525.66 T
|
|
(hardware, some of our real-time customers are \336nding that it can be used to provide a) 207 513.66 T
|
|
(more cost-ef) 207 501.66 T
|
|
(fective interface than VME for controlling remote devices. The ability to) 257.05 501.66 T
|
|
(cable it long distances and the high density \050up to eight SCSI channels per POWER-) 207 489.66 T
|
|
(channel-2 Board\051 of connections make SCSI a particularly attractive option in the sys-) 207 477.66 T
|
|
(tem.) 207 465.66 T
|
|
FMENDPAGE
|
|
%%EndPage: "31" 32
|
|
%%Page: "32" 32
|
|
612 792 0 FMBEGINPAGE
|
|
54 750.68 540 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Summary of REACT System Functions) 189 739.85 T
|
|
54 726.98 540 726.98 2 L
|
|
0.25 H
|
|
N
|
|
54 75.33 540 75.33 2 L
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(32) 54 60.96 T
|
|
0 9 Q
|
|
( of) 65.11 60.96 T
|
|
0 10 Q
|
|
( 33) 76.1 60.96 T
|
|
0 9 Q
|
|
(REACT In IRIX V) 189 60.96 T
|
|
(.5 T) 258.09 60.96 T
|
|
(echnical Report) 272.91 60.96 T
|
|
54 672.33 540 675.33 C
|
|
189 674.48 540 674.48 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
54 674.48 180 674.48 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 12 Q
|
|
0 X
|
|
0 K
|
|
(7.0) 189 679.33 T
|
|
( Summary of REACT System Functions) 205.67 679.33 T
|
|
54 619.33 540 642.33 C
|
|
189 627.33 540 627.33 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
54 627.33 180 627.33 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(T) 54 613.33 T
|
|
(ABLE 7.) 58.83 613.33 T
|
|
6 F
|
|
(REACT System Functions) 189 613.33 T
|
|
0 8 Q
|
|
(System Call Name) 189 589.99 T
|
|
(Description) 276 589.99 T
|
|
1 9 Q
|
|
(realtime\0505\051) 189 575.33 T
|
|
(Introduction to IRIX real-time facilities) 276 575.33 T
|
|
(sproc\0502\051) 189 560.33 T
|
|
(Creates share group process) 276 560.33 T
|
|
(ei\0507\051) 189 545.33 T
|
|
(External interrupt interface speci\336cation) 276 545.33 T
|
|
(ftimer\0501\051) 189 530.33 T
|
|
(Reports status of high-resolution interval timer) 276 530.33 T
|
|
(timers\0505\051) 189 515.33 T
|
|
(Description of BSD4.3 interval timers) 276 515.33 T
|
|
(systune\0501M\051) 189 500.33 T
|
|
(Displays or sets system tuning parameters) 276 500.33 T
|
|
(sleep\0502\051) 189 485.33 T
|
|
(Suspends process execution for speci\336ed time) 276 485.33 T
|
|
(time\0502\051) 189 470.33 T
|
|
(Returns time in seconds since 1/1/70) 276 470.33 T
|
|
(times\0502\051) 189 455.33 T
|
|
(Returns time since start of process) 276 455.33 T
|
|
(gettimeofday\0502\051) 189 440.33 T
|
|
(Returns current time in seconds and microseconds) 276 440.33 T
|
|
(syssgi\0502\051) 189 425.33 T
|
|
(Returns system-dependent information) 276 425.33 T
|
|
(mmap\0502\051) 189 410.33 T
|
|
(Maps range of I/O addresses to user) 276 410.33 T
|
|
(\325) 405.62 410.33 T
|
|
(s address space) 408.11 410.33 T
|
|
(frs_create\0503\051) 189 395.33 T
|
|
(Creates frame scheduler process group) 276 395.33 T
|
|
(frs_enqueue\0503\051) 189 380.33 T
|
|
(Enqueues a process on a minor frame) 276 380.33 T
|
|
(frs_join\0503\051) 189 365.33 T
|
|
(Connects an enqueued process to the frame scheduler) 276 365.33 T
|
|
(frs_start\0503\051) 189 350.33 T
|
|
(Starts frame scheduler) 276 350.33 T
|
|
(frs_yield\0503\051) 189 335.33 T
|
|
(Causes an enqueued process to yield the processor to another process) 276 335.33 T
|
|
(frs_destroy\0503\051) 189 320.33 T
|
|
(T) 276 320.33 T
|
|
(erminates a frame scheduler) 280.86 320.33 T
|
|
(sigaction\0502\051) 189 305.33 T
|
|
(Speci\336es and reports on handling of individual POSIX signals) 276 305.33 T
|
|
(sigaltstack\0502\051) 189 290.33 T
|
|
(Sets or gets signal on alternate stack) 276 290.33 T
|
|
(sigblock\0503B\051) 189 275.33 T
|
|
(Blocks signals from delivery to process \050BSD4.3\051) 276 275.33 T
|
|
(siginfo\0505\051) 189 260.33 T
|
|
(Returns information about signal generation) 276 260.33 T
|
|
(signal\0502\051) 189 245.33 T
|
|
(Interface to \050unreliable\051 System V UNIX signals) 276 245.33 T
|
|
(signal\0503B\051) 189 230.33 T
|
|
(Interface to \050reliable\051 BSD4.3 signals) 276 230.33 T
|
|
(signal\0505\051) 189 215.33 T
|
|
(Description of POSIX signal mechanism) 276 215.33 T
|
|
(sigpending\0502\051) 189 200.33 T
|
|
(Returns set of pending signals \050POSIX\051) 276 200.33 T
|
|
(sigprocmask\0502\051) 189 185.33 T
|
|
(Manipulates signals blocked from delivery to process \050POSIX\051) 276 185.33 T
|
|
(sigqueue\0503\051) 189 170.33 T
|
|
(Queues a signal to process or group of processes) 276 170.33 T
|
|
(sigsend\0502\051) 189 155.33 T
|
|
(Sends signal to process or group of processes) 276 155.33 T
|
|
(sigsuspend\0502\051) 189 140.33 T
|
|
(Releases blocked signals and waits for interrupt \050POSIX\051) 276 140.33 T
|
|
(sigsetops\0503\051) 189 125.33 T
|
|
(Manipulates and examines POSIX signal dispositions) 276 125.33 T
|
|
(sigset\0502\051) 189 110.33 T
|
|
(Manages signal disposition \050System V\051) 276 110.33 T
|
|
(sigstack\0502\051) 189 95.33 T
|
|
(Sets or gets signal stack context) 276 95.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "32" 33
|
|
%%Page: "33" 33
|
|
612 792 0 FMBEGINPAGE
|
|
72 750.68 558 750.68 2 L
|
|
2 H
|
|
0 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
0 9 Q
|
|
(Summary of REACT System Functions) 207 739.85 T
|
|
72 726.98 558 726.98 2 L
|
|
0.25 H
|
|
N
|
|
72 75.33 558 75.33 2 L
|
|
2 Z
|
|
N
|
|
(REACT In IRIX V) 207 60.96 T
|
|
(.5 T) 276.09 60.96 T
|
|
(echnical Report) 290.91 60.96 T
|
|
0 10 Q
|
|
(33) 522.29 60.96 T
|
|
0 9 Q
|
|
( of) 533.41 60.96 T
|
|
0 10 Q
|
|
(33) 546.89 60.96 T
|
|
1 9 Q
|
|
(sigtimedwait\0503\051) 207 620.33 T
|
|
(W) 294 620.33 T
|
|
(aits on set of signals with timeout) 301.77 620.33 T
|
|
(sigvec\0503B\051) 207 605.33 T
|
|
(Speci\336es and reports on disposition of individual BSD4.3 signals) 294 605.33 T
|
|
(sigwait\0503\051) 207 590.33 T
|
|
(Blocks process and waits for signal) 294 590.33 T
|
|
(sigwaitinfo\0503\051) 207 575.33 T
|
|
(Returns value of queued signal) 294 575.33 T
|
|
(sigwaitrt\0503\051) 207 560.33 T
|
|
(W) 294 560.33 T
|
|
(aits for queued signals \050IRIX 5.2 only\051) 301.77 560.33 T
|
|
(mpin\0502\051) 207 545.33 T
|
|
(Locks speci\336ed range of addresses in memory) 294 545.33 T
|
|
(munpin\0502\051) 207 530.33 T
|
|
(Unlocks speci\336ed range of addresses in memory) 294 530.33 T
|
|
(plock\0502\051) 207 515.33 T
|
|
(Locks entire virtual space in memory) 294 515.33 T
|
|
(punlock\0502\051) 207 500.33 T
|
|
(Unlocks entire virtual space) 294 500.33 T
|
|
(aio_read\0503\051) 207 485.33 T
|
|
(Issues aio read request) 294 485.33 T
|
|
(aio_write\0503\051) 207 470.33 T
|
|
(Issues aio write request) 294 470.33 T
|
|
(aio_cancel\0503\051) 207 455.33 T
|
|
(Cancels one or more aio requests) 294 455.33 T
|
|
(aio_error\0503\051) 207 440.33 T
|
|
(Returns error status of an aio request) 294 440.33 T
|
|
(aio_init\0503\051) 207 425.33 T
|
|
(Initializes POSIX asynchronous I/O interface) 294 425.33 T
|
|
(aio_return\0503\051) 207 410.33 T
|
|
(Returns error status of an aio request) 294 410.33 T
|
|
(aio_suspend\0503\051) 207 395.33 T
|
|
(Suspends calling process until aio request completes) 294 395.33 T
|
|
(lio_listio\0503\051) 207 380.33 T
|
|
(Issues multiple aio requests) 294 380.33 T
|
|
(schedctl\0502\051) 207 365.33 T
|
|
(Sets non-degrading priorities) 294 365.33 T
|
|
(pset\0501M\051) 207 350.33 T
|
|
(Displays and manages processor set information) 294 350.33 T
|
|
(usinit\0503P\051) 207 335.33 T
|
|
(Initializes shared arena) 294 335.33 T
|
|
(usmalloc\0503P\051) 207 320.33 T
|
|
(Allocates shared memory from shared arena) 294 320.33 T
|
|
(usnewlock\0503P\051) 207 305.33 T
|
|
(Allocates and initializes lock from shared arena) 294 305.33 T
|
|
(usnewsema\0503P\051) 207 290.33 T
|
|
(Allocates and initializes semaphore from shared arena) 294 290.33 T
|
|
(poll\0502\051) 207 275.33 T
|
|
(W) 294 275.33 T
|
|
(aits for completion of multiple \336le operations) 301.77 275.33 T
|
|
(usnewpollsema\0503P\051) 207 260.33 T
|
|
(Allocates and initializes pollable semaphore) 294 260.33 T
|
|
(blockproc\0502\051) 207 245.33 T
|
|
(Blocks a process) 294 245.33 T
|
|
(runon\0501\051) 207 230.33 T
|
|
(Locks process to a speci\336ed processor) 294 230.33 T
|
|
(mpa) 207 215.33 T
|
|
5 10 Q
|
|
(sysmp\0502\051) 222.48 215.33 T
|
|
1 9 Q
|
|
(dmin\050) 258.56 215.33 T
|
|
(1\051) 207 204.33 T
|
|
(Controls and reports processor status) 294 215.33 T
|
|
(sysmp\0502\051) 207 189.33 T
|
|
(Sets multiprocessing system parameters) 294 189.33 T
|
|
(1boot\0501M\051) 207 174.33 T
|
|
(Implements updates of) 294 174.33 T
|
|
5 10 Q
|
|
(/var/sysgen/system) 378.12 174.33 T
|
|
1 9 Q
|
|
(udmalib\0503X\051) 207 159.33 T
|
|
(Library of routines for using the DMA engine) 294 159.33 T
|
|
72 664.33 558 687.33 C
|
|
207 672.33 558 672.33 2 L
|
|
0.25 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
72 672.33 198 672.33 2 L
|
|
0 Z
|
|
N
|
|
0 0 612 792 C
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(T) 72 658.33 T
|
|
(ABLE 7.) 76.83 658.33 T
|
|
6 F
|
|
(REACT System Functions) 207 658.33 T
|
|
0 8 Q
|
|
(System Call Name) 207 634.99 T
|
|
(Description) 294 634.99 T
|
|
FMENDPAGE
|
|
%%EndPage: "33" 34
|
|
%%Trailer
|
|
%%BoundingBox: 0 0 612 792
|
|
%%Pages: 33 1
|
|
%%DocumentFonts: Helvetica-Bold
|
|
%%+ Times-Roman
|
|
%%+ Times-Bold
|
|
%%+ Symbol
|
|
%%+ Courier-Bold
|
|
%%+ Times-Italic
|
|
%%+ Helvetica
|