AaT   @P0  PP p`P PHH $ @d HHHHff@  d Footnote TableFootnote**.\t.\t/ - :;,.!?cZcZTOCHeading1Heading2   FEquationVariables@=?`???@@====== <$lastpagenum><$monthname> <$daynum>, <$year>"<$monthnum>/<$daynum>/<$shortyear>J<$hour>:<$minute00> <$ampm> on <$dayname>, <$monthname> <$daynum>, <$year>"<$monthnum>/<$daynum>/<$shortyear><$monthname> <$daynum>, <$year>"<$monthnum>/<$daynum>/<$shortyear> <$fullfilename> <$filename> <$paratext[Title]> <$paratext[Heading1]> <$curpagenum> <$marker1> <$marker2> (Continued)+ (Sheet <$tblsheetnum> of <$tblsheetcount>)Heading & Page <$paratext> on page<$pagenum>Pagepage<$pagenum>See Heading & Page%See <$paratext> on page<$pagenum>. Table All7Table<$paranumonly>, <$paratext>, on page<$pagenum>Table Number & Page'Table<$paranumonly> on page<$pagenum>Heading <$paratext>?HTML Headings++A88::335577AHHA====>>>>> > > >>>>>>>>>>!>#>%>'>)>+>->/>1>3>5>7>9>;>=>?>A>B>C>E>G>I>K>M>O>Q>S>U>W>X>Y>[>]>_>a>c>e>g>i>k>m>o>q>s>u>w>y>{>}>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????? ? ? ??????????!?#?%?'?)?+?-?/?1?3?5?7?9?;?=???A?C?E?G?I?K?M?O?Q?S?U?W?Y?[?]?_?b?d?f?h?j?l?n?p?r?t?v?x?z?|?~???????????????????????????????????????????????????@@!@#@%@'@)@+@-@/@1@3@5@7@9@;@=@?@A@B ==???;#???;/;2=??????@@@@@ @ @@@@@D+@H-@I@K-@L/@M/@N/@O/@P/@Q/@R/@S/@T/@U/@V/@W/@X/@Y/@Z/@\-@]0@^0@_0@`0@a0dq5+d=d=; HmR=HmRHRHRFootnote Hr@=Hr@HzHz Single LineH靕= Footnote =  HD= HDHH Double LineH=  Double Line= = H֝=  Single Line= d5p77HZ֝=; TableFootnoted=d?靕l d=d1QRUX[^adgjmpsvy| %).1W,܁܁Bm }蝝d =蝝d WaHTML Mapping Table }H蝝d =H蝝d Wa }H蝝d =H蝝d Wa }H蝝d =H蝝d Wa }H蝝d >H蝝d Wa }H>H! FrameMaker PA Source Item }H >H Wa HTML Item }H >H Wa }H>H W aInclude Auto# } H>  H W a Comments }H> H W a }HH> HH W aElement }H>#H W a New Topic? }H>H Wa } H> H Wa }H > $H Wa P:Date Line }HH >#%HH WaP }H >$&H WaN }H >%'H WaN } H >&( H Wa }EH > ')EH Wa P:Reading }HEH >"(*HEH WaP }EH >$)+EH WaN }EH >&*,EH WaN } EH >(+- EH Wa }QH >*,.QH WaP:Title }HQH >,-/HQH WaH* }QH >..0QH WaN }QH >0/1QH WaN } QH >202 QH Wa }]H >413]H WaP:Body }H]H >624H]H W aP }]H >835]H W!aN }]H >:46]H W"aN } ]H ><57 ]H W#a }iH(>>68iH( W$a P:Numbered1 }HiH(>@79HiH((%aLI &a Parent = OL Q'a Depth = 0 }iH(>D8:iH( W(aN }iH(>F9;iH( W)aY } iH(>H:< iH( W*a }띝H >J;=띝H  W+a P:Heading1 }H띝H >L<>H띝H  W,aH* }띝H >N=?띝H  W-aN }띝H >P>@띝H  W.aN } 띝H >R?A 띝H  W/a }H(>T@BH(  W0a P:Numbered }HH(>VACHH(( 1aP 2a Parent = OL Q3a Depth = 0 }H(>ZBDH(  W4aN }H(>\CEH(  W5aY } H(>^DF H(  W6a }H >`EGH  W7a P:CellBody }HH >bFHHH  W8aP }H >dGIH  W9aN }H >fHJH  W:aN } H >hIK H  W;a }H >jJLH  W<aP:CellHeading }HH >lKMHH  W=aP }H >nLNH  W>aN }H >pMOH  W?aN } H >rNP H  W@a }H >tOQH  WAa P:Footnote }HH >vPRHH  WBaP }H >xQSH  WCaN }H >zRTH  WDaN } H >|SU H  WEa }ȝH(>~TVȝH( WFa P:Bulleted }HȝH(>UWHȝH((GaLI Ha Parent = UL QIa Depth = 0 }ȝH(>VXȝH( WJaN }ȝH(>WYȝH( WKaN } ȝH(>XZ ȝH( WLa }H >Y[H WMa P:Heading2 }HH >Z\HH WNaH* }H >[]H WOaN }H >\^H WPaN } H >]_ H WQa }H>^`HR! P:HeadingRuPAnIn }HH>_aHH WSaP }H>`bH WTaN }H>acH WUaN } H>bd H WVa }7H >ce7H WWa P:Indented }H7H >dfH7H WXaP }7H >eg7H WYaN }7H >fh7H WZaN } 7H >gi 7H W[a }CH>hjCH\! P:TableFootPAnote }HCH>ikHCH W]aP }CH>jlCH W^aN }CH>kmCH W_aN } CH>ln CH W`a }]H(>mo]H( Waa P:TableTitle }H]H(>npH]H((baLI ca Parent = OL Qda Depth = 0 }]H(>oq]H( WeaN }]H(>pr]H( WfaN } ]H(>qs ]H( Wga }֝H >rt֝H Wha P:BodySpaced }H֝H >suH֝H WiaP }֝H >tv֝H WjaN }֝H >uw֝H WkaN } ֝H >vx ֝H Wla }띝H >wy띝H WmaP:Date }H띝H >xzH띝H WnaP }띝H >y{띝H WoaN }띝H >z|띝H WpaN } 띝H >{} 띝H Wqa }H(>|~H(r! P:NumberedPASpaced }HH(>}HH((saP ta Parent = OL Qua Depth = 0 }H(>~H( WvaN }H(>H( WwaY } H(> H( Wxa }H >H WyaP:DateProject }HH >HH WzaP }H >H W{aN }H >H W|aN } H > H W}a }H >H W~a C:BoldItalic }HH > HH WaSTRONG }H > H WaN }H > H WaN } H > H Wa }H> H! C:EquationPA Variables }HH> HH WaEM }H> H WaN }H>H WaN } H> H Wa }H >H Wa C:Italic }HH >HH W aEM }H ?H W aN }H ?H W aN } H ? H W a }H ?H W aC:Bold }HH ?HH WaSTRONG }H ? H WaN }H ? H WaN } H ? H Wa }H?H! X:Heading & PAPage }HH?HH Wa See Also }H?H WaN }H?H WaN } H? H Wa })H ?!)H WaX:Page }H)H ? "H)H Wa See Also })H ?!#)H WaN })H ? "$)H WaN } )H ?"#% )H Wa }5H?$$&5H! X:See HeadPA ing & Page }H5H?&%'H5H Wa See Also }5H?(&(5H WaN }5H?*')5H WaN } 5H?,(* 5H W a }OH ?.)+OH W!a X:Table All }HOH ?0*,HOH W"a See Also }OH ?2+-OH W#aN }OH ?4,.OH W$aN } OH ?6-/ OH W%a }[H?8.0[H &! X:Table NumPA ber & Page }H[H?:/1H[H  W'a See Also }[H?<02[H  W(aN }[H?>13[H  W)aN } [H?@24 [H  W*a }uH?B35uH !W+a X:Heading }HuH?D46HuH!,! USE XREF PAFMT }uH?F57uH !W-aN }uH?H68uH !W.aN } uH?J79 uH !W/a }蝝H?L8:蝝H "W0a P:Header }H蝝H?N9;H蝝H"1!THROW PAAWAY }蝝H?P:<蝝H "W2aN }蝝H?R;=蝝H "W3aN } 蝝H?T<> 蝝H "W4a }H ?V=?H #W5a }HH ?X>@HH #W6a }H ?Z?AH #W7a }H ?\@BH #W8a } H ?^AC H #W9a }d ?aBFd $W:aHTML Options Table }Dd ?cDd $W;a }Dd ?eDd $W<a }D ?gCGD %W=a }DH ?iFHDH %W>a }H ?kGIH %W?a }םD ?mHJםD &W@a Image Format }DםH ?oIKDםH &WAaIMAGGIF }םH ?qJLםH &WBa }D ?sKMD 'WCaBanners }DH ?uLNDH 'WDaN }H ?wMOH 'WEa }ԝD?yNPԝD(F! Banner ReferPA ence Frame }DԝH?{OQDԝH (WGa }ԝH?}PԝH (WHa }D(?>SD((@)I! Copy Files  Imported by PA Rerefernce }DH(?>RTDH( @)WJa }H(?>SUH( @)WKa }DD ?>TVDD @*WLa }DDH ?>UWDDH @*WMa }DH ?>VXDH @*WNa }Vd ?>W[Vd @+WOaSystem Macros }?Vd ?>?Vd @+WPa }?Vd ?>?Vd @+WQa }f? ?>X\f? @,WRa Macro Name }?fH ?>[]?fH @,WSa Replace With }fH ?>\^fH @,WTa Comments }r? ?>]_r? @-WUa StartOfDoc }?rH ?>^`?rH @-WVa }rH ?>_arH @-WWa }~? ?>`b~? @.WXa EndOfDoc }?~H ?>ac?~H @.WYa }~H ?>bd~H @.WZa }??>ce?@/[! StartOfSubPADoc }?H?>df?H @/W\a }H?>egH @/W]a }??>fh?@0^! EndOfSubPADoc }?H?>gi?H @0W_a }H?>hjH @0W`a }??>ik?@1a! StartOfFirstPASubDoc }?H?>jl?H @1Wba }H?>kmH @1Wca }??>ln?@2d! EndOfFirstPASubDoc }?H?>mo?H @2Wea }H?>npH @2Wfa }??>oq?@3g! StartOfLastPASubDoc }?H?>pr?H @3Wha }H?>qsH @3Wia } ??>rt ?@4j! EndOfLastPASubDoc }? H?>su? H @4Wka } H?>tv H @4Wla }&? ?>uw&? @5Wma }?&H ?>vx?&H @5Wna }&H ?>wy&H @5Woa }8d ?>x|8d @6WpaCross-Reference Macros }?8d ?>?8d @6Wqa }?8d ?>?8d @6Wra }H? ?>y}H? @7Wsa Macro Name }?HH ?>|~?HH @7Wta Replace With }HH ?>}HH @7Wua Comments }T??>~T? @8Wva See Also }?TH?>?TH@8w! See Also: PA <$paratext> }TH?>TH @8Wxa }n? ?>n? @9Wya }?nH ?>?nH @9Wza }nH ?>nH @9W{a }d ?> d @:WaGeneral Macros }?d ?>?d @:Wa }?d ?>?d @:Wa }?d ?>?d @:Wa }? ?>"? @;Wa Macro Name d@ d@ d 靕l d@ do  W܁܁Bm }蝝d @ 蝝d  <W|aHeadings Table }H蝝d @  H蝝d  <W}a }H蝝d @" H蝝d  <W~a }H@$ H =!Paragraph ForPAmat }HH@& HH  =WaHeading Level }H@( H  =Wa Comments }H@* H >W aTitle }HH@, HH  >Wa }H@. H  >Wa }KH @0 KH  ?Wa Heading1 }HKH @2 HKH  ?Wa }KH @4 KH  ?Wa }WH @6 WH  @Wa Heading2 }HWH @8 HWH  @W a }WH @: WH  @W a }cH @< cH  AW a }HcH @> HcH  AW a }cH @@ cH  AW a d=8H}?H ?> #?H @;Wa Replace With }H ?>"$H @;WaHead }H ?>#%H @;Wa Comments }? ?>$&? @BWa }?H ?>%'?H @BW a }H ?>&(H @BW!a }H ?>')H @BW"a }d @>(.d @CW#aCharacter Macros HH;"HH❝+G܁e HH;$3HH**靕l}?d @>?d @CW$a }?d @>?d @CW%a }? @>)/? @DW&a Macro Name }?H @ >.0?H @DW'a Replace With }H @ >/1H @DW(a Comments }? @ >0<? @EW)a HUV ;.HUV ❝3G܁e HUV ;05+HUV 22靕l H$ ;1H$ 5G܁e H$ ;33H$ 44靕l HH;4HH!!7- `Monitors and Priority Waits 1,` Introduction 2܁ tThis is an example of a monitor using priority waits. It implements a simple alarm clock; that is, a process calls Ialarmclock . wakeme ( n ) , and suspends for  n  seconds. Note that we are assuming the hardware invokes the pro@8cedure  tick  to update the clock every second. 4n` Algorithm 5܁ā`'1 alarmclock : monitor ; 6偶`. 2 var  now :integer; 7`, 3  wakeup : condition; 8`T 4 procedure   entry   wakeme ( n : integer); 9` 5 begin :`E 6  alarmsetting  :=  now  +  n ; ;`H 7 while   now  <  alarmsetting   do <`H 8  wakeup . wait ( alarmsetting ); =`1 9  wakeup . signal ; >` 10 end ; ?`= 11 procedure   entry   tick ; @` 12 begin A`3 13  now  :=  now  + 1; B`2 14  wakeup . signal ; C` 15 end . EA` Comments F܁S ~lines 2-3Here,  now  is the current time (in seconds) and is updated once a second by the procedure  tick . _@NWhen a process suspends, it will do a wait on the condition  wakeup . G`Fline 6This computes the time at which the process is to be awakened. H`\lines 7-8The process now checks that it is to be awakened later, and then suspends itself. !I pline 9Once a process has been woken up, it  signal s the process that is to resume next. That process pchecks to see if it is time to wake up; if not, it suspends again (hence the  while  loop above, rather @^than an  if  statement). If it is to wake up, it  signal s the next process aJ gline 14This is done once a second (hence the addition of 1 to now). The processes to be woken up are kqueued in order of remaining time to wait with the next one to wake up first. So, when  tick  sigknals, the next one to wake up determines if it is in fact time to wake up. If not, it suspends itself; if @so, it proceeds. HH;6HH66 靕lH$ =!:H$ 99靕l H$ =!H$ 8W܁܁l@April 19, 1999ECS 150 Spring 1999Page 1 HUV =!8HHUV GG靕l EGxR=EGxREPwEPw TableFootnote}?H @>1=?H @EW*a }H @><H @EW+a d@??d@>d@@ 靕l d@>dR=?RUX[^adgjmpsvy| %).1 HUV =!HUV ❝:W܁܁l?Last modified at 11:04 pm on Monday, April 19, 1999 HH=!:HHII 靕l HH=!HH❝HW܁܁e dLeftd!Rightd ReferenceddHTMLd>HTMLd HeadingsĿ@@ GMapping Table Title. Ŀ@@ GBody. f@ GBody. f@ G BodySpaced. Ŀ@@ GFooter. f@T G TableTitleT:Table : . f@ G Bulleted\t. f@ G...Date. mf@ Gl. DateProject. Ŀ@@ GHeader Double Line. f@T GHeading1Body. f@ G Numbered.\t. f@E G Numbered1.\tNumbered. f@ G NumberedSpaced.\t. f@ G.Reading. f@ GBody. Ŀ@@ GHeader Double Line. f@ G CellFooting. f@ G CellHeading. f@ G CellBody. Ŀ@@ GMapping Table Cell.  f@PGTitleBody. Ŀ@@Mapping Table Cell. f@$G.Line Single Line. Ŀ@@ Mapping Table Cell. Ŀ@@ GMapping Table Cell. f@ GCellBody. f@ G CellHeading. f@ G Footnote. f@T GHeading2Body. f@T G HeadingRunInBody. f@ G Indented. f@ G TableFootnote. f@T G TableTitleT:Table : .  f@PGTitleBody.  f@T GHeading1Body. f@ G .$.H.l..... .D.h.Code. Hf@ GH. LineComment. f@ G .$.H.l..... .D.h.Code. Hf@ GH. LineComment.  G GG蜜Emphasis G蜜  G GG蜜EquationVariables  蜜 BoldItalic ۸GItalic G      G G GBold       G G  G GZZThinMediumDoubleThick@ Very Thin HHHHHFormat A HHHHHFormat BH Mapping TableH Mapping Tableh*|#HHHHHf$*DHH+5?HH&69?HH :B?HHH CE?HH*6 ? @ h( A B C D E h  F G H I J h  K L M N O 𝝡h  P Q R S T ȝh( UVWXYh Z[\]^h_`abc7h defghChijklm]h(nopqr֝h stuvw띝h xyz{|h(}~h h    𝝡h  h h h)h  !"#$5h%&'()Oh  *+,-.[h!/ 0 1 2 3 uh "4!5!6!7!8!蝝h!#9":";"<"="h ">#?#@#A#B# %C$D$E$ $&F%G%H%ם %'I&J&K& &(L'M'N'ԝ')O(P(Q(((*@R)S)T)D )@U*V*W*V ,@X+Y+Z+f +-@[,\,],r ,.@^-_-`-~ -/@a.b.c..0@d/e/f//1@g0h0i002@j1k1l113@m2n2o224@p3q3r3 35@s4t4u4& 4@v5w5x58 7@y6z6{6H 68@|7}7~7T79@888n 8@999 ;@:::: :B@ ;";#;$;蝝 =  <<<<> ====? >>>K >@ ???W ?A @@@c @ AAA ;@%B&B'B(B D@)C,C-C CE@.D/D0D D@1ECWX7vgoGMsL*{~DA52jMv^GBr#g1x&ƃ! Y^m:'ھ>KwÏ1IDEȥf\\Kݢ0