6466 lines
168 KiB
PostScript
6466 lines
168 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 /Palatino-Roman FMFONTDEFINE
|
|
1 0 /Helvetica-Bold FMFONTDEFINE
|
|
2 0 /Palatino-Italic FMFONTDEFINE
|
|
3 0 /Times-Roman FMFONTDEFINE
|
|
4 0 /Helvetica FMFONTDEFINE
|
|
5 0 /Palatino-Bold FMFONTDEFINE
|
|
6 0 /Courier 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
|
|
234 483.31 549 612 R
|
|
7 X
|
|
0 K
|
|
V
|
|
0 18 Q
|
|
0 X
|
|
-0.05 (The Real-time Frame Scheduler in IRIX) 234 600 P
|
|
(Pr) 234 578 T
|
|
(ogrammer) 251.65 578 T
|
|
(\325s Guide) 336.4 578 T
|
|
234 176.74 549 188.74 R
|
|
7 X
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "1" 2
|
|
%%Page: "2" 2
|
|
612 792 0 FMBEGINPAGE
|
|
216 171 549 216 R
|
|
7 X
|
|
0 K
|
|
V
|
|
0 9 Q
|
|
0 X
|
|
(The Real-time Frame Scheduler in IRIX Pr) 216 210 T
|
|
(ogrammer) 382.35 210 T
|
|
(\325s Guide) 424.69 210 T
|
|
(CONTRIBUT) 216 669 T
|
|
(ORS) 269.28 669 T
|
|
(W) 216 648 T
|
|
(ritten by Luis Stevens) 224.32 648 T
|
|
(Edited by David Cortesi) 216 637 T
|
|
(Illustrated by Luis Stevens) 216 626 T
|
|
(\251 Copyright 1994 Silicon Graphics, Inc.\321 All Rights Reserved) 216 603 T
|
|
(This document contains pr) 216 591 T
|
|
(oprietary and con\336dential information of Silicon) 322.11 591 T
|
|
(Graphics, Inc. The contents of this document may not be disclosed to thir) 216 580 T
|
|
(d parties,) 505.54 580 T
|
|
(copied, or duplicated in any form, in whole or in part, without the prior written) 216 569 T
|
|
(permission of Silicon Graphics, Inc.) 216 558 T
|
|
(RESTRICTED RIGHTS LEGEND) 216 535 T
|
|
(Use, duplication, or disclosur) 216 523 T
|
|
(e of the technical data contained in this document by) 332.56 523 T
|
|
(the Government is subject to r) 216 512 T
|
|
(estrictions as set forth in subdivision \050c\051 \0501\051 \050ii\051 of the) 335.21 512 T
|
|
(Rights in T) 216 501 T
|
|
(echnical Data and Computer Softwar) 258.61 501 T
|
|
(e clause at DF) 405.9 501 T
|
|
(ARS 52.227-7013 and/) 460.3 501 T
|
|
(or in similar or successor clauses in the F) 216 490 T
|
|
(AR, or in the DOD or NASA F) 377.05 490 T
|
|
(AR) 496.73 490 T
|
|
(Supplement. Unpublished rights r) 216 479 T
|
|
(eserved under the Copyright Laws of the United) 351.85 479 T
|
|
(States. Contractor/manufactur) 216 468 T
|
|
(er is Silicon Graphics, Inc., 201) 338.28 468 T
|
|
(1 N. Shor) 458.42 468 T
|
|
(eline Blvd.,) 495.36 468 T
|
|
(Mountain V) 216 457 T
|
|
(iew) 263.57 457 T
|
|
(, CA 94039-731) 277.16 457 T
|
|
(1.) 335.71 457 T
|
|
(Silicon Graphics and IRIS ar) 216 434 T
|
|
(e r) 327.51 434 T
|
|
(egister) 337.45 434 T
|
|
(ed trademarks and IRIX is a trademark of) 363.8 434 T
|
|
(Silicon Graphics, Inc. Apollo is a r) 216 423 T
|
|
(egister) 350.61 423 T
|
|
(ed trademark of Apollo Computer) 376.96 423 T
|
|
(, Inc.) 512.99 423 T
|
|
-0.17 (FrameMaker is a r) 216 412 P
|
|
-0.17 (egister) 287.67 412 P
|
|
-0.17 (ed trademark of Frame technology) 314.03 412 P
|
|
-0.17 (, Inc. Hewlett-Packar) 450.18 412 P
|
|
-0.17 (d is) 532.92 412 P
|
|
-0.23 (a r) 216 401 P
|
|
-0.23 (egister) 225.9 401 P
|
|
-0.23 (ed trademark of Hewlett-Packar) 252.25 401 P
|
|
-0.23 (d Company) 379.58 401 P
|
|
-0.23 (. IBM is a r) 425.43 401 P
|
|
-0.23 (egister) 467.07 401 P
|
|
-0.23 (ed trademark) 493.42 401 P
|
|
-0.66 (of International Business Machines Corporation. Macintosh is a r) 216 390 P
|
|
-0.66 (egister) 467.94 390 P
|
|
-0.66 (ed trademark) 494.29 390 P
|
|
(of Apple Computer) 216 379 T
|
|
(, Inc.) 293.27 379 T
|
|
FMENDPAGE
|
|
%%EndPage: "2" 3
|
|
%%Page: "3" 3
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(3) 562 109.2 T
|
|
63 669.5 567 680.25 C
|
|
63 673.99 567 673.99 2 L
|
|
0.3 H
|
|
2 Z
|
|
0 X
|
|
0 K
|
|
N
|
|
234 674.45 277.57 677.45 R
|
|
V
|
|
0.5 H
|
|
0 Z
|
|
N
|
|
9 72 603 720 C
|
|
0 16 Q
|
|
0 X
|
|
0 K
|
|
(Contents) 234 658.84 T
|
|
0 10 Q
|
|
(What is Frame Scheduling 5) 234 596.84 T
|
|
(IRIX Process Scheduling 5) 234 581.84 T
|
|
(Operation of the FRS 5) 234 566.84 T
|
|
(Major and Minor Frames 6) 252 551.84 T
|
|
(Using Minor Frames 6) 252 536.84 T
|
|
(Using Multiple Processors 7) 252 521.84 T
|
|
(Defining the Time Base 8) 252 506.84 T
|
|
(Programming with the Frame Scheduler 8) 234 491.84 T
|
|
(Designing with the Frame Scheduler 8) 252 476.84 T
|
|
(Frame Scheduling Disciplines 9) 252 461.84 T
|
|
(Using the Background Discipline 10) 270 446.84 T
|
|
(Multiple Executions In A Major Frame 10) 270 431.84 T
|
|
(Using Multiple Consecutive Minor Frames 10) 270 416.84 T
|
|
(Preparing the System 11) 252 401.84 T
|
|
(Implementing a Single FRS 12) 252 386.84 T
|
|
(Implementing Multiple Synchronized Schedulers 13) 252 371.84 T
|
|
(Frame Scheduler Methods 14) 234 356.84 T
|
|
(Interrupt Sources 14) 252 341.84 T
|
|
(On-Chip Timer Interrupt 14) 270 326.84 T
|
|
(High-Resolution Timer 15) 270 311.84 T
|
|
(External Interrupts 15) 270 296.84 T
|
|
(Vertical Sync Interrupt 15) 270 281.84 T
|
|
(Device Driver Interrupt 15) 270 266.84 T
|
|
(Software Interrupt 16) 270 251.84 T
|
|
(Interrupt Isolation 16) 252 236.84 T
|
|
(Interrupt Synchronization 16) 252 221.84 T
|
|
(Startup Synchronization 17) 252 206.84 T
|
|
(Scheduling Within A Minor Frame 17) 252 191.84 T
|
|
(Frame Scheduler Signals 18) 252 176.84 T
|
|
FMENDPAGE
|
|
%%EndPage: "3" 4
|
|
%%Page: "4" 4
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(4) 45 109.2 T
|
|
0 F
|
|
(Contents) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(The Frame Scheduler API 19) 216 632.33 T
|
|
(Creating a Master or Slave Frame Scheduler 20) 234 617.33 T
|
|
(Enqueuing Processes to a Frame Scheduler 22) 234 602.33 T
|
|
(Joining a Frame Scheduler 24) 234 587.33 T
|
|
(Starting the Frame Scheduler 25) 234 572.33 T
|
|
(Yielding Control at the End of a Frame 26) 234 557.33 T
|
|
(Delivering Time-Base Interrupts to a Frame Scheduler 28) 234 542.33 T
|
|
(Stopping and Resuming Frame Schedulers 29) 234 527.33 T
|
|
(Dynamic Management of Scheduler Queues 30) 234 512.33 T
|
|
(Destroying a Frame Scheduler 32) 234 497.33 T
|
|
(The Frame Scheduler DDI 33) 216 482.33 T
|
|
(Frame Scheduler Initialization Function 33) 234 467.33 T
|
|
(Example of Initialization Function 34) 252 452.33 T
|
|
(Frame Scheduler Termination Function 35) 234 437.33 T
|
|
(Example of Termination Function 35) 252 422.33 T
|
|
(Exporting the Initialization and Termination Functions 35) 234 407.33 T
|
|
(Example of Exporting Entry Points 36) 252 392.33 T
|
|
(Generating Interrupts 36) 234 377.33 T
|
|
(Example of Generating Interrupt 36) 252 362.33 T
|
|
(Using a Device Driver 37) 234 347.33 T
|
|
(Examples 38) 216 332.33 T
|
|
(Basic Example 38) 234 317.33 T
|
|
(Real-time Application Specification 38) 252 302.33 T
|
|
(Frame Scheduler Design 39) 252 287.33 T
|
|
(Example of Scheduling Separate Programs 39) 234 272.33 T
|
|
(Example of Multiple Synchronized Schedulers 41) 234 257.33 T
|
|
(Example of Device Driver 42) 234 242.33 T
|
|
(Example of a 60 Hz Frame Rate 42) 234 227.33 T
|
|
(Example of Memory and Cache Management 43) 234 212.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "4" 5
|
|
%%Page: "5" 5
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(5) 562 109.2 T
|
|
1 12 Q
|
|
(What is Frame Scheduling) 63 682.55 T
|
|
0 10 Q
|
|
-0.04 (A frame scheduler is a pr) 234 656.88 P
|
|
-0.04 (ocess execution manager that schedules pr) 344.91 656.88 P
|
|
-0.04 (ocesses) 532.36 656.88 P
|
|
(in a pr) 234 644.88 T
|
|
(ede\336ned, cyclic sequence. The scheduling period, or) 262.49 644.88 T
|
|
2 F
|
|
(frame) 495.04 644.88 T
|
|
0 F
|
|
(, is) 517.8 644.88 T
|
|
(determined by a r) 234 632.88 T
|
|
(epetitive time base, usually a pr) 312.68 632.88 T
|
|
(ocessor interr) 452.78 632.88 T
|
|
(upt.) 512.43 632.88 T
|
|
(The REACT/Pr) 234 608.88 T
|
|
(o Frame Scheduler \050FRS\051 pr) 302.86 608.88 T
|
|
(ovides this basic scheduling) 424.4 608.88 T
|
|
(service, but extends it with additional featur) 234 596.88 T
|
|
(es to cr) 429.32 596.88 T
|
|
(eate a powerful) 460.27 596.88 T
|
|
(development framework for r) 234 584.88 T
|
|
(eal-time applications, allowing r) 365.57 584.88 T
|
|
(eal-time) 507.96 584.88 T
|
|
(application developers to mor) 234 572.88 T
|
|
(e easily exploit the PowerPath-2 ar) 366.64 572.88 T
|
|
(chitectur) 519.42 572.88 T
|
|
(e.) 558.12 572.88 T
|
|
1 12 Q
|
|
(IRIX Process Scheduling) 63 531.55 T
|
|
0 10 Q
|
|
-0.19 (The normal IRIX scheduler is \337exible and tunable. Real-time executives can) 234 505.89 P
|
|
(use IRIX system calls to set r) 234 493.89 T
|
|
(eal-time priorities, to isolate and r) 359.28 493.89 T
|
|
(eserve) 508.4 493.89 T
|
|
(pr) 234 481.89 T
|
|
(ocessors, and to achieve low-over) 243.77 481.89 T
|
|
(head synchr) 391.77 481.89 T
|
|
(onization of multiple) 445.61 481.89 T
|
|
(pr) 234 469.89 T
|
|
(ocesses. \050These standar) 243.77 469.89 T
|
|
(d kernel featur) 345.72 469.89 T
|
|
(es ar) 410.79 469.89 T
|
|
(e described in the REACT) 431.08 469.89 T
|
|
(T) 234 457.89 T
|
|
(echnical Report.\051 However) 239.21 457.89 T
|
|
(, the designer of a r) 356.81 457.89 T
|
|
(eal-time application is) 441.37 457.89 T
|
|
(r) 234 445.89 T
|
|
(equir) 237.77 445.89 T
|
|
(ed to understand and integrate a variety of privileged system calls) 260.86 445.89 T
|
|
-0.66 (while cr) 234 433.89 P
|
|
-0.66 (eating a multipr) 268.8 433.89 P
|
|
-0.66 (ocessor scheduling mechanism\321work that is at best) 338.49 433.89 P
|
|
(a distraction fr) 234 421.89 T
|
|
(om the r) 298.42 421.89 T
|
|
(eal task of designing a high-performance r) 335.33 421.89 T
|
|
(eal-time) 522.08 421.89 T
|
|
(pr) 234 409.89 T
|
|
(ogram.) 243.77 409.89 T
|
|
(The REACT/Pr) 234 385.89 T
|
|
(o Frame Scheduler integrates the IRIX scheduler featur) 302.86 385.89 T
|
|
(es) 544.71 385.89 T
|
|
(and extends them, pr) 234 373.89 T
|
|
(oviding an ef) 327.53 373.89 T
|
|
(\336cient and easy-to-use framework for) 385.68 373.89 T
|
|
(r) 234 361.89 T
|
|
(eal-time application development.) 237.77 361.89 T
|
|
1 12 Q
|
|
(Operation of the FRS) 63 320.55 T
|
|
0 10 Q
|
|
(A single FRS is a kernel object that cyclicly schedules a set of pr) 234 294.89 T
|
|
(ocesses,) 515.87 294.89 T
|
|
(accor) 234 282.89 T
|
|
(ding to pr) 257.1 282.89 T
|
|
(ogram-de\336ned r) 300.97 282.89 T
|
|
(ules, on a speci\336c pr) 373.1 282.89 T
|
|
(ocessor) 462.46 282.89 T
|
|
(. The FRS) 494.29 282.89 T
|
|
-0.38 (super) 234 270.89 P
|
|
-0.38 (cedes the IRIX scheduler) 258.83 270.89 P
|
|
-0.38 (, so that only FRS-scheduled pr) 365.8 270.89 P
|
|
-0.38 (ocesses r) 501.47 270.89 P
|
|
-0.38 (un on) 539.64 270.89 P
|
|
(that pr) 234 258.89 T
|
|
(ocessor) 263.6 258.89 T
|
|
(.) 295.43 258.89 T
|
|
(The application designer determines how many pr) 234 234.89 T
|
|
(ocessors ar) 457.62 234.89 T
|
|
(e r) 505.68 234.89 T
|
|
(equir) 516.73 234.89 T
|
|
(ed to) 539.82 234.89 T
|
|
-0.73 (meet the performance r) 234 222.89 P
|
|
-0.73 (equir) 334.92 222.89 P
|
|
-0.73 (ements, and initiates one FRS for each pr) 358.01 222.89 P
|
|
-0.73 (ocessor) 532.67 222.89 P
|
|
(to be used.) 234 210.89 T
|
|
FMENDPAGE
|
|
%%EndPage: "5" 6
|
|
%%Page: "6" 6
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(6) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
1 11.5 Q
|
|
(Major and Minor Frames) 216 631.33 T
|
|
0 10 Q
|
|
-0.67 (W) 216 606.83 P
|
|
-0.67 (ithin one FRS, each scheduling cycle is initiated by a r) 225.45 606.83 P
|
|
-0.67 (eal-time event. These) 455.17 606.83 P
|
|
(r) 216 594.83 T
|
|
(epetitive events divide time into intervals called) 219.77 594.83 T
|
|
2 9 Q
|
|
(minor frames) 434.48 594.83 T
|
|
0 10 Q
|
|
(. A \336xed) 482.67 594.83 T
|
|
(number of minor frames is de\336ned as a) 216 582.83 T
|
|
2 9 Q
|
|
(major frame) 391.81 582.83 T
|
|
0 10 Q
|
|
(. The major frame is the) 435.5 582.83 T
|
|
(basic r) 216 570.83 T
|
|
(epetitive unit.) 244.37 570.83 T
|
|
-0.09 (Each minor frame has a private pr) 216 546.83 P
|
|
-0.09 (ocess queue listing all the pr) 366.05 546.83 P
|
|
-0.09 (ocesses to be) 490.55 546.83 P
|
|
(r) 216 534.83 T
|
|
(un within the minor frame interval, as shown in the following \336gur) 219.87 534.83 T
|
|
(e.) 517.27 534.83 T
|
|
-0.64 (W) 216 264.52 P
|
|
-0.64 (ithin a minor frame, pr) 225.45 264.52 P
|
|
-0.64 (ocesses ar) 323.71 264.52 P
|
|
-0.64 (e dispatched in the or) 366.52 264.52 P
|
|
-0.64 (der that they appear) 459.22 264.52 P
|
|
(in the queue. \050Normal Irix pr) 216 252.52 T
|
|
(ocess priorities ar) 343.73 252.52 T
|
|
(e ignor) 421.02 252.52 T
|
|
(ed by the FRS.\051) 451.81 252.52 T
|
|
1 11.5 Q
|
|
(Using Minor Frames) 216 215.52 T
|
|
0 10 Q
|
|
(Pr) 216 191.02 T
|
|
(ocesses ar) 225.8 191.02 T
|
|
(e enqueued to one or mor) 269.25 191.02 T
|
|
(e minor frames. The queues they) 382.7 191.02 T
|
|
(appear on, and their or) 216 179.02 T
|
|
(der in those queues, determines their r) 317.37 179.02 T
|
|
(elative) 487.4 179.02 T
|
|
(execution sequence within the major frame. Pr) 216 167.02 T
|
|
(ocesses can be queued to) 420.77 167.02 T
|
|
-0.47 (mor) 216 155.02 P
|
|
-0.47 (e than one queue, so as to be scheduled mor) 234.05 155.02 P
|
|
-0.47 (e than once in a major frame.) 423.98 155.02 P
|
|
198 285.19 549 531.5 C
|
|
510.46 435.81 522 432.5 510.46 429.19 510.46 432.5 4 Y
|
|
0 X
|
|
0 K
|
|
V
|
|
216 432.5 510.46 432.5 2 L
|
|
1 H
|
|
2 Z
|
|
N
|
|
234 441.5 234 423.5 2 L
|
|
3 H
|
|
N
|
|
342 441.5 342 423.5 2 L
|
|
N
|
|
450 441.5 450 423.5 2 L
|
|
N
|
|
270 441.5 270 423.5 2 L
|
|
0.5 H
|
|
N
|
|
306 441.5 306 423.5 2 L
|
|
N
|
|
378 441.5 378 423.5 2 L
|
|
N
|
|
414 441.5 414 423.5 2 L
|
|
N
|
|
486 441.5 486 423.5 2 L
|
|
N
|
|
342 504.5 342 441.5 2 L
|
|
1 X
|
|
N
|
|
234 504.5 234 441.5 2 L
|
|
N
|
|
450 504.5 450 441.5 2 L
|
|
N
|
|
270 468.5 270 441.5 2 L
|
|
N
|
|
306 468.5 306 441.5 2 L
|
|
N
|
|
378 468.5 378 441.5 2 L
|
|
N
|
|
245.54 465.19 234 468.5 245.54 471.81 245.54 468.5 4 Y
|
|
0 X
|
|
V
|
|
258.46 471.81 270 468.5 258.46 465.19 258.46 468.5 4 Y
|
|
V
|
|
245.54 468.5 258.46 468.5 2 L
|
|
0 Z
|
|
N
|
|
281.54 465.19 270 468.5 281.54 471.81 281.54 468.5 4 Y
|
|
V
|
|
294.46 471.81 306 468.5 294.46 465.19 294.46 468.5 4 Y
|
|
V
|
|
281.54 468.5 294.46 468.5 2 L
|
|
N
|
|
317.54 465.19 306 468.5 317.54 471.81 317.54 468.5 4 Y
|
|
V
|
|
330.46 471.81 342 468.5 330.46 465.19 330.46 468.5 4 Y
|
|
V
|
|
317.54 468.5 330.46 468.5 2 L
|
|
N
|
|
414 468.5 414 441.5 2 L
|
|
2 Z
|
|
1 X
|
|
N
|
|
353.54 465.19 342 468.5 353.54 471.81 353.54 468.5 4 Y
|
|
0 X
|
|
V
|
|
366.46 471.81 378 468.5 366.46 465.19 366.46 468.5 4 Y
|
|
V
|
|
353.54 468.5 366.46 468.5 2 L
|
|
0 Z
|
|
N
|
|
389.54 465.19 378 468.5 389.54 471.81 389.54 468.5 4 Y
|
|
V
|
|
402.46 471.81 414 468.5 402.46 465.19 402.46 468.5 4 Y
|
|
V
|
|
389.54 468.5 402.46 468.5 2 L
|
|
N
|
|
425.54 465.19 414 468.5 425.54 471.81 425.54 468.5 4 Y
|
|
V
|
|
438.46 471.81 450 468.5 438.46 465.19 438.46 468.5 4 Y
|
|
V
|
|
425.54 468.5 438.46 468.5 2 L
|
|
N
|
|
486 468.5 486 441.5 2 L
|
|
2 Z
|
|
1 X
|
|
N
|
|
461.54 465.19 450 468.5 461.54 471.81 461.54 468.5 4 Y
|
|
0 X
|
|
V
|
|
474.46 471.81 486 468.5 474.46 465.19 474.46 468.5 4 Y
|
|
V
|
|
461.54 468.5 474.46 468.5 2 L
|
|
0 Z
|
|
N
|
|
245.54 501.19 234 504.5 245.54 507.81 245.54 504.5 4 Y
|
|
V
|
|
330.46 507.81 342 504.5 330.46 501.19 330.46 504.5 4 Y
|
|
V
|
|
245.54 504.5 330.46 504.5 2 L
|
|
N
|
|
353.54 501.19 342 504.5 353.54 507.81 353.54 504.5 4 Y
|
|
V
|
|
438.46 507.81 450 504.5 438.46 501.19 438.46 504.5 4 Y
|
|
V
|
|
353.54 504.5 438.46 504.5 2 L
|
|
N
|
|
461.54 501.19 450 504.5 461.54 507.81 461.54 504.5 4 Y
|
|
V
|
|
461.54 504.5 486 504.5 2 L
|
|
2 Z
|
|
N
|
|
351 333.5 369 405.5 R
|
|
0 Z
|
|
N
|
|
351 333.5 351 315.5 2 L
|
|
2 Z
|
|
N
|
|
369 333.5 369 315.5 2 L
|
|
N
|
|
351 351.5 369 351.5 2 L
|
|
N
|
|
351 369.5 369 369.5 2 L
|
|
N
|
|
351 387.5 369 387.5 2 L
|
|
N
|
|
356.69 411.96 360 423.5 363.31 411.96 360 411.96 4 Y
|
|
V
|
|
360 405.5 360 411.96 2 L
|
|
N
|
|
387 333.5 405 405.5 R
|
|
0 Z
|
|
N
|
|
387 333.5 387 315.5 2 L
|
|
2 Z
|
|
N
|
|
405 333.5 405 315.5 2 L
|
|
N
|
|
387 351.5 405 351.5 2 L
|
|
N
|
|
387 369.5 405 369.5 2 L
|
|
N
|
|
387 387.5 405 387.5 2 L
|
|
N
|
|
392.69 411.96 396 423.5 399.31 411.96 396 411.96 4 Y
|
|
V
|
|
396 405.5 396 411.96 2 L
|
|
N
|
|
423 333.5 441 405.5 R
|
|
0 Z
|
|
N
|
|
423 333.5 423 315.5 2 L
|
|
2 Z
|
|
N
|
|
441 333.5 441 315.5 2 L
|
|
N
|
|
423 351.5 441 351.5 2 L
|
|
N
|
|
423 369.5 441 369.5 2 L
|
|
N
|
|
423 387.5 441 387.5 2 L
|
|
N
|
|
428.69 411.96 432 423.5 435.31 411.96 432 411.96 4 Y
|
|
V
|
|
432 405.5 432 411.96 2 L
|
|
N
|
|
3 10 Q
|
|
(Major Frame) 370.54 515.68 T
|
|
(Major Frame) 261 515.68 T
|
|
3 7 Q
|
|
(Minor) 243 477.5 T
|
|
(-0) 260.33 477.5 T
|
|
(Minor) 279 477.5 T
|
|
(-1) 296.33 477.5 T
|
|
(Minor) 315 477.5 T
|
|
(-2) 332.33 477.5 T
|
|
(Minor) 351 477.5 T
|
|
(-0) 368.33 477.5 T
|
|
(Minor) 387 477.5 T
|
|
(-1) 404.33 477.5 T
|
|
(Minor) 423 477.5 T
|
|
(-2) 440.33 477.5 T
|
|
3 8 Q
|
|
(TIME) 504 414.5 T
|
|
(Q0) 351 306.5 T
|
|
(Q1) 387 306.5 T
|
|
(Q2) 423 306.5 T
|
|
338.69 411.96 342 423.5 345.31 411.96 342 411.96 4 Y
|
|
V
|
|
342 411.96 342 405.5 2 L
|
|
N
|
|
482.69 411.96 486 423.5 489.31 411.96 486 411.96 4 Y
|
|
V
|
|
486 411.96 486 405.5 2 L
|
|
N
|
|
446.69 411.96 450 423.5 453.31 411.96 450 411.96 4 Y
|
|
V
|
|
450 411.96 450 405.5 2 L
|
|
N
|
|
410.69 411.96 414 423.5 417.31 411.96 414 411.96 4 Y
|
|
V
|
|
414 411.96 414 405.5 2 L
|
|
N
|
|
374.69 411.96 378 423.5 381.31 411.96 378 411.96 4 Y
|
|
V
|
|
378 411.96 378 405.5 2 L
|
|
N
|
|
302.69 411.96 306 423.5 309.31 411.96 306 411.96 4 Y
|
|
V
|
|
306 411.96 306 405.5 2 L
|
|
N
|
|
266.69 411.96 270 423.5 273.31 411.96 270 411.96 4 Y
|
|
V
|
|
270 411.96 270 405.5 2 L
|
|
N
|
|
230.69 411.96 234 423.5 237.31 411.96 234 411.96 4 Y
|
|
V
|
|
234 411.96 234 405.5 2 L
|
|
N
|
|
(Real-time Event Interrupts) 234 396.5 T
|
|
(Process Queues) 450 342.5 T
|
|
9 72 603 720 C
|
|
26 151.69 27 197.69 R
|
|
0 X
|
|
0 K
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "6" 7
|
|
%%Page: "7" 7
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(Operation of the FRS) 483.18 679.44 T
|
|
1 F
|
|
(7) 562 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(A pr) 234 632.33 T
|
|
(ocess is enqueued under one of a variety of scheduling disciplines) 254.05 632.33 T
|
|
(\050described later\051, allowing even mor) 234 620.33 T
|
|
(e \337exibility) 393.87 620.33 T
|
|
(.) 442.05 620.33 T
|
|
1 11.5 Q
|
|
(Using Multiple Processors) 234 583.33 T
|
|
0 10 Q
|
|
-0.06 (Cr) 234 558.83 P
|
|
-0.06 (eating an FRS establishes its contr) 244.85 558.83 P
|
|
-0.06 (ol over a single pr) 393.52 558.83 P
|
|
-0.06 (ocessor) 472.47 558.83 P
|
|
-0.06 (. An FRS may) 504.29 558.83 P
|
|
(be invoked on all but one of the pr) 234 546.83 T
|
|
(ocessors in a Challenge or Onyx system.) 385.97 546.83 T
|
|
-0.1 (\050One pr) 234 534.83 P
|
|
-0.1 (ocessor) 267.96 534.83 P
|
|
-0.1 (, usually pr) 299.79 534.83 P
|
|
-0.1 (ocessor 0 by convention, must be left available to) 349.52 534.83 P
|
|
(r) 234 522.83 T
|
|
(un daemons and other normal UNIX housekeeping pr) 237.87 522.83 T
|
|
(ocesses.\051) 477.21 522.83 T
|
|
-0.32 (Once invoked, an FRS has full contr) 234 498.83 P
|
|
-0.32 (ol over its pr) 390 498.83 P
|
|
-0.32 (ocessor) 444.92 498.83 P
|
|
-0.32 (. For multipr) 476.74 498.83 P
|
|
-0.32 (ocessor) 532.26 498.83 P
|
|
(applications, the pr) 234 486.83 T
|
|
(ogrammer cr) 319.07 486.83 T
|
|
(eates one FRS per pr) 376.12 486.83 T
|
|
(ocessor) 466.24 486.83 T
|
|
(, and de\336nes a) 498.07 486.83 T
|
|
(master) 234 474.83 T
|
|
(-slave r) 263.87 474.83 T
|
|
(elationship among the FRSs. The interr) 296.05 474.83 T
|
|
(upts that de\336ne the) 470.19 474.83 T
|
|
(scheduling time base ar) 234 462.83 T
|
|
(e br) 338.19 462.83 T
|
|
(oadcast to the FRSs by an) 354.77 462.83 T
|
|
2 F
|
|
(interrupt gr) 469.45 462.83 T
|
|
(oup) 517.86 462.83 T
|
|
0 F
|
|
(,) 532.86 462.83 T
|
|
(implemented using the interr) 234 450.83 T
|
|
(upt multicasting capability available on the) 363.51 450.83 T
|
|
(Challenge \050see the paper \322Gr) 234 438.83 T
|
|
(oup Interr) 361.8 438.83 T
|
|
(upts on Challenge and Onyx) 406.83 438.83 T
|
|
(Systems,\323 distributed with REACT/Pr) 234 426.83 T
|
|
(o\051 to keep them in synchr) 404.17 426.83 T
|
|
(ony) 516.34 426.83 T
|
|
(.) 532.07 426.83 T
|
|
231.87 223.62 567 423.5 C
|
|
5 X
|
|
0 K
|
|
90 450 9 9 270 325.02 G
|
|
0.5 H
|
|
0 Z
|
|
0 X
|
|
90 450 9 9 270 325.02 A
|
|
7 X
|
|
90 450 18 18 342 379.02 G
|
|
0 X
|
|
90 450 18 18 342 379.02 A
|
|
7 X
|
|
90 450 18 18 342 325.02 G
|
|
0 X
|
|
90 450 18 18 342 325.02 A
|
|
7 X
|
|
90 450 18 18 342 271.02 G
|
|
0 X
|
|
90 450 18 18 342 271.02 A
|
|
3 8 Q
|
|
(CPU1) 333 379.02 T
|
|
(CPU2) 333 325.02 T
|
|
(CPU3) 333 271.02 T
|
|
546.47 382.33 558 379.02 546.47 375.72 546.47 379.02 4 Y
|
|
V
|
|
396 379.02 546.47 379.02 2 L
|
|
7 X
|
|
V
|
|
1 H
|
|
2 Z
|
|
0 X
|
|
N
|
|
414 388.02 414 370.02 2 L
|
|
7 X
|
|
V
|
|
3 H
|
|
0 X
|
|
N
|
|
450 388.02 450 370.02 2 L
|
|
7 X
|
|
V
|
|
0.5 H
|
|
0 X
|
|
N
|
|
486 388.02 486 370.02 2 L
|
|
7 X
|
|
V
|
|
0 X
|
|
N
|
|
522 388.02 522 370.02 2 L
|
|
7 X
|
|
V
|
|
3 H
|
|
0 X
|
|
N
|
|
423 343.02 441 361.02 R
|
|
0.5 H
|
|
0 Z
|
|
N
|
|
428.69 367.49 432 379.02 435.31 367.49 432 367.49 4 Y
|
|
V
|
|
432 361.02 432 367.49 2 L
|
|
2 Z
|
|
N
|
|
423 352.02 441 352.02 2 L
|
|
N
|
|
459 343.02 477 361.02 R
|
|
0 Z
|
|
N
|
|
464.69 367.49 468 379.02 471.31 367.49 468 367.49 4 Y
|
|
V
|
|
468 361.02 468 367.49 2 L
|
|
2 Z
|
|
N
|
|
459 352.02 477 352.02 2 L
|
|
N
|
|
495 343.02 513 361.02 R
|
|
0 Z
|
|
N
|
|
500.69 367.49 504 379.02 507.31 367.49 504 367.49 4 Y
|
|
V
|
|
504 361.02 504 367.49 2 L
|
|
2 Z
|
|
N
|
|
495 352.02 513 352.02 2 L
|
|
N
|
|
546.47 328.33 558 325.02 546.47 321.72 546.47 325.02 4 Y
|
|
V
|
|
396 325.02 546.47 325.02 2 L
|
|
1 H
|
|
N
|
|
414 334.02 414 316.02 2 L
|
|
3 H
|
|
N
|
|
450 334.02 450 316.02 2 L
|
|
0.5 H
|
|
N
|
|
486 334.02 486 316.02 2 L
|
|
N
|
|
522 334.02 522 316.02 2 L
|
|
3 H
|
|
N
|
|
423 289.02 441 307.02 R
|
|
0.5 H
|
|
0 Z
|
|
N
|
|
428.69 313.49 432 325.02 435.31 313.49 432 313.49 4 Y
|
|
V
|
|
432 307.02 432 313.49 2 L
|
|
2 Z
|
|
N
|
|
423 298.02 441 298.02 2 L
|
|
N
|
|
459 289.02 477 307.02 R
|
|
0 Z
|
|
N
|
|
464.69 313.49 468 325.02 471.31 313.49 468 313.49 4 Y
|
|
V
|
|
468 307.02 468 313.49 2 L
|
|
2 Z
|
|
N
|
|
459 298.02 477 298.02 2 L
|
|
N
|
|
495 289.02 513 307.02 R
|
|
0 Z
|
|
N
|
|
500.69 313.49 504 325.02 507.31 313.49 504 313.49 4 Y
|
|
V
|
|
504 307.02 504 313.49 2 L
|
|
2 Z
|
|
N
|
|
495 298.02 513 298.02 2 L
|
|
N
|
|
546.47 274.33 558 271.02 546.47 267.72 546.47 271.02 4 Y
|
|
V
|
|
396 271.02 546.47 271.02 2 L
|
|
1 H
|
|
N
|
|
414 280.02 414 262.02 2 L
|
|
3 H
|
|
N
|
|
450 280.02 450 262.02 2 L
|
|
0.5 H
|
|
N
|
|
486 280.02 486 262.02 2 L
|
|
N
|
|
522 280.02 522 262.02 2 L
|
|
3 H
|
|
N
|
|
423 235.02 441 253.02 R
|
|
0.5 H
|
|
0 Z
|
|
N
|
|
428.69 259.49 432 271.02 435.31 259.49 432 259.49 4 Y
|
|
V
|
|
432 253.02 432 259.49 2 L
|
|
2 Z
|
|
N
|
|
423 244.02 441 244.02 2 L
|
|
N
|
|
459 235.02 477 253.02 R
|
|
0 Z
|
|
N
|
|
464.69 259.49 468 271.02 471.31 259.49 468 259.49 4 Y
|
|
V
|
|
468 253.02 468 259.49 2 L
|
|
2 Z
|
|
N
|
|
459 244.02 477 244.02 2 L
|
|
N
|
|
495 235.02 513 253.02 R
|
|
0 Z
|
|
N
|
|
500.69 259.49 504 271.02 507.31 259.49 504 259.49 4 Y
|
|
V
|
|
504 253.02 504 259.49 2 L
|
|
2 Z
|
|
N
|
|
495 244.02 513 244.02 2 L
|
|
N
|
|
414 379.02 414 271.02 2 L
|
|
1 H
|
|
4 X
|
|
N
|
|
450 379.02 450 271.02 2 L
|
|
N
|
|
486 379.02 486 271.02 2 L
|
|
N
|
|
522 379.02 522 271.02 2 L
|
|
N
|
|
313.03 365.15 324 370.03 317.28 360.08 315.15 362.62 4 Y
|
|
0 X
|
|
V
|
|
270 325.02 315.16 362.62 2 L
|
|
0.5 H
|
|
N
|
|
312.46 328.33 324 325.02 312.46 321.72 312.46 325.02 4 Y
|
|
V
|
|
270 325.02 312.46 325.02 2 L
|
|
N
|
|
317.28 289.97 324 280.03 313.03 284.9 315.15 287.43 4 Y
|
|
V
|
|
270 325.02 315.16 287.43 2 L
|
|
N
|
|
(Interrupt) 252 298.02 T
|
|
(Source) 252 290.02 T
|
|
(Synchronous) 396 406.02 T
|
|
(Frame Schedulers) 396 398.02 T
|
|
(Multicast) 270 379.02 T
|
|
(Interrupts) 270 371.02 T
|
|
9 72 603 720 C
|
|
44 629 45 639 R
|
|
0 X
|
|
0 K
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "7" 8
|
|
%%Page: "8" 8
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(8) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
1 11.5 Q
|
|
(De\336ning the T) 216 631.33 T
|
|
(ime Base) 292.4 631.33 T
|
|
0 10 Q
|
|
(Synchr) 216 606.83 T
|
|
(onization to any interr) 246.64 606.83 T
|
|
(upt sour) 345.43 606.83 T
|
|
(ce on a Challenge or Onyx system is) 382.71 606.83 T
|
|
(possible, including synchr) 216 594.83 T
|
|
(onization to:) 331.69 594.83 T
|
|
4 9 Q
|
|
(\245) 216 576.83 T
|
|
0 10 Q
|
|
(A speci\336ed frame interval measur) 234 576.83 T
|
|
(ed by a high-pr) 383.89 576.83 T
|
|
(ecision clock that is) 451.56 576.83 T
|
|
(synchr) 234 564.83 T
|
|
(onized in all pr) 263.63 564.83 T
|
|
(ocessors) 330.52 564.83 T
|
|
4 9 Q
|
|
(\245) 216 546.83 T
|
|
0 10 Q
|
|
-0.18 (An external interr) 234 546.83 P
|
|
-0.18 (upt \050r) 312.48 546.83 P
|
|
-0.18 (efer to the ei\0507\051 man page for details on external) 337.18 546.83 P
|
|
(interr) 234 534.83 T
|
|
(upt support\051) 258.59 534.83 T
|
|
4 9 Q
|
|
(\245) 216 516.83 T
|
|
0 10 Q
|
|
(The vertical r) 234 516.83 T
|
|
(etrace interr) 292.39 516.83 T
|
|
(upt fr) 345.69 516.83 T
|
|
(om the graphics subsystem) 370.58 516.83 T
|
|
4 9 Q
|
|
(\245) 216 498.83 T
|
|
0 10 Q
|
|
(A call generated by a kernel-level device driver) 234 498.83 T
|
|
4 9 Q
|
|
(\245) 216 480.83 T
|
|
0 10 Q
|
|
(Pr) 234 480.83 T
|
|
(ogram-supplied interr) 243.8 480.83 T
|
|
(upts fr) 341.99 480.83 T
|
|
(om a pr) 371.11 480.83 T
|
|
(ogram-de\336ned time base \050most) 405.17 480.83 T
|
|
(often used for debugging\051) 234 468.83 T
|
|
(The master FRS sets up an interr) 216 444.83 T
|
|
(upt gr) 359.21 444.83 T
|
|
(oup, to synchr) 386.33 444.83 T
|
|
(onize the slave FRSs.) 449.66 444.83 T
|
|
1 12 Q
|
|
(Programming with the Frame Scheduler) 45 403.5 T
|
|
0 10 Q
|
|
(This section summarizes the pr) 216 377.83 T
|
|
(ocess of designing and implementing a) 353.41 377.83 T
|
|
(r) 216 365.83 T
|
|
(eal-time application based on the REACT/Pr) 219.77 365.83 T
|
|
(o Frame Scheduler) 418.19 365.83 T
|
|
(.) 500.08 365.83 T
|
|
1 11.5 Q
|
|
(Designing with the Frame Scheduler) 216 328.83 T
|
|
0 10 Q
|
|
-0.1 (Use of the Frame Scheduler permits the designer to plan in terms of a set of) 216 304.33 P
|
|
(abstract activities that must be completed in each major frame. A typical) 216 292.33 T
|
|
-0.17 (pr) 216 280.33 P
|
|
-0.17 (ogram would consist of a par) 225.77 280.33 P
|
|
-0.17 (ent pr) 353.96 280.33 P
|
|
-0.17 (ocess that initializes r) 379.93 280.33 P
|
|
-0.17 (esour) 473.82 280.33 P
|
|
-0.17 (ces; cr) 498.1 280.33 P
|
|
-0.17 (eates) 524.6 280.33 P
|
|
(the needed FRSs; then cr) 216 268.33 T
|
|
(eates each activity in the form of a lightweight) 324.35 268.33 T
|
|
(pr) 216 256.33 T
|
|
(ocess started with spr) 225.77 256.33 T
|
|
(oc\0502\051 or with fork\0502\051.) 321.35 256.33 T
|
|
(The \336rst step of each child pr) 216 232.33 T
|
|
(ocess would be to join its assigned Frame) 344.28 232.33 T
|
|
(Scheduler) 216 220.33 T
|
|
(. Ther) 259.33 220.33 T
|
|
(eafter each child pr) 284.82 220.33 T
|
|
(ocess is dispatched by the FRS at the) 369.42 220.33 T
|
|
(appr) 216 208.33 T
|
|
(opriate time within a major frame, when it r) 236.78 208.33 T
|
|
(uns until it yields contr) 430.69 208.33 T
|
|
(ol.) 533.1 208.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "8" 9
|
|
%%Page: "9" 9
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(Programming with the Frame Scheduler) 406.23 679.44 T
|
|
1 F
|
|
(9) 562 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(T) 234 632.33 T
|
|
(o take advantage of this model, the designer would:) 239.21 632.33 T
|
|
4 9 Q
|
|
(\245) 234 614.33 T
|
|
0 10 Q
|
|
(Specify the r) 252 614.33 T
|
|
(eal-time pr) 306.9 614.33 T
|
|
(ogram in terms of logically-independent) 354.97 614.33 T
|
|
-0.03 (abstract activities, noting which must r) 252 602.33 P
|
|
-0.03 (un serially and which could r) 423.2 602.33 P
|
|
-0.03 (un) 552.69 602.33 P
|
|
(concurr) 252 590.33 T
|
|
(ently) 285.89 590.33 T
|
|
(.) 307.11 590.33 T
|
|
4 9 Q
|
|
(\245) 234 572.33 T
|
|
0 10 Q
|
|
(Estimate the execution time of each activity) 252 572.33 T
|
|
(.) 442.33 572.33 T
|
|
4 9 Q
|
|
(\245) 234 554.33 T
|
|
0 10 Q
|
|
(Allocate the activities to as few pr) 252 554.33 T
|
|
(ocessors as possible, based on the) 400.91 554.33 T
|
|
(execution times and the possibilities for concurr) 252 542.33 T
|
|
(ent execution.) 463.34 542.33 T
|
|
4 9 Q
|
|
(\245) 234 524.33 T
|
|
0 10 Q
|
|
(Plan the frame schedule in terms of the interr) 252 524.33 T
|
|
(upt sour) 451.62 524.33 T
|
|
(ce to use, the) 488.9 524.33 T
|
|
(number of minor frames per major frame, and the queue that each) 252 512.33 T
|
|
(pr) 252 500.33 T
|
|
(ocess should join.) 261.77 500.33 T
|
|
1 11.5 Q
|
|
(Frame Scheduling Disciplines) 234 463.33 T
|
|
0 10 Q
|
|
(In the simplest case, the pr) 234 438.83 T
|
|
(ocess that r) 351.31 438.83 T
|
|
(epr) 400.56 438.83 T
|
|
(esents an activity should start) 415.12 438.83 T
|
|
-0.42 (during the minor frame to which it is queued, and should complete its work) 234 426.83 P
|
|
(and yield within the same minor frame.) 234 414.83 T
|
|
-0.37 (If the pr) 234 390.83 P
|
|
-0.37 (ocess is not r) 268.6 390.83 P
|
|
-0.37 (eady to r) 323.6 390.83 P
|
|
-0.37 (un \050for example, is blocked on I/O\051 during the) 361.9 390.83 P
|
|
(entir) 234 378.83 T
|
|
(e minor frame, an) 254.54 378.83 T
|
|
2 F
|
|
(underrun) 335.47 378.83 T
|
|
0 F
|
|
( err) 374.36 378.83 T
|
|
(or is said to occur) 389.36 378.83 T
|
|
(. If the pr) 466.44 378.83 T
|
|
(ocess fails to) 506.77 378.83 T
|
|
(complete its work and yield within the minor frame interval, an) 234 366.83 T
|
|
2 F
|
|
(overrun) 518.17 366.83 T
|
|
0 F
|
|
(err) 234 354.83 T
|
|
(or is said to occur) 246.5 354.83 T
|
|
(.) 323.58 354.83 T
|
|
(The Frame Scheduler calls this strict discipline the Realtime scheduling) 234 330.83 T
|
|
(discipline. However) 234 318.83 T
|
|
(, a number of other disciplines ar) 322.56 318.83 T
|
|
(e supported for) 468.06 318.83 T
|
|
(\337exibility of design.) 234 306.83 T
|
|
(Underr) 234 288.83 T
|
|
(unnable) 266.3 288.83 T
|
|
(Underr) 306 276.83 T
|
|
(un err) 338.3 276.83 T
|
|
(ors ar) 365.15 276.83 T
|
|
(e ignor) 390.05 276.83 T
|
|
(ed but overr) 420.85 276.83 T
|
|
(un err) 475.26 276.83 T
|
|
(ors ar) 502.1 276.83 T
|
|
(e) 527.01 276.83 T
|
|
(detected. Underr) 306 264.83 T
|
|
(unable pr) 380.83 264.83 T
|
|
(ocesses ar) 423.17 264.83 T
|
|
(e allowed to skip) 466.61 264.83 T
|
|
(frames; however) 306 252.83 T
|
|
(, if they do r) 379.16 252.83 T
|
|
(un they must yield befor) 432.74 252.83 T
|
|
(e the) 541.48 252.83 T
|
|
(end of the frame, or they cause an overrr) 306 240.83 T
|
|
(un err) 485.51 240.83 T
|
|
(or) 512.36 240.83 T
|
|
(.) 521.02 240.83 T
|
|
(Overr) 234 222.83 T
|
|
(unnable) 260.11 222.83 T
|
|
(Overr) 306 210.83 T
|
|
(un err) 332.11 210.83 T
|
|
(ors ar) 358.95 210.83 T
|
|
(e ignor) 383.86 210.83 T
|
|
(ed but underrr) 414.65 210.83 T
|
|
(un err) 479.85 210.83 T
|
|
(ors ar) 506.7 210.83 T
|
|
(e) 531.61 210.83 T
|
|
(detected. Overr) 306 198.83 T
|
|
(unable pr) 374.63 198.83 T
|
|
(ocesses must execute on every) 416.97 198.83 T
|
|
(frame to which they ar) 306 186.83 T
|
|
(e queued, but they ar) 406.1 186.83 T
|
|
(e not r) 499.7 186.83 T
|
|
(equir) 527.79 186.83 T
|
|
(ed) 550.87 186.83 T
|
|
(to yield befor) 306 174.83 T
|
|
(e the end of the frame.) 364.85 174.83 T
|
|
44 303.5 45 313.5 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "9" 10
|
|
%%Page: "10" 10
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(10) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(Underr) 216 632.33 T
|
|
(unnable + Overr) 248.3 632.33 T
|
|
(unnable) 321.34 632.33 T
|
|
(Neither err) 288 620.33 T
|
|
(or is detected. These pr) 336.81 620.33 T
|
|
(ocesses can skip frames) 438.92 620.33 T
|
|
(and overr) 288 608.33 T
|
|
(un them.) 331.13 608.33 T
|
|
(Overr) 216 590.33 T
|
|
(unnable + Continuable) 242.11 590.33 T
|
|
(This discipline is used to allow a pr) 288 578.33 T
|
|
(ocess to extend its) 444 578.33 T
|
|
(execution beyond a single minor frame.) 288 566.33 T
|
|
(Backgr) 216 548.33 T
|
|
(ound) 246.42 548.33 T
|
|
(A pr) 288 536.33 T
|
|
(ocess with Backgr) 308.05 536.33 T
|
|
(ound discipline r) 386.95 536.33 T
|
|
(uns only when all) 462.24 536.33 T
|
|
(Realtime pr) 288 524.33 T
|
|
(ocesses in its queue have yielded, that is, only) 339.42 524.33 T
|
|
-0.6 (when the pr) 288 512.33 P
|
|
-0.6 (ocessor would otherwise be idle. Underr) 340.19 512.33 P
|
|
-0.6 (un and) 516.44 512.33 P
|
|
(overr) 288 500.33 T
|
|
(un err) 311.71 500.33 T
|
|
(ors ar) 338.55 500.33 T
|
|
(e not r) 363.46 500.33 T
|
|
(elevant to this discipline.) 391.54 500.33 T
|
|
1 9.5 Q
|
|
(Using the Background Discipline) 216 472.67 T
|
|
0 10 Q
|
|
(The backgr) 216 448.83 T
|
|
(ound discipline is mutually exclusive with the other discipline) 265.07 448.83 T
|
|
-0.33 (types. The Frame Scheduler only dispatches a Backgr) 216 436.83 P
|
|
-0.33 (ound pr) 448.41 436.83 P
|
|
-0.33 (ocess when all) 483.76 436.83 P
|
|
(other pr) 216 424.83 T
|
|
(ocesses queued to that minor frame have r) 251.54 424.83 T
|
|
(un and have yielded.) 438.55 424.83 T
|
|
(Since the Backgr) 216 412.83 T
|
|
(ound pr) 288.48 412.83 T
|
|
(ocess cannot be sur) 324.16 412.83 T
|
|
(e it will r) 408.94 412.83 T
|
|
(un and cannot pr) 448.32 412.83 T
|
|
(edict) 524.14 412.83 T
|
|
(how much time it will have, the concepts of underr) 216 400.83 T
|
|
(un and overr) 441.6 400.83 T
|
|
(un do not) 499.06 400.83 T
|
|
(apply to it.) 216 388.83 T
|
|
4 9 Q
|
|
-0.44 (Note:) 216 364.83 P
|
|
0 10 Q
|
|
-0.44 (A pr) 241.59 364.83 P
|
|
-0.44 (ocess with the Backgr) 261.2 364.83 P
|
|
-0.44 (ound discipline must be queued to its frame) 355.12 364.83 P
|
|
(following all non-Backgr) 216 352.83 T
|
|
(ound pr) 325.33 352.83 T
|
|
(ocesses. Do not queue a r) 361.01 352.83 T
|
|
(eal-time pr) 471.9 352.83 T
|
|
(ocess) 519.97 352.83 T
|
|
(after a Backgr) 216 340.83 T
|
|
(ound pr) 276.74 340.83 T
|
|
(ocess.) 312.42 340.83 T
|
|
1 9.5 Q
|
|
(Multiple Executions In A Major Frame) 216 313.17 T
|
|
0 10 Q
|
|
(A pr) 216 289.33 T
|
|
(ocess can be scheduled to r) 236.05 289.33 T
|
|
(un and yield mor) 355.06 289.33 T
|
|
(e than once in a major) 431.64 289.33 T
|
|
(frame, by queueing it to mor) 216 277.33 T
|
|
(e than one minor frame.) 342.4 277.33 T
|
|
4 9 Q
|
|
(Note:) 216 253.33 T
|
|
0 10 Q
|
|
(A pr) 242.48 253.33 T
|
|
(ocess cannot be queued for dispatch by mor) 262.53 253.33 T
|
|
(e than one FRS. A) 456.24 253.33 T
|
|
(pr) 216 241.33 T
|
|
(ocess can be dispatched in multiple minor frames, but on only one) 225.77 241.33 T
|
|
(pr) 216 229.33 T
|
|
(ocessor) 225.77 229.33 T
|
|
(. T) 257.6 229.33 T
|
|
(o r) 267.8 229.33 T
|
|
(un the same pr) 279.62 229.33 T
|
|
(ocess on multiple FRSs at once, start multiple) 345.45 229.33 T
|
|
(instances of the pr) 216 217.33 T
|
|
(ocess.) 296.42 217.33 T
|
|
1 9.5 Q
|
|
(Using Multiple Consecutive Minor Frames) 216 189.67 T
|
|
0 10 Q
|
|
-0.3 (The Continuable discipline is used for a pr) 216 165.83 P
|
|
-0.3 (ocess that may r) 401.56 165.83 P
|
|
-0.3 (equir) 471.8 165.83 P
|
|
-0.3 (e mor) 494.88 165.83 P
|
|
-0.3 (e than) 519.92 165.83 P
|
|
(one minor frame to complete its work. T) 216 153.83 T
|
|
(o allow a pr) 392.98 153.83 T
|
|
(ocess to use multiple) 445.31 153.83 T
|
|
26 545 27 555 R
|
|
V
|
|
26 150.5 27 479 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "10" 11
|
|
%%Page: "11" 11
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(Programming with the Frame Scheduler) 406.23 679.44 T
|
|
1 F
|
|
(11) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
-0.16 (consecutive minor frames, it must be enqueued in each of the minor frames) 234 632.33 P
|
|
(in which it can r) 234 620.33 T
|
|
(un. The discipline settings for each frame should be:) 305.32 620.33 T
|
|
(First frame) 234 602.33 T
|
|
-0.5 (Realtime + Overr) 306 602.33 P
|
|
-0.5 (unnable + Continuable\321the pr) 381.32 602.33 P
|
|
-0.5 (ocess must) 517.49 602.33 P
|
|
-0.32 (start in this frame \050not Underr) 306 590.33 P
|
|
-0.32 (unable\051 but is not r) 437.58 590.33 P
|
|
-0.32 (equir) 519.95 590.33 P
|
|
-0.32 (ed to) 543.03 590.33 P
|
|
-0.69 (yield \050Overr) 306 578.33 P
|
|
-0.69 (unable\051. If it yields, it will not be r) 359.51 578.33 P
|
|
-0.69 (estarted in the) 503.6 578.33 P
|
|
(following minor frame \050Continuable\051.) 306 566.33 T
|
|
(Intermediate) 234 548.33 T
|
|
(Realtime+Underr) 306 548.33 T
|
|
(unable+Overr) 383.51 548.33 T
|
|
(unnable+Continuable\321) 445.73 548.33 T
|
|
-0.39 (the pr) 306 536.33 P
|
|
-0.39 (ocess need not start \050it might alr) 331.74 536.33 P
|
|
-0.39 (eady have yielded, or) 470.81 536.33 P
|
|
-0.75 (might be blocked\051 but is not r) 306 524.33 P
|
|
-0.75 (equir) 431.56 524.33 P
|
|
-0.75 (ed to yield. If it does yield) 454.64 524.33 P
|
|
(\050or if it had yielded in a pr) 306 512.33 T
|
|
(eceding minor frame\051, it is not) 422.21 512.33 T
|
|
(r) 306 500.33 T
|
|
(estarted in the following minor frame \050Continuable\051.) 309.77 500.33 T
|
|
(Final frame) 234 482.33 T
|
|
(Realtime+Underr) 306 482.33 T
|
|
(unable\321the pr) 383.51 482.33 T
|
|
(ocess need not start \050it) 449.7 482.33 T
|
|
(might alr) 306 470.33 T
|
|
(eady have yielded\051 but if it starts it must yield in) 346.54 470.33 T
|
|
-0.03 (this frame \050not Overr) 306 458.33 P
|
|
-0.03 (unnable\051. The pr) 399.47 458.33 P
|
|
-0.03 (ocess can start a new) 472.62 458.33 P
|
|
(r) 306 446.33 T
|
|
(un in the next minor frame to which it is queued \050not) 309.87 446.33 T
|
|
(Continuable\051.) 306 434.33 T
|
|
(In general terms, the Continuable \337ag allows the pr) 234 410.33 T
|
|
(ogrammer to alter the) 461.1 410.33 T
|
|
-0.56 (ef) 234 398.33 P
|
|
-0.56 (fective length of a minor frame for one particular pr) 241.94 398.33 P
|
|
-0.56 (ocess. A pr) 465.35 398.33 P
|
|
-0.56 (ocess can be) 512.45 398.33 P
|
|
(enqueued for one or mor) 234 386.33 T
|
|
(e of these multi-frame sequences in one major) 344.18 386.33 T
|
|
-0.4 (frame. For example, suppose that the minor frame rate is 60 Hz, and a major) 234 374.33 P
|
|
(frame contains 60 minor frames \0501 Hz\051. Y) 234 362.33 T
|
|
(ou have a pr) 414.59 362.33 T
|
|
(ocess that should r) 469.59 362.33 T
|
|
(un) 551.99 362.33 T
|
|
-0.21 (at a rate of 5 Hz and can use up to 3/60 second at each dispatch. Y) 234 350.33 P
|
|
-0.21 (ou would) 522.11 350.33 P
|
|
(enqueue the pr) 234 338.33 T
|
|
(ocess to 5 sequences of 3 consecutive frames, starting in) 300.46 338.33 T
|
|
-0.22 (frames 0, 12, 24, 36, and 48. The disciplines in each of the 3-frame sequences) 234 326.33 P
|
|
(would be those shown in the pr) 234 314.33 T
|
|
(eceding list.) 373.72 314.33 T
|
|
(In implementation dependent terms, the Continuable \337ag allows the) 234 290.33 T
|
|
(pr) 234 278.33 T
|
|
(ogramer to contr) 243.77 278.33 T
|
|
(ol the place wher) 317.74 278.33 T
|
|
(e the) 393.31 278.33 T
|
|
2 F
|
|
(frs_run) 416.96 278.33 T
|
|
0 F
|
|
( and the) 447.51 278.33 T
|
|
2 F
|
|
(frs_yield) 485.79 278.33 T
|
|
0 F
|
|
( \337ags ar) 520.78 278.33 T
|
|
(e) 555.41 278.33 T
|
|
(r) 234 266.33 T
|
|
(eset \050see \322Scheduling W) 237.77 266.33 T
|
|
(ithin A Minor Frame\323 on page) 343.53 266.33 T
|
|
(17\051.) 480.33 266.33 T
|
|
1 11.5 Q
|
|
(Preparing the System) 234 229.33 T
|
|
0 10 Q
|
|
(The Challenge or Onyx pr) 234 204.83 T
|
|
(ocessors that will be used by FRSs must be) 348.96 204.83 T
|
|
(pr) 234 192.83 T
|
|
(epar) 243.77 192.83 T
|
|
(ed for use by a r) 263.33 192.83 T
|
|
(eal-time pr) 334.36 192.83 T
|
|
(ogram. The designer must:) 382.43 192.83 T
|
|
4 9 Q
|
|
(\245) 234 174.83 T
|
|
0 10 Q
|
|
(Select the gr) 252 174.83 T
|
|
(oup of pr) 305.61 174.83 T
|
|
(ocessors on the machine that will be used for) 346.66 174.83 T
|
|
(r) 252 162.83 T
|
|
(eal-time execution. Pr) 255.77 162.83 T
|
|
(ocessor 0 \050at least\051 must be r) 351.51 162.83 T
|
|
(eserved for IRIX) 475.59 162.83 T
|
|
(system functions.) 252 150.83 T
|
|
44 617 45 639 R
|
|
V
|
|
44 563 45 573 R
|
|
V
|
|
44 497 45 531 R
|
|
V
|
|
44 443 45 465 R
|
|
V
|
|
44 311 45 417 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "11" 12
|
|
%%Page: "12" 12
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(12) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
4 F
|
|
(\245) 216 632.33 T
|
|
0 10 Q
|
|
(Specify which pr) 234 632.33 T
|
|
(ocessors will handle I/O interr) 308.36 632.33 T
|
|
(upts. By default, IRIX) 444.51 632.33 T
|
|
(distributes I/O interr) 234 620.33 T
|
|
(upts \050r) 328.07 620.33 T
|
|
(eferr) 357.19 620.33 T
|
|
(ed to as) 377.81 620.33 T
|
|
2 F
|
|
(spraying) 414.15 620.33 T
|
|
0 F
|
|
(\051 acr) 449.69 620.33 T
|
|
(oss all available) 468.72 620.33 T
|
|
(pr) 234 608.33 T
|
|
(ocessors as a means of balancing the load. Real-time pr) 243.77 608.33 T
|
|
(ocessors) 485.79 608.33 T
|
|
(should be r) 234 596.33 T
|
|
(emoved fr) 283.63 596.33 T
|
|
(om the distribution set. This is done using the) 328.84 596.33 T
|
|
(dir) 234 584.33 T
|
|
(ective) 246.78 584.33 T
|
|
4 9 Q
|
|
(NOINTR:) 275.11 584.33 T
|
|
2 10 Q
|
|
(cpu#) 314.55 584.33 T
|
|
4 9 Q
|
|
([) 336.67 584.33 T
|
|
2 10 Q
|
|
(cpu#) 339.17 584.33 T
|
|
4 9 Q
|
|
(]*) 358.79 584.33 T
|
|
0 10 Q
|
|
( in the) 364.78 584.33 T
|
|
4 9 Q
|
|
(/var/sysgen/system/irix.sm) 394.87 584.33 T
|
|
0 10 Q
|
|
( \336le) 500.24 584.33 T
|
|
4 8 Q
|
|
(.) 516.48 584.33 T
|
|
0 10 Q
|
|
(After) 520.92 584.33 T
|
|
(modifying) 234 572.33 T
|
|
4 9 Q
|
|
(irix.sm) 282.96 572.33 T
|
|
0 10 Q
|
|
(, r) 308.92 572.33 T
|
|
(ebuild the kernel using the command) 317.68 572.33 T
|
|
4 9 Q
|
|
(/etc/autocon\336g) 234 560.33 T
|
|
(-vf) 294.95 560.33 T
|
|
4 8 Q
|
|
(.) 304.94 560.33 T
|
|
4 9 Q
|
|
(\245) 216 542.33 T
|
|
0 10 Q
|
|
(Make sur) 234 542.33 T
|
|
(e that none of the r) 275.33 542.33 T
|
|
(eal-time pr) 358.23 542.33 T
|
|
(ocessors is acting as the) 406.3 542.33 T
|
|
2 9 Q
|
|
(clock) 512.82 542.33 T
|
|
(pr) 234 530.33 T
|
|
(ocessor) 241.83 530.33 T
|
|
(.) 266.79 530.33 T
|
|
0 10 Q
|
|
(See mpadmin\0501\051. This is the pr) 271.28 530.33 T
|
|
(ocessor that \336elds 10ms) 406.11 530.33 T
|
|
-0.19 (scheduler interr) 234 518.33 P
|
|
-0.19 (upts, and the r) 303.96 518.33 P
|
|
-0.19 (esponsibility would typically be given to) 367.48 518.33 P
|
|
(pr) 234 506.33 T
|
|
(ocessor 0.) 243.77 506.33 T
|
|
4 9 Q
|
|
(\245) 216 488.33 T
|
|
0 10 Q
|
|
(Make sur) 234 488.33 T
|
|
(e none of the r) 275.33 488.33 T
|
|
(eal-time pr) 338.4 488.33 T
|
|
(ocessors is acting as the) 386.48 488.33 T
|
|
2 F
|
|
(fasthz) 492.99 488.33 T
|
|
(pr) 234 476.33 T
|
|
(ocessor) 242.71 476.33 T
|
|
0 F
|
|
(. See mpadmin\0501\051. This is the pr) 270.46 476.33 T
|
|
(ocessor that is interr) 410.28 476.33 T
|
|
(upted at) 499.4 476.33 T
|
|
(the rate set by the F) 234 464.33 T
|
|
(ASTHZ kernel parameter when high-pr) 319.39 464.33 T
|
|
(ecision) 494.84 464.33 T
|
|
(itimers ar) 234 452.33 T
|
|
(e in use. If fast itimers ar) 276.14 452.33 T
|
|
(e used by the r) 384.35 452.33 T
|
|
(eal-time pr) 449 452.33 T
|
|
(ogram, it) 497.08 452.33 T
|
|
(would be best to give the fasthz interr) 234 440.33 T
|
|
(upt to a dif) 401.15 440.33 T
|
|
(fer) 449.81 440.33 T
|
|
(ent pr) 461.7 440.33 T
|
|
(ocessor than) 487.83 440.33 T
|
|
(0, pr) 234 428.33 T
|
|
(ovided ther) 253.77 428.33 T
|
|
(e is another pr) 304.91 428.33 T
|
|
(ocessor not commited to r) 368.2 428.33 T
|
|
(eal-time use.) 482.37 428.33 T
|
|
1 11.5 Q
|
|
(Implementing a Single FRS) 216 391.33 T
|
|
0 10 Q
|
|
-0.32 (The general steps that a r) 216 366.83 P
|
|
-0.32 (eal-time pr) 325.04 366.83 P
|
|
-0.32 (ogram needs to carry out ar) 372.8 366.83 P
|
|
-0.32 (e as follows.) 493.31 366.83 P
|
|
(This model assumes a single FRS.) 216 354.83 T
|
|
(1.) 216 336.83 T
|
|
(The par) 234 336.83 T
|
|
(ent pr) 268 336.83 T
|
|
(ocess initializes any global r) 294.14 336.83 T
|
|
(esour) 417.42 336.83 T
|
|
(ces such as) 441.7 336.83 T
|
|
(memory-mapped segments, memory ar) 234 324.83 T
|
|
(enas, \336les and other objects.) 409.12 324.83 T
|
|
(2.) 216 306.83 T
|
|
(The par) 234 306.83 T
|
|
(ent pr) 268 306.83 T
|
|
(ocess locks down the addr) 294.14 306.83 T
|
|
(ess space it will shar) 410.44 306.83 T
|
|
(e with) 500.21 306.83 T
|
|
(lightweight pr) 234 294.83 T
|
|
(ocesses\321see plock\0502\051 and mpin\0502\051.) 297.39 294.83 T
|
|
(3.) 216 276.83 T
|
|
(The par) 234 276.83 T
|
|
(ent pr) 268 276.83 T
|
|
(ocess cr) 294.14 276.83 T
|
|
(eates the Frame Scheduler using the call) 328 276.83 T
|
|
5 F
|
|
(frs_create_master\050\051) 234 264.83 T
|
|
0 F
|
|
( \050see page) 320.04 264.83 T
|
|
(20\051.) 366.03 264.83 T
|
|
(4.) 216 246.83 T
|
|
(The par) 234 246.83 T
|
|
(ent pr) 268 246.83 T
|
|
(ocess cr) 294.14 246.83 T
|
|
(eates the activity pr) 328 246.83 T
|
|
(ocesses using either) 414.17 246.83 T
|
|
5 F
|
|
(sproc\050\051) 503.9 246.83 T
|
|
0 F
|
|
(\321) 534.98 246.83 T
|
|
(pr) 234 234.83 T
|
|
(eferr) 243.77 234.83 T
|
|
(ed\321or) 264.39 234.83 T
|
|
5 F
|
|
(fork\050\051) 297.18 234.83 T
|
|
0 F
|
|
(. \050If) 323.28 234.83 T
|
|
5 F
|
|
(fork\050\051) 340.8 234.83 T
|
|
0 F
|
|
( is used, each child pr) 366.9 234.83 T
|
|
(ocess must lock its) 462.18 234.83 T
|
|
(own addr) 234 222.83 T
|
|
(ess space.\051) 277.09 222.83 T
|
|
(5.) 216 204.83 T
|
|
-0.02 (The par) 234 204.83 P
|
|
-0.02 (ent uses) 267.98 204.83 P
|
|
5 F
|
|
-0.02 (frs_enqueue\050\051) 306.09 204.83 P
|
|
0 F
|
|
-0.02 ( to queue each child to the FRS queue or) 369.37 204.83 P
|
|
(queues on which it is to r) 234 192.83 T
|
|
(un \050see page) 344.94 192.83 T
|
|
(22\051.) 402.77 192.83 T
|
|
26 387.5 27 399 R
|
|
V
|
|
26 351.5 27 361.5 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "12" 13
|
|
%%Page: "13" 13
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(Programming with the Frame Scheduler) 406.23 679.44 T
|
|
1 F
|
|
(13) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(6.) 234 632.33 T
|
|
-0.3 (Each pr) 252 632.33 P
|
|
-0.3 (ocess uses) 285.33 632.33 P
|
|
5 F
|
|
-0.3 (frs_join\050\051) 332.18 632.33 P
|
|
0 F
|
|
-0.3 ( \050page) 374.37 632.33 P
|
|
-0.3 (24\051 to let the FRS know the pr) 403.75 632.33 P
|
|
-0.3 (ocess is) 532.29 632.33 P
|
|
(r) 252 620.33 T
|
|
(eady to start r) 255.77 620.33 T
|
|
(eal-time execution. This call blocks until frame) 316.89 620.33 T
|
|
(scheduling begins, then r) 252 608.33 T
|
|
(eturns during the \336rst frame dispatch of the) 362.88 608.33 T
|
|
(pr) 252 596.33 T
|
|
(ocess.) 261.77 596.33 T
|
|
(7.) 234 578.33 T
|
|
(The par) 252 578.33 T
|
|
(ent pr) 286 578.33 T
|
|
(ocess uses) 312.14 578.33 T
|
|
5 F
|
|
(frs_start\050\051) 359.58 578.33 T
|
|
0 F
|
|
( \050page) 403.43 578.33 T
|
|
(25\051 to enable scheduling. The) 433.1 578.33 T
|
|
-0.38 (Frame Scheduler will start scheduling pr) 252 566.33 P
|
|
-0.38 (ocesses as soon as all pr) 429.9 566.33 P
|
|
-0.38 (ocesses) 532.7 566.33 P
|
|
(have called) 252 554.33 T
|
|
5 F
|
|
(frs_join\050\051) 304.39 554.33 T
|
|
0 F
|
|
(.) 346.58 554.33 T
|
|
(8.) 234 536.33 T
|
|
(After completing its work for a minor frame, a pr) 252 536.33 T
|
|
(ocess calls) 469.09 536.33 T
|
|
5 F
|
|
(frs_yield\050\051) 516.73 536.33 T
|
|
0 F
|
|
(\050page) 252 524.33 T
|
|
(26\051 to yield the pr) 279.17 524.33 T
|
|
(ocessor until its next scheduled dispatch.) 357.11 524.33 T
|
|
(9.) 234 506.33 T
|
|
(The par) 252 506.33 T
|
|
(ent pr) 286 506.33 T
|
|
(ocess waits for err) 312.14 506.33 T
|
|
(or and termination signals fr) 391.76 506.33 T
|
|
(om the) 517.82 506.33 T
|
|
(Frame Scheduler and other pr) 252 494.33 T
|
|
(ocesses.) 384.14 494.33 T
|
|
(10.) 234 476.33 T
|
|
(T) 252 476.33 T
|
|
(o terminate frame scheduling, any pr) 257.21 476.33 T
|
|
(ocess calls) 420.88 476.33 T
|
|
5 F
|
|
(frs_destroy\050\051) 468.52 476.33 T
|
|
0 F
|
|
(\050page) 252 464.33 T
|
|
(32\051.) 279.17 464.33 T
|
|
(In the typical r) 234 440.33 T
|
|
(eal-time pr) 298.39 440.33 T
|
|
(ogram the r) 346.46 440.33 T
|
|
(eal-time pr) 397.87 440.33 T
|
|
(ocesses ar) 445.94 440.33 T
|
|
(e lightweight) 489.39 440.33 T
|
|
-0.65 (pr) 234 428.33 P
|
|
-0.65 (ocesses cr) 243.77 428.33 P
|
|
-0.65 (eated with spr) 286.01 428.33 P
|
|
-0.65 (oc\050\051. However) 347.98 428.33 P
|
|
-0.65 (, this is not a r) 409.41 428.33 P
|
|
-0.65 (estriction of the Frame) 467.82 428.33 P
|
|
(Scheduler) 234 416.33 T
|
|
(. The Frame Scheduler can manage pr) 277.33 416.33 T
|
|
(ocesses cr) 443.73 416.33 T
|
|
(eated with fork\050\051.) 486.62 416.33 T
|
|
(Mor) 234 404.33 T
|
|
(eover) 252.68 404.33 T
|
|
(, the r) 276.57 404.33 T
|
|
(eal-time pr) 301.69 404.33 T
|
|
(ocesses do not have to be child pr) 349.77 404.33 T
|
|
(ocesses of the) 497.77 404.33 T
|
|
(frs-master pr) 234 392.33 T
|
|
(ocess. For an example, see \322Example of Scheduling Separate) 291.17 392.33 T
|
|
(Pr) 234 380.33 T
|
|
(ograms\323 on page) 243.8 380.33 T
|
|
(39.) 321.94 380.33 T
|
|
1 11.5 Q
|
|
(Implementing Multiple Synchronized Schedulers) 234 343.33 T
|
|
0 10 Q
|
|
(When the r) 234 318.83 T
|
|
(eal-time application r) 283.04 318.83 T
|
|
(equir) 377.31 318.83 T
|
|
(es the power of multiple CPUs, the) 400.4 318.83 T
|
|
(pr) 234 306.83 T
|
|
(ogram design is only slightly dif) 243.77 306.83 T
|
|
(fer) 386.67 306.83 T
|
|
(ent fr) 398.55 306.83 T
|
|
(om that shown above. The) 422.01 306.83 T
|
|
-0.69 (pr) 234 294.83 P
|
|
-0.69 (ogram will cr) 243.77 294.83 P
|
|
-0.69 (eate multiple FRSs, one master and one or mor) 301.45 294.83 P
|
|
-0.69 (e slaves. Ther) 502.17 294.83 P
|
|
-0.69 (e) 560.4 294.83 P
|
|
-0.26 (is a r) 234 282.83 P
|
|
-0.26 (estriction that each FRS must have a unique frs-master pr) 254.38 282.83 P
|
|
-0.26 (ocess. That is,) 504.79 282.83 P
|
|
(one pr) 234 270.83 T
|
|
(ocess can cr) 262.33 270.83 T
|
|
(eate only one FRS, master or slave.) 313.95 270.83 T
|
|
(A variety of designs is possible but the simplest is pr) 234 246.83 T
|
|
(obably to r) 466.28 246.83 T
|
|
(eplicate the) 513.74 246.83 T
|
|
(model in the pr) 234 234.83 T
|
|
(eceding section, as follows:) 301.94 234.83 T
|
|
(1.) 234 216.83 T
|
|
(The par) 252 216.83 T
|
|
(ent pr) 286 216.83 T
|
|
(ocess initializes any global r) 312.14 216.83 T
|
|
(esour) 435.42 216.83 T
|
|
(ces such as) 459.7 216.83 T
|
|
(memory-mapped segments, memory ar) 252 204.83 T
|
|
(enas, \336les and other objects.) 427.12 204.83 T
|
|
(One of these global r) 252 192.83 T
|
|
(esour) 343.25 192.83 T
|
|
(ces is the pr) 367.53 192.83 T
|
|
(ocess ID of the par) 419.27 192.83 T
|
|
(ent pr) 500.94 192.83 T
|
|
(ocess.) 527.08 192.83 T
|
|
(2.) 234 174.83 T
|
|
(The par) 252 174.83 T
|
|
(ent pr) 286 174.83 T
|
|
(ocess locks down the addr) 312.14 174.83 T
|
|
(ess space it will shar) 428.44 174.83 T
|
|
(e with) 518.21 174.83 T
|
|
(lightweight pr) 252 162.83 T
|
|
(ocesses\321see plock\0502\051 and mpin\0502\051.) 315.39 162.83 T
|
|
44 575 45 585 R
|
|
V
|
|
44 159.5 45 483 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "13" 14
|
|
%%Page: "14" 14
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(14) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(3.) 216 632.33 T
|
|
(The par) 234 632.33 T
|
|
(ent pr) 268 632.33 T
|
|
(ocess cr) 294.14 632.33 T
|
|
(eates the Frame Scheduler using the call) 328 632.33 T
|
|
5 F
|
|
(frs_create_master\050\051) 234 620.33 T
|
|
0 F
|
|
(, and stor) 320.04 620.33 T
|
|
(es its handle in a global location.) 361.18 620.33 T
|
|
(4.) 216 602.33 T
|
|
-0.15 (The par) 234 602.33 P
|
|
-0.15 (ent pr) 267.85 602.33 P
|
|
-0.15 (ocess cr) 293.84 602.33 P
|
|
-0.15 (eates one sub-par) 327.55 602.33 P
|
|
-0.15 (ent pr) 404.28 602.33 P
|
|
-0.15 (ocess for each pr) 430.26 602.33 P
|
|
-0.15 (ocessor to) 503.02 602.33 P
|
|
(be used.) 234 590.33 T
|
|
(5.) 216 572.33 T
|
|
(Each sub-par) 234 572.33 T
|
|
(ent cr) 291.75 572.33 T
|
|
(eates a Frame Scheduler using) 316.32 572.33 T
|
|
5 F
|
|
(frs_create_slave\050\051) 452.6 572.33 T
|
|
0 F
|
|
(,) 531.43 572.33 T
|
|
(specifying information about the master FRS.) 234 560.33 T
|
|
(Now the par) 216 536.33 T
|
|
(ent and each sub-par) 271.73 536.33 T
|
|
(ent pr) 363.94 536.33 T
|
|
(oceed to cr) 390.07 536.33 T
|
|
(eate and enqueue the) 437.57 536.33 T
|
|
(r) 216 524.33 T
|
|
(eal-time pr) 219.77 524.33 T
|
|
(ocesses that will be dispatched. When all pr) 267.84 524.33 T
|
|
(ocesses ar) 460.39 524.33 T
|
|
(e) 503.83 524.33 T
|
|
(enqueued, the par) 216 512.33 T
|
|
(ent and sub-par) 296.07 512.33 T
|
|
(ents each start their r) 365.74 512.33 T
|
|
(espective FRS. Each) 458.06 512.33 T
|
|
(r) 216 500.33 T
|
|
(eal-time pr) 219.77 500.33 T
|
|
(ocess begins with and) 267.84 500.33 T
|
|
5 F
|
|
(frs_join\050\051) 367.07 500.33 T
|
|
0 F
|
|
( call to its assigned FRS.) 409.25 500.33 T
|
|
(For an example of this kind of pr) 216 476.33 T
|
|
(ogram str) 360.69 476.33 T
|
|
(uctur) 403.34 476.33 T
|
|
(e, r) 426.85 476.33 T
|
|
(efer to \322Example of) 440.41 476.33 T
|
|
(Multiple Synchr) 216 464.33 T
|
|
(onized Schedulers\323 on page) 287.4 464.33 T
|
|
(41.) 413.39 464.33 T
|
|
1 12 Q
|
|
(Frame Scheduler Methods) 45 423 T
|
|
0 10 Q
|
|
(This section describes the details of the concepts and abstractions that the) 216 397.33 T
|
|
(Frame Scheduler uses.) 216 385.33 T
|
|
1 11.5 Q
|
|
(Interrupt Sources) 216 348.33 T
|
|
0 10 Q
|
|
-0.54 (The pr) 216 323.83 P
|
|
-0.54 (ogram speci\336es an interr) 244.46 323.83 P
|
|
-0.54 (upt sour) 351.98 323.83 P
|
|
-0.54 (ce to be the time base when it cr) 388.72 323.83 P
|
|
-0.54 (eates) 524.97 323.83 P
|
|
(the master FRS. The Frame Scheduler takes car) 216 311.83 T
|
|
(e of initializing har) 422.34 311.83 T
|
|
(dwar) 505.88 311.83 T
|
|
(e) 529.09 311.83 T
|
|
(r) 216 299.83 T
|
|
(esour) 219.77 299.83 T
|
|
(ces and r) 244.04 299.83 T
|
|
(edir) 283.19 299.83 T
|
|
(ecting the interr) 300.76 299.83 T
|
|
(upt to the appr) 370.98 299.83 T
|
|
(opriate pr) 437.12 299.83 T
|
|
(ocessor and) 480.75 299.83 T
|
|
(handler) 216 287.83 T
|
|
(.) 249.64 287.83 T
|
|
1 9.5 Q
|
|
(On-Chip T) 216 260.17 T
|
|
(imer Interrupt) 261.7 260.17 T
|
|
0 10 Q
|
|
(Each pr) 216 236.33 T
|
|
(ocessor chip contains a USYNC timer which is used by IRIX for) 249.63 236.33 T
|
|
(normal pr) 216 224.33 T
|
|
(ocess scheduling. This timer is not synchr) 260.23 224.33 T
|
|
(onized between) 443.61 224.33 T
|
|
(pr) 216 212.33 T
|
|
(ocessors, so it cannot be used to drive multiple FRSs in a master) 225.77 212.33 T
|
|
(-slave) 507.23 212.33 T
|
|
(r) 216 200.33 T
|
|
(elationship. This timer can be used as an FRS time-base when the) 219.77 200.33 T
|
|
(application cr) 216 188.33 T
|
|
(eates only one FRS and ther) 276.41 188.33 T
|
|
(e is a r) 398.8 188.33 T
|
|
(eason to not use the SYNC) 426.99 188.33 T
|
|
(timer) 216 176.33 T
|
|
(.) 238.99 176.33 T
|
|
26 461 27 639 R
|
|
V
|
|
26 233 27 266.5 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "14" 15
|
|
%%Page: "15" 15
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(Frame Scheduler Methods) 461.92 679.44 T
|
|
1 F
|
|
(15) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
1 9.5 Q
|
|
(High-Resolution T) 234 632.67 T
|
|
(imer) 315.56 632.67 T
|
|
0 10 Q
|
|
-0.2 (The high-r) 234 608.83 P
|
|
-0.2 (esolution timer and clock is a timer that is synchr) 280.22 608.83 P
|
|
-0.2 (onous acr) 495.17 608.83 P
|
|
-0.2 (oss all) 537.66 608.83 P
|
|
-0.37 (pr) 234 596.83 P
|
|
-0.37 (ocessors, and is ideal to drive synchr) 243.77 596.83 P
|
|
-0.37 (onous FRSs. On Challenge and Onyx) 403.37 596.83 P
|
|
(systems this timer is based on a high r) 234 584.83 T
|
|
(esolution counter found on the CC) 402.02 584.83 T
|
|
(chip.) 234 572.83 T
|
|
-0.07 (The IRIX uses this timer for managing timeout events. At cr) 234 548.83 P
|
|
-0.07 (eation time, the) 496.35 548.83 P
|
|
-0.55 (master FRS migrates all timeout events dependent on this timer to pr) 234 536.83 P
|
|
-0.55 (ocessor) 532.49 536.83 P
|
|
(0, leaving the timer on the FRS pr) 234 524.83 T
|
|
(ocessor fr) 381.59 524.83 T
|
|
(ee.) 423.75 524.83 T
|
|
1 9.5 Q
|
|
(External Interrupts) 234 497.17 T
|
|
0 10 Q
|
|
(An external interr) 234 473.33 T
|
|
(upt is generated via a signal applied to the external) 312.84 473.33 T
|
|
(interr) 234 461.33 T
|
|
(upt sockets on a Challenge or Onyx system \050r) 258.59 461.33 T
|
|
(efer to ei\0507\051 for details\051.) 458.57 461.33 T
|
|
-0.12 (At FRS cr) 234 449.33 P
|
|
-0.12 (eation time, the system allocates an interr) 275.47 449.33 P
|
|
-0.12 (upt gr) 457.39 449.33 P
|
|
-0.12 (oup which is used) 484.38 449.33 P
|
|
(to make the interr) 234 437.33 T
|
|
(upt simultaneously available to all pr) 312.83 437.33 T
|
|
(ocessors r) 477.55 437.33 T
|
|
(unning) 520.71 437.33 T
|
|
(r) 234 425.33 T
|
|
(elated FRSs.) 237.77 425.33 T
|
|
4 9 Q
|
|
(Note:) 234 401.33 T
|
|
0 10 Q
|
|
(External output signals can be generated by softwar) 260.48 401.33 T
|
|
(e using) 489.72 401.33 T
|
|
5 F
|
|
(ioctl\050\051) 524.05 401.33 T
|
|
0 F
|
|
( to) 550.69 401.33 T
|
|
(the external interr) 234 389.33 T
|
|
(upt driver) 313.11 389.33 T
|
|
(. An imaginative designer might think of) 357.5 389.33 T
|
|
(connecting the external output jacks to the external interr) 234 377.33 T
|
|
(upt input jacks,) 486.23 377.33 T
|
|
(thus cr) 234 365.33 T
|
|
(eating softwar) 264.04 365.33 T
|
|
(e-contr) 327.25 365.33 T
|
|
(olled external interr) 358.1 365.33 T
|
|
(upts as an FRS time base.) 445.51 365.33 T
|
|
-0.2 (This would work in principle. However) 234 353.33 P
|
|
-0.2 (, if the interr) 408.21 353.33 P
|
|
-0.2 (upts ar) 462.29 353.33 P
|
|
-0.2 (e generated by a) 492.89 353.33 P
|
|
(user pr) 234 341.33 T
|
|
(ocess that makes any other system calls, ther) 265.27 341.33 T
|
|
(e is a possibility of) 461.82 341.33 T
|
|
(system deadlock.) 234 329.33 T
|
|
1 9.5 Q
|
|
(V) 234 301.67 T
|
|
(ertical Sync Interrupt) 239.81 301.67 T
|
|
0 10 Q
|
|
(An interr) 234 277.83 T
|
|
(upt is generated for every vertical r) 274.68 277.83 T
|
|
(etrace by the graphics) 430.27 277.83 T
|
|
-0.64 (subsystem \050see gsync\0503g\051 for details\051. Similar to what is done for the external) 234 265.83 P
|
|
-0.74 (interr) 234 253.83 P
|
|
-0.74 (upts, the Frame Scheduler allocates an interr) 258.59 253.83 P
|
|
-0.74 (upt gr) 450.58 253.83 P
|
|
-0.74 (oup to distribute the) 476.95 253.83 P
|
|
(VSYNC interr) 234 241.83 T
|
|
(upt.) 295.61 241.83 T
|
|
1 9.5 Q
|
|
(Device Driver Interrupt) 234 214.17 T
|
|
0 10 Q
|
|
(A user) 234 190.33 T
|
|
(-written, kernel-level device driver can supply the FRS time-base) 263.09 190.33 T
|
|
-0.7 (interr) 234 178.33 P
|
|
-0.7 (upt. See \322The Frame Scheduler DDI\323 on page) 258.59 178.33 P
|
|
-0.7 (33. The Frame Scheduler) 458.42 178.33 P
|
|
(allocates an interr) 234 166.33 T
|
|
(upt gr) 312.39 166.33 T
|
|
(oup to which the device driver must dir) 339.5 166.33 T
|
|
(ect) 515.53 166.33 T
|
|
(interr) 234 154.33 T
|
|
(upts.) 258.59 154.33 T
|
|
44 605.5 45 639 R
|
|
V
|
|
44 470 45 503.5 R
|
|
V
|
|
44 262.5 45 408 R
|
|
V
|
|
44 187 45 220.5 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "15" 16
|
|
%%Page: "16" 16
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(16) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
1 9.5 Q
|
|
(Software Interrupt) 216 632.67 T
|
|
0 10 Q
|
|
-0.01 (A pr) 216 608.83 P
|
|
-0.01 (ogrammed, softwar) 236.04 608.83 P
|
|
-0.01 (e-generated interr) 322.91 608.83 P
|
|
-0.01 (upt can be used as the time base.) 402.15 608.83 P
|
|
(Any user pr) 216 596.83 T
|
|
(ocess can send this interr) 268.92 596.83 T
|
|
(upt to the gr) 379.08 596.83 T
|
|
(oup of synchr) 433.77 596.83 T
|
|
(onous FRSs) 494.68 596.83 T
|
|
(using the call) 216 584.83 T
|
|
5 F
|
|
(frs_userintr\050\051) 277.16 584.83 T
|
|
0 F
|
|
( \050see \322Delivering T) 337.1 584.83 T
|
|
(ime-Base Interr) 419.32 584.83 T
|
|
(upts to a) 486.84 584.83 T
|
|
(Frame Scheduler\323 on page) 216 572.83 T
|
|
(28\051.) 335.79 572.83 T
|
|
(When a user cr) 216 548.83 T
|
|
(eates an FRS with this interr) 282.11 548.83 T
|
|
(upt sour) 406.1 548.83 T
|
|
(ce, the system allocates) 443.37 548.83 T
|
|
(an interr) 216 536.83 T
|
|
(upt gr) 253.9 536.83 T
|
|
(oup that is used to send the interr) 281.01 536.83 T
|
|
(upt simultaneously to all) 429.74 536.83 T
|
|
(pr) 216 524.83 T
|
|
(ocessors involved in the execution of the r) 225.77 524.83 T
|
|
(eal-time application.) 410.98 524.83 T
|
|
(Softwar) 216 500.83 T
|
|
(e interr) 250.39 500.83 T
|
|
(upts ar) 282.26 500.83 T
|
|
(e primarily intended for application debugging. It is) 313.06 500.83 T
|
|
(not feasible for a user pr) 216 488.83 T
|
|
(ocess to generate interr) 323.01 488.83 T
|
|
(upts with the kind of) 424.9 488.83 T
|
|
(r) 216 476.83 T
|
|
(egularity that a r) 219.77 476.83 T
|
|
(eal-time scheduler r) 293.31 476.83 T
|
|
(equir) 380.93 476.83 T
|
|
(es.) 404.02 476.83 T
|
|
4 9 Q
|
|
-0.22 (Note:) 216 452.83 P
|
|
0 10 Q
|
|
-0.22 (User interr) 242.04 452.83 P
|
|
-0.22 (upts ar) 289.66 452.83 P
|
|
-0.22 (e normally trigger) 320.24 452.83 P
|
|
-0.22 (ed by a pr) 399.79 452.83 P
|
|
-0.22 (ocess r) 443.38 452.83 P
|
|
-0.22 (unning on cpu 0.) 472.69 452.83 P
|
|
(This can lead to system deadlock if the user pr) 216 440.83 T
|
|
(ocess generating the) 420.48 440.83 T
|
|
(interr) 216 428.83 T
|
|
(upts issues system calls other than) 240.59 428.83 T
|
|
5 F
|
|
(frs_userintr\050\051) 395.09 428.83 T
|
|
0 F
|
|
(.) 455.04 428.83 T
|
|
1 11.5 Q
|
|
(Interrupt Isolation) 216 391.83 T
|
|
0 10 Q
|
|
(When an FRS is cr) 216 367.33 T
|
|
(eated on a pr) 296.06 367.33 T
|
|
(ocessor and the r) 353.53 367.33 T
|
|
(eal-time event interr) 428.14 367.33 T
|
|
(upt is) 517.82 367.33 T
|
|
-0.26 (set, all other interr) 216 355.33 P
|
|
-0.26 (upts ar) 296.16 355.33 P
|
|
-0.26 (e either shut of) 326.69 355.33 P
|
|
-0.26 (f or r) 391.64 355.33 P
|
|
-0.26 (edir) 412.61 355.33 P
|
|
-0.26 (ected, except for some I/O) 430.18 355.33 P
|
|
(interr) 216 343.33 T
|
|
(upts if the pr) 240.59 343.33 T
|
|
(ocessor belongs to the set of pr) 297.48 343.33 T
|
|
(ocessors that ar) 432.75 343.33 T
|
|
(e) 500.64 343.33 T
|
|
0 9 Q
|
|
(sprayable) 507.93 343.33 T
|
|
0 10 Q
|
|
(\050see \322Pr) 216 331.33 T
|
|
(eparing the System\323 on page) 250.44 331.33 T
|
|
(1) 380.35 331.33 T
|
|
(1\051.) 384.8 331.33 T
|
|
1 11.5 Q
|
|
(Interrupt Synchronization) 216 294.33 T
|
|
0 10 Q
|
|
(Frame Schedulers r) 216 269.83 T
|
|
(unning on dif) 301.28 269.83 T
|
|
(fer) 361.66 269.83 T
|
|
(ent pr) 373.54 269.83 T
|
|
(ocessors can be synchr) 399.68 269.83 T
|
|
(onized. T) 499.17 269.83 T
|
|
(o) 539.45 269.83 T
|
|
(make this possible, Frame Schedulers ar) 216 257.83 T
|
|
(e categorized as synchr) 392.63 257.83 T
|
|
(onization) 495.03 257.83 T
|
|
(masters or synchr) 216 245.83 T
|
|
(onization slaves. The synchr) 294.33 245.83 T
|
|
(onization type of an FRS is) 419.12 245.83 T
|
|
-0.17 (speci\336ed at cr) 216 233.83 P
|
|
-0.17 (eation time via the) 276.44 233.83 P
|
|
2 F
|
|
-0.17 (sync_master) 360.19 233.83 P
|
|
0 F
|
|
-0.17 ( parameter of) 410.9 233.83 P
|
|
5 F
|
|
-0.17 (frs_create\050\051) 472.24 233.83 P
|
|
0 F
|
|
-0.17 (. This) 522.75 233.83 P
|
|
-0.47 (takes the value FRS_SYNC_MASTER for the master FRS, and the pr) 216 221.83 P
|
|
-0.47 (ocess ID) 510.68 221.83 P
|
|
(of the pr) 216 209.83 T
|
|
(ocess that cr) 253.42 209.83 T
|
|
(eated the master FRS when cr) 307.11 209.83 T
|
|
(eating a slave FRS.) 437.9 209.83 T
|
|
(The master FRS acts as a r) 216 185.83 T
|
|
(epr) 330.19 185.83 T
|
|
(esentative for the whole gr) 344.75 185.83 T
|
|
(oup of FRSs. It) 462.45 185.83 T
|
|
(allocates the interr) 216 173.83 T
|
|
(upt gr) 297.43 173.83 T
|
|
(oup they will use. It also synchr) 324.55 173.83 T
|
|
(onizes the startup) 464.92 173.83 T
|
|
(pr) 216 161.83 T
|
|
(ocedur) 225.77 161.83 T
|
|
(e: it waits for all its slaves to be r) 256.36 161.83 T
|
|
(eady to start r) 399.6 161.83 T
|
|
(eal-time execution,) 460.73 161.83 T
|
|
26 605.5 27 639 R
|
|
V
|
|
26 425.5 27 507.5 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "16" 17
|
|
%%Page: "17" 17
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(Frame Scheduler Methods) 461.92 679.44 T
|
|
1 F
|
|
(17) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
-0.71 (which happens only when every slave has done an) 234 632.33 P
|
|
5 F
|
|
-0.71 (frs_start\050\051) 454.93 632.33 P
|
|
0 F
|
|
-0.71 ( and all queued) 498.77 632.33 P
|
|
(pr) 234 620.33 T
|
|
(ocesses have called) 243.77 620.33 T
|
|
5 F
|
|
(frs_join\050\051) 330.85 620.33 T
|
|
0 F
|
|
(.) 373.03 620.33 T
|
|
-0.39 (After the startup pr) 234 596.33 P
|
|
-0.39 (ocedur) 318.8 596.33 P
|
|
-0.39 (e, the frames ar) 349.38 596.33 P
|
|
-0.39 (e kept synchr) 415.75 596.33 P
|
|
-0.39 (onous via one of two) 474 596.33 P
|
|
(mechanisms, depending on the interr) 234 584.33 T
|
|
(upt sour) 399 584.33 T
|
|
(ce. For the SYNC T) 436.28 584.33 T
|
|
(imer) 519.7 584.33 T
|
|
(, all) 539.43 584.33 T
|
|
-0.57 (FRS\325s use the same CC Counter Base and clock. For the user) 234 572.33 P
|
|
-0.57 (, external, driver) 491.45 572.33 P
|
|
-0.57 (,) 562.57 572.33 P
|
|
-0.75 (and vsync interr) 234 560.33 P
|
|
-0.75 (upts, the frame schedulers use interr) 304.7 560.33 P
|
|
-0.75 (upt gr) 462.16 560.33 P
|
|
-0.75 (oups to br) 488.52 560.33 P
|
|
-0.75 (oadcast) 531.76 560.33 P
|
|
(one interr) 234 548.33 T
|
|
(upt to several pr) 277.15 548.33 T
|
|
(ocessors simultaneously) 349.74 548.33 T
|
|
(.) 455.88 548.33 T
|
|
1 11.5 Q
|
|
(Startup Synchronization) 234 511.33 T
|
|
0 10 Q
|
|
(A Frame Scheduler cannot start r) 234 486.83 T
|
|
(eal-time execution until all its managed) 379.7 486.83 T
|
|
(pr) 234 474.83 T
|
|
(ocesses have done their own initial setup and ar) 243.77 474.83 T
|
|
(e r) 455.4 474.83 T
|
|
(eady to r) 466.45 474.83 T
|
|
(un their) 505.48 474.83 T
|
|
(r) 234 462.83 T
|
|
(eal-time loop. When) 237.77 462.83 T
|
|
5 F
|
|
(frs_start\050\051) 329.81 462.83 T
|
|
0 F
|
|
(is invoked in or) 376.15 462.83 T
|
|
(der to trigger the startup) 445.02 462.83 T
|
|
-0.14 (pr) 234 450.83 P
|
|
-0.14 (ocedur) 243.77 450.83 P
|
|
-0.14 (e, the FRS waits for all pr) 274.36 450.83 P
|
|
-0.14 (ocesses in its queues to invoke) 384.17 450.83 P
|
|
5 F
|
|
-0.14 (frs_join\050\051) 519.96 450.83 P
|
|
0 F
|
|
-0.14 (.) 562.15 450.83 P
|
|
-0.67 (When this state is r) 234 438.83 P
|
|
-0.67 (eached the FRS waits for the next r) 315.42 438.83 P
|
|
-0.67 (eal-time interr) 463.64 438.83 P
|
|
-0.67 (upt, then) 525.86 438.83 P
|
|
(pr) 234 426.83 T
|
|
(oceeds to schedule the pr) 243.77 426.83 T
|
|
(ocesses as speci\336ed in the queues.) 355.04 426.83 T
|
|
(The pr) 234 402.83 T
|
|
(ocess that cr) 263 402.83 T
|
|
(eates a frame scheduler becomes the) 316.7 402.83 T
|
|
2 F
|
|
( frs-master pr) 477.12 402.83 T
|
|
(ocess) 531.91 402.83 T
|
|
0 F
|
|
(.) 552.08 402.83 T
|
|
(This pr) 234 390.83 T
|
|
(ocess may not be frame scheduled \050that is, enqueued on any of the) 265.36 390.83 T
|
|
(minor frames queues\051. The frs-master pr) 234 378.83 T
|
|
(ocess becomes the r) 412.26 378.83 T
|
|
(epr) 498.61 378.83 T
|
|
(esentative) 513.17 378.83 T
|
|
(for an FRS, and is sent all the err) 234 366.83 T
|
|
(or and termination signals that ar) 376.86 366.83 T
|
|
(e sent to) 524.42 366.83 T
|
|
(the pr) 234 354.83 T
|
|
(ocesses in the FRS queues.) 260.14 354.83 T
|
|
1 11.5 Q
|
|
(Scheduling W) 234 317.83 T
|
|
(ithin A Minor Frame) 309.87 317.83 T
|
|
0 10 Q
|
|
(Pr) 234 293.33 T
|
|
(ocesses in a minor frame queue ar) 243.8 293.33 T
|
|
(e activated in queue or) 393.53 293.33 T
|
|
(der) 493.89 293.33 T
|
|
(. \050Initially) 507.99 293.33 T
|
|
(queue or) 234 281.33 T
|
|
(der is the or) 272.95 281.33 T
|
|
(der in which pr) 325.52 281.33 T
|
|
(ocesses wer) 393.67 281.33 T
|
|
(e named in) 445.24 281.33 T
|
|
5 F
|
|
(frs_enqueue\050\051) 496.79 281.33 T
|
|
0 F
|
|
-0.6 (calls. The queues can be r) 234 269.33 P
|
|
-0.6 (eor) 343.02 269.33 P
|
|
-0.6 (der) 357.03 269.33 P
|
|
-0.6 (ed dynamically; see \322Dynamic Management) 371.7 269.33 P
|
|
(of Scheduler Queues\323 on page) 234 257.33 T
|
|
(30.\051) 370.68 257.33 T
|
|
(The FRS keeps two status \337ags per queued pr) 234 233.33 T
|
|
(ocess. If a pr) 435.36 233.33 T
|
|
(ocess is r) 489.98 233.33 T
|
|
(eady to) 529.05 233.33 T
|
|
(r) 234 221.33 T
|
|
(un when its turn comes, it is activated and its) 237.87 221.33 T
|
|
2 F
|
|
(frs_run) 440.19 221.33 T
|
|
0 F
|
|
( \337ag is set to indicate) 470.74 221.33 T
|
|
(that this pr) 234 209.33 T
|
|
(ocess has r) 282.32 209.33 T
|
|
(un at least once within this minor frame.) 329.4 209.33 T
|
|
-0.16 (When a pr) 234 185.33 P
|
|
-0.16 (ocess yields, its) 279.86 185.33 P
|
|
2 F
|
|
-0.16 (frs_yield) 349.45 185.33 P
|
|
0 F
|
|
-0.16 ( \337ag is set to indicate that the pr) 384.44 185.33 P
|
|
-0.16 (ocess has) 524.11 185.33 P
|
|
-0.14 (alr) 234 173.33 P
|
|
-0.14 (eady r) 245.67 173.33 P
|
|
-0.14 (un and r) 273.35 173.33 P
|
|
-0.14 (eleased the pr) 310.6 173.33 P
|
|
-0.14 (ocessor) 371.56 173.33 P
|
|
-0.14 (. It will not be activated again within) 403.38 173.33 P
|
|
(this minor frame.) 234 161.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "17" 18
|
|
%%Page: "18" 18
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(18) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(If a pr) 216 632.33 T
|
|
(ocess is not r) 242.46 632.33 T
|
|
(eady \050usually because it is blocked waiting for IO\051, it is) 298.57 632.33 T
|
|
-0.44 (skipped. Upon r) 216 620.33 P
|
|
-0.44 (eaching the end of the queue, the scheduler goes back to the) 287.04 620.33 P
|
|
(beginning, in a r) 216 608.33 T
|
|
(ound-r) 288.18 608.33 T
|
|
(obin fashion, sear) 318.68 608.33 T
|
|
(ching for pr) 396.24 608.33 T
|
|
(ocesses that have not) 448.28 608.33 T
|
|
-0.28 (yielded and may have become r) 216 596.33 P
|
|
-0.28 (eady to r) 355.37 596.33 P
|
|
-0.28 (un. If no r) 393.83 596.33 P
|
|
-0.28 (eady to r) 436.55 596.33 P
|
|
-0.28 (un pr) 475.01 596.33 P
|
|
-0.28 (ocesses ar) 498.84 596.33 P
|
|
-0.28 (e) 542 596.33 P
|
|
-0.63 (found, the FRS goes into idle mode until a pr) 216 584.33 P
|
|
-0.63 (ocess becomes available or until) 408.44 584.33 P
|
|
(the end of the frame.) 216 572.33 T
|
|
(When a r) 216 548.33 T
|
|
(eal-time interr) 256.18 548.33 T
|
|
(upt is r) 319.06 548.33 T
|
|
(eceived, indicating end of minor frame, the) 350.27 548.33 T
|
|
-0.52 (FRS checks the \337ags for each pr) 216 536.33 P
|
|
-0.52 (ocesse. If the) 351.89 536.33 P
|
|
2 F
|
|
-0.52 (frs_run) 408.83 536.33 P
|
|
0 F
|
|
-0.52 ( \337ag has not been set, the) 439.38 536.33 P
|
|
(pr) 216 524.33 T
|
|
(ocess never ran and ther) 225.77 524.33 T
|
|
(efor) 333.23 524.33 T
|
|
(e is a candidate for an) 350.57 524.33 T
|
|
2 F
|
|
(underrun) 449.45 524.33 T
|
|
0 F
|
|
( err) 488.34 524.33 T
|
|
(or) 503.34 524.33 T
|
|
(. If the) 512.01 524.33 T
|
|
2 F
|
|
-0.5 (frs_run) 216 512.33 P
|
|
0 F
|
|
-0.5 ( \337ag is set and the) 246.55 512.33 P
|
|
2 F
|
|
-0.5 (frs_yield) 325.36 512.33 P
|
|
0 F
|
|
-0.5 ( \337ag is not, the pr) 360.35 512.33 P
|
|
-0.5 (ocess is a candidate for an) 434.77 512.33 P
|
|
2 F
|
|
-0.08 (overrun) 216 500.33 P
|
|
0 F
|
|
-0.08 ( err) 248.21 500.33 P
|
|
-0.08 (or) 263.14 500.33 P
|
|
-0.08 (. Whether these err) 271.8 500.33 P
|
|
-0.08 (ors ar) 355.36 500.33 P
|
|
-0.08 (e declar) 380.2 500.33 P
|
|
-0.08 (ed depends on the scheduling) 414.41 500.33 P
|
|
(discipline assigned to a pr) 216 488.33 T
|
|
(ocess \050see \322Frame Scheduling Disciplines\323 on) 331.16 488.33 T
|
|
(page) 216 476.33 T
|
|
(9\051.) 239.85 476.33 T
|
|
-0.09 (At the end of a minor frame, the FRS r) 216 452.33 P
|
|
-0.09 (esets all) 383.55 452.33 P
|
|
2 F
|
|
-0.09 (frs_run) 420.49 452.33 P
|
|
0 F
|
|
-0.09 ( \337ags. It also r) 451.05 452.33 P
|
|
-0.09 (esets all) 512.05 452.33 P
|
|
2 F
|
|
-0.71 (frs_yield) 216 440.33 P
|
|
0 F
|
|
-0.71 ( \337ags except for those of pr) 250.99 440.33 P
|
|
-0.71 (ocesses that ar) 365.85 440.33 P
|
|
-0.71 (e Continuable in that minor) 427.69 440.33 P
|
|
(frame. For those pr) 216 428.33 T
|
|
(ocesses, the r) 300.17 428.33 T
|
|
(esidual) 357.48 428.33 T
|
|
2 F
|
|
(frs_yield) 391.95 428.33 T
|
|
0 F
|
|
( \337ags will keep pr) 426.94 428.33 T
|
|
(ocesses) 505.78 428.33 T
|
|
(that have yielded fr) 216 416.33 T
|
|
(om being dispatched in the next minor frame. All) 302.33 416.33 T
|
|
(frs_yield \337ags ar) 216 404.33 T
|
|
(e r) 289.41 404.33 T
|
|
(eset at the end of a major frame.) 300.46 404.33 T
|
|
(Underr) 216 380.33 T
|
|
(un and overr) 248.3 380.33 T
|
|
(un err) 305.77 380.33 T
|
|
(ors ar) 332.62 380.33 T
|
|
(e communicated via IRIX signals\0505\051. These) 357.52 380.33 T
|
|
(signals ar) 216 368.33 T
|
|
(e sent to) 257.93 368.33 T
|
|
2 F
|
|
(all) 297.02 368.33 T
|
|
0 F
|
|
( pr) 307.02 368.33 T
|
|
(ocesses in the FRS queues \050see \322Frame Scheduler) 319.29 368.33 T
|
|
(Signals\323 on page) 216 356.33 T
|
|
(18\051.) 292.79 356.33 T
|
|
1 11.5 Q
|
|
(Frame Scheduler Signals) 216 319.33 T
|
|
0 10 Q
|
|
(The frame scheduler uses 3 signals. By default they ar) 216 294.83 T
|
|
(e set as follows:) 452.87 294.83 T
|
|
4 9 Q
|
|
(\245) 216 276.83 T
|
|
0 10 Q
|
|
(Overr) 234 276.83 T
|
|
(un Signal is SIGUSR2) 260.11 276.83 T
|
|
4 9 Q
|
|
(\245) 216 258.83 T
|
|
0 10 Q
|
|
(Underr) 234 258.83 T
|
|
(un Signal is SIGUSR1) 266.3 258.83 T
|
|
4 9 Q
|
|
(\245) 216 240.83 T
|
|
0 10 Q
|
|
(T) 234 240.83 T
|
|
(ermination Signal is SIGHUP) 239.21 240.83 T
|
|
(Signals ar) 216 216.83 T
|
|
(e sent to all queued pr) 258.94 216.83 T
|
|
(ocesses and to the frs-master pr) 356.95 216.83 T
|
|
(ocess. The) 495.8 216.83 T
|
|
(overr) 216 204.83 T
|
|
(un and underr) 239.71 204.83 T
|
|
(un signals ar) 304.02 204.83 T
|
|
(e sent following detection of those err) 360.29 204.83 T
|
|
(ors.) 526.51 204.83 T
|
|
(The termination signal is sent after invocation of) 216 192.83 T
|
|
5 F
|
|
(frs_destroy\050\051) 432.18 192.83 T
|
|
0 F
|
|
(.) 489.92 192.83 T
|
|
(Signals ar) 216 168.83 T
|
|
(e deliver) 258.94 168.83 T
|
|
(ed to pr) 297.14 168.83 T
|
|
(ocesses during kernel-to-user transitions. In) 331.52 168.83 T
|
|
(timeshar) 216 156.83 T
|
|
(ed mode these transitions happen at least once every scheduler) 254.6 156.83 T
|
|
26 401 27 447 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "18" 19
|
|
%%Page: "19" 19
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(The Frame Scheduler API) 464.36 679.44 T
|
|
1 F
|
|
(19) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(clock interr) 234 632.33 T
|
|
(upt \05010 ms for Irix\051. However) 283.88 632.33 T
|
|
(, while in frame scheduler mode,) 412.53 632.33 T
|
|
(these transitions ar) 234 620.33 T
|
|
(e mor) 317.49 620.33 T
|
|
(e sporadic; they only happen at minor frame) 342.83 620.33 T
|
|
(boundaries and pr) 234 608.33 T
|
|
(ocesses context switches due to system calls or yielding.) 315.51 608.33 T
|
|
1 12 Q
|
|
(The Frame Scheduler API) 63 567 T
|
|
0 10 Q
|
|
(The authorized pr) 234 541.33 T
|
|
(ogramming interface \050API\051 to the Frame Scheduler is) 313.81 541.33 T
|
|
(composed of system calls, which ar) 234 529.33 T
|
|
(e available to either C or FOR) 389.56 529.33 T
|
|
(TRAN) 519.45 529.33 T
|
|
(pr) 234 517.33 T
|
|
(ograms, and library calls, which pr) 243.77 517.33 T
|
|
(ovide a C pr) 397.58 517.33 T
|
|
(ogram with a mor) 451.84 517.33 T
|
|
(e) 531.49 517.33 T
|
|
-0.43 (convenient interface to the system calls. Calls ar) 234 505.33 P
|
|
-0.43 (e pr) 441.83 505.33 P
|
|
-0.43 (ovided for the following) 458.45 505.33 P
|
|
(operations:) 234 493.33 T
|
|
4 9 Q
|
|
(\245) 234 475.33 T
|
|
0 10 Q
|
|
(Cr) 252 475.33 T
|
|
(eating a master or slave Frame Scheduler) 262.85 475.33 T
|
|
4 9 Q
|
|
(\245) 234 457.33 T
|
|
0 10 Q
|
|
(Enqueuing pr) 252 457.33 T
|
|
(ocesses to a Frame Scheduler) 312.92 457.33 T
|
|
4 9 Q
|
|
(\245) 234 439.33 T
|
|
0 10 Q
|
|
(Joining a Frame Scheduler) 252 439.33 T
|
|
4 9 Q
|
|
(\245) 234 421.33 T
|
|
0 10 Q
|
|
(Y) 252 421.33 T
|
|
(ielding contr) 258.12 421.33 T
|
|
(ol at the end of a frame) 314.35 421.33 T
|
|
4 9 Q
|
|
(\245) 234 403.33 T
|
|
0 10 Q
|
|
(Delivering user) 252 403.33 T
|
|
(-de\336ned time-base interr) 320.32 403.33 T
|
|
(upts) 429.54 403.33 T
|
|
4 9 Q
|
|
(\245) 234 385.33 T
|
|
0 10 Q
|
|
(Stopping and r) 252 385.33 T
|
|
(esuming Frame Schedulers) 317.94 385.33 T
|
|
4 9 Q
|
|
(\245) 234 367.33 T
|
|
0 10 Q
|
|
(Dynamic Management of scheduler queues) 252 367.33 T
|
|
4 9 Q
|
|
(\245) 234 349.33 T
|
|
0 10 Q
|
|
(Destr) 252 349.33 T
|
|
(oying a Frame Scheduler) 275.79 349.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "19" 20
|
|
%%Page: "20" 20
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(20) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
1 11.5 Q
|
|
(Creating a Master or Slave Frame Scheduler) 216 631.33 T
|
|
2 9.5 Q
|
|
(Data Structur) 45 619.17 T
|
|
(es) 99.57 619.17 T
|
|
4 8 Q
|
|
(typedef struct frs_fsched_info {) 216 604.67 T
|
|
(int) 246 593.67 T
|
|
(cpu;) 276 593.67 T
|
|
(int) 246 582.67 T
|
|
(intr_source;) 276 582.67 T
|
|
(int) 246 571.67 T
|
|
(intr_qualifier;) 276 571.67 T
|
|
(int) 246 560.67 T
|
|
(n_minors;) 276 560.67 T
|
|
(int) 246 549.67 T
|
|
(sync_master;) 276 549.67 T
|
|
(int*) 246 538.67 T
|
|
(sync_slaves;) 276 538.67 T
|
|
(int) 246 527.67 T
|
|
(num_slaves;) 276 527.67 T
|
|
(} frs_fsched_info_t;) 216 516.67 T
|
|
(typedef struct frs {) 216 505.67 T
|
|
(frs_fsched_info_t) 246 494.67 T
|
|
(frs_info;) 306.89 494.67 T
|
|
(int) 246 483.67 T
|
|
(sync_master_pid;) 306 483.67 T
|
|
(} frs_t;) 216 472.67 T
|
|
2 9.5 Q
|
|
(System Call) 45 463.67 T
|
|
4 8 Q
|
|
(int) 216 449.17 T
|
|
(schedctl) 246 449.17 T
|
|
(\050) 277.55 449.17 T
|
|
(MPTS_FRS_CREATE, frs_fsched_info_t* frs_fsched_info) 282.44 449.17 T
|
|
(\051) 489.07 449.17 T
|
|
(;) 493.95 449.17 T
|
|
2 9.5 Q
|
|
(Library Calls) 45 440.17 T
|
|
4 8 Q
|
|
(frs_t*) 216 425.67 T
|
|
(frs_create) 246 425.67 T
|
|
(\050) 283.77 425.67 T
|
|
(int cpu,) 288.66 425.67 T
|
|
(int intr_source, int intr_qualifier, int n_minors,) 314.43 425.67 T
|
|
(int sync_master_pid, int* sync_slaves, int num_slaves) 306 414.67 T
|
|
(\051) 498.85 414.67 T
|
|
(;) 503.74 414.67 T
|
|
(frs_t*) 216 403.67 T
|
|
(frs_create_master) 246 403.67 T
|
|
(\050) 312.65 403.67 T
|
|
(int cpu, int intr_source, int intr_qualifier, int n_minors,) 317.54 403.67 T
|
|
(int* sync_slaves, int num_slaves) 306 392.67 T
|
|
(\051) 423.31 392.67 T
|
|
(;) 428.2 392.67 T
|
|
(frs_t*) 216 370.67 T
|
|
(frs_create_slave) 246 370.67 T
|
|
(\050) 306.88 370.67 T
|
|
(int cpu, frs_t* sync_master_frs) 311.76 370.67 T
|
|
(\051) 421.52 370.67 T
|
|
(;) 426.4 370.67 T
|
|
0 10 Q
|
|
(A Frame Scheduler can be cr) 216 338.33 T
|
|
(eated using any of the calls above. Both) 342.22 338.33 T
|
|
5 F
|
|
(schedctl\050\051) 216 326.33 T
|
|
0 F
|
|
( and) 259.84 326.33 T
|
|
5 F
|
|
(frs_create\050\051) 281.75 326.33 T
|
|
0 F
|
|
( allow for the cr) 332.27 326.33 T
|
|
(eation of either kind of FRS.) 401.67 326.33 T
|
|
-0.37 (The pr) 216 302.33 P
|
|
-0.37 (ocess that cr) 244.63 302.33 P
|
|
-0.37 (eates an FRS becomes the frs-master pr) 297.58 302.33 P
|
|
-0.37 (ocess for that FRS.) 467.29 302.33 P
|
|
(The pr) 216 290.33 T
|
|
(ocess ID of the frs-master serves to identify the master FRS. As a) 245 290.33 T
|
|
(r) 216 278.33 T
|
|
(esult, the frs-master pr) 219.77 278.33 T
|
|
(ocess is r) 319.51 278.33 T
|
|
(estricted in several ways:) 358.58 278.33 T
|
|
4 9 Q
|
|
(\245) 216 260.33 T
|
|
0 10 Q
|
|
(That pr) 234 260.33 T
|
|
(ocess cannot cr) 266.47 260.33 T
|
|
(eate another FRS. Y) 332.62 260.33 T
|
|
(ou must cr) 417.75 260.33 T
|
|
(eate a separate) 464.78 260.33 T
|
|
(pr) 234 248.33 T
|
|
(ocess \050usually with) 243.77 248.33 T
|
|
5 F
|
|
(sproc\050\051) 330.74 248.33 T
|
|
0 F
|
|
(\051 for each FRS, master or slave.) 361.82 248.33 T
|
|
4 9 Q
|
|
(\245) 216 230.33 T
|
|
0 10 Q
|
|
(The frs-master pr) 234 230.33 T
|
|
(ocess cannot be enqueued on any FRS.) 310.4 230.33 T
|
|
4 9 Q
|
|
(\245) 216 212.33 T
|
|
0 10 Q
|
|
(The frs-master r) 234 212.33 T
|
|
(eceives the signals generated by its FRS.) 304.39 212.33 T
|
|
(The call) 216 188.33 T
|
|
5 F
|
|
(frs_create_master\050\051) 252.98 188.33 T
|
|
0 F
|
|
( is a wrapper that uses) 339.02 188.33 T
|
|
5 F
|
|
(frs_create\050\051) 440.81 188.33 T
|
|
0 F
|
|
( to cr) 491.32 188.33 T
|
|
(eate an) 513.24 188.33 T
|
|
(FRS with) 216 176.33 T
|
|
2 F
|
|
(sync_master_pid) 258.8 176.33 T
|
|
0 F
|
|
( set to FRS_SYNC_MASTER. Similarly) 327.28 176.33 T
|
|
(,) 496.04 176.33 T
|
|
5 F
|
|
(frs_create_slave\050\051) 216 164.33 T
|
|
0 F
|
|
( is a wrapper that calls) 294.83 164.33 T
|
|
5 F
|
|
(frs_create\050\051) 396.81 164.33 T
|
|
0 F
|
|
( using the parameters) 447.32 164.33 T
|
|
(found in the speci\336ed) 216 152.33 T
|
|
2 F
|
|
(sync_master_frs) 314.64 152.33 T
|
|
0 F
|
|
(.) 380.9 152.33 T
|
|
26 209 27 309 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "20" 21
|
|
%%Page: "21" 21
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(The Frame Scheduler API) 464.36 679.44 T
|
|
1 F
|
|
(21) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
2 9.5 Q
|
|
(Parameters) 63 632.67 T
|
|
2 10 Q
|
|
(cpu) 234 613.83 T
|
|
0 F
|
|
(The pr) 306 613.83 T
|
|
(ocessor that will be managed by the cr) 335 613.83 T
|
|
(eated frame) 504 613.83 T
|
|
-0.35 (scheduler) 306 601.83 P
|
|
-0.35 (. Pr) 348.32 601.83 P
|
|
-0.35 (ocessors ar) 362.77 601.83 P
|
|
-0.35 (e number) 410.49 601.83 P
|
|
-0.35 (ed fr) 452.18 601.83 P
|
|
-0.35 (om 0, but pr) 472.32 601.83 P
|
|
-0.35 (ocessor 0) 525.14 601.83 P
|
|
(cannot be used by an FRS.) 306 589.83 T
|
|
2 F
|
|
(intr_sour) 234 571.83 T
|
|
(ce) 272.14 571.83 T
|
|
0 F
|
|
(The interr) 306 571.83 T
|
|
(upt sour) 349.82 571.83 T
|
|
(ce, which must be one of:) 387.1 571.83 T
|
|
4 9 Q
|
|
(\245) 306 553.83 T
|
|
0 10 Q
|
|
-0.41 (FRS_INTRSOURCE_R4KTIMER for the R4K timer \050not) 324 553.83 P
|
|
(allowed for a slave FRS\051) 324 541.83 T
|
|
4 9 Q
|
|
(\245) 306 523.83 T
|
|
0 10 Q
|
|
(FRS_INTRSOURCE_CCTIMER for the synchr) 324 523.83 T
|
|
(onous) 526.33 523.83 T
|
|
(timer) 324 511.83 T
|
|
4 9 Q
|
|
(\245) 306 493.83 T
|
|
0 10 Q
|
|
(FRS_INTRSOURCE_EXTINTR for external interr) 324 493.83 T
|
|
(upts) 540.55 493.83 T
|
|
4 9 Q
|
|
(\245) 306 475.83 T
|
|
0 10 Q
|
|
(FRS_INTRSOURCE_VSYNC for vsync interr) 324 475.83 T
|
|
(upts) 521.73 475.83 T
|
|
4 9 Q
|
|
(\245) 306 457.83 T
|
|
0 10 Q
|
|
(FRS_INTRSOURCE_DRIVER for device driver) 324 457.83 T
|
|
(interr) 324 445.83 T
|
|
(upts) 348.59 445.83 T
|
|
4 9 Q
|
|
(\245) 306 427.83 T
|
|
0 10 Q
|
|
(FRS_INTRSOURCE_USER for user generated) 324 427.83 T
|
|
(interr) 324 415.83 T
|
|
(upts) 348.59 415.83 T
|
|
2 F
|
|
(intr_quali\336er) 234 397.83 T
|
|
3 F
|
|
(Additional information about the) 306 397.83 T
|
|
2 F
|
|
(Intr_sour) 440.37 397.83 T
|
|
(ce) 479.05 397.83 T
|
|
3 F
|
|
(:) 487.01 397.83 T
|
|
4 9 Q
|
|
(\245) 306 379.83 T
|
|
0 10 Q
|
|
(The minor frame interval in micr) 324 379.83 T
|
|
(oseconds when the) 469 379.83 T
|
|
(interr) 324 367.83 T
|
|
(upt sour) 348.59 367.83 T
|
|
(ce is either timer) 385.87 367.83 T
|
|
4 9 Q
|
|
(\245) 306 349.83 T
|
|
0 10 Q
|
|
(The graphic pipe when the interr) 324 349.83 T
|
|
(upt sour) 469.81 349.83 T
|
|
(ce is vsync) 507.09 349.83 T
|
|
4 9 Q
|
|
(\245) 306 331.83 T
|
|
0 10 Q
|
|
-0.47 (The device driver identi\336er number when the interr) 324 331.83 P
|
|
-0.47 (upt) 549.68 331.83 P
|
|
(sour) 324 319.83 T
|
|
(ce is a device driver \050see \322Exporting the) 343.49 319.83 T
|
|
(Initialization and T) 324 307.83 T
|
|
(ermination Functions\323 on page) 407.63 307.83 T
|
|
(35\051) 547.49 307.83 T
|
|
2 F
|
|
(n_minors) 234 289.83 T
|
|
0 F
|
|
(The number of minor frames per major frame.) 306 289.83 T
|
|
2 F
|
|
(sync_master_pid) 234 271.83 T
|
|
0 F
|
|
(Specify whether the cr) 306 271.83 T
|
|
(eated FRS is a master or a slave:) 404.59 271.83 T
|
|
4 9 Q
|
|
(\245) 306 253.83 T
|
|
0 10 Q
|
|
(FRS_SYNC_MASTER speci\336es a master) 324 253.83 T
|
|
4 9 Q
|
|
(\245) 306 235.83 T
|
|
0 10 Q
|
|
(The pr) 324 235.83 T
|
|
(ocess id of the frs-master pr) 353 235.83 T
|
|
(ocess of the master) 474.99 235.83 T
|
|
(FRS speci\336es that the new FRS is a slave) 324 223.83 T
|
|
2 F
|
|
(sync_slaves) 234 205.83 T
|
|
0 F
|
|
(When cr) 306 205.83 T
|
|
(eating a master FRS, the addr) 343.12 205.83 T
|
|
(ess of an array of) 472.81 205.83 T
|
|
(length) 306 193.83 T
|
|
2 F
|
|
(num_slaves) 336.64 193.83 T
|
|
0 F
|
|
(. Each array element contains the CPU) 384.41 193.83 T
|
|
(number of a pr) 306 181.83 T
|
|
(ocessor that will r) 371.98 181.83 T
|
|
(un a slave FRS. This) 450.3 181.83 T
|
|
-0.23 (information lets the master FRS allocate an interr) 306 169.83 P
|
|
-0.23 (upt gr) 520.35 169.83 P
|
|
-0.23 (oup) 547.24 169.83 P
|
|
FMENDPAGE
|
|
%%EndPage: "21" 22
|
|
%%Page: "22" 22
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(22) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(and determine who it should wait for when starting) 288 632.33 T
|
|
-0.07 (r) 288 620.33 P
|
|
-0.07 (eal-time execution. When cr) 291.77 620.33 P
|
|
-0.07 (eating a slave FRS,) 414.6 620.33 P
|
|
2 F
|
|
-0.07 (sync_slaves) 499.19 620.33 P
|
|
0 F
|
|
(is NULL.) 288 608.33 T
|
|
2 F
|
|
(num_slaves) 216 590.33 T
|
|
0 F
|
|
(The number of slave FRSs listed in) 288 590.33 T
|
|
2 F
|
|
(sync_slaves) 443.17 590.33 T
|
|
0 F
|
|
(, or 0.) 490.55 590.33 T
|
|
2 9.5 Q
|
|
(Return V) 45 578.67 T
|
|
(alues) 80.95 578.67 T
|
|
5 10 Q
|
|
(frs_create\050\051) 216 553.83 T
|
|
0 F
|
|
(,) 266.51 553.83 T
|
|
5 F
|
|
(frs_create_master\050\051) 271.51 553.83 T
|
|
0 F
|
|
(, and) 357.55 553.83 T
|
|
5 F
|
|
(frs_create_slave\050\051) 381.97 553.83 T
|
|
0 F
|
|
( r) 460.8 553.83 T
|
|
(eturn a pointer to) 467.06 553.83 T
|
|
-0.29 (an frs_t str) 216 541.83 P
|
|
-0.29 (uctur) 262.36 541.83 P
|
|
-0.29 (e when the cr) 285.87 541.83 P
|
|
-0.29 (eation was succesful, or NULL in case of err) 344.1 541.83 P
|
|
-0.29 (or) 535.63 541.83 P
|
|
-0.29 (.) 544.3 541.83 P
|
|
(The) 216 529.83 T
|
|
5 F
|
|
(schedctl\050\051) 235.23 529.83 T
|
|
0 F
|
|
( call r) 279.07 529.83 T
|
|
(eturns 0 to indicate success, and -1 to indicate err) 303.08 529.83 T
|
|
(or) 519.16 529.83 T
|
|
(. In) 527.83 529.83 T
|
|
(case of err) 216 517.83 T
|
|
(or) 260.74 517.83 T
|
|
(,) 269.41 517.83 T
|
|
2 F
|
|
(errno) 274.41 517.83 T
|
|
0 F
|
|
( is set to) 296.07 517.83 T
|
|
4 9 Q
|
|
(\245) 216 499.83 T
|
|
0 10 Q
|
|
(EINV) 234 499.83 T
|
|
(AL for invalid parameters) 257.89 499.83 T
|
|
4 9 Q
|
|
(\245) 216 481.83 T
|
|
0 10 Q
|
|
(EF) 234 481.83 T
|
|
(AUL) 244.92 481.83 T
|
|
(T if the frs_fsched_info_t* parameter is NULL) 265.84 481.83 T
|
|
4 9 Q
|
|
(\245) 216 463.83 T
|
|
0 10 Q
|
|
(ENOSPC if the system could not allocate an interr) 234 463.83 T
|
|
(upt gr) 454.25 463.83 T
|
|
(oup) 481.36 463.83 T
|
|
4 9 Q
|
|
(\245) 216 445.83 T
|
|
0 10 Q
|
|
(ENOMEM if the system could not allocate memory for the FRS Object) 234 445.83 T
|
|
4 9 Q
|
|
(\245) 216 427.83 T
|
|
0 10 Q
|
|
(EEXIST if an FRS Object alr) 234 427.83 T
|
|
(eady exists for the speci\336ed pr) 354.52 427.83 T
|
|
(ocessor) 488.74 427.83 T
|
|
4 9 Q
|
|
(\245) 216 409.83 T
|
|
0 10 Q
|
|
(EBUSY is the speci\336ed pr) 234 409.83 T
|
|
(ocessor is the clock pr) 346 409.83 T
|
|
(ocessor) 442.14 409.83 T
|
|
4 9 Q
|
|
(\245) 216 391.83 T
|
|
0 10 Q
|
|
(EPERM for lack of permission) 234 391.83 T
|
|
4 9 Q
|
|
(\245) 216 373.83 T
|
|
0 10 Q
|
|
(ENODEV to indicate the FRS subsystem has not been installed.) 234 373.83 T
|
|
1 11.5 Q
|
|
(Enqueuing Processes to a Frame Scheduler) 216 336.83 T
|
|
2 9.5 Q
|
|
(Data Structur) 45 324.67 T
|
|
(e) 99.57 324.67 T
|
|
4 8 Q
|
|
(typedef struct frs_queue_info {) 216 310.17 T
|
|
( int) 246 299.17 T
|
|
(cpu;) 276 299.17 T
|
|
( int) 246 288.17 T
|
|
(pid;) 276 288.17 T
|
|
( int) 246 277.17 T
|
|
(minor_index;) 276 277.17 T
|
|
( int) 246 266.17 T
|
|
(discipline;) 276 266.17 T
|
|
(} frs_queue_info_t;) 216 255.17 T
|
|
2 9.5 Q
|
|
(System Call) 45 246.17 T
|
|
4 8 Q
|
|
(int) 216 231.67 T
|
|
(schedctl) 246 231.67 T
|
|
(\050) 277.55 231.67 T
|
|
(MPTS_FRS_ENQUEUE, frs_queue_info_t* frs_queue_info) 282.44 231.67 T
|
|
(\051) 493.52 231.67 T
|
|
(;) 498.4 231.67 T
|
|
2 9.5 Q
|
|
(Library Call) 45 222.67 T
|
|
4 8 Q
|
|
(int) 216 208.17 T
|
|
(frs_enqueue) 246 208.17 T
|
|
(\050) 292.67 208.17 T
|
|
(frs_t* frs, int pid, int minor_index, uint discipline) 297.56 208.17 T
|
|
(\051) 466.42 208.17 T
|
|
(;) 471.3 208.17 T
|
|
0 10 Q
|
|
-0.41 (Pr) 216 175.83 P
|
|
-0.41 (ocesses may be cr) 225.8 175.83 P
|
|
-0.41 (eated using) 302.14 175.83 P
|
|
5 F
|
|
-0.41 (fork\050\051) 354.79 175.83 P
|
|
0 F
|
|
-0.41 ( or) 380.89 175.83 P
|
|
5 F
|
|
-0.41 (sproc\050\051) 394.46 175.83 P
|
|
0 F
|
|
-0.41 (. Using the child pr) 427.62 175.83 P
|
|
-0.41 (ocess ID) 510.57 175.83 P
|
|
(r) 216 163.83 T
|
|
(eturned by these system calls, a pr) 219.77 163.83 T
|
|
(ocess may be enqueued on a frame) 371.12 163.83 T
|
|
FMENDPAGE
|
|
%%EndPage: "22" 23
|
|
%%Page: "23" 23
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(The Frame Scheduler API) 464.36 679.44 T
|
|
1 F
|
|
(23) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
-0.18 (scheduler minor frame queue using either of the calls above.) 234 632.33 P
|
|
5 F
|
|
-0.18 (frs_enqueue\050\051) 501.4 632.33 P
|
|
0 F
|
|
(is just a wrapper for the dir) 234 620.33 T
|
|
(ect) 354.4 620.33 T
|
|
5 F
|
|
(schedctl\050\051) 369.39 620.33 T
|
|
0 F
|
|
( call.) 413.22 620.33 T
|
|
-0.15 (The frs-master pr) 234 596.33 P
|
|
-0.15 (ocess is r) 310.09 596.33 P
|
|
-0.15 (esponsible for enqueueing the pr) 348.85 596.33 P
|
|
-0.15 (ocesses that will) 493.39 596.33 P
|
|
(be scheduled by an FRS, on the queues associated with the minor frames) 234 584.33 T
|
|
(wher) 234 572.33 T
|
|
(e they ar) 256.71 572.33 T
|
|
(e to r) 294.68 572.33 T
|
|
(un.) 317.04 572.33 T
|
|
(A pr) 234 548.33 T
|
|
(ocess may be enqueued on several queues simultaneously) 254.05 548.33 T
|
|
(. Hence the) 509.22 548.33 T
|
|
(same pr) 234 536.33 T
|
|
(ocess may be activated on dif) 269.12 536.33 T
|
|
(fer) 398.3 536.33 T
|
|
(ent minor frames within the same) 410.18 536.33 T
|
|
(major frame. A pr) 234 524.33 T
|
|
(ocess should not be enqueued to mor) 313 524.33 T
|
|
(e than one FRS.) 477.25 524.33 T
|
|
(Enqueueing a pr) 234 500.33 T
|
|
(ocess on one or mor) 307.2 500.33 T
|
|
(e frame queues does not mean that it) 395.14 500.33 T
|
|
-0.24 (will immediately start being scheduled by the frame scheduler) 234 488.33 P
|
|
-0.24 (. The queued) 507.66 488.33 P
|
|
(pr) 234 476.33 T
|
|
(ocess itself has to use) 243.77 476.33 T
|
|
5 F
|
|
(frs_join\050\051) 339.67 476.33 T
|
|
0 F
|
|
( to join the frame scheduler) 381.86 476.33 T
|
|
(, and the) 501.65 476.33 T
|
|
(frs-master pr) 234 464.33 T
|
|
(ocess has to or) 291.17 464.33 T
|
|
(der the scheduler to start its operation. Further) 354.81 464.33 T
|
|
(,) 560.62 464.33 T
|
|
(the scheduler will not start scheduling pr) 234 452.33 T
|
|
(ocesses, even if it has been) 415.58 452.33 T
|
|
-0.36 (signalled to start, until all pr) 234 440.33 P
|
|
-0.36 (ocesses in its queues have joined \050see \322Joining a) 357.36 440.33 P
|
|
(Frame Scheduler\323 on page) 234 428.33 T
|
|
(24\051. And in the case of multiple, synchr) 353.79 428.33 T
|
|
(onized) 526.4 428.33 T
|
|
(frame schedulers, execution will not start until all pr) 234 416.33 T
|
|
(ocesses on all frame) 465.1 416.33 T
|
|
(schedulers have joined.) 234 404.33 T
|
|
2 9.5 Q
|
|
(Parameters) 63 392.67 T
|
|
2 10 Q
|
|
(frs) 234 373.83 T
|
|
0 F
|
|
(The frame scheduler descriptor r) 306 373.83 T
|
|
(eturned by) 450.53 373.83 T
|
|
5 F
|
|
(frs_create\050\051) 501.34 373.83 T
|
|
2 F
|
|
(frs_queue_info) 234 355.83 T
|
|
0 F
|
|
(For) 306 355.83 T
|
|
5 F
|
|
(schedctl\050\051) 323.46 355.83 T
|
|
0 F
|
|
(, a str) 367.3 355.83 T
|
|
(uctur) 391.15 355.83 T
|
|
(e containing the following values.) 414.67 355.83 T
|
|
2 F
|
|
(pid) 234 337.83 T
|
|
0 F
|
|
(The child pr) 306 337.83 T
|
|
(ocess ID to be enqueued) 359.68 337.83 T
|
|
2 F
|
|
(minor-index) 234 319.83 T
|
|
0 F
|
|
(The minor frame wher) 306 319.83 T
|
|
(e the pr) 405.77 319.83 T
|
|
(ocess should r) 439.2 319.83 T
|
|
(un. Minor) 501.77 319.83 T
|
|
(frame 0 is the \336rst minor frame in the major frame.) 306 307.83 T
|
|
2 F
|
|
(cpu) 234 289.83 T
|
|
0 F
|
|
(This \336eld of the) 306 289.83 T
|
|
2 F
|
|
(frs_queue_info) 377.58 289.83 T
|
|
0 F
|
|
( parameter in the) 437.2 289.83 T
|
|
5 F
|
|
(schedctl\050\051) 515.34 289.83 T
|
|
0 F
|
|
(call identi\336es the pr) 306 277.83 T
|
|
(ocessor being managed by the) 393.24 277.83 T
|
|
(destination FRS.) 306 265.83 T
|
|
2 F
|
|
(discipline) 234 247.83 T
|
|
0 F
|
|
(The scheduling discipline for this child pr) 306 247.83 T
|
|
(ocess on this) 490.26 247.83 T
|
|
(queue. See \322Frame Scheduling Disciplines\323 on page) 306 235.83 T
|
|
(9. The) 537.27 235.83 T
|
|
(parameter must be an arithmetic combination of:) 306 223.83 T
|
|
4 9 Q
|
|
(\245) 306 205.83 T
|
|
0 10 Q
|
|
(FRS_DISC_R) 324 205.83 T
|
|
(T for the Realtime discipline, used with) 381.22 205.83 T
|
|
(every pr) 324 193.83 T
|
|
(ocess that is not FRS_DISC_BACKGROUND.) 361 193.83 T
|
|
4 9 Q
|
|
(\245) 306 175.83 T
|
|
0 10 Q
|
|
(FRS_DISC_UNDERRUNNABLE, added to) 324 175.83 T
|
|
(FRS_DISC_R) 324 163.83 T
|
|
(T to pr) 381.22 163.83 T
|
|
(event detection of underr) 410.83 163.83 T
|
|
(un err) 522.78 163.83 T
|
|
(ors.) 549.63 163.83 T
|
|
44 581 45 603 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "23" 24
|
|
%%Page: "24" 24
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(24) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
4 F
|
|
(\245) 288 632.33 T
|
|
0 10 Q
|
|
(FRS_DISC_OVERRUNNABLE, added to) 306 632.33 T
|
|
(FRS_DISC_R) 306 620.33 T
|
|
(T to pr) 363.22 620.33 T
|
|
(event detection of overr) 392.83 620.33 T
|
|
(un err) 497.93 620.33 T
|
|
(ors.) 524.78 620.33 T
|
|
4 9 Q
|
|
(\245) 288 602.33 T
|
|
0 10 Q
|
|
(FRS_DISC_CONT) 306 602.33 T
|
|
(, added to FRS_DISC_R) 385.55 602.33 T
|
|
(T and) 489.58 602.33 T
|
|
(FRS_DISC_OVERRUNNABLE to allow the pr) 306 590.33 T
|
|
(ocess to) 508.88 590.33 T
|
|
(extend its execution over consecutive minor frames.) 306 578.33 T
|
|
4 9 Q
|
|
(\245) 288 560.33 T
|
|
0 10 Q
|
|
(FRS_DISC_BACKGROUND for a pr) 306 560.33 T
|
|
(ocess that has no) 466.11 560.33 T
|
|
(r) 306 548.33 T
|
|
(eal-time constraints, and r) 309.77 548.33 T
|
|
(uns only in idle time.) 424.73 548.33 T
|
|
(FRS_DISC_BACKGROUND and FRS_DISC_R) 216 530.33 T
|
|
(T ar) 420.25 530.33 T
|
|
(e mutually exclusive.) 437.64 530.33 T
|
|
4 9 Q
|
|
(Note:) 216 506.33 T
|
|
0 10 Q
|
|
(Pr) 242.48 506.33 T
|
|
(ocesses using the FRS_DISC_BACKGROUND discipline must be) 252.28 506.33 T
|
|
(enqueued last, after all FRS_DISC_R) 216 494.33 T
|
|
(T pr) 376.18 494.33 T
|
|
(ocesses have been enqueued.) 394.58 494.33 T
|
|
2 9.5 Q
|
|
(Return V) 45 482.67 T
|
|
(alues) 80.95 482.67 T
|
|
5 10 Q
|
|
(frs_enqueue\050\051) 216 457.83 T
|
|
0 F
|
|
(and the corr) 281.51 457.83 T
|
|
(esponding) 334.9 457.83 T
|
|
5 F
|
|
(schedctl\050\051) 384.09 457.83 T
|
|
0 F
|
|
( call r) 427.93 457.83 T
|
|
(eturn 0 to indicate) 451.94 457.83 T
|
|
(success and a negative integer to \337ag a failur) 216 445.83 T
|
|
(e. In case of err) 413.41 445.83 T
|
|
(or) 479.62 445.83 T
|
|
(,) 488.29 445.83 T
|
|
2 F
|
|
(errno) 493.29 445.83 T
|
|
0 F
|
|
( will) 514.95 445.83 T
|
|
(contain one of the following codes:) 216 433.83 T
|
|
4 9 Q
|
|
(\245) 216 415.83 T
|
|
0 10 Q
|
|
(EINV) 234 415.83 T
|
|
(AL for invalid parameters) 257.89 415.83 T
|
|
4 9 Q
|
|
(\245) 216 397.83 T
|
|
0 10 Q
|
|
(EF) 234 397.83 T
|
|
(AUL) 244.92 397.83 T
|
|
(T if the frs_queue_info_t* parameter is NULL) 265.84 397.83 T
|
|
4 9 Q
|
|
(\245) 216 379.83 T
|
|
0 10 Q
|
|
(EPERM for lack of permission) 234 379.83 T
|
|
4 9 Q
|
|
(\245) 216 361.83 T
|
|
0 10 Q
|
|
(ENODEV to indicate the FRS subsystem has not been installed.) 234 361.83 T
|
|
1 11.5 Q
|
|
(Joining a Frame Scheduler) 216 324.83 T
|
|
2 9.5 Q
|
|
(System Call) 45 312.67 T
|
|
4 8 Q
|
|
(int) 216 298.17 T
|
|
(schedctl) 246 298.17 T
|
|
(\050) 277.55 298.17 T
|
|
(MPTS_FRS_JOIN, int cpu) 282.44 298.17 T
|
|
(\051) 377.97 298.17 T
|
|
(;) 382.85 298.17 T
|
|
2 9.5 Q
|
|
(Library Call) 45 289.17 T
|
|
4 8 Q
|
|
(int) 216 274.67 T
|
|
(frs_join) 246 274.67 T
|
|
(\050) 273.99 274.67 T
|
|
(frs_t* frs) 278.88 274.67 T
|
|
(\051) 310.87 274.67 T
|
|
0 10 Q
|
|
(Real-time pr) 216 253.33 T
|
|
(ocesses need to allocate r) 270.75 253.33 T
|
|
(esour) 380.66 253.33 T
|
|
(ces and set up befor) 404.94 253.33 T
|
|
(e they start) 492.5 253.33 T
|
|
(r) 216 241.33 T
|
|
(eal-time execution. This includes pinning down stacks and dynamic) 219.77 241.33 T
|
|
(memory \050memory allocated befor) 216 229.33 T
|
|
(e an) 364.35 229.33 T
|
|
5 F
|
|
(sproc\050\051) 384.95 229.33 T
|
|
0 F
|
|
( can be pinned by the par) 416.03 229.33 T
|
|
(ent) 527.75 229.33 T
|
|
(pr) 216 217.33 T
|
|
(ocess, but memory allocated by the child, and the addr) 225.77 217.33 T
|
|
(ess space cr) 467.37 217.33 T
|
|
(eated) 518.3 217.33 T
|
|
-0.74 (by) 216 205.33 P
|
|
5 F
|
|
-0.74 (fork\050\051) 228.84 205.33 P
|
|
0 F
|
|
-0.74 (, need to be pinned by the child\051, opening I/O r) 254.94 205.33 P
|
|
-0.74 (esour) 457.35 205.33 P
|
|
-0.74 (ces, initializing) 481.63 205.33 P
|
|
(data str) 216 193.33 T
|
|
(uctur) 249.22 193.33 T
|
|
(es, locks, and semaphor) 272.74 193.33 T
|
|
(es, etc.) 377.67 193.33 T
|
|
-0.29 (A pr) 216 169.33 P
|
|
-0.29 (ocess uses either of these calls to notify the Frame Scheduler to which it) 235.75 169.33 P
|
|
(is queued that it is initialized and r) 216 157.33 T
|
|
(eady to start r) 369.8 157.33 T
|
|
(eal-time execution.) 430.93 157.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "24" 25
|
|
%%Page: "25" 25
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(The Frame Scheduler API) 464.36 679.44 T
|
|
1 F
|
|
(25) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(The frs-master pr) 234 632.33 T
|
|
(ocess cannot call) 310.4 632.33 T
|
|
5 F
|
|
(frs_enqueue\050\051) 386.09 632.33 T
|
|
0 F
|
|
( until it has cr) 449.37 632.33 T
|
|
(eated the) 509.71 632.33 T
|
|
-0.12 (child pr) 234 620.33 P
|
|
-0.12 (ocess; however the child pr) 268.33 620.33 P
|
|
-0.12 (ocess typically calls) 388.08 620.33 P
|
|
5 F
|
|
-0.12 (frs_join\050\051) 476.4 620.33 P
|
|
0 F
|
|
-0.12 ( soon after) 518.58 620.33 P
|
|
-0.54 (it is cr) 234 608.33 P
|
|
-0.54 (eated. Hence ther) 259.44 608.33 P
|
|
-0.54 (e\325s a race between the action of enqueueing a pr) 335.57 608.33 P
|
|
-0.54 (ocess) 541.88 608.33 P
|
|
(and the action of joining the frame scheduler) 234 596.33 T
|
|
(. If the enqueueing happens) 430.8 596.33 T
|
|
(\336rst, ther) 234 584.33 T
|
|
(e is a potential pr) 274.12 584.33 T
|
|
(oblem if the scheduler starts r) 350.22 584.33 T
|
|
(unning befor) 481.17 584.33 T
|
|
(e the) 538.48 584.33 T
|
|
(pr) 234 572.33 T
|
|
(ocess joins. This is avoided by having the scheduler wait for all its) 243.77 572.33 T
|
|
(enqueued pr) 234 560.33 T
|
|
(ocesses to join befor) 290.21 560.33 T
|
|
(e it starts r) 377.99 560.33 T
|
|
(eal-time execution. This) 424.14 560.33 T
|
|
-0.67 (synchr) 234 548.33 P
|
|
-0.67 (onization is done by the frame scheduler) 263.63 548.33 P
|
|
-0.67 (, so the pr) 438.71 548.33 P
|
|
-0.67 (ogrammer does not) 480.04 548.33 P
|
|
-0.75 (need to be concerned with this race. Ther) 234 536.33 P
|
|
-0.75 (e\325s no pr) 410.06 536.33 P
|
|
-0.75 (oblem if) 446.41 536.33 P
|
|
5 F
|
|
-0.75 (frs_join\050\051) 483.65 536.33 P
|
|
0 F
|
|
-0.75 ( happens) 525.84 536.33 P
|
|
(\336rst, unless, of course, the frs-master for) 234 524.33 T
|
|
(gets to ever enqueue the pr) 410.98 524.33 T
|
|
(ocess,) 530.67 524.33 T
|
|
(which will have the expected ef) 234 512.33 T
|
|
(fect of keeping the unenqueued pr) 373.24 512.33 T
|
|
(ocess) 525.17 512.33 T
|
|
(waiting for) 234 500.33 T
|
|
(ever) 282.83 500.33 T
|
|
(.) 301.26 500.33 T
|
|
2 9.5 Q
|
|
(Parameters) 63 488.67 T
|
|
2 10 Q
|
|
(frs) 234 469.83 T
|
|
0 F
|
|
(An FRS descriptor as r) 306 469.83 T
|
|
(eturned by) 405.17 469.83 T
|
|
5 F
|
|
(frs_create\050\051) 455.98 469.83 T
|
|
0 F
|
|
(.) 506.49 469.83 T
|
|
2 F
|
|
(cpu) 234 451.83 T
|
|
0 F
|
|
(Speci\336es the pr) 306 451.83 T
|
|
(ocessor being managed by the destination) 373.09 451.83 T
|
|
(FRS.) 306 439.83 T
|
|
2 9.5 Q
|
|
(Return V) 63 428.17 T
|
|
(alues) 98.95 428.17 T
|
|
0 10 Q
|
|
(In case of success both calls r) 234 403.33 T
|
|
(eturn a value gr) 361.14 403.33 T
|
|
(eater or equal to zer) 431.16 403.33 T
|
|
(o; and in) 518.92 403.33 T
|
|
(case of err) 234 391.33 T
|
|
(or) 278.74 391.33 T
|
|
(, -1 is r) 287.41 391.33 T
|
|
(eturned and) 316.64 391.33 T
|
|
2 F
|
|
(errno) 373.29 391.33 T
|
|
0 F
|
|
( is set to one of these values:) 394.95 391.33 T
|
|
4 9 Q
|
|
(\245) 234 373.33 T
|
|
0 10 Q
|
|
(EINV) 252 373.33 T
|
|
(AL for invalid parameters) 275.89 373.33 T
|
|
4 9 Q
|
|
(\245) 234 355.33 T
|
|
0 10 Q
|
|
(EPERM for lack of permission) 252 355.33 T
|
|
4 9 Q
|
|
(\245) 234 337.33 T
|
|
0 10 Q
|
|
(ENODEV to indicate the FRS subsystem has not been installed.) 252 337.33 T
|
|
1 11.5 Q
|
|
(Starting the Frame Scheduler) 234 300.33 T
|
|
2 9.5 Q
|
|
(System Call) 63 288.17 T
|
|
4 8 Q
|
|
(int) 234 273.67 T
|
|
(schedctl) 264 273.67 T
|
|
(\050) 295.55 273.67 T
|
|
(MPTS_FRS_START, int cpu) 300.44 273.67 T
|
|
(\051) 403.96 273.67 T
|
|
(;) 408.85 273.67 T
|
|
2 9.5 Q
|
|
(Library Call) 63 264.67 T
|
|
4 8 Q
|
|
(int) 234 250.17 T
|
|
(frs_start) 264 250.17 T
|
|
(\050) 295.1 250.17 T
|
|
(frs_t* frs) 299.99 250.17 T
|
|
(\051) 331.98 250.17 T
|
|
(;) 336.86 250.17 T
|
|
0 10 Q
|
|
-0.64 (When all pr) 234 228.83 P
|
|
-0.64 (ocesses to be scheduled have been enqueued , the master pr) 284.71 228.83 P
|
|
-0.64 (ocess) 541.99 228.83 P
|
|
(commands the frame scheduler to start activating pr) 234 216.83 T
|
|
(ocesses. This is done) 464.97 216.83 T
|
|
(using either of the calls above.) 234 204.83 T
|
|
(The scheduler waits for all enqueued pr) 234 180.83 T
|
|
(ocesses to call) 409.77 180.83 T
|
|
5 F
|
|
(frs_join\050\051) 473.42 180.83 T
|
|
0 F
|
|
( befor) 515.6 180.83 T
|
|
(e it) 540.97 180.83 T
|
|
(starts r) 234 168.83 T
|
|
(eal-time operation. Once all pr) 264.2 168.83 T
|
|
(ocesses have joined, the scheduler) 398.62 168.83 T
|
|
FMENDPAGE
|
|
%%EndPage: "25" 26
|
|
%%Page: "26" 26
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(26) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(enables the event interr) 216 632.33 T
|
|
(upt \050if necessary\051, waits for the next interr) 319.3 632.33 T
|
|
(upt, and) 504.22 632.33 T
|
|
(starts scheduling the member pr) 216 620.33 T
|
|
(ocesses in r) 358.87 620.33 T
|
|
(eal-time.) 408.54 620.33 T
|
|
(When multiple synchr) 216 596.33 T
|
|
(onized FRSs ar) 314.68 596.33 T
|
|
(e used, each FRS must be started) 380.23 596.33 T
|
|
-0.26 (individually) 216 584.33 P
|
|
-0.26 (. Slave FRSs do not start until the master FRS sends an enabling) 269.69 584.33 P
|
|
(signal. The master FRS does not send the signal until all slave FRSs r) 216 572.33 T
|
|
(eport) 517.82 572.33 T
|
|
(that all pr) 216 560.33 T
|
|
(ocesses have joined.) 258.92 560.33 T
|
|
2 9.5 Q
|
|
(Parameters) 45 548.67 T
|
|
2 10 Q
|
|
(cpu) 216 529.83 T
|
|
0 F
|
|
(Speci\336es the pr) 288 529.83 T
|
|
(ocessor managed by the frame scheduler) 355.09 529.83 T
|
|
(that is being started) 288 517.83 T
|
|
2 F
|
|
(frs) 216 499.83 T
|
|
0 F
|
|
(Speci\336es an FRS descriptor as r) 288 499.83 T
|
|
(eturned by) 425.35 499.83 T
|
|
5 F
|
|
(frs_create\050\051) 476.16 499.83 T
|
|
2 9.5 Q
|
|
(Return V) 45 488.17 T
|
|
(alues) 80.95 488.17 T
|
|
0 10 Q
|
|
(Both calls r) 216 463.33 T
|
|
(eturn 0 for sucess and -1 for err) 264.89 463.33 T
|
|
(or) 402.4 463.33 T
|
|
(. In case of err) 411.06 463.33 T
|
|
(or) 472.49 463.33 T
|
|
(,) 481.15 463.33 T
|
|
2 F
|
|
(errno) 486.15 463.33 T
|
|
0 F
|
|
( is set to) 507.81 463.33 T
|
|
(one of the following values:) 216 451.33 T
|
|
4 9 Q
|
|
(\245) 216 433.33 T
|
|
0 10 Q
|
|
(EINV) 234 433.33 T
|
|
(AL for invalid parameters) 257.89 433.33 T
|
|
4 9 Q
|
|
(\245) 216 415.33 T
|
|
0 10 Q
|
|
(EPERM for lack of permission) 234 415.33 T
|
|
4 9 Q
|
|
(\245) 216 397.33 T
|
|
0 10 Q
|
|
(ENODEV to indicate the FRS subsystem has not been installed.) 234 397.33 T
|
|
1 11.5 Q
|
|
(Y) 216 360.33 T
|
|
(ielding Control at the End of a Frame) 223.24 360.33 T
|
|
2 9.5 Q
|
|
(System Call) 45 348.17 T
|
|
4 8 Q
|
|
(int) 216 333.67 T
|
|
(schedctl) 246 333.67 T
|
|
(\050) 277.55 333.67 T
|
|
(MPTS_FRS_YIELD) 282.44 333.67 T
|
|
(\051) 354.86 333.67 T
|
|
(;) 359.74 333.67 T
|
|
2 9.5 Q
|
|
(Library Call) 45 324.67 T
|
|
4 8 Q
|
|
(int) 216 310.17 T
|
|
(frs_yield) 246 310.17 T
|
|
(\050) 277.99 310.17 T
|
|
(void) 282.88 310.17 T
|
|
(\051) 299.76 310.17 T
|
|
(;) 304.65 310.17 T
|
|
0 10 Q
|
|
-0.05 (A pr) 216 277.83 P
|
|
-0.05 (ocess under contr) 236 277.83 P
|
|
-0.05 (ol of a frame scheduler is never pr) 313.48 277.83 P
|
|
-0.05 (eempted within its) 463.64 277.83 P
|
|
(minor frame time period. After it \336nishes its work for that frame, it has to) 216 265.83 T
|
|
(explicitly yield the pr) 216 253.83 T
|
|
(ocessor using either of the calls above.) 310.24 253.83 T
|
|
(The concept of yielding is dif) 216 229.83 T
|
|
(fer) 344.07 229.83 T
|
|
(ent than the concept of blocking. When a) 355.95 229.83 T
|
|
(pr) 216 217.83 T
|
|
(ocess blocks \050by r) 225.77 217.83 T
|
|
(equesting some system service\051 it becomes unavailable) 302.73 217.83 T
|
|
(to r) 216 205.83 T
|
|
(un until it is unblocked. On the other hand, when a pr) 231.08 205.83 T
|
|
(ocess yields by) 469.33 205.83 T
|
|
-0.77 (using) 216 193.83 P
|
|
5 F
|
|
-0.77 (frs_yield\050\051) 242.28 193.83 P
|
|
0 F
|
|
-0.77 (, it r) 289.46 193.83 P
|
|
-0.77 (emains available for execution \050r) 305.36 193.83 P
|
|
-0.77 (eady to r) 446.01 193.83 P
|
|
-0.77 (un\051, so that the) 483.51 193.83 P
|
|
-0.54 (frame scheduler can r) 216 181.83 P
|
|
-0.54 (eadily activate it when its turn to r) 309.84 181.83 P
|
|
-0.54 (un comes again. The) 458.07 181.83 P
|
|
(frame scheduler does not contr) 216 169.83 T
|
|
(ol framed r) 352.8 169.83 T
|
|
(eal-time execution by blocking) 401.92 169.83 T
|
|
FMENDPAGE
|
|
%%EndPage: "26" 27
|
|
%%Page: "27" 27
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(The Frame Scheduler API) 464.36 679.44 T
|
|
1 F
|
|
(27) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(and unblocking pr) 234 632.33 T
|
|
(ocesses, but rather by activating them only when their) 315.7 632.33 T
|
|
(turn comes.) 234 620.33 T
|
|
(Pr) 234 596.33 T
|
|
(ocesses within the same frame queue ar) 243.8 596.33 T
|
|
(e activated in a non-pr) 418.61 596.33 T
|
|
(eemptable) 517.7 596.33 T
|
|
-0.2 (r) 234 584.33 P
|
|
-0.2 (ound r) 237.77 584.33 P
|
|
-0.2 (obin fashion until they yield. This means that a pr) 267.24 584.33 P
|
|
-0.2 (ocess may r) 485.12 584.33 P
|
|
-0.2 (equest) 536.01 584.33 P
|
|
-0.54 (system services, block, unblock, and continue r) 234 572.33 P
|
|
-0.54 (unning within a single minor) 438.05 572.33 P
|
|
(frame. It is only the yield operation that causes a pr) 234 560.33 T
|
|
(ocess to be pr) 460.48 560.33 T
|
|
(evented) 519.93 560.33 T
|
|
(fr) 234 548.33 T
|
|
(om r) 241.1 548.33 T
|
|
(unning again within its minor frame.) 261.74 548.33 T
|
|
-0.85 (At the end of a minor frame the scheduler pr) 234 524.33 P
|
|
-0.85 (eempts whatever is r) 423.76 524.33 P
|
|
-0.85 (unning and) 513.19 524.33 P
|
|
-0.03 (veri\336es that all pr) 234 512.33 P
|
|
-0.03 (ocesses in the frame queue wer) 311.7 512.33 P
|
|
-0.03 (e activated at least once. If) 448.84 512.33 P
|
|
-0.65 (a pr) 234 500.33 P
|
|
-0.65 (ocess was never activated because it was always blocked and the pr) 250.62 500.33 P
|
|
-0.65 (ocess) 541.99 500.33 P
|
|
-0.63 (is not Underr) 234 488.33 P
|
|
-0.63 (unnable, the scheduler raises an underr) 291.72 488.33 P
|
|
-0.63 (un exception. Similarly) 462.84 488.33 P
|
|
-0.63 (,) 562.63 488.33 P
|
|
(the scheduler veri\336es that all pr) 234 476.33 T
|
|
(ocesses in the frame queue have yielded. If) 373.69 476.33 T
|
|
-0.63 (it \336nds one that has not yielded but is not Overr) 234 464.33 P
|
|
-0.63 (unnable , it raises an overr) 439.77 464.33 P
|
|
-0.63 (un) 553.29 464.33 P
|
|
(exception.) 234 452.33 T
|
|
(The scheduler r) 234 428.33 T
|
|
(esets the yield state of a pr) 302.55 428.33 T
|
|
(ocess at the end of each minor) 419.08 428.33 T
|
|
-0.03 (frame, unless the pr) 234 416.33 P
|
|
-0.03 (ocess has been de\336ned to be Continuable in which case) 321.44 416.33 P
|
|
(the yield state carries over to the next minor frame. This is the mechanism) 234 404.33 T
|
|
(that pr) 234 392.33 T
|
|
(events a Continuable pr) 263.6 392.33 T
|
|
(ocess fr) 369 392.33 T
|
|
(om being r) 401.75 392.33 T
|
|
(edispatched once it has) 449.39 392.33 T
|
|
(yielded. \050See \322Scheduling W) 234 380.33 T
|
|
(ithin A Minor Frame\323 on page) 359.36 380.33 T
|
|
(17.\051) 496.16 380.33 T
|
|
2 9.5 Q
|
|
(Parameters) 63 368.67 T
|
|
0 10 Q
|
|
(This call takes no parameters.) 234 343.83 T
|
|
2 9.5 Q
|
|
(Return V) 63 332.17 T
|
|
(alues) 98.95 332.17 T
|
|
0 10 Q
|
|
(When the operation is succesful, this call r) 234 307.33 T
|
|
(eturns the number of the last) 419.72 307.33 T
|
|
(minor frame wher) 234 295.33 T
|
|
(e this pr) 314.55 295.33 T
|
|
(ocess yielded or was pr) 350.33 295.33 T
|
|
(eempted. \050Minor frames) 453.39 295.33 T
|
|
-0.7 (ar) 234 283.33 P
|
|
-0.7 (e number) 242.76 283.33 P
|
|
-0.7 (ed fr) 284.1 283.33 P
|
|
-0.7 (om 0 within each major frame.\051 In case of err) 303.89 283.33 P
|
|
-0.7 (or) 494.67 283.33 P
|
|
-0.7 (, -1 is r) 503.33 283.33 P
|
|
-0.7 (eturned) 530.47 283.33 P
|
|
(with) 234 271.33 T
|
|
2 F
|
|
(errno) 256.82 271.33 T
|
|
0 F
|
|
( set to one of the following values:) 278.48 271.33 T
|
|
4 9 Q
|
|
(\245) 234 253.33 T
|
|
0 10 Q
|
|
(EINV) 252 253.33 T
|
|
(AL for invalid parameters) 275.89 253.33 T
|
|
4 9 Q
|
|
(\245) 234 235.33 T
|
|
0 10 Q
|
|
(EPERM for lack of permission) 252 235.33 T
|
|
4 9 Q
|
|
(\245) 234 217.33 T
|
|
0 10 Q
|
|
(ENODEV to indicate the FRS subsystem has not been installed.) 252 217.33 T
|
|
44 377 45 435 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "27" 28
|
|
%%Page: "28" 28
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(28) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
1 11.5 Q
|
|
(Delivering T) 216 631.33 T
|
|
(ime-Base Interrupts to a Frame Scheduler) 281.56 631.33 T
|
|
2 9.5 Q
|
|
(System Call) 45 619.17 T
|
|
4 8 Q
|
|
(int) 216 604.67 T
|
|
(schedctl) 246 604.67 T
|
|
(\050) 277.55 604.67 T
|
|
(MPTS_FRS_INTR, int cpu) 282.44 604.67 T
|
|
(\051) 378.41 604.67 T
|
|
(;) 383.29 604.67 T
|
|
2 9.5 Q
|
|
(Library Call) 45 595.67 T
|
|
4 8 Q
|
|
(int) 216 581.17 T
|
|
(frs_userintr) 246 581.17 T
|
|
(\050) 288.21 581.17 T
|
|
(frs_t* frs) 293.09 581.17 T
|
|
(\051) 325.08 581.17 T
|
|
(;) 329.97 581.17 T
|
|
0 10 Q
|
|
(These calls allow the frs-master pr) 216 559.83 T
|
|
(ocess to send r) 366.88 559.83 T
|
|
(eal-time interr) 430.96 559.83 T
|
|
(upts to one) 493.85 559.83 T
|
|
(or several synchr) 216 547.83 T
|
|
(onous frame schedulers. When multiple, synchr) 291.35 547.83 T
|
|
(onized) 502.69 547.83 T
|
|
(FRSs ar) 216 535.83 T
|
|
(e in use, the speci\336ed FRS must be the master FRS.) 248.98 535.83 T
|
|
-0.12 (This capability is intended to be used as a debugging aid by giving you full) 216 511.83 P
|
|
-0.69 (contr) 216 499.83 P
|
|
-0.69 (ol of when each minor frame begins. T) 238.74 499.83 P
|
|
-0.69 (ypically you would have a debug) 402.74 499.83 P
|
|
(version of your application in which, by conditional compilation, the) 216 487.83 T
|
|
-0.38 (frs-master pr) 216 475.83 P
|
|
-0.38 (ocess generates the interr) 272.79 475.83 P
|
|
-0.38 (upt signal on some user input such as) 382.95 475.83 P
|
|
(a mouse click.) 216 463.83 T
|
|
4 9 Q
|
|
-0.54 (Note:) 216 439.83 P
|
|
0 10 Q
|
|
-0.54 (It would not be practical to drive a pr) 241.4 439.83 P
|
|
-0.54 (oduction r) 402.18 439.83 P
|
|
-0.54 (eal-time pr) 447.38 439.83 P
|
|
-0.54 (ogram fr) 494.92 439.83 P
|
|
-0.54 (om) 532.76 439.83 P
|
|
(softwar) 216 427.83 T
|
|
(e-supplied interr) 249.38 427.83 T
|
|
(upts, owing to the unpr) 323.57 427.83 T
|
|
(edictable and varying) 427.86 427.83 T
|
|
(latency in the scheduling of the interr) 216 415.83 T
|
|
(upt-generating pr) 381.18 415.83 T
|
|
(ocess. T) 459.51 415.83 T
|
|
(o drive a) 492.87 415.83 T
|
|
(Frame Scheduler fr) 216 403.83 T
|
|
(om a custom interr) 300.27 403.83 T
|
|
(upt sour) 383.88 403.83 T
|
|
(ce, use the device driver) 421.16 403.83 T
|
|
(interface \050see \322The Frame Scheduler DDI\323 on page) 216 391.83 T
|
|
(33\051.) 441.77 391.83 T
|
|
2 9.5 Q
|
|
(Parameters) 45 380.17 T
|
|
2 10 Q
|
|
(cpu) 216 361.33 T
|
|
0 F
|
|
(Speci\336es the pr) 288 361.33 T
|
|
(ocessor being managed by the destination) 355.09 361.33 T
|
|
(frame scheduler) 288 349.33 T
|
|
2 F
|
|
(frs) 216 331.33 T
|
|
0 F
|
|
(Speci\336es an FRS descriptor as r) 288 331.33 T
|
|
(eturned by) 425.35 331.33 T
|
|
5 F
|
|
(frs_create) 476.16 331.33 T
|
|
0 F
|
|
(.) 520.01 331.33 T
|
|
2 9.5 Q
|
|
(Return V) 45 319.67 T
|
|
(alues) 80.95 319.67 T
|
|
0 10 Q
|
|
(Both calls r) 216 294.83 T
|
|
(eturn 0 for sucess and -1 for err) 264.89 294.83 T
|
|
(or) 402.4 294.83 T
|
|
(. In case of err) 411.06 294.83 T
|
|
(or) 472.49 294.83 T
|
|
(,) 481.15 294.83 T
|
|
2 F
|
|
(errno) 486.15 294.83 T
|
|
0 F
|
|
( is set to) 507.81 294.83 T
|
|
(one of the following values:) 216 282.83 T
|
|
4 9 Q
|
|
(\245) 216 264.83 T
|
|
0 10 Q
|
|
(EINV) 234 264.83 T
|
|
(AL for invalid parameters) 257.89 264.83 T
|
|
4 9 Q
|
|
(\245) 216 246.83 T
|
|
0 10 Q
|
|
(EPERM for lack of permission) 234 246.83 T
|
|
4 9 Q
|
|
(\245) 216 228.83 T
|
|
0 10 Q
|
|
(ENODEV to indicate the FRS subsystem has not been installed.) 234 228.83 T
|
|
FMENDPAGE
|
|
%%EndPage: "28" 29
|
|
%%Page: "29" 29
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(The Frame Scheduler API) 464.36 679.44 T
|
|
1 F
|
|
(29) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
1 11.5 Q
|
|
(Stopping and Resuming Frame Schedulers) 234 631.33 T
|
|
2 9.5 Q
|
|
(System Calls) 63 619.17 T
|
|
4 8 Q
|
|
(int) 234 604.67 T
|
|
(schedctl) 264 604.67 T
|
|
(\050) 295.55 604.67 T
|
|
(MPTS_FRS_STOP, int cpu) 300.44 604.67 T
|
|
(\051) 399.53 604.67 T
|
|
(;) 404.41 604.67 T
|
|
(int) 234 593.67 T
|
|
(schedctl) 264 593.67 T
|
|
(\050) 295.55 593.67 T
|
|
(MPTS_FRS_RESUME, int cpu) 300.44 593.67 T
|
|
(\051) 411.96 593.67 T
|
|
(;) 416.84 593.67 T
|
|
2 9.5 Q
|
|
(Library Calls) 63 584.67 T
|
|
4 8 Q
|
|
(int) 234 570.17 T
|
|
(frs_stop) 264 570.17 T
|
|
(\050) 294.66 570.17 T
|
|
(frs_t* frs) 299.55 570.17 T
|
|
(\051) 331.54 570.17 T
|
|
(;) 336.42 570.17 T
|
|
(int) 234 559.17 T
|
|
(frs_resume) 264 559.17 T
|
|
(\050) 306.21 559.17 T
|
|
(frs_t* frs) 311.09 559.17 T
|
|
(\051) 343.08 559.17 T
|
|
(:) 347.97 559.17 T
|
|
0 10 Q
|
|
-0.14 (These calls pr) 234 526.83 P
|
|
-0.14 (ovide a way to stop and r) 293.73 526.83 P
|
|
-0.14 (esume a Frame Scheduler) 405 526.83 P
|
|
-0.14 (. When the) 517.16 526.83 P
|
|
(stop call is issued, the scheduler state is changed such that the time-base) 234 514.83 T
|
|
(interr) 234 502.83 T
|
|
(upts ar) 258.59 502.83 T
|
|
(e ignor) 289.38 502.83 T
|
|
(ed. The scheduler continues executing all pr) 320.17 502.83 T
|
|
(ocesses in) 514.42 502.83 T
|
|
-0.32 (the curr) 234 490.83 P
|
|
-0.32 (ent minor frame until they have all yielded. Then the scheduler falls) 268.22 490.83 P
|
|
(into an idle loop.) 234 478.83 T
|
|
-0.62 (The r) 234 454.83 P
|
|
-0.62 (esume call enables the r) 256.38 454.83 P
|
|
-0.62 (eception of time-base interr) 358.51 454.83 P
|
|
-0.62 (upts. Upon the next) 477.63 454.83 P
|
|
(interr) 234 442.83 T
|
|
(upt, the scheduler starts scheduling the pr) 258.59 442.83 T
|
|
(ocesses on the queue) 444.46 442.83 T
|
|
-0.6 (associated with the minor frame immediately after the minor frame that was) 234 430.83 P
|
|
(active when the stop call was issued.) 234 418.83 T
|
|
(If the stop and r) 234 394.83 T
|
|
(esume calls ar) 304.2 394.83 T
|
|
(e issued so close together that no event) 366.12 394.83 T
|
|
-0.22 (interr) 234 382.83 P
|
|
-0.22 (upt gets ignor) 258.59 382.83 P
|
|
-0.22 (ed, the r) 319.79 382.83 P
|
|
-0.22 (esulting ef) 355.38 382.83 P
|
|
-0.22 (fect is null. The stop and r) 401.1 382.83 P
|
|
-0.22 (esume calls) 514.28 382.83 P
|
|
(always change the length of a major frame by a whole number of minor) 234 370.83 T
|
|
(frame periods \050possibly zer) 234 358.83 T
|
|
(o\051.) 354.55 358.83 T
|
|
(When multiple synchr) 234 334.83 T
|
|
(onized FRSs ar) 332.68 334.83 T
|
|
(e in use, all FRSs start and stop) 398.23 334.83 T
|
|
(independently) 234 322.83 T
|
|
(. Stopping one FRS while others continue can r) 297.55 322.83 T
|
|
(esult in their) 503.63 322.83 T
|
|
(major frames being out of synchr) 234 310.83 T
|
|
(onization \050pr) 379.94 310.83 T
|
|
(esuming all major frames) 437.16 310.83 T
|
|
(wer) 234 298.83 T
|
|
(e the same length to begin with\051. Y) 250.89 298.83 T
|
|
(ou can keep all FRSs in a gr) 403.23 298.83 T
|
|
(oup in) 524.17 298.83 T
|
|
(major) 234 286.83 T
|
|
(-frame synchr) 259.39 286.83 T
|
|
(ony by stopping and starting all of them at the same) 320.73 286.83 T
|
|
(ef) 234 274.83 T
|
|
(fective time. This can be done because a scheduler does not actually stop) 241.94 274.83 T
|
|
-0.58 (or start until a time-base event happens. Thus if you stop all FRSs within one) 234 262.83 P
|
|
(minor frame interval, and if you r) 234 250.83 T
|
|
(esume all FRSs in the interval after one) 382.57 250.83 T
|
|
(time-base event and befor) 234 238.83 T
|
|
(e the next, the gr) 348.24 238.83 T
|
|
(oup of FRSs will r) 421.59 238.83 T
|
|
(emain) 500.4 238.83 T
|
|
(synchr) 234 226.83 T
|
|
(onized to the same minor frame.) 263.63 226.83 T
|
|
2 9.5 Q
|
|
(Parameters) 63 215.17 T
|
|
2 10 Q
|
|
(cpu) 234 196.33 T
|
|
0 F
|
|
(Speci\336es the pr) 306 196.33 T
|
|
(ocessor being managed by the destination) 373.09 196.33 T
|
|
(frame scheduler) 306 184.33 T
|
|
2 F
|
|
(frs) 234 166.33 T
|
|
0 F
|
|
(Speci\336es an FRS descriptor as r) 306 166.33 T
|
|
(eturned by) 443.35 166.33 T
|
|
5 F
|
|
(frs_create\050\051) 494.16 166.33 T
|
|
0 F
|
|
(.) 544.67 166.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "29" 30
|
|
%%Page: "30" 30
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(30) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
2 9.5 Q
|
|
(Return V) 45 632.67 T
|
|
(alues) 80.95 632.67 T
|
|
0 10 Q
|
|
-0.44 (All calls r) 216 607.83 P
|
|
-0.44 (eturn 0 for sucess and -1 for err) 256.96 607.83 P
|
|
-0.44 (or) 391.34 607.83 P
|
|
-0.44 (. In case of err) 400.01 607.83 P
|
|
-0.44 (or) 459.65 607.83 P
|
|
-0.44 (,) 468.32 607.83 P
|
|
2 F
|
|
-0.44 (errno) 472.87 607.83 P
|
|
0 F
|
|
-0.44 ( is set to one) 494.53 607.83 P
|
|
(of the following values:) 216 595.83 T
|
|
4 9 Q
|
|
(\245) 216 577.83 T
|
|
0 10 Q
|
|
(EINV) 234 577.83 T
|
|
(AL for invalid parameters) 257.89 577.83 T
|
|
4 9 Q
|
|
(\245) 216 559.83 T
|
|
0 10 Q
|
|
(EPERM for lack of permission) 234 559.83 T
|
|
4 9 Q
|
|
(\245) 216 541.83 T
|
|
0 10 Q
|
|
(ENODEV to indicate the FRS subsystem has not been installed.) 234 541.83 T
|
|
1 11.5 Q
|
|
(Dynamic Management of Scheduler Queues) 216 504.83 T
|
|
2 9.5 Q
|
|
(System Calls) 45 492.67 T
|
|
4 8 Q
|
|
(int) 216 478.17 T
|
|
(schedctl) 246 478.17 T
|
|
(\050) 277.55 478.17 T
|
|
(MPTS_FRS_GETQUEUELEN, frs_queue_info_t* frs_queue_info) 282.44 478.17 T
|
|
(\051) 514.4 478.17 T
|
|
(;) 519.29 478.17 T
|
|
(int) 216 467.17 T
|
|
(schedctl) 246 467.17 T
|
|
(\050) 277.55 467.17 T
|
|
(MPTS_FRS_READQUEUE, frs_queue_info_t* frs_queue_info,) 282.44 467.17 T
|
|
(int* pidlist) 426 456.17 T
|
|
(\051) 462.44 456.17 T
|
|
(;) 467.32 456.17 T
|
|
(int) 216 445.17 T
|
|
(schedctl) 246 445.17 T
|
|
(\050) 277.55 445.17 T
|
|
(MPTS_FRS_PREMOVE, frs_queue_info_t* frs_queue_info) 282.44 445.17 T
|
|
(\051) 493.97 445.17 T
|
|
(;) 498.85 445.17 T
|
|
(int) 216 434.17 T
|
|
(schedctl) 246 434.17 T
|
|
(\050) 277.55 434.17 T
|
|
(MPTS_FRS_PINSERT, frs_queue_info_t* frs_queue_info, int base_pid) 282.44 434.17 T
|
|
(\051) 536.19 434.17 T
|
|
(;) 541.08 434.17 T
|
|
2 9.5 Q
|
|
(Library Calls) 45 425.17 T
|
|
4 8 Q
|
|
(int) 216 410.67 T
|
|
(frs_getqueuelen) 246 410.67 T
|
|
(\050) 305.56 410.67 T
|
|
(frs_t* frs, int minor_index) 310.45 410.67 T
|
|
(\051) 401.09 410.67 T
|
|
(;) 405.98 410.67 T
|
|
(int) 216 399.67 T
|
|
(frs_readqueue) 246 399.67 T
|
|
(\050) 299.78 399.67 T
|
|
(frs_t* frs, int minor_index, int* pidlist) 304.66 399.67 T
|
|
(\051) 433.97 399.67 T
|
|
(;) 438.85 399.67 T
|
|
(int) 216 388.67 T
|
|
(frs_premove) 246 388.67 T
|
|
(\050) 292.65 388.67 T
|
|
(frs_t* frs, int minor_index, int remove_pid) 297.54 388.67 T
|
|
(\051) 445.07 388.67 T
|
|
(;) 449.95 388.67 T
|
|
(int) 216 377.67 T
|
|
(frs_pinsert) 246 377.67 T
|
|
(\050) 285.55 377.67 T
|
|
(frs_t* frs, int minor_index, int insert_pid, int discipline, int base_pid) 290.43 377.67 T
|
|
(\051) 526.4 377.67 T
|
|
(;) 531.28 377.67 T
|
|
0 10 Q
|
|
(These functions ar) 216 345.33 T
|
|
(e used to dynamically contr) 296.81 345.33 T
|
|
(ol the minor frame pr) 419.22 345.33 T
|
|
(ocess) 514.06 345.33 T
|
|
(queues while the Frame Scheduler is r) 216 333.33 T
|
|
(unning.) 384.27 333.33 T
|
|
4 9 Q
|
|
(Note:) 216 309.33 T
|
|
0 10 Q
|
|
(Queue manipulation entails considerable over) 242.48 309.33 T
|
|
(head, taking up) 446.37 309.33 T
|
|
(valuable time fr) 216 297.33 T
|
|
(om a frame and possibly leading to overr) 285.67 297.33 T
|
|
(un err) 467.59 297.33 T
|
|
(ors.) 494.44 297.33 T
|
|
-0.5 (The length of a queue is obtained using) 216 273.33 P
|
|
5 F
|
|
-0.5 (frs_getqueuelen\050\051) 388.46 273.33 P
|
|
0 F
|
|
-0.5 (. The length of the) 468.96 273.33 P
|
|
(queue speci\336ed by minor_index is r) 216 261.33 T
|
|
(eturned as the function r) 373.76 261.33 T
|
|
(esult.) 482.4 261.33 T
|
|
(The list of pr) 216 237.33 T
|
|
(ocesses in a queue can be r) 272.1 237.33 T
|
|
(ead using) 389.55 237.33 T
|
|
5 F
|
|
(frs_readqueue\050\051) 434.99 237.33 T
|
|
0 F
|
|
(. All) 507.16 237.33 T
|
|
(pr) 216 225.33 T
|
|
(ocess IDs ar) 225.77 225.33 T
|
|
(e r) 278.04 225.33 T
|
|
(eturned in queue or) 289.09 225.33 T
|
|
(der to the speci\336ed array) 376.49 225.33 T
|
|
(. The array) 485.56 225.33 T
|
|
(must be long enough to r) 216 213.33 T
|
|
(eceive them all.) 326.84 213.33 T
|
|
-0.57 (The call) 216 189.33 P
|
|
5 F
|
|
-0.57 (frs_premove\050\051) 251.83 189.33 P
|
|
0 F
|
|
-0.57 ( r) 315.69 189.33 P
|
|
-0.57 (emoves a speci\336c pr) 321.38 189.33 P
|
|
-0.57 (ocess fr) 408.53 189.33 P
|
|
-0.57 (om a queue. The pr) 440.71 189.33 P
|
|
-0.57 (ocess) 523.92 189.33 P
|
|
-0.4 (stops being scheduled for execution and is temporarily suspended. It can be) 216 177.33 P
|
|
(r) 216 165.33 T
|
|
(e-inserted in the queue.) 219.77 165.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "30" 31
|
|
%%Page: "31" 31
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(The Frame Scheduler API) 464.36 679.44 T
|
|
1 F
|
|
(31) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
5 10 Q
|
|
-0.3 (frs_pinsert\050\051) 234 632.33 P
|
|
0 F
|
|
-0.3 ( inserts a pr) 290.06 632.33 P
|
|
-0.3 (ocess in a queue following) 340.63 632.33 P
|
|
2 F
|
|
-0.3 (base_pid) 458.41 632.33 P
|
|
0 F
|
|
-0.3 ( in the queue. T) 493.02 632.33 P
|
|
-0.3 (o) 559.34 632.33 P
|
|
(insert a pr) 234 620.33 T
|
|
(ocess at the head of the queue, specify 0 for) 278.73 620.33 T
|
|
2 F
|
|
(base_pid) 472.06 620.33 T
|
|
0 F
|
|
(. The pr) 506.67 620.33 T
|
|
(ocess) 540.67 620.33 T
|
|
(is dispatched again in its corr) 234 608.33 T
|
|
(ect turn.) 363.32 608.33 T
|
|
4 9 Q
|
|
(Note:) 234 584.33 T
|
|
0 10 Q
|
|
(Only pr) 260.48 584.33 T
|
|
(ocesses that have been queued with) 294.89 584.33 T
|
|
5 F
|
|
(frs_enqueue\050\051) 455.21 584.33 T
|
|
0 F
|
|
( can be) 518.49 584.33 T
|
|
(inserted. The) 234 572.33 T
|
|
5 F
|
|
(frs_premove\050\051) 294.08 572.33 T
|
|
0 F
|
|
( and) 357.93 572.33 T
|
|
5 F
|
|
(frs_pinsert\050\051) 379.85 572.33 T
|
|
0 F
|
|
( calls ar) 435.91 572.33 T
|
|
(e designed for the) 469.16 572.33 T
|
|
-0.22 (purpose of r) 234 560.33 P
|
|
-0.22 (e-or) 287.59 560.33 P
|
|
-0.22 (dering the queues of existing pr) 304.93 560.33 P
|
|
-0.22 (ocesses, or for changing the) 443.99 560.33 P
|
|
(discipline of existing pr) 234 548.33 T
|
|
(ocesses. They ar) 337.71 548.33 T
|
|
(e not intended for the purpose of) 408.44 548.33 T
|
|
(adding new pr) 234 536.33 T
|
|
(ocesses to the dispatch queue.) 299.2 536.33 T
|
|
4 9 Q
|
|
-0.44 (Note:) 234 512.33 P
|
|
0 10 Q
|
|
-0.44 (Do not r) 259.59 512.33 P
|
|
-0.44 (earrange the queue so as to place a Backgr) 295.2 512.33 P
|
|
-0.44 (ound pr) 477.78 512.33 P
|
|
-0.44 (ocess ahead) 513.02 512.33 P
|
|
(of a r) 234 500.33 T
|
|
(eal-time pr) 256.55 500.33 T
|
|
(ocess. A Backgr) 304.62 500.33 T
|
|
(ound pr) 373.47 500.33 T
|
|
(ocess must always be the last in its) 409.15 500.33 T
|
|
(queue.) 234 488.33 T
|
|
2 9.5 Q
|
|
(Parameters) 63 476.67 T
|
|
2 10 Q
|
|
(frs_queue_info) 234 457.83 T
|
|
0 F
|
|
(Speci\336es a str) 306 457.83 T
|
|
(uctur) 365.82 457.83 T
|
|
(e in which the) 389.33 457.83 T
|
|
2 F
|
|
(cpu) 454.02 457.83 T
|
|
0 F
|
|
( \336eld identi\336es the) 468.64 457.83 T
|
|
(frame scheduler) 306 445.83 T
|
|
(, and the other \336elds specify information) 376.7 445.83 T
|
|
(about a queued pr) 306 433.83 T
|
|
(ocess.) 386.87 433.83 T
|
|
2 F
|
|
(frs) 234 415.83 T
|
|
0 F
|
|
(Speci\336es an FRS descriptor as r) 306 415.83 T
|
|
(eturned by) 443.35 415.83 T
|
|
5 F
|
|
(frs_create\050\051) 494.16 415.83 T
|
|
0 F
|
|
(.) 544.67 415.83 T
|
|
2 F
|
|
(minor_index) 234 397.83 T
|
|
0 F
|
|
(As a parameter or a \336eld in) 306 397.83 T
|
|
2 F
|
|
(frs_queue_info) 429.03 397.83 T
|
|
0 F
|
|
(, speci\336es the) 488.65 397.83 T
|
|
(minor frame. Minor frames ar) 306 385.83 T
|
|
(e number) 437.81 385.83 T
|
|
(ed fr) 479.84 385.83 T
|
|
(om 0.) 500.33 385.83 T
|
|
2 F
|
|
(pidlist) 234 367.83 T
|
|
0 F
|
|
(Addr) 306 367.83 T
|
|
(ess of a vector of integers long enough to r) 329.76 367.83 T
|
|
(eceive the) 516.59 367.83 T
|
|
(pr) 306 355.83 T
|
|
(ocess IDs of all pr) 315.77 355.83 T
|
|
(ocesses in one queue.) 393.64 355.83 T
|
|
2 F
|
|
(r) 234 337.83 T
|
|
(emove_pid) 237.71 337.83 T
|
|
0 F
|
|
(Pr) 306 337.83 T
|
|
(ocess ID of a queued pr) 315.8 337.83 T
|
|
(ocess to be r) 419.45 337.83 T
|
|
(emoved fr) 472.9 337.83 T
|
|
(om the) 518.1 337.83 T
|
|
(queue.) 306 325.83 T
|
|
2 F
|
|
(base_pid) 234 307.83 T
|
|
0 F
|
|
(Pr) 306 307.83 T
|
|
(ocess_ID of a pr) 315.8 307.83 T
|
|
(ocess in the queue, or 0.) 386.12 307.83 T
|
|
2 F
|
|
(insert_pid) 234 289.83 T
|
|
0 F
|
|
-0.59 (Pr) 306 289.83 P
|
|
-0.59 (ocess ID of a pr) 315.8 289.83 P
|
|
-0.59 (ocess to be inserted in the queue following) 381.24 289.83 P
|
|
2 F
|
|
(base_pid) 306 277.83 T
|
|
0 F
|
|
(.) 340.61 277.83 T
|
|
2 F
|
|
(discipline) 234 259.83 T
|
|
0 F
|
|
(The scheduling discipline for the inserted pr) 306 259.83 T
|
|
(ocess \050see) 501.57 259.83 T
|
|
(\322Frame Scheduling Disciplines\323 on page) 306 247.83 T
|
|
(9\051.) 487.73 247.83 T
|
|
2 9.5 Q
|
|
(Return V) 63 236.17 T
|
|
(alues) 98.95 236.17 T
|
|
0 10 Q
|
|
-0.44 (All calls r) 234 211.33 P
|
|
-0.44 (eturn 0 for sucess and -1 for err) 274.96 211.33 P
|
|
-0.44 (or) 409.34 211.33 P
|
|
-0.44 (. In case of err) 418.01 211.33 P
|
|
-0.44 (or) 477.65 211.33 P
|
|
-0.44 (,) 486.32 211.33 P
|
|
2 F
|
|
-0.44 (errno) 490.87 211.33 P
|
|
0 F
|
|
-0.44 ( is set to one) 512.53 211.33 P
|
|
(of the following values:) 234 199.33 T
|
|
4 9 Q
|
|
(\245) 234 181.33 T
|
|
0 10 Q
|
|
(EINV) 252 181.33 T
|
|
(AL for invalid parameters) 275.89 181.33 T
|
|
4 9 Q
|
|
(\245) 234 163.33 T
|
|
0 10 Q
|
|
(EPERM for lack of permission) 252 163.33 T
|
|
44 485 45 519 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "31" 32
|
|
%%Page: "32" 32
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(32) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
4 F
|
|
(\245) 216 632.33 T
|
|
0 10 Q
|
|
(ENODEV to indicate the FRS subsystem has not been installed) 234 632.33 T
|
|
4 9 Q
|
|
(\245) 216 614.33 T
|
|
0 10 Q
|
|
(EF) 234 614.33 T
|
|
(AUL) 244.92 614.33 T
|
|
(T to indicate that pidlist cannot be accessed.) 265.84 614.33 T
|
|
1 11.5 Q
|
|
(Destroying a Frame Scheduler) 216 577.33 T
|
|
2 9.5 Q
|
|
(System Call) 45 565.17 T
|
|
4 8 Q
|
|
(int) 216 550.67 T
|
|
(schedctl) 246 550.67 T
|
|
(\050) 277.55 550.67 T
|
|
(MPTS_FRS_DESTROY, int cpu) 282.44 550.67 T
|
|
(\051) 398.4 550.67 T
|
|
(;) 403.29 550.67 T
|
|
2 9.5 Q
|
|
(Library Call) 45 541.67 T
|
|
4 8 Q
|
|
(int) 216 527.17 T
|
|
(frs_destroy) 246 527.17 T
|
|
(\050) 287.77 527.17 T
|
|
(frs_t* frs) 292.65 527.17 T
|
|
(\051) 324.64 527.17 T
|
|
(;) 329.53 527.17 T
|
|
0 10 Q
|
|
(Any user pr) 216 494.83 T
|
|
(ocess may initiate the termination of a frame scheduler using) 268.92 494.83 T
|
|
(either of the calls above.) 216 482.83 T
|
|
(This call causes termination signals to be sent to all member pr) 216 458.83 T
|
|
(ocesses and) 492.33 458.83 T
|
|
(to the frs-master pr) 216 446.83 T
|
|
(ocess \050see \322Frame Scheduler Signals\323 on page) 300.74 446.83 T
|
|
(18\051.) 505 446.83 T
|
|
-0.49 (The FRS dequeues all pr) 216 422.83 P
|
|
-0.49 (ocesses fr) 321.18 422.83 P
|
|
-0.49 (om the frame scheduler and unisolates the) 362.46 422.83 P
|
|
(cpu it was attached to. The IRIX scheduler r) 216 410.83 T
|
|
(esumes contr) 408.7 410.83 T
|
|
(ol of the CPU.) 466.84 410.83 T
|
|
-0.58 (Pr) 216 398.83 P
|
|
-0.58 (ocesses continue execution in normal mode. Frame scheduler calls such as) 225.8 398.83 P
|
|
5 F
|
|
(frs_yield\050\051) 216 386.83 T
|
|
0 F
|
|
( r) 263.18 386.83 T
|
|
(eturn err) 269.45 386.83 T
|
|
(ors. The best way to avoid pr) 308.29 386.83 T
|
|
(oblems is to have the) 436.46 386.83 T
|
|
(termination signal handler wrap up all pr) 216 374.83 T
|
|
(ocessing and then cause the) 399.69 374.83 T
|
|
(pr) 216 362.83 T
|
|
(ocess to exit.) 225.77 362.83 T
|
|
2 9.5 Q
|
|
(Parameters) 45 351.17 T
|
|
2 10 Q
|
|
(cpu) 216 332.33 T
|
|
0 F
|
|
(Speci\336es the pr) 288 332.33 T
|
|
(ocessor being managed by the destination) 355.09 332.33 T
|
|
(frame scheduler) 288 320.33 T
|
|
2 F
|
|
(frs) 216 302.33 T
|
|
0 F
|
|
(Speci\336es an FRS descriptor as r) 288 302.33 T
|
|
(eturned by) 425.35 302.33 T
|
|
5 F
|
|
(frs_create\050\051) 476.16 302.33 T
|
|
0 F
|
|
(.) 526.67 302.33 T
|
|
2 9.5 Q
|
|
(Return V) 45 290.67 T
|
|
(alues) 80.95 290.67 T
|
|
0 10 Q
|
|
(Both calls r) 216 265.83 T
|
|
(eturn 0 for sucess and -1 for err) 264.89 265.83 T
|
|
(or) 402.4 265.83 T
|
|
(. In case of err) 411.06 265.83 T
|
|
(or) 472.49 265.83 T
|
|
(,) 481.15 265.83 T
|
|
2 F
|
|
(errno) 486.15 265.83 T
|
|
0 F
|
|
( is set to) 507.81 265.83 T
|
|
(one of the following values:) 216 253.83 T
|
|
4 9 Q
|
|
(\245) 216 235.83 T
|
|
0 10 Q
|
|
(EINV) 234 235.83 T
|
|
(AL for invalid parameters) 257.89 235.83 T
|
|
4 9 Q
|
|
(\245) 216 217.83 T
|
|
0 10 Q
|
|
(EPERM for lack of permission) 234 217.83 T
|
|
4 9 Q
|
|
(\245) 216 199.83 T
|
|
0 10 Q
|
|
(ENODEV to indicate the FRS subsystem has not been installed.) 234 199.83 T
|
|
FMENDPAGE
|
|
%%EndPage: "32" 33
|
|
%%Page: "33" 33
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(The Frame Scheduler DDI) 462.87 679.44 T
|
|
1 F
|
|
(33) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
1 12 Q
|
|
(The Frame Scheduler DDI) 63 631 T
|
|
0 10 Q
|
|
-0.38 (The Frame Scheduler pr) 234 605.33 P
|
|
-0.38 (ovides a device driver interface to allow any device) 339.04 605.33 P
|
|
-0.01 (with a kernel-level device driver to generate the frame scheduler time-base) 234 593.33 P
|
|
-0.29 (interr) 234 581.33 P
|
|
-0.29 (upt. The system can contain up to 16 dif) 258.59 581.33 P
|
|
-0.29 (fer) 432.51 581.33 P
|
|
-0.29 (ent drivers that support the) 444.39 581.33 P
|
|
-0.55 (Frame Scheduler) 234 569.33 P
|
|
-0.55 (. The Frame Scheduler distinguishes them by an) 307.39 569.33 P
|
|
2 9 Q
|
|
-0.49 (frs_driver_id) 517.8 569.33 P
|
|
0 10 Q
|
|
(in the range 0 thr) 234 557.33 T
|
|
(ough 15.) 309.53 557.33 T
|
|
-0.52 (In or) 234 533.33 P
|
|
-0.52 (der to interact with the frame scheduler) 254.38 533.33 P
|
|
-0.52 (, a driver pr) 425.58 533.33 P
|
|
-0.52 (ovides two r) 476.12 533.33 P
|
|
-0.52 (outines,) 530.03 533.33 P
|
|
-0.5 (one for initialization and one for termination, which it exports during driver) 234 521.33 P
|
|
-0.29 (initialization. After an FRS initializes a device driver) 234 509.33 P
|
|
-0.29 (, the driver calls an FRS) 462.28 509.33 P
|
|
(entry point to signal the event of an interr) 234 497.33 T
|
|
(upt.) 418.29 497.33 T
|
|
4 9 Q
|
|
-0.04 (Note:) 234 473.33 P
|
|
0 10 Q
|
|
-0.04 (The str) 260.4 473.33 P
|
|
-0.04 (uctur) 290.95 473.33 P
|
|
-0.04 (e of an IRIX kernel-level device driver is discussed in the) 314.47 473.33 P
|
|
2 F
|
|
(IRIX Device Driver Pr) 234 461.33 T
|
|
(ogramming Guide) 326.46 461.33 T
|
|
0 F
|
|
(. The latest version, for IRIX 5.3, has) 400.04 461.33 T
|
|
(part number 007-091) 234 449.33 T
|
|
(1-044.) 324.9 449.33 T
|
|
1 11.5 Q
|
|
(Frame Scheduler Initialization Function) 234 412.33 T
|
|
0 10 Q
|
|
-0.54 (The device driver must pr) 234 387.83 P
|
|
-0.54 (ovide a function with the following pr) 346.73 387.83 P
|
|
-0.54 (ototype \050the) 512.1 387.83 P
|
|
(actual function name is not signi\336cant\051:) 234 375.83 T
|
|
6 9 Q
|
|
(void prefix_frs_func_set) 252 358.5 T
|
|
(\050) 386.81 358.5 T
|
|
(intrgroup_t* intrgroup) 397.6 358.5 T
|
|
(\051) 521.62 358.5 T
|
|
(;) 532.41 358.5 T
|
|
0 10 Q
|
|
(This function is called by a new FRS when the FRS is cr) 234 334.83 T
|
|
(eated with an) 477.37 334.83 T
|
|
2 F
|
|
(inter_sour) 234 322.83 T
|
|
(ce) 276.03 322.83 T
|
|
0 F
|
|
( of FRS_INTRSOURCE_DRIVER and) 283.98 322.83 T
|
|
2 F
|
|
(inter_quali\336er) 450.16 322.83 T
|
|
0 F
|
|
( specifying) 507.83 322.83 T
|
|
(this device driver) 234 310.83 T
|
|
(\325s number \050see \322Cr) 311.98 310.83 T
|
|
(eating a Master or Slave Frame) 394.41 310.83 T
|
|
(Scheduler\323 on page) 234 298.83 T
|
|
(20\051.) 323.18 298.83 T
|
|
-0.78 (The ar) 234 274.83 P
|
|
-0.78 (gument) 261.21 274.83 P
|
|
2 F
|
|
-0.78 (intr) 297.2 274.83 P
|
|
-0.78 (gr) 312.57 274.83 P
|
|
-0.78 (oup) 321.28 274.83 P
|
|
0 F
|
|
-0.78 ( identi\336es the interr) 336.27 274.83 P
|
|
-0.78 (upt gr) 420.73 274.83 P
|
|
-0.78 (oup allocated for the newly) 447.06 274.83 P
|
|
(cr) 234 262.83 T
|
|
(eated instance of the frame scheduler) 242.21 262.83 T
|
|
(. The device driver must set the) 405.75 262.83 T
|
|
-0.29 (har) 234 250.83 P
|
|
-0.29 (dwar) 248.58 250.83 P
|
|
-0.29 (e devices it manages so that interr) 271.79 250.83 P
|
|
-0.29 (upts ar) 419.71 250.83 P
|
|
-0.29 (e dir) 450.21 250.83 P
|
|
-0.29 (ected to this interr) 469.99 250.83 P
|
|
-0.29 (upt) 549.5 250.83 P
|
|
(gr) 234 238.83 T
|
|
(oup \050see the paper \322Gr) 243.32 238.83 T
|
|
(oup Interr) 343.95 238.83 T
|
|
(upts on Challenge and Onyx Systems\323) 388.98 238.83 T
|
|
-0.16 (distributed with REACT/Pr) 234 226.83 P
|
|
-0.16 (o\051. The actual gr) 357.7 226.83 P
|
|
-0.16 (oup identi\336er may be obtained) 428.69 226.83 P
|
|
(using the macr) 234 214.83 T
|
|
(o:) 299.43 214.83 T
|
|
6 9 Q
|
|
(intrgroup_get_groupid\050intrgroup\051) 252 197.5 T
|
|
0 10 Q
|
|
(The ef) 234 173.83 T
|
|
(fective destination may be obtained using the following macr) 261.17 173.83 T
|
|
(o:) 531.53 173.83 T
|
|
6 9 Q
|
|
(EVINTR_GROUPDEST\050intrgroup_get_groupid\050intrgroup\051\051) 252 156.5 T
|
|
FMENDPAGE
|
|
%%EndPage: "33" 34
|
|
%%Page: "34" 34
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(34) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
4 F
|
|
(Note:) 216 632.33 T
|
|
0 10 Q
|
|
(When the device driver has dir) 242.48 632.33 T
|
|
(ected the har) 379.1 632.33 T
|
|
(dwar) 435.92 632.33 T
|
|
(e interr) 459.13 632.33 T
|
|
(upt to the) 491 632.33 T
|
|
-0.29 (interr) 216 620.33 P
|
|
-0.29 (upt gr) 240.59 620.33 P
|
|
-0.29 (oup speci\336ed, the har) 267.41 620.33 P
|
|
-0.29 (dwar) 361.78 620.33 P
|
|
-0.29 (e interr) 384.98 620.33 P
|
|
-0.29 (upt will be pr) 416.56 620.33 P
|
|
-0.29 (esented at every) 475.62 620.33 P
|
|
(CPU in the gr) 216 608.33 T
|
|
(oup. That is, the interr) 276.31 608.33 T
|
|
(upt will be taken concurr) 374.58 608.33 T
|
|
(ently on each) 485.55 608.33 T
|
|
(CPU occupied by the master or a slave FRS. The device driver interr) 216 596.33 T
|
|
(upt) 516.34 596.33 T
|
|
(handler code is enter) 216 584.33 T
|
|
(ed concurr) 308.23 584.33 T
|
|
(ently on each CPU on each interr) 355.51 584.33 T
|
|
(upt.) 500.94 584.33 T
|
|
1 9.5 Q
|
|
(Example of Initialization Function) 216 556.67 T
|
|
6 9 Q
|
|
(/*) 216 545.5 T
|
|
(** Frame Scheduler initialization function) 216 534.5 T
|
|
(** for the External Interrupts Driver) 216 523.5 T
|
|
(*/) 216 512.5 T
|
|
(void) 216 501.5 T
|
|
(eintr_frs_func_set\050intrgroup_t* intrgroup\051) 216 490.5 T
|
|
({) 216 479.5 T
|
|
(int s;) 234 468.5 T
|
|
(ASSERT\050intrgroup != 0\051;) 234 457.5 T
|
|
(/*) 234 446.5 T
|
|
(** locking and spl level management) 234 435.5 T
|
|
(** specific to this \050ei\051 driver) 234 424.5 T
|
|
(*/) 234 413.5 T
|
|
(s = EILOCK\050\051;) 234 402.5 T
|
|
(DISABLE_INTR\050\051;) 234 391.5 T
|
|
(/*) 234 380.5 T
|
|
(** setting up the hardware to send intr to) 234 369.5 T
|
|
(** the appropriate destination.) 234 358.5 T
|
|
(*/) 234 347.5 T
|
|
(evintr_connect\050) 234 336.5 T
|
|
(\050evreg_t *\051\050epcbase + EPC_IIDINTR4\051,) 288 325.5 T
|
|
(EVINTR_LEVEL_EPC_INTR4,) 288 314.5 T
|
|
(SPLDEV,) 288 303.5 T
|
|
(EVINTR_GROUPDEST\050intrgroup_get_groupid\050intrgroup\051\051,) 252 292.5 T
|
|
(\050EvIntrFunc*\051eiintr,) 288 281.5 T
|
|
(\050void *\0510\051;) 288 270.5 T
|
|
(/*) 234 259.5 T
|
|
(** Epilog specific to this driver) 234 248.5 T
|
|
(*/) 234 237.5 T
|
|
(ENABLE_INTR\050\051;) 234 226.5 T
|
|
(setsyscpu\050-1\051;) 234 215.5 T
|
|
(intr_enabled = 1;) 234 204.5 T
|
|
(EIUNLOCK\050s\051;) 234 193.5 T
|
|
(}) 216 182.5 T
|
|
FMENDPAGE
|
|
%%EndPage: "34" 35
|
|
%%Page: "35" 35
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(The Frame Scheduler DDI) 462.87 679.44 T
|
|
1 F
|
|
(35) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
1 11.5 Q
|
|
(Frame Scheduler T) 234 631.33 T
|
|
(ermination Function) 336.59 631.33 T
|
|
0 10 Q
|
|
-0.54 (The device driver must pr) 234 606.83 P
|
|
-0.54 (ovide a function with the following pr) 346.73 606.83 P
|
|
-0.54 (ototype \050the) 512.1 606.83 P
|
|
(actual function name is not signi\336cant\051:) 234 594.83 T
|
|
6 9 Q
|
|
(void prefix_frs_func_clear) 252 577.5 T
|
|
(\050) 397.6 577.5 T
|
|
(void) 408.38 577.5 T
|
|
(\051) 435.34 577.5 T
|
|
(;) 446.13 577.5 T
|
|
0 10 Q
|
|
(A Frame Scheduler that initialized a device driver calls this function when) 234 553.83 T
|
|
-0.4 (the Frame Scheduler is terminating \050see \322Destr) 234 541.83 P
|
|
-0.4 (oying a Frame Scheduler\323 on) 437.77 541.83 P
|
|
(page) 234 529.83 T
|
|
(32\051. The Frame Scheduler deallocates the interr) 257.85 529.83 T
|
|
(upt gr) 464.9 529.83 T
|
|
(oup to which) 492.02 529.83 T
|
|
(interr) 234 517.83 T
|
|
(upts wer) 258.59 517.83 T
|
|
(e dir) 297.51 517.83 T
|
|
(ected.) 317.57 517.83 T
|
|
(The device driver should clean up data str) 234 493.83 T
|
|
(uctur) 420.5 493.83 T
|
|
(es and make sur) 444.02 493.83 T
|
|
(e that the) 515.66 493.83 T
|
|
(device is in a safe state.) 234 481.83 T
|
|
1 9.5 Q
|
|
(Example of T) 234 454.17 T
|
|
(ermination Function) 292.37 454.17 T
|
|
6 9 Q
|
|
(/*) 234 443 T
|
|
(** Frame Scheduler termination function) 234 432 T
|
|
(** for the External Interrupts Driver) 234 421 T
|
|
(*/) 234 410 T
|
|
(void) 234 399 T
|
|
(eintr_frs_func_clear\050void\051) 234 388 T
|
|
({) 234 377 T
|
|
(/*) 252 366 T
|
|
(** Epilog specific to this) 252 355 T
|
|
(** particular \050ei\051 driver) 252 344 T
|
|
(*/) 252 333 T
|
|
(disable_intr\050\051;) 252 322 T
|
|
(setintrcpu\050config_intrcpu\051;) 252 311 T
|
|
(setsyscpu\050config_syscallcpu\051;) 252 300 T
|
|
(}) 234 289 T
|
|
1 11.5 Q
|
|
(Exporting the Initialization and T) 234 252.33 T
|
|
(ermination Functions) 410.63 252.33 T
|
|
0 10 Q
|
|
(A device driver must export the Frame Scheduler interface functions to) 234 227.83 T
|
|
-0.02 (make them known to the Frame Scheduler) 234 215.83 P
|
|
-0.02 (. This call, which is made during) 420.75 215.83 P
|
|
(the device driver) 234 203.83 T
|
|
(\325s own initialization, also makes the driver known as a) 309.62 203.83 T
|
|
(sour) 234 191.83 T
|
|
(ce of time-base interr) 253.49 191.83 T
|
|
(upts:) 346.24 191.83 T
|
|
6 9 Q
|
|
(frs_driver_export\050int frs_driver_id,) 252 174.5 T
|
|
(void \050*frs_func_set\051\050intrgroup_t*\051,) 306 163.5 T
|
|
(void \050*frs_func_clear\051\050void\051\051;) 306 152.5 T
|
|
FMENDPAGE
|
|
%%EndPage: "35" 36
|
|
%%Page: "36" 36
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(36) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
-0.56 (The parameter) 216 632.33 P
|
|
2 F
|
|
-0.56 (frs_driver_id) 282.16 632.33 P
|
|
0 F
|
|
-0.56 (is the driver identi\336cation number) 336.66 632.33 P
|
|
-0.56 (. It is speci\336ed) 485.66 632.33 P
|
|
(in the) 216 620.33 T
|
|
2 F
|
|
(intr_quali\336er) 243.59 620.33 T
|
|
0 F
|
|
( parameter to) 297.36 620.33 T
|
|
5 F
|
|
(frs_create\050\051) 359.13 620.33 T
|
|
0 F
|
|
( in or) 409.64 620.33 T
|
|
(der to select this driver as) 432.59 620.33 T
|
|
(the sour) 216 608.33 T
|
|
(ce of interr) 251.85 608.33 T
|
|
(upts. The identi\336er is an integer between 0 and 15.) 299.44 608.33 T
|
|
(Dif) 216 596.33 T
|
|
(fer) 229.79 596.33 T
|
|
(ent drivers must use dif) 241.68 596.33 T
|
|
(fer) 346.68 596.33 T
|
|
(ent identi\336ers.) 358.56 596.33 T
|
|
1 9.5 Q
|
|
(Example of Exporting Entry Points) 216 568.67 T
|
|
6 9 Q
|
|
(/*) 216 557.5 T
|
|
(** Function called by the External Interrupts) 216 546.5 T
|
|
(** driver to export its Frame Scheduler interface) 216 535.5 T
|
|
(** functions.) 216 524.5 T
|
|
(*/) 216 513.5 T
|
|
(frs_driver_export\05012,) 216 502.5 T
|
|
( eintr_frs_func_set,) 288 491.5 T
|
|
( eintr_frs_func_clear\051;) 288 480.5 T
|
|
1 11.5 Q
|
|
(Generating Interrupts) 216 443.83 T
|
|
0 10 Q
|
|
(A driver has to call the frame scheduler interr) 216 419.33 T
|
|
(upt handler fr) 417.52 419.33 T
|
|
(om within its) 479.29 419.33 T
|
|
(interr) 216 407.33 T
|
|
(upt handler) 240.59 407.33 T
|
|
(. This handler will be enter) 292.02 407.33 T
|
|
(ed concurr) 410.27 407.33 T
|
|
(ently on each) 457.56 407.33 T
|
|
(pr) 216 395.33 T
|
|
(ocessor wher) 225.77 395.33 T
|
|
(e the master or a slave FRS is r) 283.54 395.33 T
|
|
(unning. It delivers the) 417.71 395.33 T
|
|
(interr) 216 383.33 T
|
|
(upt to the FRS on that pr) 240.59 383.33 T
|
|
(ocessor) 349.31 383.33 T
|
|
(. The function to be invoked is:) 381.13 383.33 T
|
|
6 9 Q
|
|
(void frs_handle_driverintr\050void\051;) 234 366 T
|
|
0 10 Q
|
|
(It is possible for a handler to be enter) 216 342.33 T
|
|
(ed at a time when the FRS for its) 379.39 342.33 T
|
|
-0.79 (pr) 216 330.33 P
|
|
-0.79 (ocessor is not active. However) 225.77 330.33 P
|
|
-0.79 (, the frs_handle_driverintr\050\051 function checks) 355.91 330.33 P
|
|
(for this and does nothing when nothing is r) 216 318.33 T
|
|
(equir) 407.39 318.33 T
|
|
(ed.) 430.47 318.33 T
|
|
1 9.5 Q
|
|
(Example of Generating Interrupt) 216 290.67 T
|
|
6 9 Q
|
|
(void eiintr\050struct eframe_s *ep, unsigned int arg\051) 216 273.5 T
|
|
({) 216 262.5 T
|
|
(/*) 234 251.5 T
|
|
(** Do anything required by the hardware...) 234 240.5 T
|
|
(** ...then call the Frame Scheduler:) 234 229.5 T
|
|
(*/) 234 218.5 T
|
|
(frs_handle_driverintr\050\051;) 234 207.5 T
|
|
(/*) 234 196.5 T
|
|
(** Do any additional processing needed.) 234 185.5 T
|
|
(*/) 234 174.5 T
|
|
(return;) 234 163.5 T
|
|
(}) 216 152.5 T
|
|
26 315 27 349 R
|
|
V
|
|
26 160.5 27 257.5 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "36" 37
|
|
%%Page: "37" 37
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(The Frame Scheduler DDI) 462.87 679.44 T
|
|
1 F
|
|
(37) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
1 11.5 Q
|
|
(Using a Device Driver) 234 631.33 T
|
|
0 10 Q
|
|
(This is the sequence of actions that occur when a device driver is used as a) 234 606.83 T
|
|
(sour) 234 594.83 T
|
|
(ce of time-base interr) 253.49 594.83 T
|
|
(upts for the Frame Scheduler) 346.24 594.83 T
|
|
(.) 473.8 594.83 T
|
|
(During its initialization at system boot time, the driver exports the) 234 570.83 T
|
|
5 F
|
|
(pre\336x_frs_func_set\050\051) 234 558.83 T
|
|
0 F
|
|
( and) 327.26 558.83 T
|
|
5 F
|
|
(pre\336x_frs_func_clear\050\051) 349.18 558.83 T
|
|
0 F
|
|
( functions, specifying a) 451.32 558.83 T
|
|
(unique driver identi\336er between 0 and 15. After these functions have been) 234 546.83 T
|
|
-0.54 (exported the frame scheduler is awar) 234 534.83 P
|
|
-0.54 (e of the existence of this driver and will) 395.38 534.83 P
|
|
(allow pr) 234 522.83 T
|
|
(ograms to r) 270.88 522.83 T
|
|
(equest it as the sour) 321.38 522.83 T
|
|
(ce of interr) 408.82 522.83 T
|
|
(upts.) 456.42 522.83 T
|
|
(Later) 234 498.83 T
|
|
(, a pr) 256.36 498.83 T
|
|
(ogram cr) 278.62 498.83 T
|
|
(eates a frame scheduler specifying this driver as the) 318.11 498.83 T
|
|
-0.21 (sour) 234 486.83 P
|
|
-0.21 (ce of interr) 253.49 486.83 P
|
|
-0.21 (upts. The scheduler veri\336es that this driver has exported the) 300.65 486.83 P
|
|
(initialization and termination functions and invokes) 234 474.83 T
|
|
5 F
|
|
(pre\336x_frs_func_set\050) 234 462.83 T
|
|
2 F
|
|
(intr) 323.93 462.83 T
|
|
(gr) 339.3 462.83 T
|
|
(oup) 348.01 462.83 T
|
|
5 F
|
|
(\051) 363 462.83 T
|
|
0 F
|
|
( for this particular driver) 366.33 462.83 T
|
|
(.) 475.32 462.83 T
|
|
(As long as the FRS exists, the driver invokes) 234 438.83 T
|
|
5 F
|
|
(frs_handle_driverintr\050\051) 431.52 438.83 T
|
|
0 F
|
|
( each) 536.44 438.83 T
|
|
(time its interr) 234 426.83 T
|
|
(upt handling r) 293.77 426.83 T
|
|
(outine is enter) 357.75 426.83 T
|
|
(ed. This informs the FRS that an) 420.57 426.83 T
|
|
(interr) 234 414.83 T
|
|
(upt has been r) 258.59 414.83 T
|
|
(eceived.) 321.11 414.83 T
|
|
-0.32 (When the FRS is \336nally destr) 234 390.83 P
|
|
-0.32 (oyed, it invokes) 360.2 390.83 P
|
|
5 F
|
|
-0.32 (pre\336x_frs_func_clear\050\051) 431.72 390.83 P
|
|
0 F
|
|
-0.32 (for the) 536.04 390.83 P
|
|
-0.68 (associated driver) 234 378.83 P
|
|
-0.68 (. The driver ceases calling) 307.85 378.83 P
|
|
5 F
|
|
-0.68 (frs_handle_driverintr\050\051) 420.56 378.83 P
|
|
0 F
|
|
-0.68 ( until it is) 525.48 378.83 P
|
|
(again initialized by an FRS.) 234 366.83 T
|
|
FMENDPAGE
|
|
%%EndPage: "37" 38
|
|
%%Page: "38" 38
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(38) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
1 12 Q
|
|
(Examples) 45 631 T
|
|
0 10 Q
|
|
(The following example pr) 216 605.33 T
|
|
(ograms ar) 330.15 605.33 T
|
|
(e pr) 374.43 605.33 T
|
|
(ovided:) 391.49 605.33 T
|
|
2 F
|
|
(simple) 216 587.33 T
|
|
0 F
|
|
(A frame scheduler r) 288 587.33 T
|
|
(unning several pr) 376.08 587.33 T
|
|
(ocesses on a single) 454.11 587.33 T
|
|
(pr) 288 575.33 T
|
|
(ocessor) 297.77 575.33 T
|
|
2 F
|
|
(mpr) 216 557.33 T
|
|
(ogs) 232.48 557.33 T
|
|
0 F
|
|
(A frame scheduler setup with independent pr) 288 557.33 T
|
|
(ocesses) 490.32 557.33 T
|
|
2 F
|
|
(multi) 216 539.33 T
|
|
0 F
|
|
(Thr) 288 539.33 T
|
|
(ee synchr) 303.71 539.33 T
|
|
(onous frame schedulers r) 345.42 539.33 T
|
|
(unning lightweight) 456.96 539.33 T
|
|
(pr) 288 527.33 T
|
|
(ocesses on thr) 297.77 527.33 T
|
|
(ee pr) 359.07 527.33 T
|
|
(ocessors) 380.92 527.33 T
|
|
2 F
|
|
(driver) 216 509.33 T
|
|
0 F
|
|
(A pseudo-driver that demonstrates the frame scheduler) 288 509.33 T
|
|
(device driver interface.) 288 497.33 T
|
|
2 F
|
|
(sixtyhz) 216 479.33 T
|
|
0 F
|
|
(A very simple example r) 288 479.33 T
|
|
(unning one pr) 396.72 479.33 T
|
|
(ocess at 60Hz) 459.5 479.33 T
|
|
2 F
|
|
(memlock) 216 461.33 T
|
|
0 F
|
|
(An example that takes car) 288 461.33 T
|
|
(e of locking memory down and) 402.43 461.33 T
|
|
-0.13 (which skips the \336rst minor frame to account for initial cold) 288 449.33 P
|
|
(caches.) 288 437.33 T
|
|
(The code for each example is in a subdir) 216 413.33 T
|
|
(ectory named for the example.) 393.19 413.33 T
|
|
1 11.5 Q
|
|
(Basic Example) 216 376.33 T
|
|
0 10 Q
|
|
-0.15 (This example shows how to map a r) 216 351.83 P
|
|
-0.15 (eal-time application speci\336cation into a) 374.01 351.83 P
|
|
(Frame Scheduler speci\336cation and also how to write the corr) 216 339.83 T
|
|
(esponding) 483.52 339.83 T
|
|
(pr) 216 327.83 T
|
|
(ogram using the Frame Scheduler API.) 225.77 327.83 T
|
|
1 9.5 Q
|
|
(Real-time Application Speci\336cation) 216 300.17 T
|
|
0 10 Q
|
|
(The application consists of 2 pr) 216 276.33 T
|
|
(ocesses that have to periodically execute a) 353.08 276.33 T
|
|
(speci\336c sequence of code. The period for the \336rst pr) 216 264.33 T
|
|
(ocess, pr) 443.7 264.33 T
|
|
(ocess A, is 600) 481.63 264.33 T
|
|
(milliseconds \050ms\051. The period for the other pr) 216 252.33 T
|
|
(ocess, pr) 416.83 252.33 T
|
|
(ocess B, is 2400 ms.) 454.76 252.33 T
|
|
4 9 Q
|
|
-0.19 (Note:) 216 228.33 P
|
|
0 10 Q
|
|
-0.19 (Such long periods ar) 242.1 228.33 P
|
|
-0.19 (e unr) 332.52 228.33 P
|
|
-0.19 (ealistic for r) 355.23 228.33 P
|
|
-0.19 (eal-time applications. However) 406.79 228.33 P
|
|
-0.19 (,) 544.19 228.33 P
|
|
(they allow the use of printf statements within the \322r) 216 216.33 T
|
|
(eal-time\323 loops in this) 444.61 216.33 T
|
|
(sample pr) 216 204.33 T
|
|
(ogram.) 260.04 204.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "38" 39
|
|
%%Page: "39" 39
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(Examples) 527.81 679.44 T
|
|
1 F
|
|
(39) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
1 9.5 Q
|
|
(Frame Scheduler Design) 234 632.67 T
|
|
0 10 Q
|
|
(The two periods and their ratio determine the selection of the minor frame) 234 608.83 T
|
|
(period\321600 ms\321and the number of minor frames per major frame\3214, for) 234 596.83 T
|
|
(a total of 2400 ms.) 234 584.83 T
|
|
(The discipline for pr) 234 560.83 T
|
|
(ocess A is strict r) 323.76 560.83 T
|
|
(eal-time \050FRS_DISC_R) 397.65 560.83 T
|
|
(T\051. Underr) 496.5 560.83 T
|
|
(un) 543.25 560.83 T
|
|
(and overrr) 234 548.83 T
|
|
(un err) 281.07 548.83 T
|
|
(ors should cause signals.) 307.92 548.83 T
|
|
(Pr) 234 524.83 T
|
|
(ocess B should r) 243.8 524.83 T
|
|
(un only once in 2400 ms, so it operates as Continuable) 314.98 524.83 T
|
|
(over as many as 4 minor frames. For the \336rst 3 frames, its discipline is) 234 512.83 T
|
|
(Overr) 234 500.83 T
|
|
(unnable and Continuable. For the last frame it is strict r) 260.11 500.83 T
|
|
(eal-time. The) 504.22 500.83 T
|
|
(Overr) 234 488.83 T
|
|
(unnable discipline allows pr) 260.11 488.83 T
|
|
(ocess B to r) 385.13 488.83 T
|
|
(un without yielding past the) 434.47 488.83 T
|
|
(end of each frame. The Continuable discipline ensur) 234 476.83 T
|
|
(es that once pr) 464.39 476.83 T
|
|
(ocess B) 528.52 476.83 T
|
|
(does yield, it is not r) 234 464.83 T
|
|
(esumed until the fourth minor frames has passed. The) 323.46 464.83 T
|
|
-0.55 (combination allows pr) 234 452.83 P
|
|
-0.55 (ocess B to extend its execution to the allowable period) 331.93 452.83 P
|
|
-0.34 (of 2400 ms, and the strict r) 234 440.83 P
|
|
-0.34 (eal-time discipline at the end makes certain that it) 347.88 440.83 P
|
|
(yields by the end of the major frame.) 234 428.83 T
|
|
-0.38 (Ther) 234 404.83 P
|
|
-0.38 (e is a single FRS so a single pr) 254.5 404.83 P
|
|
-0.38 (ocessor is used by both pr) 382.75 404.83 P
|
|
-0.38 (ocesses. Pr) 495.12 404.83 P
|
|
-0.38 (ocess) 541.72 404.83 P
|
|
(A r) 234 392.83 T
|
|
(uns within a minor frame until yielding or until the expiration of the) 248.14 392.83 T
|
|
(minor frame period. In the latter case the frame scheduler generates an) 234 380.83 T
|
|
(overr) 234 368.83 T
|
|
(un err) 257.71 368.83 T
|
|
(or signaling that pr) 284.55 368.83 T
|
|
(ocess A is misbehaving.) 369.27 368.83 T
|
|
(When pr) 234 344.83 T
|
|
(ocess A yields, the frame scheduler immediately activates pr) 272.69 344.83 T
|
|
(ocess) 539.59 344.83 T
|
|
(B. It r) 234 332.83 T
|
|
(uns until yielding, or until the end of the minor frame wher) 258.1 332.83 T
|
|
(e it is) 520.72 332.83 T
|
|
(pr) 234 320.83 T
|
|
(eempted. This is not an err) 243.77 320.83 T
|
|
(or since pr) 361.41 320.83 T
|
|
(ocess B is Overr) 407.77 320.83 T
|
|
(unable.) 477.79 320.83 T
|
|
(Starting the next minor frame, the FRS allows pr) 234 296.83 T
|
|
(ocess A to execute again.) 449.66 296.83 T
|
|
(After it yields, pr) 234 284.83 T
|
|
(ocess B is allowed to r) 309.54 284.83 T
|
|
(esume r) 406.42 284.83 T
|
|
(unning, if it has not yet) 441.46 284.83 T
|
|
-0.55 (yielded. Again in the thir) 234 272.83 P
|
|
-0.55 (d and fourth minor frame, A is started, followed by) 342.87 272.83 P
|
|
-0.04 (B if it has not yet yielded. At the interr) 234 260.83 P
|
|
-0.04 (upt that signals the end of the fourth) 402.98 260.83 P
|
|
(frame \050and the end of the major frame\051, pr) 234 248.83 T
|
|
(ocess B must have yielded, or an) 420.4 248.83 T
|
|
(overr) 234 236.83 T
|
|
(un err) 257.71 236.83 T
|
|
(or is signalled.) 284.55 236.83 T
|
|
1 11.5 Q
|
|
(Example of Scheduling Separate Programs) 234 199.83 T
|
|
0 10 Q
|
|
-0.19 (The code in dir) 234 175.33 P
|
|
-0.19 (ectory) 299.96 175.33 P
|
|
2 F
|
|
-0.19 (mpr) 329.72 175.33 P
|
|
-0.19 (ogs) 346.2 175.33 P
|
|
0 F
|
|
-0.19 (is based on the code for the basic example \050see) 361.84 175.33 P
|
|
-0.65 (\322Basic Example\323 on page) 234 163.33 P
|
|
-0.65 (38\051. However) 346.13 163.33 P
|
|
-0.65 (, the scheduled pr) 404.34 163.33 P
|
|
-0.65 (ocesses A and B ar) 481.23 163.33 P
|
|
-0.65 (e) 560.36 163.33 P
|
|
-0.45 (physically loaded as separate commands. The main pr) 234 151.33 P
|
|
-0.45 (ogram establishes the) 470.52 151.33 P
|
|
FMENDPAGE
|
|
%%EndPage: "39" 40
|
|
%%Page: "40" 40
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(40) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(single FRS. The r) 216 632.33 T
|
|
(eal-time pr) 290.19 632.33 T
|
|
(ocesses ar) 338.26 632.33 T
|
|
(e started as separate pr) 381.71 632.33 T
|
|
(ograms. They) 483.11 632.33 T
|
|
(communicate with the main pr) 216 620.33 T
|
|
(ogram using SVR4-compatible interpr) 352.27 620.33 T
|
|
(ocess) 520.17 620.33 T
|
|
(communication messages \050see intr) 216 608.33 T
|
|
(o\0502\051 and msgget\0502\051\051.) 367.23 608.33 T
|
|
(Ther) 216 584.33 T
|
|
(e ar) 236.5 584.33 T
|
|
(e thr) 252.55 584.33 T
|
|
(ee separate executables in the mpr) 272.68 584.33 T
|
|
(ogs example. The master) 423.87 584.33 T
|
|
(pr) 216 572.33 T
|
|
(ogram, in master) 225.77 572.33 T
|
|
(.c, is a command that has the following syntax:) 300.09 572.33 T
|
|
6 9 Q
|
|
(master [-p) 234 555 T
|
|
2 10 Q
|
|
(cpu-number) 293.32 555 T
|
|
6 9 Q
|
|
(] [-s) 342.56 555 T
|
|
2 10 Q
|
|
(slave-count) 374.92 555 T
|
|
6 9 Q
|
|
(]) 421.18 555 T
|
|
0 10 Q
|
|
(The) 216 531.33 T
|
|
2 F
|
|
(cpu-number) 235.23 531.33 T
|
|
0 F
|
|
( speci\336es which pr) 284.47 531.33 T
|
|
(ocessor to use for the one FRS this) 366.51 531.33 T
|
|
(pr) 216 519.33 T
|
|
(ogram cr) 225.77 519.33 T
|
|
(eates. The default is pr) 265.26 519.33 T
|
|
(ocessor 1. The) 364.89 519.33 T
|
|
2 F
|
|
(slave-count) 429.17 519.33 T
|
|
0 F
|
|
( tells the master) 475.44 519.33 T
|
|
(how many subor) 216 507.33 T
|
|
(dinate pr) 290.82 507.33 T
|
|
(ograms will be enqueued to the FRS. The default) 330.97 507.33 T
|
|
(is 2 pr) 216 495.33 T
|
|
(ograms.) 242.91 495.33 T
|
|
(The pr) 216 471.33 T
|
|
(oblems that need to be solved in this example ar) 245 471.33 T
|
|
(e as follows:) 457.42 471.33 T
|
|
4 9 Q
|
|
(\245) 216 453.33 T
|
|
0 10 Q
|
|
(The frs-master pr) 234 453.33 T
|
|
(ogram must enqueue the subor) 310.4 453.33 T
|
|
(dinate pr) 448.23 453.33 T
|
|
(ocesses but,) 488.38 453.33 T
|
|
(since they ar) 234 441.33 T
|
|
(e started as separate pr) 289.37 441.33 T
|
|
(ograms, the master has to be) 390.77 441.33 T
|
|
(informed of their pr) 234 429.33 T
|
|
(ocess IDs after they start.) 321.95 429.33 T
|
|
4 9 Q
|
|
(\245) 216 411.33 T
|
|
0 10 Q
|
|
(The subor) 234 411.33 T
|
|
(dinates need to specify upon which minor frames they) 278.25 411.33 T
|
|
(should be enqueued, and with what discipline.) 234 399.33 T
|
|
4 9 Q
|
|
(\245) 216 381.33 T
|
|
0 10 Q
|
|
(The master needs to enqueue the subor) 234 381.33 T
|
|
(dinates in the pr) 406.93 381.33 T
|
|
(oper or) 478.9 381.33 T
|
|
(der on) 510.83 381.33 T
|
|
(their minor frames, so they will be dispatched in the pr) 234 369.33 T
|
|
(oper sequence.) 476.8 369.33 T
|
|
(Ther) 234 357.33 T
|
|
(efor) 254.5 357.33 T
|
|
(e the master has to distinguish the subor) 271.84 357.33 T
|
|
(dinates in some way) 450.46 357.33 T
|
|
(.) 539.88 357.33 T
|
|
4 9 Q
|
|
(\245) 216 339.33 T
|
|
0 10 Q
|
|
(The subor) 234 339.33 T
|
|
(dinate pr) 278.25 339.33 T
|
|
(ograms must join the FRS, so they need the handle) 318.39 339.33 T
|
|
(of the FRS to use as an ar) 234 327.33 T
|
|
(gument to) 344.2 327.33 T
|
|
5 F
|
|
(frs_join\050\051) 392.18 327.33 T
|
|
0 F
|
|
(. However) 434.37 327.33 T
|
|
(, this) 479.9 327.33 T
|
|
(information is in the master) 234 315.33 T
|
|
(\325s addr) 357.24 315.33 T
|
|
(ess space.) 387.74 315.33 T
|
|
4 9 Q
|
|
(\245) 216 297.33 T
|
|
0 10 Q
|
|
(If an err) 234 297.33 T
|
|
(or occurs when enqueueing, the master needs to tell the) 269.01 297.33 T
|
|
(subor) 234 285.33 T
|
|
(dinate so it can terminate in an or) 259.02 285.33 T
|
|
(derly way) 406.85 285.33 T
|
|
(.) 450.43 285.33 T
|
|
(Ther) 216 261.33 T
|
|
(e ar) 236.5 261.33 T
|
|
(e many ways in which these objectives could be met. In this) 252.55 261.33 T
|
|
-0.57 (example, the master and subor) 216 249.33 P
|
|
-0.57 (dinates communicate using a simple pr) 349.55 249.33 P
|
|
-0.57 (otocol) 520.09 249.33 P
|
|
(of messages exchanged using msgget\0502\051 and msgput\0502\051. The sequence of) 216 237.33 T
|
|
(operations is as follows:) 216 225.33 T
|
|
(1.) 216 207.33 T
|
|
(The master pr) 234 207.33 T
|
|
(ogram cr) 295.56 207.33 T
|
|
(eates a Frame Scheduler) 335.04 207.33 T
|
|
(.) 441.05 207.33 T
|
|
(2.) 216 189.33 T
|
|
-0.31 (The master sends a message inviting the most important subor) 234 189.33 P
|
|
-0.31 (dinate to) 508.04 189.33 P
|
|
(r) 234 177.33 T
|
|
(eply) 237.77 177.33 T
|
|
(. \050All the message queue handling is in module ipc.c.\051) 255.92 177.33 T
|
|
(3.) 216 159.33 T
|
|
(The subor) 234 159.33 T
|
|
(dinate compiled fr) 278.25 159.33 T
|
|
(om the \336le pr) 359.65 159.33 T
|
|
(ocessA.c r) 418.81 159.33 T
|
|
(eplies to this) 462.94 159.33 T
|
|
(message, sending its pr) 234 147.33 T
|
|
(ocess ID and r) 336.83 147.33 T
|
|
(equesting the FRS handle.) 399.28 147.33 T
|
|
26 144 27 591 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "40" 41
|
|
%%Page: "41" 41
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(Examples) 527.81 679.44 T
|
|
1 F
|
|
(41) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(4.) 234 632.33 T
|
|
(The subor) 252 632.33 T
|
|
(dinate pr) 296.25 632.33 T
|
|
(ocessA sends a series of messages, one for each) 336.39 632.33 T
|
|
(minor queue on which it should enqueue. The master enqueues it as) 252 620.33 T
|
|
(r) 252 608.33 T
|
|
(equested.) 255.77 608.33 T
|
|
(5.) 234 590.33 T
|
|
(The subor) 252 590.33 T
|
|
(dinate pr) 296.25 590.33 T
|
|
(ocessA sends a \322r) 336.39 590.33 T
|
|
(eady\323 message.) 413.77 590.33 T
|
|
(6.) 234 572.33 T
|
|
-0.41 (The master sends a message inviting the next most important pr) 252 572.33 P
|
|
-0.41 (ocess to) 530.96 572.33 P
|
|
(r) 252 560.33 T
|
|
(eply) 255.77 560.33 T
|
|
(.) 273.92 560.33 T
|
|
(7.) 234 542.33 T
|
|
(The pr) 252 542.33 T
|
|
(ogram compiled fr) 281 542.33 T
|
|
(om pr) 363.32 542.33 T
|
|
(ocessB.c will r) 389.87 542.33 T
|
|
(eply to this r) 451.9 542.33 T
|
|
(equest, and) 507.36 542.33 T
|
|
(the sequence 3-6 is r) 252 530.33 T
|
|
(epeated for as many slaves as the) 340.57 530.33 T
|
|
2 F
|
|
(slave-count) 489.87 530.33 T
|
|
0 F
|
|
(parameter to the master pr) 252 518.33 T
|
|
(ogram. \050Only two slaves ar) 369.95 518.33 T
|
|
(e pr) 489.33 518.33 T
|
|
(ovided.) 506.39 518.33 T
|
|
(However) 252 506.33 T
|
|
(, you can easily cr) 292.54 506.33 T
|
|
(eate mor) 370.92 506.33 T
|
|
(e using pr) 409.3 506.33 T
|
|
(ocessB.c as a pattern.\051) 453.41 506.33 T
|
|
(8.) 234 488.33 T
|
|
(The master issues) 252 488.33 T
|
|
5 F
|
|
(frs_start\050\051) 332.72 488.33 T
|
|
0 F
|
|
(, and waits for the termination signal.) 376.56 488.33 T
|
|
(9.) 234 470.33 T
|
|
(The subor) 252 470.33 T
|
|
(dinates independently issue) 296.25 470.33 T
|
|
5 F
|
|
(frs_join\050\051) 422.72 470.33 T
|
|
0 F
|
|
( and the r) 464.9 470.33 T
|
|
(eal-time) 506.95 470.33 T
|
|
(dispatching begins.) 252 458.33 T
|
|
1 11.5 Q
|
|
(Example of Multiple Synchronized Schedulers) 234 421.33 T
|
|
0 10 Q
|
|
(The example) 234 396.83 T
|
|
2 F
|
|
(multi) 293.2 396.83 T
|
|
0 F
|
|
( demonstrates the cr) 315.42 396.83 T
|
|
(eation of thr) 404.7 396.83 T
|
|
(ee synchr) 458.55 396.83 T
|
|
(onized FRSs.) 500.25 396.83 T
|
|
(The thr) 234 384.83 T
|
|
(ee FRSs use the SYNC timer to establish a minor frame interval of) 266.07 384.83 T
|
|
(50) 234 372.83 T
|
|
(ms. All thr) 246.49 372.83 T
|
|
(ee have 20 minor frames per major frame, for a major frame) 293.49 372.83 T
|
|
(rate of 1 Hz.) 234 360.83 T
|
|
(The following pr) 234 336.83 T
|
|
(ocesses ar) 308.18 336.83 T
|
|
(e scheduled in this example:) 351.62 336.83 T
|
|
4 9 Q
|
|
(\245) 234 318.83 T
|
|
0 10 Q
|
|
(Pr) 252 318.83 T
|
|
(ocesses A and D r) 261.8 318.83 T
|
|
(equir) 340.18 318.83 T
|
|
(e a fr) 363.27 318.83 T
|
|
(equency of 20 Hz) 385.15 318.83 T
|
|
4 9 Q
|
|
(\245) 234 300.83 T
|
|
0 10 Q
|
|
(Pr) 252 300.83 T
|
|
(ocess B r) 261.8 300.83 T
|
|
(equir) 299.83 300.83 T
|
|
(es a fr) 322.92 300.83 T
|
|
(equency of 10 Hz and can consume up to 100 ms) 349.04 300.83 T
|
|
(of execution time each time) 252 288.83 T
|
|
4 9 Q
|
|
(\245) 234 270.83 T
|
|
0 10 Q
|
|
-0.35 (Pr) 252 270.83 P
|
|
-0.35 (ocess C r) 261.8 270.83 P
|
|
-0.35 (equir) 300.1 270.83 P
|
|
-0.35 (es a fr) 323.19 270.83 P
|
|
-0.35 (equence of 5 Hz and can consume up to 200 ms of) 348.6 270.83 P
|
|
(execution time each time) 252 258.83 T
|
|
4 9 Q
|
|
(\245) 234 240.83 T
|
|
0 10 Q
|
|
-0.34 (Pr) 252 240.83 P
|
|
-0.34 (ocess E r) 261.8 240.83 P
|
|
-0.34 (equir) 299.15 240.83 P
|
|
-0.34 (es a fr) 322.24 240.83 P
|
|
-0.34 (equency of 4 Hz and can consume up to 250 ms of) 347.67 240.83 P
|
|
(execution time each time) 252 228.83 T
|
|
4 9 Q
|
|
(\245) 234 210.83 T
|
|
0 10 Q
|
|
-0.31 (Pr) 252 210.83 P
|
|
-0.31 (ocess F r) 261.8 210.83 P
|
|
-0.31 (equir) 298.67 210.83 P
|
|
-0.31 (es a fr) 321.76 210.83 P
|
|
-0.31 (equency of 2 Hz and can consume up to 500 ms of) 347.26 210.83 P
|
|
(execution time each time) 252 198.83 T
|
|
4 9 Q
|
|
(\245) 234 180.83 T
|
|
0 10 Q
|
|
(Pr) 252 180.83 T
|
|
(ocesses K1, K2 and K3 ar) 261.8 180.83 T
|
|
(e backgr) 371.42 180.83 T
|
|
(ound pr) 408.55 180.83 T
|
|
(ocesses that should r) 444.23 180.83 T
|
|
(un as) 535.66 180.83 T
|
|
(often as possible, when time is available.) 252 168.83 T
|
|
44 455 45 639 R
|
|
V
|
|
FMENDPAGE
|
|
%%EndPage: "41" 42
|
|
%%Page: "42" 42
|
|
612 792 0 FMBEGINPAGE
|
|
1 9 Q
|
|
0 X
|
|
0 K
|
|
(42) 45 109.2 T
|
|
0 F
|
|
(:) 45 679.44 T
|
|
45 675 549 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
0 10 Q
|
|
(The pr) 216 632.33 T
|
|
(ocesses ar) 245 632.33 T
|
|
(e assigned to pr) 288.45 632.33 T
|
|
(ocessors as follows:) 357.87 632.33 T
|
|
4 9 Q
|
|
(\245) 216 614.33 T
|
|
0 10 Q
|
|
(FRS 1 r) 234 614.33 T
|
|
(uns pr) 265.34 614.33 T
|
|
(ocesses A \05020 Hz\051 and K1 \050backgr) 293.7 614.33 T
|
|
(ound\051) 440.96 614.33 T
|
|
4 9 Q
|
|
(\245) 216 596.33 T
|
|
0 10 Q
|
|
(FRS 2 r) 234 596.33 T
|
|
(uns pr) 265.34 596.33 T
|
|
(ocesses B \05010 Hz\051, C \0505 Hz\051 and K2 \050backgr) 293.7 596.33 T
|
|
(ound\051) 481.33 596.33 T
|
|
4 9 Q
|
|
(\245) 216 578.33 T
|
|
0 10 Q
|
|
(FRS 3 r) 234 578.33 T
|
|
(uns pr) 265.34 578.33 T
|
|
(ocesses D \05020Hz\051, E \0504 Hz\051 and F \0502 Hz\051 and K3.) 293.7 578.33 T
|
|
-0.62 (In or) 216 554.33 P
|
|
-0.62 (der to simplify the coding of the example, all r) 236.29 554.33 P
|
|
-0.62 (eal-time pr) 434.8 554.33 P
|
|
-0.62 (ocesses use the) 482.26 554.33 P
|
|
(same function body) 216 542.33 T
|
|
(,) 302.43 542.33 T
|
|
5 F
|
|
(process_skeleton\050\051) 307.43 542.33 T
|
|
0 F
|
|
(, which is parameterized with the) 391.8 542.33 T
|
|
(pr) 216 530.33 T
|
|
(ocess name, the number of the FRS it is to join, and the \322r) 225.77 530.33 T
|
|
(eal-time\323) 477.86 530.33 T
|
|
-0.61 (function it is to execute. In the sample code, all r) 216 518.33 P
|
|
-0.61 (eal-time functions ar) 422.37 518.33 P
|
|
-0.61 (e empty) 512 518.33 P
|
|
(function bodies.) 216 506.33 T
|
|
1 11.5 Q
|
|
(Example of Device Driver) 216 469.33 T
|
|
0 10 Q
|
|
(The code in dir) 216 444.83 T
|
|
(ectory) 282.52 444.83 T
|
|
2 F
|
|
(driver) 312.47 444.83 T
|
|
0 F
|
|
( contains a skeletal test-bed for a kernel-level) 336.9 444.83 T
|
|
(device driver that interacts with the Frame Scheduler) 216 432.83 T
|
|
(. Most of the driver) 450.11 432.83 T
|
|
-0.71 (functions consist of minimal or empty stubs. However) 216 420.83 P
|
|
-0.71 (, the) 450.27 420.83 P
|
|
5 F
|
|
-0.71 (ioctl\050\051) 470.2 420.83 P
|
|
0 F
|
|
-0.71 ( entry point) 496.83 420.83 P
|
|
-0.66 (to the driver \050see ioctl\0502\051\051 simulates a har) 216 408.83 P
|
|
-0.66 (dwar) 391.68 408.83 P
|
|
-0.66 (e interr) 414.89 408.83 P
|
|
-0.66 (upt and calls the Frame) 446.11 408.83 P
|
|
-0.57 (Scheduler entry point,) 216 396.83 P
|
|
5 F
|
|
-0.57 (frs_handle_driverintr\050\051) 315.16 396.83 P
|
|
0 F
|
|
-0.57 ( \050see \322Generating Interr) 420.08 396.83 P
|
|
-0.57 (upts\323) 522.55 396.83 P
|
|
(on page) 216 384.83 T
|
|
(36\051. This allows you to test the driver) 253.62 384.83 T
|
|
(. Calling its) 416.63 384.83 T
|
|
5 F
|
|
(ioctl\050\051) 469.21 384.83 T
|
|
0 F
|
|
( entry is) 495.85 384.83 T
|
|
(equivalent to using) 216 372.83 T
|
|
5 F
|
|
(frs_usrintr\050\051) 303.49 372.83 T
|
|
0 F
|
|
( \050see \322Delivering T) 358.44 372.83 T
|
|
(ime-Base Interr) 440.66 372.83 T
|
|
(upts to a) 508.18 372.83 T
|
|
(Frame Scheduler\323 on page) 216 360.83 T
|
|
(28\051.) 335.79 360.83 T
|
|
1 11.5 Q
|
|
(Example of a 60 Hz Frame Rate) 216 323.83 T
|
|
0 10 Q
|
|
(The example in dir) 216 299.33 T
|
|
(ectory) 299.2 299.33 T
|
|
2 F
|
|
(sixtyhz) 329.15 299.33 T
|
|
0 F
|
|
( demonstrates the ability to schedule a) 358.57 299.33 T
|
|
(pr) 216 287.33 T
|
|
(ocess at a frame rate of 60 Hz, a common tar) 225.77 287.33 T
|
|
(get rate in visual simulators.) 420.48 287.33 T
|
|
(A single FRS is cr) 216 275.33 T
|
|
(eated. It uses the high-pr) 292.82 275.33 T
|
|
(ecision timer with an interval of) 402.23 275.33 T
|
|
(16,666 micr) 216 263.33 T
|
|
(oseconds \05016.66 ms, appr) 265.92 263.33 T
|
|
(oximately 60 Hz\051. Ther) 376.11 263.33 T
|
|
(e is one minor) 477.1 263.33 T
|
|
(frame per major frame.) 216 251.33 T
|
|
(One r) 216 227.33 T
|
|
(eal-time pr) 240.73 227.33 T
|
|
(ocess is enqueued to the FRS. By changing the compiler) 288.8 227.33 T
|
|
-0.04 (constant LOGLOOPS you can change the amount of work it attempts to do) 216 215.33 P
|
|
(in each frame.) 216 203.33 T
|
|
FMENDPAGE
|
|
%%EndPage: "42" 43
|
|
%%Page: "43" 43
|
|
612 792 0 FMBEGINPAGE
|
|
0 9 Q
|
|
0 X
|
|
0 K
|
|
(Examples) 527.81 679.44 T
|
|
1 F
|
|
(43) 557.01 109.2 T
|
|
63 675 567 675 2 L
|
|
0.3 H
|
|
2 Z
|
|
N
|
|
1 11.5 Q
|
|
(Example of Memory and Cache Management) 234 631.33 T
|
|
0 10 Q
|
|
(The example in dir) 234 606.83 T
|
|
(ectory) 317.2 606.83 T
|
|
2 F
|
|
(memlock) 347.15 606.83 T
|
|
0 F
|
|
( is almost identical to that in dir) 382.31 606.83 T
|
|
(ectory) 522.31 606.83 T
|
|
2 F
|
|
(sixtyhz) 234 594.83 T
|
|
0 F
|
|
(. \050Use dif) 263.42 594.83 T
|
|
(f\0501\051 to display the alter) 303.21 594.83 T
|
|
(ed code.\051) 403.21 594.83 T
|
|
(The functional dif) 234 570.83 T
|
|
(fer) 312.85 570.83 T
|
|
(ence between the two examples is that the r) 324.73 570.83 T
|
|
(eal-time) 516.58 570.83 T
|
|
-0.46 (pr) 234 558.83 P
|
|
-0.46 (ocess in memlock.c locks its own virtual addr) 243.77 558.83 P
|
|
-0.46 (ess space so as to avoid page) 440.92 558.83 P
|
|
(faults. Also, it executes one major frame\325s worth of) 234 546.83 T
|
|
5 F
|
|
(frs_yield\050\051) 460.4 546.83 T
|
|
0 F
|
|
( calls) 507.58 546.83 T
|
|
(immediately after r) 234 534.83 T
|
|
(eturn fr) 318.95 534.83 T
|
|
(om) 352.39 534.83 T
|
|
5 F
|
|
(frs_join\050\051) 369.17 534.83 T
|
|
0 F
|
|
(. The purpose of this is to \322warm) 411.35 534.83 T
|
|
-0.47 (up\323 the pr) 234 522.83 P
|
|
-0.47 (ocessor cache with copies of the pr) 278.73 522.83 P
|
|
-0.47 (ocess code and data. \050An actual) 428.54 522.83 P
|
|
-0.03 (application pr) 234 510.83 P
|
|
-0.03 (ocess could access its major data str) 295.94 510.83 P
|
|
-0.03 (uctur) 452.66 510.83 P
|
|
-0.03 (es prior to this yield) 476.17 510.83 P
|
|
(in or) 234 498.83 T
|
|
(der to speed up the caching pr) 254.45 498.83 T
|
|
(ocess.\051) 388.57 498.83 T
|
|
FMENDPAGE
|
|
%%EndPage: "43" 44
|
|
%%Trailer
|
|
%%BoundingBox: 0 0 612 792
|
|
%%Pages: 43 1
|
|
%%DocumentFonts: Palatino-Roman
|
|
%%+ Helvetica-Bold
|
|
%%+ Palatino-Italic
|
|
%%+ Times-Roman
|
|
%%+ Helvetica
|
|
%%+ Palatino-Bold
|
|
%%+ Courier
|