$ od -c -N 50000 [Pixel]<DragonWare0.1>MesaRuntime>SimProcessImpl.interpress!1 0000000 I n t e r p r e s s / X e r o x 0000020 / 3 . 0 240 f 240 j 240 k 240 j 017 241 017 0000040 245 223 304 006 \0 \0 035 001 B Q 240 244 240 250 305 005 0000060 X e r o x 305 \n P r e s s F o n t 0000100 s 305 \n L a u r e l - M R R 017 243 241 0000120 033 240 223 304 004 003 # \0 P 240 244 240 224 017 240 225 0000140 017 240 240 227 304 004 a 235 \0 R 304 004 034 ; \0 310 0000160 212 301 001 1 226 304 004 034 ; \0 P 304 006 \0 203 033 0000200 \0 \0 1 212 305 005 X e r o x 305 \n P r e 0000220 s s F o n t s 305 016 T i m e s R o 0000240 m a n - B R R 017 243 241 033 240 223 304 004 \t 0000260 i \0 310 240 244 240 224 017 241 225 017 241 240 227 301 023 0000300 S i m P r o c e s s I m p l . m 0000320 e s a 226 304 004 A 337 \0 240 304 006 001 207 255 \0 0000340 \0 230 212 305 005 X e r o x 305 \n P r e s 0000360 s F o n t s 305 016 T i m e s R o m 0000400 a n - M I R 017 243 241 033 240 223 304 004 003 # 0000420 \0 P 240 244 240 224 017 242 225 017 242 240 227 301 \n C 0000440 o p y r i g h t 226 305 005 X e r o 0000460 x 305 \n P r e s s F o n t s 305 \b M 0000500 a t h - M R R 017 243 241 033 240 223 304 004 003 0000520 # \0 P 240 244 240 224 017 243 225 017 243 240 227 301 001 0000540 c 226 017 242 240 227 301 = 1 9 8 4 , 1 0000560 9 8 5 , 1 9 8 6 b y X e r 0000600 o x C o r p o r a t i o n . 0000620 A l l r i g h t s r e s e 0000640 r v e d . 226 304 004 A 337 \0 240 304 006 \0 272 0000660 361 \0 \0 J 212 017 242 240 227 301 2 R u s s 0000700 A t k i n s o n ( R R A ) O 0000720 c t o b e r 9 , 1 9 8 6 4 0000740 : 5 7 : 1 2 a m P D T 226 304 004 0000760 A 337 \0 240 304 006 \0 212 243 \0 \0 8 212 017 242 240 0001000 227 301 * C a r l H a u s e r , 0001020 A p r i l 1 , 1 9 8 7 1 0 0001040 : 2 6 : 2 1 a m P S T 226 304 004 0001060 A 337 \0 240 304 006 \0 256 233 \0 \0 H 212 017 242 240 0001100 227 301 % D e m e r s , A p r i l 0001120 2 2 , 1 9 8 7 1 : 1 0 : 5 0001140 5 p m P D T 226 304 004 034 ; \0 P 304 0001160 004 8 373 \0 031 212 017 241 240 227 301 ( A b o u 0001200 t t h e D o r a d o S i m 0001220 u l a t i o n E n v i r o n m 0001240 e n t : 226 304 004 \t i \0 024 304 004 P 270 \0 0001260 % 212 305 005 X e r o x 305 \n P r e s s 0001300 F o n t s 305 016 T i m e s R o m a 0001320 n - M R R 017 243 241 033 240 223 304 004 003 # \0 0001340 P 240 244 240 224 017 244 225 017 244 240 227 301 002 1 . 0001360 226 304 004 021 223 \0 307 214 301 036 S e e t h 0001400 e c o m m e n t s i n S i 0001420 m P r o c e s s 226 304 004 \t i \0 024 304 0001440 006 001 k q \0 \0 255 212 017 244 240 227 301 002 2 . 0001460 226 304 004 021 223 \0 307 214 304 004 016 244 005 w 017 262 0001500 223 301 H T h e m o s t s i g n 0001520 i f i c a n t d i f f e r e n 0001540 c e s b e t w e e n t h e 0001560 S I M a n d R D I v e r s 0001600 i o n s a r e i n 226 017 241 017 262 0001620 223 304 004 \t i \0 020 304 006 \0 374 235 \0 \0 { 212 0001640 017 244 240 227 301 6 i n i t i a l i z a 0001660 t i o n , D i r e c t e d Y i 0001700 e l d a n d R e s c h e d u 0001720 l e I n t e r r u p t . 226 304 004 \t 0001740 i \0 024 304 004 - a \0 027 212 017 244 240 227 301 002 0001760 3 . 226 304 004 021 223 \0 307 214 304 004 003 B 002 { 0002000 017 262 223 301 P T h e r e a r e ( 0002020 i n t e n d e d t o b e ) 0002040 l o t s o f c o m m e n t s 0002060 a b o u t h o w t h i n g 0002100 s w i l l c h a n g e b e 0002120 t w e e n 226 017 241 017 262 223 304 004 \t i \0 0002140 020 304 006 \0 266 367 \0 \0 _ 212 017 244 240 227 301 5 0002160 S I M a n d R D I . S e 0002200 a r c h f o r S I M a n d 0002220 R D I i n t h e c o m m 0002240 e n t s . 226 304 004 034 ; \0 P 304 004 A 335 0002260 \0 % 212 017 241 240 227 301 020 A b o u t p 0002300 r o c e s s e s : 226 304 004 \t i \0 024 0002320 304 004 \ 211 \0 7 212 017 244 240 227 301 002 1 . 226 0002340 304 004 021 223 \0 307 214 304 004 \b 267 006 374 017 262 223 0002360 301 T A l l p r o c e s s e s 0002400 e x e c u t e i n a s i n 0002420 g l e a d d r e s s s p a c 0002440 e , a l t h o u g h w e w 0002460 i l l w a n t t o e x t e 0002500 n d o u r 226 017 241 017 262 223 304 004 \t i 0002520 \0 020 304 006 \0 326 = \0 \0 203 212 017 244 240 227 304 0002540 004 \a 244 004 K 017 262 223 301 M m o d e l 0002560 t o m u l t i p l e a d d r 0002600 e s s s p a c e s s o m e 0002620 d a y ( D r a g o n h a s 0002640 a d d r e s s s p a c e s w 0002660 i t c h i n g 226 017 241 017 262 223 304 004 \t 0002700 i \0 020 304 004 ! [ \0 025 212 017 244 240 227 301 \t 0002720 s u p p o r t ) . 226 304 004 \t i \0 024 0002740 304 006 \0 201 247 \0 \0 V 212 017 244 240 227 301 002 2 0002760 . 226 304 004 021 223 \0 307 214 304 004 \n ; \a 364 017 0003000 262 223 301 V P r o c e s s e s a r 0003020 e ( r e l a t i v e l y ) l 0003040 i g h t w e i g h t . M o s 0003060 t o f t h e p r o c e s s 0003100 s w i t c h t i m e i s 0003120 d e v o t e d t o 226 017 241 017 262 223 0003140 304 004 \t i \0 020 304 006 \0 215 254 \0 \0 a 212 017 0003160 244 240 227 304 004 005 _ 002 ^ 017 262 223 301 5 s a 0003200 v i n g a n d r e s t o r i 0003220 n g r e g i s t e r s . W 0003240 e e s t i m a t e 1 0 0 - 3 0003260 0 0 226 305 005 X e r o x 305 \n P r e 0003300 s s F o n t s 305 \t H i p p o - M 0003320 R R 017 243 241 033 240 223 304 004 003 # \0 P 240 244 0003340 240 224 017 245 225 017 245 240 227 301 001 m 226 017 244 240 0003360 227 301 030 s e c s p e r p r o c 0003400 e s s s w i t c h , 226 017 241 017 262 0003420 223 304 004 \t i \0 020 304 004 & * \0 033 212 017 244 0003440 240 227 301 ! d e p e n d i n g o n 0003460 t h e a m o u n t o f s 0003500 t a t e . 226 304 004 \t i \0 024 304 004 S 366 0003520 \0 ? 212 017 244 240 227 301 002 3 . 226 304 004 021 223 0003540 \0 307 214 304 004 \b I 006 j 017 262 223 301 T P r 0003560 o c e s s e s a r e d y n a 0003600 m i c a l l y a s s i g n e d 0003620 t o p r o c e s s o r s b 0003640 y t h e s c h e d u l e r , 0003660 s o t h a t p r o c e s s 0003700 e s 226 017 241 017 262 223 304 004 \t i \0 020 304 004 0003720 E m \0 6 212 017 244 240 227 304 004 \v \b \b 251 017 0003740 262 223 301 T c a n b e c o n s i 0003760 d e r e d v i r t u a l p r 0004000 o c e s s o r s . W e t h 0004020 i n k o f t h e s c h e d 0004040 u l e r a s e x e c u t i n 0004060 g i n t h e 226 017 241 017 262 223 304 004 0004100 \t i \0 020 304 004 W 361 \0 G 212 017 244 240 227 301 0004120 031 c r a c k s b e t w e e n 0004140 p r o c e s s e s . 226 304 004 \t i \0 0004160 024 304 006 001 332 267 \0 001 232 212 017 244 240 227 301 002 0004200 4 . 226 304 004 021 223 \0 307 214 304 004 004 006 001 343 0004220 017 262 223 301 N T h e s c h e d u l 0004240 e r a t t e m p t s t o r 0004260 u n h i g h e r p r i o r i 0004300 t y p r o c e s s e s i n 0004320 p r e f e r e n c e t o l o 0004340 w e r 226 017 241 017 262 223 304 004 \t i \0 020 304 0004360 004 L 245 \0 E 212 017 244 240 227 304 004 032 257 026 @ 0004400 017 262 223 301 036 p r i o r i t y p r 0004420 o c e s s e s . H o w e v e 0004440 r , 226 017 242 240 227 301 025 t h e r e 0004460 i s n o g u a r a n t e e 226 0004500 017 244 240 227 301 $ t h a t a h i 0004520 g h e r p r i o r i t y p r 0004540 o c e s s w i l l 226 017 241 017 262 223 0004560 304 004 \t i \0 020 304 004 n 241 \0 h 212 017 244 240 0004600 227 301 D p r e e m p t a l o w 0004620 e r p r i o r i t y p r o c 0004640 e s s , e v e n f o r s i 0004660 n g l e p r o c e s s o r s 0004700 y s t e m s . 226 304 004 034 ; \0 P 304 004 0004720 ) N \0 - 212 017 241 240 227 301 \f A b o u t 0004740 l o c k s : 226 304 004 \t i \0 024 304 006 0004760 \0 236 O \0 \0 301 212 017 244 240 227 301 002 1 . 226 0005000 304 004 021 223 \0 307 214 305 005 X e r o x 305 \n 0005020 P r e s s F o n t s 305 016 T i m e 0005040 s R o m a n - B R R 017 243 241 033 240 223 0005060 304 004 003 # \0 P 240 244 240 224 017 246 225 017 246 240 0005100 227 304 004 005 m 002 332 017 262 223 301 024 P r i m 0005120 i t i v e s p i n l o c k s 0005140 226 017 244 240 227 301 < ( P S L s ) a 0005160 r e t h e m o s t p r i m 0005200 i t i v e l o c k s . P S 0005220 L s a r e b u i l t o u t 0005240 o f 226 017 241 017 262 223 304 004 \t i \0 020 304 0005260 004 031 204 \0 ! 212 017 244 240 227 304 004 \r ? 006 / 0005300 017 262 223 301 L C S t o r e , a r e 0005320 o n l y a c q u i r e d w 0005340 i t h r e s c h e d u l e o 0005360 f f , a n d m u s t b e 0005400 p i n n e d . A s i n g l 0005420 e 226 017 241 017 262 223 304 004 \t i \0 020 304 006 \0 0005440 202 265 \0 \0 264 212 017 244 240 227 304 004 \f 354 \v 355 0005460 017 262 223 301 T p r o c e s s o r s 0005500 y s t e m s h o u l d n e v 0005520 e r w a i t f o r P S L s 0005540 , o b v i o u s l y . I n 0005560 a m u l t i - p r o c e s s 0005600 o r s y s t e m 226 017 241 017 262 223 304 0005620 004 \t i \0 020 304 004 ? ( \0 ] 212 017 244 240 227 0005640 304 004 \f 6 \b ' 017 262 223 301 N P S L s 0005660 m u s t n e v e r b e h e 0005700 l d l o n g , o r t h e y 0005720 b e c o m e a b o t t l e 0005740 n e c k . T h e m o s t 0005760 i m p o r t a n t 226 017 241 017 262 223 304 0006000 004 \t i \0 020 304 004 q # \0 263 212 017 244 240 227 0006020 304 004 005 315 005 223 017 262 223 301 ( a n d 0006040 c u r r e n t l y o n l y ) 0006060 P S L i s t h e 226 017 242 240 227 0006100 301 \b m e t a L o c k 226 017 244 240 227 301 0006120 - , w h i c h c o n t r o l 0006140 s a c c e s s t o t h e 0006160 g l o b a l p r o c e s s 226 017 0006200 241 017 262 223 304 004 \t i \0 020 304 004 . 7 \0 O 0006220 212 017 244 240 227 301 / s t a t e i n f 0006240 o r m a t i o n ( e s p e c i 0006260 a l l y t h e m e t a q u 0006300 e u e s ) . 226 304 004 \t i \0 024 304 004 $ 0006320 317 \0 I 212 017 244 240 227 301 002 2 . 226 304 004 021 0006340 223 \0 307 214 017 246 240 227 304 004 005 345 004 325 017 262 0006360 223 301 022 G e n e r a l s p i n 0006400 l o c k s 226 017 244 240 227 301 @ ( G S 0006420 L s ) u s e C S t o r e a 0006440 n d d i r e c t e d Y i e l 0006460 d . I f C S t o r e c a 0006500 n n o t a c q u i r e 226 017 241 017 0006520 262 223 304 004 \t i \0 020 304 004 U 363 \0 274 212 017 0006540 244 240 227 304 004 021 235 \n 301 017 262 223 301 S t h 0006560 e l o c k , t h e n t h e 0006600 p r o c e s s a t t e m p t 0006620 i n g t o a c q u i r e t 0006640 h e l o c k d o n a t e s 0006660 i t s c y c l e s t o t h 0006700 e 226 017 241 017 262 223 304 004 \t i \0 020 304 004 4 0006720 177 \0 200 212 017 244 240 227 304 004 004 W 003 365 017 262 0006740 223 301 V p r o c e s s h o l d i 0006760 n g t h e l o c k u s i n 0007000 g d i r e c t e d Y i e l d 0007020 . I f t h e p r o c e s 0007040 s h o l d i n g t h e l o 0007060 c k c a n n o t 226 017 241 017 262 223 304 0007100 004 \t i \0 020 304 004 { 317 001 U 212 017 244 240 227 0007120 301 K b e r u n , d i r e c t 0007140 e d Y i e l d a c t s l i 0007160 k e u n d i r e c t e d Y i 0007200 e l d . G S L s c a n b 0007220 e n o n - p i n n e d . 226 304 004 0007240 \t i \0 024 304 004 034 ; \0 d 212 017 244 240 227 301 0007260 002 3 . 226 304 004 021 223 \0 307 214 017 246 240 227 304 0007300 004 004 s 003 300 017 262 223 301 016 G e n e r a 0007320 l q u e u e s 226 017 244 240 227 301 D 0007340 ( G Q s ) u s e a G S L 0007360 t o s e r i a l i z e o w n 0007400 e r s h i p o f t h e q u 0007420 e u e , a n d a c i r c u 0007440 l a r 226 017 241 017 262 223 240 k 240 j 017 241 017 0007460 245 223 304 006 \0 \0 035 001 B Q 240 244 240 250 305 005 0007500 X e r o x 305 \n P r e s s F o n t 0007520 s 305 \n L a u r e l - M R R 017 243 241 0007540 033 240 223 304 004 003 # \0 P 240 244 240 224 017 240 225 0007560 017 240 240 227 304 006 002 \a 9 \0 001 \0 304 006 \0 346 0007600 304 \0 \0 O 212 301 001 2 226 304 004 \t i \0 020 304 0007620 006 \0 203 033 \0 \0 1 212 305 005 X e r o x 305 0007640 \n P r e s s F o n t s 305 016 T i m 0007660 e s R o m a n - M R R 017 243 241 033 240 0007700 223 304 004 003 # \0 P 240 244 240 224 017 241 225 017 241 0007720 240 227 304 004 \a 030 003 % 017 262 223 301 K q u e 0007740 u e o f p r o c e s s e s 0007760 t o h o l d t h e p r o c 0010000 e s s e s t h a t a r e w 0010020 a i t i n g . S e e E n q 0010040 u e u e a n d 226 017 241 017 262 223 304 004 0010060 \t i \0 020 304 006 \0 364 u \0 \0 ] 212 017 241 240 0010100 227 301 024 D e q u e u e f o r d 0010120 e t a i l s . 226 304 004 \t i \0 024 304 004 0010140 D 332 \0 033 212 017 241 240 227 301 002 4 . 226 304 004 0010160 021 223 \0 307 214 305 005 X e r o x 305 \n P r 0010200 e s s F o n t s 305 016 T i m e s R 0010220 o m a n - B R R 017 243 241 033 240 223 304 004 0010240 003 # \0 P 240 244 240 224 017 242 225 017 242 240 227 304 0010260 004 \t 274 \a 327 017 262 223 301 \r M o n i t o 0010300 r l o c k s 226 017 241 240 227 301 B ( 0010320 M L s ) a r e b u i l t f 0010340 r o m a G Q a n d a n 0010360 o w n e r s h i p w o r d , 0010400 w h i c h i s u s e d t o 0010420 226 017 241 017 262 223 304 004 \t i \0 020 304 006 \0 331 0010440 303 \0 \0 W 212 017 241 240 227 301 R d e n o t 0010460 e t h e p r o c e s s o w 0010500 n i n g t h e l o c k . 0010520 S e e M o n i t o r E n t r y 0010540 a n d M o n i t o r E x i t 0010560 f o r d e t a i l s . 226 304 004 0010600 \t i \0 024 304 006 \0 260 375 \0 \0 I 212 017 241 240 0010620 227 301 002 5 . 226 304 004 021 223 \0 307 214 017 242 240 0010640 227 304 004 034 % 017 323 017 262 223 301 023 C o n d 0010660 i t i o n v a r i a b l e s 226 0010700 017 241 240 227 301 < ( C V s ) d o 0010720 n o t a s s u m e t h a t 0010740 a m o n i t o r i s h e l 0010760 d , a l t h o u g h o n e 0011000 i s 226 017 241 017 262 223 304 004 \t i \0 020 304 006 0011020 \0 376 c \0 \0 k 212 017 241 240 227 304 004 006 ) 005 0011040 U 017 262 223 301 R a l w a y s p r e 0011060 s e n t . C V s a l s o 0011100 s u p p o r t t i m e o u t s 0011120 . C V s a r e b u i l t 0011140 f r o m a G Q a n d a 0011160 t i m e o u t 226 017 241 017 262 223 304 004 0011200 \t i \0 020 304 006 \0 254 s \0 \0 J 212 017 241 240 0011220 227 304 004 005 312 004 ] 017 262 223 301 U w o r d 0011240 t h a t h o l d s t h e 0011260 i n i t i a l v a l u e o f 0011300 t h e t i m e o u t p e r 0011320 i o d . A f l a g s w o 0011340 r d c o n t a i n s a b i 0011360 t 226 017 241 017 262 223 304 004 \t i \0 020 304 006 \0 0011400 235 215 \0 \0 E 212 017 241 240 227 301 ( t h a t 0011420 c a n e n a b l e a b o r 0011440 t s t o a f f e c t t h e 0011460 C V . 226 304 004 \t i \0 024 304 004 # G \0 0011500 020 212 017 241 240 227 301 002 6 . 226 304 004 021 223 \0 0011520 307 214 017 242 240 227 304 004 \a 217 004 r 017 262 223 301 0011540 035 I n t e r r u p t c o n d i 0011560 t i o n v a r i a b l e s 226 017 0011600 241 240 227 301 4 ( I C V s ) a r e 0011620 t h e m e c h a n i s m f 0011640 o r t u r n i n g d e v i c 0011660 e s i g n a l s 226 017 241 017 262 223 304 0011700 004 \t i \0 020 304 004 n \f \0 3 212 017 241 240 227 0011720 304 004 021 005 \v [ 017 262 223 301 R a n d i 0011740 n t e r r u p t s i n t o I 0011760 C V n o t i f i c a t i o n s 0012000 . I C V s d o n o t a 0012020 s s u m e t h a t a m o n 0012040 i t o r i s h e l d , 226 017 241 0012060 017 262 223 304 004 \t i \0 020 304 006 \0 227 371 \0 \0 0012100 H 212 017 241 240 227 304 004 003 222 002 225 017 262 223 301 0012120 R s i n c e n o n e i s e 0012140 v e r p r e s e n t . I C 0012160 V s a l s o s u p p o r t 0012200 t i m e o u t s . I C V s 0012220 a r e b u i l t f r o m a 0012240 C V 226 017 241 017 262 223 304 004 \t i \0 020 304 0012260 004 X 275 \0 + 212 017 241 240 227 304 004 004 ; 003 222 0012300 017 262 223 301 U a n d a r e q u e 0012320 s t b i t f o r i n t e r 0012340 r u p t r e q u e s t s s o 0012360 w e d o n o t l o s e 0012400 t h e m w h i l e n o t w 0012420 a i t i n g f o r 226 017 241 017 262 223 0012440 304 004 \t i \0 020 304 004 F 225 \0 # 212 017 241 240 0012460 227 304 004 002 223 001 177 017 262 223 301 M t h e 0012500 I C V . I C V s m u s t 0012520 b e p i n n e d , t o a l 0012540 l o w t h e s c h e d u l e 0012560 r t o r e m o v e r e q u 0012600 e s t s f r o m 226 017 241 017 262 223 304 0012620 004 \t i \0 020 304 004 @ 377 \0 ! 212 017 241 240 227 0012640 301 005 t h e m . 226 304 004 034 ; \0 P 304 004 0012660 > ) \0 " 212 305 005 X e r o x 305 \n P r 0012700 e s s F o n t s 305 016 T i m e s R 0012720 o m a n - B R R 017 243 241 033 240 223 304 004 0012740 \t i \0 310 240 244 240 224 017 243 225 017 243 240 227 301 0012760 006 T o D o : 226 304 004 \t i \0 024 304 006 0013000 \0 305 255 \0 \0 r 212 017 241 240 227 301 002 1 . 226 0013020 304 004 021 223 \0 307 214 304 004 001 k 001 9 017 262 223 0013040 301 P C h e c k t o s e e w 0013060 h e t h e r S a v e P r o c e 0013100 s s S t a t e a n d R e s t 0013120 o r e P r o c e s s n e e d 0013140 p r o c e s s a r g u m e n t 0013160 s . 226 017 241 017 262 223 304 004 \t i \0 020 304 006 0013200 \0 262 321 \0 \0 j 212 017 241 240 227 301 033 I ( 0013220 a j d ) b e l i e v e t h e 0013240 y d o n ' t . 226 304 004 \t i \0 024 304 0013260 004 177 021 \0 O 212 017 241 240 227 301 002 2 . 226 304 0013300 004 021 223 \0 307 214 304 004 U 033 D C 017 262 223 301 0013320 P S i m i l a r l y , c h e c 0013340 k t o s e e w h e t h e r 0013360 E n q u e u e R e a d y , E 0013400 n q u e u e P a g e F a u l t , 0013420 . . . n e e d p r o c e s 0013440 s 226 017 241 017 262 223 304 004 \t i \0 020 304 006 004 0013460 201 335 \0 002 343 212 017 241 240 227 304 004 \b 371 \a 023 0013500 017 262 223 301 S a r g u m e n t s . 0013520 I ( a j d ) s u s p e c t 0013540 t h e y d o n ' t . E n 0013560 q u e u e P a g e F a u l t p 0013600 r o b a b l y s h o u l d n ' 0013620 t e x i s t , 226 017 241 017 262 223 304 004 0013640 \t i \0 020 304 006 \0 262 261 \0 \0 v 212 017 241 240 0013660 227 304 004 \b 017 005 a 017 262 223 301 T a s i 0013700 t ' s a 2 - l i n e r c a 0013720 l l e d f r o m o n l y t 0013740 w o p l a c e s , b o t h 0013760 o f t h e m i n P r o c e 0014000 s s S w i t c h , a n d i t 0014020 226 017 241 017 262 223 304 004 \t i \0 020 304 006 001 D 0014040 E \0 \0 335 212 017 241 240 227 301 9 o b s c u 0014060 r e s t h e f a c t t h a 0014100 t t h e p r o c e s s ' s 0014120 n e x t s t a t e g e t s 0014140 s e t . 226 304 004 \t i \0 024 304 004 Q 360 \0 0014160 ; 212 304 004 034 ; \0 P 304 004 \f 023 \0 \t 212 305 0014200 005 X e r o x 305 \n P r e s s F o n 0014220 t s 305 016 T i m e s R o m a n - M 0014240 R R 017 243 241 033 240 223 304 004 003 # \0 d 240 244 0014260 240 224 017 244 225 017 244 240 227 301 \t D I R E C 0014300 T O R Y 226 304 004 A 337 \0 240 304 004 016 = \0 0014320 \v 212 017 240 240 227 301 \b D r a g O p s , 0014340 226 304 004 A 337 \0 240 304 004 9 _ \0 . 212 017 240 0014360 240 227 301 \t P r i n c O p s 226 017 244 0014400 240 227 301 005 U S I N G 226 017 240 240 227 301 \n 0014420 [ z E X C H ] , 226 305 005 X e r 0014440 o x 305 \n P r e s s F o n t s 305 016 0014460 T i m e s R o m a n - M I R 017 243 0014500 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 245 0014520 225 017 245 240 227 301 \v - - S I M o n 0014540 l y 226 304 004 A 337 \0 240 304 006 \0 210 315 \0 \0 0014560 r 212 017 240 240 227 301 016 P r i n c O p s 0014600 U t i l s 226 017 244 240 227 301 005 U S I 0014620 N G 226 017 240 240 227 301 036 [ P s b H a 0014640 n d l e T o I n d e x , R e a 0014660 d P S B ] , 226 017 245 240 227 301 \v - - 0014700 S I M o n l y 226 304 004 A 337 \0 240 0014720 304 004 B 335 \0 : 212 017 240 240 227 301 \b P r o 0014740 c e s s 226 017 244 240 227 301 005 U S I N 0014760 G 226 017 240 240 227 301 3 [ D e t a c h 0015000 , p r i o r i t y B a c k g r 0015020 o u n d , S e t P r i o r i t 0015040 y , Y i e l d ] , 226 017 245 240 227 0015060 301 \v - - S I M o n l y 226 304 004 0015100 A 337 \0 240 304 006 001 204 023 \0 001 _ 212 017 240 240 0015120 227 301 \v S i m P r o c e s s ; 226 304 0015140 004 034 ; \0 P 304 004 k Q \0 u 212 017 243 240 227 0015160 301 016 S i m P r o c e s s I m p l 0015200 226 301 002 : 226 017 242 240 227 301 \a M O N I 0015220 T O R 226 304 004 034 ; \0 P 304 004 o 031 \0 207 0015240 212 017 244 240 227 301 005 L O C K S 226 017 240 240 0015260 227 301 006 l o c k 226 017 244 240 227 301 005 0015300 U S I N G 226 017 240 240 227 301 032 l o c 0015320 k : S i m P r o c e s s . S i 0015340 m L o c k 226 017 245 240 227 301 034 - - 0015360 w i l l b e P R O G R A M 0015400 i n R D I - - 226 304 004 034 ; \0 P 0015420 304 006 \0 236 A \0 \0 314 212 017 244 240 227 301 \a I 0015440 M P O R T S 226 017 240 240 227 301 030 P r 0015460 i n c O p s U t i l s , P r o 0015500 c e s s 226 017 245 240 227 301 > - - i 0015520 n R D I : d o e s n ' t i 0015540 m p o r t a n y t h i n g ; 0015560 n o t e P r o c e s s i s 0015600 t h e D o r a d o 226 304 004 T 261 \0 0015620 240 304 004 K 311 \0 h 212 017 245 240 227 301 026 v e 0015640 r s i o n f o r s i m u l a 0015660 t i o n 226 304 004 034 ; \0 P 304 004 S % \0 0015700 z 212 017 244 240 227 301 \a E X P O R T S 226 0015720 017 240 240 227 301 \f S i m P r o c e s 0015740 s 226 017 245 240 227 301 032 - - i n R 0015760 D I : e x p o r t s P r o c 0016000 e s s 226 304 004 034 ; \0 P 304 004 9 262 \0 u 0016020 212 017 243 240 227 301 002 = 226 017 242 240 227 301 005 0016040 B E G I N 226 304 004 034 ; \0 P 304 004 r 021 0016060 001 036 212 017 244 240 227 301 004 O P E N 226 017 240 0016100 240 227 301 001 226 017 242 240 227 301 \t C 7 P r 0016120 o c e s s 226 017 240 240 227 301 027 : P r 0016140 o c e s s , S i m P r o c e s 0016160 s ; 226 017 245 240 227 301 027 - - i n 0016200 R D I : O P E N P r o c e s 0016220 s 226 240 k 240 j 017 241 017 245 223 304 006 \0 \0 035 0016240 001 B Q 240 244 240 250 305 005 X e r o x 305 \n 0016260 P r e s s F o n t s 305 \n L a u r 0016300 e l - M R R 017 243 241 033 240 223 304 004 003 # 0016320 \0 P 240 244 240 224 017 240 225 017 240 240 227 304 004 Q 0016340 - \0 ( 304 006 \0 346 304 \0 \0 O 212 301 001 3 226 0016360 304 004 034 ; \0 P 304 006 \0 203 033 \0 \0 1 212 305 0016400 005 X e r o x 305 \n P r e s s F o n 0016420 t s 305 016 T i m e s R o m a n - B 0016440 R R 017 243 241 033 240 223 304 004 \t i \0 310 240 244 0016460 240 224 017 241 225 017 241 240 227 301 005 T y p e s 0016500 226 304 004 034 ; \0 P 304 006 002 \v K \0 \0 313 212 0016520 305 005 X e r o x 305 \n P r e s s F o 0016540 n t s 305 016 T i m e s R o m a n - 0016560 B R R 017 243 241 033 240 223 304 004 003 # \0 P 240 0016600 244 240 224 017 242 225 017 242 240 227 301 005 B a s i 0016620 c 226 304 004 A 337 \0 240 304 006 \0 303 353 \0 \0 O 0016640 212 017 240 240 227 301 \t W o r d P t r : 0016660 226 305 005 X e r o x 305 \n P r e s s F 0016700 o n t s 305 016 T i m e s R o m a n 0016720 - M R R 017 243 241 033 240 223 304 004 003 # \0 d 0016740 240 244 240 224 017 243 225 017 243 240 227 301 004 T Y P 0016760 E 226 017 240 240 227 301 003 = 226 017 243 240 227 0017000 301 004 L O N G 226 017 240 240 227 301 001 226 017 0017020 243 240 227 301 \a P O I N T E R 226 017 240 240 0017040 227 301 001 226 017 243 240 227 301 002 T O 226 017 240 0017060 240 227 301 006 W o r d ; 226 304 004 A 337 \0 0017100 240 304 004 o 377 \0 / 212 017 240 240 227 301 \t W o 0017120 r d S e q : 226 017 243 240 227 301 004 T Y 0017140 P E 226 017 240 240 227 301 003 = 226 017 243 240 0017160 227 301 004 L O N G 226 017 240 240 227 301 001 226 0017200 017 243 240 227 301 \a P O I N T E R 226 017 240 0017220 240 227 301 001 226 017 243 240 227 301 002 T O 226 017 0017240 240 240 227 301 \f W o r d S e q R e p 0017260 ; 226 304 004 A 337 \0 240 304 004 b 003 \0 * 212 017 0017300 240 240 227 301 \f W o r d S e q R e p : 0017320 226 017 243 240 227 301 004 T Y P E 226 017 240 240 0017340 227 301 003 = 226 017 243 240 227 301 006 R E C 0017360 O R D 226 017 240 240 227 301 002 [ 226 017 243 240 0017400 227 301 \b S E Q U E N C E 226 017 240 240 227 0017420 301 001 226 017 243 240 227 301 \b C O M P U T 0017440 E D 226 017 240 240 227 301 001 226 017 243 240 227 301 0017460 \b C A R D I N A L 226 017 240 240 227 301 001 0017500 226 017 243 240 227 301 002 O F 226 017 240 240 227 301 0017520 \a W o r d ] ; 226 304 004 A 337 \0 240 304 0017540 004 T 375 \0 & 212 017 240 240 227 301 017 S t a c 0017560 k R e g i s t e r : 226 017 243 240 227 0017600 301 004 T Y P E 226 017 240 240 227 301 003 = 0017620 226 017 243 240 227 301 \a M A C H I N E 226 017 0017640 240 240 227 301 001 226 017 243 240 227 301 \t D E P 0017660 E N D E N T 226 017 240 240 227 301 026 { m 0017700 i n ( 0 ) , m a x ( 1 2 7 0017720 ) } ; 226 304 004 \t i \0 024 304 004 f 315 \0 / 0017740 212 305 005 X e r o x 305 \n P r e s s F 0017760 o n t s 305 016 T i m e s R o m a n 0020000 - M I R 017 243 241 033 240 223 304 004 003 # \0 P 0020020 240 244 240 224 017 244 225 017 244 240 227 301 8 A S 0020040 t a c k R e g i s t e r i s 0020060 a n i n d e x i n t o t h 0020100 e E U s t a c k r e g i s 0020120 t e r s . 226 304 004 034 ; \0 P 304 006 \0 235 0020140 R \0 \0 M 212 017 241 240 227 301 \f G l o b a 0020160 l S t a t e 226 304 004 034 ; \0 P 304 006 0020200 001 375 253 \0 001 006 212 017 242 240 227 301 \f S I M 0020220 - s p e c i f i c 226 304 004 034 ; \0 P 0020240 304 004 O q \0 + 212 017 244 240 227 301 0 P r i 0020260 o r i t y r e d u c t i o n 0020300 ( b e c a u s e s o m u c h 0020320 c o d e s p i n s ) . 226 304 004 0020340 A 337 \0 240 304 006 \0 212 H \0 \0 O 212 017 242 240 0020360 227 301 \r S i m B a c k g r o u n d 0020400 226 017 240 240 227 301 002 : 226 017 243 240 227 301 004 0020420 P R O C 226 017 240 240 227 301 ; ~ { 0020440 C 7 P r o c e s s . S e t P r i 0020460 o r i t y [ C 7 P r o c e s s . 0020500 p r i o r i t y B a c k g r o u 0020520 n d ] } ; 226 304 004 034 ; \0 P 304 006 001 0020540 335 317 \0 001 ! 212 017 244 240 227 301 H T h e 0020560 p r o c e s s o r o n w h i 0020600 c h a C e d a r 7 . 0 s i 0020620 m u l a t o r p r o c e s s 0020640 i s c u r r e n t l y r u n 0020660 n i n g 226 304 004 A 337 \0 240 304 004 i 323 \0 0020700 D 212 017 240 240 227 301 016 p r o c e s s o 0020720 r M a p : 226 017 243 240 227 301 003 R E F 0020740 226 017 240 240 227 301 020 P r o c e s s o 0020760 r M a p _ 226 017 243 240 227 301 003 N E 0021000 W 226 017 240 240 227 301 021 [ P r o c e s 0021020 s o r M a p _ 226 017 243 240 227 301 003 0021040 A L L 226 017 240 240 227 301 001 [ 226 017 243 240 227 0021060 301 003 N I L 226 017 240 240 227 301 003 ] ] ; 226 0021100 304 004 A 337 \0 240 304 006 \0 306 353 \0 \0 204 212 017 0021120 240 240 227 301 016 P r o c e s s o r M a 0021140 p : 226 017 243 240 227 301 004 T Y P E 226 017 0021160 240 240 227 301 003 ~ 226 017 243 240 227 301 005 A 0021200 R R A Y 226 017 240 240 227 301 \v [ 0 . . 0021220 1 0 2 4 ) 226 017 243 240 227 301 002 O F 226 0021240 017 240 240 227 301 \v P r o c e s s o r 0021260 ; 226 304 004 A 337 \0 240 304 004 P , \0 7 212 304 0021300 004 A 337 \0 240 304 004 J 245 \0 5 212 017 242 240 227 0021320 301 020 S i m T h i s P r o c e s s 0021340 o r 226 017 240 240 227 301 002 : 226 017 243 240 227 0021360 301 004 P R O C 226 017 240 240 227 301 001 226 017 0021400 243 240 227 301 \a R E T U R N S 226 017 240 240 0021420 227 301 023 [ p : P r o c e s s o 0021440 r ] ~ { 226 304 004 \t i \0 024 304 006 \0 0021460 234 L \0 \0 s 212 017 244 240 227 301 \t S I M 0021500 o n l y . 226 304 004 \t i \0 024 304 004 B 315 0021520 \0 3 212 017 240 240 227 301 020 p r o c e s s 0021540 o r I n d e x : 226 017 243 240 227 301 \b 0021560 C A R D I N A L 226 017 240 240 227 301 002 0021600 _ 226 304 004 Y 355 \0 213 304 004 T 233 \0 C 212 017 0021620 240 240 227 301 8 P r i n c O p s U t i 0021640 l s . P s b H a n d l e T o I n 0021660 d e x [ P r i n c O p s U t i l 0021700 s . R e a d P S B [ ] ] ; 226 304 004 0021720 \t i \0 024 304 004 033 351 \0 027 212 017 243 240 227 301 0021740 002 I F 226 017 240 240 227 301 030 p r o c e 0021760 s s o r I n d e x > = 1 0 2 0022000 4 226 017 243 240 227 301 004 T H E N 226 017 240 0022020 240 227 301 001 226 017 243 240 227 301 005 E R R O 0022040 R 226 017 240 240 227 301 001 ; 226 304 004 \t i \0 024 0022060 304 006 \0 244 ' \0 \0 215 212 017 240 240 227 301 ! p 0022100 _ p r o c e s s o r M a p [ 0022120 p r o c e s s o r I n d e x ] ; 0022140 226 304 004 \t i \0 024 304 004 R 201 \0 J 212 017 243 0022160 240 227 301 002 I F 226 017 240 240 227 301 005 p 0022200 = 226 017 243 240 227 301 003 N I L 226 017 240 240 0022220 227 301 001 226 017 243 240 227 301 004 T H E N 226 0022240 017 240 240 227 301 001 226 017 243 240 227 301 005 E R 0022260 R O R 226 017 240 240 227 301 001 ; 226 304 004 \t i 0022300 \0 024 304 004 ` 371 \0 [ 212 017 240 240 227 301 002 } 0022320 ; 226 304 004 \t i \0 024 304 004 b 226 \0 a 212 304 0022340 004 A 337 \0 240 304 004 8 027 \0 : 212 017 242 240 227 0022360 301 023 S i m S e t T h i s P r o c 0022400 e s s o r 226 017 240 240 227 301 002 : 226 017 0022420 243 240 227 301 004 P R O C 226 017 240 240 227 301 023 0022440 [ p : P r o c e s s o r ] 0022460 ~ { 226 304 004 \t i \0 024 304 004 023 F \0 025 0022500 212 305 005 X e r o x 305 \n P r e s s F 0022520 o n t s 305 016 T i m e s R o m a n 0022540 - M I R 017 243 241 033 240 223 304 004 003 # \0 d 0022560 240 244 240 224 017 245 225 017 245 240 227 301 003 S I M 0022600 226 017 244 240 227 301 006 o n l y . 226 304 004 0022620 \t i \0 024 304 004 y 227 \0 214 212 017 240 240 227 301 0022640 020 p r o c e s s o r I n d e x : 0022660 226 017 243 240 227 301 \b C A R D I N A L 0022700 226 017 240 240 227 301 002 _ 226 304 004 Y 355 \0 213 0022720 304 004 F 245 \0 V 212 017 240 240 227 301 8 P r i 0022740 n c O p s U t i l s . P s b H a 0022760 n d l e T o I n d e x [ P r i n 0023000 c O p s U t i l s . R e a d P S 0023020 B [ ] ] ; 226 304 004 \t i \0 024 304 004 D 271 0023040 \0 Y 212 017 243 240 227 301 002 I F 226 017 240 240 227 0023060 301 030 p r o c e s s o r I n d e 0023100 x > = 1 0 2 4 226 017 243 240 227 301 0023120 004 T H E N 226 017 240 240 227 301 001 226 017 243 0023140 240 227 301 005 E R R O R 226 017 240 240 227 301 001 0023160 ; 226 304 004 \t i \0 024 304 004 > 344 \0 W 212 017 0023200 240 240 227 301 ! p r o c e s s o r M a 0023220 p [ p r o c e s s o r I n d e x 0023240 ] _ p ; 226 304 004 \t i \0 024 304 004 > 0023260 245 \0 ] 212 017 240 240 227 301 002 } ; 226 304 004 034 0023300 ; \0 P 304 004 G } \0 | 212 017 244 240 227 301 ` 0023320 S i m u l a t i o n o f p r 0023340 o c e s s s u s p e n s i o n 0023360 a n d p r o c e s s s w i 0023400 t c h . N o t v e r y f 0023420 a i t h f u l , b u t w h a 0023440 t d o y o u e x p e c t ? 0023460 226 304 004 A 337 \0 240 304 004 F 365 \0 224 212 017 242 0023500 240 227 301 021 S i m C a l l A n d S u 0023520 s p e n d 226 017 240 240 227 301 002 : 226 017 0023540 243 240 227 301 005 E N T R Y 226 017 240 240 227 301 0023560 001 226 017 243 240 227 301 004 P R O C 226 017 240 0023600 240 227 301 ) [ l o c k : S i m L 0023620 o c k , p r o c e s s : P r 0023640 o c e s s , p r o c : 226 017 243 0023660 240 227 301 004 P R O C 226 017 240 240 227 301 005 ] 0023700 ~ { 226 304 004 \t i \0 024 304 006 \0 250 237 0023720 \0 001 210 212 017 244 240 227 301 \t S I M o n 0023740 l y . 226 304 004 \t i \0 024 304 004 : F \0 231 0023760 212 017 243 240 227 301 006 E N A B L E 226 017 240 0024000 240 227 301 001 226 017 243 240 227 301 006 U N W I 0024020 N D 226 017 240 240 227 301 004 = > 226 017 243 0024040 240 227 301 004 N U L L 226 017 240 240 227 301 001 ; 0024060 226 304 004 \t i \0 024 304 004 1 275 \0 226 212 017 243 0024100 240 227 301 002 I F 226 017 240 240 227 301 \b p r 0024120 o c # 226 017 243 240 227 301 003 N I L 226 0024140 017 240 240 227 301 001 226 017 243 240 227 301 004 T H 0024160 E N 226 017 240 240 227 301 001 226 017 243 240 227 301 0024200 \a T R U S T E D 226 017 240 240 227 301 025 0024220 { C 7 P r o c e s s . D e t a 0024240 c h [ 226 017 243 240 227 301 004 F O R K 226 0024260 017 240 240 227 301 036 S i m D o C a l l 0024300 [ p r o c e s s , p r o c ] 0024320 ] } ; 226 304 004 \t i \0 024 304 004 B 350 \0 0024340 355 212 017 243 240 227 301 \n W H I L E N O 0024360 T 226 017 240 240 227 301 024 p r o c e s s 0024400 . s i m . a w a k e n e d 226 017 243 0024420 240 227 301 \b D O W A I T 226 017 240 240 0024440 227 301 030 p r o c e s s . s i m . 0024460 a w a k e n E v e n t 226 017 243 240 227 0024500 301 \b E N D L O O P 226 017 240 240 227 301 0024520 001 ; 226 240 k 240 j 017 241 017 245 223 304 006 \0 \0 0024540 035 001 B Q 240 244 240 250 305 005 X e r o x 305 0024560 \n P r e s s F o n t s 305 \n L a u 0024600 r e l - M R R 017 243 241 033 240 223 304 004 003 0024620 # \0 P 240 244 240 224 017 240 225 017 240 240 227 304 004 0024640 } 267 \0 > 304 006 \0 346 304 \0 \0 O 212 301 001 4 0024660 226 304 004 \t i \0 024 304 006 \0 203 033 \0 \0 1 212 0024700 017 240 240 227 301 027 p r o c e s s . s i 0024720 m . a w a k e n e d _ 226 305 005 0024740 X e r o x 305 \n P r e s s F o n t 0024760 s 305 016 T i m e s R o m a n - M R 0025000 R 017 243 241 033 240 223 304 004 003 # \0 d 240 244 240 0025020 224 017 241 225 017 241 240 227 301 005 F A L S E 226 0025040 017 240 240 227 301 001 ; 226 304 004 \t i \0 024 304 004 0025060 027 241 \0 \t 212 017 240 240 227 301 , S i m S e 0025100 t T h i s P r o c e s s o r [ p 0025120 r o c e s s . s i m . p r o c e 0025140 s s o r ] ; 226 305 005 X e r o x 305 0025160 \n P r e s s F o n t s 305 016 T i m 0025200 e s R o m a n - M I R 017 243 241 033 240 0025220 223 304 004 003 # \0 P 240 244 240 224 017 242 225 017 242 0025240 240 227 301 " - - S I M : p r o c 0025260 e s s o r m a y h a v e c 0025300 h a n g e d 226 304 004 \t i \0 024 304 004 0 0025320 356 \0 023 212 017 240 240 227 301 002 } ; 226 304 004 \t 0025340 i \0 024 304 006 \0 205 324 \0 \0 5 212 304 004 A 337 0025360 \0 240 304 006 \0 245 321 \0 \0 C 212 305 005 X e r 0025400 o x 305 \n P r e s s F o n t s 305 016 0025420 T i m e s R o m a n - B R R 017 243 0025440 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 243 0025460 225 017 243 240 227 301 \t S i m D o C a l l 0025500 226 017 240 240 227 301 002 : 226 017 241 240 227 301 004 0025520 P R O C 226 017 240 240 227 301 032 [ p r o 0025540 c e s s : P r o c e s s , p 0025560 r o c : 226 017 241 240 227 301 004 P R O C 0025600 226 017 240 240 227 301 005 ] ~ { 226 304 004 \t 0025620 i \0 024 304 006 \0 212 5 \0 \0 9 212 017 242 240 227 0025640 301 \t S I M o n l y . 226 304 004 \t i 0025660 \0 024 304 004 I 234 \0 037 212 017 240 240 227 301 021 S 0025700 i m B a c k g r o u n d [ ] ; 0025720 226 017 242 240 227 301 031 - - b e c a u s 0025740 e w e j u s t f o r k e d 0025760 226 304 004 \t i \0 024 304 004 c 362 \0 + 212 017 240 0026000 240 227 301 , S i m S e t T h i s P r 0026020 o c e s s o r [ p r o c e s s . 0026040 s i m . p r o c e s s o r ] ; 0026060 226 017 242 240 227 301 031 - - b e c a u s 0026100 e w e j u s t f o r k e d 0026120 226 304 004 \t i \0 024 304 006 \0 201 240 \0 \0 9 212 0026140 017 240 240 227 301 \a p r o c [ ] ; 226 304 004 0026160 \t i \0 024 304 004 z Q \0 7 212 017 240 240 227 301 0026200 034 p r o c e s s _ C u r r e 0026220 n t P r o c e s s [ ] ; 226 017 242 0026240 240 227 301 6 - - p r o c e s s a 0026260 s s i g n e d t o t h i s 0026300 p r o c e s s o r m a y h a 0026320 v e c h a n g e d 226 304 004 \t i \0 0026340 024 304 006 \0 236 257 \0 \0 I 212 017 240 240 227 301 0 0026360 S i m R e s t a r t S u s p e n 0026400 s i o n [ p r o c e s s . s i m 0026420 . l o c k , p r o c e s s ] ; 0026440 226 304 004 \t i \0 024 304 004 ( Y \0 023 212 017 240 0026460 240 227 301 024 S i m S e t T h i s P r 0026500 o c e s s o r [ 226 017 241 240 227 301 003 N 0026520 I L 226 017 240 240 227 301 003 ] ; 226 017 242 240 0026540 227 301 * - - t h i s C 7 p r 0026560 o c e s s i s a b o u t t 0026600 o g o a w a y . . . 226 304 004 0026620 \t i \0 024 304 004 | g \0 < 212 017 240 240 227 301 0026640 002 } ; 226 304 004 \t i \0 024 304 004 > 270 \0 037 0026660 212 304 004 A 337 \0 240 304 006 \0 235 327 \0 \0 P 212 0026700 017 243 240 227 301 024 S i m R e s t a r t 0026720 S u s p e n s i o n 226 017 240 240 227 301 0026740 002 : 226 017 241 240 227 301 005 E N T R Y 226 0026760 017 240 240 227 301 001 226 017 241 240 227 301 004 P R 0027000 O C 226 017 240 240 227 301 & [ l o c k : 0027020 S i m L o c k , p r o c e s 0027040 s : P r o c e s s ] ~ { 226 0027060 304 004 \t i \0 024 304 006 \0 210 205 \0 \0 G 212 017 0027100 242 240 227 301 \t S I M o n l y . 226 304 0027120 004 \t i \0 024 304 004 + 022 \0 027 212 017 241 240 227 0027140 301 006 E N A B L E 226 017 240 240 227 301 001 0027160 226 017 241 240 227 301 006 U N W I N D 226 017 240 0027200 240 227 301 004 = > 226 017 241 240 227 301 004 N 0027220 U L L 226 017 240 240 227 301 001 ; 226 304 004 \t i 0027240 \0 024 304 004 S 325 \0 . 212 017 240 240 227 301 , p 0027260 r o c e s s . s i m . p r o c e 0027300 s s o r _ S i m T h i s P r 0027320 o c e s s o r [ ] ; 226 017 242 240 227 0027340 301 - - S h o u l d t h i s 0027360 h a p p e n h e r e o r 0027400 i n 226 304 004 Y 355 \0 213 304 006 002 $ 230 \0 001 0027420 5 212 017 242 240 227 301 022 S e t C u r r e 0027440 n t P r o c e s s ? 226 304 004 \t i \0 0027460 024 304 006 \0 324 3 \0 \0 { 212 017 240 240 227 301 027 0027500 p r o c e s s . s i m . a w a k 0027520 e n e d _ 226 017 241 240 227 301 004 T R 0027540 U E 226 017 240 240 227 301 001 ; 226 304 004 \t i \0 0027560 024 304 006 \0 207 255 \0 \0 Q 212 017 241 240 227 301 006 0027600 N O T I F Y 226 017 240 240 227 301 031 p r 0027620 o c e s s . s i m . a w a k e n 0027640 E v e n t ; 226 304 004 \t i \0 024 304 006 001 0027660 @ 027 \0 \0 305 212 017 240 240 227 301 002 } ; 226 304 0027700 004 034 ; \0 P 304 004 ` , \0 ? 212 017 242 240 227 0027720 301 / O p e r a t i o n s w i t 0027740 h m i s s i n g i m p l e m 0027760 e n t a t i o n d e t a i l s 0030000 . 226 304 004 A 337 \0 240 304 006 \0 233 256 \0 \0 m 0030020 212 017 240 240 227 301 \v N Y I A c t i o n 0030040 : 226 017 241 240 227 301 004 T Y P E 226 017 240 0030060 240 227 301 023 ~ { n o O p , e 0030100 r r o r } ; 226 304 004 A 337 \0 240 304 006 0030120 \0 200 ) \0 \0 ] 212 017 241 240 227 301 003 N Y I 0030140 226 017 240 240 227 301 002 : 226 017 241 240 227 301 006 0030160 S I G N A L 226 017 240 240 227 301 003 ~ 0030200 226 017 241 240 227 301 004 C O D E 226 017 240 240 227 0030220 301 001 ; 226 304 004 A 337 \0 240 304 006 \0 223 e \0 0030240 \0 o 212 017 243 240 227 301 021 N o t Y e t I 0030260 m p l e m e n t e d 226 017 240 240 227 301 0030300 002 : 226 017 241 240 227 301 004 P R O C 226 017 0030320 240 240 227 301 [ a c t i o n : N 0030340 Y I A c t i o n _ e r r o r 0030360 ] ~ { 226 304 004 \t i \0 024 304 004 9 177 0030400 \0 - 212 017 241 240 227 301 006 S E L E C T 226 0030420 017 240 240 227 301 \b a c t i o n 226 017 0030440 241 240 227 301 004 F R O M 226 304 004 T 261 \0 240 0030460 304 004 e 342 \0 S 212 017 240 240 227 301 \b n o O 0030500 p = > 226 017 241 240 227 301 004 N U L L 0030520 226 017 240 240 227 301 001 ; 226 304 004 T 261 \0 240 304 0030540 004 367 \0 034 212 017 240 240 227 301 \t e r r o 0030560 r = > 226 017 241 240 227 301 003 N Y I 226 0030600 017 240 240 227 301 003 [ ] ; 226 304 004 T 261 \0 240 0030620 304 006 \0 257 325 \0 \0 234 212 017 241 240 227 301 \a E 0030640 N D C A S E 226 017 240 240 227 301 004 = > 0030660 226 017 241 240 227 301 005 E R R O R 226 017 240 0030700 240 227 301 001 ; 226 304 004 \t i \0 024 304 004 # 212 0030720 \0 ! 212 017 240 240 227 301 002 } ; 226 304 004 034 ; 0030740 \0 P 304 004 C 207 \0 E 212 017 243 240 227 301 \r A 0030760 u x r e g i s t e r s 226 304 004 A 0031000 337 \0 240 304 004 Y 261 \0 f 212 017 243 240 227 301 016 0031020 C u r r e n t P r o c e s s 226 017 0031040 240 240 227 301 002 : 226 017 241 240 227 301 004 P R 0031060 O C 226 017 240 240 227 301 001 226 017 241 240 227 301 0031100 \a R E T U R N S 226 017 240 240 227 301 016 0031120 [ P r o c e s s ] ~ { 226 304 004 0031140 \t i \0 024 304 006 \0 222 302 \0 \0 261 212 017 242 240 0031160 227 301 Z T h i s a u x r e g i 0031200 s t e r h o l d s t h e c 0031220 u r r e n t p r o c e s s b 0031240 l o c k a d d r e s s . O 0031260 u t s i d e o f r e g i o n 0031300 s h o l d i n g t h e 226 304 004 0031320 \t 341 \0 024 304 004 S 257 \0 k 212 017 242 240 227 301 0031340 5 m e t a L o c k i t m u s 0031360 t b e c o n s i s t e n t 0031400 w i t h C u r r e n t P r o c 0031420 e s s o r . 226 304 004 \t i \0 024 304 004 e 0031440 274 \0 213 212 017 242 240 227 301 1 M u s t c 0031460 h a n g e t o f e t c h a 0031500 p r o c e s s o r r e g i s 0031520 t e r i n R D I . 226 304 004 \t i 0031540 \0 024 304 004 H C \0 j 212 017 241 240 227 301 006 R 0031560 E T U R N 226 017 240 240 227 301 " [ S i 0031600 m T h i s P r o c e s s o r [ ] 0031620 . s i m . p r o c e s s ] ; 226 304 0031640 004 \t i \0 024 304 004 1 344 \0 O 212 017 240 240 227 0031660 301 002 } ; 226 304 004 A 337 \0 240 304 006 \0 317 367 0031700 \0 001 206 212 017 243 240 227 301 021 S e t C u r 0031720 r e n t P r o c e s s 226 017 240 240 227 0031740 301 002 : 226 017 241 240 227 301 004 P R O C 226 0031760 017 240 240 227 301 021 [ p : P r o c e 0032000 s s ] ~ { 226 304 004 \t i \0 024 304 004 0032020 H 361 \0 227 212 017 242 240 227 301 / M u s t 0032040 c h a n g e t o s e t a 0032060 p r o c e s s o r r e g i s t 0032100 e r i n R D I . 226 304 004 \t i \0 0032120 024 304 004 036 M \0 F 212 017 240 240 227 301 * p r 0032140 o c e s s o r : P r o c e s s 0032160 o r ~ S i m T h i s P r o c 0032200 e s s o r [ ] ; 226 304 004 \t i \0 024 304 0032220 004 " 017 \0 Y 212 017 240 240 227 301 032 p r o c 0032240 e s s o r . s i m . p r o c e s 0032260 s _ p ; 226 304 004 \t i \0 024 304 004 036 0032300 354 \0 ] 212 017 240 240 227 301 035 p . s i m . 0032320 p r o c e s s o r _ p r o c 0032340 e s s o r ; 226 017 242 240 227 301 ' - - 0032360 S I M o n l y . M a y 0032400 n o t b e l o n g h e r e 0032420 - a j d 226 304 004 \t i \0 024 304 004 \n r 0032440 \0 % 212 017 240 240 227 301 002 } ; 226 240 k 240 j 0032460 017 241 017 245 223 304 006 \0 \0 035 001 B Q 240 244 240 0032500 250 305 005 X e r o x 305 \n P r e s s F 0032520 o n t s 305 \n L a u r e l - M R R 0032540 017 243 241 033 240 223 304 004 003 # \0 P 240 244 240 224 0032560 017 240 225 017 240 240 227 304 006 001 N 307 \0 \0 245 304 0032600 006 \0 346 304 \0 \0 O 212 301 001 5 226 304 004 A 337 0032620 \0 240 304 006 \0 203 033 \0 \0 1 212 305 005 X e r 0032640 o x 305 \n P r e s s F o n t s 305 016 0032660 T i m e s R o m a n - B R R 017 243 0032700 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 241 0032720 225 017 241 240 227 301 020 C u r r e n t P r 0032740 o c e s s o r 226 017 240 240 227 301 002 : 0032760 226 305 005 X e r o x 305 \n P r e s s F 0033000 o n t s 305 016 T i m e s R o m a n 0033020 - M R R 017 243 241 033 240 223 304 004 003 # \0 d 0033040 240 244 240 224 017 242 225 017 242 240 227 301 004 P R O 0033060 C 226 017 240 240 227 301 001 226 017 242 240 227 301 \a 0033100 R E T U R N S 226 017 240 240 227 301 031 [ 0033120 c u r r e n t : P r o c e s s 0033140 o r ] ~ { 226 304 004 \t i \0 024 304 006 0033160 \0 356 367 \0 \0 [ 212 305 005 X e r o x 305 \n 0033200 P r e s s F o n t s 305 016 T i m e 0033220 s R o m a n - M I R 017 243 241 033 240 223 0033240 304 004 003 # \0 P 240 244 240 224 017 243 225 017 243 240 0033260 227 301 < T h i s a u x r e g i 0033300 s t e r h o l d s t h e c 0033320 u r r e n t p r o c e s s o r 0033340 b l o c k a d d r e s s . 226 0033360 304 004 \t i \0 024 304 006 \0 371 350 \0 \0 a 212 017 0033400 243 240 227 301 2 M u s t c h a n g e 0033420 t o r e t u r n a p r o 0033440 c e s s o r r e g i s t e r 0033460 i n R D I . 226 304 004 \t i \0 024 304 004 0033500 ? + \0 031 212 017 240 240 227 301 035 c u r r e 0033520 n t _ S i m T h i s P r o c 0033540 e s s o r [ ] ; 226 304 004 \t i \0 024 304 0033560 006 001 _ 277 \0 \0 216 212 017 242 240 227 301 002 I F 0033600 226 017 240 240 227 301 ! c u r r e n t . 0033620 s i m . p r o c e s s o r # 0033640 c u r r e n t 226 017 242 240 227 301 004 T 0033660 H E N 226 017 240 240 227 301 001 226 017 242 240 227 0033700 301 005 E R R O R 226 017 240 240 227 301 002 ; 0033720 226 017 243 240 227 301 023 - - S I M s a 0033740 n i t y c h e c k 226 304 004 \t i \0 0033760 024 304 006 001 = 377 \0 \0 203 212 017 240 240 227 301 002 0034000 } ; 226 304 004 A 337 \0 240 304 006 \0 236 o \0 \0 0034020 D 212 017 241 240 227 301 023 S e t C u r r e 0034040 n t P r o c e s s o r 226 017 240 240 227 0034060 301 002 : 226 017 242 240 227 301 004 P R O C 226 0034100 017 240 240 227 301 023 [ p : P r o c e 0034120 s s o r ] ~ { 226 304 004 \t i \0 024 0034140 304 006 004 \r 206 \0 001 307 212 017 243 240 227 301 ` S 0034160 e t t h e a u x r e g i s 0034200 t e r t h a t h o l d s t 0034220 h e c u r r e n t p r o c e 0034240 s s o r b l o c k a d d r e 0034260 s s . T h i s i s c a l 0034300 l e d o n l y d u r i n g 226 0034320 304 004 \t 341 \0 024 304 004 b C \0 , 212 017 243 240 0034340 227 301 021 i n i t i a l i z a t i o 0034360 n . ( 226 305 005 X e r o x 305 \n P r 0034400 e s s F o n t s 305 016 T i m e s R 0034420 o m a n - B I R 017 243 241 033 240 223 304 004 0034440 003 # \0 P 240 244 240 224 017 244 225 017 244 240 227 301 0034460 004 ? ? ? ? 226 017 243 240 227 301 001 ) 226 304 004 0034500 \t i \0 024 304 006 004 250 = \0 002 " 212 017 243 240 0034520 227 301 / M u s t c h a n g e t 0034540 o s e t a p r o c e s s o 0034560 r r e g i s t e r i n R D 0034600 I . 226 304 004 \t i \0 024 304 006 001 212 310 \0 \0 0034620 271 212 017 240 240 227 301 ( c u r r e n t : 0034640 P r o c e s s o r _ S i m 0034660 T h i s P r o c e s s o r [ ] ; 0034700 226 304 004 \t i \0 024 304 004 U u \0 ) 212 017 242 0034720 240 227 301 002 I F 226 017 240 240 227 301 \r p 0034740 # c u r r e n t 226 017 242 240 227 301 0034760 004 T H E N 226 017 240 240 227 301 001 226 017 242 0035000 240 227 301 005 E R R O R 226 017 240 240 227 301 001 0035020 ; 226 304 004 \t i \0 024 304 004 v 003 \0 : 212 017 0035040 240 240 227 301 032 c u r r e n t . s i m 0035060 . p r o c e s s o r _ p ; 226 0035100 304 004 \t i \0 024 304 004 g 9 \0 4 212 017 240 240 0035120 227 301 002 } ; 226 304 004 034 ; \0 P 304 006 001 " 0035140 255 \0 \0 232 212 017 241 240 227 301 026 G l o b a 0035160 l f r a m e v a r i a b l e 0035200 s 226 304 004 A 337 \0 240 304 006 \0 303 003 \0 \0 m 0035220 212 017 240 240 227 301 " r u n a w a y L i 0035240 m i t : W o r d _ r u n a 0035260 w a y L i m i t ; 226 304 004 \t i \0 024 0035300 304 006 \0 367 001 \0 \0 216 212 017 243 240 227 301 ` . 0035320 . . a r b i t r a r y l i m 0035340 i t o n s t a c k d e p t 0035360 h t o g u a r d a g a i n 0035400 s t r u n a w a y p r o c e 0035420 s s e s . T h i s l i m i 0035440 t c o u l d a l s o b e 226 0035460 304 004 \t 341 \0 024 304 006 \0 244 * \0 \0 a 212 017 0035500 243 240 227 301 _ k e p t o n a p 0035520 e r - p r o c e s s b a s i s 0035540 a t t h e c o s t o f 0035560 e x t r a s p a c e . I t 0035600 i s l e f t a s a n u 0035620 n s p e c i f i e d c o n s t 0035640 a n t . 226 304 004 A 337 \0 240 304 006 002 I Q 0035660 \0 001 o 212 017 240 240 227 301 & e m e r g e 0035700 n c y L i m i t : W o r d _ 0035720 e m e r g e n c y L i m i t ; 0035740 226 304 004 \t i \0 024 304 004 j 237 \0 E 212 017 243 0035760 240 227 301 ] . . . a r b i t r a r 0036000 y l i m i t o n r e m a i 0036020 n i n g s t a c k f r a m e 0036040 s t o e n s u r e t h a t 0036060 e n o u g h i s l e f t 0036100 t o s a v e t h e s t a t 0036120 e 226 304 004 \t 341 \0 024 304 004 @ l \0 + 212 017 0036140 243 240 227 301 N i n f o r m a t i o n 0036160 f o r a l l r u n n i n g 0036200 p r o c e s s e s . I t 0036220 i s l e f t a s a n u n 0036240 s p e c i f i e d c o n s t a 0036260 n t . 226 304 004 A 337 \0 240 304 006 \0 220 D \0 0036300 \0 g 212 017 240 240 227 301 024 m e t a L o c 0036320 k : P r o c e s s _ 226 017 242 0036340 240 227 301 003 N I L 226 017 240 240 227 301 001 ; 226 0036360 304 004 \t i \0 024 304 006 002 020 > \0 001 207 212 017 0036400 243 240 227 301 Z t h e s p i n l o 0036420 c k f o r m e t a q u e u 0036440 e s ; N I L m e a n s n o 0036460 t b u s y ; a n y p r o 0036500 c e s s t h a t d e s i r e 0036520 s t o e x a m i n e o r 226 0036540 304 004 \t 341 \0 024 304 004 n 326 \0 U 212 017 243 240 0036560 227 301 ^ m o d i f y a n y m e 0036600 t a q u e u e m u s t a c 0036620 q u i r e t h i s l o c k 0036640 a n d s p i n u n t i l i 0036660 t i s f r e e ; t h e 0036700 p o s s e s s o r o f t h i 0036720 s 226 304 004 \t 341 \0 024 304 004 % 265 \0 036 212 017 0036740 243 240 227 301 6 l o c k m u s t h 0036760 a v e t r a p s d i s a b l 0037000 e d , a n d m u s t n o t 0037020 p a g e f a u l t 226 304 004 A 337 0037040 \0 240 304 006 \0 215 q \0 \0 z 212 017 240 240 227 301 0037060 031 s c h e d u l e r L o c k : 0037100 P r o c e s s _ 226 017 242 240 227 301 0037120 003 N I L 226 017 240 240 227 301 001 ; 226 304 004 \t 0037140 i \0 024 304 006 \0 211 233 \0 \0 | 212 017 243 240 227 0037160 301 034 t h e l o c k f o r t 0037200 h e s c h e d u l e r ; 226 305 0037220 005 X e r o x 305 \n P r e s s F o n 0037240 t s 305 016 T i m e s R o m a n - M 0037260 I R 017 243 241 033 240 223 304 004 003 # \0 d 240 244 0037300 240 224 017 245 225 017 245 240 227 301 003 N I L 226 017 0037320 243 240 227 301 @ m e a n s n o t 0037340 b u s y ; t h e p o s s e s 0037360 s o r o f t h i s l o c k 0037400 m u s t h a v e i n t e r 0037420 r u p t s 226 304 004 \t 341 \0 024 304 006 \0 252 0037440 \a \0 \0 240 212 017 243 240 227 301 \ d i s a b 0037460 l e d , a n d m u s t n o 0037500 t p a g e f a u l t ; t h 0037520 e p o s s e s s o r o f t 0037540 h i s l o c k h a s t h e 0037560 s o l e r e s p o n s i b i 0037600 l i t y t o 226 304 004 \t 341 \0 024 304 006 0037620 003 030 / \0 003 \f 212 017 243 240 227 301 [ h a n 0037640 d l e i n t e r r u p t s a 0037660 n d t o r e s c h e d u l e 0037700 o t h e r p r o c e s s o r 0037720 s ; p o s s e s s i n g t 0037740 h i s l o c k d o e s n o 0037760 t p e r m i t 226 304 004 \t 341 \0 024 304 0040000 004 h 233 \0 l 212 017 243 240 227 301 : u s i n 0040020 g a m e t a q u e u e w 0040040 i t h o u t a c q u i r i n g 0040060 t h e m e t a L o c k a s 0040100 w e l l 226 304 004 A 337 \0 240 304 004 ` 0040120 257 \0 o 212 017 240 240 227 301 021 r e a d y Q 0040140 u e u e A r r a y : 226 017 242 240 227 0040160 301 005 A R R A Y 226 017 240 240 227 301 \n P 0040200 r i o r i t y 226 017 242 240 227 301 002 O 0040220 F 226 017 240 240 227 301 016 M e t a Q u e 0040240 u e R e p ; 226 304 004 \t i \0 024 304 006 \0 0040260 307 231 \0 \0 363 212 017 243 240 227 301 ; A l l 0040300 r e a d y p r o c e s s e s 0040320 a r e q u e u e d i n t h 0040340 i s a r r a y o f m e t a 0040360 q u e u e s . 226 304 004 A 337 \0 240 304 004 0040400 Z { \0 } 212 017 240 240 227 301 ! p a g e F 0040420 a u l t M e t a Q u e u e : M 0040440 e t a Q u e u e R e p ; 226 304 004 \t 0040460 i \0 024 304 004 : 250 \0 W 212 017 243 240 227 301 ? 0040500 A l l p r o c e s s e s w a 0040520 i t i n g p a g e f a u l t 0040540 s a r e q u e u e d i n 0040560 t h i s m e t a q u e u e . 226 0040600 304 004 A 337 \0 240 304 004 B Q \0 s 212 017 240 240 0040620 227 301 031 p a g e F a u l t C o n d 0040640 : C o n d i t i o n ; 226 304 004 \t 0040660 i \0 024 304 004 H 4 \0 211 212 017 243 240 227 301 S 0040700 A l l p r o c e s s e s w a 0040720 i t i n g t o h a n d l e 0040740 p a g e f a u l t s a r e 0040760 q u e u e d o n t h i s i 0041000 n t e r r u p t c o n d i t i 0041020 o n . 226 304 004 A 337 \0 240 304 004 ! 022 \0 M 0041040 212 017 240 240 227 301 037 t i m e o u t M e 0041060 t a Q u e u e : M e t a Q u e 0041100 u e R e p ; 226 304 004 \t i \0 024 304 004 " 0041120 221 \0 [ 212 017 243 240 227 301 < A l l p r 0041140 o c e s s e s w a i t i n g 0041160 t i m e o u t s a r e q u e 0041200 u e d i n t h i s m e t a 0041220 q u e u e . 226 304 004 A 337 \0 240 304 004 034 0041240 ; \0 d 212 017 240 240 227 301 033 t a i l P r 0041260 o c e s s o r : P r o c e s s 0041300 o r _ 226 017 242 240 227 301 003 N I L 226 0041320 017 240 240 227 301 001 ; 226 240 k 240 j 017 241 017 245 0041340 223 304 006 \0 \0 035 001 B Q 240 244 240 250 305 005 X 0041360 e r o x 305 \n P r e s s F o n t s 0041400 305 \n L a u r e l - M R R 017 243 241 033 0041420 240 223 304 004 003 # \0 P 240 244 240 224 017 240 225 017 0041440 240 240 227 304 004 K \r \0 % 304 006 \0 346 304 \0 \0 0041460 O 212 301 001 6 226 304 004 \t i \0 024 304 006 \0 203 0041500 033 \0 \0 1 212 305 005 X e r o x 305 \n P r 0041520 e s s F o n t s 305 016 T i m e s R 0041540 o m a n - M I R 017 243 241 033 240 223 304 004 0041560 003 # \0 P 240 244 240 224 017 241 225 017 241 240 227 301 0041600 Q P r o c e s s o r s a r e 0041620 a r r a n g e d i n a r i 0041640 n g . T h i s v a r i a b 0041660 l e r e f e r s t o t h e 0041700 t a i l o f t h e r i n 0041720 g . 226 304 004 \t i \0 024 304 006 \0 215 307 \0 \0 0041740 6 212 305 005 X e r o x 305 \n P r e s s 0041760 F o n t s 305 016 T i m e s R o m a 0042000 n - B I R 017 243 241 033 240 223 304 004 003 # \0 0042020 P 240 244 240 224 017 242 225 017 242 240 227 301 * T h 0042040 i s v a r i a b l e i s p 0042060 r o t e c t e d b y t h e 0042100 m e t a L o c k 226 017 241 240 227 301 \v 0042120 ? ? ? ? - a j d 226 304 004 A 337 \0 0042140 240 304 006 001 233 364 \0 \0 243 212 017 240 240 227 301 033 0042160 t a i l F r e e P r o c e s s : 0042200 P r o c e s s _ 226 305 005 X e 0042220 r o x 305 \n P r e s s F o n t s 305 0042240 016 T i m e s R o m a n - M R R 017 0042260 243 241 033 240 223 304 004 003 # \0 d 240 244 240 224 017 0042300 243 225 017 243 240 227 301 003 N I L 226 017 240 240 227 0042320 301 001 ; 226 304 004 \t i \0 024 304 006 \0 303 263 \0 0042340 \0 O 212 017 241 240 227 301 d F r e e p r 0042360 o c e s s e s a r e a r r a 0042400 n g e d i n a r i n g . 0042420 T h i s v a r i a b l e r 0042440 e f e r s t o t h e t a i 0042460 l o f t h e r i n g . 0042500 T h i s v a r i a b l e 226 304 004 0042520 \t 341 \0 024 304 006 \0 337 223 \0 \0 \ 212 017 241 240 0042540 227 301 035 i s p r o t e c t e d 0042560 b y t h e m e t a L o c k . 0042600 226 304 004 A 337 \0 240 304 006 \0 216 @ \0 \0 = 212 0042620 017 240 240 227 301 031 p a n i c S t o p L 0042640 o c k : P r o c e s s _ 226 0042660 017 243 240 227 301 003 N I L 226 017 240 240 227 301 001 0042700 ; 226 304 004 \t i \0 024 304 006 \0 373 001 \0 \0 n 0042720 212 017 241 240 227 301 ] P o s s e s s i n 0042740 g t h i s l o c k g i v e 0042760 s t h e c u r r e n t p r 0043000 o c e s s o r t h e e x c l 0043020 u s i v e r i g h t t o c 0043040 o m e t o a p a n i c s 0043060 t o p . 226 304 004 A 337 \0 240 304 004 s 274 \0 0043100 5 212 017 240 240 227 301 \v s p i n T r i e 0043120 s : 226 017 243 240 227 301 003 N A T 226 017 240 0043140 240 227 301 006 _ 1 0 ; 226 304 004 \t i \0 0043160 024 304 006 \0 312 260 \0 \0 _ 212 017 241 240 227 301 Y 0043200 T h i s i s t h e n u m b 0043220 e r o f t i m e s t o s 0043240 p i n - t e s t i n M o n i 0043260 t o r E n t r y w h e n t h 0043300 e m o n i t o r l o c k i 0043320 s h e l d b y 226 304 004 \t 341 \0 024 0043340 304 006 \0 255 . \0 \0 S 212 017 241 240 227 301 V a 0043360 n o t h e r r u n n i n g p 0043400 r o c e s s o r . T h e " 0043420 c o r r e c t " v a l u e w 0043440 i l l b e d e t e r m i n e 0043460 d b y e x p e r i m e n t a 0043500 t i o n . 226 304 004 A 337 \0 240 304 006 \0 342 0043520 253 \0 \0 r 212 017 240 240 227 301 + l o w e s 0043540 t R u n n i n g P r i o r i t y 0043560 : P r i o r i t y _ P r i 0043600 o r i t y . 226 017 243 240 227 301 005 F I R 0043620 S T 226 017 240 240 227 301 001 ; 226 304 004 \t i \0 0043640 024 304 004 K 227 \0 ' 212 017 241 240 227 301 \ T h 0043660 i s i s t h e p r i o r i 0043700 t y o f t h e l o w e s t 0043720 p r i o r i t y r u n n i n 0043740 g p r o c e s s . I t i 0043760 s u s e d i n t h e s c 0044000 h e d u l e r t o 226 304 004 \t 341 \0 0044020 024 304 004 ~ 265 \0 C 212 017 241 240 227 301 ^ a c 0044040 c e l e r a t e t e s t i n g 0044060 f o r h a n d l i n g o f 0044100 r e s c h e d u l e i n t e 0044120 r r u p t s . T h i s v a 0044140 l u e s h o u l d o n l y 0044160 b e u s e d a s a 226 304 004 \t 0044200 341 \0 024 304 004 g E \0 8 212 017 241 240 227 301 1 0044220 h i n t u n l e s s o n e 0044240 i s i n p o s s e s s i o n 0044260 o f t h e m e t a L o c k 0044300 . 226 304 004 \t i \0 024 304 004 Y 263 \0 2 212 017 0044320 241 240 227 301 @ ? ? ? ? A b s t r a 0044340 c t l y , t h e i n i t i a 0044360 l v a l u e s h o u l d b 0044400 e P r i o r i t y . L A S T 0044420 - a j d 226 304 004 A 337 \0 240 304 006 001 003 0044440 u \0 \0 231 212 017 240 240 227 301 * h i g h e 0044460 s t R e a d y P r i o r i t y : 0044500 P r i o r i t y _ P r i o 0044520 r i t y . 226 017 243 240 227 301 005 F I R S 0044540 T 226 017 240 240 227 301 001 ; 226 304 004 \t i \0 024 0044560 304 006 \0 200 ] \0 \0 N 212 017 241 240 227 301 Z T 0044600 h i s i s t h e p r i o r 0044620 i t y o f t h e h i g h e 0044640 s t p r i o r i t y p r o c 0044660 e s s o n t h e r e a d y 0044700 q u e u e . I t i s u 0044720 s e d a s a n 226 304 004 \t 341 \0 024 0044740 304 006 \n 8 366 \0 006 e 212 017 241 240 227 301 036 a 0044760 c c e l e r a t o r f o r v 0045000 a r i o u s c a s e s . 226 304 004 0045020 A 337 \0 240 304 006 \0 253 \r \0 \0 r 212 017 240 240 0045040 227 301 021 d e f e r r e d W a k e u 0045060 p s : 226 017 243 240 227 301 004 B O O L 226 0045100 017 240 240 227 301 003 _ 226 017 243 240 227 301 005 0045120 F A L S E 226 017 240 240 227 301 001 ; 226 304 004 0045140 \t i \0 024 304 006 \0 320 331 \0 \0 220 212 305 005 X 0045160 e r o x 305 \n P r e s s F o n t s 0045200 305 016 T i m e s R o m a n - M I R 0045220 017 243 241 033 240 223 304 004 003 # \0 d 240 244 240 224 0045240 017 244 225 017 244 240 227 301 004 T R U E 226 017 241 0045260 240 227 301 N i f t h e r e h a 0045300 v e b e e n c a l l s t o 0045320 M a k e R e a d y s i n c e 0045340 t h e l a s t c a l l t 0045360 o t h e s c h e d u l e r 0045400 o r 226 304 004 \t 341 \0 024 304 006 \0 251 314 \0 \0 0045420 y 212 017 241 240 227 301 020 R a i s e R e s 0045440 c h e d u l e 226 017 244 240 227 301 003 A 0045460 N D 226 017 241 240 227 301 H t h e p r 0045500 i o r i t y o f t h e p r 0045520 o c e s s t o m a k e r e 0045540 a d y i s l i k e l y t o 0045560 b e w o r t h r u n n i n 0045600 g 226 304 004 \t 341 \0 024 304 004 h n \0 M 212 017 0045620 241 240 227 301 Z i m m e d i a t e l y 0045640 . T h i s i s a s t a 0045660 t i s t i c a l h a c k t o 0045700 r e d u c e t h e n u m b 0045720 e r o f w a k e u p s o f 0045740 p r o c e s s e s t h a t 226 0045760 304 004 \t 341 \0 024 304 006 \0 300 s \0 \0 223 212 017 0046000 241 240 227 301 = h a v e b e e n N 0046020 o t i f i e d b e f o r e t 0046040 h e m o n i t o r l o c k 0046060 h a s b e e n r e l e a s e 0046100 d . 226 304 004 T 261 \0 240 304 006 \0 201 257 \0 \0 0046120 g 212 017 241 240 227 301 [ I t m a y b 0046140 e w o r t h k e e p i n g 0046160 t h i s f l a g o n a f 0046200 i n e r b a s i s t h a n 0046220 g l o b a l l y , o r h a v 0046240 i n g s o m e o t h e r h 0046260 a c k 226 304 004 X q \0 240 304 004 S 241 \0 E 0046300 212 017 241 240 227 301 \t e n t i r e l y . 0046320 226 304 004 034 ; \0 P 304 004 N 361 \0 J 212 305 005 0046340 X e r o x 305 \n P r e s s F o n t 0046360 s 305 016 T i m e s R o m a n - B R 0046400 R 017 243 241 033 240 223 304 004 \t i \0 310 240 244 240 0046420 224 017 245 225 017 245 240 227 301 023 E x t e r n 0046440 a l p r o c e d u r e s 226 304 004 0046460 A 337 \0 240 304 004 F 265 \0 I 212 305 005 X e r 0046500 o x 305 \n P r e s s F o n t s 305 016 0046520 T i m e s R o m a n - B R R 017 243 0046540 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 246 0046560 225 017 246 240 227 301 004 F o r k 226 017 240 240 227 0046600 301 002 : 226 017 243 240 227 301 006 P U B L I 0046620 C 226 017 240 240 227 301 001 226 017 243 240 227 301 004 0046640 P R O C 226 304 004 \t i \0 020 304 004 5 s \0 0046660 : 212 017 240 240 227 301 \a [ p r o c : 226 0046700 017 243 240 227 301 004 P R O C 226 017 240 240 227 301 0046720 001 226 017 243 240 227 301 003 A N Y 226 017 240 240 0046740 227 301 001 226 017 243 240 227 301 \a R E T U R 0046760 N S 226 017 240 240 227 301 001 226 017 243 240 227 301 0047000 003 A N Y 226 017 240 240 227 301 032 , a r g 0047020 P t r : W o r d S e q , n A 0047040 r g s : 226 017 243 240 227 301 003 I N T 226 0047060 017 240 240 227 301 \t , n R e t s : 226 0047100 017 243 240 227 301 003 I N T 226 017 240 240 227 301 001 0047120 ] 226 304 004 \t i \0 020 304 004 5 X \0 = 212 017 0047140 243 240 227 301 \a R E T U R N S 226 017 240 240 0047160 227 301 021 [ n e w : P r o c e s 0047200 s _ 226 017 243 240 227 301 003 N I L 226 017 0047220 240 240 227 301 005 ] = { 226 304 004 \t i \0 0047240 024 304 004 > 247 \0 L 212 017 241 240 227 301 a . . 0047260 . f o r k s a n e w p r 0047300 o c e s s , w h i c h w i l 0047320 l i n i t i a l l y c a l l 0047340 t h e g i v e n p r o c e 0047360 d u r e u s i n g t h e g 0047400 i v e n a r g u m e n t s . 226 0047420 304 004 \t 341 \0 024 304 006 \0 214 262 \0 \0 265 212 017 0047440 241 240 227 301 ? T h e n u m b e r 0047460 o f w o r d s o f a r g u 0047500 m e n t s a n d r e t u r n 0047520 s i s a l s o n e c e s s 0047540 a r y . 226 304 004 \t i \0 024 304 004 O D \0 0047560 m 212 304 004 \t i \0 024 304 004 X 263 \0 203 212 017 0047600 241 240 227 301 027 I n t h e c a l l 0047620 i n g p r o c e s s : 226 304 004 T 0047640 261 \0 240 304 004 0 G \0 M 212 017 241 240 227 301 $ 0047660 F 1 : a l l o c a t e a n 0047700 e w p r o c e s s . R e t 0047720 u r n 226 017 244 240 227 301 003 N I L 226 017 0047740 241 240 227 301 i f w e c a n ' 0047760 t d o t h i s . ( E r r 0050000 o r ? ? ) 226 304 004 \t i \0 020 304 004 [ % 0050020 \0 236 212 017 241 240 227 301 S - - C H H : 0050040 P r i n c O p s P r o c e s 0050060 s I m p l . F o r k w a i t s 0050100 u n t i l a p r o c e s s 0050120 i s a v a i l a b l e . 0050140 D o w e r e a l l y 226 304 004 \t 0050160 311 \0 020 304 004 . 030 \0 W 212 017 241 240 227 301 , 0050200 w a n t t o c h a n g e t 0050220 h e s e m a n t i c s ? M a 0050240 r c h 1 2 , 1 9 8 7 226 304 004 T 0050260 261 \0 240 304 004 A 270 \0 211 212 017 241 240 227 301 004 0050300 F 2 : 226 241 235 301 005 n e w F X 226 017 0050320 241 017 241 241 236 301 030 _ A l l o c a 0050340 t e a F X o f ( I F 226 0050360 241 235 301 005 n R e t s 226 017 241 017 241 241 236 0050400 301 025 > m a x S t a c k R e t 0050420 s T H E N 226 241 235 301 005 n R e t 0050440 s 226 017 241 017 241 241 236 301 \f E L S E 0050460 0 ) + ( I F 226 304 004 X q \0 240 304 004 ) 0050500 032 \0 _ 212 017 241 240 227 241 235 301 005 n A r g 0050520 s 226 017 241 017 241 241 236 301 025 > m a x 0050540 S t a c k A r g s T H E N 226 0050560 241 235 301 005 n A r g s 226 017 241 017 241 241 236 0050600 301 020 E L S E 0 ) w o r d s 0050620 . 226 304 004 T 261 \0 240 304 004 005 [ \0 016 212 0050640 017 241 240 227 301 034 F 3 : c o p y t 0050660 h e a r g u m e n t s f r o 0050700 m 226 241 235 301 006 a r g P t r 226 017 241 0050720 017 241 241 236 301 006 ^ f o r 226 241 235 301 0050740 005 n A r g s 226 017 241 017 241 241 236 301 017 0050760 w o r d s t o n e w F X 226 304 0051000 004 \t i \0 020 304 004 + 214 \0 203 212 017 241 240 227 0051020 301 5 ( t h e o r i g i n a l 0051040 a r g u m e n t s t o r a g e 0051060 b e l o n g s t o t h e 0051100 c a l l e r ) 226 304 004 T 261 \0 240 304 004 0051120 . 004 \0 243 212 017 241 240 227 301 W F 4 : s 0051140 e t u p t h e p r o c e s s 0051160 b l o c k & m a k e i t 0051200 r e a d y t o r u n F o 0051220 r k e e , h a v i n g s e t 0051240 t h i n g s u p s o t h 0051260 a t 226 240 k 240 j 017 241 017 245 223 304 006 \0 \0 0051300 035 001 B Q 240 244 240 250 305 005 X e r o x 305 0051320 \n P r e s s F o n t s 305 \n L a u 0051340 r e l - M R R 017 243 241 033 240 223 304 004 003 0051360 # \0 P 240 244 240 224 017 240 225 017 240 240 227 304 006 0051400 001 N 307 \0 \0 245 304 006 \0 346 304 \0 \0 O 212 301 0051420 001 7 226 304 004 X q \0 240 304 006 \0 203 033 \0 \0 0051440 1 212 305 005 X e r o x 305 \n P r e s s 0051460 F o n t s 305 016 T i m e s R o m a 0051500 n - M I R 017 243 241 033 240 223 304 004 003 # \0 0051520 P 240 244 240 224 017 241 225 017 241 240 227 301 + F o 0051540 r k e e ' s a r g u m e n t s 0051560 w i l l b e c o r r e c t 0051600 . F o r k e e [ 226 241 235 301 004 p r 0051620 o c 226 017 241 017 241 241 236 301 002 , 226 241 235 0051640 301 005 n e w F X 226 017 241 017 241 241 236 301 002 0051660 , 226 241 235 301 005 n A r g s 226 017 241 017 0051700 241 241 236 301 002 , 226 241 235 301 005 n R e t 0051720 s 226 017 241 017 241 241 236 301 001 ] 226 304 004 \t i 0051740 \0 024 304 006 \0 344 205 \0 \0 W 212 304 004 \t i \0 0051760 024 304 004 v 223 \0 . 212 017 240 240 227 301 002 { 0052000 226 017 241 240 227 301 C - - T h e f o 0052020 l l o w i n g S I M c o d e 0052040 w o r k s i f t h e r e 0052060 a r e n o a r g s o r r 0052100 e s u l t s . . . 226 304 004 T 261 \0 0052120 240 304 006 001 023 242 \0 \0 m 212 017 240 240 227 301 \t 0052140 s i m P r o c : 226 305 005 X e r o 0052160 x 305 \n P r e s s F o n t s 305 016 T 0052200 i m e s R o m a n - M R R 017 243 241 0052220 033 240 223 304 004 003 # \0 d 240 244 240 224 017 242 225 0052240 017 242 240 227 301 004 P R O C 226 017 240 240 227 301 0052260 003 _ 226 017 242 240 227 301 \b L O O P H 0052300 O L E 226 017 240 240 227 301 \b [ p r o c 0052320 ] ; 226 304 004 T 261 \0 240 304 006 001 5 371 \0 \0 0052340 } 212 017 241 240 227 301 6 R D I : a l l 0052360 o c a t e s t o r a g e , c 0052400 o p y a r g s t o a s a 0052420 f e p l a c e , e t c . 226 304 0052440 004 T 261 \0 240 304 004 K [ \0 037 212 017 240 240 227 0052460 301 024 D i s a b l e I n t e r r u 0052500 p t s [ ] ; 226 304 004 T 261 \0 240 304 006 \0 0052520 271 311 \0 \0 N 212 017 240 240 227 301 022 A c q u 0052540 i r e M e t a L o c k [ ] ; 226 304 0052560 004 T 261 \0 240 304 006 002 001 = \0 \0 334 212 017 240 0052600 240 227 301 030 n e w _ N e w P r o 0052620 c e s s I n n e r [ ] ; 226 304 004 T 0052640 261 \0 240 304 004 f 307 \0 - 212 017 241 240 227 301 Y 0052660 R D I : m a k e t h e p r 0052700 o c e s s a s c h e d u l a 0052720 b l e e n t i t y t h a t 0052740 w i l l r u n F o r k e e 0052760 w h e n i t ' s s c h e d u 0053000 l e d . F o r 226 304 004 X q \0 240 0053020 304 006 \0 203 372 \0 \0 ; 212 017 241 240 227 301 \a n 0053040 o w . . . 226 304 004 \t i \0 020 304 006 001 0053060 002 - \0 \0 v 212 017 240 240 227 301 022 C 7 P r 0053100 o c e s s . D e t a c h [ 226 017 0053120 242 240 227 301 004 F O R K 226 017 240 240 227 301 033 0053140 S i m F o r k e e [ n e w , 0053160 s i m P r o c ] ] ; 226 304 004 T 261 0053200 \0 240 304 006 \0 265 320 \0 \0 U 212 017 240 240 227 301 0053220 022 E n q u e u e R e a d y [ n e 0053240 w ] ; 226 304 004 T 261 \0 240 304 004 b ; \0 / 0053260 212 017 240 240 227 301 022 R e l e a s e M e 0053300 t a L o c k [ ] ; 226 304 004 T 261 \0 240 0053320 304 004 p B \0 7 212 017 240 240 227 301 024 E n a 0053340 b l e I n t e r r u p t s [ ] ; 0053360 226 017 241 240 227 301 023 - - a u t o m 0053400 a t i c i n R D I 226 304 004 T 261 0053420 \0 240 304 004 O 257 \0 ( 212 017 240 240 227 301 002 } 0053440 ; 226 304 004 \t i \0 024 304 004 B 021 \0 " 212 017 0053460 240 240 227 301 002 } ; 226 304 004 \t i \0 024 304 004 0053500 { 037 \0 A 212 304 004 A 337 \0 240 304 006 \0 305 p 0053520 \0 \0 k 212 305 005 X e r o x 305 \n P r e 0053540 s s F o n t s 305 016 T i m e s R o 0053560 m a n - B R R 017 243 241 033 240 223 304 004 003 0053600 # \0 P 240 244 240 224 017 243 225 017 243 240 227 301 \t 0053620 S i m F o r k e e 226 017 240 240 227 301 002 0053640 : 226 017 242 240 227 301 004 P R O C 226 017 240 0053660 240 227 301 032 [ p r o c e s s : P 0053700 r o c e s s , p r o c : 226 017 0053720 242 240 227 301 004 P R O C 226 017 240 240 227 301 005 0053740 ] ~ { 226 304 004 \t i \0 024 304 004 , 350 0053760 \0 031 212 017 240 240 227 301 021 S i m B a c k 0054000 g r o u n d [ ] ; 226 017 241 240 227 301 0054020 # - - S I M o n l y , b e 0054040 c a u s e w e j u s t f o 0054060 r k e d 226 304 004 \t i \0 024 304 004 U 236 \0 0054100 1 212 017 240 240 227 301 - S i m C a l l A 0054120 n d S u s p e n d [ p r o c e s 0054140 s . s i m . l o c k , p r o c 0054160 e s s , 226 017 242 240 227 301 003 N I L 226 0054200 017 240 240 227 301 002 ] ; 226 017 241 240 227 301 ( 0054220 - - j u s t s u s p e n d 0054240 u n t i l w e ' r e s w i t 0054260 c h e d t o 226 304 004 \t i \0 024 304 006 0054300 001 @ 374 \0 \0 275 212 017 241 240 227 301 ! R D I 0054320 : g e t a r g u m e n t s 0054340 f r o m s o m e w h e r e 226 304 0054360 004 \t i \0 024 304 004 n 202 \0 C 212 017 240 240 227 0054400 301 \a p r o c [ ] ; 226 304 004 \t i \0 024 0054420 304 004 a 240 \0 = 212 017 241 240 227 301 032 R D I 0054440 : p u t r e s u l t s s o 0054460 m e w h e r e 226 304 004 \t i \0 024 304 004 0054500 u 351 \0 L 212 017 240 240 227 301 034 M o n i t 0054520 o r E n t r y [ @ p r o c e s s 0054540 . l o c k ] ; 226 304 004 \t i \0 024 304 006 0054560 \0 210 272 \0 \0 [ 212 017 242 240 227 301 002 D O 226 0054600 304 004 T 261 \0 240 304 004 * ' \0 035 212 017 242 240 0054620 227 301 006 S E L E C T 226 017 240 240 227 301 023 0054640 p r o c e s s . j o i n S t a 0054660 t e 226 017 242 240 227 301 004 F R O M 226 304 0054700 004 \t i \0 020 304 004 x 313 \0 V 212 017 240 240 227 0054720 301 022 n o n e , e x i t i n g 0054740 = > { 226 304 004 Y 355 \0 213 304 006 \0 226 y 0054760 \0 \0 o 212 017 240 240 227 301 034 p r o c e s 0055000 s . j o i n S t a t e _ e x 0055020 i t i n g ; 226 304 004 Y 355 \0 213 304 006 001 0055040 # b \0 \0 337 212 017 240 240 227 301 . W a i t 0055060 [ @ p r o c e s s . j o i n C o 0055100 n d i t i o n , @ p r o c e s 0055120 s . l o c k ] } ; 226 304 004 \t i \0 0055140 020 304 004 w { \0 _ 212 017 240 240 227 301 025 d e 0055160 t a c h e d , j o i n e d = 0055200 > { 226 304 004 Y 355 \0 213 304 006 001 251 y \0 0055220 001 ` 212 017 242 240 227 301 004 E X I T 226 017 240 0055240 240 227 301 003 } ; 226 304 004 \t i \0 020 304 006 0055260 \0 200 274 \0 \0 o 212 017 240 240 227 301 \f j o i 0055300 n i n g = > { 226 304 004 Y 355 \0 213 0055320 304 004 W 301 \0 O 212 017 240 240 227 301 034 p r o 0055340 c e s s . j o i n S t a t e _ 0055360 e x i t i n g ; 226 304 004 Y 355 \0 213 0055400 304 004 006 _ \0 006 212 017 240 240 227 301 037 N o t 0055420 i f y [ @ p r o c e s s . j o i 0055440 n C o n d i t i o n ] ; 226 304 004 Y 0055460 355 \0 213 304 006 \0 321 253 \0 \0 317 212 017 240 240 227 0055500 301 . W a i t [ @ p r o c e s s . 0055520 j o i n C o n d i t i o n , @ 0055540 p r o c e s s . l o c k ] } ; 0055560 226 304 004 \t i \0 020 304 004 j 377 \0 o 212 017 242 0055600 240 227 301 \a E N D C A S E 226 017 240 240 227 0055620 301 004 = > 226 017 242 240 227 301 005 E R R 0055640 O R 226 017 240 240 227 301 001 ; 226 304 004 T 261 \0 0055660 240 304 004 r _ \0 } 212 017 242 240 227 301 \a E N 0055700 D L O O P 226 017 240 240 227 301 001 ; 226 304 004 0055720 \t i \0 024 304 004 - 346 \0 5 212 017 240 240 227 301 0055740 032 p r o c e s s . j o i n S t a 0055760 t e _ n o n e ; 226 017 241 240 227 0056000 301 6 - - n o t r e a l l y 0056020 n e c e s s a r y ( w i l l 0056040 b e d o n e b y C l e a n 0056060 P r o c e s s ) 226 304 004 \t i \0 024 304 0056100 004 ; 245 \0 I 212 017 240 240 227 301 033 M o n i 0056120 t o r E x i t [ @ p r o c e s s 0056140 . l o c k ] ; 226 304 004 \t i \0 024 304 004 0056160 U B \0 o 212 017 241 240 227 301 025 R D I : 0056200 F r e e t h e r e s u l t s 0056220 226 304 004 \t i \0 024 304 004 026 K \0 037 212 017 240 0056240 240 227 301 024 D i r e c t e d Y i e l 0056260 d [ f r e e , 226 017 242 240 227 301 003 N 0056300 I L 226 017 240 240 227 301 006 , 0 ] ; 226 0056320 017 241 240 227 301 - - T H I S I S 0056340 N O G O O D - M U S T 0056360 I N V O K E 226 304 004 Y 355 \0 213 304 004 Z 0056400 273 \0 207 212 017 241 240 227 301 026 P R O C E S 0056420 S S W I T C H D I R E C T L Y 0056440 226 304 004 \t i \0 024 304 004 3 270 \0 S 212 017 240 0056460 240 227 301 002 } ; 226 304 004 \t i \0 024 304 004 H 0056500 353 \0 177 212 304 004 A 337 \0 240 304 004 : L \0 o 0056520 212 017 243 240 227 301 006 F o r k e e 226 017 240 0056540 240 227 301 002 : 226 017 242 240 227 301 004 P R O 0056560 C 226 017 240 240 227 301 \b [ p r o c : 0056600 226 017 242 240 227 301 004 P R O C 226 017 240 240 227 0056620 301 001 226 017 242 240 227 301 003 A N Y 226 017 240 0056640 240 227 301 001 226 017 242 240 227 301 \a R E T U 0056660 R N S 226 017 240 240 227 301 001 226 017 242 240 227 0056700 301 003 A N Y 226 017 240 240 227 301 032 , a r 0056720 g P t r : W o r d S e q , n 0056740 A r g s : 226 017 242 240 227 301 003 I N T 0056760 226 017 240 240 227 301 \t , n R e t s : 0057000 226 017 242 240 227 301 003 I N T 226 017 240 240 227 301 0057020 001 ] 226 304 004 \t i \0 020 304 006 \0 234 325 \0 001 0057040 H 212 017 242 240 227 301 \a R E T U R N S 226 0057060 017 240 240 227 301 002 [ 226 017 241 240 227 301 \v - 0057100 - d o e s n ' t - - 226 017 240 240 227 301 0057120 005 ] ~ { 226 304 004 \t i \0 024 304 006 \0 0057140 202 y \0 001 0 212 017 241 240 227 301 023 r e t R 0057160 e c o r d : W o r d S e q ; 226 0057200 304 004 \t i \0 024 304 004 7 " \0 221 212 017 241 240 0057220 227 301 " F F 0 : I F n R e t s 0057240 > m a x S t a c k R e t s 0057260 T H E N 226 304 004 T 261 \0 240 304 004 " 0057300 \0 a 212 017 241 240 227 301 016 { r e t R e 0057320 c o r d _ 226 241 235 301 006 a r g P 0057340 t r 226 017 241 017 241 241 236 301 002 ^ ; 226 304 004 0057360 \t i \0 020 304 004 A 307 \0 351 212 017 241 240 227 241 0057400 235 301 006 a r g P t r 226 017 241 017 241 241 236 0057420 301 004 ^ _ 226 241 235 301 006 a r g P t 0057440 r 226 017 241 017 241 241 236 301 \t + n A r 0057460 g s ; 226 240 k 240 j 017 241 017 245 223 304 006 \0 0057500 \0 035 001 B Q 240 244 240 250 305 005 X e r o x 0057520 305 \n P r e s s F o n t s 305 \n L a 0057540 u r e l - M R R 017 243 241 033 240 223 304 004 0057560 003 # \0 P 240 244 240 224 017 240 225 017 240 240 227 304 0057600 006 \0 262 221 \0 \0 X 304 006 \0 346 304 \0 \0 O 212 0057620 301 001 8 226 304 004 \t i \0 020 304 006 \0 203 033 \0 0057640 \0 1 212 305 005 X e r o x 305 \n P r e s 0057660 s F o n t s 305 016 T i m e s R o m 0057700 a n - M I R 017 243 241 033 240 223 304 004 003 # 0057720 \0 P 240 244 240 224 017 241 225 017 241 240 227 301 002 } 0057740 ; 226 304 004 \t i \0 024 304 006 \0 344 205 \0 \0 W 0057760 212 017 241 240 227 301 G F F 1 : D e p e 0060000 n d i n g o n n A r g s , 0060020 e i t h e r p u s h a r g P 0060040 t r o r p u s h n A r g s 0060060 f r o m a r g P t r ^ ; 226 304 0060100 004 \t i \0 024 304 004 v 223 \0 . 212 017 241 240 227 0060120 301 1 F F 2 : P u s h a p p r 0060140 o p r i a t e d e s c r i p t 0060160 o r i n f o r m a t i o n f 0060200 o r 226 241 235 301 004 p r o c 226 017 241 017 0060220 241 241 236 304 004 \t i \0 024 304 006 001 023 242 \0 \0 0060240 m 212 017 241 240 227 301 \n F F 3 : C a l 0060260 l 226 241 235 301 004 p r o c 226 017 241 017 241 0060300 241 236 301 S u s i n g a n i n 0060320 l i n e S F C I i n s t r u 0060340 c t i o n ; i t e v e n t u 0060360 a l l y w i l l r e t u r n 0060400 o r n o t a s i t s e 0060420 e s f i t . 226 304 004 \t i \0 024 304 006 0060440 001 5 371 \0 \0 } 212 017 241 240 227 301 001 226 304 0060460 004 \t i \0 024 304 004 K [ \0 037 212 017 241 240 227 0060500 301 \r J J 1 : p r o c ' s 226 0060520 305 005 X e r o x 305 \n P r e s s F o 0060540 n t s 305 016 T i m e s R o m a n - 0060560 M I R 017 243 241 033 240 223 304 004 003 # \0 d 240 0060600 244 240 224 017 242 225 017 242 240 227 301 006 R E T U 0060620 R N 226 017 241 240 227 301 J r e c o r d 0060640 m a y e i t h e r b e i 0060660 n t h e F X p o i n t e d 0060700 t o b y a r g P t r a t 0060720 o f f s e t n A r g s o r 0060740 o n 226 304 004 \t 341 \0 024 304 004 ~ W \0 5 0060760 212 017 241 240 227 301 \n t h e s t a c k 0061000 . 226 304 004 \t i \0 024 304 004 y i \0 4 212 017 0061020 241 240 227 301 0 J J 2 : w a i t f 0061040 o r J O I N o r D E T A C 0061060 H b y a n o t h e r p r o 0061100 c e s s . 226 304 004 \t i \0 024 304 004 f 335 0061120 \0 - 212 017 241 240 227 301 017 J J 3 : I F 0061140 J O I N e d 226 304 004 T 261 \0 240 304 0061160 006 \0 203 372 \0 \0 ; 212 017 241 240 227 301 006 T H 0061200 E N { 226 304 004 \t i \0 020 304 006 001 002 - 0061220 \0 \0 v 212 017 241 240 227 301 - C o p y r 0061240 e t u r n v a l u e s i n 0061260 s t a c k o r F X t o a 0061300 N a c h o ; 226 304 004 \t i \0 020 304 006 0061320 \0 265 320 \0 \0 U 212 017 241 240 227 301 # G i v 0061340 e t h e N a c h o t o t 0061360 h e o t h e r p r o c e s s 0061400 226 304 004 \t i \0 020 304 004 b ; \0 / 212 017 241 0061420 240 227 301 001 } 226 304 004 T 261 \0 240 304 004 p B 0061440 \0 7 212 304 004 \t i \0 024 304 004 O 257 \0 ( 212 0061460 017 241 240 227 301 ! J J 4 : F r a m e 0061500 A l l o c a t o r . F r e e [ a 0061520 r g P t r ] ; 226 304 004 T 261 \0 240 304 004 0061540 B 021 \0 " 212 304 004 \t i \0 024 304 004 { 037 \0 0061560 A 212 017 241 240 227 301 ` J J 5 : p l a 0061600 c e t h e p r o c e s s i 0061620 n t h e f r e e l i s t 0061640 ( s t a t e _ f r e e ) , 0061660 f r e e a n y r e m a i n i 0061700 n g r e s o u r c e s ( p o 0061720 s s i b l y a 226 304 004 \t 341 \0 024 304 0061740 004 ^ 4 \0 3 212 017 241 240 227 301 031 F X ) 0061760 a n d q u i e t l y d i s a 0062000 p p e a r 226 304 004 \t i \0 024 304 006 \0 203 0062020 D \0 \0 I 212 304 004 \t i \0 024 304 004 D 8 \0 0062040 ' 212 017 240 240 227 301 024 N o t Y e t I m 0062060 p l e m e n t e d [ ] ; 226 304 004 \t 0062100 i \0 024 304 006 \0 274 272 \0 \0 o 212 017 240 240 227 0062120 301 002 } ; 226 304 004 \t i \0 024 304 006 002 313 001 0062140 \0 001 261 212 304 004 A 337 \0 240 304 006 001 2 \v \0 0062160 \0 277 212 305 005 X e r o x 305 \n P r e s 0062200 s F o n t s 305 016 T i m e s R o m 0062220 a n - B R R 017 243 241 033 240 223 304 004 003 # 0062240 \0 P 240 244 240 224 017 243 225 017 243 240 227 301 004 J 0062260 o i n 226 017 240 240 227 301 002 : 226 305 005 X 0062300 e r o x 305 \n P r e s s F o n t s 0062320 305 016 T i m e s R o m a n - M R R 0062340 017 243 241 033 240 223 304 004 003 # \0 d 240 244 240 224 0062360 017 244 225 017 244 240 227 301 006 P U B L I C 226 0062400 017 240 240 227 301 001 226 017 244 240 227 301 004 P R 0062420 O C 226 017 240 240 227 301 ( [ p r o c e 0062440 s s : P r o c e s s , r e t 0062460 P t r : W o r d S e q ] = 0062500 { 226 304 004 \t i \0 024 304 004 M 253 \0 2 212 017 0062520 241 240 227 301 030 . . . j o i n s t 0062540 h e s p e c i f i e d 226 241 235 0062560 301 \a p r o c e s s 226 017 241 017 241 241 236 0062600 301 A , w h i c h w a i t s 0062620 f o r t h e p r o c e s s 0062640 t o c o m p l e t e , t h e 0062660 n c o p i e s t h e r e t 0062700 u r n 226 304 004 \t 341 \0 024 304 006 \0 336 357 \0 0062720 \0 224 212 017 241 240 227 301 037 v a l u e s 0062740 t o t h e a d d r e s s g 0062760 i v e n b y 226 241 235 301 006 r e t 0063000 P t r 226 017 241 017 241 241 236 301 001 . 226 304 004 0063020 \t i \0 024 304 004 5 354 \0 % 212 304 004 \t i \0 0063040 024 304 004 J 245 \0 5 212 017 241 240 227 301 027 I n 0063060 t h e c a l l i n g p r o 0063100 c e s s : 226 304 004 T 261 \0 240 304 004 d 231 0063120 \0 J 212 017 241 240 227 301 \r J 1 : w a i 0063140 t f o r 226 241 235 301 \a p r o c e 0063160 s s 226 017 241 017 241 241 236 301 - t o b 0063200 e i n t h e d o n e s t 0063220 a t e ( w a i t o n c o n 0063240 d i t i o n ? ) 226 304 004 T 261 \0 240 304 0063260 006 \0 301 363 \0 \0 224 212 017 241 240 227 301 036 J 2 0063300 : c o p y t h e r e t u r 0063320 n v a l u e s t o 226 241 235 301 0063340 006 r e t P t r 226 017 241 017 241 241 236 301 001 0063360 ^ 226 304 004 T 261 \0 240 304 004 . 255 \0 % 212 017 0063400 241 240 227 301 5 J 3 : p l a c e t 0063420 h e p r o c e s s i n t h 0063440 e f r e e l i s t ( s t a 0063460 t e _ f r e e ) 226 304 004 T 261 \0 0063500 240 304 006 \0 236 330 \0 \0 203 212 017 241 240 227 301 030 0063520 J 4 : r e t u r n t o t h 0063540 e c a l l e r 226 304 004 T 261 \0 240 304 0063560 004 V 033 \0 J 212 304 004 \t i \0 024 304 006 \0 305 0063600 J \0 \0 261 212 017 240 240 227 301 002 { 226 017 241 0063620 240 227 301 037 - - S I M o n l y , 0063640 n o a r g s o r r e s u 0063660 l t s 226 304 004 T 261 \0 240 304 004 ' n \0 % 0063700 212 017 240 240 227 301 034 M o n i t o r E n 0063720 t r y [ @ p r o c e s s . l o c 0063740 k ] ; 226 304 004 T 261 \0 240 304 004 T c \0 S 0063760 212 017 244 240 227 301 002 D O 226 304 004 \t i \0 020 0064000 304 004 G 235 \0 J 212 017 244 240 227 301 006 S E L 0064020 E C T 226 017 240 240 227 301 023 p r o c e 0064040 s s . j o i n S t a t e 226 017 244 0064060 240 227 301 004 F R O M 226 304 004 Y 355 \0 213 304 0064100 004 ` y \0 i 212 017 240 240 227 301 022 n o n e 0064120 , j o i n i n g = > { 226 304 0064140 004 034 ; \0 ( 304 004 / \0 % 212 017 240 240 227 0064160 301 034 p r o c e s s . j o i n S t 0064200 a t e _ j o i n i n g ; 226 304 0064220 004 034 ; \0 ( 304 004 177 < \0 233 212 017 240 240 227 0064240 301 . W a i t [ @ p r o c e s s . 0064260 j o i n C o n d i t i o n , @ 0064300 p r o c e s s . l o c k ] } ; 0064320 226 304 004 Y 355 \0 213 304 004 9 037 \0 J 212 017 240 0064340 240 227 301 \f e x i t i n g = > { 0064360 226 304 004 034 ; \0 ( 304 004 W z \0 y 212 017 241 0064400 240 227 301 017 g e t t h e r e s u 0064420 l t s 226 304 004 034 ; \0 ( 304 004 030 360 \0 % 0064440 212 017 240 240 227 301 033 p r o c e s s . j 0064460 o i n S t a t e _ j o i n e 0064500 d ; 226 304 004 034 ; \0 ( 304 004 [ A \0 222 212 0064520 017 240 240 227 301 037 N o t i f y [ @ p r 0064540 o c e s s . j o i n C o n d i t 0064560 i o n ] ; 226 304 004 034 ; \0 ( 304 004 * 241 0064600 \0 J 212 017 244 240 227 301 004 E X I T 226 017 240 0064620 240 227 301 003 } ; 226 304 004 Y 355 \0 213 304 004 0064640 _ h \0 265 212 017 240 240 227 301 025 d e t a c 0064660 h e d , j o i n e d = > { 0064700 226 304 004 034 ; \0 ( 304 004 021 261 \0 % 212 017 241 0064720 240 227 301 ( T h i s i s a c l 0064740 i e n t e r r o r . W h a 0064760 t t o d o ? ? ? ? 226 304 004 034 0065000 ; \0 ( 304 004 ` 377 \0 342 212 017 244 240 227 301 005 0065020 E R R O R 226 017 240 240 227 301 001 ; 226 304 004 0065040 034 ; \0 ( 304 004 7 " \0 221 212 017 240 240 227 301 0065060 002 } ; 226 304 004 Y 355 \0 213 304 004 " \0 a 0065100 212 017 244 240 227 301 \a E N D C A S E 226 017 0065120 240 240 227 301 004 = > 226 017 244 240 227 301 005 0065140 E R R O R 226 017 240 240 227 301 001 ; 226 304 004 0065160 \t i \0 020 304 004 L 9 001 016 212 017 244 240 227 301 0065200 \a E N D L O O P 226 017 240 240 227 301 001 ; 0065220 226 240 k 240 j 017 241 017 245 223 304 006 \0 \0 035 001 0065240 B Q 240 244 240 250 305 005 X e r o x 305 \n P 0065260 r e s s F o n t s 305 \n L a u r e 0065300 l - M R R 017 243 241 033 240 223 304 004 003 # \0 0065320 P 240 244 240 224 017 240 225 017 240 240 227 304 004 026 P 0065340 \0 \v 304 006 \0 346 304 \0 \0 O 212 301 001 9 226 304 0065360 004 T 261 \0 240 304 006 \0 203 033 \0 \0 1 212 017 240 0065400 240 227 301 033 M o n i t o r E x i t [ 0065420 @ p r o c e s s . l o c k ] ; 226 0065440 304 004 T 261 \0 240 304 004 < i \0 027 212 017 240 240 0065460 227 301 002 } ; 226 304 004 \t i \0 024 304 006 001 376 0065500 U \0 \0 306 212 017 240 240 227 301 002 } ; 226 304 004 0065520 \t i \0 024 304 004 v 325 \0 / 212 304 004 A 337 \0 0065540 240 304 004 ' 253 \0 020 212 305 005 X e r o x 305 0065560 \n P r e s s F o n t s 305 016 T i m 0065600 e s R o m a n - B R R 017 243 241 033 240 0065620 223 304 004 003 # \0 P 240 244 240 224 017 241 225 017 241 0065640 240 227 301 \t S i m D e t a c h 226 017 240 0065660 240 227 301 002 : 226 305 005 X e r o x 305 \n 0065700 P r e s s F o n t s 305 016 T i m e 0065720 s R o m a n - M R R 017 243 241 033 240 223 0065740 304 004 003 # \0 d 240 244 240 224 017 242 225 017 242 240 0065760 227 301 004 P R O C 226 017 240 240 227 301 027 [ 0066000 p r o c e s s : P r o c e s s 0066020 ] ~ { 226 304 004 \t i \0 024 304 006 \0 337 0066040 223 \0 \0 \ 212 017 240 240 227 301 034 M o n i t 0066060 o r E n t r y [ @ p r o c e s s 0066100 . l o c k ] ; 226 304 004 \t i \0 024 304 004 0066120 E \r \0 035 212 017 242 240 227 301 006 S E L E C 0066140 T 226 017 240 240 227 301 023 p r o c e s s 0066160 . j o i n S t a t e 226 017 242 240 227 0066200 301 004 F R O M 226 304 004 T 261 \0 240 304 006 \0 0066220 220 225 \0 \0 > 212 017 240 240 227 301 \t n o n e 0066240 = > { 226 304 004 \t i \0 020 304 006 001 035 0066260 \ \0 \0 } 212 017 240 240 227 301 037 p r o c e 0066300 s s . j o i n S t a t e _ d 0066320 e t a c h e d } ; 226 304 004 T 261 \0 0066340 240 304 006 \0 260 x \0 \0 O 212 017 240 240 227 301 \f 0066360 e x i t i n g = > { 226 304 004 \t 0066400 i \0 020 304 006 001 a \0 \0 204 212 017 240 240 227 0066420 301 035 p r o c e s s . j o i n S t 0066440 a t e _ d e t a c h e d ; 226 0066460 304 004 \t i \0 020 304 006 \0 233 346 \0 \0 I 212 017 0066500 240 240 227 301 ! N o t i f y [ @ p r o 0066520 c e s s . j o i n C o n d i t i 0066540 o n ] } ; 226 304 004 T 261 \0 240 304 006 \0 0066560 255 . \0 \0 S 212 017 240 240 227 301 \f j o i n 0066600 i n g = > { 226 304 004 \t i \0 020 304 0066620 006 001 027 \0 \0 211 212 305 005 X e r o x 305 0066640 \n P r e s s F o n t s 305 016 T i m 0066660 e s R o m a n - M I R 017 243 241 033 240 0066700 223 304 004 003 # \0 P 240 244 240 224 017 243 225 017 243 0066720 240 227 301 031 T h i s i s a c l 0066740 i e n t e r r o r . 226 305 005 0066760 X e r o x 305 \n P r e s s F o n t 0067000 s 305 016 T i m e s R o m a n - B I 0067020 R 017 243 241 033 240 223 304 004 003 # \0 P 240 244 240 0067040 224 017 244 225 017 244 240 227 301 017 W h a t t 0067060 o d o ? ? ? ? 226 304 004 \t i \0 020 0067100 304 006 \0 342 253 \0 \0 r 212 017 242 240 227 301 005 E 0067120 R R O R 226 017 240 240 227 301 003 } ; 226 304 0067140 004 T 261 \0 240 304 006 \0 264 Y \0 \0 ] 212 017 240 0067160 240 227 301 025 d e t a c h e d , j o 0067200 i n e d = > { 226 304 004 \t i \0 020 0067220 304 004 w 024 \0 ? 212 017 243 240 227 301 . T h i 0067240 s i s a c l i e n t e r 0067260 r o r , b u t p r o b a b l 0067300 y b e n i g n . 226 017 244 240 227 0067320 301 017 W h a t t o d o ? ? ? 0067340 ? 226 304 004 \t i \0 020 304 004 l 237 \0 ; 212 017 0067360 242 240 227 301 005 E R R O R 226 017 240 240 227 301 0067400 003 } ; 226 304 004 T 261 \0 240 304 006 001 027 213 0067420 \0 \0 234 212 017 242 240 227 301 \a E N D C A S 0067440 E 226 017 240 240 227 301 004 = > 226 017 242 240 0067460 227 301 005 E R R O R 226 017 240 240 227 301 001 ; 0067500 226 304 004 \t i \0 024 304 004 q I \0 A 212 017 240 0067520 240 227 301 033 M o n i t o r E x i t [ 0067540 @ p r o c e s s . l o c k ] ; 226 0067560 304 004 \t i \0 024 304 006 \0 372 255 \0 \0 224 212 017 0067600 240 240 227 301 002 } ; 226 304 004 \t i \0 024 304 004 0067620 1 W \0 036 212 304 004 A 337 \0 240 304 004 \ 213 \0 0067640 : 212 017 241 240 227 301 \r D i r e c t e d 0067660 Y i e l d 226 017 240 240 227 301 002 : 226 017 0067700 242 240 227 301 006 P U B L I C 226 017 240 240 227 0067720 301 001 226 017 242 240 227 301 004 P R O C 226 304 0067740 004 \t i \0 020 304 006 \0 210 E \0 \0 X 212 017 240 0067760 240 227 301 ? [ n e x t S t a t e : 0070000 P r o c e s s S t a t e , n e 0070020 x t P r o c e s s : P r o c e 0070040 s s , w h e n : T i c k s ] 0070060 = 226 017 242 240 227 301 \a T R U S T E 0070100 D 226 017 240 240 227 301 002 { 226 304 004 \t i \0 0070120 024 304 006 \0 216 r \0 \0 _ 212 017 243 240 227 301 = 0070140 S I M o n l y . . . t h i 0070160 s i s a v e n e e r a r 0070200 o u n d R D I D i r e c t e d 0070220 Y i e l d , b e l o w . 226 304 004 0070240 \t i \0 024 304 006 \0 320 331 \0 \0 220 212 017 241 240 0070260 227 301 017 D o D i r e c t e d Y i e 0070300 l d 226 017 240 240 227 301 002 : 226 017 242 240 227 0070320 301 004 P R O C 226 017 240 240 227 301 6 ~ 0070340 { R D I D i r e c t e d Y i e 0070360 l d [ n e x t S t a t e , n e 0070400 x t P r o c e s s , w h e n ] 0070420 } ; 226 304 004 \t i \0 024 304 004 J D \0 5 0070440 212 017 240 240 227 301 P S i m C a l l A n 0070460 d S u s p e n d [ C u r r e n t 0070500 P r o c e s s [ ] . s i m . l o 0070520 c k , C u r r e n t P r o c e 0070540 s s [ ] , D o D i r e c t e d 0070560 Y i e l d ] ; 226 304 004 \t i \0 024 304 004 0070600 ? 215 \0 / 212 017 243 240 227 301 < T h i s 0070620 i s w h e r e t h e p r o 0070640 c e s s w i l l r e s u m e 0070660 w h e n i t ' s r e s c h 0070700 e d u l e d . 226 304 004 \t i \0 024 304 004 0070720 ` m \0 J 212 017 240 240 227 301 034 S i m C h 0070740 e c k F o r R e s c h e d u l e 0070760 T r a p [ ] ; 226 304 004 \t i \0 024 304 004 0071000 _ M \0 L 212 017 240 240 227 301 002 } ; 226 304 004 0071020 \t i \0 024 304 006 \0 245 021 \0 \0 211 212 304 004 A 0071040 337 \0 240 304 004 A 341 \0 9 212 017 241 240 227 301 020 0071060 R D I D i r e c t e d Y i e l d 0071100 226 017 240 240 227 301 002 : 226 017 242 240 227 301 006 0071120 P U B L I C 226 017 240 240 227 301 001 226 017 0071140 242 240 227 301 004 P R O C 226 304 004 \t i \0 020 0071160 304 006 \0 262 201 \0 \0 241 212 017 240 240 227 301 ? [ 0071200 n e x t S t a t e : P r o c e 0071220 s s S t a t e , n e x t P r o 0071240 c e s s : P r o c e s s , w 0071260 h e n : T i c k s ] = 226 017 0071300 242 240 227 301 \a T R U S T E D 226 017 240 240 0071320 227 301 002 { 226 304 004 \t i \0 024 304 004 \ 0 0071340 \0 W 212 017 243 240 227 301 L . . . y i e 0071360 l d s t h e p r o c e s s o 0071400 r t o t h e n e x t P r o 0071420 c e s s , p l a c i n g t h 0071440 e c u r r e n t p r o c e s 0071460 s i n 226 241 235 301 \t n e x t S t 0071500 a t e 226 017 241 017 241 241 236 301 005 . I 0071520 f 226 304 004 \t 341 \0 024 304 006 \0 306 w \0 \0 304 0071540 212 017 243 240 227 241 235 301 \v n e x t P r o 0071560 c e s s 226 017 241 017 241 241 236 301 003 = 0071600 226 305 005 X e r o x 305 \n P r e s s F 0071620 o n t s 305 016 T i m e s R o m a n 0071640 - M I R 017 243 241 033 240 223 304 004 003 # \0 d 0071660 240 244 240 224 017 245 225 017 245 240 227 301 003 N I L 0071700 226 017 243 240 227 301 G o r i s n o 0071720 t r e a d y , t h e n t h 0071740 e e x e c u t i n g p r o c 0071760 e s s o r i s y i e l d e d 0072000 t o t h e " b e s t " 226 304 0072020 004 \t 341 \0 024 304 004 S \t \0 V 212 017 243 240 227 0072040 301 . r e a d y p r o c e s s , 0072060 p l a c i n g t h e c u r 0072100 r e n t p r o c e s s i n 0072120 226 241 235 301 \t n e x t S t a t e 226 017 0072140 241 017 241 241 236 301 * . . D i r e c 0072160 t e d Y i e l d i n h i b i t 0072200 s c r i t i c a l t r a p s 0072220 , 226 304 004 \t 341 \0 024 304 004 N 022 \0 U 212 017 0072240 243 240 227 301 # a n d p e r f o r m 0072260 s a P r o c e s s S w i t c 0072300 h . T h e 226 241 235 301 004 w h e 0072320 n 226 017 241 017 241 241 236 301 ) w o r d 0072340 i s u s e d f o r p a s s 0072360 i n g t h r o u g h t i m e 0072400 o u t 226 304 004 \t 341 \0 024 304 004 H T \0 S 0072420 212 017 243 240 227 301 \f i n f o r m a t i 0072440 o n . 226 304 004 \t i \0 024 304 004 J 325 \0 [ 0072460 212 017 243 240 227 301 F S I M : T h i s 0072500 r o u t i n e m u s t b e 0072520 c a l l e d o n l y w h e 0072540 n c r i t i c a l t r a p s 0072560 a r e e n a b l e d . 226 304 004 0072600 \t i \0 024 304 006 001 036 031 \0 001 r 212 017 243 240 0072620 227 301 " R D I : c h a n g e n 0072640 a m e t o D i r e c t e d Y 0072660 i e l d ! 226 304 004 \t i \0 024 304 006 \0 313 0072700 | \0 001 031 212 017 240 240 227 301 024 D i s a b 0072720 l e I n t e r r u p t s [ ] ; 226 0072740 304 004 \t i \0 024 304 004 ] 325 \0 213 212 017 240 240 0072760 227 301 035 C u r r e n t P r o c e s 0073000 s [ ] . w h e n _ w h e n ; 0073020 226 304 004 \t i \0 024 304 004 ^ 205 \0 227 212 017 240 0073040 240 227 301 \f M a r k F r a m e [ ] ; 0073060 226 304 004 T 261 \0 240 304 004 I C \0 177 212 017 243 0073100 240 227 301 : T h i s I n d i c a t 0073120 e s t h a t t h e c u r r 0073140 e n t f r a m e s h o u l d 0073160 n o t b e s a v e d . 226 304 0073200 004 \t i \0 024 304 004 ` 225 \0 267 212 017 240 240 227 0073220 301 & P r o c e s s S w i t c h [ 0073240 n e x t S t a t e , n e x t P 0073260 r o c e s s ] ; 226 304 004 \t i \0 024 304 0073300 004 K ' \0 235 212 017 240 240 227 301 024 E n a b 0073320 l e I n t e r r u p t s [ ] ; 0073340 226 017 243 240 227 301 ) - - S I M o n 0073360 l y . R D I : h a p p e n 0073400 s a u t o m a t i c a l l y . 0073420 226 304 004 \t i \0 024 304 004 @ 336 \0 227 212 017 240 0073440 240 227 301 002 } ; 226 304 004 \t i \0 024 304 004 ( 0073460 U \0 j 212 304 004 A 337 \0 240 304 006 \0 241 d \0 0073500 001 347 212 017 241 240 227 301 004 W a i t 226 017 240 0073520 240 227 301 002 : 226 017 242 240 227 301 006 P U B 0073540 L I C 226 017 240 240 227 301 001 226 017 242 240 227 0073560 301 004 P R O C 226 017 240 240 227 301 ) [ c 0073600 o n d : C o n d i t i o n , 0073620 l o c k : M o n i t o r L o c 0073640 k ] = { 226 304 004 \t i \0 024 304 004 ? 0073660 315 \0 342 212 017 243 240 227 301 % . . . w a 0073700 i t s f o r t h e c o n d 0073720 i t i o n v a r i a b l e 226 0073740 241 235 301 004 c o n d 226 017 241 017 241 241 236 301 0073760 9 t o b e t h e t a r g 0074000 e t o f a N o t i f y , 0074020 B r o a d c a s t , o r t i 0074040 m e o u t . I f 226 240 k 240 j 017 0074060 241 017 245 223 304 006 \0 \0 035 001 B Q 240 244 240 250 0074100 305 005 X e r o x 305 \n P r e s s F o 0074120 n t s 305 \n L a u r e l - M R R 017 0074140 243 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 0074160 240 225 017 240 240 227 304 006 002 240 310 \0 001 O 304 006 0074200 \0 346 304 \0 \0 O 212 301 002 1 0 226 304 004 \t 341 0074220 \0 024 304 006 \0 203 033 \0 \0 1 212 305 005 X e r 0074240 o x 305 \n P r e s s F o n t s 305 016 0074260 T i m e s R o m a n - M I R 017 243 0074300 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 241 0074320 225 017 241 240 227 241 235 301 004 l o c k 226 017 241 0074340 017 241 241 236 301 003 # 226 305 005 X e r o 0074360 x 305 \n P r e s s F o n t s 305 016 T 0074400 i m e s R o m a n - M I R 017 243 241 0074420 033 240 223 304 004 003 # \0 d 240 244 240 224 017 242 225 0074440 017 242 240 227 301 003 N I L 226 017 241 240 227 301 \a 0074460 , t h e n 226 241 235 301 004 l o c k 0074500 226 017 241 017 241 241 236 301 1 m u s t b 0074520 e r e l e a s e d d u r i n 0074540 g t h e p o s s i b l e p 0074560 a u s e , a n d 226 241 235 301 004 l 0074600 o c k 226 017 241 017 241 241 236 301 \f m u s 0074620 t b e r e - 226 304 004 \t 341 \0 024 304 0074640 006 \0 364 u \0 \0 ] 212 017 241 240 227 301 % a c 0074660 q u i r e d a f t e r t h e 0074700 W a i t h a s f i n i s h 0074720 e d . 226 304 004 \t i \0 024 304 004 t 017 \0 - 0074740 212 304 004 \t i \0 024 304 004 e / \0 ( 212 017 240 0074760 240 227 301 025 E n q u e u e [ @ c o n 0075000 d . q u e u e ] ; 226 304 004 T 261 \0 240 0075020 304 006 \0 267 207 \0 \0 J 212 017 241 240 227 301 W P 0075040 l a c e s e l f o n t h e 0075060 c o n d i t i o n v a r i a 0075100 b l e ; w e d o t h i s 0075120 b e f o r e g i v i n g u 0075140 p t h e m o n i t o r t o 0075160 a v o i d 226 304 004 X q \0 240 304 004 h 0075200 237 \0 + 212 017 241 240 227 301 O m i s s i n 0075220 g a N o t i f y , w h i c 0075240 h w o u l d b e w r o n g 0075260 ; w e c a n n o t g e t 0075300 a N o t i f y b e t w e e 0075320 n n o w a n d 226 304 004 X q \0 240 0075340 304 006 \0 233 027 \0 \0 A 212 017 241 240 227 301 T r 0075360 e l e a s i n g t h e m o n 0075400 i t o r l o c k , s i n c e 0075420 o n e m u s t p o s s e s 0075440 s t h e m o n i t o r l o 0075460 c k i n o r d e r t o d 0075500 o a 226 304 004 X q \0 240 304 006 \0 216 255 \0 0075520 \0 = 212 017 241 240 227 301 \a N o t i f y . 0075540 226 304 004 \t i \0 024 304 006 001 020 r \0 \0 w 212 0075560 304 004 \t i \0 024 304 004 r = \0 3 212 305 005 X 0075600 e r o x 305 \n P r e s s F o n t s 0075620 305 016 T i m e s R o m a n - M R R 0075640 017 243 241 033 240 223 304 004 003 # \0 d 240 244 240 224 0075660 017 243 225 017 243 240 227 301 002 I F 226 017 240 240 227 0075700 301 \b l o c k # 226 017 243 240 227 301 0075720 003 N I L 226 017 240 240 227 301 001 226 017 243 240 0075740 227 301 004 T H E N 226 017 240 240 227 301 023 M 0075760 o n i t o r E x i t [ l o c k ] 0076000 ; 226 304 004 T 261 \0 240 304 004 . \0 \0 025 212 017 0076020 241 240 227 301 V E x i t t h e m o 0076040 n i t o r ; a f t e r t h i 0076060 s t h e c o n d i t i o n 0076100 v a r i a b l e c a n b e 0076120 N o t i f y ' d b y a n o t 0076140 h e r p r o c e s s 226 304 004 \t i 0076160 \0 024 304 006 \0 213 * \0 \0 A 212 304 004 \t i \0 0076200 024 304 006 \0 224 177 \0 \0 G 212 017 243 240 227 301 002 0076220 I F 226 017 240 240 227 301 + ( C u r r e 0076240 n t P r o c e s s [ ] . a b o r 0076260 t S t a t e # r e q u e s t 0076300 e d ) 226 017 243 240 227 301 002 O R 226 017 240 0076320 240 227 301 002 ( 226 017 243 240 227 301 003 N O T 0076340 226 017 240 240 227 301 031 c o n d . f l a 0076360 g s . a b o r t E n a b l e ) 0076400 226 017 243 240 227 301 004 T H E N 226 017 240 240 227 0076420 301 002 { 226 304 004 T 261 \0 240 304 006 \0 245 g 0076440 \0 \0 Q 212 017 241 240 227 301 [ G o t o 0076460 s l e e p , c h o o s i n g 0076500 t h e " b e s t " p r o c e 0076520 s s t o r u n n e x t . 0076540 I f w e g e t a N o t 0076560 i f y a f t e r e x i t i n 0076600 g t h e 226 304 004 X q \0 240 304 006 001 021 0076620 O \0 \0 211 212 017 241 240 227 301 Z m o n i t 0076640 o r a n d b e f o r e g o 0076660 i n g t o s l e e p , t h 0076700 e N o t i f y w i l l r e 0076720 m o v e t h i s p r o c e s 0076740 s f r o m t h e c o n d i 0076760 t i o n , 226 304 004 X q \0 240 304 006 \0 255 0077000 ] \0 \0 Y 212 017 241 240 227 301 P y e t w 0077020 i l l N O T p l a c e t h 0077040 i s p r o c e s s o n t h 0077060 e r e a d y q u e u e ( b 0077100 e c a u s e i t s s t a t e 0077120 i s n o t y e t 226 304 004 X q 0077140 \0 240 304 006 \0 251 - \0 \0 Y 212 017 241 240 227 301 0077160 \v w a i t i n g C V ) . 226 304 004 \t 0077200 i \0 020 304 006 \0 263 225 \0 \0 a 212 017 240 240 227 0077220 301 031 D i r e c t e d Y i e l d [ 0077240 w a i t i n g C V , 226 017 243 240 227 0077260 301 003 N I L 226 017 240 240 227 301 020 , c o 0077300 n d . t i m e o u t ] ; 226 304 004 T 0077320 261 \0 240 304 004 M { \0 + 212 017 240 240 227 301 002 0077340 } ; 226 304 004 \t i \0 024 304 004 p ' \0 @ 212 0077360 304 004 \t i \0 024 304 006 \0 215 W \0 \0 S 212 017 0077400 240 240 227 301 031 D e q u e u e S e l f 0077420 [ @ c o n d . q u e u e ] ; 226 304 0077440 004 T 261 \0 240 304 004 = - \0 % 212 017 241 240 227 0077460 301 R I f t h e c u r r e n t 0077500 p r o c e s s i s s t i l 0077520 l o n t h e c o n d i t i 0077540 o n q u e u e t h e n i t 0077560 m u s t r e m o v e i t s 0077600 e l f . 226 304 004 X q \0 240 304 004 @ A \0 0077620 ( 212 017 241 240 227 301 W D e q u e u e S 0077640 e l f h a s n o e f f e c 0077660 t i f t h e c u r r e n t 0077700 p r o c e s s i s n o t 0077720 o n a q u e u e , s o a 0077740 r a c e w i t h s o m e 226 0077760 304 004 X q \0 240 304 004 _ 036 \0 = 212 017 241 240 0100000 227 301 7 o t h e r p r o c e s s 0100020 t r y i n g t o d e q u e 0100040 u e t h i s p r o c e s s 0100060 i s b e n i g n . 226 304 004 \t i \0 0100100 024 304 004 F 366 \0 / 212 304 004 \t i \0 024 304 004 0100120 @ A \0 , 212 017 243 240 227 301 002 I F 226 017 240 0100140 240 227 301 \b l o c k # 226 017 243 240 0100160 227 301 003 N I L 226 017 240 240 227 301 001 226 017 0100200 243 240 227 301 004 T H E N 226 017 240 240 227 301 024 0100220 M o n i t o r E n t r y [ l o 0100240 c k ] ; 226 304 004 T 261 \0 240 304 004 1 a \0 0100260 # 212 017 241 240 227 301 024 R e e n t e r 0100300 t h e m o n i t o r . 226 304 004 \t 0100320 i \0 024 304 006 001 U 262 \0 \0 373 212 304 004 \t i 0100340 \0 024 304 006 \0 352 322 \0 \0 263 212 017 243 240 227 301 0100360 002 I F 226 017 240 240 227 301 ) C u r r e 0100400 n t P r o c e s s [ ] . a b o r 0100420 t S t a t e = r e q u e s t 0100440 e d 226 017 243 240 227 301 003 A N D 226 017 240 0100460 240 227 301 030 c o n d . f l a g s . 0100500 a b o r t E n a b l e 226 017 243 240 0100520 227 301 004 T H E N 226 017 240 240 227 301 \r T 0100540 e s t A b o r t [ ] ; 226 304 004 T 261 0100560 \0 240 304 004 6 H \0 + 212 017 241 240 227 301 = F 0100600 i n a l t e s t f o r a b 0100620 o r t r e q u e s t w h i l 0100640 e w e w e r e w a i t i n 0100660 g o n t h e C V . 226 304 004 \t 0100700 i \0 024 304 004 Z 367 \0 K 212 017 240 240 227 301 002 0100720 } ; 226 304 004 \t i \0 024 304 006 001 033 335 \0 \0 0100740 364 212 304 004 A 337 \0 240 304 006 \0 356 _ \0 \0 326 0100760 212 305 005 X e r o x 305 \n P r e s s F 0101000 o n t s 305 016 T i m e s R o m a n 0101020 - B R R 017 243 241 033 240 223 304 004 003 # \0 P 0101040 240 244 240 224 017 244 225 017 244 240 227 301 \r W a i 0101060 t I n t e r r u p t 226 017 240 240 227 301 0101100 002 : 226 017 243 240 227 301 006 P U B L I C 0101120 226 017 240 240 227 301 001 226 017 243 240 227 301 004 P 0101140 R O C 226 017 240 240 227 301 026 [ c o n d 0101160 : C o n d i t i o n ] = { 0101200 226 304 004 \t i \0 024 304 006 \0 212 _ \0 \0 202 212 0101220 017 241 240 227 301 016 . . . w a i t s 0101240 f o r 226 241 235 301 004 c o n d 226 017 241 0101260 017 241 241 236 301 Q t o b e t h e 0101300 t a r g e t o f a n i n 0101320 t e r r u p t r e q u e s t , 0101340 o r t i m e o u t . U n 0101360 l i k e W a i t , t h e r e 0101400 a r e n o 226 304 004 \t 341 \0 024 304 004 0101420 \ 224 \0 [ 212 017 241 240 227 301 \ m o n i t 0101440 o r l o c k s i n v o l v e 0101460 d , a n d w e h a v e t 0101500 o p r o c e e d i m m e d i 0101520 a t e l y i f i n t e r r u 0101540 p t s h a v e o c c u r r e 0101560 d s i n c e 226 304 004 \t 341 \0 024 304 004 0101600 $ 337 \0 & 212 017 241 240 227 301 027 t h e l 0101620 a s t W a i t I n t e r r u p 0101640 t . 226 304 004 \t i \0 024 304 004 $ 325 \0 ( 212 0101660 017 243 240 227 301 002 D O 226 304 004 T 261 \0 240 304 0101700 004 017 257 \0 022 212 017 241 240 227 301 T T e s t 0101720 q u i c k l y f o r r e q 0101740 u e s t s d u r i n g t h e 0101760 t i m e t h a t t h e i 0102000 n t e r r u p t c o n d i t i 0102020 o n w a s n o t h e l d . 0102040 226 304 004 \t i \0 020 304 004 . 330 \0 9 212 017 240 0102060 240 227 301 % c u r r e n t F l a g s 0102100 : C o n d F l a g s _ c o 0102120 n d . f l a g s ; 226 304 004 \t i \0 020 0102140 304 004 3 277 \0 C 212 017 243 240 227 301 002 I F 226 0102160 017 240 240 227 301 032 c u r r e n t F l 0102200 a g s . c o n d R e q u e s t 0102220 226 017 243 240 227 301 004 T H E N 226 017 240 240 227 0102240 301 002 { 226 304 004 Y 355 \0 213 304 004 . C \0 0102260 @ 212 017 240 240 227 301 033 c u r r e n t F 0102300 l a g s . c o n d R e q u e s t 0102320 _ 226 017 243 240 227 301 005 F A L S E 226 0102340 017 240 240 227 301 001 ; 226 304 004 Y 355 \0 213 304 004 0102360 # 260 \0 5 212 017 240 240 227 301 032 c o n d . 0102400 f l a g s _ c u r r e n t F 0102420 l a g s ; 226 304 004 Y 355 \0 213 304 004 ( 215 0102440 \0 A 212 017 243 240 227 301 004 E X I T 226 017 240 0102460 240 227 301 001 ; 226 304 004 Y 355 \0 213 304 004 K > 0102500 \0 203 212 017 240 240 227 301 002 } ; 226 304 004 Y 355 0102520 \0 213 304 004 { 337 \0 354 212 305 005 X e r o x 0102540 305 \n P r e s s F o n t s 305 016 T i 0102560 m e s R o m a n - B I R 017 243 241 033 0102600 240 223 304 004 003 # \0 P 240 244 240 224 017 245 225 017 0102620 245 240 227 301 Q ? ? ? ? N o t e t 0102640 h e r e ' s a r a c e h e 0102660 r e w i t h e n a b l e / d 0102700 i s a b l e a b o r t s . 0102720 T h i s i s p r o b a b l y 0102740 n o t a 226 304 004 ] / \0 213 304 004 s 0102760 ( \0 361 212 017 245 240 227 301 020 s e r i o u 0103000 s p r o b l e m . 226 017 241 240 227 301 0103020 006 - a j d 226 304 004 Y 355 \0 213 304 004 0103040 D 033 \0 237 212 017 245 240 227 301 N ? ? ? ? 0103060 N o t e t h a t s e v e r a 0103100 l p r o c e s s e s c o u l 0103120 d c a t c h t h e s a m e 0103140 i n t e r r u p t . T h i 0103160 s i s v e r y 226 304 004 ] / \0 213 0103200 304 004 ) 361 \0 n 212 017 245 240 227 301 7 u n l 0103220 i k e l y , a n d p o s s i 0103240 b l e b y o t h e r m e c 0103260 h a n i s m s i n a n y c 0103300 a s e . 226 017 241 240 227 301 006 - a j 0103320 d 226 304 004 Y 355 \0 213 304 004 < c \0 266 212 304 0103340 004 T 261 \0 240 304 004 034 ; \0 d 212 017 241 240 227 0103360 301 \v E n q u e u e o n 226 241 235 0103400 301 004 c o n d 226 017 241 017 241 241 236 301 G 0103420 w i t h i n t e r r u p t s 0103440 d i s a b l e d t o a v o i 0103460 d a d e a d l o c k w i t 0103500 h i n t e r r u p t s e r v 0103520 i c i n g ; 226 240 k 240 j 017 241 017 245 223 0103540 304 006 \0 \0 035 001 B Q 240 244 240 250 305 005 X e 0103560 r o x 305 \n P r e s s F o n t s 305 0103600 \n L a u r e l - M R R 017 243 241 033 240 0103620 223 304 004 003 # \0 P 240 244 240 224 017 240 225 017 240 0103640 240 227 304 004 L Q \0 & 304 006 \0 346 304 \0 \0 O 0103660 212 301 002 1 1 226 304 004 X q \0 240 304 006 \0 203 0103700 033 \0 \0 1 212 305 005 X e r o x 305 \n P r 0103720 e s s F o n t s 305 016 T i m e s R 0103740 o m a n - M I R 017 243 241 033 240 223 304 004 0103760 003 # \0 P 240 244 240 224 017 241 225 017 241 240 227 301 0104000 B n o t e t h e a s s u m p 0104020 t i o n t h a t i n t e r r 0104040 u p t c o n d i t i o n v a 0104060 r i a b l e s a r e p i n n 0104100 e d . 226 304 004 \t i \0 020 304 006 \0 322 033 \0 0104120 \0 P 212 017 240 240 227 301 024 D i s a b l e 0104140 I n t e r r u p t s [ ] ; 226 304 004 0104160 \t i \0 020 304 006 \0 320 275 \0 \0 Q 212 017 240 240 0104200 227 301 025 E n q u e u e [ @ c o n d 0104220 . q u e u e ] ; 226 304 004 \t i \0 020 304 0104240 006 \0 205 370 \0 \0 5 212 017 240 240 227 301 023 E n 0104260 a b l e I n t e r r u p t s [ ] 0104300 ; 226 304 004 T 261 \0 240 304 006 \0 210 P \0 \0 7 0104320 212 304 004 T 261 \0 240 304 006 \0 263 301 \0 \0 J 212 0104340 017 241 240 227 301 \t N o w t h a t 226 0104360 241 235 301 004 c o n d 226 017 241 017 241 241 236 301 0104400 N i s h e l d , s e e i 0104420 f t h e r e w e r e i n t 0104440 e r r u p t s s i n c e t h 0104460 e l a s t s a m p l e . 0104500 I f s o , w e d o n ' t 226 0104520 304 004 X q \0 240 304 004 I 330 \0 037 212 017 241 240 0104540 227 301 > r e a l l y w a n t t 0104560 o g o t o s l e e p , w 0104600 e w a n t t o s e r v i c 0104620 e t h o s e r e q u e s t s 0104640 . 226 304 004 T 261 \0 240 304 006 001 025 231 \0 \0 w 0104660 212 305 005 X e r o x 305 \n P r e s s F 0104700 o n t s 305 016 T i m e s R o m a n 0104720 - M R R 017 243 241 033 240 223 304 004 003 # \0 d 0104740 240 244 240 224 017 242 225 017 242 240 227 301 002 I F 226 0104760 017 240 240 227 301 001 226 017 242 240 227 301 003 N O 0105000 T 226 017 240 240 227 301 030 c o n d . f l 0105020 a g s . c o n d R e q u e s t 0105040 226 017 242 240 227 301 004 T H E N 226 304 004 \t i 0105060 \0 020 304 006 \0 242 \0 \0 G 212 017 242 240 227 301 0105100 002 I F 226 017 240 240 227 301 ) C u r r e 0105120 n t P r o c e s s [ ] . a b o r 0105140 t S t a t e # r e q u e s t 0105160 e d 226 017 242 240 227 301 002 O R 226 017 240 240 0105200 227 301 001 226 017 242 240 227 301 003 N O T 226 017 0105220 240 240 227 301 030 c o n d . f l a g s 0105240 . a b o r t E n a b l e 226 017 242 0105260 240 227 301 004 T H E N 226 304 004 Y 355 \0 213 304 0105300 006 \0 300 # \0 \0 V 212 017 240 240 227 301 032 D i 0105320 r e c t e d Y i e l d [ w a i t 0105340 i n g I C V , 226 017 242 240 227 301 003 N 0105360 I L 226 017 240 240 227 301 020 , c o n d . 0105400 t i m e o u t ] ; 226 304 004 T 261 \0 240 0105420 304 006 \0 341 \n \0 \0 g 212 304 004 T 261 \0 240 304 0105440 006 \0 233 345 \0 \0 I 212 017 241 240 227 301 9 W e 0105460 d e q u e u e a t t h i s 0105500 p o i n t t o a l l o w 0105520 a n o t h e r p r o c e s s 0105540 t o u s e 226 241 235 301 004 c o n d 0105560 226 017 241 017 241 241 236 301 034 . D e q u 0105600 e u e S e l f h a s n o e 0105620 f f e c t 226 304 004 X q \0 240 304 004 6 M 0105640 \0 032 212 017 241 240 227 301 + i f t h e 0105660 c u r r e n t p r o c e s s 0105700 i s n o t o n t h e q u 0105720 e u e . 226 304 004 T 261 \0 240 304 004 ? 7 \0 0105740 037 212 017 240 240 227 301 031 D e q u e u e S 0105760 e l f [ @ c o n d . q u e u e ] 0106000 ; 226 304 004 T 261 \0 240 304 004 o o \0 8 212 017 0106020 242 240 227 301 \a E N D L O O P 226 017 240 240 0106040 227 301 001 ; 226 304 004 \t i \0 024 304 004 $ 337 \0 0106060 023 212 304 004 \t i \0 024 304 006 001 % & \0 \0 233 0106100 212 017 242 240 227 301 002 I F 226 017 240 240 227 301 ) 0106120 C u r r e n t P r o c e s s [ 0106140 ] . a b o r t S t a t e = r 0106160 e q u e s t e d 226 017 242 240 227 301 003 0106200 A N D 226 017 240 240 227 301 030 c o n d . 0106220 f l a g s . a b o r t E n a b l 0106240 e 226 017 242 240 227 301 004 T H E N 226 017 240 0106260 240 227 301 \r T e s t A b o r t [ ] 0106300 ; 226 304 004 \t i \0 024 304 006 \0 333 2 \0 \0 w 0106320 212 017 240 240 227 301 002 } ; 226 304 004 \t i \0 024 0106340 304 004 _ 003 \0 5 212 304 004 A 337 \0 240 304 004 9 0106360 210 \0 ! 212 305 005 X e r o x 305 \n P r e 0106400 s s F o n t s 305 016 T i m e s R o 0106420 m a n - B R R 017 243 241 033 240 223 304 004 003 0106440 # \0 P 240 244 240 224 017 243 225 017 243 240 227 301 006 0106460 N o t i f y 226 017 240 240 227 301 002 : 226 0106500 017 242 240 227 301 006 P U B L I C 226 017 240 240 0106520 227 301 001 226 017 242 240 227 301 004 P R O C 226 0106540 017 240 240 227 301 026 [ c o n d : C o 0106560 n d i t i o n ] = { 226 304 004 \t 0106600 i \0 024 304 004 % E \0 026 212 017 241 240 227 301 + 0106620 . . . n o t i f i e s t h e 0106640 " b e s t " p r o c e s s 0106660 w a i t i n g o n 226 241 235 301 004 0106700 c o n d 226 017 241 017 241 241 236 301 1 t h 0106720 a t t h e c o n d i t i o n 0106740 h a s o c c u r r e d . 0106760 T h e p r o t e c t i n g 226 304 0107000 004 \t 341 \0 024 304 006 002 6 223 \0 001 X 212 017 241 0107020 240 227 301 J m o n i t o r l o c k 0107040 i s p r e s u m e d t o 0107060 b e h e l d , b u t i s 0107100 n o t n e e d e d f o r t 0107120 h i s p r i m i t i v e . 226 304 0107140 004 \t i \0 024 304 004 i s \0 B 212 017 240 240 227 0107160 301 % b e s t : P r o c e s s 0107200 = D e q u e u e [ @ c o n d . 0107220 q u e u e ] ; 226 304 004 \t i \0 024 304 004 0107240 ^ t \0 = 212 017 242 240 227 301 002 I F 226 017 240 0107260 240 227 301 \b b e s t # 226 017 242 240 0107300 227 301 003 N I L 226 017 240 240 227 301 001 226 017 0107320 242 240 227 301 005 T H E N 226 017 240 240 227 301 0107340 020 M a k e R e a d y [ b e s t ] 0107360 ; 226 304 004 T 261 \0 240 304 004 U s \0 9 212 017 0107400 241 240 227 301 X T h e r e r e a l l 0107420 y w a s a p r o c e s s 0107440 w a i t i n g o n t h e C 0107460 V . A l t h o u g h a p 0107500 r o c e s s m a y b e m a 0107520 d e r e a d y , t h e 226 304 004 0107540 X q \0 240 304 006 002 I . \0 001 223 212 017 241 240 0107560 227 301 R p r o c e s s s w i t c 0107600 h i s n o t i m m e d i a 0107620 t e l y r e q u i r e d . 0107640 T h e p r o c e s s s w i t 0107660 c h m a y o c c u r w h e 0107700 n t h e 226 304 004 X q \0 240 304 006 001 021 0107720 372 \0 \0 303 212 017 241 240 227 301 % p r o t e 0107740 c t i n g m o n i t o r l o 0107760 c k i s r e l e a s e d . 0110000 226 304 004 \t i \0 024 304 004 , 275 \0 ! 212 017 240 0110020 240 227 301 002 } ; 226 304 004 \t i \0 024 304 004 5 0110040 220 \0 ) 212 304 004 A 337 \0 240 304 006 \0 236 e \0 0110060 \0 ~ 212 017 243 240 227 301 \t B r o a d c a 0110100 s t 226 017 240 240 227 301 002 : 226 017 242 240 227 0110120 301 006 P U B L I C 226 017 240 240 227 301 001 0110140 226 017 242 240 227 301 004 P R O C 226 017 240 240 227 0110160 301 026 [ c o n d : C o n d i t 0110200 i o n ] = { 226 304 004 \t i \0 024 304 0110220 006 \0 262 301 \0 \0 224 212 017 241 240 227 301 . . . 0110240 . n o t i f i e s a l l w 0110260 a i t i n g p r o c e s s e s 0110300 w a i t i n g o n 226 241 235 301 0110320 004 c o n d 226 017 241 017 241 241 236 301 / t 0110340 h a t t h e c o n d i t i o 0110360 n h a s o c c u r r e d . 0110400 T o e l i m i n a t e 226 304 004 0110420 \t 341 \0 024 304 004 = 205 \0 5 212 017 241 240 227 301 0110440 ] r a c e p r o b l e m s , 0110460 a l l o f t h e w a i t i 0110500 n g p r o c e s s e s a r e 0110520 m a d e r e a d y w h i l 0110540 e h o l d i n g o n t o t 0110560 h e q u e u e . T h e 226 304 0110600 004 \t 341 \0 024 304 004 ^ 252 \0 U 212 017 241 240 227 0110620 301 U p r o t e c t i n g m o n 0110640 i t o r l o c k i s p r e 0110660 s u m e d t o b e h e l d 0110700 , b u t i s n o t n e e 0110720 d e d f o r t h i s p r i 0110740 m i t i v e . 226 304 004 \t i \0 024 304 004 0110760 D 037 \0 @ 212 017 240 240 227 301 ! t a i l : 0111000 P r o c e s s _ c o n d . 0111020 q u e u e . c h a i n ; 226 304 004 \t 0111040 i \0 024 304 004 } 337 \0 | 212 017 242 240 227 301 002 0111060 I F 226 017 240 240 227 301 \b t a i l # 0111100 226 017 242 240 227 301 003 N I L 226 017 240 240 227 0111120 301 001 226 017 242 240 227 301 004 T H E N 226 017 0111140 240 240 227 301 002 { 226 304 004 T 261 \0 240 304 004 0111160 034 002 \0 035 212 017 240 240 227 301 032 A c q u i 0111200 r e Q u e u e [ @ c o n d . q u 0111220 e u e ] ; 226 304 004 T 261 \0 240 304 004 n 345 0111240 \0 y 212 017 242 240 227 301 002 I F 226 017 240 240 227 0111260 301 035 ( t a i l _ c o n d . 0111300 q u e u e . c h a i n ) # 226 0111320 017 242 240 227 301 003 N I L 226 017 240 240 227 301 001 0111340 226 017 242 240 227 301 004 T H E N 226 017 240 240 0111360 227 301 002 { 226 304 004 \t i \0 020 304 006 002 022 0111400 267 \0 002 d 212 017 240 240 227 301 023 c o n d . 0111420 q u e u e . c h a i n _ 226 017 0111440 242 240 227 301 003 N I L 226 017 240 240 227 301 001 ; 0111460 226 304 004 \t i \0 020 304 004 8 o \0 E 212 017 242 0111500 240 227 301 002 D O 226 304 004 Y 355 \0 213 304 004 H 0111520 ? \0 ^ 212 017 241 240 227 301 H R e m o v e 0111540 a l l o f t h e p r o c 0111560 e s s e s f r o m t h e c 0111600 i r c u l a r q u e u e a n 0111620 d m a k e t h e m r e a d 0111640 y . 226 304 004 ] / \0 213 304 004 h 237 \0 221 212 0111660 017 241 240 227 301 K A l t h o u g h p 0111700 r o c e s s e s m a y b e 0111720 m a d e r e a d y , t h e 0111740 p r o c e s s s w i t c h i 0111760 s n o t i m m e d i a t e l 0112000 y 226 304 004 ] / \0 213 304 006 \0 253 Q \0 \0 376 0112020 212 017 241 240 227 301 K r e q u i r e d . 0112040 T h e p r o c e s s s w 0112060 i t c h m a y o c c u r w 0112100 h e n t h e p r o t e c t i 0112120 n g m o n i t o r l o c k 0112140 i s 226 304 004 ] / \0 213 304 004 C 303 \0 l 212 0112160 017 241 240 227 301 \t r e l e a s e d . 226 0112200 304 004 Y 355 \0 213 304 006 001 370 263 \0 003 i 212 017 0112220 240 240 227 301 032 t h i s : P r o c e 0112240 s s = t a i l . n e x t ; 226 0112260 304 004 Y 355 \0 213 304 004 034 \a \0 5 212 017 240 240 0112300 227 301 032 n e x t : P r o c e s s 0112320 _ t h i s . n e x t ; 226 304 004 0112340 Y 355 \0 213 304 004 ) = \0 V 212 017 240 240 227 301 0112360 021 t a i l . n e x t _ n e x 0112400 t ; 226 304 004 Y 355 \0 213 304 004 034 323 \0 C 212 0112420 017 240 240 227 301 \r t h i s . q u e u e 0112440 _ 226 017 242 240 227 301 003 N I L 226 017 240 0112460 240 227 301 001 ; 226 304 004 Y 355 \0 213 304 004 016 333 0112500 \0 ' 212 017 240 240 227 301 \f t h i s . n e 0112520 x t _ 226 017 242 240 227 301 003 N I L 226 0112540 017 240 240 227 301 001 ; 226 304 004 Y 355 \0 213 304 004 0112560 017 A \0 . 212 017 240 240 227 301 020 M a k e R 0112600 e a d y [ t h i s ] ; 226 304 004 Y 355 0112620 \0 213 304 004 021 311 \0 ? 212 017 242 240 227 301 002 I 0112640 F 226 017 240 240 227 301 \r t h i s = 0112660 n e x t 226 017 242 240 227 301 004 T H E N 0112700 226 017 240 240 227 301 001 226 017 242 240 227 301 004 E 0112720 X I T 226 017 240 240 227 301 003 ; 226 017 241 0112740 240 227 301 037 - - w e j u s t r 0112760 e m o v e d t h e l a s t 0113000 o n e 226 240 k 240 j 017 241 017 245 223 304 006 \0 0113020 \0 035 001 B Q 240 244 240 250 305 005 X e r o x 0113040 305 \n P r e s s F o n t s 305 \n L a 0113060 u r e l - M R R 017 243 241 033 240 223 304 004 0113100 003 # \0 P 240 244 240 224 017 240 225 017 240 240 227 304 0113120 004 b l \0 1 304 006 \0 346 304 \0 \0 O 212 301 002 0113140 1 2 226 304 004 Y 355 \0 213 304 006 \0 203 033 \0 \0 0113160 1 212 305 005 X e r o x 305 \n P r e s s 0113200 F o n t s 305 016 T i m e s R o m a 0113220 n - M R R 017 243 241 033 240 223 304 004 003 # \0 0113240 d 240 244 240 224 017 241 225 017 241 240 227 301 \a E N 0113260 D L O O P 226 017 240 240 227 301 001 ; 226 304 004 0113300 \t i \0 020 304 006 \0 215 323 \0 \0 6 212 017 240 240 0113320 227 301 002 } ; 226 304 004 T 261 \0 240 304 006 \0 374 0113340 217 \0 \0 b 212 017 240 240 227 301 032 R e l e a 0113360 s e Q u e u e [ @ c o n d . q u 0113400 e u e ] ; 226 304 004 T 261 \0 240 304 004 I O 0113420 \0 035 212 017 240 240 227 301 002 } ; 226 304 004 \t i 0113440 \0 024 304 004 y t \0 1 212 017 240 240 227 301 002 } 0113460 ; 226 304 004 \t i \0 024 304 006 001 036 253 \0 \0 v 0113500 212 304 004 A 337 \0 240 304 006 \0 216 317 \0 \0 < 212 0113520 305 005 X e r o x 305 \n P r e s s F o 0113540 n t s 305 016 T i m e s R o m a n - 0113560 B R R 017 243 241 033 240 223 304 004 003 # \0 P 240 0113600 244 240 224 017 242 225 017 242 240 227 301 \f M o n i 0113620 t o r E n t r y 226 017 240 240 227 301 002 : 0113640 226 017 241 240 227 301 006 P U B L I C 226 017 0113660 240 240 227 301 001 226 017 241 240 227 301 004 P R O 0113700 C 226 017 240 240 227 301 030 [ l o c k : 0113720 M o n i t o r L o c k ] = { 0113740 226 304 004 \t i \0 024 304 004 H B \0 037 212 305 005 0113760 X e r o x 305 \n P r e s s F o n t 0114000 s 305 016 T i m e s R o m a n - M I 0114020 R 017 243 241 033 240 223 304 004 003 # \0 P 240 244 240 0114040 224 017 243 225 017 243 240 227 301 ] . . . i s 0114060 p e r f o r m e d a t t h 0114100 e e n t r y t o a n y m 0114120 o n i t o r e d p r o c e d u 0114140 r e t o l o c k u p t h 0114160 e m o n i t o r f o r e x 0114200 c l u s i v e 226 304 004 \t 341 \0 024 304 006 0114220 001 o 263 \0 \0 241 212 017 243 240 227 301 [ a c c 0114240 e s s . T h i s o p e r a 0114260 t i o n i s p e r f o r m e 0114300 d f r e q u e n t l y , s o 0114320 i t s h o u l d b e f a 0114340 s t i n t h e c a s e w 0114360 h e r e t h e 226 304 004 \t 341 \0 024 304 0114400 006 \0 236 320 \0 \0 G 212 017 243 240 227 301 035 m o 0114420 n i t o r i s n o t a l r 0114440 e a d y o w n e d . 226 304 004 \t i 0114460 \0 024 304 006 \0 254 321 \0 \0 O 212 017 240 240 227 301 0114500 ! s e l f : P r o c e s s = 0114520 C u r r e n t P r o c e s s [ 0114540 ] ; 226 304 004 \t i \0 024 304 004 O 036 \0 % 212 0114560 017 241 240 227 301 002 D O 226 304 004 T 261 \0 240 304 0114600 006 001 \r } \0 \0 201 212 017 243 240 227 301 Y T r 0114620 y f o r c o n d i t i o n a 0114640 l s t o r e o f c u r r e 0114660 n t P S B i n d e x w i t 0114700 h 0 w a i t c h a i n . 0114720 I f w e s u c c e e d , 0114740 t h e n w e 226 304 004 X q \0 240 304 006 0114760 \0 214 346 \0 \0 E 212 017 243 240 227 301 027 a r e 0115000 i n , a n d c a n r e t 0115020 u r n . 226 304 004 \t i \0 020 304 004 Q 264 \0 0115040 ) 212 017 241 240 227 301 002 I F 226 017 240 240 227 301 0115060 ! C S t o r e P r o c e s s [ 0115100 p t r : @ l o c k . o w n e r 0115120 ] 226 017 241 240 227 301 004 T H E N 226 017 240 0115140 240 227 301 001 226 017 241 240 227 301 006 R E T U 0115160 R N 226 017 240 240 227 301 001 ; 226 304 004 T 261 \0 0115200 240 304 006 \0 254 371 \0 \0 Y 212 304 004 T 261 \0 240 0115220 304 004 o 303 \0 ; 212 017 243 240 227 301 P l a 0115240 c e s e l f o n t h e m 0115260 o n i t o r q u e u e . 226 304 004 0115300 \t i \0 020 304 004 I 315 \0 ( 212 017 240 240 227 301 0115320 025 E n q u e u e [ @ l o c k . q 0115340 u e u e ] ; 226 304 004 T 261 \0 240 304 004 F 0115360 \t \0 ' 212 304 004 T 261 \0 240 304 006 002 G W \0 0115400 001 N 212 017 243 240 227 301 ^ I f t h e 0115420 m o n i t o r i s s t i l l 0115440 h e l d , t h e n g o t 0115460 o s l e e p , y i e l d i n 0115500 g t o b e s t p r o c e s 0115520 s , o n l y t o w a k e 0115540 u p w h e n 226 304 004 X q \0 240 304 006 0115560 \0 201 ) \0 \0 L 212 017 243 240 227 301 T t h e 0115600 m o n i t o r q u e u e i 0115620 s O K . O t h e r w i s e 0115640 , s o m e p r o c e s s r 0115660 e l e a s e d t h e m o n i 0115700 t o r w h i l e w e w e r 0115720 e 226 304 004 X q \0 240 304 004 O Q \0 0 212 017 0115740 243 240 227 301 H t r y i n g t o E 0115760 n q u e u e , s o w e s h 0116000 o u l d g e t o f f t h e 0116020 m o n i t o r q u e u e a 0116040 n d t r y a g a i n . 226 304 004 0116060 \t i \0 020 304 006 001 2 5 \0 \0 277 212 017 240 240 0116100 227 301 001 { 226 304 004 Y 355 \0 213 304 004 0 , \0 0116120 037 212 017 240 240 227 301 034 o w n e r : P 0116140 r o c e s s = l o c k . o w 0116160 n e r ; 226 304 004 Y 355 \0 213 304 006 001 362 \r 0116200 \0 001 K 212 017 241 240 227 301 002 I F 226 017 240 240 0116220 227 301 \t o w n e r # 226 017 241 240 0116240 227 301 003 N I L 226 017 240 240 227 301 001 226 017 0116260 241 240 227 301 004 T H E N 226 017 240 240 227 301 002 0116300 { 226 304 004 034 ; \0 ( 304 006 \0 225 351 \0 \0 0116320 g 212 017 241 240 227 301 \a T H R O U G H 226 0116340 017 240 240 227 301 020 [ 0 . . s p i n T 0116360 r i e s ) 226 017 241 240 227 301 005 W H I 0116400 L E 226 017 240 240 227 301 027 o w n e r . 0116420 s t a t e = r u n n i n g 0116440 226 017 241 240 227 301 002 D O 226 304 004 G 033 \0 ] 0116460 304 004 ^ 7 \0 C 212 017 240 240 227 301 023 C 7 P 0116500 r o c e s s . Y i e l d [ ] ; 0116520 226 017 243 240 227 301 \v - - S I M o n 0116540 l y 226 304 004 G 033 \0 ] 304 004 o E \0 R 212 0116560 017 241 240 227 301 \a E N D L O O P 226 017 240 0116600 240 227 301 001 ; 226 304 004 034 ; \0 ( 304 006 \0 352 0116620 024 \0 \0 263 212 017 241 240 227 301 002 I F 226 017 240 0116640 240 227 301 016 l o c k . o w n e r 0116660 # 226 017 241 240 227 301 003 N I L 226 017 240 240 0116700 227 301 001 226 017 241 240 227 301 004 T H E N 226 0116720 017 240 240 227 301 ) D i r e c t e d Y 0116740 i e l d [ w a i t i n g M L , 0116760 l o c k . o w n e r , 0 ] ; 226 0117000 304 004 034 ; \0 ( 304 004 L 304 \0 = 212 017 240 240 0117020 227 301 002 } ; 226 304 004 Y 355 \0 213 304 004 u K 0117040 \0 a 212 017 240 240 227 301 031 D e q u e u e 0117060 S e l f [ @ l o c k . q u e u e 0117100 ] ; 226 304 004 Y 355 \0 213 304 006 \0 212 \t \0 \0 0117120 w 212 017 240 240 227 301 002 } ; 226 304 004 T 261 \0 0117140 240 304 004 Q 025 \0 I 212 304 004 T 261 \0 240 304 004 0117160 $ 027 \0 " 212 017 241 240 227 301 \a E N D L O 0117200 O P 226 017 240 240 227 301 001 ; 226 304 004 \t i \0 0117220 024 304 004 ' z \0 ' 212 017 240 240 227 301 002 } ; 0117240 226 304 004 \t i \0 024 304 004 D _ \0 G 212 304 004 0117260 A 337 \0 240 304 004 T 372 \0 ] 212 017 242 240 227 301 0117300 \v M o n i t o r E x i t 226 017 240 240 0117320 227 301 002 : 226 017 241 240 227 301 006 P U B L 0117340 I C 226 017 240 240 227 301 001 226 017 241 240 227 301 0117360 004 P R O C 226 017 240 240 227 301 030 [ l o 0117400 c k : M o n i t o r L o c k ] 0117420 = { 226 304 004 \t i \0 024 304 004 W P \0 0117440 e 212 017 243 240 227 301 ^ . . . f r e e 0117460 s u p t h e m o n i t o r 0117500 l o c k . I f t h e r e 0117520 i s a p r o c e s s w a 0117540 i t i n g t h e m o n i t o 0117560 r , d e q u e u e t h e p 0117600 r o c e s s 226 304 004 \t 341 \0 024 304 004 " 0117620 U \0 * 212 017 243 240 227 301 [ f r o m t 0117640 h e m o n i t o r q u e u e 0117660 a n d p l a c e i t i n 0117700 t h e r e a d y q u e u e 0117720 . T h e c u r r e n t c 0117740 o d i n g d o e s n o t h i 0117760 n g i f 226 304 004 \t 341 \0 024 304 004 Q 251 0120000 \0 j 212 017 243 240 227 301 @ w e d o n 0120020 o t o w n t h e l o c k . 0120040 S h o u l d w e d i e 0120060 i n s t e a d o f d o i n g 0120100 n o t h i n g ? 226 304 004 \t i \0 024 0120120 304 004 e 256 \0 215 212 017 241 240 227 301 002 I F 226 0120140 017 240 240 227 301 037 l o c k . o w n e 0120160 r = C u r r e n t P r o c e 0120200 s s [ ] 226 017 241 240 227 301 004 T H E N 0120220 226 017 240 240 227 301 002 { 226 304 004 T 261 \0 240 0120240 304 006 \0 357 1 \0 001 d 212 017 243 240 227 301 036 G 0120260 i v e u p o w n e r s h i p 0120300 o f t h e l o c k . 226 304 004 0120320 \t i \0 020 304 004 V 214 \0 213 212 017 240 240 227 301 0120340 \r l o c k . o w n e r _ 226 017 0120360 241 240 227 301 003 N I L 226 017 240 240 227 301 001 ; 0120400 226 304 004 T 261 \0 240 304 004 F 207 \0 { 212 017 241 0120420 240 227 301 002 I F 226 017 240 240 227 301 024 l o 0120440 c k . q u e u e . c h a i n # 0120460 226 017 241 240 227 301 003 N I L 226 017 240 240 227 0120500 301 001 226 017 241 240 227 301 004 T H E N 226 017 0120520 240 240 227 301 002 { 226 304 004 \t i \0 020 304 006 0120540 \0 260 035 \0 001 P 212 017 243 240 227 301 X M a k 0120560 e r e a d y t h e n e x t 0120600 p r o c e s s w a i t i n g 0120620 f o r t h e m o n i t o r 0120640 . T h e r e i s a s l 0120660 i g h t p o s s i b i l i t y 0120700 t h a t 226 304 004 \t 311 \0 020 304 004 l M 0120720 \0 343 212 017 243 240 227 301 P s o m e o t 0120740 h e r p r o c e s s w i l l 0120760 j u m p i n a h e a d o 0121000 f t h i s o n e w h i l e 0121020 t h e m o n i t o r i s 0121040 f r e e , b u t 226 304 004 \t 311 \0 020 0121060 304 004 = 021 \0 216 212 017 243 240 227 301 033 f a i 0121100 r n e s s i s n o t g u a 0121120 r a n t e e d . 226 304 004 Y 355 \0 213 304 0121140 004 = O \0 241 212 017 240 240 227 301 % n e x t 0121160 : P r o c e s s = D e q u 0121200 e u e [ @ l o c k . q u e u e ] 0121220 ; 226 304 004 Y 355 \0 213 304 004 # % \0 j 212 017 0121240 241 240 227 301 002 I F 226 017 240 240 227 301 \b n 0121260 e x t # 226 017 241 240 227 301 003 N I L 0121300 226 017 240 240 227 301 001 226 017 241 240 227 301 004 T 0121320 H E N 226 017 240 240 227 301 021 M a k e R 0121340 e a d y [ n e x t ] ; 226 304 004 \t i 0121360 \0 020 304 004 \n r \0 % 212 017 240 240 227 301 002 } 0121400 ; 226 240 k 240 j 017 241 017 245 223 304 006 \0 \0 035 0121420 001 B Q 240 244 240 250 305 005 X e r o x 305 \n 0121440 P r e s s F o n t s 305 \n L a u r 0121460 e l - M R R 017 243 241 033 240 223 304 004 003 # 0121500 \0 P 240 244 240 224 017 240 225 017 240 240 227 304 006 \0 0121520 242 313 \0 \0 Q 304 006 \0 346 304 \0 \0 O 212 301 002 0121540 1 3 226 304 004 T 261 \0 240 304 006 \0 203 033 \0 \0 0121560 1 212 305 005 X e r o x 305 \n P r e s s 0121600 F o n t s 305 016 T i m e s R o m a 0121620 n - M R R 017 243 241 033 240 223 304 004 003 # \0 0121640 d 240 244 240 224 017 241 225 017 241 240 227 301 002 I F 0121660 226 017 240 240 227 301 021 d e f e r r e d 0121700 W a k e u p s 226 017 241 240 227 301 004 T 0121720 H E N 226 017 240 240 227 301 023 R a i s e 0121740 R e s c h e d u l e [ ] ; 226 304 004 0121760 \t i \0 020 304 004 Q l \0 037 212 305 005 X e r 0122000 o x 305 \n P r e s s F o n t s 305 016 0122020 T i m e s R o m a n - M I R 017 243 0122040 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 242 0122060 225 017 242 240 227 301 022 d e f e r r e d W 0122100 a k e u p s = 226 305 005 X e r o 0122120 x 305 \n P r e s s F o n t s 305 016 T 0122140 i m e s R o m a n - M I R 017 243 241 0122160 033 240 223 304 004 003 # \0 d 240 244 240 224 017 243 225 0122200 017 243 240 227 301 004 T R U E 226 017 242 240 227 301 0122220 4 i n d i c a t e s t h a t 0122240 w e d e f e r r e d a d 0122260 e s i r a b l e w a k e u p 0122300 w h i l e 226 304 004 \t 311 \0 020 304 004 b 005 0122320 \0 & 212 017 242 240 227 301 R p r o c e s s 0122340 i n g a B r o a d c a s t 0122360 o r N o t i f y f o r s o 0122400 m e m o n i t o r . S t a 0122420 t i s t i c a l l y s p e a k 0122440 i n g , i t w a s 226 304 004 \t 311 0122460 \0 020 304 006 \0 377 306 \0 \0 e 212 017 242 240 227 301 0122500 Q p r o b a b l y f o r t h 0122520 i s m o n i t o r . S o 0122540 w e r a i s e r e s c h e d 0122560 u l e h e r e t o g e t 0122600 t h e b e s t p r o c e s s 0122620 e s 226 304 004 \t 311 \0 020 304 006 001 ' 302 \0 \0 0122640 w 212 017 242 240 227 301 \n r u n n i n g . 0122660 226 305 005 X e r o x 305 \n P r e s 0122700 s F o n t s 305 016 T i m e s R o m 0122720 a n - B I R 017 243 241 033 240 223 304 004 003 # 0122740 \0 P 240 244 240 224 017 244 225 017 244 240 227 301 032 ? 0122760 ? ? ? T h i n k a b o u t 0123000 t h i s ? ? ? ? 226 017 242 240 227 301 006 0123020 - a j d 226 304 004 T 261 \0 240 304 004 < 0123040 350 \0 031 212 017 240 240 227 301 002 } ; 226 304 004 \t 0123060 i \0 024 304 004 X S \0 % 212 017 240 240 227 301 002 0123100 } ; 226 304 004 \t i \0 024 304 006 \0 241 S \0 \0 0123120 E 212 304 004 A 337 \0 240 304 004 @ 027 \0 034 212 305 0123140 005 X e r o x 305 \n P r e s s F o n 0123160 t s 305 016 T i m e s R o m a n - B 0123200 R R 017 243 241 033 240 223 304 004 003 # \0 P 240 244 0123220 240 224 017 245 225 017 245 240 227 301 \t T e s t A 0123240 b o r t 226 017 240 240 227 301 002 : 226 017 241 0123260 240 227 301 006 P U B L I C 226 017 240 240 227 301 0123300 001 226 017 241 240 227 301 004 P R O C 226 017 240 0123320 240 227 301 004 = { 226 304 004 \t i \0 024 304 0123340 004 r ; \0 3 212 017 242 240 227 301 . . . 0123360 t e s t s f o r a r e q u 0123400 e s t e d a b o r t . 226 304 004 \t 0123420 i \0 024 304 004 U p \0 ' 212 017 240 240 227 301 ! 0123440 s e l f : P r o c e s s = 0123460 C u r r e n t P r o c e s s [ ] 0123500 ; 226 304 004 \t i \0 024 304 006 001 ? 031 \0 \0 225 0123520 212 017 241 240 227 301 002 I F 226 017 240 240 227 301 035 0123540 s e l f . a b o r t S t a t e 0123560 = r e q u e s t e d 226 017 241 0123600 240 227 301 004 T H E N 226 017 240 240 227 301 032 0123620 { s e l f . a b o r t S t a t e 0123640 _ n o n e ; 226 017 241 240 227 301 005 0123660 E R R O R 226 017 240 240 227 301 001 226 017 241 0123700 240 227 301 \a A B O R T E D 226 017 240 240 227 0123720 301 002 } ; 226 304 004 \t i \0 024 304 004 G % \0 0123740 " 212 017 240 240 227 301 002 } ; 226 304 004 \t i \0 0123760 024 304 006 \0 210 350 \0 \0 C 212 304 004 A 337 \0 240 0124000 304 006 \0 231 217 \0 \0 M 212 017 245 240 227 301 \f R 0124020 e q u e s t A b o r t 226 017 240 240 227 0124040 301 002 : 226 017 241 240 227 301 006 P U B L I 0124060 C 226 017 240 240 227 301 001 226 017 241 240 227 301 004 0124100 P R O C 226 017 240 240 227 301 027 [ p r o 0124120 c e s s : P r o c e s s ] = 0124140 { 226 304 004 \t i \0 024 304 006 \0 223 325 \0 \0 0124160 L 212 017 242 240 227 301 / . . . r e q u 0124200 e s t s t h e g i v e n p 0124220 r o c e s s t o a b o r t 0124240 i t s e l f . 226 304 004 \t i \0 024 304 006 0124260 \0 345 l \0 \0 y 212 017 241 240 227 301 006 S E L 0124300 E C T 226 017 240 240 227 301 024 p r o c e 0124320 s s . a b o r t S t a t e 226 017 0124340 241 240 227 301 004 F R O M 226 304 004 T 261 \0 240 0124360 304 004 Z 200 \0 1 212 017 240 240 227 301 \t n o n 0124400 e = > { 226 304 004 \t i \0 020 304 004 P 0124420 347 \0 - 212 017 240 240 227 301 037 p r o c e s 0124440 s . a b o r t S t a t e _ r 0124460 e q u e s t e d ; 226 304 004 \t i \0 020 0124500 304 004 e m \0 : 212 017 240 240 227 301 023 M a k 0124520 e R e a d y [ p r o c e s s ] ; 0124540 226 304 004 \t i \0 020 304 006 001 R 9 \0 \0 307 212 0124560 017 240 240 227 301 022 R a i s e R e s c h 0124600 e d u l e [ ] ; 226 304 004 \t i \0 020 304 0124620 004 s 211 \0 F 212 017 240 240 227 301 002 } ; 226 304 0124640 004 T 261 \0 240 304 004 $ 325 \0 027 212 017 240 240 227 0124660 301 \f i n h i b i t e d = > 226 304 0124700 004 \t i \0 020 304 004 024 . \0 \r 212 017 240 240 227 0124720 301 035 p r o c e s s . a b o r t S 0124740 t a t e _ d e l a y e d ; 226 0124760 304 004 T 261 \0 240 304 004 030 \r \0 020 212 017 241 240 0125000 227 301 \a E N D C A S E 226 017 240 240 227 301 0125020 001 ; 226 304 004 \t i \0 024 304 004 r 337 \0 O 212 0125040 017 240 240 227 301 002 } ; 226 304 004 034 ; \0 P 304 0125060 004 W 310 \0 C 212 305 005 X e r o x 305 \n P 0125100 r e s s F o n t s 305 016 T i m e s 0125120 R o m a n - B R R 017 243 241 033 240 223 304 0125140 004 \t i \0 310 240 244 240 224 017 246 225 017 246 240 227 0125160 301 024 R e s c h e d u l e I n t 0125200 e r r u p t 226 304 004 A 337 \0 240 304 004 ] 0125220 m \0 M 212 017 240 240 227 301 \r i n t H a n 0125240 d l e r s : 226 017 241 240 227 301 005 A R 0125260 R A Y 226 017 240 240 227 301 \r R e q u e 0125300 s t K i n d 226 017 241 240 227 301 002 O F 0125320 226 017 240 240 227 301 016 I n t H a n d l 0125340 e r _ 226 017 241 240 227 301 003 A L L 226 0125360 017 240 240 227 301 023 [ S t r a y I n t 0125400 H a n d l e r ] ; 226 304 004 A 337 \0 240 0125420 304 006 001 N ! \0 001 037 212 304 004 A 337 \0 240 304 0125440 006 \0 327 7 \0 \0 301 212 017 245 240 227 301 017 S t 0125460 r a y I n t H a n d l e r 226 017 240 0125500 240 227 301 \f : I n t H a n d l e r 0125520 226 304 004 \t i \0 024 304 006 \0 203 036 \0 \0 { 212 0125540 017 242 240 227 301 032 [ r e q u e s t K i 0125560 n d : R e q u e s t K i n d ] 0125600 226 304 004 \t i \0 024 304 004 { \v \0 y 212 017 240 0125620 240 227 301 002 ~ 226 017 241 240 227 301 \a T R U 0125640 S T E D 226 017 240 240 227 301 002 { 226 304 004 0125660 \t i \0 024 304 006 002 ` 273 \0 002 u 212 017 242 240 0125700 227 301 D S I M v e r s i o n . 0125720 O b v i o u s l y w e n e 0125740 e d t o d o s o m e t h i 0125760 n g b e t t e r h e r e f 0126000 o r R D I . 226 304 004 \t i \0 024 304 006 0126020 \0 335 f \0 \0 361 212 017 241 240 227 301 005 E R R 0126040 O R 226 017 240 240 227 301 003 } ; 226 304 004 A 0126060 337 \0 240 304 006 \0 206 310 \0 \0 233 212 304 004 A 337 0126100 \0 240 304 004 027 313 \0 035 212 017 245 240 227 301 022 R 0126120 e g i s t e r I n t H a n d l e 0126140 r 226 017 240 240 227 301 002 : 226 017 241 240 227 301 0126160 006 P U B L I C 226 017 240 240 227 301 001 226 0126200 017 241 240 227 301 004 S A F E 226 017 240 240 227 301 0126220 001 226 017 241 240 227 301 004 P R O C 226 017 240 0126240 240 227 301 3 [ r e q u e s t K i n 0126260 d : R e q u e s t K i n d , 0126300 i n t H a n d l e r : I n t H 0126320 a n d l e r ] 226 304 004 \t i \0 020 304 004 0126340 I y \0 _ 212 017 241 240 227 301 \a R E T U R 0126360 N S 226 017 240 240 227 301 025 [ o l d : 0126400 I n t H a n d l e r ] ~ 226 017 0126420 241 240 227 301 \a T R U S T E D 226 017 240 240 0126440 227 301 002 { 226 304 004 \t i \0 024 304 004 A 351 0126460 \0 [ 212 017 241 240 227 301 002 I F 226 017 240 240 227 0126500 301 016 i n t H a n d l e r = 0126520 226 017 241 240 227 301 003 N I L 226 017 240 240 227 301 0126540 001 226 017 241 240 227 301 004 T H E N 226 017 240 0126560 240 227 301 036 i n t H a n d l e r 0126600 _ S t r a y I n t H a n d l e 0126620 r ; 226 304 004 \t i \0 024 304 004 [ 323 \0 210 212 0126640 017 240 240 227 301 024 D i s a b l e I n t 0126660 e r r u p t s [ ] ; 226 304 004 \t i \0 0126700 024 304 004 } 327 \0 311 212 017 240 240 227 301 022 A c 0126720 q u i r e M e t a L o c k [ ] ; 0126740 226 304 004 \t i \0 024 304 004 h n \0 265 212 017 240 0126760 240 227 301 037 o l d _ i n t H a n 0127000 d l e r s [ r e q u e s t K i n 0127020 d ] ; 226 304 004 \t i \0 024 304 004 a 247 \0 271 0127040 212 017 240 240 227 301 & i n t H a n d l e 0127060 r s [ r e q u e s t K i n d ] 0127100 _ i n t H a n d l e r ; 226 304 004 0127120 \t i \0 024 304 006 \0 221 017 \0 001 / 212 017 240 240 0127140 227 301 022 R e l e a s e M e t a L o 0127160 c k [ ] ; 226 304 004 \t i \0 024 304 004 < 224 0127200 \0 215 212 017 240 240 227 301 024 E n a b l e I 0127220 n t e r r u p t s [ ] ; 226 017 242 0127240 240 227 301 * - - S I M o n l y , 0127260 h a p p e n s a u t o m a t 0127300 i c a l l y i n R D I . 226 304 0127320 004 \t i \0 024 304 006 001 9 215 \0 003 8 212 017 240 0127340 240 227 301 002 } ; 226 304 004 \t i \0 024 304 004 G 0127360 A \0 327 212 304 004 A 337 \0 240 304 004 . 004 \0 243 0127400 212 017 245 240 227 301 031 S i m C h e c k F 0127420 o r R e s c h e d u l e T r a p 0127440 226 017 240 240 227 301 002 : 226 017 241 240 227 301 004 0127460 P R O C 226 017 240 240 227 301 004 ~ { 226 0127500 240 k 240 j 017 241 017 245 223 304 006 \0 \0 035 001 B 0127520 Q 240 244 240 250 305 005 X e r o x 305 \n P r 0127540 e s s F o n t s 305 \n L a u r e l 0127560 - M R R 017 243 241 033 240 223 304 004 003 # \0 P 0127600 240 244 240 224 017 240 225 017 240 240 227 304 006 \0 342 351 0127620 \0 \0 q 304 006 \0 346 304 \0 \0 O 212 301 002 1 4 0127640 226 304 004 \t i \0 024 304 006 \0 203 033 \0 \0 1 212 0127660 305 005 X e r o x 305 \n P r e s s F o 0127700 n t s 305 016 T i m e s R o m a n - 0127720 M I R 017 243 241 033 240 223 304 004 003 # \0 P 240 0127740 244 240 224 017 241 225 017 241 240 227 301 \t S I M 0127760 o n l y . 226 304 004 \t i \0 024 304 006 \0 324 0130000 305 \0 \0 Q 212 017 241 240 227 301 003 O n 226 301 0130020 016 a r e a l D r a g o n 226 0130040 301 ! t h e c u r r e n t p r 0130060 o c e s s o r c a n c h a n 0130100 g e 226 301 " w h e n e v e r i 0130120 n t e r r u p t s a r e e n 0130140 a b l e d ! 226 301 004 T h i s 226 0130160 304 004 \t 341 \0 024 304 004 + 333 \0 021 212 017 241 240 0130200 227 301 ] c o d e w o u l d b e 0130220 b o g u s o n a r e a l 0130240 m a c h i n e , b u t , a 0130260 f t e r a l l , i t ' s h 0130300 e r e t o s i m u l a t e 0130320 a r e a l m a c h i n e ' s 0130340 226 304 004 \t 341 \0 024 304 004 K 373 \0 036 212 017 241 0130360 240 227 301 027 i n t e r r u p t m e 0130400 c h a n i s m . . . 226 304 004 \t i 0130420 \0 024 304 006 \0 222 214 \0 \0 ; 212 305 005 X e r 0130440 o x 305 \n P r e s s F o n t s 305 016 0130460 T i m e s R o m a n - M R R 017 243 0130500 241 033 240 223 304 004 003 # \0 d 240 244 240 224 017 242 0130520 225 017 242 240 227 301 002 I F 226 017 240 240 227 301 001 0130540 226 017 242 240 227 301 003 N O T 226 017 240 240 227 0130560 301 * C u r r e n t P r o c e s 0130600 s o r [ ] . s i m . i n t e r r 0130620 u p t s E n a b l e d 226 017 242 240 0130640 227 301 004 T H E N 226 017 240 240 227 301 001 226 0130660 017 242 240 227 301 006 R E T U R N 226 017 240 240 0130700 227 301 001 ; 226 304 004 \t i \0 024 304 006 \0 215 ; 0130720 \0 \0 : 212 017 242 240 227 301 006 W H I L E 0130740 226 017 240 240 227 301 * C u r r e n t P r 0130760 o c e s s o r [ ] . s i m . r e 0131000 s c h e d u l e R e q u e s t e 0131020 d 226 017 242 240 227 301 003 D O 226 304 004 T 261 0131040 \0 240 304 004 w O \0 2 212 017 240 240 227 301 - C 0131060 u r r e n t P r o c e s s o r [ 0131100 ] . s i m . r e s c h e d u l e 0131120 R e q u e s t e d _ 226 017 242 240 0131140 227 301 005 F A L S E 226 017 240 240 227 301 001 ; 0131160 226 304 004 T 261 \0 240 304 006 \0 376 305 \0 \0 m 212 0131200 017 240 240 227 301 026 D i s a b l e I n t 0131220 e r r u p t s [ ] ; 226 017 241 240 0131240 227 301 < - - s o R e s c h e d 0131260 u l e T r a p w i l l b e 0131300 c a l l e d w i t h i n t e 0131320 r r u p t s d i s a b l e d 226 0131340 304 004 T 261 \0 240 304 006 \0 275 362 \0 \0 S 212 017 0131360 240 240 227 301 O S i m C a l l A n d S 0131400 u s p e n d [ C u r r e n t P r 0131420 o c e s s [ ] . s i m . l o c k 0131440 , C u r r e n t P r o c e s s 0131460 [ ] , R e s c h e d u l e T r 0131500 a p ] ; 226 304 004 T 261 \0 240 304 006 001 350 ? 0131520 \0 \0 332 212 017 241 240 227 301 @ T h i s i 0131540 s w h e r e t h e c u r r 0131560 e n t p r o c e s s r e s u 0131600 m e s w h e n i t ' s r e 0131620 s c h e d u l e d . 226 304 004 T 261 \0 0131640 240 304 004 f 370 \0 / 212 017 242 240 227 301 \a E N 0131660 D L O O P 226 017 240 240 227 301 001 ; 226 304 004 0131700 \t i \0 024 304 004 \ 033 \0 + 212 017 240 240 227 301 0131720 002 } ; 226 304 004 \t i \0 024 304 006 002 . 337 \0 0131740 001 \v 212 304 004 A 337 \0 240 304 004 | 264 \0 = 212 0131760 305 005 X e r o x 305 \n P r e s s F o 0132000 n t s 305 016 T i m e s R o m a n - 0132020 B R R 017 243 241 033 240 223 304 004 003 # \0 P 240 0132040 244 240 224 017 243 225 017 243 240 227 301 016 R e s c 0132060 h e d u l e T r a p 226 017 240 240 227 301 0132100 002 : 226 017 242 240 227 301 004 P R O C 226 017 0132120 240 240 227 301 004 = { 226 304 004 \t i \0 024 0132140 304 004 % 352 \0 023 212 017 241 240 227 301 \ . . . 0132160 i s c a l l e d w h e n e 0132200 v e r t h e r e s c h e d u 0132220 l e i n t e r r u p t i s 0132240 e n a b l e d a n d e i t h 0132260 e r t h e r e s c h e d u l 0132300 e l i n e i s 226 304 004 \t 341 \0 024 0132320 304 004 | 263 \0 @ 212 017 241 240 227 301 [ a s s 0132340 e r t e d O R r e s c h e d 0132360 u l e t r a p s b e c o m e 0132400 e n a b l e d a n d t h e 0132420 r e i s a d e f e r r e d 0132440 r e s c h e d u l e p e n d 0132460 i n g . I n 226 304 004 \t 341 \0 024 304 0132500 006 \0 365 G \0 \0 201 212 017 241 240 227 301 _ e i 0132520 t h e r c a s e , w e s t 0132540 a r t u p w i t h c r i t 0132560 i c a l t r a p s i n h i b 0132600 i t e d , a n d a s p e c 0132620 i a l r e t u r n ( h a n d 0132640 - c o d e d i n t h e 226 304 004 0132660 \t 341 \0 024 304 004 k 215 \0 : 212 017 241 240 227 301 0132700 \ R e s c h e d u l e T r a p 0132720 v e c t o r ) e n a b l e s 0132740 c r i t i c a l t r a p s o 0132760 n e x i t . O n e n t r 0133000 y , v o l a t i l e E U s 0133020 t a t e h a s b e e n 226 304 004 0133040 \t 341 \0 024 304 004 z 345 \0 D 212 017 241 240 227 301 0133060 ] p u s h e d i n s u c h 0133100 a w a y t h a t w h e n 0133120 t h e p r o c e s s i s s 0133140 w i t c h e d t o l a t e r 0133160 t h e v o l a t i l e E U 0133200 s t a t e w i l l b e 226 304 0133220 004 \t 341 \0 024 304 004 R 273 \0 / 212 017 241 240 227 0133240 301 D r e s t o r e d c o r r e 0133260 c t l y ( a g a i n , h a n 0133300 d - c o d e d i n t h e R 0133320 e s c h e d u l e T r a p v e 0133340 c t o r ) . 226 304 004 025 365 \0 ( 304 006 001 0133360 251 237 \0 \0 373 212 017 242 240 227 304 004 006 247 003 ? 0133400 017 262 223 301 f R e s c h e d u l e T 0133420 r a p i s p r i m a r i l y 0133440 c a l l e d i n r e s p o 0133460 n s e t o t w o c a u s e 0133500 s : d e v i c e i n t e r r 0133520 u p t s a n d e x p l i c i 0133540 t c o n d i t i o n 226 017 241 017 262 0133560 223 304 004 025 365 \0 ( 304 006 \0 360 1 \0 \0 221 212 0133600 017 242 240 227 304 004 017 321 \b w 017 262 223 301 g v 0133620 a r i a b l e w a k e u p s . 0133640 D e v i c e i n t e r r u 0133660 p t s a r e t u r n e d i 0133700 n t o c o n d i t i o n v a 0133720 r i a b l e w a k e u p s i 0133740 n t h i s r o u t i n e , 0133760 s o t h e 226 017 241 017 262 223 304 004 025 365 0134000 \0 ( 304 004 B O \0 ) 212 017 242 240 227 304 004 \n 0134020 224 \b 355 017 262 223 301 n a p p e a r a n 0134040 c e o u t s i d e o f t h 0134060 i s r o u t i n e i s t h 0134100 a t w e o n l y h a v e 0134120 c o n d i t i o n v a r i a b 0134140 l e w a k e u p s . S t a 0134160 t i s t i c a l l y w e o n 0134200 l y g e t 226 017 241 017 262 223 304 004 025 365 0134220 \0 ( 304 004 y 203 \0 M 212 017 242 240 227 304 004 \t 0134240 307 006 362 017 262 223 301 i t o e n t e r 0134260 R e s c h e d u l e T r a p 0134300 i f t h e r e i s a r e 0134320 a d y p r o c e s s w i t h 0134340 p r i o r i t y > = l o w 0134360 e s t R u n n i n g P r i o r i 0134400 t y , a n d w e t r y t 0134420 o 226 017 241 017 262 223 304 004 025 365 \0 ( 304 006 \0 0134440 267 \0 \0 w 212 017 242 240 227 304 004 005 \v 004 376 0134460 017 262 223 301 n g i v e t h e s c 0134500 h e d u l e r t o a p r o 0134520 c e s s o r w i t h p r i o 0134540 r i t y = l o w e s t R u n 0134560 n i n g P r i o r i t y . T 0134600 h e m a j o r e x c e p t i 0134620 o n t o t h i s i s t i 0134640 m e - 226 017 241 017 262 223 304 004 025 365 \0 ( 304 0134660 006 \0 210 x \0 \0 [ 212 017 242 240 227 301 ] s l 0134700 i c i n g , w h i c h s h o 0134720 u l d b e k e p t t o a 0134740 m o d e s t r a t e ( t h 0134760 e c u r r e n t s y s t e m 0135000 u s e s a b o u t 1 0 p 0135020 e r s e c o n d ) . 226 304 004 \t i 0135040 \0 024 304 004 X 200 \0 = 212 017 240 240 227 301 4 e 0135060 n t r y P r i o r i t y : P r 0135100 i o r i t y ~ C u r r e n t 0135120 P r o c e s s [ ] . p r i o r i 0135140 t y ; 226 304 004 \t i \0 024 304 004 K 265 \0 6 0135160 212 017 242 240 227 301 002 D O 226 304 004 T 261 \0 240 0135200 304 004 2 021 \0 % 212 017 241 240 227 301 E F i r 0135220 s t , t r y t o g r a b 0135240 o w n e r s h i p o f t h e 0135260 s c h e d u l e r ( i f a 0135300 t l o w e s t p r i o r i t 0135320 y ) 226 304 004 T 261 \0 240 304 006 \0 327 6 \0 \0 0135340 245 212 017 242 240 227 301 002 I F 226 017 240 240 227 301 0135360 017 e n t r y P r i o r i t y . 0135400 226 017 242 240 227 301 003 O R D 226 017 240 240 227 301 0135420 032 < = l o w e s t R u n n i 0135440 n g P r i o r i t y . 226 017 242 240 227 0135460 301 003 O R D 226 017 240 240 227 301 001 226 017 242 0135500 240 227 301 003 A N D 226 017 240 240 227 301 021 s 0135520 c h e d u l e r L o c k = 226 0135540 017 242 240 227 301 003 N I L 226 017 240 240 227 301 001 0135560 226 017 242 240 227 301 004 T H E N 226 304 004 \t 0135600 i \0 020 304 006 001 < a \0 \0 374 212 017 241 240 227 0135620 301 R T h i s p r o c e s s o r 0135640 i s o n e o f t h e b 0135660 e s t t o t r y t h e s 0135700 c h e d u l e r , a n d t h 0135720 e s c h e d u l e r i s f 0135740 r e e . 226 304 004 \t i \0 020 304 004 S B \0 0135760 E 212 304 004 \t i \0 020 304 004 = ] \0 5 212 017 0136000 242 240 227 301 002 I F 226 017 240 240 227 301 $ C 0136020 S t o r e P r o c e s s [ p t r 0136040 : @ s c h e d u l e r L o c k 0136060 ] 226 017 242 240 227 301 004 T H E N 226 017 240 0136100 240 227 301 002 { 226 304 004 Y 355 \0 213 304 004 I 0136120 1 \0 B 212 017 241 240 227 301 - A t t h i 0136140 s p o i n t w e h a v e 0136160 a c q u i r e d t h e s c h 0136200 e d u l e r . 226 304 004 Y 355 \0 213 304 004 0136220 f 325 \0 a 212 304 004 Y 355 \0 213 304 006 \0 267 \v 0136240 \0 \0 265 212 017 240 240 227 301 7 c u r r e n 0136260 t R e q : R e q u e s t W o r 0136300 d _ R e a d A n d C l e a r 0136320 D e v i c e R e q u e s t s [ ] 0136340 ; 226 304 004 034 ; \0 ( 304 006 \0 304 W \0 \0 314 0136360 212 017 241 240 227 301 F s a m p l e & 0136400 c l e a r r e q u e s t w o 0136420 r d ( c u r r e n t l y p r 0136440 o t e c t e d b y t h e s 0136460 c h e d u l e r L o c k ) 226 304 004 0136500 Y 355 \0 213 304 004 O | \0 W 212 304 004 Y 355 \0 0136520 213 304 004 F \f \0 Q 212 017 240 240 227 301 022 A c 0136540 q u i r e M e t a L o c k [ ] ; 0136560 226 304 004 034 ; \0 ( 304 004 K 021 \0 \ 212 017 241 0136600 240 227 301 : d o n ' t a l l o w 0136620 c h a n g e s t o t h e r 0136640 e a d y q u e u e b y o t 0136660 h e r p r o c e s s o r s 226 304 0136700 004 034 ; \0 ( 304 004 [ I \0 w 212 304 004 Y 355 0136720 \0 213 304 004 \ 250 \0 201 212 017 242 240 227 301 002 I 0136740 F 226 017 240 240 227 301 036 c u r r e n t 0136760 R e q # n u l l R e q u e s 0137000 t W o r d 226 017 242 240 227 301 004 T H E 0137020 N 226 304 004 034 ; \0 ( 304 004 B F \0 c 212 017 0137040 241 240 227 301 M S e r v i c e r e q 0137060 u e s t s i n t h e c u r 0137100 r e n t R e q w o r d b y 0137120 t w e a k i n g t h e a p p 0137140 r o p r i a t e i n t e r r u 0137160 p t 226 304 004 035 + \0 ( 304 004 Y \0 \0 217 212 0137200 017 241 240 227 301 S c o n d i t i o n 0137220 q u e u e s . T h i s l o 0137240 o p i s n o t t h e f a 0137260 s t e s t w a y t o d o 0137300 t h i s , b u t i t i s 0137320 n o t w o r t h 226 304 004 035 + \0 ( 0137340 304 004 Q 037 \0 215 212 017 241 240 227 301 = i m p 0137360 r o v i n g u n l e s s w e 0137400 f i n d o u t t h a t i 0137420 t i s t a k i n g a l o 0137440 t o f t i m e . 226 304 004 034 ; \0 0137460 ( 304 004 O 200 \0 227 212 017 242 240 227 301 003 F O 0137500 R 226 017 240 240 227 301 023 r e q x : R 0137520 e q u e s t K i n d 226 017 242 240 227 0137540 301 002 I N 226 017 240 240 227 301 \r R e q u 0137560 e s t K i n d 226 017 242 240 227 301 002 D 0137600 O 226 304 004 G 033 \0 ] 304 004 ^ 031 \0 305 212 017 0137620 242 240 227 301 002 I F 226 017 240 240 227 301 022 c 0137640 u r r e n t R e q [ r e q x ] 0137660 226 017 242 240 227 301 004 T H E N 226 017 240 240 227 0137700 301 002 { 226 304 004 A 337 \0 P 304 004 7 277 \0 0137720 202 212 017 240 240 227 301 032 ( i n t H a n d 0137740 l e r s [ r e q x ] ) [ r e q x 0137760 ] ; 226 304 004 A 337 \0 P 304 004 5 365 \0 216 212 0140000 017 240 240 227 301 023 c u r r e n t R e q 0140020 [ r e q x ] _ 226 017 242 240 227 301 005 0140040 F A L S E 226 017 240 240 227 301 001 ; 226 304 004 0140060 A 337 \0 P 304 004 0 004 \0 221 212 017 242 240 227 301 0140100 002 I F 226 017 240 240 227 301 036 c u r r e 0140120 n t R e q = n u l l R e q u 0140140 e s t W o r d 226 017 242 240 227 301 004 T 0140160 H E N 226 017 240 240 227 301 001 226 017 242 240 227 0140200 301 004 E X I T 226 017 240 240 227 301 001 ; 226 304 0140220 004 A 337 \0 P 304 004 ; 221 \0 323 212 017 240 240 227 0140240 301 002 } ; 226 240 k 240 j 017 241 017 245 223 304 006 0140260 \0 \0 035 001 B Q 240 244 240 250 305 005 X e r o 0140300 x 305 \n P r e s s F o n t s 305 \n L 0140320 a u r e l - M R R 017 243 241 033 240 223 304 0140340 004 003 # \0 P 240 244 240 224 017 240 225 017 240 240 227 0140360 304 004 z 222 \0 = 304 006 \0 346 304 \0 \0 O 212 301 0140400 002 1 5 226 304 004 G 033 \0 ] 304 006 \0 203 033 \0 0140420 \0 1 212 305 005 X e r o x 305 \n P r e s 0140440 s F o n t s 305 016 T i m e s R o m 0140460 a n - M R R 017 243 241 033 240 223 304 004 003 # 0140500 \0 d 240 244 240 224 017 241 225 017 241 240 227 301 \a E 0140520 N D L O O P 226 017 240 240 227 301 001 ; 226 304 0140540 004 Y 355 \0 213 304 006 \0 242 331 \0 \0 > 212 304 004 0140560 Y 355 \0 213 304 006 \0 333 027 \0 \0 U 212 017 241 240 0140600 227 301 002 I F 226 017 240 240 227 301 026 h i g 0140620 h e s t R e a d y P r i o r i t 0140640 y . 226 017 241 240 227 301 003 O R D 226 017 240 240 0140660 227 301 031 > l o w e s t R u n n 0140700 i n g P r i o r i t y . 226 017 241 240 0140720 227 301 003 O R D 226 017 240 240 227 301 001 226 017 0140740 241 240 227 301 004 T H E N 226 304 004 034 ; \0 ( 0140760 304 006 \0 213 021 \0 \0 7 212 305 005 X e r o x 0141000 305 \n P r e s s F o n t s 305 016 T i 0141020 m e s R o m a n - M I R 017 243 241 033 0141040 240 223 304 004 003 # \0 P 240 244 240 224 017 242 225 017 0141060 242 240 227 301 P T h e r e a r e r 0141100 e a d y p r o c e s s e s t 0141120 h a t a r e b e t t e r t 0141140 h a n a t l e a s t s o m 0141160 e p r o c e s s o r , s o 0141200 g o d o 226 304 004 035 + \0 ( 304 006 \0 227 0141220 ^ \0 \0 = 212 017 242 240 227 301 026 t h e b 0141240 u l k r e a s s i g n m e n t 0141260 . 226 304 004 034 ; \0 ( 304 006 \0 254 263 \0 \0 G 0141300 212 017 240 240 227 301 023 A s s i g n P r o 0141320 c e s s o r s [ ] ; 226 304 004 Y 355 \0 0141340 213 304 006 \0 237 257 \0 \0 C 212 304 004 Y 355 \0 213 0141360 304 006 \0 225 e \0 \0 @ 212 017 242 240 227 301 " r 0141400 e l e a s e l o c k s ( i n 0141420 t h e g i v e n o r d e r 0141440 ) 226 304 004 Y 355 \0 213 304 004 f 326 \0 - 212 017 0141460 240 240 227 301 020 s c h e d u l e r L o 0141500 c k _ 226 017 241 240 227 301 003 N I L 226 0141520