ࡱ> `!K6履xXlcVN:xڭ[LUEl+]t [L Mj45Dh|0iDh$/ʃJڇ/>4LJl#X[CJ@Egf!,3gf翞\ o=,F"1rꎺt/^y l>^.c )ghYqCG;%vw^$FO]P_ZoIOqt_P9lt>^u3_ci-]Űĭ-ziyiQ)+,[9NQ9ŶW@kA ^c*{堨ؽUjզHQ(ŎjRlP&{EQ*߂6Du0Yn.E#RH/[ ʱ{? ބ„ G\YZ#^3YfjfϤZj\#8LJA+j޽#(,Cha]^9}$YfY+y?/6bgRuuv$ _Q (FZB,NGM@qղǮjnj[dz,NٵiaGghd!GӀaڇY}U_HH/}XX#U5 Ǥ09R~m $'Yh8~H1хɷ#NjV[$ &4~~D1o/`G(}۶q ,OGՍבEoޥoW>zṲsi1%,1:qr)]̚#³X>#8/:VēxKQeS'|/11'ϟ%ďI3;iF>[tʭK$8)$vE7vߏfo)9.I8ٝ,;N~DҺMbKjy̋ι[rv3ZQ]6ŢQxg -XW˅Zw\v?!ʫ5qdD5y+L7B\oXidŃ Vk5I* Vyucs돒1~^/䀺&RqOOo[+j׊QYcjQ,D%T,])k+x6Ƞy.Fnk ] B}-.Xh.;Z>^UۋrtyА}ae`꣔Tc8e0Nqa/3g9lnܙEzN7Ͱ"}]n;OS8H*=Ohn\s7/Vo:m:Xsk=n5h_sM;`!~7Mnǜg(e C(&*xŚ]lS߯sa N!m`KY ѯL\ FHŤ^m,B@Suk.zS"4Ti4@2ڰv%U'xqrs츳9y}{k!l$0AGYXil1Y3|O;3D2v|1IY(: m^Q]?jo$[[ufy4!) csFF>ȜUB@[c]Lc'W3^RE3G#7nǑ %jv>TZVeZ9sD wuE,b,6D.3S#W.`V ^kcPW1'k$:d^j2QJRFF Q.t8F eFLp{T+Y֨wI5ezQo9_mtdbȗé7#l'+\{;Sx=izR^a65iz؞R9ldaat=s=,ayqNKjA/zڋՓe8'-8ΞTbb.&FhS+ꪼNhj{BH?zc&q ]ɲFKѕ,kԛUzȫ7+bJKid?'c|L/-K]*+ztU%7tU/Z~ӉH䈖t"yA~5.ƬQ_:VjM @+znr|)I-D$r$M'"hM'"7D>7D~:jN״fA>+znr|)Z~ӉH<Nh办)_t" -D${Z~O}jcǷZ1~X+WZ~өTЩTZ~ӉHkZ~ӉHo:ܬ7ډY=7};@ʖSUIQKoM|zۍ}W켼g"&.hBVMNr Kx/t p %&⏂'.I_s/j7͏&5:?M'ahT!u?@1hӼ CKӜU栠wTluPzjZvs zʜO3P r␶G Vwsچ@Vh샃}p,d tAtAԁndǗ`Z![z+$YŲZb*בud12'ACVk|Z&y~d܊A?b/Z _fM)*B'YgKqvA7CƿE濁^^+p61doc87I88 of F?cc52GSIj1vxcdx?ҨWM?hZz.o EGjjSj# 8"ƆGoEǢ#VؿI!42pqЋgVj@w%a׫RUI$'Mzć~B๎26T6Ԧiَ zTJLm~a!0pVSU h
#5zn9Bk*R㦘.JBgrDb4-o^o6m70ޖx9kΰ'zC\pbe'B^)nM9 Ed 0"QoBiG{G,#"{YFK+!@::xOw*a6XK438}<\cۈh*6xY=PXE1[own|lG yYӊqݓژmx!NOzA:rRcSƘvH/kp?!@r{A[/g&Gzm9rcl eͻv!h*+x)əfB>/S A6MYna!?N_@GjE~9ɣK"f,\q!x,$GbGTb!$ d&LXB,R53N@:dun=iޓll5~DL+ЊGY#F8 &G5}wM^K#˘b]'g!s9.MlB|KaʻM:~"2-{hf7ØscKYGrǮ<}Qi J/Y-Hd&ߵB̅u!> Iv٣;C2.yD´MEL`m dT|Ƹ^Q_HXw߳쯩۳dIi䢅L "ZUb)3Ow0M$a-iX-$P A#dƹSƛ1ϐdGc<6Er_%[#8O"_G*")" +DP@)<6#4kxD֕"ɐm|!V"rGI˽*" "Rpģ>؂aHcxX\B;_JHD/٤ۉDb$|"1!"RGH N $u #':D"grb !=)UDz).D{#! T9d=4"")1 oٜH׵q. ӏ!wiUܻTH%8"$H$KD "PmH$w^ uF$^4Jl[%۠ D{D DtÈ-D36:RD~aj=ݚ{#Bx2Ed/k}WID.I '0}/B$1>AG"Bd{Wz*$YDC1"Aӈ!D $,"#![s!ʓH7fD$j1"N$GB{THDH:)5{E$آW?{dYHܥD6'=WH AX&oz.!9gBgI{̄O~ Q!! $B7xŗ{,uĴ҂ƣ*o/Ra"$r["!}"f"Ī0J"DNh߸b̀IKr'a,)$/bMŗ+Ҟc f Ld 0uHBLS|)CQ,:%O`$F$zT=hUڈB"=hXPx_@ėhėQ&Za휚^GH 1ظ qaJ:25Kf^K.3!vr %2%-u[F#5LUѴHH&,g:*o=K' +"2ĨĊ-""o&}7IUVvulEMD%DBJDh0Hc"B^:{Hf"6, B)";GBD$yfR#0{)"{d~oKd E3 g,ӖH/[c"¹m=/hld GD&bNOQ 񷶑HFM7%r!Jm2"Y'ľMF.Es iFjF!B' B mܣ]"7tRYHQ oD؇_~ܗ`|/g[D* vdVIYNd[Gj28DY#z}EN"8̸%b7&e3`ү#fP':m¬i9J.zj/d1 ǩZ5EW^V<݈5\E?{ #D^)r-d2bAՃkLf8V$J,w!ǎ=[3ףFBprV],)RGj d }%hG"kW)Ta}Sl@G kzHy^Ҡxl2RB\uLuYL* '}X9zNƕ!. !êg>QMHı;PuG+i7UkIy٤i33&#f6aԫ !w*@K zmuY<KvOcf$e [BmT%t`;gSW ݇+ŃQB7r dʩv$k<:+YS#Ay0"C4Ҫ6DHݰ5egwt?-Q+! &.#gIdPTߏ$J縷kKEAZ}׀t@MK,qNd*|ez[rAFS<=BrZ;~(aw]RRhfj?NN y2嚆% 9"l5֊W$gR<XjI-9T HcvIK>"oWʢ"yp?})} bG&$ꤛos$1WԆP-=GǬiGwZD'5+r)2&6$.9+SYlݢ ~h+$PǬtrL3px?uQ֔1+>k$?H/wYIٚoʤu8>BEit"E.DЙIr+džX8j.$kL 뻖\HٱD uvKw}+v>*rW5nMA"Oq|jבKQ,u;ͅY&Zj+j S}"qSuE}Ԃju4P| oNAd?͜O(Nzr@,lp^np.CV 6BH=RY`q1Mv~5.u<s䣋գߓS:I]qkꜞa>nCYGnxŽG\,ܲlH*&P>HPB'P9l6X@ {2e_J3 $cK储+ 'ԁLGfR#u BA j#T+ $ -u!HbA>fR>'FfǿOtUd@ ntdr=Oo;R4AgUͮٿ5E=(^ aL-961)Ïjq>V{oJ5IisX+p(}BJ1Jj:(DLy,parErLh"8 ˩}9:́i!?1|OjC?)k3vBLg5 $.d6UE#^;̡dX墬“V̳%~yܖn aMZɌs(ouƲ?1ʹ/0 xWj2;0Ⱥ}e)C!#6ie GAx}\/ U=Mh&KJCi} ($Kxxq n5};dϼ57ʰM}|:sR[)F^^>RZXu}萈؛CnmZ )Զ#o {Ijܺz#,e}6~Au<1gkK{I YR֝jd-WpZU?]a]oɎSMO` Ԅ&#{}eZM'J:ƪZűbbqKWgt἗B笞ka'lҥw%ibˏ[=LKK pxuZ`ր,[Ǎ|pb$k3c >vׄcy(:gX+ùF<WX=ƱN\3sPGQUϜp.J.o)c 9ܷZF*ȤhVqرHOt. 1GF?wv:WF3e\L"yx{\XUib~("'3ZW1ZWd^OC&F]=cgZ}}}tq~Q7z|qCnv4b'? #9b ?_1Wb+ݯ%e(!|Y-BFKt~@`o&0Z>CoxR=za򃿏1Wy'qΥ"0*y/8'mfL&HLtg#̑$hq 1[ӾӾb}m9=)S49 5E9KHQǾQWdηK^[fp|Gv|ې!>gNz'_;|D>=|dvN=| 83{DJ7FC$עP1hhηL GKM8+rW6|ԅ%p%MhNatX#3ŋ$-+-SSВ`aSȥJ#6/& 6Ue-Ɇ!++|>2|>-/&6\eh0`zb"0EH~fM0a+*Tn'C.C?V C> a`)OO5❀i=EY?v4̧(Zô^ wQ.|{Qߤ։w :w邽v6؟ݕu}xaUauwx>- g/dy³H(HϥGË'7WVD$DعJ~}&Z< Lr d-$/ f!%~9ov9 ɯB[ vBmFMmUJ  vKm7.ݰ{UE v?J00a;*zx0`*gN} s ΑoBkk9{V_ֆL%re]!ߎv e%K  ^Y}a`{ǻs9 Փ<V{w9ü> - E+k&hh^%LD.YV T4Td%M- o!Lbrٲrf+5V¬]MnЊ`®Qhex0e*dm#_flAƫ!W+k?:xu0ak|qzc05:A^# %Bߌքw \[.œmQW^%!Nx0`; Z?^L?AYA mA%?fk4{,ghni0NX#3O7&6OV,8x8XXOOCKKIM#.k L yJ>>-/&6\eh0`zb"0EH~fM0a+*Tn'C.kd7݁l6_|wh7)||COѿ }gzKEY)i%3?Uo7-/k^2\?,6`!j(W2r c1F%X@I%8xڭMLTWoy2ĢƔ&MDLmې.B Z"&mSih$r4ae&Fʦ.R>>͛/^&w{"gi ;iB2-\-KQ: 2__}Fk@Ȱ8+wmD; `+)[Y5 JOɅҊ,6@0}@j뷒 V\%JRDN>Bv3i/7鞭}0=;=jˡmn^w-5I(1>_I~1NMϮLCVt82i;yې#k`ja+[u~u~WGp^(0WJYXf3{"{b+XO^^Z:V۱>;3۽=izPk'c8xBy`٧ozn!{^9\^\oxt-]Dݽ+|Z#@gE~}gGho<4 lrK@Wa0w>rP\T =|1"3H8y(x]mAjˆ}![F@#.8JNi~3r4W=-&/So"DkKhٕ>.~\ΞԨ13.Q?6*N}y{z8b_ љclyFŸ,>OO>3_7ȭUyGU{Ս89V}{4#G33=g\R+e[i9Q.dʃ^2il jmBn/]-\WS_oI'Gb |Yrjl[rb;ض8XKm$ړOV)K}~,*|.MU'}SSMH2˖q^f@,.m6Q+.eu +?*`!3MU66 ހԑW)"Z%HxڭUMKTQ~33:3:9i_^# !:FHGP\haA7ڹU#M (C3F=MBsΜ:yCh"mQ 됏P <'*VS Oj :j,m򪹷рI|ٳ"rl[: ސCēٙ9Kc㧨<;k*CG(p^}")Dx}qSKAVAk(6%e uey z2 ˲;lt qՇ $ܙwH 2pXHZdEzCl=X\vIJ~b1+1?4[ ڝvnUdv ,҉wa,6깑QQP0޳}Жg#?mya'w~>֞}#4 `!eHǹGMBLPLHxڽXKLTWsAa@aVCt R#G.FbD#`\(4R6i⢺EӤ&5V\Ф1ֺhm,0#BRyĤ&ޙ;CHsy LUDTFXEhѽuS q6[kJrhA&KH!i/!n$k?(#ƏphÒb]-Y'Tǻ6Bs Zy``d)NkQ,ݢU@*UI/y/DD"9!bv-'&[MY*Hw03Af@f'. m { ٣+)Mbg$咓+ ^vd8k5lFGLT%SPKλ|4!^W`oV__ܢB*O_W+O͘mI5h2Yh ]. jxߊT!;jѾ'}t:ߩ`;4ڟe-:<,K_7)u'ۚmϲ;6b[wmFٶԑc.)I8l[ønaWqrb>sK:ov.T/;z rz45<)k&߯s |J!A+>9z taצǩqoe AvPƮZT^?9id\9g[]&1E͸L<#scg\f0=s;x欛z,yҬ+CsʺݬoFQpVc0v{^}l>Vvߘ]0~c .hmlt rڐa>B N~ 'AcZE= }W#bdA KAcbA=n-xW"2]Uh񾨾EGF.tu L7.W1~opM4*U+ҟߤ/sze6w|)6zZ'HV!1uz {vT+*Ϲ{kJ ODYS:;ZmZ\ nGk?e{I`C6i]MeW~5h5. 6Z8 Va˔APU,[yᰃ V}C f]0"φ\+bka,}:[%:l?r=Fƞ#ͺ:)H7>OPE/A (  < ^= 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordH 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordI 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordJ 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordK 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordL 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordM 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordN 8AC=>: Word.Picture.80, 8AC=>: Microsoft Word,/ 0`DTimes New RomanTTT ܖ 0ܖDVerdanaw RomanTTT ܖ 0ܖ" DWingdingsRomanTTT ܖ 0ܖ0DGaramondRomanTTT ܖ 0ܖ@DArialndRomanTTT ܖ 0ܖ"PDTimes New Roman CyrT ܖ 0ܖ`DTahomaew Roman CyrT ܖ 0ܖ"pDCourier Newman CyrT ܖ 0ܖ1 C . @n?" dd@  @@`` t^   FHGH   """""""""" $#'n #"   5$ -!"#$%&)*,G- BCrsvwyz{|}~ 2$K6履xX2$lwHץrDM/{2$~7MnǜgP b$9e1U\B4<2$f厓 p(2$(W2r c1r42$&m]6fη<9 ;2$MU66 ހԑW);G2$eHǹGMJ 0e0e A@A5%8c8c     ?1d0u0@Ty2 NP'p<'p@A)BCD|E? fYYf i3f@8  g4VdVdxT  0ppp@  R ʚ;>a8ʚ;<4!d!d  x 0 <4dddd  x 0 0___PPT10 ppN___PPT90(? -O =T?5@0F8>==K5 A8AB5<K: 0A?5:BK ?0@0;;5;87<0+@@>F5AAK 8 ?>B>:8. ;0=8@>20=85.!Z!f"5<0 >1AC645=8O@>3@0<<8ABK A>740NB ?@>3@0<<K >;L7>20B5;8 70?CA:0NB ?@>3@0<<K =0 8A?>;=5=85 'B> ?@54AB02;O5B A>1>9 >1J5:B 8A?>;=5=8O 2 !?g"1J5:B 8A?>;=5=8O$1J5:B, ?@54AB02;ONI89 ?@8:;04=CN ?@>3@0<<C 2 A>AB>O=88 2K?>;=5=8O, 2:;NG05B 4@5A=>5 ?@>AB@0=AB2>, 2K45;5==>5 4;O 2K?>;=5=8O ?@>3@0<<K >4 2K?>;=ONI59AO ?@>3@0<<K 0==K5 2K?>;=ONI59AO ?@>3@0<<K !B5: 8 C:070B5;L =0 53> 25@H8=C (stack pointer, SP) K45;5==K5 @5AC@AK ! (>B:@KBK5 D09;K, CAB0=>2;5==K5 A5B52K5 A>548=5=8O 8 B.4.) @>3@0<<=K9 AG5BG8: (instruction pointer, IP), C:07K20NI89 =0 A;54CNICN 2K?>;=O5<CN 8=AB@C:F8N "5:CI85 7=0G5=8O @538AB@>2 >1I53> =07=0G5=8O 1J5:B 8A?>;=5=8O ?@54AB02;5= 42C<O ?>=OB8O<8: ?@>F5AA 8 ?>B>: vMPP@PM/D i 2 m#@>F5AA@>F5AA - 01AB@0:F8O, ?@54AB02;ONI0O ?@>3@0<<C 2> 2@5<O 55 2K?>;=5=8O @>F5AAC ! 2K45;O5B @5AC@AK, =5>1E>48<K5 4;O 2K?>;=5=8O ?@>3@0<<K, =0?@8<5@: 04@5A=>5 ?@>AB@0=AB2> ?@>F5AA0 A>45@68B 53> ?@>3@0<<=K9 :>4, 40==K5 8 AB5: (8;8 AB5:8) D09;K 8A?>;L7CNBAO ?@>F5AA>< 4;O GB5=8O 2E>4=KE 40==KE 8 70?8A8 2KE>4=KE CAB@>9AB20 22>40-2K2>40 8A?>;L7CNBAO 2 A>>B25BAB288 A 8E =07=0G5=85< @>F5AA  ?0AA82=K9 >1J5:B  2;045;5F @5AC@A>2, :>=B59=5@ 4;O 2K?>;=5=8O ?>B>:>2ZZZQZI*>B>: / =8BL (thread)  >B>: - 01AB@0:F8O, ?@54AB02;ONI0O ?>A;54>20B5;L=>5 2K?>;=5=85 :><0=4 ?@>3@0<<K, @0725@BK20NI55AO 2> 2@5<5=8 @>F5AA <>65B 8<5BL =5A:>;L:> ?>B>:>2 ?>B>:8 A>2<5AB=> 8A?>;L7CNB 3;>10;L=K5 8 AB0B8G5A:85 ?5@5<5==K5 (@0A?>;030NBAO 2 @538>=5 40==KE) 48=0<8G5A:8 @0A?@545;O5<CN ?0<OBL (:CGC) A8AB5<=K5 @5AC@AK, 2K45;5==K5 ?@>F5AAC :064K9 ?>B>: 8<55B A2>8 A>1AB25==K5 ?@>3@0<<=K9 AG5BG8: (IP) 7=0G5=8O @538AB@>2 ;>:0;L=K5 ?5@5<5==K5 (B.5. A2>9 A>1AB25==K9 AB5:) @>F5AA - A>2>:C?=>ABL 2708<>459AB2CNI8E ?>B>:>2 8 2K45;5==KE 5<C @5AC@A>2PPP$P^PKP$^  K| h"@>F5AAK 8 ?>B>:8i.@>F5AA A >4=8< ?>B>:><j<@>F5AA A =5A:>;L:8<8 ?>B>:0<8kX0G5< =C6=K ?@>F5AAK A =5A:>;L:8<8 ?>B>:0<8?;O ?0@0;;5;L=>9 >1@01>B:8 =5A:>;L:8E >4=>B8?=KE 70?@>A>2 (A5B52K5 A5@28AK) ;O @0745;5=8O 8A?>;=8B5;L=KE 0:B82=>AB59, ?0@0;;5;L=> @5H0NI8E @07;8G=K5 7040G8 >15A?5G5=85 ?>;L7>20B5;LA:>3> 8=B5@D59A0 <0B5<0B8G5A:85 2KG8A;5=8O D>=>20O ?5G0BL & ;O A>740=8O ?0@0;;5;L=KE ?@>3@0<<, MDD5:B82=> 8A?>;L7CNI8E 0??0@0B=K5 @5AC@AK (=0?@8<5@, =5A:>;L:> 0??0@0B=> 8<5NI8EAO &) ;O C;CGH5=8O AB@C:BC@K ?@>3@0<<KBPTPPTll=>3>?>B>G=0O ?@>3@0<<0 vs. 708<>459AB2CNI85 ?@>F5AAK77$ @8 8A?>;L7>20=88 ?>B>:>2 M:>=><OBAO @5AC@AK (2A5 ?>B>:8 >4=>3> ?@>F5AA0 ?>;L7CNBAO >4=8< =01>@>< @5AC@A>2) M:>=><8BAO 2@5<O (>?5@0F88 A>740=8O/C=8GB>65=8O ?>B>:0 =0<=>3> <5=55 70B@0B=K, G5< >?5@0F88 A>740=8O/C=8GB>65=8O ?@>F5AA0) 2708<>459AB285 <564C ?>B>:0<8 >4=>3> ?@>F5AA0 1>;55 C4>1=> 8 MDD5:B82=> ?> ?@8G8=5 8A?>;L7>20=8O >1I59 ?0<OB8.Z;Z;& o !>AB>O=8O ?>B>:0rH!>AB>O=8O ?>B>:0 2 <=>3>7040G=>9 !& sH!>AB>O=8O ?>B>:0 2 <=>3>7040G=>9 !& 2K?>;=5=85  A>AB>O=85 @01>B0NI53> ?>B>:0  >1;040NI53> 2A5<8 =5>1E>48<K<8 @5AC@A0<8, 2 B>< G8A;5 2>7<>6=>ABLN 8A?>;L7>20=8O & >B>2 : 2K?>;=5=8N  ?>B>: >1;0405B 2A5<8 =5>1E>48<K<8 4;O 2K?>;=5=8O @5AC@A0<8 70 8A:;NG5=85< @5AC@A0 "2@5<O &" 6840=85 (A>=, 1;>:8@>2:0)  2K?>;=5=85 ?>B>:0 701;>:8@>20=> 4> =0ABC?;5=8O =5:>B>@>3> 2=5H=53> A>1KB8O (=0?@8<5@, ?>ABC?;5=8O 2E>4=KE 40==KE 8;8 >A2>1>645=8O @5AC@A0)NP v`tF!>AB>O=8O ?>B>:0 2 <=>3>7040G=>9 !r(2,3) - >ACI5AB2;ONBAO O4@>< >?5@0F8>==>9 A8AB5<K (?;0=8@>2I8:><) (4) - ?@>4>;65=85 @01>BK =52>7<>6=> 4;O ?@>4>;65=8O @01>BK B@51C5BAO =0ABC?;5=85 :0:>3>-;81> A>1KB8O ?>B>: 70B@51>20; =54>ABC?=K9 2 40==K9 <><5=B @5AC@A ?>B>: ?5@52>48BAO 2 A>AB>O=85 >6840=8O O4@>< >?5@0F8>==>9 A8AB5<K 2> 2@5<O >1@01>B:8 A8AB5<=>3> 2K7>20 ?>B>: 701;>:8@>20= 2=5H=8< ?> >B=>H5=8N : =5<C 2K7>2>< (5) - ?@>872>48BAO O4@>< ! 2 <><5=B 2K?>;=5=8O CA;>28O >6840=8OXfPPAP3 &Am<#?@02;5=85 ?@>F5AA0<8/?>B>:0<8u<#?@02;5=85 ?@>F5AA0<8/?>B>:0<8!B@C:BC@K, >?8AK20NI85 ?@>F5AAK 8 ?>B>:8 2 O4@5 ! ?5@0F88 =04 ?@>F5AA0<8 8 ?>B>:0<8 0A?@545;5=85 @5AC@A>2 <564C ?@>F5AA0<8/?>B>:0<8 2@5<O F5=B@0;L=>3> ?@>F5AA>@0 (2K45;O5BAO ?>B>:0<) >?5@0B82=0O ?0<OBL (2K45;O5BAO ?@>F5AA0<) 4@C385 @5AC@AK (:0: ?@028;>, 2K45;ONBAO ?@>F5AA0<) =B5@D59A ?@8:;04=KE ?@>3@0<< (G0AB=K5 @50;870F88)BZZ3Z3 ">=B5:AB ?@>F5AA0>=B5:AB  <=>65AB2> 8=D>@<0F88, ?>;=>ABLN >?8AK20NI55 A>AB>O=85 >1J5:B0 (2 G0AB=>AB8, 4>AB0B>G=>5 4;O 2>AAB0=>2;5=8O >1J5:B0 2 A;CG05 53> C40;5=8O) >=B5:AB ?@>F5AA0 2:;NG05B =>65AB2> 8=D>@<0F88, 8A?>;L7C5<>5 >?5@0F8>==>9 A8AB5<>9 4;O C?@02;5=8O @5AC@A>< B8?0 ?@>F5AA 4@5A=>5 ?@>AB@0=AB2> ?@>F5AA0 !B@C:BC@C 8 A>45@68<>5 ?>;L7>20B5;LA:>9 G0AB8 04@5A=>3> ?@>AB@0=AB20 ?@>F5AA0 =>65AB2> @5AC@A>2, 8A?>;L7C5<KE ?@>F5AA>< 8;8 ?@8=04;560I8E ?@>F5AAC, 8 8E A>AB>O=8O.Z%Z%!>=B5:AB ?>B>:0>=B5:AB ?>B>:0 2:;NG05B =>65AB2> 8=D>@<0F88, 8A?>;L7C5<>5 >?5@0F8>==>9 A8AB5<>9 4;O C?@02;5=8O @5AC@A>< B8?0 ?>B>: =>65AB2> @5AC@A>2, 8A?>;L7C5<KE ?>B>:>< 8;8 ?@8=04;560I8E ?>B>:C 8 8E A>AB>O=8O ??0@0B=K9 :>=B5:AB 8A?>;=5=8O ?>B>:0*$4??0@0B=K9 :>=B5:AB ?>B>:0!>AB>O=85 ?@>F5AA>@0 A B>G:8 7@5=8O ?@54>AB02;O5<KE ?>B>:C ?@02 53> 8A?>;L7>20=8O 2 :>=:@5B=>9 ! (>1KG=> ?@54AB02;O5BAO <=>65AB2>< 4>ABC?=K< ?>B>:C @538AB@>2 ?@>F5AA>@0 8 8E B5:CI8<8 7=0G5=8O<8) !>AB>O=85 4@C38E CAB@>9AB2 2 A;CG05, 5A;8 C?@02;5=85 8<8 >ACI5AB2;O5BAO =5?>A@54AB25==> =0 C@>2=5 :><0=4 ?@>3@0<<K, 0 =5 G5@57 8=B5@D59A 4>ABC?0 : CAB@>9AB20< G5@57 2K?>;=5=85 A8AB5<=KE 2K7>2>2 !Zn,5@5:;NG5=85 :>=B5:AB05@5:;NG5=85 :>=B5:AB0 ?@>8AE>48B ?@8 ?5@5E>45 : 8A?>;=5=8N 4@C3>3> ?>B>:0 (2>7<>6=>, 4@C3>3> ?@>F5AA0) @8 ?5@5:;NG5=88 :>=B5:AB0 =5>1E>48<> A>E@0=8BL :>=B5:AB 2KB5A=O5<>3> ?>B>:0 5A;8 ?>B>:, 2K1@0==K9 =0 8A?>;=5=85, ?@8=04;568B 4@C3><C ?@>F5AAC A>E@0=8BL :>=B5:AB ?@>F5AA0  2;045;LF0 2KB5A=O5<>3> ?>B>:0 703@C78BL :>=B5:AB ?@>F5AA0  2;045;LF0 ?>B>:0, 2K1@0==>3> =0 8A?>;=5=85 703@C78BL :>=B5:AB ?>B>:0, 2K1@0==>3> =0 8A?>;=5=85 ;O >?8A0=8O ?@>F5AA>2 8 ?>B>:>2 (2 B>< G8A;5 4;O E@0=5=8O 8E :>=B5:AB>2) 2 O4@5 ! 22>4OBAO A?5F80;L=K5 AB@C:BC@K  45A:@8?B>@K ?@>F5AA0 8 ?>B>:0|PiP P4PPi4  v&5A:@8?B>@ ?@>F5AA045=B8D8:0B>@ ?@>F5AA0 @C??>2K5 ?0@0<5B@K ?@>F5AA0 0@0<5B@K, 8A?>;L7C5<K5 2 ?@>F5AA5 >?@545;5=8O ?@8>@8B5B0 ?@>F5AA0 ?@8 :>=:C@5=F88 70 :0:>9-;81> @5AC@A !>AB>O=85 ?@>F5AA0 !B0B8AB8G5A:85 40==K5 ?8A0=85 04@5A=>3> ?@>AB@0=AB20 ?@>F5AA0 >=B5:AB 22>40-2K2>40 >=B5:AB 157>?0A=>AB8 "5:CI85 A8AB5<=K5 ?0@0<5B@K 2K?>;=5=8O >4 7025@H5=8O ?@>F5AA0  Linux 45A:@8?B>@ ?@>F5AA0  AB@C:BC@0 task_struct (include/linux/sched.h), A>45@68B >:>;> 100 ?>;59!$ZPhPvZ ! w"5A:@8?B>@ ?>B>:045=B8D8:0B>@ ?>B>:0 45=B8D8:0B>@ ?@>F5AA0  2;045;LF0 ?>B>:0 0@0<5B@K, 8A?>;L7C5<K5 2 ?@>F5AA5 >?@545;5=8O ?@8>@8B5B0 ?>B>:0 ?@8 :>=:C@5=F88 70 :0:>9-;81> @5AC@A !B0B8AB8G5A:85 40==K5 ?>B>:0 ??0@0B=K9 :>=B5:AB 2K?>;=5=8O ?>B>:0 (?@>3@0<<=K9 AG5BG8:, AB5: 8 C:070B5;L =0 53> 25@H8=C, 7=0G5=8O @538AB@>2) >4 7025@H5=8O ?>B>:0IZIxHB> C?@02;O5B ?@>F5AA0<8 8 ?>B>:0<8?B0 C?@02;5=85 ?@>F5AA0<8 2A5340 >B25G05B O4@> ! /4@> 2A5340 ?@54>AB02;O5B :064><C ?@>F5AAC >48= ?>B>:, => =5 2A5340 ?>445@68205B <=>3>?>B>G=>ABL ?>B>:8, =5?>A@54AB25==> C?@02;O5<K5 O4@>< !, =07K20NBAO ?>B>:0<8 O4@0 >6=> @50;87>20BL <=>3>?>B>G=>ABL 2 181;8>B5:5 ?>;L7>20B5;LA:>3> C@>2=O!<GIGI,Z('P>B>:8 O4@0 vs. ?>;L7>20B5;LA:85 ?>B>:8&   yN>B>:8 O4@0 vs. ?>;L7>20B5;LA:85 ?>B>:8  J@8 8A?>;L7>20=88 ?>;L7>20B5;LA:8E ?>B>:>2 (+) ?5@0F88 =04 ?>B>:0<8 2K?>;=ONBAO 157 2K?>;=5=8O A8AB5<=KE 2K7>2>2 (2 10-100 @07 1KAB@55, G5< ?@8 8A?>;L7>20=88 ?>B>:>2 O4@0) (+) >6=> @50;87>20BL A>1AB25==K9 0;3>@8B< ?;0=8@>20=8O (-) /4@> =8G53> =5 7=05B > ?>B>:0E ?>;L7>20B5;LA:>3> C@>2=O 8 @0A?@545;O5B 2@5<O & =57028A8<> >B 8E :>;8G5AB20 2 ?@>F5AA5 (-) A;8 1C45B 2K?>;=5= 1;>:8@CNI89 A8AB5<=K9 2K7>2 (=0?@8<5@, 2K720=0 A8=E@>==0O >?5@0F8O 22>40-2K2>40), 2 A>AB>O=85 >6840=8O ?5@52>48BAO ?>B>: O4@0, 8A?>;L7>202H89AO 4;O >15A?5G5=8O 2K?>;=5=8O =5A:>;L:8E (8;8 2A5E) ?>;L7>20B5;LA:8E ?>B>:>2. !>>B25BAB25==>, 2K?>;=5=85 2A5E MB8E ?>;L7>20B5;LA:8E ?>B>:>2 1C45B 701;>:8@>20=>..+P{P+{zD?5@0F88 =04 ?@>F5AA0<8 8 ?>B>:0<8{"!>740=85 ?@>F5AA0!>740BL 45A:@8?B>@ ?@>F5AA0 8 ?><5AB8BL 53> 2 B01;8FC ?@>F5AA>2 @>8=8F80;878@>20BL 7=0G5=8O ?>;59 >1I53> =07=0G5=8O 45A:@8?B>@0 ?@>F5AA0 !>740BL 28@BC0;L=>5 04@5A=>5 ?@>AB@0=AB2> () ?@>F5AA0 8 AD>@<8@>20BL 53> AB@C:BC@C 0?>;=8BL =5>1E>48<K<8 40==K<8  ?@>F5AA0 (@07<5AB8BL 2 =5< :>4, 40==K5 8 B.4.) K45;8BL ?@>F5AAC @5AC@AK, :>B>@K5 >= <>65B 8A?>;L7>20BL A@07C ?>A;5 A>740=8O ?>25AB8BL ?>4A8AB5<K, ?@8=8<0NI85 CG0AB85 2 C?@02;5=88 ?@>F5AA0<8, > A>740=88 =>2>3> ?@>F5AA0 !>740BL ?5@28G=K9 ?>B>: ?@>F5AA0P|"!>740=85 ?@>F5AA0}!>740=85 ?>B>:0r!>740BL 45A:@8?B>@ ?>B>:0 8 ?><5AB8BL 53> 2 B01;8FC ?>B>:>2 @>8=8F80;878@>20BL 7=0G5=8O ?>;59 >1I53> =07=0G5=8O 45A:@8?B>@0 ?>B>:0 !>740BL >1;0AB8 40==KE, =5>1E>48<K5 4;O DC=:F8>=8@>20=8O ?>B>:0 2 40==>9 0??0@0B=>9 0@E8B5:BC@5 =8F80;878@>20BL ?>;5 45A:@8?B>@0 0??0@0B=K9 :>=B5:AB 2K?>;=5=8O ?>B>:0 ?>25AB8BL ?>4A8AB5<K, ?@8=8<0NI85 CG0AB85 2 C?@02;5=88 ?>B>:0<8, > A>740=88 =>2>3> ?>B>:0 5@525AB8 ?>B>: 2 A>AB>O=85 3>B>2 : 2K?>;=5=8NP~!>740=85 ?>B>:0"025@H5=85 ?>B>:0!>E@0=8BL AB0B8AB8G5A:85 40==K5 ?>B>:0 8 :>4 2>72@0B0 2 53> 45A:@8?B>@5 5@525AB8 2A5 @5AC@AK, ?@8=04;560I85 ?>B>:C, 2 =5?@>B82>@5G82>5 8 AB018;L=>5 A>AB>O=85 A2>1>48BL 2A5 @5AC@AK, ?@8=04;5602H85 ?>B>:C 8;8 8A?>;L7>202H85AO ?>B>:>< ?>25AB8BL ?>4A8AB5<K, ?@8=8<0NI85 CG0AB85 2 C?@02;5=88 ?>B>:0<8, > 7025@H5=88 ?>B>:0 #AB0=>28BL A>AB>O=85 ?>B>:0 2 7=0G5=85 7025@H5= A;8 40==K9 ?>B>: O2;O5BAO ?>A;54=8< 0:B82=K< ?>B>:>< 2 ?@>F5AA5  7025@H8BL ?@>F5AA >A;5 2K?>;=5=8O 2A5E 459AB289 >AB05BAO 45A:@8?B>@ ?>B>:0, A>45@60I89 53> :>4 2>72@0B0 8 AB0B8AB8G5A:85 40==K5; <><5=B C=8GB>65=8O 45A:@8?B>@0 7028A8B >B @50;870F88$PPn &025@H5=85 ?@>F5AA0025@H8BL 2K?>;=5=85 2A5E ?>B>:>2 ?@>F5AA0 !>E@0=8BL AB0B8AB8G5A:85 40==K5 ?@>F5AA0 8 :>4 2>72@0B0 2 53> 45A:@8?B>@5 5@525AB8 2A5 @5AC@AK, ?@8=04;560I85 ?@>F5AAC, 2 =5?@>B82>@5G82>5 8 AB018;L=>5 A>AB>O=85 A2>1>48BL 2A5 @5AC@AK, ?@8=04;5602H85 ?@>F5AAC 8;8 8A?>;L7>202H85AO ?@>F5AA>< A2>1>48BL  8 C=8GB>68BL 53> ?>25AB8BL ?>4A8AB5<K, ?@8=8<0NI85 CG0AB85 2 C?@02;5=88 ?@>F5AA0<8, > 7025@H5=88 ?@>F5AA0 #AB0=>28BL A>AB>O=85 ?@>F5AA0 2 7=0G5=85 7025@H5= >A;5 2K?>;=5=8O 2A5E 459AB289 >AB05BAO 45A:@8?B>@ ?@>F5AA0, A>45@60I89 53> :>4 2>72@0B0 8 AB0B8AB8G5A:85 40==K5; <><5=B C=8GB>65=8O 45A:@8?B>@0 7028A8B >B @50;870F88$PPs H!>740=85/7025@H5=85 ?@>F5AA0  Win32 pBOOL CreateProcess( LPCTSTR lpszImageName, LPCTSTR lpszCommandLine, LPSECURITY_ATTRIBUTES lpsaProcess, LPSECURITY_ATTRIBUTES lpsaThread, BOOL fInheritHandles, DWORD fdwCreate, LPVOID lpvEnvironment, LPTSTR lpszCurDir, LPSTARTUPINFO lpsiStartInfo, LPPROCESS_INFORMATION lppiProcInfo); VOID ExitProcess(UINT fuExitCode); BOOL TerminateProcess( HANDLE hProcess, UINT uExitCode ); ?8A0=85 DC=:F89 <>6=> =09B8 2 MSDN 8 2 @01>B5 [2]$P4                      !     NSTARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); CreateProcess( NULL, // No module name (use command line). TEXT("MyChildProcess"),// Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. FALSE, // Set handle inheritance to FALSE. 0, // No creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi ); // Pointer to PROCESS_INFORMATION structure. // Wait until child process exits. WaitForSingleObject( pi.hProcess, INFINITE ); // Close process and thread handles. CloseHandle( pi.hProcess ); CloseHandle( pi.hThread );OPO                    D!>740=85/7025@H5=85 ?>B>:0  Win32 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId); VOID ExitThread(DWORD dwExitCode); BOOL TerminateThread( HANDLE hThread, DWORD dwExitCode); ?8A0=85 DC=:F89 <>6=> =09B8 2 MSDN 8 2 @01>B5 [2]$SP5,                                     !     int GlobalVar = 0; DWORD WINAPI ThreadProc( LPVOID arg ){ *(int*)arg = *(int*)arg + 1; ExitThread(0); } int main(void){ int i; HANDLE Threads[10]; for( i = 0; i < 10; i ++ ){ Threads[i] = CreateThread(NULL, 0, ThreadProc, (LPVOID)&GlobalVar, 0, NULL); } for( i = 0; i < 10; i ++ ){ WaitForSingleObject(Threads[i],INFINITE); } return 0; }P                                            H!>740=85/7025@H5=85 ?@>F5AA0  UNIX& %%$ !>740=85 :>?88 ?@>F5AA0 int fork(void); A?>;L7>20=85 @5AC@A>2 ?@>F5AA0 4;O 2K?>;=5=8O C:070==>9 ?@>3@0<<K int exec*(char *path, char* argv[], char **env); 025@H5=85 ?@>F5AA0 void exit(int status); 6840=85 7025@H5=8O ?@>F5AA0-?>B><:0 int wait(int *status); ?8A0=85 DC=:F89 <>6=> =09B8 2 4>:C<5=B0F88 UNIX (man 8;8 info) 8 2 @01>B5 [3]SPST     C           %     .      F!>740=85/7025@H5=85 ?@>F5AA0  UNIX$$$ @/* @>3@0<<0, A>740NI0O ?@>F5AA-?>B><>: 8 70?CA:0NI0O 2 ?>B><:5 4@C3CN ?@>3@0<<C */ int ChildPID, ChildRetCode, RetCode=0; ChildPID = fork(); if( ChildPID == 0 )/*child process*/ exec*(progname,& ); else /*parent process*/ wait(&ChildRetCode); /* more parent code */ exit(RetCode);!Z! P                         B>38@>F5AAK 8 ?>B>:8  >1J5:BK, ?@54AB02;ONI85 ?@>3@0<<K 2> 2@5<O 8E 2K?>;=5=8O @>F5AA  ?0AA82=K9 >1J5:B, 2;045;5F @5AC@A>2 >B>:  0:B82=K9 >1J5:B ! B>G:8 7@5=8O !, ?@>F5AAK 8 ?>B>:8  A?5F8D8G=K5 B8?K @5AC@A>2, B@51CNI85 A?5F80;L=>3> C?@02;5=8O8Z;0=8@>20=85 &"5<0 >1AC645=8O^>B>:0< 4;O 2K?>;=5=8O =C65= F5=B@0;L=K9 ?@>F5AA>@ (&) A;8 ?>B>:>2 1>;LH5, G5< ?@>F5AA>@>2, ! 4>;6=0 >15A?5G8BL 2>7<>6=>ABL ?>>G5@54=>3> 8A?>;L7>20=8O ?@>F5AA>@>2 ?>B>:0<8 2'B> B0:>5 "?;0=8@>20=85"?x;0=8@>20=85  @0A?@545;5=85 2@5<5=8 F5=B@0;L=>3> ?@>F5AA>@0=Z=2'B> B0:>5 "?;0=8@>20=85"?$;0=8@>20=85  @0A?@545;5=85 2@5<5=8 F5=B@0;L=>3> ?@>F5AA>@0 ;0=8@>20=85 1K205B 4>;3>A@>G=>5  ?@8=OB85 @5H5=89 > 70?CA:5 8 >B:;04K20=88 70?CA:0 7040=89 A@54=5A@>G=>5  ?@8=OB85 @5H5=89 > 2@5<5==>< 2KB5A=5=88 ?@>F5AA>2 =0 48A: :@0B:>A@>G=>5 (48A?5BG5@870F8O)  2K1>@ ?>B>:0, :>B>@><C A;54C5B ?@54>AB028BL & @8 @50;870F88 ?;0=8@>20=8O 8A?>;L7C5BAO <5E0=87< ?5@5:;NG5=8O :>=B5:AB>2 ?@>F5AA>2 8 ?>B>:>2BQZZ^ZQ^0@0D8: 2K?>;=5=8O ?>B>:02 5A;8 ?>B>:>2 =5A:>;L:>? 2 5A;8 ?>B>:>2 =5A:>;L:>?!R@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O& **$\1I85 :@8B5@88 !?@0254;82>ABL  2A5< 2K45;O5BAO @02=>5 :>;8G5AB2> 2@5<5=8 & 0;0=A  >15A?5G5=85 703@C7:8 2A5E CAB@>9AB2 A8AB5<K 0:;04=K5 @0AE>4K  ?@>F5=B @5AC@A>2, ?>B@51;O5<KE ?;0=8@>2I8:>< 0AHB018@C5<>ABL  C25;8G5=85 ?>B@51;5=8O @5AC@A>2 ?;0=8@>2I8:>< ?@8 C25;8G5=88 G8A;0 >1J5:B>2 ?;0=8@>20=8OZ Z0/0\\"P@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O& ))$!?@0254;82>ABL  2A5< 2K45;O5BAO @02=>5 :>;8G5AB2> 2@5<5=8 & 0: 87<5@8BL A?@0254;82>ABL? 48=0:>2>5 2@5<O ?>B@51;5=8O &? 48=0:>2>5 :>;8G5AB2> 2K?>;=5==KE :><0=4? '5AB=> =0 C@>2=5 ?>B>:>2? ?@>F5AA>2? ?>;L7>20B5;59? 'B> 5A;8 >48= ?@>F5AA >3@0=8G5= 2>7<>6=>ABO<8 &, 0 4@C3>9  2>7<>6=>ABO<8 22>40-2K2>40? =>340 =C6=> 1KBL =5A?@0254;82K< 8 O2=> >:07K20BL ?@54?>GB5=85 =5:>B>@K< >?@545;5==K< :;0AA0< ?>B>:>2/70?@>A>2/A>1KB89 (8<5BL A8AB5<C ?@8>@8B5B>2), =>& A;54C5B 871530BL 3>;>40=8O (starvation)  A8BC0F88, :>340 =5:>B>@K< ?>B>:0< ?@>F5AA>@ <>65B =5 2K45;OBLAO 2 B5G5=88 =5>3@0=8G5==>3> 2@5<5=8>PPKPP>K6  f b#P@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O& ))$8!8AB5<K ?0:5B=>9 >1@01>B:8 40==KE @>?CA:=0O A?>A>1=>ABL  A@54=55 G8A;> 7040=89, ?>;=>ABLN 2K?>;=O5<KE 2 548=8FC 2@5<5=8 (G0A, ACB:8,& ) 1>@>B=>5 2@5<O  A@54=55 2@5<O <564C 70?CA:>< 7040=8O 8 7025@H5=85< 53> >1@01>B:8 -DD5:B82=>ABL  A@54=89 ?@>F5=B 703@C7:8 F5=B@0;L=>3> ?@>F5AA>@0h""QD 4$P@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O& ))$x=B5@0:B82=K5 A8AB5<K @5<O >B:;8:0  A@54=55 2@5<O <564C 2>7=8:=>25=85< A>1KB8O 8 7025@H5=85< 53> >1@01>B:8 @5<O >6840=8O  A@54=55 2@5<O <564C ?5@5E>4>< ?>B>:0 87 A>AB>O=8O ">6840=85" 2 A>AB>O=85 "3>B>2 : 2K?>;=5=8N" 8 ?@54>AB02;5=85< 5<C & !>@07<5@=>ABL  A>>B25BAB285 ?@>872>48B5;L=>AB8 >6840=8O< ?>;L7>20B5;OlZ&Z Jz :%P@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O ))$l!8AB5<K @50;L=>3> 2@5<5=8 :>=G0=85 >1A;C6820=8O : A@>:C @54A:07C5<>ABL  A>1;N45=85 2@5<5==KE >3@0=8G5=89 ?@8 2K?>;=5=88 =5:>B>@>3> 70@0=55 >3>2>@5==>3> <=>65AB20 A8AB5<=KE 2K7>2>2PY&(><5=BK ?;0=8@>20=8O!>740=85 =>2>3> ?@>F5AA0 !>740=85 =>2>3> ?>B>:0 025@H5=85 ?>B>:0 8;8 ?@>F5AA0 ;>:8@>20=85 ?>B>:0 (?5@5E>4 87 A>AB>O=8O "2K?>;=5=85" 2 A>AB>O=85 ">6840=85") 071;>:8@>20=85 ?>B>:0 (?5@5E>4 87 A>AB>O=8O ">6840=85" 2 A>AB>O=85 "3>B>2 : 2K?>;=5=8N") !@010BK20=85 B09<5@0P'J52KB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O& &&$ >K18@0NB ?>B>:, ?5@540NB 5<C F5=B@0;L=K9 ?@>F5AA>@ 8 ?>72>;ONB @01>B0BL 2?;>BL 4> 1;>:8@>2:8 ;81> 4> B>3> <><5=B0, :>340 ?>B>: A0< >B40AB F5=B@0;L=K9 ?@>F5AA>@(H52KB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O )FKB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O& $$$K18@0NB ?>B>: 8 ?>72>;ONB 5<C @01>B0BL =5:>B>@>5 <0:A8<0;L=> 2>7<>6=>5 D8:A8@>20==>5 2@5<O. A;8 : :>=FC 7040==>3> 8=B5@20;0 2@5<5=8 ?>B>: 2A5 5I5 @01>B05B, >= ?@8>AB0=02;8205BAO, 8 C?@02;5=85 ?5@5E>48B : 4@C3><C ?>B>:C (5A;8 ACI5AB2C5B ?>B>:, 3>B>2K9 : 8A?>;=5=8N). KB5A=ONI55 ?;0=8@>20=85 B@51C5B ?@5@K20=89 ?> B09<5@C, ?@>8AE>4OI8E 2 :>=F5 >B2545==>3> ?5@8>40 2@5<5=8. @8 >BACBAB288 B09<5@0 2>7<>6=0 @50;870F8O B>;L:> =52KB5A=ONI8E 0;3>@8B<>2.Z  *FKB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O& $$$+FKB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O& $$$,KB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O =0 <=>3>?@>F5AA>@=KE A8AB5<0EAPA$-TFirst Come  First Served (FCFS 8;8 FIFO)& ++$p  52KB5A=ONI89 ;0=8@>2I8: ?>445@68205B >G5@54L 3>B>2KE : 2K?>;=5=8N ?>B>:>2 8 ?@54>AB02;O5B & ?5@2><C ?>B>:C 87 >G5@548 @8 ?5@5E>45 2 A>AB>O=85 "3>B>2 : 2K?>;=5=8N" ?>B>: ?><5I05BAO 2 :>=5F >G5@548 .RFirst Come  First Served (FCFS 8;8 FIFO)**$p  /Shortest Job First (SJF)$J 52KB5A=ONI89 ;0=8@>2I8: 2K18@05B =0 2K?>;=5=85 A0<CN :>@>B:CN 7040GC >E>6 =0 FCFS, => 4;O :064>3> ?>B>:0 22>48BAO 4>?>;=8B5;L=0O E0@0:B5@8AB8:0  >68405<>5 2@5<O 2K?>;=5=8O, 8 ?>B>:8 2 >G5@548 3>B>2KE : 2K?>;=5=8N >BA>@B8@>20=K 2 ?>@O4:5 C25;8G5=8O 55 7=0G5=8O 2B><0B8G5A:8 >?@545;8BL 2@5<O 2K?>;=5=8O ?@>3@0<<K =52>7<>6=>, A;54>20B5;L=>, 53> 4>;65= 704020BL ?>;L7>20B5;L, 70?CA:0NI89 ?@>3@0<<C.HZHZHH 0Shortest Remaining Time (SRT):  52KB5A=ONI89 ;0=8@>2I8: 2K18@05B =0 2K?>;=5=85 7040GC, 8<5NICN =08<5=LH55 ?;0=8@C5<>5 2@5<O 4> >:>=G0=8O 2K?>;=5=8O # :064>3> ?>B>:0 2 4>?>;=8B5;L=K5 E0@0:B5@8AB8:8  >68405<>5 2@5<O 2K?>;=5=8O 8 C65 ?>B@51;5==>5 2@5<O &*vZjZvj  1Round Robin (RR) 8RR - 2KB5A=ONI89 0=0;>3 FCFS(  2/Shortest Remaining Processing Time first (SRPT)00$((  @KB5A=ONI89 !G8B05BAO, GB> :064K9 ?>B>: >1@010BK205B ?>A;54>20B5;L=>ABL 70?@>A>2 ;O :064>3> ?>B>:0 2KG8A;O5BAO E0@0:B5@8AB8:0, >F5=820NI0O 2@5<O >1@01>B:8 >4=>3> 70?@>A0. 0?@8<5@: T(0)=0, T(n+1) = a*t(n) + (1- a)*T(n) T(n)  7=0G5=85 E0@0:B5@8AB8:8 ?>A;5 2K?>;=5=8O n->3> 70?@>A0 t(n)  2@5<O >1@01>B:8 n->3> 70?@>A0 a  :>MDD8F85=B (0 d" a d" 1) 0 2K?>;=5=85 2K18@05BAO ?>B>: A <8=8<0;L=K< 7=0G5=85< E0@0:B5@8AB8:8BPPFPF44 v        )            F32@8>@8B5B=>5 ?;0=8@>20=85t5>1E>48< 48DD5@5=F8@>20==K9 ?>4E>4 : ?>B>:0<  A8AB5<5 <>3CB >4=>2@5<5==> ACI5AB2>20BL A;C651=K5 ?@>F5AAK 8 ?@>F5AAK, 70?CI5==K5 ?>;L7>20B5;O<8 >;L7>20B5;8 <>3CB @07;8G0BLAO ?> AB0BCAC&..- 42@8>@8B5B=>5 ?;0=8@>20=8552@8>@8B5B=>5 ?;0=8@>20=85@8 8A?>;L7>20=88 ?@8>@8B5B=>3> ?;0=8@>20=8O, 5A;8 2 A8AB5<5 2A5340 3>B>2 : 2K?>;=5=8N E>BO 1K >48= 87 2KA>:>?@8>@8B5B=KE ?>B>:>2, B> ?>B>:8 A =87:8<8 ?@8>@8B5B0<8 =8:>340 =5 1C4CB 2K?>;=5=K. >MB><C, :0: ?@028;>, 8A?>;L7CNBAO =5:>B>@K5 <>48D8:0F88 MB>3> 0;3>@8B<0. Z 64@8>@8B5B=>5 ?;0=8@>20=85&  <>48D8:0F8OE G0AB> @0745;ONB 107>2K9 ?@8>@8B5B ?>B>:0 8 MDD5:B82=K9 ?@8>@8B5B ?>B>:0 07>2K9 ?@8>@8B5B =07=0G05BAO ?>B>:C ?>A@54AB2>< =5:>B>@>3> A8AB5<=>3> 2K7>20, =0?@8<5@, 8=8F88@>20==>3> 2K?>;=5=85< :><0=4K ?>;L7>20B5;O -DD5:B82=K9 ?@8>@8B5B 8A?>;L7C5BAO ?;0=8@>2I8:>< ?@8 2K1>@5 ?>B>:>2 =0 8A?>;=5=85 8 <>65B 8< 87<5=OBLAO 2 A>>B25BAB288 A @50;87>20==K< 0;3>@8B<>< ?;0=8@>20=8ORWP)PWy72@8>@8B5B=>5 ?;0=8@>20=85;O ?@54>B2@0I5=8O 15A:>=5G=>9 @01>BK 2KA>:>?@8>@8B5B=KE ?>B>:>2 ?;0=8@>2I8: <>65B C<5=LH0BL A :064K< B0:B>< B09<5@0 MDD5:B82=K9 ?@8>@8B5B 2K?>;=ONI53>AO ?>B>:0 ;O ?@54>AB02;5=8O =87:>?@8>@8B5B=K< ?>B>:0< F5=B@0;L=>3> ?@>F5AA>@0 ?;0=8@>2I8: <>65B ?@>25@OBL 2@5<O, 2 B5G5=85 :>B>@>3> ?>B>: =0E>48;AO 2 A>AB>O=88 3>B>2=>AB8 : 8A?>;=5=8N >7<>6=> 040?B82=>5 8 48=0<8G5A:>5 87<5=5=85 ?@8>@8B5B>2 040?B82=>5 87<5=5=85  :>@@5:F8O MDD5:B82=KE ?@8>@8B5B>2 =0 >A=>20=88 =01>@0 ?@028; 48=0<8G5A:>5 87<5=5=85  @53C;O@=K9 ?5@5AG5B MDD5:B82=KE ?@8>@8B5B>2 =0 >A=>20=88 7=0G5=89 =5:>B>@>9 A>2>:C?=>AB8 ?0@0<5B@>2.PP8j;0=8@>20=85 A 8A?>;L7>20=85< <=>3>C@>2=52KE >G5@545966$9!Multi-Level Feedback Queue (MLFQ)! v@8 8A?>;L7>20=88 <=>3>C@>2=52KE >G5@5459 A >1@0B=>9 A2O7LN ?>B>: =5 ?>AB>O==> ?@8?8A0= : >?@545;5==>9 >G5@548, 0 <>65B <83@8@>20BL 87 >G5@548 2 >G5@54L 2 7028A8<>AB8 >B A2>53> ?>2545=8O :00@0<5B@K 0;3>@8B<0 MLFQ <>;8G5AB2> >G5@5459 4;O ?>B>:>2, =0E>4OI8EAO 2 A>AB>O=88 3>B>2 : 8A?>;=5=8N ;3>@8B< ?;0=8@>20=8O, 459AB2CNI89 <564C >G5@54O<8 ;3>@8B<K ?;0=8@>20=8O, 459AB2CNI85 2=CB@8 >G5@5459 @028;0 ?><5I5=8O @>482H53>AO ?>B>:0 2 >4=C 87 >G5@5459 @028;0 ?5@52>40 ?>B>:>2 87 >4=>9 >G5@548 2 4@C3CN P;@8<5@&  >;8G5AB2> >G5@5459: 4 ;3>@8B< ?;0=8@>20=8O, 459AB2CNI89 <564C >G5@54O<8: ?@8>@8B5B=>5 ?;0=8@>20=85 (?@8>@8B5BK 1-4, =082KAH89 ?@8>@8B5B - 4) ;3>@8B<K ?;0=8@>20=8O 2 >G5@54OE @.4. RR A @07<5@>< :20=B0 8 @.3. RR A @07<5@>< :20=B0 16 @.2. RR A @07<5@>< :20=B0 32 @.1. FCFS >2K9 ?>B>: ?>ABC?05B 2 >G5@54L A =082KAH8< ?@8>@8B5B><BZgZ8Zg8<@8<5@&  =@8<5@&  @028;0 ?5@52>40 ?>B>:>2 87 >4=>9 >G5@548 2 4@C3CN 5A;8 ?>B>: 87 >G5@548 @.4. =5 7025@H8; >1@01>B:C 4> 7025@H5=8O :20=B0, >= ?5@52>48BAO 2 >G5@54L @.3 5A;8 ?>B>: 87 >G5@548 @.3. =5 7025@H8; >1@01>B:C 4> 7025@H5=8O :20=B0, >= ?5@52>48BAO 2 >G5@54L @.2 5A;8 ?>B>: 87 >G5@548 @.2. =5 7025@H8; >1@01>B:C 4> 7025@H5=8O :20=B0, >= ?5@52>48BAO 2 >G5@54L @.1 ?>A;5 7025@H5=8O >6840=8O 22>40 A :;0280BC@K ?>B>:8 87 >G5@5459 @.1,2,3 ?5@52>4OBAO 2 >G5@54L @.4 ?>A;5 7025@H5=8O >?5@0F89 48A:>2>3> 22>40-2K2>40 ?>B>:8 87 >G5@5459 @.1,2 ?5@52>4OBAO 2 >G5@54L @.3 ?>A;5 7025@H5=8O >6840=8O 2A5E 4@C38E A>1KB89 ?>B>:8 87 >G5@548 @.1 ?5@52>4OBAO 2 >G5@54L @.2.3P\P3\> @8<5@ ?.;0=8@>20=85 2 Windows&  @,;0=8@>20=85 2 Windows A B>380!CI5AB2C5B =5A:>;L:> C@>2=59 ?;0=8@>20=8O !CI5AB2CNB @07;8G=K5 0;3>@8B<K ?;0=8@>20=8O ?@545;5=K :@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O (70G0ABCN ?@>B82>?>;>6=K5)  @50;L=KE A8AB5<0E @50;87CNBAO 381@84=K5 0;3>@8B<K, 8A?>;L7CNI85, : B><C 65, 040?B82=K5 8;8 48=0<8G5A:85 ?@8>@8B5BKP 8B5@0BC@0"0=5=10C< -. !>2@5<5==K5 >?5@0F8>==K5 A8AB5<K. 2-5 874.  !1.: 8B5@, 2002. 8EB5@ 6. Windows 4;O ?@>D5AA8>=0;>2 (!>740=85 MDD5:B82=KE Win32-?@8;>65=89 A CG5B>< A?5F8D8:8 64-@07@O4=>9 25@A88 Windows). 4-5 874.  .: CAA:0O 540:F8O; ?5@. A 0=3;.  !1.: 8B5@, 2001.n6 ObFF"5<0 A;54CNI59 ;5:F88 !8=E@>=870F8O$PD<@8<5@ <=>3>?>B>G=>9 ?@>3@0<<KE">AB0=>2:0 7040G8<55BAO 3;>10;L=0O ?5@5<5==0O, =04 :>B>@>9 >?@545;5=K 2 >?5@0F88 87<5=5=8O #25;8G5=85 =0 1 #<5=LH5=85 =0 1 >B>:8-C25;8G8B5;8 4>102;ONB : 7=0G5=8N ?5@5<5==>9 1 >B>:8-C<5=LH8B5;8 2KG8B0NB 87 7=0G5=8O ?5@5<5==>9 1 >B>:8 2K?>;=ONBAO ?0@0;;5;L=> BKP PPK F$C=:F8O ?>B>:0//  :0G5AB25 2E>4=>3> 0@3C<5=B0 ?5@5405BAO // C:070B5;L =0 87<5=O5<K5 40==K5 DWORD WINAPI ThreadProc( LPVOID arg ){ int* pData = (int*) arg; int i; for( i = 0; i < ITERATIONS; i ++ ){ *pData = *pData 1; } ExitThread(0); }P\  &  G" 01>B0 A ?>B>:0<8HANDLE ThreadsPlus[THREAD_COUNT]; HANDLE ThreadsMinus[THREAD_COUNT]; int i; for( i = 0; i < THREAD_COUNT; i ++ ){ ThreadsPlus[i] = CreateThread(NULL, 0, ThreadProc1, (LPVOID)&GlobalVar, 0, NULL); ThreadsMinus[i] =CreateThread(NULL, 0, ThreadProc2, (LPVOID)&GlobalVar, 0, NULL); } for( i = 0; i < THREAD_COUNT; i ++ ){ WaitForSingleObject(ThreadsPlus[i], INFINITE); WaitForSingleObject(ThreadsMinus[i], INFINITE); }P  %  :   : %  H>?@>AKK2548B5 =0G0;L=>5 8 :>=5G=>5 7=0G5=85 A>2<5AB=> 8A?>;L7C5<>9 ?5@5<5==>9 0:85 7=0G5=8O <>6=> >6840BL ?@8 ?>A;54>20B5;L=>9 @01>B5 ?>B>:>2? 0:85 7=0G5=8O ?>;CG8;8AL ?@8 ?0@0;;5;L=>9 @01>B5 ?>B>:>2? 1JOA=8B5 ?@8G8=C >B;8G89&II/T BCW  0` 3333ff3` 3333f33ff3` "3333̙ff3` Kf3̙` &e̙3g3f` f333̙po7` ___f3̙;/f9` ff3Lm` ff3LmNLm>?" dd@(3f?nAd@ q<nAqFLK#M n?" dd@   @@``PR"    M`p>>  F@(    HX#T ? ?" `} T  Z"1@075F 703>;>2:0   H%T ? ?" ` T  1@075F B5:AB0 B>@>9 C@>25=L "@5B89 C@>25=L '5B25@BK9 C@>25=L OBK9 C@>25=LM   6-T  #" `]`} T  **86=89 >23>@>4 20070  ~  6<3T  #" ``  T  z*?5@0F8>==K5 A8AB5<K: 0A?5:BK ?0@0;;5;87<0 @>F5AAK 8 ?>B>:8>0> $   '   6p T  #" `] `} T  * 87 870 $       p0e0e     ?@ABCDE F A@  i A8c 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@ "" ?@  `     @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab0B  H?D i8c?"0?@NNN?N0 `0< F  A"Z'dH  0޽h ? ___f3̙;/f9___PPT10i.  +D='  = @B + @09W  0 nf (    Ht ? ?"@   Z"1@075F 703>;>2:0   H ? ?"    `(1@075F ?>4703>;>2:0   6<  #" `] `}   b*0    6L#  #" `]}    \*0     6&  #" `] `}   \*0     s @ABCDE F i8c@C"`@B  H?D i8c?"0?@NNN?N  ,$ 0H  0޽h ? ___f3̙;/f9___PPT10i.  +ityD='  = @B +* 0 `:(    TpB gֳgֳ ?P   D  \*      ToB gֳgֳ ?   B  ^*"   j  s *1 ?  B   Tp gֳgֳ ? @ B  1@075F B5:AB0 B>@>9 C@>25=L "@5B89 C@>25=L '5B25@BK9 C@>25=L OBK9 C@>25=L M  Z4 gֳgֳ ?`P  ^  \*      Z0 gֳgֳ ?`    ^*"   H  0޽h? ? ̙3380___PPT10.* h` (     TB gֳgֳ ?P   B  J*     TB gֳgֳ ?   B  L*"    Z,B gֳgֳ ?`P  B  J*     ZTB gֳgֳ ?`  B  L*"  H  0޽h? ? ̙3380___PPT10.*`; 0 RJ  (  x  c $x&D @ D  x  c $D    D    Bh3  ?" C h68=Q2 .. (8H:>2 .. 2009D  T\7  ??"7 ~8653>@>4A:89 3>AC40@AB25==K9 C=825@A8B5B 8<. ..>10G52A:>3>@@*   T2  ??"7 b$0:C;LB5B KG8A;8B5;L=>9 <0B5<0B8:8 8 :815@=5B8:822<    A"IDH  0޽h ? 3f3f___PPT10i.*4 +D='  = @B +  0  0(   x   c $Cp  `}  p  x   c $p  ` p  H   0޽h ? 3f3f___PPT10i.&+D='  = @B +0  0 0(  x  c $~  `}   x  c $t  `   H  0޽h ? 3f3f80___PPT10.   0  0(  x  c $  `}   x  c $  `   H  0޽h ? 3f3f___PPT10i.*` +D='  = @B +  0 P 6(  ~  s *Ď  `}   x  c $l  `   H  0޽h ? +T3f3f___PPT10i.>0 +D='  = @B +9  0 PH"(  x  c $p  `}  D    Z  ??"`gjC F@>F5AA(2   f# ??P` @ >B>: B   `D8c??m m IB    f?D8c??"0?@NNN?N% f%    Z,  ??"`CFC F@>F5AA(2    fH. ??P` @ >B>:   ZH2  ??"`),C F@>F5AA(2   f5 ??P` @ >B>:   Z`:  ??"` gj  F@>F5AA(2   fL= ??   @ >B>:    f/ ??) J=9  @ >B>:   ZE  ??"` CF  F@>F5AA(2   f I ?? pc)  @ >B>:   ZM  ??"` ),  F@>F5AA(2   fxP ?? VI  @ >B>:    fK ??   @ >B>:    fX ?? VI  @ >B>:    fPW ??) %9  @ >B>:   N`  ??"`C d*>48= ?>B>: 2 ?@>F5AA5  NLc  ??"`c   r8=5A:>;L:> ?>B>:>2 2 ?@>F5AA5  Nf  ??"`   R>48= ?@>F5AA    Nj  ??"`   `&=5A:>;L:> ?@>F5AA>2   `n  ??j< q XMS-DOS    `Hs  ??  `UNIX by design     `  ??   VJava   "  ``x  ??   |*WinNT, Linux, Mach, &  H  0޽h ? 3f3f___PPT10i.¢˨+D='  = @B +  0 (  x  c $  `}     T ??"`"  TX  ??-c `28@BC0;L=>5 04@5A=>5 ?@>AB@0=AB2> () ?@>F5AA01(21  Z ???"6?@`NNN?NV v N 538>= :>40 (2   Z, ???"6?@`NNN?N   R 538>= 40==KE(2   Tp ??"` @!B5:(2   Z ???"6?@`NNN?N   @CG0(22   T ??"`@ # CB   Z? ??"6?@`NNN?NS @ # B   `D??F I  T4  ?? M-  `(?@>AB@0=AB2> 04@5A>2(2B   `D??   Tؙ  ??IM-0 WMIN(2   Ti  ??M- WMAX(2 B @  `D??    Tk  ??9   VIP(2 B @  `D??  TPo  ??2 VSP(2 H  0޽h ? 3f3f___PPT10i.Ţ+D='  = @B +  0  !$8(  $~ $ s *v  `}    $ T ??"`" $ Tw  ??-c `28@BC0;L=>5 04@5A=>5 ?@>AB@0=AB2> () ?@>F5AA01(21 $ Z| ???"6?@`NNN?NV v N 538>= :>40 (2  $ Z ???"6?@`NNN?N   R 538>= 40==KE(2 $ Z ???"6?@`NNN?NP R!B5: ?>B>:0 1(2 $ Z ???"6?@`NNN?N   @CG0(22  $ Z? ??"6?@`NNN?N@ # `B  $ Z? ??"6?@`NNN?Nc @ # B  $  `D??F I  $ T@  ?? M-  `(?@>AB@0=AB2> 04@5A>2(2B  $  `D??  $ TP  ??IM-0 WMIN(2  $ T  ??M- WMAX(2 B $@  `D?? S  $ T  ?? &   jIP ?>B>:0 1 (2   B $@  `D?? $ T  ??}d jSP ?>B>:0 1 (2    $ Z ???"6?@`NNN?N R!B5: ?>B>:0 2(22 $ Z? ??"6?@`NNN?N@ #  $ Z ???"6?@`NNN?N%   R!B5: ?>B>:0 3(22 $ Z? ??"6?@`NNN?N @ # 6 B $@  `D?? $ T   ?? jSP ?>B>:0 2 (2   B $@  `D??   $ T<  ??S :  jSP ?>B>:0 3 (2   B $@  `D??   $ Tt  ??f mM jIP ?>B>:0 2 (2    $ Th  ?? &  jIP ?>B>:0 3 (2   B  $@  `D??ISIH $ 0޽h ? 3f3f___PPT10i.Ţ+D='  = @B +0  0 0(0(  (x ( c $T  `}  T  x ( c $+  ` T  H ( 0޽h ? 3f3f80___PPT10.Ȣм{0  0 `40(  4x 4 c $؊  `}  T  x 4 c $ȉ  `   H 4 0޽h ? 3f3f80___PPT10.ɢ  0 D0(  Dx D c $H; @   x D c $     H D 0޽h ? 3f3f___PPT10i.̢3+D='  = @B +  0 X0(  X~ X s *D^j  `}  j    X B( ? ?"6?@`NNN?Nz p \$>B>2 : 2K?>;=5=8N0 X B ? ?"6?@`NNN?N6   H6840=85 0  X S < "`]z p H!>740=85 0  X B|ƭ ? ?"6?@`NNN?N9 z p L025@H5=85 0 XB X 0D XB X 0D z  XB  X 0D 56   X BPͭ ? ?"6?@`NNN?N"   ;10  X Bϭ ? ?"6?@`NNN?N  ;20  X Bҭ ? ?"6?@`NNN?N z  C  ;30XB  X@ 0D/ 6  X B֭ ? ?"6?@`NNN?Nc +  ;40 X B$ڭ ? ?"6?@`NNN?N6 z  LK?>;=5=85 0 XB X 0D 6  X B8ԭ ? ?"6?@`NNN?N& %  ;50XB X 0D 9 XB X 0D  9 XB X@ 0D " S9  X B ? ?"6?@`NNN?N)  ;60H X 0޽h ? 3f3f___PPT10i.ҢW) +D='  = @B +0  0 \0(  \x \ c $xޭ  `}   x \ c $  `   H \ 0޽h ? 3f3f80___PPT10.ԢB  0 `(  `x ` c $  `}   x ` c $  `    ` B ? ?"6?@`NNN?N <0XB ` 0DjXB ` 0DXB ` 0DP` ` B`G ? ?"6?@`NNN?Nc ;20XB  ` 0DL  ` B ? ?"6?@`NNN?N@P <!0  ` BI ? ?"6?@`NNN?Nj@PM >0  ` B$ ? ?"6?@`NNN?Nz@ ;30  ` B,b ? ?"6?@`NNN?N@P <0 ` BC ? ?"6?@`NNN?NR ;10 ` B ? ?"6?@`NNN?Nm ;40 ` B* ? ?"6?@`NNN?N <0XB `@ 0D@XB ` 0D/@XB ` 0DXB `@ 0D ` B+ ? ?"6?@`NNN?N~ ;60 ` B`# ? ?"6?@`NNN?N ;50H ` 0޽h ? 3f3f___PPT10i.Ԣe4+D='  = @B + 0 p8*(  8x 8 c $е @   r 8 S      H 8 0޽h ? 3f3f___PPT10i.ʢS+D='  = @B +  0  d0(  dx d c $$  `}   x d c $̽  `   H d 0޽h ? 3f3f___PPT10i.Ԣ+D='  = @B +  0 ` <(  ~  s *$  `}   ~  s *讣 # `I   H  0޽h ? +T3f3f___PPT10i.>P?w+D='  = @B +  0 p <(  ~  s *Tߣ  `}   ~  s *ˣ  `   H  0޽h ? +T3f3f___PPT10i.>+D='  = @B +  0  0(  x  c $  `}   x  c $  `   H  0޽h ? 3f3f___PPT10i.*w!+D='  = @B +0  0 @0(  @x @ c $H  `}   x @ c $  `   H @ 0޽h ? 3f3f80___PPT10.ˢ0#*  0 0h*(  hx h c $,  `}   r h S D M `s   H h 0޽h ? 3f3f80___PPT10.֢0-<  0 @l<(  l~ l s * 7  `}   ~ l s *7  `   H l 0޽h ? 3f3f80___PPT10.֢0-0  0 Pp0(  px p c $B  `}   x p c $C  `   H p 0޽h ? 3f3f80___PPT10.עP/S  0 jb  (  ^  6  ^  6v  s ,A =??"`+ =x  c $U  `}   H  0޽h ? +T3f3f___PPT10i.AP]|+D='  = @B +  0 x*(  xx x c $pZ  `}   r x S H[  `   H x 0޽h ? 3f3f___PPT10i.٢g\U+D='  = @B + 0 |*(  |r | S m 9   x | c $ln     H | 0޽h ? 3f3f___PPT10i.ۢ+D='  = @B +  0 0(  x  c $w  `}   x  c $xx  `   H  0޽h ? 3f3f___PPT10i.ۢ 3+D='  = @B +<  0  #$(  x  c $  `}     TĆ  ??"`zcO @/4@>(2  T  ??t@ t<"01;8F0 45A:@8?B>@>2 ?@>F5AA>2(2  T ??"`?X  Z? ??"6?@`NNN?N?W   Z? ??"6?@`NNN?N?    Z? ??"6?@`NNN?N?x   Z? ??"6?@`NNN?N?x.   Z? ??"6?@`NNN?N?-   Te  ??z F p8"01;8F0 45A:@8?B>@>2 ?>B>:>2(2   Z? ??"6?@`NNN?N?  Z? ??"6?@`NNN?N?6  Z? ??"6?@`NNN?N?6  Z? ??"6?@`NNN?N?  Z? ??"6?@`NNN?N?W  Z? ??"6?@`NNN?N?V   T??"`?,$@ 0  T??"``d,$@ 0  N ??"`9 d,$@  0 N 538>= :>40 (2   N ??"` d ,$@ 0 R 538>= 40==KE(2  N@ ??"` d ,$@ 0 @CG0(22  Z??"`=/,$@  02  Z??"` { /,$@  0B   `D??/=j,$@ 0B   f?D??"0?@NNN?N/=M ,$@  0&  Tȡ  ??  ,$ 0 n4!>740=85 ?5@28G=>3> ?>B>:0(2fB @  f?D??"0?@NNN?N=`,$@ 02   Ț  ?? ,$ 0 z@1. !>740=85 45A:@8?B>@0 ?@>F5AA0! 2!f ! Z< ? ??"6?@`NNN?N ,$ 0 22. !>740=85  ?@>F5AA0  2f  " Zį ? ??"6?@`NNN?N n ,$  0 v3. $>@<8@>20=85 AB@C:BC@K  ?@>F5AA0 8 53> 70?>;=5=85< 2<f | # Z0 ? ??"6?@`NNN?NL  F ,$ 0 F4. K45;5=85 @5AC@A>2 ?> C<>;G0=8N $ 2$fH  0޽h ? 3f3f&___PPT10.ܢ`6Z+ED'  = @B D' = @BA?%,( < +O%,( < +D' =%(Du' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(DY' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*!%(D ' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*"%(Dq' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*#%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(++0+0 ++0+0 ++0+0 ++0+0 ++0+ 0 ++0+!0 ++0+"0 ++0+#0 +  0 0(  x  c $ Օ  `}   x  c $Օ  `   H  0޽h ? 3f3f___PPT10i.ݢr+D='  = @B +=  0 ""(,<"(  ~  s *8  `}     T  ??"`zcO @/4@>(2  Z? ??"6?@`NNN?N?X  Z? ??"6?@`NNN?N?W   Z? ??"6?@`NNN?N?   Z? ??"6?@`NNN?N?x   Z? ??"6?@`NNN?N?x.   Z? ??"6?@`NNN?N?-   Z? ??"6?@`NNN?N?   Z? ??"6?@`NNN?N?6  Z? ??"6?@`NNN?N?6  Z? ??"6?@`NNN?N?  Z? ??"6?@`NNN?N?W  Z? ??"6?@`NNN?N?V   T??"`?  T??"``d  N, ??"`9 d N 538>= :>40 (2   N ??"` d  R 538>= 40==KE(2  N ??"` d  @CG0(22  Z??"`=/2  Z??"` { /B   `D??/=jB   f?D??"0?@NNN?N/=M B @  f?D??"0?@NNN?N=`  T??"`? ,$@ 0  NP@ ??"`Bd ,$@ 0 @!B5:(22  T??"`% *  ,$@ 0D   N@A ??"`  ,$@ 0 0SP IP 7=0G5=8O @538AB@>2(2 B !@  `D??% m % ,$@  0B "@  `D?? m ,$@  0B #  f?D??"0?@NNN?N9,$@ 08 $ N F ??"` ,$@  0 x@A>AB>O=85 = "3>B>2 : 2K?>;=5=8N"!(2!B &  f?D??"0?@NNN?Ng ,$@  0v ' ThJ  ??< ,$ 0 L1. !>740=85 45A:@8?B>@0 ?>B>:0' 2'f0     ( TO  ?? < ,$ 0 \"2. !>740=85 AB5:0 2f ) TT  ?? < ,$  0 \3. =8F80;870F8O 0??0@0B=>3> :>=B5:AB0/ 2/f0    X * TY  ?? <',$ 0 B4. #AB0=>2:0 A>AB>O=8O ?>B>:0" 2"f   + T^  ??t@ t<"01;8F0 45A:@8?B>@>2 ?@>F5AA>2(2 , Tb  ??z F p8"01;8F0 45A:@8?B>@>2 ?>B>:>2(2H  0޽h ? 3f3f___PPT10.ܢ`6Z+D='  = @B D' = @BA?%,( < +O%,( < +D' =%(Du' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*'%(Df' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*(%(D~' =%(D&' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*#%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*!%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*"%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*)%(Df' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*$%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*&%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<**%(++0+0 ++0+ 0 ++0+$0 ++0+'0 ++0+(0 ++0+)0 ++0+*0 +  0 *(  x  c $0  `}   r  S ؂ j `   H  0޽h ? 3f3f___PPT10i.ߢ6 +D='  = @B +  0  0(  x  c $  `}   x  c $P j `   H  0޽h ? 3f3f___PPT10i.ߢ0++D='  = @B +  0 00(  x  c $0  `}   x  c $ 3 `Y   H  0޽h ? 3f3f___PPT10i.ߢƷ+D='  = @B +  0 0(  r  S ع  `   H  0޽h ? ___f3̙;/f980___PPT10.ԅU#  0  <(  ~  s *$  `}   ~  s * 3 `Y   H  0޽h ? 3f3f___PPT10i.ߢƷ+D='  = @B +  0  `(  x  c $8  `   H  0޽h ? ___f3̙;/f980___PPT10.ԅU#  0L0 @<(  ~  s *  `}   ~  s *  `   H  0޽h ? 3f3f___PPT10i.ߢƷ+D='  = @B +  0L0 P<(  ~  s *0  `}   ~  s *h  `   H  0޽h ? 3f3f___PPT10i.ߢƷ+D='  = @B +; 0L0 `(  V  N  ??"`T J  >48B5;LA:89 ?@>F5AA (PID=123,PPID=1) int ChildPID, ChildRetCode, RetCode=0; ChildPID = fork(); if( ChildPID == 0 )/*child process*/ exec*(progname,:); else /*parent process*/ wait(&ChildRetCode); /* more parent code */ exit(RetCode);0M           N  ??"` ,$D 0 >G5@=89 ?@>F5AA (PID=456,PPID=123) int ChildPID, ChildRetCode, RetCode=0; ChildPID = fork(); if( ChildPID == 0 )/*child process*/ exec*(progname,:); else /*parent process*/ wait(&ChildRetCode); /* more parent code */ exit(RetCode);0^ ; V       B    `D??< <,$@ 0    `  ?? G,$ 0 Xfork()    N  ??"`}  ,$D 0 ,\>G5@=89 ?@>F5AA (PID=456,PPID=123) >4 ?@>3@0<<K progname. 3> 2K?>;=5=85 =0G0;>AL A B>G:8 AB0@B0 ?@>3@0<<K 8 7025@H8BAO 2 B>B <><5=B, :>340 ?@>3@0<<0 2K?>;=8B 2K7>2 exit()>3  m  n   f    N  ??"`T  ,$D  0  >48B5;LA:89 ?@>F5AA (PID=123,PPID=1) int ChildPID, ChildRetCode, RetCode=0; ChildPID = fork(); if( ChildPID == 0 )/*child process*/ exec*(progname,:); else /*parent process*/ wait(&ChildRetCode); /* more parent code */ exit(RetCode);0 0 &      B   `D??@,$@ 0B   `D??tt},$@ 01   `  ??S,$ 0 mexec*()(  B   `D??  ,$@  0   `P  ?? +1 ,$  0 Xwait()   N  ??"` T ,$D 0  >48B5;LA:89 ?@>F5AA (PID=123,PPID=1) int ChildPID, ChildRetCode, RetCode=0; ChildPID = fork(); if( ChildPID == 0 )/*child process*/ exec*(progname,:); else /*parent process*/ wait(&ChildRetCode); /* more parent code */ exit(RetCode);0        B @  `D??c tc ,$@ 0B   `D?? ttc ,$@  0   `  ?? n ,$  0 Xexit() H  0޽h ? 3f3f___PPT10r.w+4QD'  = @B DA' = @BA?%,( < +O%,( < +Df' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(Df' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =%(Du' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(Du' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(++0+ 0 ++0+ 0 ++0+ 0 ++0+0 ++0+0 ++0+0 ++0+0 ++0+0 +  0 0(  x  c $L  `}   x  c $$  `   H  0޽h ? 3f3f___PPT10i._0N@>+D='  = @B +$ 0 p$(  r  S @ @   r  S      H  0޽h ? ___f3̙;/f980___PPT10.օ1nj  0 <(  ~  s *  `}   ~  s *t  `   H  0޽h ? 3f3f___PPT10i.&+D='  = @B +   0    (  ~  s *(  `}     s *<  `   ( @`  Z  ??"` JM  F@>F5AA(2   f ??W wjg  @ >B>:   Z  ??"`69F  F@>F5AA(2   f ??pcV  @ >B>:    f ??S  c  @ >B>:     f ??6 cVF  @ >B>:     f ??g , w @ >B>:    Z  ??"`-0  F@>F5AA(2    fò ??  @ >B>:     f² ??p[N  @ >B>:   ZƲ  ??"`C  b*&5=B@0;L=K9 ?@>F5AA>@(2   fϲ ??   @ >B>: B  # lDԔ?? 6 H  0޽h ? 3f3f___PPT10i.ۢD+D='  = @B +  0 X(  ~  s *ز  `}     s *޲  `   ( @`H  0޽h ? 3f3f___PPT10i.ۢD+D='  = @B +]  0 tl(  ~  s *  `}    0 \A H??l/R 8 H  z   `  ?? ] 0) >B>:8, >3@0=8G5==K5 2>7<>6=>ABO<8 & 1) >B>:8, >3@0=8G5==K5 2>7<>6=>ABO<8 22>40-2K2>40\\H  0޽h ? 3f3f___PPT10i.)%+D='  = @B +A  0 XP(  ~  s *  `}    0  hA I? ?"`'X 8 I    T  ?? 'Y f2A;8 8<5NBAO 2 ?>B>:0 8 1 F5=B@0;L=K9 ?@>F5AA>@, >?5@0F8>==0O A8AB5<0 4>;6=0 >?@545;8BL ?>A;54>20B5;L=>ABL 8A?>;L7>20=8O F5=B@0;L=>3> ?@>F5AA>@0 ?>B>:0<8 2R  T  ??'Y ;O :064>3> ?>B>:0 <>6=> ?>AB@>8BL 3@0D8: 53> 2K?>;=5=8O 2 >4=>7040G=>9 A@545N 2NH  0޽h ? 3f3f___PPT10i.+D='  = @B +  0 h`(  ~  s *?  `}  ?   0 \A J??)E: 8 J ? n  T?  ?? g,$ 0 d%>@>H> ;8 <K @0A?@545;8;8 2@5<O & <564C ?>B>:0<8?63(2"H  0޽h ? 3f3f___PPT10.`+PQFDO'  = @B D ' = @BA?%,( < +O%,( < +DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(+8+0+0 +  0 X(  ~  s *?  `}  ?    s *4?  ` ?  ($ klmH  0޽h ? +T3f3f___PPT10i.­@`+D='  = @B +  0 X(  ~  s *$'?  `}  ?    s *5?  ` ?  ( @`H  0޽h ? +T3f3f___PPT10i.­@`+D='  = @B +  0  X(  ~  s *B>:80Z @`R  S ~? gֳgֳ? 1?"6?@`NNN?N  f@5<O &$ nKZ pB  HD1?F l\F   3 r? gֳgֳ1 ? <  UTID=1Z    3 rp? gֳgֳ1 ?% <*  UTID=5Z    3 r(  ~  s *|?  `}  ?  vB  ND1?ll vB  ND1? l x  3 L? gֳgֳ1 ?' ?  ^ >B>:80Z @`R  S ~t? gֳgֳ? 1?"6?@`NNN?N  f@5<O &$ nKZ pB  HD1?F lF   3 r? gֳgֳ1 ? <  UTID=1Z    3 r? gֳgֳ1 ?% <*  UTID=5Z    3 r? gֳgֳ1 ?<*} VTID=10Z    3 r? gֳgֳ1 ?"<W VTID=99Z pB   HD1?  pB   HD1?F F pB  HD1? pB  HD1? I pB  HD1?] pB  HD1?F F pB  HD1? pB  HD1??pB  HD1?F ;dF pB  HD1? d pB  HD1?F F     `?  ??9  Y,$ 0 HA5 25@=>? H  0޽h ? 3f3f___PPT10.,0R߮+_uscDO'  = @B D ' = @BA?%,( < +O%,( < +DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(+8+0+0 +C  0 ZR(  ~  s *$@  `}  @  vB  ND1?ll vB  ND1? l x  3 l @ gֳgֳ1 ?' @  ^ >B>:80Z @`R  S ~@ gֳgֳ? 1?"6?@`NNN?N  f@5<O &$ nKZ pB  HD1?F lF   3 r@ gֳgֳ1 ? <  UTID=1Z    3 r@ gֳgֳ1 ?% <*  UTID=5Z    3 r@ gֳgֳ1 ?<*} VTID=10Z    3 r@ gֳgֳ1 ?"<W VTID=99Z pB   HD1?  pB   HD1?F F pB  HD1?jpB  HD1?  pB  HD1? pB  HD1?F ( F pB  HD1? pB  HD1? ~ pB  HD1?F F pB  HD1?  pB  HD1?F F pB  HD1?@   `*@  ??  z'0ABL ?>B>:>2 <>65B =5 ?>B@51;OBL :064K9 A2>9 :20=B ?>;=>ABLN>>H  0޽h ? 3f3f___PPT10i.,0R߮+D='  = @B +  0 xp(  ~  s *`6@  `}  @  vB  ND1?ll vB  ND1? l x  3 ,@ gֳgֳ1 ?' @  ^ >B>:80Z @`R  S ~A@ gֳgֳ? 1?"6?@`NNN?N  f@5<O &$ nKZ pB  HD1?F lF   3 rJ@ gֳgֳ1 ? <  UTID=1Z    3 rN@ gֳgֳ1 ?% <*  UTID=5Z    3 rB@ gֳgֳ1 ?<*} VTID=10Z    3 rP@ gֳgֳ1 ?"<W VTID=99Z pB   HD1?  pB   HD1?F F pB  HD1?jpB  HD1?  pB  HD1? pB  HD1?F ( F pB  HD1? pB  HD1? ~ pB  HD1?F F pB  HD1?  pB  HD1?F F pB  HD1?pB  HD1?pB  HD1? 5pB  HD1?JspB  HD1?  pB  HD1? pB  HD1?    `L`@  ?? a,$ 0 0 42CE?@>F5AA>@=>9 A8AB5<5 >4=>2@5<5==> 2K?>;=ONBAO =5 1>;55 42CE ?>B>:>2KKH  0޽h ? 3f3f___PPT10.,0R߮+cDDO'  = @B D ' = @BA?%,( < +O%,( < +DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(+8+0+0 +  0 X(  ~  s *@o@  `}  @    s *t@  ` @  ( @`H  0޽h ? 3f3f___PPT10i.L+D='  = @B +  0 8(  ~  s *l}@  `}  @  H"  3 G:"`    C @@ "` "  d. &5=B@0;L=K9 ?@>F5AA>@y  3 ~@ ` p 7BLB  c $D    0@ &  ^!?8A>: ?>B>:>2 2 A>AB>O=88 3>B>2 : 2K?>;=5=8N00y  3 h@ ` # p 7CLB   c $D# 3 y   3 @ `3 pp 7DLB   c $Dpy   3 @ `p 7E   3 0@ "`c 5Es  7H  3 ܝ@ "`c _os  7F  3 @ "`c s  7G  0\@  5 } v@!?8A>: 5I5 =5 70?CI5==KE ?>B>:>2!!y  3 @ m3 p} 7ILB  c $Dpy  3 P@ m} 7JRB  s *DXB  0DXB  0Dc XB  0DXB  0DRcc XB  0D5c   0ر@  v l6>B>:8 2 A>AB>O=88 >6840=8O  3 ̶@ "`c  s  7AXB  0D  XB @ 0Dpz z    00@  s  n8>B>: 2 A>AB>O=88 2K?>;=5=8OXB  0D  H  0޽h ? 3f3f___PPT10i.Up+D='  = @B +  0L0 6(  ~  s *@  `}  @  x  c $t@  ` @  H  0޽h ? 3f3f___PPT10i.d^ +D='  = @B +  0L0 X(  ~  s *0@  }  @    s * @  ` @  ($ lmH  0޽h ? 3f3f___PPT10i.I+D='  = @B +E  0 \ T  (  ~  s *@  `}  @    s *,@  ` @  ( @`H"  3 G:"`    C @ "`   d. &5=B@0;L=K9 ?@>F5AA>@y  3 ,@ ` p 7BLB  c $D   0H@ G0 &  ^!?8A>: ?>B>:>2 2 A>AB>O=88 3>B>2 : 2K?>;=5=8N00y   3 @ ` p 7CLB   c $D y   3 @ `p 7DLB   c $Dy   3 $A `)p 7E  3 XA "`c s  7H  3 pA "`c s  7F  3  A "`c brs  7GXB  0DUUc XB  0D5UXB  0Dc XB  0Dc   0A  v l6>B>:8 2 A>AB>O=88 >6840=8O  3 DA "`c s  7AXB  0D  XB @ 0Dp     0A  G=s  n8>B>: 2 A>AB>O=88 2K?>;=5=8OXB  0D  H  0޽h ? 3f3f___PPT10i.u,+D='  = @B +  0L0 *(  x  c $ A  `}  A  x  c $!A z `V  A  vB  ND1?H9HR  S ~($A gֳgֳ? 1?"6?@`NNN?NHY f@5<O &$ nKZ   T??"`T    T??"`T   T??"`T :J    T??"`T & B   ZD?? J B   ZD??  B   ZD?? & B   ZD??  B  ZD??q JJT B  ZD??q ::T B  ZD??q T B  ZD??q T B  ZD??q T B  ZD??q T B  ZD??q T B  ZD??q &&T B  3 rD?? :J B  3 rD?? B  3 rD??  B  3 rD?? &    `0A  ?? g8  ^t0$     `l6A  ??   ^t1$     `:A  ??  ^t2$     `@A  ?? S$  `tn$  H  0޽h ? ___f3̙;/f9___PPT10i.xIa+D='  = @B +  0 0 X(   ~   s *QA  `}  A     s *[A   A  ($ lmH   0޽h ? +T3f3f___PPT10i.9po+D='  = @B +Y  0 ph@(  ~  s *LbA  `}  A  ^  6    TdA  ??- ^&>G5@548 ?@8>@8B5B>2(2  TcA  ??  f.A0<K9 2KA>:89 ?@8>@8B5B(2  TlnA  ?? J  d,A0<K9 =87:89 ?@8>@8B5B(2  TrA  ??"`_-o N@8>@8B5B 4 (2   TuA  ??"`o-  N@8>@8B5B 3 (2    T`tA  ??"` -  N@8>@8B5B 2 (2    T}A  ??"` -  N@8>@8B5B 1 (2    Z?? s B   ZD?? -    Z?? ^ s B  ZD??     Z??R B  ZD??-  Z?? ^ R B  ZD??   Z??@ R B  ZD??] @   Z?? R B  ZD?? H  0޽h ? +T3f3f___PPT10i.9po+D='  = @B +  0 PX(  ~  s *A  `}  A    s *A  ` A  ( @`H  0޽h ? 3f3f___PPT10i.@N+D='  = @B +  0 `X(  ~  s *tA  <}  A    s *dA M `s A  ($ 345H  0޽h ? 3f3f___PPT10i.@N+D='  = @B +  0 pX(  ~  s *A  `}  A    s *Ps:  `, A  ( @`H  0޽h ? +T3f3f___PPT10i.:KD+D='  = @B +  0L0 ,(  ,~ , s *A  `}  A   , TظA  ??c  f.A0<K9 2KA>:89 ?@8>@8B5B(2 , TA  ?? c J  d,A0<K9 =87:89 ?@8>@8B5B(2 , TA  ??"`_J o N@8>@8B5B 4 (2  , TA  ??"`oJ   N@8>@8B5B 3 (2  , TA  ??"` J  N@8>@8B5B 2 (2  , TA  ??"` J  N@8>@8B5B 1 (2   , Z??  s B  , ZD??    , Z?? a s B  , ZD?? ~ a    , Z??  R B , ZD??  , Z??a R B , ZD??~ a  , Z??R B , ZD?? , Z??GR B , ZD?? , TA  ??J . ^&>G5@548 ?@8>@8B5B>2(2 , TA  ??U. n6?;0=8@>20=85 2=CB@8 >G5@548(2 , TA  ??a VRR(2  , T\A  ??q  VRR(2  , TA  ??   XFCFS(2  , T(A  ??   VRR(2 H , 0޽h ? +T3f3f___PPT10i.>Pu+D='  = @B +  0 0Z(  0~ 0 s *A  `}  A   0 s *A ] ` A  *T y zH 0 0޽h ? +T3f3f___PPT10i.>d+D='  = @B +  0L0 4X(  4~ 4 s *hA  `}  A   4 s *B M `s A  ( @`H 4 0޽h ? +T3f3f___PPT10i.?.+D='  = @B +  0L0 86(  8~ 8 s *`B  `}  B  x 8 c $$B M `s B  H 8 0޽h ? +T3f3f___PPT10i.>-\+D='  = @B +  0L0 <p(  <^ < 6^^L < S A M??]'  MA~ < s *@B  `}  B  H < 0޽h ? +T3f3f80___PPT10.?~>  0L0 @6(  @~ @ s *!B  `}  B  x @ c $"B # `I B  H @ 0޽h ? +T3f3f___PPT10i.>-\+D='  = @B +  0L0 D~(  D^ D 6^^Z D S A  N??"`q  NA~ D s *3B  `}  B  H D 0޽h ? +T3f3f___PPT10i.?~>+D='  = @B +   0 " (   ~   s *T8B  `}  B     Z ??j   S A K??"?T KH   0޽h ? 3f3f___PPT10i.R*E+D='  = @B +   0 "$(  $~ $ s *l=B  `}  B   $ Z ??qqj $ S A L??"? LH $ 0޽h ? 3f3f___PPT10i.SP+D='  = @B +  0  HX(  H~ H s *@SB  `}  B   H s *YB z ` B  ( @`H H 0޽h ? 3f3f___PPT10i.+D='  = @B +  0 0:(  r  S dB  `}  B    S HkB  ` B  ")u=H  0޽h ? ___f3̙;/f9___PPT10i.+D='  = @B + 0 0(  x  c $D @ D  x  c $D   D  H  0޽h ? 3f3f___PPT10i._`4?+D='  = @B +$ 0 0T$(  Tr T S c @   r T S PB   B  H T 0޽h ? ___f3̙;/f980___PPT10.܅pѨ  0 P\(  \x \ c $z  `}   x \ c $|  `+     \ Hw 8c?#" `s M  RData(     \  BeC0DE FdnoCCsd',NTbq+7=II39@Ee  $#&>W*aJSOIZ=b7f+n+n5Ngu @Q^^r (0/0@                      > F  \  BeC0DE FdnoCCsd',NTbq+7=II39@Ee  $#&>W*aJSOIZ=b7f+n+n5Ngu @Q^^r (0/0@                       t  \  BeC0DE FdnoCCsd',NTbq+7=II39@Ee  $#&>W*aJSOIZ=b7f+n+n5Ngu @Q^^r (0/0@                        * \  BeC0DE FdoCCsd',NTbq+7=II39@Ee  $#&>W*aJSOIZ=b7f+n+n5Ngu @Q^^r (0/0@                      S"  r *  \  BeC0DE FdoCCsd',NTbq+7=II39@Ee  $#&>W*aJSOIZ=b7f+n+n5Ngu @Q^^r (0/0@                      S" s H B  \ # l?D1?"0?@NNN?N) g^ B  \ # l?D1?"0?@NNN?N)   B  \  fD1?"  B  \ # l?D1?"0?@NNN?N f B \ # l?D1?"0?@NNN?NF   * \  BeC0DE FdoCCsd',NTbq+7=II39@Ee  $#&>W*aJSOIZ=b7f+n+n5Ngu @Q^^r (0/0@                      S"  #u B \ # l?D1?"0?@NNN?N  V  \ c  ??"` Gs  7- \ c  ??"`) *  7- \ c 0B ??"` G9  7- \ c ! YY??"` W  7+ \ c h( YY??"`s 9  7+ \ c 0& YY??"`V   7+H \ 0޽h ? ___f3̙;/f9___PPT10i.܅w +D='  = @B +$  0 l$(  lr l S ˘  `}   r l S ,e  `   H l 0޽h ? ___f3̙;/f980___PPT10.߅ྲ-0  0 p0(  px p c $D&M  `}  M  x p c $  ` M  H p 0޽h ? ___f3̙;/f980___PPT10.߅ྲ-$  0 t$(  tr t S M  `}  M  r t S kM  ` M  H t 0޽h ? ___f3̙;/f980___PPT10.`M9 f 0  (  X  C    B   S 0B  @  B   H  0޽h ? ̙3380___PPT10.x(" 0 ((  ^  S    B   c $B  @  B   H  0޽h ? ̙3380___PPT10.x("R 0  b(  ^  S    B   c $B  @`  B H@___PPT9" >6=> @0AA<>B@5BL 3 7=0G5=8O ?0@0<5B@0 "a": a = 0: T(n+1) = 0*t(n) + (1-0)*T(n) = T(n) = & = T(0) K ?>;CG8;8 D8:A8@>20==>9 7=0G5=85 E0@0:B5@8AB8:8 (D0:B8G5A:8, D8:A8@>20==K9 ?@8>@8B5B) a = 1: T(n+1) = 1*t(n) + (1-1)*T(n) = t(n)  @57C;LB0B5 CG8BK205BAO B>;L:> 2@5<O >1@01>B:8 ?>A;54=53> 70?@>A0 a = 0.5: T(n+1) = 0.5*t(n) + (1-0.5)*T(n) = & = 0.51*t(n) + 0.52*t(n-1) + & + 0.5n+1t(0) + 0.5n+1*T(0) #G8BK205BAO 2@5<O :064>9 >1@01>B:8, => 1>;55 @0==85 7=0G5=8O 8A?>;L7CNBAO A <5=LH8<8 :>MDD8F85=B0<8 (CAB0@520NB A> 2@5<5=5<).," ,1  .'         W        C        / ~H  0޽h ? ̙3380___PPT10.ȰWx] tUՙϹ>"!@H'!D @Hy3򦀄@ >:PtEZDZdUeԺ:NATZ\3t겝Z,DU{sͽ9@ }:}#Gus4 LA9D8F9*D~CN*i')Jon4BHvF:#tHw~R`u< Zyi@a( 4L]o(?]g9&qp.wTy#b`0(=^ @0QrUTit_},u\'hM <,Z@+>.M}3U,?v#>y w~R?o>} .qRNwd?`eC7p\qILhH Aq   B`/+s~Z,nnn+ு[[U9,CXVnkہ@If` t[_d}MWtuQE/{vV:^1jG=1Y,3\ĭ"al9WQEPQolMnWhRyCqg{R̿y~1̱_hL =4w_?oϿgz#\j}bId`(RJrk20el9t'/X ׮]jMM- UbMWunXS^Cxq~2#&VS~n/C4~|XW[#?0\gl^$B}`S$gHڋ^ i+gJs-"nlZ"Zmk~!tҕ(,ʑr ;~b-l ?xw9rnE*KKwn\I&M4iҤI&M43md7?u9|]^mȵ=w\O?Ar z^M#ix$-gHٖ{G$,AUʶPoH{|C5ِv冴3`N̿s[ZykGN9~7hih[|u{_i}SlNNl#l|džmӈp 5iҤI&M4iҤI J[`)ە_FɝAX?VnҺVG5h!0#2/DqɎmzF|`pKB-hސ)|}*l 7ˈ^BLߣO>>qX[&y*!}":x\9L%Ovm}ߣJUBhҤI&M4iҤI+4iҤI&M4iҤJ"P|ϫ"(6 u|_VrNkq穒{g?oIvzΗlyv~)F]:OEǾnoc&HO|t?Y&=ZWUQW2da]Ћc|LF&PJN{3IaIЩD|&?\OAiլ % m/_&eH."E*ުp0 -@+ <<|ƥӀ~ ~ݏ~p޵|̟q0nتO)a2֔fPv޺ub&8τL9_7q{@Ιs>€_lihk"k5b85=Hcxd /J;\uuIIW=rӝ  xpH :뮨Ot]'SsKPbJ%/>y]{;\MW6YkznF`5x)ɳ|!pdLE~!7ǎc#>.?ұ/uHbO{'IY1Px?(H6$NF\_K\"𶪧Qu_?{T}dI=ՙ'/KQ@UFz}gL0L+0vk788Z^JsXMM4s3j)weԾւ&ٵd׈cw d:d6[sQ Kݫ.%TSB3TB9ɰښ пXMVO 4>FXmV;@kh-dZD1q -:2!c%ST3o̠! Y}H+8o qU~4тYIw; | + l"B䙪|bc cƆεcuw/٨GB9U4i3 }!w ,3;@0)N2Ι2.̠qH'ފ$8Vmg;8lIm 1eԫvojC$vE`QDOq!prN|8Z(eeuY05h2)iI5=4h)I5YB&KMi 4eR*ҧI[bt0}I!1w'{H-Cbo8Cbo!1׷!8Cb^!1w <$-qġ%X[`|K!qo|KLX[b1%X8w3=$-1Cbo.Lj X[@}KX[D}K,XỮ'xH;=$N-CboxH-Cbo<$N-q%V'CJUq$*`Wn3j)-'CwXSFx"z^qS)zp*5 ^YDE¸&f>m%y`ĖOo mН1yrC# Gfdz䡡u  n;Oʃ/xwkqtinMAhI5{MGQ4/AH^4')iTSDh*J h%$LP>nY>djp2k1duzKdG qVs+C8`UKb.<' ϓx>dzD{'m ~Gߚw7LzLɦ_[!dWxղ^%wi)mBDhDl%F^%6_]<͙xL3ZA3`=91nQ"h 6ZCw݂.V@3؅I0hF8d'w k1݃{VNT9NhY&SRW{F7G|)5ǼchG#.Q|OyЁt7u]O h5ɩn…\QF޴aE՛ۦ+:%=Fm ^"{[ܸ\%;7͵ʉ+ǻy;(! h;r .gmMwZ4|cbPbςgnl(7K=a5F4%X$O]}!&Nwo#aY޾f0Cfb0̤d RXK.GRCHTADh.C|/  Gχhi0'iRCn*ӀttDQiPӾpf,L|(B h=/ъP BTOQSN5:T3S-N58WMiT wM]{昺VM]٦~S|SBS"SbS׀kkkk/ES̼<ĕ#RQ&ED,ܝ<6o~3w&:Ƽеv0ҡT՛FԻzJz9#B7"F q ZuoF%[oE včG`QbB.0MÄ_@DdI$L I90¸۳3PgQ?gY3Vխ",m5ږ]tzK{#B1DBKK |I39nڨ{FU kl{(J[%gh@4Ht)!m*^rRh+W5/Xkk+lgʨ 2;xڈ,%x}?~٦RI ꙐcW,F9=񶁑 bAH;},CҺuU5gĩJXUMD%-QqQ5EdOu9´b!iZ"d- cJnTRKo]kT*y:JinM&Pox;4Ei&] 2L46Ďd'IQo]{T1J|#_ 2]a2(&2qdƐi5 鈲ĞNO~<y"57$5O@IA5ɏHHM M4q& h3]Qt&9ifDLԤ(M (MvX_;h'7&YQt&ID7jH@Wo]w&%NhAMJ$+'JkNhEM$#fFiҽÚ8I M|IE8b/xzvBP1ȴAtҤMi+cɲA5L7K&282{Đ)d*a2({=YHzG^1tKn\f=5B&S IYUUU)] 3AqԤQ Rn!ϱT30^{Q]ѺP{F%cD-5ٍPLQPY,@s]r^w;]xSx:4JՇ!Pꍑ[gSָј#͇zrE؊"Bp>Q'h%v͇F fZ&|X>zzL!P-9: ic|§*SC\v1rh: hąRZBt|VQş%RzG4@4BdK!t_O0WmM(΍‡>}NB!tnԛ&DC!t>yb4*C#aقZWPf;6YEXм5Lg51AjSGkfC@Lւ̥4KiҖdd=!ZK B>U _HAҦOUo1mI"6õOv%f$mnpOEl7HU(IV]&l31x&>O?H`0٬ŦZo@iHIA .=êH1"iJ`|3,kuE"7Xv'Us)j4Y[ma9UN_VS /ŇVFӧTWPwz0Z+2Pј 62SiwK͋\~CN:w<|˺9Z~Gl:s7uIqϏX5ҵoʞxxe̞#<ϝ\Z5cU7UMg_h_a҈_qp M~_Wگ+x<| y_oum|дeO]+i ߭Y}ͯ{?ޟ?缹m_\o/󒢭|ele"#эb@ks7[" BL1 ijpٮ]UIBj+/ŪF*%e4]νsLrIN'"Qq*#ScaJלmb$zr?ל=M[ll,Ҩ5g=r+l-Vzmԍ̬tXc[t܁%el?96b^Gb(9㗈D̈W"y5Y1@jVrxd6GyDttkJ#ۗ잫al[oRҶ0<;+ &+ ƺ J˖pī2xWr,cnedevm;z"Ԙ#yJ]Vg4HH.d>(Ko쳍9g< yd}O{%y۔?9oϑW`_2(5r?3vl>Y t{ݷ{c>B?g+"sFS`,ᡈ5RRc5[WRY9v#rrWmzm,5#r3JIVЉzAtqζNڛmɵ'm[mڴq~ο.45#9+=`viٶ2QJ)libfr:<:mlF)BFwr:mF}jg[<(%<նݝHnܼݽ6?7#UvrVz-l[?sQJ)OccmO϶N޼fN< 9' F{]#џ!>Oy5? ŷ[&OSd=UĊBqhoD+ĎpH=iy YyLQSj|%}y2ЏQmQ+ ~}Zk9MUjX*<%!'r9iO~>|el[hrW"ވ"Nė_AܥЋ5A 8SvD'"M@Ӟ51|B"bbouoIhCmw? 8B[bDȑ2l~#( -3e&y&ډy1{"OlnIw$'07/yBG>Wӟ9cJ(JJ|/ W4| It1%)ݼlvd>X`_uF+?m" ]kжDן?&?r[rIa[_΀dw6tD A`T9Y;mt%[|ȟ6%gA3g(}ۇ.ZN#"&01n`bm8&F?gb{ &mۋ0!oB$)[Us^ ES|4/4^gҹn3W&WF^0y<(`rMVjF( ȅ4K't@kG?\!dk{>KBӐ4! iHCҐ4! iwǶ=yMG>nW؝v2d'm'|1i}Jqľ!ZA_mtt3}˄a @ ,Hs}# ` Oice}}6X=>3#T^?)NYsџ-7|//0俎O~#^yz'z?Z2/ iHCҐ4! iHCҐsHvoK' Đ;GPmTNTNUR.T.?i@Ѽ$7E[]Ux`>߯Tw܆Ev4! iHCҐ4! iHCǀPkr;G9FhZ~;{Xߨ^9}=_}OW=f%j<#fp:-ԮwS'rb8wMoM^$\/?kHji@t{aWjc'J=*:]W{kDwУ=0,>kI4~>NOo^54OTDKwuWyjpĵH=G٩#3 _ 4vWA{Qj呮tfG 4#IxҐC}?UU.DWoXxJ_D܉+k#~G='D?b>b!bb1b'bo*jXC{.@s?яiwGGo}矵iCPߓA|ׁ> ,Uş(NSTx*.D(AG8D>\ͭƌ/O+1/i0!ì kLF Jxulػ~mn@9 *r Ac9ȯld(K LfY+4BEuy0]4 G RڿU6İщ jz{V`)σ&rʟ*[{"'i㧸)SRm4 kǫn,tE0%6@Kc# C r}4@<ľ:ؿE=C&4>Eٹ:_ >]Q̩ll5Եm5u6u5u曺L]KM]M]+L]{)=Bg慛B\y,<=K90]y=|]xOM4{UtϠv0ӡT|ġ@UX67!NGH\x5͈Dbw㭈!b5w"b=J>b7 7k%YJ =g"o4i]xZRK5ţHmNLj.3]<)ySN&&Cg"]A2txvIQ^bQy_; 2a31L]u}Wm걶)>]ı/S ǨusZZZK궸AjPs|NCtU*9#GI 89'.λN3UHX5/Xkk+lgJ@ٹ6" p ^~/jg)T3gB]1D n`|9( G i Һ3hT%F ժ&7ڋ_4djt9´b!iZ"d--nVLI*MRɊ:H.ޞ0}Qp*M4hbCM hRl Út5H0$D;j&EuMQ:$_+quN|m3tTdtđC&d=G=&t"oǔy"57$5O@IA57H4ѤDjR&yuM\Qt&9ifDLԤ(M (MvX_;h'7&YQt&ID7jH@Wo]w&%NhAMJ$+'JkNhEM$#fFiҽÚ8I M|IE8b/xzvBbimIl&Wh[n(=Ldqd!S6ȴɔ3Bf"dFD83ȱe\#d2O@ԛ^,WEw8_AzjMMT111 H=N=&SG$o@ \C)^w;]_HvCFSC:>Tz!ig"&>qz|O:JY~Xb׸(pC\kӸ!ōbǍꮧBC.B4Ԧ Ok2G iE#.B4j/P ȍ,,B4;Y: &;EX Pz$\)FjkF!tnԟ3C\u>r:7M: brB^ [CB蹊Fmk‡R[leͫڍh(NC",ih^&hix¶5S /1~%uZOS⏄h-10RS%AZ'0uL6EU8u.EW$XsZ'WA%f$mpOEl7HU(IV]&l~ bk: @>X,Lb6d&g-7V 4aU$`o4hcXxߔĹ [?VDn0n:Ȼr3$XvL\iHږr˫ )Q#@迚Z[%xe[Ѝi|867B^.>lh]n> ۃ^'9u? xYu):IfNbV~P{da-S @stN˥A?-W;Vkg:B*Veqr^[𹅕bI(x*Vbr+ky.v~P0T6-rldsݟ`dEވ[؋mdcՅy;SZaP􍶐1ucFvflՔ jm/j0zePX} M';MWȯ 5?h^P$NXx!s`ё|f- } J-&Ξ?sq`k7EvLJ>V4GydLfhC(k,:_+hS@ߢzx<-Rw|hec%!ަ<}U`$p_bUpdLi'^A[M*Nk >x,/cxf5Ё#GN||l>%Hl ď/wRBz)Eu{O}yءG| o!!S[M1'~]h~"Y͸T~6v~1/_%K9n/G,>њQKx#viؤr "-S ϲ 8&eP}ϲO&۷dʶ;ɈR(RsJ`臥Iɋ#γ$W"j;%pB)P`@| 0כMu11\ncnRohh"x%j1Q3f&\3ǘ? C;ھ9b9?G%;NZGK-.5,nk-t>h={}Zi ѓV~_&iα Eq;.jޣL Ynb{^9Ol5ҟ"dH;#͊iR e@e?&rU+KȆei*k-0 }1L`Cv/bgCޔmw/瘬Gkܗ> xl8ڭ<գ;1YMcT#kFDyvR>FSIZlw~Otv'nε )U z k䘬.ِv]SY-oW`苤خmGevCʶ dm׊ָ?+C{ 6A%\Mi:)z-A܉2rʶ{Y&)}ݛv0wvz)g~h^Jvdm7Nid)ۮp 7R-b%"v{?y-Ǿ/^Lnƹh)Q3^RL<͵2_>:Ĕ_i;hlx<puoۻtNζj,Y` ƒBm%e wO@` ?qj9cf:$3qGB[dc҉I[{i F98I:nwo{ovowO^53Ȁ`D 0KaD,Ą)xqVƒ VA/v`[]؊n B5|)i&J+&+jGY,25B ݴ-+B_[kj'!M6͈ӵ@'l8"hƾR@3ڿ6#B7kh,jtm2 #V t|'TI  3g!Fx-usi:_Ck4M.BzhD\D{P:X}[&PzMpWbX\KS_)As< +;%v~T96CTF셨5'Cv@7UoOBz#F~f'O_ J_M(˟HPYrkoi銹#UǣjO)ťpGP*L[Q.LGa9fV4>Ӿ&}Oڵѩg?Ty&T;߬ .Ft ȧMR /i;\4ŀy{L1xb b#[W ލ؎ {;W"AwQijcqw?=WNH|a7՛gϞ'T@zi/W0ےgG6iqRqˈE ̛t*U2aSϸ;0?\Of/.1Y9bޣbJ&;oLNi/M5ɋFmH]M,,b3ߌךT.5 ~ sjLh%5փ>m¼?pu?;w-<؁o̻<;h Mi)tV R:tO:+;Koe.=z7{%r v}&XT#d,-kLLB kWf#6@T2ӿ`(ԏt\/0J_˔|NmHWE Dtt;]U=$&59L[`&fkKL2R %s$=H[E͇7~'ሦC$'A=KR4~Mx̘%P I dRJn{#SW-.v%2ǥUd45QG}!b:wYwjchq|)oJ܉Cok| b'\"n~ W&G2E%+ hݽxMP\ێ^>U24X]:O;))te;o7,|3?s9YMnapi:|H ԩt8:W3(êuhCiūR҅`. 8reKU'S5I~+թK3zn9?|a/IPƴ/, 4]P RC.9;6>{{̹0K㣉q~V*!ߦIY!ιdړi_j$ӥħ1œ:xMKjF)h~>({l#GgQH%#;SXu,&q=b'w#~ q=:vD#>@:GlRawWQsidGGkD a8;jޗywO^x~쬓~E. ܷ+z7׭޸cg_W]<"38|Lz BLդO`gv!ѭH`wq'> 4Š)V~ kg}GN;2 Za<5t+;4f V\42@hMbhC=ʦF$.&viX/'nKVh^[sM?0-I\tgċҔRK 9fɓk-lV#WmkWV Ym5ZM3+iB\qFDnyAȳ*&H #WDW"jrr )?;CȢI_V(uL-ܡdaZXMk(?"M:gլ -`+EVD%WlLGɖۖ{&luܽimˎ|=iMײepӥ smٽk4k9AO[nuۉ q7"vqqPwWݷ%K%axZ-:nPczt|2xgtbysD1B28%SwVIBK%96ZN?ʡl=Hސo&L9,(i!]91*0%HmyKΜ 簘-.b.3,ϲX-tI&GNr$9*!'.Ѵ-.93S2$LKO5@~A>KzCQS2K4eY2krYG%szL_V )CTkpɌrsmQM+EyfTmZVnƈKfdm:<ԖP'\+j]uWܺErrKTaNn)!'wEZNJ*{%sM iB8~?lt1M uܹ2CF6$4'`蘷ٻl% nT(ҼYNS5JQhkDҤlH7HFRD;Jfi ( QܬcȢJt 9fMti:0=0Suш^dګha=W `9操J<238*CGbJO*p|-^9i,` Ψ{=tKwYRcߛXuoފ3nE +f$]W( laiZ9}Pc{0x?d˗D/;G~Օ-'Y]>k0],ˇ!&2`Fa<ru@z fzI7 @TbM*ouy Vx\ TUUϹ{QDʌ,_9JGTl(5&wY.[=&L˚ai359Q Yr}5Ss~w>~Ǒm>4L䉀00lA?*>$O} ".++" aiЍF bq"N3ebǎoȾ巾sחF|0ymwOU׽UdΊ}qqo/ ꧼtMuSϋ3ˣoX;Zo6b yIݟSYz6to }V\<$D;ڹ hrqZ6Ag0"\B~"2+_J{jJ 9ٍmZq[h왥9!_\Z!(s6DȄlѵ#WDnFSRZk!M25r5w2(mR!Bi>m|f#ɐtq'p/ߥnŎhŒMw0խ \˱9kPoB;*n%|2 u==J6IfT]BHrT?9$'!@[-vvz[G9(HINp&g$OTž=װZIvE*%3OfrVd&diӏuP$QB?亥[L+uK R7ؼWP u PRIaP:iU8Ptyq-ݳ;>}tԊN $U7_2BY}*ɴIK XڐIr%9v t {goE\At$ɱx鞝-9 LE4I<E)f|Ia!YVB>B=' u@ˑ?m*~{|5ZKzAh|dv2AB@&ޕ"`yWΠN!w|?4"Ƕ.+V ]vɏOYwQb9̅8"Fj~X;2!5>qsXI7 ycL :'鄱,pz; yRS/PQ18cZ%h)wPѬԣ0?LmƷ#5{D!b2b*m533gD\B4Q|7 f~3[|n8}40?%kn%?E]ԩS7Gh5˦Y|J,J<OSg7IN'KZхB.BFW.+(ԋZU4'H}.6s;>ڋA?*bGxd zA u +}k_o㙾T.AWzwҜqsٯ4-wꜳd^ռiΉ K-!U鲼uvf pc}Kd~׈"!kAdAdAdA%ߗžk _K@ W~gӏY~k?ꡏmI#Hxts !\f) Чt^R[I~+INDtN/ O:yK>xЙҴG|I.EFO!.6$>:WG9y9w 2 2 2 пg@@Pzx] xU]t:; BAy CI@WY$0(I0@Ae}cVw]qFw'c Ƒ0WսWUݪ{sPc?Yd"s]cӀ*`LƝꢨRˑ?+ vs:P^ X|S # /(!`0e!Á@K FcoKޑrk_mq k-^ JOeE& zQp纮xE~W6-f R$4cy$ XcQzD.nH.5Ν3OR'n;Iww꺞8phwDccGў9/$#؎y?-bEl*4 Xڍ_Sq=`'vbUz^O+q\c}*@e'1DT:+"]d}^ii^j(ůtFvEDX?} K> +2n%h",1umSJX)ClNWXzVS$hutw]wPTdüX5G(02^~o댗g̛ƷjM|>ɏYefmg|\|=e}2ӹ۽T-+x5V>%fԋ8ctX 4K&-@+ hVkuz.`p7` v?~D/_:P*7ҁ~@!0L҄툴Il!qZBɾdǖ(A:OˉQrTJU>)mMWyq_c3~^39;NN)Ctg-/K.Y]{屵O$HuOq]_ S.%JMv3:L6WE ݊h4n?~G\6dCB {iq5,ؠ*v]ͷkv='F;?9?K?&kV[m|Lsk Ϟ1> &-Og_`6> |n3೏g  |S3g+w+uu:ǭ>e$IbFlѓ})[Lh opސmS` q|2K٢>{܃)ל`=צ-vl1Ƣ^vK~z^ ~Lsϼ>鳔-3/C6>s|(Ogg.Yih-MvYYȔWELXt>Ork4\O^| 4ڡIu=%Z@OTڂ΢"#ۑU>&̠l(jed| 42a[40+sd fVbLd)fd(oܛ%Cy#&ӫ{$[mޅD˳]AtQ/xM2v<Ci4G=J'jbhtD=8M%]1[%C%f_14Nu0g$, 0%3Z2! y/fd&K9b'*1#̝%W#mN2ԖD[{dj%m;$C-GLHY2Z2TDY-/#=dd2%:´Iz1^I2V}V< !"! ,3 0+%3^2W bG咙.ѫHZ%[0#m#K%륒~M̵nŴHFɐ`’~M̍fd9x#bY2+eJ+&ɸ%2$ L0D2yE畇]{94Y~.BtmNB's Bs$AK/Nr͕ܻUS'K$yp;o|+\i|$TzK񰶖ں5/mjln\qE ʚkɋY8&3Mk[vky%<&WȂO!vԚ;:Њ%^Ĝ &oe9mæyjܴ&t_97]&xN@O%*G6% >5Du5b[ T,P)[*gmљ ~i% Gw]rKtvk`75Zb¥&+ /Y{\wrV!J#M+"Vf/ /Y;84qw$,FlˑfRRG}>]$qW&i;q?k{CSPh$WgZLtgz+N6֋H#Ԛ}xf^Mo7ٕ6{ʵXe1z>[Z~3ږ yKZ ,? -ᦾG楟AH :33D<A:@g^#k^_7iλizU3zYOzg=98B?.t(NvO4'VYnCᏎ#0$tuc|L},:X˟Eᖦťĸo2*臣jO/xͯo:}BtJ_o0*A#~qL = aB|X*uBN t>Qtv7:m>G4C :{ mRٰ|й'Qدtްtk?@gO5J%t6ո5l AD FJԇ, cEb fq4o:&߆o-yj)Co IտQ~ȋlL9DșGfnwáQFŦ56*\25ϜH\c%wzccz>`a|菿']~jO2?#פ~-eŐgXpF{zx]swrdCBCE~`~UPhU+RLoݓNe>KLE,N~OruK/GU/b͗+/JyCjǓ&sAxmmO*ʮU?>/G/ӱ޴I/?:i??=ZJ>-2}!#؊eYxI+|[)T*WP#q% aW*L<_®c8]lhHw$6ߎ\# mG-V< Ek,bka+뱥\:2$]s? 쩿`N+|ӕ`(G@p8 3 @|(h60~< -ƙ@%0%W^ Ou>x_e ڷ}sS[wu>geZg̝Qz9GKu5rl3XkarSuycsS[[0DӍmt9Wb}k +[BZڷzgm,EwSY :ͳDnWAƺ\[ۋ?Cz|@6 AyAG:Ms[~njA[N7Gx?tAd- =j-@zSz!}z]e&;s8(zx,:B32t Bt\AAGܒLv6#|:EA'i,bL\;5.㻽lO/ Ģi> r?Č |5g;$\&qX"mzy[WjM\M,ئB>b1a&B5/>| (ȧҀӂƦìPt_VxAš5.ec[J<_YR\ߚ+ ~f n3g#GqGqGqG$zw7+ز#N]c⹜~/zާYy#Ro}L<{z&O2.mӇzzzpUu53>H,0`=:@8!2g^'}#8#8#8#9_N-gMcHv Bc|( ИpcTQ%" . ]$ ͺ\t}𧤪ZU[wc+Dw* `1MS]>s0o\ q0qSf#)YvO<GԒ̖Rp_xƑ 95I"<sf_G^^/gGsO0S }vxV7ՠj"@K +% ~g=v,z I&s]CG:Ftzqu ]ZO1b! 79)qzn8om^kNpMTGEqBh4Moj:W+5[7(%z᥆(k7Is~Y gKʺxe+EC㯱MoCsq O(+})_!B\HzQ)>o܌mF+x>G=`AE:N3ډNӂB&9;iyb& ~o]lF_j&>g4z6`.Qȏ ,#W%ќfYzLWB=ۊ5Bi~%*Q7~|p2\F<+R'-RHn)ݯNUO /h)aj`O <=Oh)9Fr4[.TJo#ԦR#tRۮK K;un?JiFGp_~W^2??5*?ß;~?pLmA?R/h_p]wɜo97 x< փ;>x|JAWp.(%5D0 LS`*M&޻nr+4J('MqPqSZ:y 埋u{8\Ji|pYQEih rZ:xS(KKy@856xS\c\ 珒:ַpcʐpx8LG ?݃)s{&iT-Q_wꗳzfWye]Al ƞ"f ~v_U*F~ 鑲Et?z(y'sn+V!,aoͤ==@AG7f֬ Ii8ӣҕ;4Z;N ֹO ~t=OPfH=Q_ix?^udYݮXXGtI:ֿ0*So9R0'$I^̰|)^X{ĚNi&cJA+%!)HH;)L މ)W SD 6x l)=\) N}DN)'IjE*=_E2]1&<_:X}?J*y銧._߆h{Nwپ@v׈Zoƅ[k8Y=P]]VG{XeuՍqYzjiejeUN֓Ly!w:-q \zQ1HAg|=CmV]Q/X^tY#׭$T&`?t*caϝWt).).yԶW=j[j3՘j۹X'ԶԈ|Wbj[ڭv\W}^8͜c:iaArDvUZqV'aVߌjn VߊjGU>rw\Vs\VzX,Vej}qYZ%̠Uǒ:JmQ'oCo:Wrj?tz܂ 9r/kb]P&487vO=GM|kW+"i6vǕ!7S]h28tSK#}pl%d-xƿZ d ma^W-Y dz>B2k gS"ad)32+|{҉ ~*`9e"Đv?ϥ}.`FyW.:;r/(уյ N2u9di.̔[|]*3=S׫xlH3!ֈN9p`?r9))aq룲TN +Su(qpҋVO+M[>sbly*>J>!N>XS} Y f)]aӣ!ɰ"= j"i# #u co`[v~B.ƛgMa#D%p+[tD]joC NWM/N+8JWQ|76ƆߖNbHx|X!}F~Z66䶬a,3{ _A!IbNi]&SA4666:tbHA66lXL %!|ҽ  Sېr c1iKA)cA)tK5#!QTP†߆ܖu3,66䶼n% !,NsԺG)lmmy'c1˵` cɟ5!ЬF>ցG!SېabѺ)667b׺ςː)lmmg.;!Sېr+c1^pACl/t?@ d ~1c1ks|d{HcƆm e,Mn6h] 9c1Gty ȇN :1Y@6hcc1}P0A#C @6Q`†m a,T떃k)lm)׺3`.d ~1p3c13B †߆팱Z^ACܫ{<LaÏ6V3F1h14lt׃`d ~1$c1` †߆팱l/`X{|>LaÏ6c,=1htCO!;(ௐ)l@c1k]÷MA#A.†m d1uAo2 ?!XL  Pb?d;1)l%ŌԺ F`f,d{ †m \X5Zw.X S23W.?@v/:?RbiUA2 ?XX*6~!/ {Q')h6~XcZwx†X&CG1E S٣u?2hSj { )lQbi/0 0!)C7dAWaÏ6R!= StҺ?d@\z^ֺ`2 ?[2h`,thJ i&24a$^3F\zF&__nX5k; -GyvhE.d(-1DKC$F{g|'sܦYpVݍJ9CsmWD^E!d;|]h]_0;=0(s&8O͊2F[J6fo#p#gI*$%$@c3V1۞b?ov9OJvFI3v #ipn,nR?ɣ;q f<)pQ-_cKmS  un*Y,4vjKyfi9 gN(!)9X8W2+q !+ƱbGL3U8vt` dPc! ݀c7h=b>X |0y86O?Km2\CpQ ` >1džh=b42S F1S1̀*S d(=F0 S  LPz|%80 yLPz-WkMe|LwA3+3}Շs;}/9Og ww3`C7\r$zax֍`K>${ [leKnɪV}lqA, + ÐqH^6_Kk)eFOQiuiVճYhokJlg۰; *5e`{=׾n0sD/z:G |9P= ]C<6?ǖNjI.9T5 Nja^9+ŹxbJ%1q/qna~gO O*pPVQJJF8*3gg3ljf#>U'w fLT3{~6WDsϣS{Q~Q'ϮE,%|~/2WyD.JzoLޑc'݌&  Mf4?>\wӺLϨg~×{Z=MVHl#4hVN$> VSvhEYYrv n8%wn˴l\VgUV*ͭ`-_P?o O[g0hۻD躞TO$kc:z;:-M\De"79'\%\%\%\%\%\%\}\sUOjnO 5oVҬ4WOP8$O1jQO]$HeR&է1n>\,rz@GOku]ap,|LZ4漁sjQGϫX^qW`U˄C"*>=5X9{Q[Z4'0xAoH7VZ)K(}$!ߏMKKKKKK61V٢DCzL1YwHd.fW+DP?NoljEw;ӻ]F݆B@~A/`U~%M ۚzm=婻Oc(⟊#{ :<ɷ_Ek۝^MʼnSom[,1ӕަr <sWzSXko-9xJ9E].rmc CWk6?Nr]]q~ÜcqNPmKlHەHˆTgt۠2O%\f9f9ZVZ: C6M닎 Yy x"^;syG|0%1c`O0ˠs lNna04 yQ,)E16ua1"8Ebj=k2Bj-Fp3X6wp|L "0L9 ,̸dWgO>փ `XwЁ=o؞~ߴž6jg%ΥsԊܹSо$mҟ_j.V}A sXch+s> L ;9w۩[}^S[y]v^eBqSfJhd=:RK֮3[J)iRjlT_ޏP;5I"<qz3{n?5|^4::9־3pgg ύG/[ozK[ jF+2 qY?Z!z-q8C{Xz M 8& c~8u/U=0[`@bBo|sR`I=6fe8-p־{w;#9 bMqBh4 `\l^2e`2i/!ksIYl%bhh5Mwh΁u#>a e|/ ]_/*獛 rp>HiF;4rZp Y$g'7O$o~ h)&isFgYi2H F,#W%ќfYzL݋GmEZ&NU_=-ԯ^4*}$ T~|päZ Y!FbdIKT92={Jkb{ ZJo-XxOzOZJg')"6z!֩ ۄ)ick!2bzvg w?~uQ S7mJ__nuJeWy8?/n%,esuy8y׏wG [o:* -Lwiv}PoWO B- 8(Ԫ$R-UXtI0LpT\j0dе7t,Xk{8\gm+\Vpm-4<õy8'ʱoND 'M.y8*=|o3;va3D9kݕ!LjӛqP%v8w6e4#c7Cr̋ ~w\Ĥ/h^0_zT'4KN-+ѣGE;-pXb d ~k&yNAG7f:qBRݫ"9+wRB'}zt˝kUUuZ^+~uo"VݮcuʻcJ{Y!)Hz|g{}Lr#$̈|wJ3S ڹRP㑂NͤRpKH :E`G 2IRÕ!)ȈXw:[?>]#_&3/rNvŔ/ZWˌH3)Hod) S0U_Uy:`!IC=Ow]nۿ kl^\-kjy.xXuWzu..V=vvYauc\VkzX}.^{^~l/xfZ 1dWSCZO̕utWh i:Gn{/ҞtٛQ/X^pY#׭$TZ:3=s.:eGmKmSmubHmKkq嫛+%.`Վޣ} szLk$GkG\Wi庬f\Vi[qYqYf^auO\V3\VzX,Ⲛa[YZɱXB6ahzO} _ \#u}&*CJ,yOBD:zN\ƥ;so)0x?zCOoSI? 83L:6Pv #[^!a,kBlMjZL7Mj묮x8XK },9*W,L30jSv+ :snUfg ,NNiWlñln5Tޓ#y'ZwŽJ[)s(ed)|bjɡ[1 aҼXIZgjNExtzZ(W9׈q>;VSs֞ ͟Z|piZ\IʉXe|P))RxxD|>yW.:sWj+ṮR'ݥr8̬;EJCJE6dNF|tdц#k)#rmj,^3%>}u}T<Y)aqp>N}Tz yI ;DC9 )lmmYXgZ8LaoCn˓ŜҺ>M4iilmmL!="t] Sې۲=c19Z72Bh! 0J"0 LaoCnˁ\u/%/!.ՌRFNSA9d ~r[g,fֽ SېZbӺ ,:Ue,R.A!坌,׺5%@x@ XLaoCnˇyD>փ Sېy\> ^/C!&bպLaoCb˭l{mW5)lG|u!k*g4ahilƠWbh4fUې1CzDg! |Πc1n_0 LaÏ60W# 0:PMdC[ Ɓ)lbJn9\ †߆팱r; BG733S.)lmYu :Ľ{ QkCa6hc`5c1k:vN+1Jw=6AGO2^ )lmyY= vк#6hc=bhC6A8C| †m 405|ۤ, ?! !=5{yxXo0DCa!9\[QrA' ? #Ao2 ?! |;0&4!(ݑLaÏk,Zwu\I0N3qҽnLaÏk,k\TA8X\ ٽ,KYuWj6ƂŬҺ_1&_AxH bc $d  ~XcZwx†MZw xlLaÏk,x-Zwx†=ZC)k":ćCF'@d ~\cQbi/0 \<ҧ_2JL] ? #: 2 ?! NZ7l AoЋZ@G3SuKXmQ Y t\Q6$!IMfknO7J;ƦfG&__nX5k; =iF>pX.Q,[c(4?/I</݁ u"·4)gv[X \E!d;|]h]_i-pCmW6F7+uFcf w4; ZwSTm]llfQ!.ה"˙ِavpUjʌhcsk_79}uQ눣z*SQtp+c$_e{G􃽀1?|7^qc/q܌\\wӺLϨg~×{Z=OVV3 b$`h%K }l;oQT%aKgV/[z7[9@Vumnu\kkjU[;uHɣ7iHMN4G뻊~ݢ:LI `x\{pTݻal"F F*i 6!DX%8ĒGCĠVRG:SgL>u:ΈѩbՎZ4EmFpA*>PR;JםKi8pdz AR8DE$U4(.ӳ98 'œL"@908| L\\\ L*5G_vhrL92n?)=󆾩},`6pN\R`>pFGau"`1p9F|W\V *`5=N_}doYzgD?RNB2늫 ֣u:MC'J|C'f!POV;y2`С}0KACWOG]4nڍm}m["k*#+;ۻ6QMm}l%]UUu>#<#<#<ȣ>MeXAJRNd %A^^z/W-K9?|_!/i3/vf7t|gmgͱ6k`vwU8ÿO0|# jW`Rz?jDa4"$O:RKG'r0?|M rњBuj㘎''xzD<&}BcY1;SzR_~ԕђjݞwr iorIMIFö+%K ԗ,=5f7ծYj}d5dʇpLm?DzhhL/Qd,16aũQR2_F? [$8S%[G;xT~iwp1eT Wj(NK:dW]Ki89t@% w(VGGA͘ 21|b6 X~sTŭ$ L+Brͼ@J-k[d)(ؘs'+fUVk9[aj ԖG{mY>GC\U v߹sZ,^:^]’ak6pSZ%Tn϶LjA 1 Ny),^.1$g:A(4McY,Y)T+GpqD>q댹dJEX 4nICU&c.Stiz|QK: )#$U[X[ rp#d,Yr _醡چem_|e 4'x} xTյyfL$IC#P! Cj /PV*_}|^Z[-rOJ|ڏ=3g&gͷ>gZ{_g*y`YܚJ:;;Ӂ+hf|ZM!%+R>{|-ȗ~=lfL O`\wKw(4B Y`0ʊ 盈 &rX6]( ~^)ϵh/.G +'#NAG*Wۀ8qLo ^x 2u^8 وMs"C$+\x,E2M.A\ q9 ĕW# t -0 [ue!zfݠ+Lep -//'O8hU VѼr6Xm]\Ȧ ]fjxV2o64PO9CH)ZPCr)EAn(Ocǎ tZ;{|* م/s矽ֳ<ۈL˳P댏$xWnWXTzJA)g짾ep9X ۙlMO"֜vkuu5,sR.QuL* tR q5bvGÄSLu8ΪQ($ƪZ@# RD=P[{Ө[ѷcy)OQ>m6Ca`x!q}P{wB,B!Ab8b0`$Z{j!>q?+G K+!60}M4[枬,Ō2$FSh)џKvc} ]ȰITaYvI_u,7jl.dcJ[˥/:+[`FF7^ކ{E[3u+o~򫏇 ~/,~ p\~6[ȯQmP]p ʖ [3נB? hTq=]F G h% (xy[ny[$o@L xᙟ$<4 .O H>>xV oIb^xVB6oLO {1-g=ȶɉn XCf k55J&j Kdh<ؔRk/h|TK鶳.%fA/M6OQJ'ϕ#g&+1^SIxHjdGxZ'J'mZ^ыRM2ՎB)>m*#DŽ;KA%|P2RHww OP1oBY+`pEurQ,a­P2+(k$ơ1[jU{)٨^@%(u?P]G`C}(7K>Cp-IYz+l]"ήlVTb)4򘉅='ܽ~EY%)$-["Շ ѯ^!)(,6!Gw m&71b GFgt-gƤj0 'J㜇8݊~,0nXUxV9еu4D+[>(de]H`u'c / ҃\l4Iֿe ue|4iIZ 1{]ic34C?+}!#? w Ju΅5Y&;@I^⨦g{|oR`~}wEzrN.}OX>gA~-'Iw~ Է1rа{a7e*wo.RF{yj qBׅ6-ݵ)%~A7A}x~(4KFL}ߔ3nk"׊ą4א5fWYoyE܅^`[e1.wDe!bJ4#s7i>2oɁZ3B)EYh;͝Z2|^4u?Q[o*[|t^mqlQ*-_ڢ[(iG=z-ɬ1sGF 큉i'p;ZVZAV&ju[iUOb(Qnu.(V-o+ժ.2bxVotz)~O֗Z\I%SАЪIWD8k 5J@lj3G.-ĩkJi|ohq.x=j\>MHl.Ehzyj_BO۽< R魘Kƽ앎w8z$j⌜,먄v(B qX鎬*L'Sa0-hZb5~o~Y׽zEut2+5G{S<)l/F,xiT{7_ yGB#;CƅbF4[w190-ݮ֋9lsRv+Jw:ȅ5ŕncչe'^ؓHr;+qw|{ķhC}b{_o oz8b5w6q H*sz̝įz=0HL!+3eg+qfqs`̳֯SIcfBjF]k3]lKf^L$E[PEEZ|NȾ(ik?G:( L:C8n& heJ_wn{mGN[#Ox߈LO VZ\*V`LwZ_KpO)߰||V!l^G8O:gx $ BIJqKR] \T5h$ܮ{uɣ^7^1-dgiOsɎϜ:tx˱/$2>Lj|G_˓ Fh^8K|,xO}/1nUȿ##%0\̎%W ˘Yn‹wrjʭy_ʽ]U(ܯqK}0b~hx4ue&~MNx)g*b۪2F4%z^'wsw$r$K)7)yz *=Ҟ}v^3X޾&LrSQWs|> ;M/x׀C@}\O~0Ъʡ BPWA5uVUajq| #082/*NɌ!_ױV5^C0wxjk* *|Ei;ky%R~##q(CG_r^Н WɌCh0S:GPYZK ݰ.uWm*C=W,CR8>CGmM 5VßH@:8jNqK, >x On5-\.F\[췤1߃({9{NY␂UxY &?]h-25^dS/D\,˞|;⃈! ⣈;hh74xK,~\AץɧzΜmP>,({WOuSecF|Ać5M>'|>AO8n4t_{pV:Q_}VURĿ F&i+OwC+ƕ9=y{R.ކY'Apqh_NeO%_Cvf&<Nt> 1pл۽ b;a mG7tǯf J,1&:&[ch"}Yw,qx*¾r$Α?+=>v]{yҦ%=S',~~KhfyheׂLdQ娸M{Aݎwppppjok4?bNt| 3|IA=͓^Z|L v^Of׃>?'Ƀ ; =AˈmMlpppp>v9?;"vq vDcOx0t>@v6x>O}tM"Ue0vU8JiɗN __7$T_˟jk7ߥ{$o~XYO#zg'_{W~888$tߏALߐ;F$6߅rrw9K yͫ-=i!nЊ=? K}888?:1W21.?'vdw2&=A+_+TM%~ܕ{}Ax+|K+`4`Ļ؟W [>^* S"VmĻ~?Q>$]o;yӟl<=O_Ssn79*X)Pr7͛Jbp[,V>t/tfƃJW!Ys(]u]٣rU}$wգ_Hp*Y)#Q8GWA^u ^8q ">8O#>RD э8q!b">cS_mc_t-s ްEM숿ϑ~( |cʿZBo%̷#>#>x1L68jG}VF".m%>>\m6CW=h'qp]&̓]fwHNm$|DA?QL /7 nG|P뷓7&(|к>WpȇES+jNv"~gS֗޾aj`,;[m}[l}ˤ_:}1am+m}W.JFy|IQ+\܈G ^jLx+`/=_+a+v 2_7(/>ǯmj$}4>E6m+RWZct84pCSJEP +aNJq%9,8,+ xM_{O >kzWSdgm/4>6|Ƨ؆z$ [ll<+$ O_~l<+!ozIY]ķzOƧІͽTVO@△CdD[m!35ܚq%mR24}lJJ 4>FtY᠗&R(MIJLZJ~γx7Rre1RKR(ZTLR ٭:И^ygɞhx_zw'yԌEC$JI[y@k:k>~ |'0#z~&*49r&GMf2 |Z2"x`=5#nc{0ܦru>kU$sBW!u'٠V~8c q.Ehth8s0&5U9 e$>V"&)5-x!΃pP$X9, rWjDNjPBeMyy<'Ro(ÐpP[<3eiC\C xReR<,::vTPKg8~{S>/0 h12zU2~l)nR[ovεOrXu_C9NDqhѽߋ4YJ&BCI";O9q$>r3tp_h\:(5O\~%Ox[ʠ8Wn* |%.)xHGf%IW0-nf X=ZLI]1U=zSR{~!BBkn3$D 6 TߛE;s6r5nh0^[ѶSg2y&ZlN-OoW?LK۷!w G? 9G-{x ۉ sJ#0(§)ߟ{ 2EKXf<.4>5~zݟޝ9[%1!~GSԧKU;x5~1ѓ:;U%Qr )ǵ딘%쇱KT[ePymQpD/)wn=J ׳ފI!ޭoOQlğrOK$Í0ޚqXfEw s q,8 qQEw$?7L:h@X,hc%fW0ViRPbعBLvq;>B';>sDzd=ɋ/XLoo".P<G3? %<ʼnC9Ыr0*16PAcE ." YW\!2W@T֡Q[?l%Y ,.^? BD+Sfix{Z~e6u$.A&RQ}H1 (  < f= 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordHOh+'0T hp    $,  EdgeAlexey V. Liniov124Microsoft PowerPoint@ktI@@b+@n  GSg  )'    """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___www4'A x(xKʦ """)))UUUMMMBBB999|PP3f3333f333ff3fffff3f3f̙f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙33333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffff3fffffff3f̙ffff3ff333f3ff33fff33f3ff̙3f3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3ffffffffff!___wwwⴋݴeeeeekeeݼݻ⻋eee⊊݋eeeeeݐ⊊keeݴ݋eeee⋊eee݋⋴݋ݻݻݼݻ⋋݋eeee 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordJ 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordK 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordL 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordM 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordN 8AC=>: Word.Picture.80, 8AC=>: Microsoft Word,/ 0`DTimes New RomanTT0ܖ 0ܖDVerdanaw RomanTT0ܖ 0ܖ" DWingdingsRomanTT0ܖ 0ܖ0DGaramondRomanTT0ܖ 0ܖ@DArialndRomanTT0ܖ 0ܖ"PDTimes New Roman Cyr0ܖ 0ܖ`DTahomaew Roman Cyr0ܖ 0ܖ"pDCourier Newman Cyr0ܖ 0ܖ1 C . @n?" dd@  @@`` t^   FHGH  """""""""" $#'n #"   5$ -!"#$%&)*,G- BCrsvwyz{|}~ 2$K6履xX2$lwHץrDM/{2$~7MnǜgP b$9e1U\B4<2$f厓 p(2$(W2r c1r42$&m]6fη<9 ;2$MU66 ހԑW);G2$eHǹGMJ 0e0e A@A5%8c8c     ?1d0u0@Ty2 NP'p<'p@A)BCD|E? fYYf i3f@8  g4adad  0ppp@  R ʚ;>a8ʚ;<4!d!d  x 0 <4dddd  x 0 0___PPT10 ppN___PPT90(? -O =T?5@0F8>==K5 A8AB5<K: 0A?5:BK ?0@0;;5;87<0+@@>F5AAK 8 ?>B>:8. ;0=8@>20=85.!Z!f"5<0 >1AC645=8O@>3@0<<8ABK A>740NB ?@>3@0<<K >;L7>20B5;8 70?CA:0NB ?@>3@0<<K =0 8A?>;=5=85 'B> ?@54AB02;O5B A>1>9 >1J5:B 8A?>;=5=8O 2 !?g"1J5:B 8A?>;=5=8O$1J5:B,   !"#$%&'(*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root EntrydO)Ke@ PicturesQCurrent User4>SummaryInformation( UlPowerPoint Document()DocumentSummaryInformation8 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordI 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordJ 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordK 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordL 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordM 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordN 8AC=>: Word.Picture.80, 8AC=>: Microsoft Word,/ 0`DTimes New RomanTTLR ܖ 0ܖDVerdanaw RomanTTLR ܖ 0ܖ" DWingdingsRomanTTLR ܖ 0ܖ0DGaramondRomanTTLR ܖ 0ܖ@DArialndRomanTTLR ܖ 0ܖ"PDTimes New Roman CyrLR ܖ 0ܖ`DTahomaew Roman CyrLR ܖ 0ܖ"pDCourier Newman CyrLR ܖ 0ܖ1 C . @n?" dd@  @@`` t^   FHGH  """""""""" $#'n #"   5$ -!"#$%&)*,G- BCrsvwyz{|}~ 2$K6履xX2$lwHץrDM/{2$~7MnǜgP b$9e1U\B4<2$f厓 p(2$(W2r c1r42$&m]6fη<9 ;2$MU66 ހԑW);G2$eHǹGMJ 0e0e A@A5%8c8c     ?1d0u0@Ty2 NP'p<'p@A)BCD|E? fYYf i3f@8  g4adadT  0ppp@  R ʚ;>a8ʚ;<4!d!d  x 0 <4dddd  x 0 0___PPT10 ppN___PPT90(? -O =T?5@0F8>==K5 A8AB5<K: 0A?5:BK ?0@0;;5;87<0+@@>F5AAK 8 ?>B>:8. ;0=8@>20=85.!Z!f"5<0 >1AC645=8O@>3@0<<8ABK A>740NB ?@>3@0<<K >;L7>20B5;8 70?CA:0NB ?@>3@0<<K =0 8A?>;=5=85 'B> ?@54AB02;O5B A>1>9 >1J5:B 8A?>;=5=8O 2 !?g"1J5:B 8A?>;=5=8O$1J5:B, ?@54AB02;ONI89 ?@8:;04=CN ?@>3@0<<C 2 A>AB>O=88 2K?>;=5=8O, 2:;NG05B 4@5A=>5 ?@>AB@0=AB2>, 2K45;5==>5 4;O 2K?>;=5=8O ?@>3@0<<K >4 2K?>;=ONI59AO ?@>3@0<<K 0==K5 2K?>;=ONI59AO ?@>3@0<<K !B5: 8 C:070B5;L =0 53> 25@H8=C (stack pointer, SP) K45;5==K5 @5AC@AK ! (>B:@KBK5 D09;K, CAB0=>2;5==K5 A5B52K5 A>548=5=8O 8 B.4.) @>3@0<<=K9 AG5BG8: (instruction pointer, IP), C:07K20NI89 =0 A;54CNICN 2K?>;=O5<CN 8=AB@C:F8N "5:CI85 7=0G5=8O @538AB@>2 >1I53> =07=0G5=8O 1J5:B 8A?>;=5=8O ?@54AB02;5= 42C<O ?>=OB8O<8: ?@>F5AA 8 ?>B>: vMPP@PM/D i 2 m#@>F5AA@>F5AA - 01AB@0:F8O, ?@54AB02;ONI0O ?@>3@0<<C 2> 2@5<O 55 2K?>;=5=8O @>F5AAC ! 2K45;O5B @5AC@AK, =5>1E>48<K5 4;O 2K?>;=5=8O ?@>3@0<<K, =0?@8<5@: 04@5A=>5 ?@>AB@0=AB2> ?@>F5AA0 A>45@68B 53> ?@>3@0<<=K9 :>4, 40==K5 8 AB5: (8;8 AB5:8) D09;K 8A?>;L7CNBAO ?@>F5AA>< 4;O GB5=8O 2E>4=KE 40==KE 8 70?8A8 2KE>4=KE CAB@>9AB20 22>40-2K2>40 8A?>;L7CNBAO 2 A>>B25BAB288 A 8E =07=0G5=85< @>F5AA  ?0AA82=K9 >1J5:B  2;045;5F @5AC@A>2, :>=B59=5@ 4;O 2K?>;=5=8O ?>B>:>2ZZZQZI*>B>: / =8BL (thread)  >B>: - 01AB@0:F8O, ?@54AB02;ONI0O ?>A;54>20B5;L=>5 2K?>;=5=85 :><0=4 ?@>3@0<<K, @0725@BK20NI55AO 2> 2@5<5=8 @>F5AA <>65B 8<5BL =5A:>;L:> ?>B>:>2 ?>B>:8 A>2<5AB=> 8A?>;L7CNB 3;>10;L=K5 8 AB0B8G5A:85 ?5@5<5==K5 (@0A?>;030NBAO 2 @538>=5 40==KE) 48=0<8G5A:8 @0A?@545;O5<CN ?0<OBL (:CGC) A8AB5<=K5 @5AC@AK, 2K45;5==K5 ?@>F5AAC :064K9 ?>B>: 8<55B A2>8 A>1AB25==K5 ?@>3@0<<=K9 AG5BG8: (IP) 7=0G5=8O @538AB@>2 ;>:0;L=K5 ?5@5<5==K5 (B.5. A2>9 A>1AB25==K9 AB5:) @>F5AA - A>2>:C?=>ABL 2708<>459AB2CNI8E ?>B>:>2 8 2K45;5==KE 5<C @5AC@A>2PPP$P^PKP$^  K| h"@>F5AAK 8 ?>B>:8i.@>F5AA A >4=8< ?>B>:><j<@>F5AA A =5A:>;L:8<8 ?>B>:0<8kX0G5< =C6=K ?@>F5AAK A =5A:>;L:8<8 ?>B>:0<8?;O ?0@0;;5;L=>9 >1@01>B:8 =5A:>;L:8E >4=>B8?=KE 70?@>A>2 (A5B52K5 A5@28AK) ;O @0745;5=8O 8A?>;=8B5;L=KE 0:B82=>AB59, ?0@0;;5;L=> @5H0NI8E @07;8G=K5 7040G8 >15A?5G5=85 ?>;L7>20B5;LA:>3> 8=B5@D59A0 <0B5<0B8G5A:85 2KG8A;5=8O D>=>20O ?5G0BL & ;O A>740=8O ?0@0;;5;L=KE ?@>3@0<<, MDD5:B82=> 8A?>;L7CNI8E 0??0@0B=K5 @5AC@AK (=0?@8<5@, =5A:>;L:> 0??0@0B=> 8<5NI8EAO &) ;O C;CGH5=8O AB@C:BC@K ?@>3@0<<KBPTPPTll=>3>?>B>G=0O ?@>3@0<<0 vs. 708<>459AB2CNI85 ?@>F5AAK77$ @8 8A?>;L7>20=88 ?>B>:>2 M:>=><OBAO @5AC@AK (2A5 ?>B>:8 >4=>3> ?@>F5AA0 ?>;L7CNBAO >4=8< =01>@>< @5AC@A>2) M:>=><8BAO 2@5<O (>?5@0F88 A>740=8O/C=8GB>65=8O ?>B>:0 =0<=>3> <5=55 70B@0B=K, G5< >?5@0F88 A>740=8O/C=8GB>65=8O ?@>F5AA0) 2708<>459AB285 <564C ?>B>:0<8 >4=>3> ?@>F5AA0 1>;55 C4>1=> 8 MDD5:B82=> ?> ?@8G8=5 8A?>;L7>20=8O >1I59 ?0<OB8.Z;Z;& o !>AB>O=8O ?>B>:0rH!>AB>O=8O ?>B>:0 2 <=>3>7040G=>9 !& sH!>AB>O=8O ?>B>:0 2 <=>3>7040G=>9 !& 2K?>;=5=85  A>AB>O=85 @01>B0NI53> ?>B>:0  >1;040NI53> 2A5<8 =5>1E>48<K<8 @5AC@A0<8, 2 B>< G8A;5 2>7<>6=>ABLN 8A?>;L7>20=8O & >B>2 : 2K?>;=5=8N  ?>B>: >1;0405B 2A5<8 =5>1E>48<K<8 4;O 2K?>;=5=8O @5AC@A0<8 70 8A:;NG5=85< @5AC@A0 "2@5<O &" 6840=85 (A>=, 1;>:8@>2:0)  2K?>;=5=85 ?>B>:0 701;>:8@>20=> 4> =0ABC?;5=8O =5:>B>@>3> 2=5H=53> A>1KB8O (=0?@8<5@, ?>ABC?;5=8O 2E>4=KE 40==KE 8;8 >A2>1>645=8O @5AC@A0)NP v`tF!>AB>O=8O ?>B>:0 2 <=>3>7040G=>9 !r(2,3) - >ACI5AB2;ONBAO O4@>< >?5@0F8>==>9 A8AB5<K (?;0=8@>2I8:><) (4) - ?@>4>;65=85 @01>BK =52>7<>6=> 4;O ?@>4>;65=8O @01>BK B@51C5BAO =0ABC?;5=85 :0:>3>-;81> A>1KB8O ?>B>: 70B@51>20; =54>ABC?=K9 2 40==K9 <><5=B @5AC@A ?>B>: ?5@52>48BAO 2 A>AB>O=85 >6840=8O O4@>< >?5@0F8>==>9 A8AB5<K 2> 2@5<O >1@01>B:8 A8AB5<=>3> 2K7>20 ?>B>: 701;>:8@>20= 2=5H=8< ?> >B=>H5=8N : =5<C 2K7>2>< (5) - ?@>872>48BAO O4@>< ! 2 <><5=B 2K?>;=5=8O CA;>28O >6840=8OXfPPAP3 &Am<#?@02;5=85 ?@>F5AA0<8/?>B>:0<8u<#?@02;5=85 ?@>F5AA0<8/?>B>:0<8!B@C:BC@K, >?8AK20NI85 ?@>F5AAK 8 ?>B>:8 2 O4@5 ! ?5@0F88 =04 ?@>F5AA0<8 8 ?>B>:0<8 0A?@545;5=85 @5AC@A>2 <564C ?@>F5AA0<8/?>B>:0<8 2@5<O F5=B@0;L=>3> ?@>F5AA>@0 (2K45;O5BAO ?>B>:0<) >?5@0B82=0O ?0<OBL (2K45;O5BAO ?@>F5AA0<) 4@C385 @5AC@AK (:0: ?@028;>, 2K45;ONBAO ?@>F5AA0<) =B5@D59A ?@8:;04=KE ?@>3@0<< (G0AB=K5 @50;870F88)BZZ3Z3 ">=B5:AB ?@>F5AA0>=B5:AB  <=>65AB2> 8=D>@<0F88, ?>;=>ABLN >?8AK20NI55 A>AB>O=85 >1J5:B0 (2 G0AB=>AB8, 4>AB0B>G=>5 4;O 2>AAB0=>2;5=8O >1J5:B0 2 A;CG05 53> C40;5=8O) >=B5:AB ?@>F5AA0 2:;NG05B =>65AB2> 8=D>@<0F88, 8A?>;L7C5<>5 >?5@0F8>==>9 A8AB5<>9 4;O C?@02;5=8O @5AC@A>< B8?0 ?@>F5AA 4@5A=>5 ?@>AB@0=AB2> ?@>F5AA0 !B@C:BC@C 8 A>45@68<>5 ?>;L7>20B5;LA:>9 G0AB8 04@5A=>3> ?@>AB@0=AB20 ?@>F5AA0 =>65AB2> @5AC@A>2, 8A?>;L7C5<KE ?@>F5AA>< 8;8 ?@8=04;560I8E ?@>F5AAC, 8 8E A>AB>O=8O.Z%Z%!>=B5:AB ?>B>:0>=B5:AB ?>B>:0 2:;NG05B =>65AB2> 8=D>@<0F88, 8A?>;L7C5<>5 >?5@0F8>==>9 A8AB5<>9 4;O C?@02;5=8O @5AC@A>< B8?0 ?>B>: =>65AB2> @5AC@A>2, 8A?>;L7C5<KE ?>B>:>< 8;8 ?@8=04;560I8E ?>B>:C 8 8E A>AB>O=8O ??0@0B=K9 :>=B5:AB 8A?>;=5=8O ?>B>:0*$4??0@0B=K9 :>=B5:AB ?>B>:0!>AB>O=85 ?@>F5AA>@0 A B>G:8 7@5=8O ?@54>AB02;O5<KE ?>B>:C ?@02 53> 8A?>;L7>20=8O 2 :>=:@5B=>9 ! (>1KG=> ?@54AB02;O5BAO <=>65AB2>< 4>ABC?=K< ?>B>:C @538AB@>2 ?@>F5AA>@0 8 8E B5:CI8<8 7=0G5=8O<8) !>AB>O=85 4@C38E CAB@>9AB2 2 A;CG05, 5A;8 C?@02;5=85 8<8 >ACI5AB2;O5BAO =5?>A@54AB25==> =0 C@>2=5 :><0=4 ?@>3@0<<K, 0 =5 G5@57 8=B5@D59A 4>ABC?0 : CAB@>9AB20< G5@57 2K?>;=5=85 A8AB5<=KE 2K7>2>2 !Zn,5@5:;NG5=85 :>=B5:AB05@5:;NG5=85 :>=B5:AB0 ?@>8AE>48B ?@8 ?5@5E>45 : 8A?>;=5=8N 4@C3>3> ?>B>:0 (2>7<>6=>, 4@C3>3> ?@>F5AA0) @8 ?5@5:;NG5=88 :>=B5:AB0 =5>1E>48<> A>E@0=8BL :>=B5:AB 2KB5A=O5<>3> ?>B>:0 5A;8 ?>B>:, 2K1@0==K9 =0 8A?>;=5=85, ?@8=04;568B 4@C3><C ?@>F5AAC A>E@0=8BL :>=B5:AB ?@>F5AA0  2;045;LF0 2KB5A=O5<>3> ?>B>:0 703@C78BL :>=B5:AB ?@>F5AA0  2;045;LF0 ?>B>:0, 2K1@0==>3> =0 8A?>;=5=85 703@C78BL :>=B5:AB ?>B>:0, 2K1@0==>3> =0 8A?>;=5=85 ;O >?8A0=8O ?@>F5AA>2 8 ?>B>:>2 (2 B>< G8A;5 4;O E@0=5=8O 8E :>=B5:AB>2) 2 O4@5 ! 22>4OBAO A?5F80;L=K5 AB@C:BC@K  45A:@8?B>@K ?@>F5AA0 8 ?>B>:0|PiP P4PPi4  v&5A:@8?B>@ ?@>F5AA045=B8D8:0B>@ ?@>F5AA0 @C??>2K5 ?0@0<5B@K ?@>F5AA0 0@0<5B@K, 8A?>;L7C5<K5 2 ?@>F5AA5 >?@545;5=8O ?@8>@8B5B0 ?@>F5AA0 ?@8 :>=:C@5=F88 70 :0:>9-;81> @5AC@A !>AB>O=85 ?@>F5AA0 !B0B8AB8G5A:85 40==K5 ?8A0=85 04@5A=>3> ?@>AB@0=AB20 ?@>F5AA0 >=B5:AB 22>40-2K2>40 >=B5:AB 157>?0A=>AB8 "5:CI85 A8AB5<=K5 ?0@0<5B@K 2K?>;=5=8O >4 7025@H5=8O ?@>F5AA0  Linux 45A:@8?B>@ ?@>F5AA0  AB@C:BC@0 task_struct (include/linux/sched.h), A>45@68B >:>;> 100 ?>;59!$ZPhPvZ ! w"5A:@8?B>@ ?>B>:045=B8D8:0B>@ ?>B>:0 45=B8D8:0B>@ ?@>F5AA0  2;045;LF0 ?>B>:0 0@0<5B@K, 8A?>;L7C5<K5 2 ?@>F5AA5 >?@545;5=8O ?@8>@8B5B0 ?>B>:0 ?@8 :>=:C@5=F88 70 :0:>9-;81> @5AC@A !B0B8AB8G5A:85 40==K5 ?>B>:0 ??0@0B=K9 :>=B5:AB 2K?>;=5=8O ?>B>:0 (?@>3@0<<=K9 AG5BG8:, AB5: 8 C:070B5;L =0 53> 25@H8=C, 7=0G5=8O @538AB@>2) >4 7025@H5=8O ?>B>:0IZIxHB> C?@02;O5B ?@>F5AA0<8 8 ?>B>:0<8?B0 C?@02;5=85 ?@>F5AA0<8 2A5340 >B25G05B O4@> ! /4@> 2A5340 ?@54>AB02;O5B :064><C ?@>F5AAC >48= ?>B>:, => =5 2A5340 ?>445@68205B <=>3>?>B>G=>ABL ?>B>:8, =5?>A@54AB25==> C?@02;O5<K5 O4@>< !, =07K20NBAO ?>B>:0<8 O4@0 >6=> @50;87>20BL <=>3>?>B>G=>ABL 2 181;8>B5:5 ?>;L7>20B5;LA:>3> C@>2=O!<GIGI,Z('P>B>:8 O4@0 vs. ?>;L7>20B5;LA:85 ?>B>:8&   yN>B>:8 O4@0 vs. ?>;L7>20B5;LA:85 ?>B>:8  J@8 8A?>;L7>20=88 ?>;L7>20B5;LA:8E ?>B>:>2 (+) ?5@0F88 =04 ?>B>:0<8 2K?>;=ONBAO 157 2K?>;=5=8O A8AB5<=KE 2K7>2>2 (2 10-100 @07 1KAB@55, G5< ?@8 8A?>;L7>20=88 ?>B>:>2 O4@0) (+) >6=> @50;87>20BL A>1AB25==K9 0;3>@8B< ?;0=8@>20=8O (-) /4@> =8G53> =5 7=05B > ?>B>:0E ?>;L7>20B5;LA:>3> C@>2=O 8 @0A?@545;O5B 2@5<O & =57028A8<> >B 8E :>;8G5AB20 2 ?@>F5AA5 (-) A;8 1C45B 2K?>;=5= 1;>:8@CNI89 A8AB5<=K9 2K7>2 (=0?@8<5@, 2K720=0 A8=E@>==0O >?5@0F8O 22>40-2K2>40), 2 A>AB>O=85 >6840=8O ?5@52>48BAO ?>B>: O4@0, 8A?>;L7>202H89AO 4;O >15A?5G5=8O 2K?>;=5=8O =5A:>;L:8E (8;8 2A5E) ?>;L7>20B5;LA:8E ?>B>:>2. !>>B25BAB25==>, 2K?>;=5=85 2A5E MB8E ?>;L7>20B5;LA:8E ?>B>:>2 1C45B 701;>:8@>20=>..+P{P+{zD?5@0F88 =04 ?@>F5AA0<8 8 ?>B>:0<8{"!>740=85 ?@>F5AA0!>740BL 45A:@8?B>@ ?@>F5AA0 8 ?><5AB8BL 53> 2 B01;8FC ?@>F5AA>2 @>8=8F80;878@>20BL 7=0G5=8O ?>;59 >1I53> =07=0G5=8O 45A:@8?B>@0 ?@>F5AA0 !>740BL 28@BC0;L=>5 04@5A=>5 ?@>AB@0=AB2> () ?@>F5AA0 8 AD>@<8@>20BL 53> AB@C:BC@C 0?>;=8BL =5>1E>48<K<8 40==K<8  ?@>F5AA0 (@07<5AB8BL 2 =5< :>4, 40==K5 8 B.4.) K45;8BL ?@>F5AAC @5AC@AK, :>B>@K5 >= <>65B 8A?>;L7>20BL A@07C ?>A;5 A>740=8O ?>25AB8BL ?>4A8AB5<K, ?@8=8<0NI85 CG0AB85 2 C?@02;5=88 ?@>F5AA0<8, > A>740=88 =>2>3> ?@>F5AA0 !>740BL ?5@28G=K9 ?>B>: ?@>F5AA0P|"!>740=85 ?@>F5AA0}!>740=85 ?>B>:0r!>740BL 45A:@8?B>@ ?>B>:0 8 ?><5AB8BL 53> 2 B01;8FC ?>B>:>2 @>8=8F80;878@>20BL 7=0G5=8O ?>;59 >1I53> =07=0G5=8O 45A:@8?B>@0 ?>B>:0 !>740BL >1;0AB8 40==KE, =5>1E>48<K5 4;O DC=:F8>=8@>20=8O ?>B>:0 2 40==>9 0??0@0B=>9 0@E8B5:BC@5 =8F80;878@>20BL ?>;5 45A:@8?B>@0 0??0@0B=K9 :>=B5:AB 2K?>;=5=8O ?>B>:0 ?>25AB8BL ?>4A8AB5<K, ?@8=8<0NI85 CG0AB85 2 C?@02;5=88 ?>B>:0<8, > A>740=88 =>2>3> ?>B>:0 5@525AB8 ?>B>: 2 A>AB>O=85 3>B>2 : 2K?>;=5=8NP~!>740=85 ?>B>:0"025@H5=85 ?>B>:0!>E@0=8BL AB0B8AB8G5A:85 40==K5 ?>B>:0 8 :>4 2>72@0B0 2 53> 45A:@8?B>@5 5@525AB8 2A5 @5AC@AK, ?@8=04;560I85 ?>B>:C, 2 =5?@>B82>@5G82>5 8 AB018;L=>5 A>AB>O=85 A2>1>48BL 2A5 @5AC@AK, ?@8=04;5602H85 ?>B>:C 8;8 8A?>;L7>202H85AO ?>B>:>< ?>25AB8BL ?>4A8AB5<K, ?@8=8<0NI85 CG0AB85 2 C?@02;5=88 ?>B>:0<8, > 7025@H5=88 ?>B>:0 #AB0=>28BL A>AB>O=85 ?>B>:0 2 7=0G5=85 7025@H5= A;8 40==K9 ?>B>: O2;O5BAO ?>A;54=8< 0:B82=K< ?>B>:>< 2 ?@>F5AA5  7025@H8BL ?@>F5AA >A;5 2K?>;=5=8O 2A5E 459AB289 >AB05BAO 45A:@8?B>@ ?>B>:0, A>45@60I89 53> :>4 2>72@0B0 8 AB0B8AB8G5A:85 40==K5; <><5=B C=8GB>65=8O 45A:@8?B>@0 7028A8B >B @50;870F88$PPn &025@H5=85 ?@>F5AA0025@H8BL 2K?>;=5=85 2A5E ?>B>:>2 ?@>F5AA0 !>E@0=8BL AB0B8AB8G5A:85 40==K5 ?@>F5AA0 8 :>4 2>72@0B0 2 53> 45A:@8?B>@5 5@525AB8 2A5 @5AC@AK, ?@8=04;560I85 ?@>F5AAC, 2 =5?@>B82>@5G82>5 8 AB018;L=>5 A>AB>O=85 A2>1>48BL 2A5 @5AC@AK, ?@8=04;5602H85 ?@>F5AAC 8;8 8A?>;L7>202H85AO ?@>F5AA>< A2>1>48BL  8 C=8GB>68BL 53> ?>25AB8BL ?>4A8AB5<K, ?@8=8<0NI85 CG0AB85 2 C?@02;5=88 ?@>F5AA0<8, > 7025@H5=88 ?@>F5AA0 #AB0=>28BL A>AB>O=85 ?@>F5AA0 2 7=0G5=85 7025@H5= >A;5 2K?>;=5=8O 2A5E 459AB289 >AB05BAO 45A:@8?B>@ ?@>F5AA0, A>45@60I89 53> :>4 2>72@0B0 8 AB0B8AB8G5A:85 40==K5; <><5=B C=8GB>65=8O 45A:@8?B>@0 7028A8B >B @50;870F88$PPs H!>740=85/7025@H5=85 ?@>F5AA0  Win32 pBOOL CreateProcess( LPCTSTR lpszImageName, LPCTSTR lpszCommandLine, LPSECURITY_ATTRIBUTES lpsaProcess, LPSECURITY_ATTRIBUTES lpsaThread, BOOL fInheritHandles, DWORD fdwCreate, LPVOID lpvEnvironment, LPTSTR lpszCurDir, LPSTARTUPINFO lpsiStartInfo, LPPROCESS_INFORMATION lppiProcInfo); VOID ExitProcess(UINT fuExitCode); BOOL TerminateProcess( HANDLE hProcess, UINT uExitCode ); ?8A0=85 DC=:F89 <>6=> =09B8 2 MSDN 8 2 @01>B5 [2]$P4                      !     NSTARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); CreateProcess( NULL, // No module name (use command line). TEXT("MyChildProcess"),// Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. FALSE, // Set handle inheritance to FALSE. 0, // No creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi ); // Pointer to PROCESS_INFORMATION structure. // Wait until child process exits. WaitForSingleObject( pi.hProcess, INFINITE ); // Close process and thread handles. CloseHandle( pi.hProcess ); CloseHandle( pi.hThread );OPO                    D!>740=85/7025@H5=85 ?>B>:0  Win32 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId); VOID ExitThread(DWORD dwExitCode); BOOL TerminateThread( HANDLE hThread, DWORD dwExitCode); ?8A0=85 DC=:F89 <>6=> =09B8 2 MSDN 8 2 @01>B5 [2]$SP5,                                     !     int GlobalVar = 0; DWORD WINAPI ThreadProc( LPVOID arg ){ *(int*)arg = *(int*)arg + 1; ExitThread(0); } int main(void){ int i; HANDLE Threads[10]; for( i = 0; i < 10; i ++ ){ Threads[i] = CreateThread(NULL, 0, ThreadProc, (LPVOID)&GlobalVar, 0, NULL); } for( i = 0; i < 10; i ++ ){ WaitForSingleObject(Threads[i],INFINITE); } return 0; }P                                            H!>740=85/7025@H5=85 ?@>F5AA0  UNIX& %%$ !>740=85 :>?88 ?@>F5AA0 int fork(void); A?>;L7>20=85 @5AC@A>2 ?@>F5AA0 4;O 2K?>;=5=8O C:070==>9 ?@>3@0<<K int exec*(char *path, char* argv[], char **env); 025@H5=85 ?@>F5AA0 void exit(int status); 6840=85 7025@H5=8O ?@>F5AA0-?>B><:0 int wait(int *status); ?8A0=85 DC=:F89 <>6=> =09B8 2 4>:C<5=B0F88 UNIX (man 8;8 info) 8 2 @01>B5 [3]SPST     C           %     .      F!>740=85/7025@H5=85 ?@>F5AA0  UNIX$$$ @/* @>3@0<<0, A>740NI0O ?@>F5AA-?>B><>: 8 70?CA:0NI0O 2 ?>B><:5 4@C3CN ?@>3@0<<C */ int ChildPID, ChildRetCode, RetCode=0; ChildPID = fork(); if( ChildPID == 0 )/*child process*/ exec*(progname,& ); else /*parent process*/ wait(&ChildRetCode); /* more parent code */ exit(RetCode);!Z! P                         B>38@>F5AAK 8 ?>B>:8  >1J5:BK, ?@54AB02;ONI85 ?@>3@0<<K 2> 2@5<O 8E 2K?>;=5=8O @>F5AA  ?0AA82=K9 >1J5:B, 2;045;5F @5AC@A>2 >B>:  0:B82=K9 >1J5:B ! B>G:8 7@5=8O !, ?@>F5AAK 8 ?>B>:8  A?5F8D8G=K5 B8?K @5AC@A>2, B@51CNI85 A?5F80;L=>3> C?@02;5=8O8Z;0=8@>20=85 &"5<0 >1AC645=8O^>B>:0< 4;O 2K?>;=5=8O =C65= F5=B@0;L=K9 ?@>F5AA>@ (&) A;8 ?>B>:>2 1>;LH5, G5< ?@>F5AA>@>2, ! 4>;6=0 >15A?5G8BL 2>7<>6=>ABL ?>>G5@54=>3> 8A?>;L7>20=8O ?@>F5AA>@>2 ?>B>:0<8 2'B> B0:>5 "?;0=8@>20=85"?x;0=8@>20=85  @0A?@545;5=85 2@5<5=8 F5=B@0;L=>3> ?@>F5AA>@0=Z=2'B> B0:>5 "?;0=8@>20=85"?$;0=8@>20=85  @0A?@545;5=85 2@5<5=8 F5=B@0;L=>3> ?@>F5AA>@0 ;0=8@>20=85 1K205B 4>;3>A@>G=>5  ?@8=OB85 @5H5=89 > 70?CA:5 8 >B:;04K20=88 70?CA:0 7040=89 A@54=5A@>G=>5  ?@8=OB85 @5H5=89 > 2@5<5==>< 2KB5A=5=88 ?@>F5AA>2 =0 48A: :@0B:>A@>G=>5 (48A?5BG5@870F8O)  2K1>@ ?>B>:0, :>B>@><C A;54C5B ?@54>AB028BL & @8 @50;870F88 ?;0=8@>20=8O 8A?>;L7C5BAO <5E0=87< ?5@5:;NG5=8O :>=B5:AB>2 ?@>F5AA>2 8 ?>B>:>2BQZZ^ZQ^0@0D8: 2K?>;=5=8O ?>B>:02 5A;8 ?>B>:>2 =5A:>;L:>? 2 5A;8 ?>B>:>2 =5A:>;L:>?!R@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O& **$\1I85 :@8B5@88 !?@0254;82>ABL  2A5< 2K45;O5BAO @02=>5 :>;8G5AB2> 2@5<5=8 & 0;0=A  >15A?5G5=85 703@C7:8 2A5E CAB@>9AB2 A8AB5<K 0:;04=K5 @0AE>4K  ?@>F5=B @5AC@A>2, ?>B@51;O5<KE ?;0=8@>2I8:>< 0AHB018@C5<>ABL  C25;8G5=85 ?>B@51;5=8O @5AC@A>2 ?;0=8@>2I8:>< ?@8 C25;8G5=88 G8A;0 >1J5:B>2 ?;0=8@>20=8OZ Z0/0\\"P@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O& ))$!?@0254;82>ABL  2A5< 2K45;O5BAO @02=>5 :>;8G5AB2> 2@5<5=8 & 0: 87<5@8BL A?@0254;82>ABL? 48=0:>2>5 2@5<O ?>B@51;5=8O &? 48=0:>2>5 :>;8G5AB2> 2K?>;=5==KE :><0=4? '5AB=> =0 C@>2=5 ?>B>:>2? ?@>F5AA>2? ?>;L7>20B5;59? 'B> 5A;8 >48= ?@>F5AA >3@0=8G5= 2>7<>6=>ABO<8 &, 0 4@C3>9  2>7<>6=>ABO<8 22>40-2K2>40? =>340 =C6=> 1KBL =5A?@0254;82K< 8 O2=> >:07K20BL ?@54?>GB5=85 =5:>B>@K< >?@545;5==K< :;0AA0< ?>B>:>2/70?@>A>2/A>1KB89 (8<5BL A8AB5<C ?@8>@8B5B>2), =>& A;54C5B 871530BL 3>;>40=8O (starvation)  A8BC0F88, :>340 =5:>B>@K< ?>B>:0< ?@>F5AA>@ <>65B =5 2K45;OBLAO 2 B5G5=88 =5>3@0=8G5==>3> 2@5<5=8>PPKPP>K6  f b#P@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O& ))$8!8AB5<K ?0:5B=>9 >1@01>B:8 40==KE @>?CA:=0O A?>A>1=>ABL  A@54=55 G8A;> 7040=89, ?>;=>ABLN 2K?>;=O5<KE 2 548=8FC 2@5<5=8 (G0A, ACB:8,& ) 1>@>B=>5 2@5<O  A@54=55 2@5<O <564C 70?CA:>< 7040=8O 8 7025@H5=85< 53> >1@01>B:8 -DD5:B82=>ABL  A@54=89 ?@>F5=B 703@C7:8 F5=B@0;L=>3> ?@>F5AA>@0h""QD 4$P@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O& ))$x=B5@0:B82=K5 A8AB5<K @5<O >B:;8:0  A@54=55 2@5<O <564C 2>7=8:=>25=85< A>1KB8O 8 7025@H5=85< 53> >1@01>B:8 @5<O >6840=8O  A@54=55 2@5<O <564C ?5@5E>4>< ?>B>:0 87 A>AB>O=8O ">6840=85" 2 A>AB>O=85 "3>B>2 : 2K?>;=5=8N" 8 ?@54>AB02;5=85< 5<C & !>@07<5@=>ABL  A>>B25BAB285 ?@>872>48B5;L=>AB8 >6840=8O< ?>;L7>20B5;OlZ&Z Jz :%P@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O ))$l!8AB5<K @50;L=>3> 2@5<5=8 :>=G0=85 >1A;C6820=8O : A@>:C @54A:07C5<>ABL  A>1;N45=85 2@5<5==KE >3@0=8G5=89 ?@8 2K?>;=5=88 =5:>B>@>3> 70@0=55 >3>2>@5==>3> <=>65AB20 A8AB5<=KE 2K7>2>2PY&(><5=BK ?;0=8@>20=8O!>740=85 =>2>3> ?@>F5AA0 !>740=85 =>2>3> ?>B>:0 025@H5=85 ?>B>:0 8;8 ?@>F5AA0 ;>:8@>20=85 ?>B>:0 (?5@5E>4 87 A>AB>O=8O "2K?>;=5=85" 2 A>AB>O=85 ">6840=85") 071;>:8@>20=85 ?>B>:0 (?5@5E>4 87 A>AB>O=8O ">6840=85" 2 A>AB>O=85 "3>B>2 : 2K?>;=5=8N") !@010BK20=85 B09<5@0P'J52KB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O& &&$ >K18@0NB ?>B>:, ?5@540NB 5<C F5=B@0;L=K9 ?@>F5AA>@ 8 ?>72>;ONB @01>B0BL 2?;>BL 4> 1;>:8@>2:8 ;81> 4> B>3> <><5=B0, :>340 ?>B>: A0< >B40AB F5=B@0;L=K9 ?@>F5AA>@(H52KB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O )FKB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O& $$$K18@0NB ?>B>: 8 ?>72>;ONB 5<C @01>B0BL =5:>B>@>5 <0:A8<0;L=> 2>7<>6=>5 D8:A8@>20==>5 2@5<O. A;8 : :>=FC 7040==>3> 8=B5@20;0 2@5<5=8 ?>B>: 2A5 5I5 @01>B05B, >= ?@8>AB0=02;8205BAO, 8 C?@02;5=85 ?5@5E>48B : 4@C3><C ?>B>:C (5A;8 ACI5AB2C5B ?>B>:, 3>B>2K9 : 8A?>;=5=8N). KB5A=ONI55 ?;0=8@>20=85 B@51C5B ?@5@K20=89 ?> B09<5@C, ?@>8AE>4OI8E 2 :>=F5 >B2545==>3> ?5@8>40 2@5<5=8. @8 >BACBAB288 B09<5@0 2>7<>6=0 @50;870F8O B>;L:> =52KB5A=ONI8E 0;3>@8B<>2.Z  *FKB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O& $$$+FKB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O& $$$,KB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O =0 <=>3>?@>F5AA>@=KE A8AB5<0EAPA$-TFirst Come  First Served (FCFS 8;8 FIFO)& ++$p  52KB5A=ONI89 ;0=8@>2I8: ?>445@68205B >G5@54L 3>B>2KE : 2K?>;=5=8N ?>B>:>2 8 ?@54>AB02;O5B & ?5@2><C ?>B>:C 87 >G5@548 @8 ?5@5E>45 2 A>AB>O=85 "3>B>2 : 2K?>;=5=8N" ?>B>: ?><5I05BAO 2 :>=5F >G5@548 .RFirst Come  First Served (FCFS 8;8 FIFO)**$p  /Shortest Job First (SJF)$J 52KB5A=ONI89 ;0=8@>2I8: 2K18@05B =0 2K?>;=5=85 A0<CN :>@>B:CN 7040GC >E>6 =0 FCFS, => 4;O :064>3> ?>B>:0 22>48BAO 4>?>;=8B5;L=0O E0@0:B5@8AB8:0  >68405<>5 2@5<O 2K?>;=5=8O, 8 ?>B>:8 2 >G5@548 3>B>2KE : 2K?>;=5=8N >BA>@B8@>20=K 2 ?>@O4:5 C25;8G5=8O 55 7=0G5=8O 2B><0B8G5A:8 >?@545;8BL 2@5<O 2K?>;=5=8O ?@>3@0<<K =52>7<>6=>, A;54>20B5;L=>, 53> 4>;65= 704020BL ?>;L7>20B5;L, 70?CA:0NI89 ?@>3@0<<C.HZHZHH 0Shortest Remaining Time (SRT):  52KB5A=ONI89 ;0=8@>2I8: 2K18@05B =0 2K?>;=5=85 7040GC, 8<5NICN =08<5=LH55 ?;0=8@C5<>5 2@5<O 4> >:>=G0=8O 2K?>;=5=8O # :064>3> ?>B>:0 2 4>?>;=8B5;L=K5 E0@0:B5@8AB8:8  >68405<>5 2@5<O 2K?>;=5=8O 8 C65 ?>B@51;5==>5 2@5<O &*vZjZvj  1Round Robin (RR) 8RR - 2KB5A=ONI89 0=0;>3 FCFS(  2/Shortest Remaining Processing Time first (SRPT)00$((  @KB5A=ONI89 !G8B05BAO, GB> :064K9 ?>B>: >1@010BK205B ?>A;54>20B5;L=>ABL 70?@>A>2 ;O :064>3> ?>B>:0 2KG8A;O5BAO E0@0:B5@8AB8:0, >F5=820NI0O 2@5<O >1@01>B:8 >4=>3> 70?@>A0. 0?@8<5@: T(0)=0, T(n+1) = a*t(n) + (1- a)*T(n) T(n)  7=0G5=85 E0@0:B5@8AB8:8 ?>A;5 2K?>;=5=8O n->3> 70?@>A0 t(n)  2@5<O >1@01>B:8 n->3> 70?@>A0 a  :>MDD8F85=B (0 d" a d" 1) 0 2K?>;=5=85 2K18@05BAO ?>B>: A <8=8<0;L=K< 7=0G5=85< E0@0:B5@8AB8:8BPPFPF44 v        )            F32@8>@8B5B=>5 ?;0=8@>20=85t5>1E>48< 48DD5@5=F8@>20==K9 ?>4E>4 : ?>B>:0<  A8AB5<5 <>3CB >4=>2@5<5==> ACI5AB2>20BL A;C651=K5 ?@>F5AAK 8 ?@>F5AAK, 70?CI5==K5 ?>;L7>20B5;O<8 >;L7>20B5;8 <>3CB @07;8G0BLAO ?> AB0BCAC&..- 42@8>@8B5B=>5 ?;0=8@>20=8552@8>@8B5B=>5 ?;0=8@>20=85@8 8A?>;L7>20=88 ?@8>@8B5B=>3> ?;0=8@>20=8O, 5A;8 2 A8AB5<5 2A5340 3>B>2 : 2K?>;=5=8N E>BO 1K >48= 87 2KA>:>?@8>@8B5B=KE ?>B>:>2, B> ?>B>:8 A =87:8<8 ?@8>@8B5B0<8 =8:>340 =5 1C4CB 2K?>;=5=K. >MB><C, :0: ?@028;>, 8A?>;L7CNBAO =5:>B>@K5 <>48D8:0F88 MB>3> 0;3>@8B<0. Z 64@8>@8B5B=>5 ?;0=8@>20=85&  <>48D8:0F8OE G0AB> @0745;ONB 107>2K9 ?@8>@8B5B ?>B>:0 8 MDD5:B82=K9 ?@8>@8B5B ?>B>:0 07>2K9 ?@8>@8B5B =07=0G05BAO ?>B>:C ?>A@54AB2>< =5:>B>@>3> A8AB5<=>3> 2K7>20, =0?@8<5@, 8=8F88@>20==>3> 2K?>;=5=85< :><0=4K ?>;L7>20B5;O -DD5:B82=K9 ?@8>@8B5B 8A?>;L7C5BAO ?;0=8@>2I8:>< ?@8 2K1>@5 ?>B>:>2 =0 8A?>;=5=85 8 <>65B 8< 87<5=OBLAO 2 A>>B25BAB288 A @50;87>20==K< 0;3>@8B<>< ?;0=8@>20=8ORWP)PWy72@8>@8B5B=>5 ?;0=8@>20=85;O ?@54>B2@0I5=8O 15A:>=5G=>9 @01>BK 2KA>:>?@8>@8B5B=KE ?>B>:>2 ?;0=8@>2I8: <>65B C<5=LH0BL A :064K< B0:B>< B09<5@0 MDD5:B82=K9 ?@8>@8B5B 2K?>;=ONI53>AO ?>B>:0 ;O ?@54>AB02;5=8O =87:>?@8>@8B5B=K< ?>B>:0< F5=B@0;L=>3> ?@>F5AA>@0 ?;0=8@>2I8: <>65B ?@>25@OBL 2@5<O, 2 B5G5=85 :>B>@>3> ?>B>: =0E>48;AO 2 A>AB>O=88 3>B>2=>AB8 : 8A?>;=5=8N >7<>6=> 040?B82=>5 8 48=0<8G5A:>5 87<5=5=85 ?@8>@8B5B>2 040?B82=>5 87<5=5=85  :>@@5:F8O MDD5:B82=KE ?@8>@8B5B>2 =0 >A=>20=88 =01>@0 ?@028; 48=0<8G5A:>5 87<5=5=85  @53C;O@=K9 ?5@5AG5B MDD5:B82=KE ?@8>@8B5B>2 =0 >A=>20=88 7=0G5=89 =5:>B>@>9 A>2>:C?=>AB8 ?0@0<5B@>2.PP8j;0=8@>20=85 A 8A?>;L7>20=85< <=>3>C@>2=52KE >G5@545966$9!Multi-Level Feedback Queue (MLFQ)! v@8 8A?>;L7>20=88 <=>3>C@>2=52KE >G5@5459 A >1@0B=>9 A2O7LN ?>B>: =5 ?>AB>O==> ?@8?8A0= : >?@545;5==>9 >G5@548, 0 <>65B <83@8@>20BL 87 >G5@548 2 >G5@54L 2 7028A8<>AB8 >B A2>53> ?>2545=8O :00@0<5B@K 0;3>@8B<0 MLFQ <>;8G5AB2> >G5@5459 4;O ?>B>:>2, =0E>4OI8EAO 2 A>AB>O=88 3>B>2 : 8A?>;=5=8N ;3>@8B< ?;0=8@>20=8O, 459AB2CNI89 <564C >G5@54O<8 ;3>@8B<K ?;0=8@>20=8O, 459AB2CNI85 2=CB@8 >G5@5459 @028;0 ?><5I5=8O @>482H53>AO ?>B>:0 2 >4=C 87 >G5@5459 @028;0 ?5@52>40 ?>B>:>2 87 >4=>9 >G5@548 2 4@C3CN P;@8<5@&  >;8G5AB2> >G5@5459: 4 ;3>@8B< ?;0=8@>20=8O, 459AB2CNI89 <564C >G5@54O<8: ?@8>@8B5B=>5 ?;0=8@>20=85 (?@8>@8B5BK 1-4, =082KAH89 ?@8>@8B5B - 4) ;3>@8B<K ?;0=8@>20=8O 2 >G5@54OE @.4. RR A @07<5@>< :20=B0 8 @.3. RR A @07<5@>< :20=B0 16 @.2. RR A @07<5@>< :20=B0 32 @.1. FCFS >2K9 ?>B>: ?>ABC?05B 2 >G5@54L A =082KAH8< ?@8>@8B5B><BZgZ8Zg8<@8<5@&  =@8<5@&  @028;0 ?5@52>40 ?>B>:>2 87 >4=>9 >G5@548 2 4@C3CN 5A;8 ?>B>: 87 >G5@548 @.4. =5 7025@H8; >1@01>B:C 4> 7025@H5=8O :20=B0, >= ?5@52>48BAO 2 >G5@54L @.3 5A;8 ?>B>: 87 >G5@548 @.3. =5 7025@H8; >1@01>B:C 4> 7025@H5=8O :20=B0, >= ?5@52>48BAO 2 >G5@54L @.2 5A;8 ?>B>: 87 >G5@548 @.2. =5 7025@H8; >1@01>B:C 4> 7025@H5=8O :20=B0, >= ?5@52>48BAO 2 >G5@54L @.1 ?>A;5 7025@H5=8O >6840=8O 22>40 A :;0280BC@K ?>B>:8 87 >G5@5459 @.1,2,3 ?5@52>4OBAO 2 >G5@54L @.4 ?>A;5 7025@H5=8O >?5@0F89 48A:>2>3> 22>40-2K2>40 ?>B>:8 87 >G5@5459 @.1,2 ?5@52>4OBAO 2 >G5@54L @.3 ?>A;5 7025@H5=8O >6840=8O 2A5E 4@C38E A>1KB89 ?>B>:8 87 >G5@548 @.1 ?5@52>4OBAO 2 >G5@54L @.2.3P\P3\> @8<5@ ?.;0=8@>20=85 2 Windows&  @,;0=8@>20=85 2 Windows A B>380!CI5AB2C5B =5A:>;L:> C@>2=59 ?;0=8@>20=8O !CI5AB2CNB @07;8G=K5 0;3>@8B<K ?;0=8@>20=8O ?@545;5=K :@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O (70G0ABCN ?@>B82>?>;>6=K5)  @50;L=KE A8AB5<0E @50;87CNBAO 381@84=K5 0;3>@8B<K, 8A?>;L7CNI85, : B><C 65, 040?B82=K5 8;8 48=0<8G5A:85 ?@8>@8B5BKP 8B5@0BC@0"0=5=10C< -. !>2@5<5==K5 >?5@0F8>==K5 A8AB5<K. 2-5 874.  !1.: 8B5@, 2002. 8EB5@ 6. Windows 4;O ?@>D5AA8>=0;>2 (!>740=85 MDD5:B82=KE Win32-?@8;>65=89 A CG5B>< A?5F8D8:8 64-@07@O4=>9 25@A88 Windows). 4-5 874.  .: CAA:0O 540:F8O; ?5@. A 0=3;.  !1.: 8B5@, 2001.n6 ObFF"5<0 A;54CNI59 ;5:F88 !8=E@>=870F8O$PD<@8<5@ <=>3>?>B>G=>9 ?@>3@0<<KE">AB0=>2:0 7040G8<55BAO 3;>10;L=0O ?5@5<5==0O, =04 :>B>@>9 >?@545;5=K 2 >?5@0F88 87<5=5=8O #25;8G5=85 =0 1 #<5=LH5=85 =0 1 >B>:8-C25;8G8B5;8 4>102;ONB : 7=0G5=8N ?5@5<5==>9 1 >B>:8-C<5=LH8B5;8 2KG8B0NB 87 7=0G5=8O ?5@5<5==>9 1 >B>:8 2K?>;=ONBAO ?0@0;;5;L=> BKP PPK F$C=:F8O ?>B>:0//  :0G5AB25 2E>4=>3> 0@3C<5=B0 ?5@5405BAO // C:070B5;L =0 87<5=O5<K5 40==K5 DWORD WINAPI ThreadProc( LPVOID arg ){ int* pData = (int*) arg; int i; for( i = 0; i < ITERATIONS; i ++ ){ *pData = *pData 1; } ExitThread(0); }P\  &  G" 01>B0 A ?>B>:0<8HANDLE ThreadsPlus[THREAD_COUNT]; HANDLE ThreadsMinus[THREAD_COUNT]; int i; for( i = 0; i < THREAD_COUNT; i ++ ){ ThreadsPlus[i] = CreateThread(NULL, 0, ThreadProc1, (LPVOID)&GlobalVar, 0, NULL); ThreadsMinus[i] =CreateThread(NULL, 0, ThreadProc2, (LPVOID)&GlobalVar, 0, NULL); } for( i = 0; i < THREAD_COUNT; i ++ ){ WaitForSingleObject(ThreadsPlus[i], INFINITE); WaitForSingleObject(ThreadsMinus[i], INFINITE); }P  %  :   : %  H>?@>AKK2548B5 =0G0;L=>5 8 :>=5G=>5 7=0G5=85 A>2<5AB=> 8A?>;L7C5<>9 ?5@5<5==>9 0:85 7=0G5=8O <>6=> >6840BL ?@8 ?>A;54>20B5;L=>9 @01>B5 ?>B>:>2? 0:85 7=0G5=8O ?>;CG8;8AL ?@8 ?0@0;;5;L=>9 @01>B5 ?>B>:>2? 1JOA=8B5 ?@8G8=C >B;8G89&II/T BCo  0` 3333ff3` 3333f33ff3` "3333̙ff3` Kf3̙` &e̙3g3f` f333̙po7` ___f3̙;/f9` ff3Lm` ff3LmNLm>?" dd@(3f?nAd@ q<nAqFLK#M n?" dd@   @@``PR"    M`p>>  FX(    H_ ? ?" `}   Z"1@075F 703>;>2:0   H@6 ? ?" `   1@075F B5:AB0 B>@>9 C@>25=L "@5B89 C@>25=L '5B25@BK9 C@>25=L OBK9 C@>25=LM 4  6  #" `]`}   **86=89 >23>@>4 20090 ,    ~  6y  #" ``    z*?5@0F8>==K5 A8AB5<K: 0A?5:BK ?0@0;;5;87<0 @>F5AAK 8 ?>B>:8>0> $   '   6  #" `] `}   * 87 870 $       p0e0e     ?@ABCDE F A@  i A8c 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@ "" ?@  `     @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab0B  H?D i8c?"0?@NNN?N0 `0< F  A"Z'dH  0޽h ? ___f3̙;/f9___PPT10i.  +D='  = @B + @09 0   x(  x  c $ @   x  c $        B  ?" C h68=Q2 .. (8H:>2 .. 2009D  T`  ??"7 ~8653>@>4A:89 3>AC40@AB25==K9 C=825@A8B5B 8<. ..>10G52A:>3>@@*   TȒ  ??"7 b$0:C;LB5B KG8A;8B5;L=>9 <0B5<0B8:8 8 :815@=5B8:822<    A"ID^   Tк  ??c ~  8<=OO H:>;0-?@0:B8:C< KA>:>?@>872>48B5;L=K5 2KG8A;5=8O 2 :><?LNB5@=>9 3@0D8:5S(2S(   TA  ??,~  8@8 ?>445@6:5 :><?0=88 Intel(2 H  0޽h ? 3f3f___PPT10i.*4 +D='  = @B +r H1 (  < n= 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordH 8AC=>: Word.Picture.80, 8AC=>: Microsoft WordI  !"#$%&'()*+,-./0123՜.+,0     & W  aTimes New RomanVerdana Wingdings GaramondArialTimes New Roman CyrTahoma Courier New Microsoft Word+ :    / (thread)   - ?7 vs.  % х% х$  / /      % ?) vs. ( vs. #       %/ Win32 34#/ Win32 36%/ UNIX$/ UNIX 39   ""? ""?  ? ?* ) ) ) )  & % $ $ $ A +First Come First Served (FCFS FIFO)*First Come First Served (FCFS FIFO)Shortest Job First (SJF)Shortest Remaining Time (SRT)Round Robin (RR)0Shortest Remaining Processing Time first (SRPT)     6 "Multi-Level Feedback Queue (MLFQ) MLFQ Windows Windows $        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcfghijzmnopqrstuvwxy{|}~?@54AB02;ONI89 ?@8:;04=CN ?@>3@0<<C 2 A>AB>O=88 2K?>;=5=8O, 2:;NG05B 4@5A=>5 ?@>AB@0=AB2>, 2K45;5==>5 4;O 2K?>;=5=8O ?@>3@0<<K >4 2K?>;=ONI59AO ?@>3@0<<K 0==K5 2K?>;=ONI59AO ?@>3@0<<K !B5: 8 C:070B5;L =0 53> 25@H8=C (stack pointer, SP) K45;5==K5 @5AC@AK ! (>B:@KBK5 D09;K, CAB0=>2;5==K5 A5B52K5 A>548=5=8O 8 B.4.) @>3@0<<=K9 AG5BG8: (instruction pointer, IP), C:07K20NI89 =0 A;54CNICN 2K?>;=O5<CN 8=AB@C:F8N "5:CI85 7=0G5=8O @538AB@>2 >1I53> =07=0G5=8O 1J5:B 8A?>;=5=8O ?@54AB02;5= 42C<O ?>=OB8O<8: ?@>F5AA 8 ?>B>: vMPP@PM/D i 2 m#@>F5AA@>F5AA - 01AB@0:F8O, ?@54AB02;ONI0O ?@>3@0<<C 2> 2@5<O 55 2K?>;=5=8O @>F5AAC ! 2K45;O5B @5AC@AK, =5>1E>48<K5 4;O 2K?>;=5=8O ?@>3@0<<K, =0?@8<5@: 04@5A=>5 ?@>AB@0=AB2> ?@>F5AA0 A>45@68B 53> ?@>3@0<<=K9 :>4, 40==K5 8 AB5: (8;8 AB5:8) D09;K 8A?>;L7CNBAO ?@>F5AA>< 4;O GB5=8O 2E>4=KE 40==KE 8 70?8A8 2KE>4=KE CAB@>9AB20 22>40-2K2>40 8A?>;L7CNBAO 2 A>>B25BAB288 A 8E =07=0G5=85< @>F5AA  ?0AA82=K9 >1J5:B  2;045;5F @5AC@A>2, :>=B59=5@ 4;O 2K?>;=5=8O ?>B>:>2ZZZQZI*>B>: / =8BL (thread)  >B>: - 01AB@0:F8O, ?@54AB02;ONI0O ?>A;54>20B5;L=>5 2K?>;=5=85 :><0=4 ?@>3@0<<K, @0725@BK20NI55AO 2> 2@5<5=8 @>F5AA <>65B 8<5BL =5A:>;L:> ?>B>:>2 ?>B>:8 A>2<5AB=> 8A?>;L7CNB 3;>10;L=K5 8 AB0B8G5A:85 ?5@5<5==K5 (@0A?>;030NBAO 2 @538>=5 40==KE) 48=0<8G5A:8 @0A?@545;O5<CN ?0<OBL (:CGC) A8AB5<=K5 @5AC@AK, 2K45;5==K5 ?@>F5AAC :064K9 ?>B>: 8<55B A2>8 A>1AB25==K5 ?@>3@0<<=K9 AG5BG8: (IP) 7=0G5=8O @538AB@>2 ;>:0;L=K5 ?5@5<5==K5 (B.5. A2>9 A>1AB25==K9 AB5:) @>F5AA - A>2>:C?=>ABL 2708<>459AB2CNI8E ?>B>:>2 8 2K45;5==KE 5<C @5AC@A>2PPP$P^PKP$^  K| h"@>F5AAK 8 ?>B>:8i.@>F5AA A >4=8< ?>B>:><j<@>F5AA A =5A:>;L:8<8 ?>B>:0<8kX0G5< =C6=K ?@>F5AAK A =5A:>;L:8<8 ?>B>:0<8?;O ?0@0;;5;L=>9 >1@01>B:8 =5A:>;L:8E >4=>B8?=KE 70?@>A>2 (A5B52K5 A5@28AK) ;O @0745;5=8O 8A?>;=8B5;L=KE 0:B82=>AB59, ?0@0;;5;L=> @5H0NI8E @07;8G=K5 7040G8 >15A?5G5=85 ?>;L7>20B5;LA:>3> 8=B5@D59A0 <0B5<0B8G5A:85 2KG8A;5=8O D>=>20O ?5G0BL & ;O A>740=8O ?0@0;;5;L=KE ?@>3@0<<, MDD5:B82=> 8A?>;L7CNI8E 0??0@0B=K5 @5AC@AK (=0?@8<5@, =5A:>;L:> 0??0@0B=> 8<5NI8EAO &) ;O C;CGH5=8O AB@C:BC@K ?@>3@0<<KBPTPPTll=>3>?>B>G=0O ?@>3@0<<0 vs. 708<>459AB2CNI85 ?@>F5AAK77$ @8 8A?>;L7>20=88 ?>B>:>2 M:>=><OBAO @5AC@AK (2A5 ?>B>:8 >4=>3> ?@>F5AA0 ?>;L7CNBAO >4=8< =01>@>< @5AC@A>2) M:>=><8BAO 2@5<O (>?5@0F88 A>740=8O/C=8GB>65=8O ?>B>:0 =0<=>3> <5=55 70B@0B=K, G5< >?5@0F88 A>740=8O/C=8GB>65=8O ?@>F5AA0) 2708<>459AB285 <564C ?>B>:0<8 >4=>3> ?@>F5AA0 1>;55 C4>1=> 8 MDD5:B82=> ?> ?@8G8=5 8A?>;L7>20=8O >1I59 ?0<OB8.Z;Z;& o !>AB>O=8O ?>B>:0rH!>AB>O=8O ?>B>:0 2 <=>3>7040G=>9 !& sH!>AB>O=8O ?>B>:0 2 <=>3>7040G=>9 !& 2K?>;=5=85  A>AB>O=85 @01>B0NI53> ?>B>:0  >1;040NI53> 2A5<8 =5>1E>48<K<8 @5AC@A0<8, 2 B>< G8A;5 2>7<>6=>ABLN 8A?>;L7>20=8O & >B>2 : 2K?>;=5=8N  ?>B>: >1;0405B 2A5<8 =5>1E>48<K<8 4;O 2K?>;=5=8O @5AC@A0<8 70 8A:;NG5=85< @5AC@A0 "2@5<O &" 6840=85 (A>=, 1;>:8@>2:0)  2K?>;=5=85 ?>B>:0 701;>:8@>20=> 4> =0ABC?;5=8O =5:>B>@>3> 2=5H=53> A>1KB8O (=0?@8<5@, ?>ABC?;5=8O 2E>4        OLE W"_ kokljuev.skokljuev.sa.aLiniov=KE 40==KE 8;8 >A2>1>645=8O @5AC@A0)NP v`tF!>AB>O=8O ?>B>:0 2 <=>3>7040G=>9 !r(2,3) - >ACI5AB2;ONBAO O4@>< >?5@0F8>==>9 A8AB5<K (?;0=8@>2I8:><) (4) - ?@>4>;65=85 @01>BK =52>7<>6=> 4;O ?@>4>;65=8O @01>BK B@51C5BAO =0ABC?;5=85 :0:>3>-;81> A>1KB8O ?>B>: 70B@51>20; =54>ABC?=K9 2 40==K9 <><5=B @5AC@A ?>B>: ?5@52>48BAO 2 A>AB>O=85 >6840=8O O4@>< >?5@0F8>==>9 A8AB5<K 2> 2@5<O >1@01>B:8 A8AB5<=>3> 2K7>20 ?>B>: 701;>:8@>20= 2=5H=8< ?> >B=>H5=8N : =5<C 2K7>2>< (5) - ?@>872>48BAO O4@>< ! 2 <><5=B 2K?>;=5=8O CA;>28O >6840=8OXfPPAP3 &Am<#?@02;5=85 ?@>F5AA0<8/?>B>:0<8u<#?@02;5=85 ?@>F5AA0<8/?>B>:0<8!B@C:BC@K, >?8AK20NI85 ?@>F5AAK 8 ?>B>:8 2 O4@5 ! ?5@0F88 =04 ?@>F5AA0<8 8 ?>B>:0<8 0A?@545;5=85 @5AC@A>2 <564C ?@>F5AA0<8/?>B>:0<8 2@5<O F5=B@0;L=>3> ?@>F5AA>@0 (2K45;O5BAO ?>B>:0<) >?5@0B82=0O ?0<OBL (2K45;O5BAO ?@>F5AA0<) 4@C385 @5AC@AK (:0: ?@028;>, 2K45;ONBAO ?@>F5AA0<) =B5@D59A ?@8:;04=KE ?@>3@0<< (G0AB=K5 @50;870F88)BZZ3Z3 ">=B5:AB ?@>F5AA0>=B5:AB  <=>65AB2> 8=D>@<0F88, ?>;=>ABLN >?8AK20NI55 A>AB>O=85 >1J5:B0 (2 G0AB=>AB8, 4>AB0B>G=>5 4;O 2>AAB0=>2;5=8O >1J5:B0 2 A;CG05 53> C40;5=8O) >=B5:AB ?@>F5AA0 2:;NG05B =>65AB2> 8=D>@<0F88, 8A?>;L7C5<>5 >?5@0F8>==>9 A8AB5<>9 4;O C?@02;5=8O @5AC@A>< B8?0 ?@>F5AA 4@5A=>5 ?@>AB@0=AB2> ?@>F5AA0 !B@C:BC@C 8 A>45@68<>5 ?>;L7>20B5;LA:>9 G0AB8 04@5A=>3> ?@>AB@0=AB20 ?@>F5AA0 =>65AB2> @5AC@A>2, 8A?>;L7C5<KE ?@>F5AA>< 8;8 ?@8=04;560I8E ?@>F5AAC, 8 8E A>AB>O=8O.Z%Z%!>=B5:AB ?>B>:0>=B5:AB ?>B>:0 2:;NG05B =>65AB2> 8=D>@<0F88, 8A?>;L7C5<>5 >?5@0F8>==>9 A8AB5<>9 4;O C?@02;5=8O @5AC@A>< B8?0 ?>B>: =>65AB2> @5AC@A>2, 8A?>;L7C5<KE ?>B>:>< 8;8 ?@8=04;560I8E ?>B>:C 8 8E A>AB>O=8O ??0@0B=K9 :>=B5:AB 8A?>;=5=8O ?>B>:0*$4??0@0B=K9 :>=B5:AB ?>B>:0!>AB>O=85 ?@>F5AA>@0 A B>G:8 7@5=8O ?@54>AB02;O5<KE ?>B>:C ?@02 53> 8A?>;L7>20=8O 2 :>=:@5B=>9 ! (>1KG=> ?@54AB02;O5BAO <=>65AB2>< 4>ABC?=K< ?>B>:C @538AB@>2 ?@>F5AA>@0 8 8E B5:CI8<8 7=0G5=8O<8) !>AB>O=85 4@C38E CAB@>9AB2 2 A;CG05, 5A;8 C?@02;5=85 8<8 >ACI5AB2;O5BAO =5?>A@54AB25==> =0 C@>2=5 :><0=4 ?@>3@0<<K, 0 =5 G5@57 8=B5@D59A 4>ABC?0 : CAB@>9AB20< G5@57 2K?>;=5=85 A8AB5<=KE 2K7>2>2 !Zn,5@5:;NG5=85 :>=B5:AB05@5:;NG5=85 :>=B5:AB0 ?@>8AE>48B ?@8 ?5@5E>45 : 8A?>;=5=8N 4@C3>3> ?>B>:0 (2>7<>6=>, 4@C3>3> ?@>F5AA0) @8 ?5@5:;NG5=88 :>=B5:AB0 =5>1E>48<> A>E@0=8BL :>=B5:AB 2KB5A=O5<>3> ?>B>:0 5A;8 ?>B>:, 2K1@0==K9 =0 8A?>;=5=85, ?@8=04;568B 4@C3><C ?@>F5AAC A>E@0=8BL :>=B5:AB ?@>F5AA0  2;045;LF0 2KB5A=O5<>3> ?>B>:0 703@C78BL :>=B5:AB ?@>F5AA0  2;045;LF0 ?>B>:0, 2K1@0==>3> =0 8A?>;=5=85 703@C78BL :>=B5:AB ?>B>:0, 2K1@0==>3> =0 8A?>;=5=85 ;O >?8A0=8O ?@>F5AA>2 8 ?>B>:>2 (2 B>< G8A;5 4;O E@0=5=8O 8E :>=B5:AB>2) 2 O4@5 ! 22>4OBAO A?5F80;L=K5 AB@C:BC@K  45A:@8?B>@K ?@>F5AA0 8 ?>B>:0|PiP P4PPi4  v&5A:@8?B>@ ?@>F5AA045=B8D8:0B>@ ?@>F5AA0 @C??>2K5 ?0@0<5B@K ?@>F5AA0 0@0<5B@K, 8A?>;L7C5<K5 2 ?@>F5AA5 >?@545;5=8O ?@8>@8B5B0 ?@>F5AA0 ?@8 :>=:C@5=F88 70 :0:>9-;81> @5AC@A !>AB>O=85 ?@>F5AA0 !B0B8AB8G5A:85 40==K5 ?8A0=85 04@5A=>3> ?@>AB@0=AB20 ?@>F5AA0 >=B5:AB 22>40-2K2>40 >=B5:AB 157>?0A=>AB8 "5:CI85 A8AB5<=K5 ?0@0<5B@K 2K?>;=5=8O >4 7025@H5=8O ?@>F5AA0  Linux 45A:@8?B>@ ?@>F5AA0  AB@C:BC@0 task_struct (include/linux/sched.h), A>45@68B >:>;> 100 ?>;59!$ZPhPvZ ! w"5A:@8?B>@ ?>B>:045=B8D8:0B>@ ?>B>:0 45=B8D8:0B>@ ?@>F5AA0  2;045;LF0 ?>B>:0 0@0<5B@K, 8A?>;L7C5<K5 2 ?@>F5AA5 >?@545;5=8O ?@8>@8B5B0 ?>B>:0 ?@8 :>=:C@5=F88 70 :0:>9-;81> @5AC@A !B0B8AB8G5A:85 40==K5 ?>B>:0 ??0@0B=K9 :>=B5:AB 2K?>;=5=8O ?>B>:0 (?@>3@0<<=K9 AG5BG8:, AB5: 8 C:070B5;L =0 53> 25@H8=C, 7=0G5=8O @538AB@>2) >4 7025@H5=8O ?>B>:0IZIxHB> C?@02;O5B ?@>F5AA0<8 8 ?>B>:0<8?B0 C?@02;5=85 ?@>F5AA0<8 2A5340 >B25G05B O4@> ! /4@> 2A5340 ?@54>AB02;O5B :064><C ?@>F5AAC >48= ?>B>:, => =5 2A5340 ?>445@68205B <=>3>?>B>G=>ABL ?>B>:8, =5?>A@54AB25==> C?@02;O5<K5 O4@>< !, =07K20NBAO ?>B>:0<8 O4@0 >6=> @50;87>20BL <=>3>?>B>G=>ABL 2 181;8>B5:5 ?>;L7>20B5;LA:>3> C@>2=O!<GIGI,Z('P>B>:8 O4@0 vs. ?>;L7>20B5;LA:85 ?>B>:8&   yN>B>:8 O4@0 vs. ?>;L7>20B5;LA:85 ?>B>:8  J@8 8A?>;L7>20=88 ?>;L7>20B5;LA:8E ?>B>:>2 (+) ?5@0F88 =04 ?>B>:0<8 2K?>;=ONBAO 157 2K?>;=5=8O A8AB5<=KE 2K7>2>2 (2 10-100 @07 1KAB@55, G5< ?@8 8A?>;L7>20=88 ?>B>:>2 O4@0) (+) >6=> @50;87>20BL A>1AB25==K9 0;3>@8B< ?;0=8@>20=8O (-) /4@> =8G53> =5 7=05B > ?>B>:0E ?>;L7>20B5;LA:>3> C@>2=O 8 @0A?@545;O5B 2@5<O & =57028A8<> >B 8E :>;8G5AB20 2 ?@>F5AA5 (-) A;8 1C45B 2K?>;=5= 1;>:8@CNI89 A8AB5<=K9 2K7>2 (=0?@8<5@, 2K720=0 A8=E@>==0O >?5@0F8O 22>40-2K2>40), 2 A>AB>O=85 >6840=8O ?5@52>48BAO ?>B>: O4@0, 8A?>;L7>202H89AO 4;O >15A?5G5=8O 2K?>;=5=8O =5A:>;L:8E (8;8 2A5E) ?>;L7>20B5;LA:8E ?>B>:>2. !>>B25BAB25==>, 2K?>;=5=85 2A5E MB8E ?>;L7>20B5;LA:8E ?>B>:>2 1C45B 701;>:8@>20=>..+P{P+{zD?5@0F88 =04 ?@>F5AA0<8 8 ?>B>:0<8{"!>740=85 ?@>F5AA0!>740BL 45A:@8?B>@ ?@>F5AA0 8 ?><5AB8BL 53> 2 B01;8FC ?@>F5AA>2 @>8=8F80;878@>20BL 7=0G5=8O ?>;59 >1I53> =07=0G5=8O 45A:@8?B>@0 ?@>F5AA0 !>740BL 28@BC0;L=>5 04@5A=>5 ?@>AB@0=AB2> () ?@>F5AA0 8 AD>@<8@>20BL 53> AB@C:BC@C 0?>;=8BL =5>1E>48<K<8 40==K<8  ?@>F5AA0 (@07<5AB8BL 2 =5< :>4, 40==K5 8 B.4.) K45;8BL ?@>F5AAC @5AC@AK, :>B>@K5 >= <>65B 8A?>;L7>20BL A@07C ?>A;5 A>740=8O ?>25AB8BL ?>4A8AB5<K, ?@8=8<0NI85 CG0AB85 2 C?@02;5=88 ?@>F5AA0<8, > A>740=88 =>2>3> ?@>F5AA0 !>740BL ?5@28G=K9 ?>B>: ?@>F5AA0P|"!>740=85 ?@>F5AA0}!>740=85 ?>B>:0r!>740BL 45A:@8?B>@ ?>B>:0 8 ?><5AB8BL 53> 2 B01;8FC ?>B>:>2 @>8=8F80;878@>20BL 7=0G5=8O ?>;59 >1I53> =07=0G5=8O 45A:@8?B>@0 ?>B>:0 !>740BL >1;0AB8 40==KE, =5>1E>48<K5 4;O DC=:F8>=8@>20=8O ?>B>:0 2 40==>9 0??0@0B=>9 0@E8B5:BC@5 =8F80;878@>20BL ?>;5 45A:@8?B>@0 0??0@0B=K9 :>=B5:AB 2K?>;=5=8O ?>B>:0 ?>25AB8BL ?>4A8AB5<K, ?@8=8<0NI85 CG0AB85 2 C?@02;5=88 ?>B>:0<8, > A>740=88 =>2>3> ?>B>:0 5@525AB8 ?>B>: 2 A>AB>O=85 3>B>2 : 2K?>;=5=8NP~!>740=85 ?>B>:0"025@H5=85 ?>B>:0!>E@0=8BL AB0B8AB8G5A:85 40==K5 ?>B>:0 8 :>4 2>72@0B0 2 53> 45A:@8?B>@5 5@525AB8 2A5 @5AC@AK, ?@8=04;560I85 ?>B>:C, 2 =5?@>B82>@5G82>5 8 AB018;L=>5 A>AB>O=85 A2>1>48BL 2A5 @5AC@AK, ?@8=04;5602H85 ?>B>:C 8;8 8A?>;L7>202H85AO ?>B>:>< ?>25AB8BL ?>4A8AB5<K, ?@8=8<0NI85 CG0AB85 2 C?@02;5=88 ?>B>:0<8, > 7025@H5=88 ?>B>:0 #AB0=>28BL A>AB>O=85 ?>B>:0 2 7=0G5=85 7025@H5= A;8 40==K9 ?>B>: O2;O5BAO ?>A;54=8< 0:B82=K< ?>B>:>< 2 ?@>F5AA5  7025@H8BL ?@>F5AA >A;5 2K?>;=5=8O 2A5E 459AB289 >AB05BAO 45A:@8?B>@ ?>B>:0, A>45@60I89 53> :>4 2>72@0B0 8 AB0B8AB8G5A:85 40==K5; <><5=B C=8GB>65=8O 45A:@8?B>@0 7028A8B >B @50;870F88$PPn &025@H5=85 ?@>F5AA0025@H8BL 2K?>;=5=85 2A5E ?>B>:>2 ?@>F5AA0 !>E@0=8BL AB0B8AB8G5A:85 40==K5 ?@>F5AA0 8 :>4 2>72@0B0 2 53> 45A:@8?B>@5 5@525AB8 2A5 @5AC@AK, ?@8=04;560I85 ?@>F5AAC, 2 =5?@>B82>@5G82>5 8 AB018;L=>5 A>AB>O=85 A2>1>48BL 2A5 @5AC@AK, ?@8=04;5602H85 ?@>F5AAC 8;8 8A?>;L7>202H85AO ?@>F5AA>< A2>1>48BL  8 C=8GB>68BL 53> ?>25AB8BL ?>4A8AB5<K, ?@8=8<0NI85 CG0AB85 2 C?@02;5=88 ?@>F5AA0<8, > 7025@H5=88 ?@>F5AA0 #AB0=>28BL A>AB>O=85 ?@>F5AA0 2 7=0G5=85 7025@H5= >A;5 2K?>;=5=8O 2A5E 459AB289 >AB05BAO 45A:@8?B>@ ?@>F5AA0, A>45@60I89 53> :>4 2>72@0B0 8 AB0B8AB8G5A:85 40==K5; <><5=B C=8GB>65=8O 45A:@8?B>@0 7028A8B >B @50;870F88$PPs H!>740=85/7025@H5=85 ?@>F5AA0  Win32 pBOOL CreateProcess( LPCTSTR lpszImageName, LPCTSTR lpszCommandLine, LPSECURITY_ATTRIBUTES lpsaProcess, LPSECURITY_ATTRIBUTES lpsaThread, BOOL fInheritHandles, DWORD fdwCreate, LPVOID lpvEnvironment, LPTSTR lpszCurDir, LPSTARTUPINFO lpsiStartInfo, LPPROCESS_INFORMATION lppiProcInfo); VOID ExitProcess(UINT fuExitCode); BOOL TerminateProcess( HANDLE hProcess, UINT uExitCode ); ?8A0=85 DC=:F89 <>6=> =09B8 2 MSDN 8 2 @01>B5 [2]$P4                      !     NSTARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); CreateProcess( NULL, // No module name (use command line). TEXT("MyChildProcess"),// Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. FALSE, // Set handle inheritance to FALSE. 0, // No creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi ); // Pointer to PROCESS_INFORMATION structure. // Wait until child process exits. WaitForSingleObject( pi.hProcess, INFINITE ); // Close process and thread handles. CloseHandle( pi.hProcess ); CloseHandle( pi.hThread );OPO                    D!>740=85/7025@H5=85 ?>B>:0  Win32 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId); VOID ExitThread(DWORD dwExitCode); BOOL TerminateThread( HANDLE hThread, DWORD dwExitCode); ?8A0=85 DC=:F89 <>6=> =09B8 2 MSDN 8 2 @01>B5 [2]$SP5,                                     !     int GlobalVar = 0; DWORD WINAPI ThreadProc( LPVOID arg ){ *(int*)arg = *(int*)arg + 1; ExitThread(0); } int main(void){ int i; HANDLE Threads[10]; for( i = 0; i < 10; i ++ ){ Threads[i] = CreateThread(NULL, 0, ThreadProc, (LPVOID)&GlobalVar, 0, NULL); } for( i = 0; i < 10; i ++ ){ WaitForSingleObject(Threads[i],INFINITE); } return 0; }P                                            H!>740=85/7025@H5=85 ?@>F5AA0  UNIX& %%$ !>740=85 :>?88 ?@>F5AA0 int fork(void); A?>;L7>20=85 @5AC@A>2 ?@>F5AA0 4;O 2K?>;=5=8O C:070==>9 ?@>3@0<<K int exec*(char *path, char* argv[], char **env); 025@H5=85 ?@>F5AA0 void exit(int status); 6840=85 7025@H5=8O ?@>F5AA0-?>B><:0 int wait(int *status); ?8A0=85 DC=:F89 <>6=> =09B8 2 4>:C<5=B0F88 UNIX (man 8;8 info) 8 2 @01>B5 [3]SPST     C           %     .      F!>740=85/7025@H5=85 ?@>F5AA0  UNIX$$$ @/* @>3@0<<0, A>740NI0O ?@>F5AA-?>B><>: 8 70?CA:0NI0O 2 ?>B><:5 4@C3CN ?@>3@0<<C */ int ChildPID, ChildRetCode, RetCode=0; ChildPID = fork(); if( ChildPID == 0 )/*child process*/ exec*(progname,& ); else /*parent process*/ wait(&ChildRetCode); /* more parent code */ exit(RetCode);!Z! P                         B>38@>F5AAK 8 ?>B>:8  >1J5:BK, ?@54AB02;ONI85 ?@>3@0<<K 2> 2@5<O 8E 2K?>;=5=8O @>F5AA  ?0AA82=K9 >1J5:B, 2;045;5F @5AC@A>2 >B>:  0:B82=K9 >1J5:B ! B>G:8 7@5=8O !, ?@>F5AAK 8 ?>B>:8  A?5F8D8G=K5 B8?K @5AC@A>2, B@51CNI85 A?5F80;L=>3> C?@02;5=8O8Z;0=8@>20=85 &"5<0 >1AC645=8O^>B>:0< 4;O 2K?>;=5=8O =C65= F5=B@0;L=K9 ?@>F5AA>@ (&) A;8 ?>B>:>2 1>;LH5, G5< ?@>F5AA>@>2, ! 4>;6=0 >15A?5G8BL 2>7<>6=>ABL ?>>G5@54=>3> 8A?>;L7>20=8O ?@>F5AA>@>2 ?>B>:0<8 2'B> B0:>5 "?;0=8@>20=85"?x;0=8@>20=85  @0A?@545;5=85 2@5<5=8 F5=B@0;L=>3> ?@>F5AA>@0=Z=2'B> B0:>5 "?;0=8@>20=85"?$;0=8@>20=85  @0A?@545;5=85 2@5<5=8 F5=B@0;L=>3> ?@>F5AA>@0 ;0=8@>20=85 1K205B 4>;3>A@>G=>5  ?@8=OB85 @5H5=89 > 70?CA:5 8 >B:;04K20=88 70?CA:0 7040=89 A@54=5A@>G=>5  ?@8=OB85 @5H5=89 > 2@5<5==>< 2KB5A=5=88 ?@>F5AA>2 =0 48A: :@0B:>A@>G=>5 (48A?5BG5@870F8O)  2K1>@ ?>B>:0, :>B>@><C A;54C5B ?@54>AB028BL & @8 @50;870F88 ?;0=8@>20=8O 8A?>;L7C5BAO <5E0=87< ?5@5:;NG5=8O :>=B5:AB>2 ?@>F5AA>2 8 ?>B>:>2BQZZ^ZQ^0@0D8: 2K?>;=5=8O ?>B>:02 5A;8 ?>B>:>2 =5A:>;L:>? 2 5A;8 ?>B>:>2 =5A:>;L:>?!R@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O& **$\1I85 :@8B5@88 !?@0254;82>ABL  2A5< 2K45;O5BAO @02=>5 :>;8G5AB2> 2@5<5=8 & 0;0=A  >15A?5G5=85 703@C7:8 2A5E CAB@>9AB2 A8AB5<K 0:;04=K5 @0AE>4K  ?@>F5=B @5AC@A>2, ?>B@51;O5<KE ?;0=8@>2I8:>< 0AHB018@C5<>ABL  C25;8G5=85 ?>B@51;5=8O @5AC@A>2 ?;0=8@>2I8:>< ?@8 C25;8G5=88 G8A;0 >1J5:B>2 ?;0=8@>20=8OZ Z0/0\\"P@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O& ))$!?@0254;82>ABL  2A5< 2K45;O5BAO @02=>5 :>;8G5AB2> 2@5<5=8 & 0: 87<5@8BL A?@0254;82>ABL? 48=0:>2>5 2@5<O ?>B@51;5=8O &? 48=0:>2>5 :>;8G5AB2> 2K?>;=5==KE :><0=4? '5AB=> =0 C@>2=5 ?>B>:>2? ?@>F5AA>2? ?>;L7>20B5;59? 'B> 5A;8 >48= ?@>F5AA >3@0=8G5= 2>7<>6=>ABO<8 &, 0 4@C3>9  2>7<>6=>ABO<8 22>40-2K2>40? =>340 =C6=> 1KBL =5A?@0254;82K< 8 O2=> >:07K20BL ?@54?>GB5=85 =5:>B>@K< >?@545;5==K< :;0AA0< ?>B>:>2/70?@>A>2/A>1KB89 (8<5BL A8AB5<C ?@8>@8B5B>2), =>& A;54C5B 871530BL 3>;>40=8O (starvation)  A8BC0F88, :>340 =5:>B>@K< ?>B>:0< ?@>F5AA>@ <>65B =5 2K45;OBLAO 2 B5G5=88 =5>3@0=8G5==>3> 2@5<5=8>PPKPP>K6  f b#P@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O& ))$8!8AB5<K ?0:5B=>9 >1@01>B:8 40==KE @>?CA:=0O A?>A>1=>ABL  A@54=55 G8A;> 7040=89, ?>;=>ABLN 2K?>;=O5<KE 2 548=8FC 2@5<5=8 (G0A, ACB:8,& ) 1>@>B=>5 2@5<O  A@54=55 2@5<O <564C 70?CA:>< 7040=8O 8 7025@H5=85< 53> >1@01>B:8 -DD5:B82=>ABL  A@54=89 ?@>F5=B 703@C7:8 F5=B@0;L=>3> ?@>F5AA>@0h""QD 4$P@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O& ))$x=B5@0:B82=K5 A8AB5<K @5<O >B:;8:0  A@54=55 2@5<O <564C 2>7=8:=>25=85< A>1KB8O 8 7025@H5=85< 53> >1@01>B:8 @5<O >6840=8O  A@54=55 2@5<O <564C ?5@5E>4>< ?>B>:0 87 A>AB>O=8O ">6840=85" 2 A>AB>O=85 "3>B>2 : 2K?>;=5=8N" 8 ?@54>AB02;5=85< 5<C & !>@07<5@=>ABL  A>>B25BAB285 ?@>872>48B5;L=>AB8 >6840=8O< ?>;L7>20B5;OlZ&Z Jz :%P@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O ))$l!8AB5<K @50;L=>3> 2@5<5=8 :>=G0=85 >1A;C6820=8O : A@>:C @54A:07C5<>ABL  A>1;N45=85 2@5<5==KE >3@0=8G5=89 ?@8 2K?>;=5=88 =5:>B>@>3> 70@0=55 >3>2>@5==>3> <=>65AB20 A8AB5<=KE 2K7>2>2PY&(><5=BK ?;0=8@>20=8O!>740=85 =>2>3> ?@>F5AA0 !>740=85 =>2>3> ?>B>:0 025@H5=85 ?>B>:0 8;8 ?@>F5AA0 ;>:8@>20=85 ?>B>:0 (?5@5E>4 87 A>AB>O=8O "2K?>;=5=85" 2 A>AB>O=85 ">6840=85") 071;>:8@>20=85 ?>B>:0 (?5@5E>4 87 A>AB>O=8O ">6840=85" 2 A>AB>O=85 "3>B>2 : 2K?>;=5=8N") !@010BK20=85 B09<5@0P'J52KB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O& &&$ >K18@0NB ?>B>:, ?5@540NB 5<C F5=B@0;L=K9 ?@>F5AA>@ 8 ?>72>;ONB @01>B0BL 2?;>BL 4> 1;>:8@>2:8 ;81> 4> B>3> <><5=B0, :>340 ?>B>: A0< >B40AB F5=B@0;L=K9 ?@>F5AA>@(H52KB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O )FKB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O& $$$K18@0NB ?>B>: 8 ?>72>;ONB 5<C @01>B0BL =5:>B>@>5 <0:A8<0;L=> 2>7<>6=>5 D8:A8@>20==>5 2@5<O. A;8 : :>=FC 7040==>3> 8=B5@20;0 2@5<5=8 ?>B>: 2A5 5I5 @01>B05B, >= ?@8>AB0=02;8205BAO, 8 C?@02;5=85 ?5@5E>48B : 4@C3><C ?>B>:C (5A;8 ACI5AB2C5B ?>B>:, 3>B>2K9 : 8A?>;=5=8N). KB5A=ONI55 ?;0=8@>20=85 B@51C5B ?@5@K20=89 ?> B09<5@C, ?@>8AE>4OI8E 2 :>=F5 >B2545==>3> ?5@8>40 2@5<5=8. @8 >BACBAB288 B09<5@0 2>7<>6=0 @50;870F8O B>;L:> =52KB5A=ONI8E 0;3>@8B<>2.Z  *FKB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O& $$$+FKB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O& $$$,KB5A=ONI85 0;3>@8B<K ?;0=8@>20=8O =0 <=>3>?@>F5AA>@=KE A8AB5<0EAPA$-TFirst Come  First Served (FCFS 8;8 FIFO)& ++$p  52KB5A=ONI89 ;0=8@>2I8: ?>445@68205B >G5@54L 3>B>2KE : 2K?>;=5=8N ?>B>:>2 8 ?@54>AB02;O5B & ?5@2><C ?>B>:C 87 >G5@548 @8 ?5@5E>45 2 A>AB>O=85 "3>B>2 : 2K?>;=5=8N" ?>B>: ?><5I05BAO 2 :>=5F >G5@548 .RFirst Come  First Served (FCFS 8;8 FIFO)**$p  /Shortest Job First (SJF)$J 52KB5A=ONI89 ;0=8@>2I8: 2K18@05B =0 2K?>;=5=85 A0<CN :>@>B:CN 7040GC >E>6 =0 FCFS, => 4;O :064>3> ?>B>:0 22>48BAO 4>?>;=8B5;L=0O E0@0:B5@8AB8:0  >68405<>5 2@5<O 2K?>;=5=8O, 8 ?>B>:8 2 >G5@548 3>B>2KE : 2K?>;=5=8N >BA>@B8@>20=K 2 ?>@O4:5 C25;8G5=8O 55 7=0G5=8O 2B><0B8G5A:8 >?@545;8BL 2@5<O 2K?>;=5=8O ?@>3@0<<K =52>7<>6=>, A;54>20B5;L=>, 53> 4>;65= 704020BL ?>;L7>20B5;L, 70?CA:0NI89 ?@>3@0<<C.HZHZHH 0Shortest Remaining Time (SRT):  52KB5A=ONI89 ;0=8@>2I8: 2K18@05B =0 2K?>;=5=85 7040GC, 8<5NICN =08<5=LH55 ?;0=8@C5<>5 2@5<O 4> >:>=G0=8O 2K?>;=5=8O # :064>3> ?>B>:0 2 4>?>;=8B5;L=K5 E0@0:B5@8AB8:8  >68405<>5 2@5<O 2K?>;=5=8O 8 C65 ?>B@51;5==>5 2@5<O &*vZjZvj  1Round Robin (RR) 8RR - 2KB5A=ONI89 0=0;>3 FCFS(  2/Shortest Remaining Processing Time first (SRPT)00$((  @KB5A=ONI89 !G8B05BAO, GB> :064K9 ?>B>: >1@010BK205B ?>A;54>20B5;L=>ABL 70?@>A>2 ;O :064>3> ?>B>:0 2KG8A;O5BAO E0@0:B5@8AB8:0, >F5=820NI0O 2@5<O >1@01>B:8 >4=>3> 70?@>A0. 0?@8<5@: T(0)=0, T(n+1) = a*t(n) + (1- a)*T(n) T(n)  7=0G5=85 E0@0:B5@8AB8:8 ?>A;5 2K?>;=5=8O n->3> 70?@>A0 t(n)  2@5<O >1@01>B:8 n->3> 70?@>A0 a  :>MDD8F85=B (0 d" a d" 1) 0 2K?>;=5=85 2K18@05BAO ?>B>: A <8=8<0;L=K< 7=0G5=85< E0@0:B5@8AB8:8BPPFPF44 v        )            F32@8>@8B5B=>5 ?;0=8@>20=85t5>1E>48< 48DD5@5=F8@>20==K9 ?>4E>4 : ?>B>:0<  A8AB5<5 <>3CB >4=>2@5<5==> ACI5AB2>20BL A;C651=K5 ?@>F5AAK 8 ?@>F5AAK, 70?CI5==K5 ?>;L7>20B5;O<8 >;L7>20B5;8 <>3CB @07;8G0BLAO ?> AB0BCAC&..- 42@8>@8B5B=>5 ?;0=8@>20=8552@8>@8B5B=>5 ?;0=8@>20=85@8 8A?>;L7>20=88 ?@8>@8B5B=>3> ?;0=8@>20=8O, 5A;8 2 A8AB5<5 2A5340 3>B>2 : 2K?>;=5=8N E>BO 1K >48= 87 2KA>:>?@8>@8B5B=KE ?>B>:>2, B> ?>B>:8 A =87:8<8 ?@8>@8B5B0<8 =8:>340 =5 1C4CB 2K?>;=5=K. >MB><C, :0: ?@028;>, 8A?>;L7CNBAO =5:>B>@K5 <>48D8:0F88 MB>3> 0;3>@8B<0. Z 64@8>@8B5B=>5 ?;0=8@>20=85&  <>48D8:0F8OE G0AB> @0745;ONB 107>2K9 ?@8>@8B5B ?>B>:0 8 MDD5:B82=K9 ?@8>@8B5B ?>B>:0 07>2K9 ?@8>@8B5B =07=0G05BAO ?>B>:C ?>A@54AB2>< =5:>B>@>3> A8AB5<=>3> 2K7>20, =0?@8<5@, 8=8F88@>20==>3> 2K?>;=5=85< :><0=4K ?>;L7>20B5;O -DD5:B82=K9 ?@8>@8B5B 8A?>;L7C5BAO ?;0=8@>2I8:>< ?@8 2K1>@5 ?>B>:>2 =0 8A?>;=5=85 8 <>65B 8< 87<5=OBLAO 2 A>>B25BAB288 A @50;87>20==K< 0;3>@8B<>< ?;0=8@>20=8ORWP)PWy72@8>@8B5B=>5 ?;0=8@>20=85;O ?@54>B2@0I5=8O 15A:>=5G=>9 @01>BK 2KA>:>?@8>@8B5B=KE ?>B>:>2 ?;0=8@>2I8: <>65B C<5=LH0BL A :064K< B0:B>< B09<5@0 MDD5:B82=K9 ?@8>@8B5B 2K?>;=ONI53>AO ?>B>:0 ;O ?@54>AB02;5=8O =87:>?@8>@8B5B=K< ?>B>:0< F5=B@0;L=>3> ?@>F5AA>@0 ?;0=8@>2I8: <>65B ?@>25@OBL 2@5<O, 2 B5G5=85 :>B>@>3> ?>B>: =0E>48;AO 2 A>AB>O=88 3>B>2=>AB8 : 8A?>;=5=8N >7<>6=> 040?B82=>5 8 48=0<8G5A:>5 87<5=5=85 ?@8>@8B5B>2 040?B82=>5 87<5=5=85  :>@@5:F8O MDD5:B82=KE ?@8>@8B5B>2 =0 >A=>20=88 =01>@0 ?@028; 48=0<8G5A:>5 87<5=5=85  @53C;O@=K9 ?5@5AG5B MDD5:B82=KE ?@8>@8B5B>2 =0 >A=>20=88 7=0G5=89 =5:>B>@>9 A>2>:C?=>AB8 ?0@0<5B@>2.PP8j;0=8@>20=85 A 8A?>;L7>20=85< <=>3>C@>2=52KE >G5@545966$9!Multi-Level Feedback Queue (MLFQ)! v@8 8A?>;L7>20=88 <=>3>C@>2=52KE >G5@5459 A >1@0B=>9 A2O7LN ?>B>: =5 ?>AB>O==> ?@8?8A0= : >?@545;5==>9 >G5@548, 0 <>65B <83@8@>20BL 87 >G5@548 2 >G5@54L 2 7028A8<>AB8 >B A2>53> ?>2545=8O :00@0<5B@K 0;3>@8B<0 MLFQ <>;8G5AB2> >G5@5459 4;O ?>B>:>2, =0E>4OI8EAO 2 A>AB>O=88 3>B>2 : 8A?>;=5=8N ;3>@8B< ?;0=8@>20=8O, 459AB2CNI89 <564C >G5@54O<8 ;3>@8B<K ?;0=8@>20=8O, 459AB2CNI85 2=CB@8 >G5@5459 @028;0 ?><5I5=8O @>482H53>AO ?>B>:0 2 >4=C 87 >G5@5459 @028;0 ?5@52>40 ?>B>:>2 87 >4=>9 >G5@548 2 4@C3CN P;@8<5@&  >;8G5AB2> >G5@5459: 4 ;3>@8B< ?;0=8@>20=8O, 459AB2CNI89 <564C >G5@54O<8: ?@8>@8B5B=>5 ?;0=8@>20=85 (?@8>@8B5BK 1-4, =082KAH89 ?@8>@8B5B - 4) ;3>@8B<K ?;0=8@>20=8O 2 >G5@54OE @.4. RR A @07<5@>< :20=B0 8 @.3. RR A @07<5@>< :20=B0 16 @.2. RR A @07<5@>< :20=B0 32 @.1. FCFS >2K9 ?>B>: ?>ABC?05B 2 >G5@54L A =082KAH8< ?@8>@8B5B><BZgZ8Zg8<@8<5@&  =@8<5@&  @028;0 ?5@52>40 ?>B>:>2 87 >4=>9 >G5@548 2 4@C3CN 5A;8 ?>B>: 87 >G5@548 @.4. =5 7025@H8; >1@01>B:C 4> 7025@H5=8O :20=B0, >= ?5@52>48BAO 2 >G5@54L @.3 5A;8 ?>B>: 87 >G5@548 @.3. =5 7025@H8; >1@01>B:C 4> 7025@H5=8O :20=B0, >= ?5@52>48BAO 2 >G5@54L @.2 5A;8 ?>B>: 87 >G5@548 @.2. =5 7025@H8; >1@01>B:C 4> 7025@H5=8O :20=B0, >= ?5@52>48BAO 2 >G5@54L @.1 ?>A;5 7025@H5=8O >6840=8O 22>40 A :;0280BC@K ?>B>:8 87 >G5@5459 @.1,2,3 ?5@52>4OBAO 2 >G5@54L @.4 ?>A;5 7025@H5=8O >?5@0F89 48A:>2>3> 22>40-2K2>40 ?>B>:8 87 >G5@5459 @.1,2 ?5@52>4OBAO 2 >G5@54L @.3 ?>A;5 7025@H5=8O >6840=8O 2A5E 4@C38E A>1KB89 ?>B>:8 87 >G5@548 @.1 ?5@52>4OBAO 2 >G5@54L @.2.3P\P3\> @8<5@ ?.;0=8@>20=85 2 Windows&  @,;0=8@>20=85 2 Windows A B>380!CI5AB2C5B =5A:>;L:> C@>2=59 ?;0=8@>20=8O !CI5AB2CNB @07;8G=K5 0;3>@8B<K ?;0=8@>20=8O ?@545;5=K :@8B5@88 >F5=:8 0;3>@8B<>2 ?;0=8@>20=8O (70G0ABCN ?@>B82>?>;>6=K5)  @50;L=KE A8AB5<0E @50;87CNBAO 381@84=K5 0;3>@8B<K, 8A?>;L7CNI85, : B><C 65, 040?B82=K5 8;8 48=0<8G5A:85 ?@8>@8B5BKP 8B5@0BC@0"0=5=10C< -. !>2@5<5==K5 >?5@0F8>==K5 A8AB5<K. 2-5 874.  !1.: 8B5@, 2002. 8EB5@ 6. Windows 4;O ?@>D5AA8>=0;>2 (!>740=85 MDD5:B82=KE Win32-?@8;>65=89 A CG5B>< A?5F8D8:8 64-@07@O4=>9 25@A88 Windows). 4-5 874.  .: CAA:0O 540:F8O; ?5@. A 0=3;.  !1.: 8B5@, 2001.n6 ObFF"5<0 A;54CNI59 ;5:F88 !8=E@>=870F8O$PD<@8<5@ <=>3>?>B>G=>9 ?@>3@0<<KE">AB0=>2:0 7040G8<55BAO 3;>10;L=0O ?5@5<5==0O, =04 :>B>@>9 >?@545;5=K 2 >?5@0F88 87<5=5=8O #25;8G5=85 =0 1 #<5=LH5=85 =0 1 >B>:8-C25;8G8B5;8 4>102;ONB : 7=0G5=8N ?5@5<5==>9 1 >B>:8-C<5=LH8B5;8 2KG8B0NB 87 7=0G5=8O ?5@5<5==>9 1 >B>:8 2K?>;=ONBAO ?0@0;;5;L=> BKP PPK F$C=:F8O ?>B>:0//  :0G5AB25 2E>4=>3> 0@3C<5=B0 ?5@5405BAO // C:070B5;L =0 87<5=O5<K5 40==K5 DWORD WINAPI ThreadProc( LPVOID arg ){ int* pData = (int*) arg; int i; for( i = 0; i < ITERATIONS; i ++ ){ *pData = *pData 1; } ExitThread(0); }P\  &  G" 01>B0 A ?>B>:0<8HANDLE ThreadsPlus[THREAD_COUNT]; HANDLE ThreadsMinus[THREAD_COUNT]; int i; for( i = 0; i < THREAD_COUNT; i ++ ){ ThreadsPlus[i] = CreateThread(NULL, 0, ThreadProc1, (LPVOID)&GlobalVar, 0, NULL); ThreadsMinus[i] =CreateThread(NULL, 0, ThreadProc2, (LPVOID)&GlobalVar, 0, NULL); } for( i = 0; i < THREAD_COUNT; i ++ ){ WaitForSingleObject(ThreadsPlus[i], INFINITE); WaitForSingleObject(ThreadsMinus[i], INFINITE); }P  %  :   : %  H>?@>AKK2548B5 =0G0;L=>5 8 :>=5G=>5 7=0G5=85 A>2<5AB=> 8A?>;L7C5<>9 ?5@5<5==>9 0:85 7=0G5=8O <>6=> >6840BL ?@8 ?>A;54>20B5;L=>9 @01>B5 ?>B>:>2? 0:85 7=0G5=8O ?>;CG8;8AL ?@8 ?0@0;;5;L=>9 @01>B5 ?>B>:>2? 1JOA=8B5 ?@8G8=C >B;8G89&II/T BCo  0` 3333ff3` 3333f33ff3` "3333̙ff3` Kf3̙` &e̙3g3f` f333̙po7` ___f3̙;/f9` ff3Lm` ff3LmNLm>?" dd@(3f?nAd@ q<nAqFLK#M n?" dd@   @@``PR"    M`p>>  FX(    H? ?" `}  Z"1@075F 703>;>2:0   HL? ?" `  1@075F B5:AB0 B>@>9 C@>25=L "@5B89 C@>25=L '5B25@BK9 C@>25=L OBK9 C@>25=LM 4  6p #" `]`}  **86=89 >23>@>4 20100 ,    ~  6% #" ``   z*?5@0F8>==K5 A8AB5<K: 0A?5:BK ?0@0;;5;87<0 @>F5AAK 8 ?>B>:8>0> $   '   6p+ #" `] `}  * 87 870 $       p0e0e     ?@ABCDE F A@  i A8c 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@ "" ?@  `     @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab0B  H?D i8c?"0?@NNN?N0 `0< F  A"Z'dH  0޽h ? ___f3̙;/f9___PPT10i.  +D=' 7= @B + @09  0 6.  (  x  c $E@ E x  c $TE   E   BE ?" C P8=Q2 .. 2010D  TE ??"7 ~8653>@>4A:89 3>AC40@AB25==K9 C=825@A8B5B 8<. ..>10G52A:>3>@@*   TE ??"7 b$0:C;LB5B KG8A;8B5;L=>9 <0B5<0B8:8 8 :815@=5B8:822<    A"IDH   TE ??c ~  8<=OO ABC45=G5A:0O H:>;0-?@0:B8:C< "KA>:>?@>872>48B5;L=K5 2KG8A;5=8O"H(2H   TE ??~  @8 ?>445@6:5 :><?0=88 Intel 8 8653>@>4A:>3> $>=40 !>459AB28O 1@07>20=8N 8 AA;54>20=8O<[(2[ [?H  0޽h ? 3f3f___PPT10i.*4 +D=' 7= @B +r1w  H1Root EntrydO)v e@ PicturesQCurrent User4,SummaryInformation( Ul  !"#$%&'()*+,-./0123      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcfghijmnopqrstuvwxy{|}~        OLE W_\COMPCOMPokljuev.sa.aLiniov