ࡱ> F*Nт۳ Y*JFIF`WANG2 CREATOR: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) Quality = 75, Smoothing = 0 C    $.' ",#(7),01444'9=82<.342 i }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?Ѷm:LREQEQE܍L-QMM/L3NQLy5=XMqq' X?|%bVX?|# rgK6 ¢G4'  ͷy!HAx"I9ϙ6kR,cT]cnAJ,1Ymi鷾lFƻcTQ = *HVA\RqIQӬY!/PdJA5o:MfӮ+u~$=kwkV/nF )s4ޚcS.* |WB襎Xuu# ԔQEQEQEQEQERQEQKEQEQEQEQEQE! s[څF@3ɯWNjˢ^L|9M$K^ៀk3ϖzk <9SI 9MvQQ5EQ( s2f&K>ҷTr rEr4_^Z fmX6%2J:״+2#"z6ycOh[jtj?k:"ߺox~4Etrkc9unp?*xE2q(@¹:mkrQy"jo⻟@#mOS^V~iVQ@qL4H/`[$6+3Q4Z&K(f ܼu~$*inֳu5!a? H4(r%4xNt5]>34ף2K]6Pۆmkw:FCoT4gr=+pjxU ?*? 6#^%1׬xR.4EB2Mp+*Q GtR1G,O#c ¾CQ>'%7A|XQkpf=6V%*E|.'PӭnapTs򯡭mm*U=MZxA)@-nI#+ſ 5 3M-sj"X S<'K]l 2E} 7ɝb }* -QEQEQEQEQEQEQEQEQEQEQHzkM+̲(rs_9ǚߍ/v4 8?`{}м/xr R%hw2Xڤvq 'sIK5FH6*? h^'RW!~VV+|-]E1&=mR5E(WcIh/޵? $ 6%ٌD}*Oxz/ecm:r1{׿ibL$J +ʾngC^5TWxݲSRJ'K?4b\۵} {-GCӂ fAWVj]/ڍ66~5|;:3I+:Mg3sonMڑ׌pmoZq\\JҊJul&]!qYfXSpѱ#XHG*9,/_In|^ xs_nFJk< 1i }­u-%!J(((((((((()@Ҽ[/;Lr(9 4sZKoF7}31uy2^: ڕWnaZQ^cxZC5 #{y~hq4n٬|\qҾw+M\S ⾗VWPAdyYzݨom2W+/jZ]QX(uiؽ*иL ̺ cg+0$5~{y Oz'58𽿊=qg"5Ah xxKIJxgX-}_5b:aՁR2=k>3,>p%F>Z|%`4 ָd ƼoZ?!62GAaKM m^Sy>w ѥHc]Er3 7w{pCQO^:ϊ5+^M>/0dtm졊_:UP}kGc4; rTaG"y #gdJ<UmY_Mcźglub@~e5QEQEQEQEQEQEQEQEQEQTyG c+築?Z]+CdI0<ҹ_;|ev;0ْgJc|3`}G+TA'.xͯkHۡDoG9h$<+q;(P9$N/\jVf;N/zNWUC۹\U#+7^O|S tqGnk`Mn$#pZOKi V׊m*(/. 0ֹ/2ҼW($^IPbxcږi>%ɶ&|xᯌ5kUKłMqs^yYV5@ 1׼[Y4rVQ7c!ul)?_TcYۅ%\~:QLwTFf` OJoֱI}M{4<9[i n u5cmj6ڎ!Jx|H|\ RyWDktG2^5 j:,k ,с+t_[.2A4M 6(VE"'EQEQEQEQEQEQEQEQETI.%_ďW$M7Nш$dsĒǩjHir_Iime)HEhqA/jmnOGc/Դ<hM ނo豓yBU5ɏ31oՎfV7 4L:ҴW?&owSђ E|cZtMnTNA_FitW$jq*ʹwVA.J:=NgúLq9,qQ?P)䢂IP=jڥ􂩟9n>2<xӓŚ [fufwI?-AZ r#XڃW7xcKuK۸CMlۑȮc-yŏp#9S{xP?ɯl"F5u'/ v Si^ɵCv7G$;hZY3tg'WUËXıj 2y]k"d=W?~!YRi_x-QEQEQEQEQEQEQEQEV+hi$H2OJĩCw.R3`>|/_T)`*>}'imvGP8W;yhPy o#I]G{k%˺9)5ZvSO^ZIc#]W¦r~lk-;6ifx*e7EWv]wJmcJNNVF@kZ,g&YFI5*F bczou(UUk>9Xh]:\o];I"~|G՜5+১Vu1;ո~ig៼9?_?AQyWj{|j|Fmu˸{U)>xMoxWQ;3?5Vm>4jk<@}E?һⷅu;ՂCq]ݽbKyD=5ltV>{e,S"-mo 5"ws)נs66g+cw>0Ք~[ts./ ߵaש5R2[A!yz54k.xMP\%` #_zr=ih((((((()ŘI=oyt-&l@HJ]l?j xE$U\|qikCPbWMq'Éj]#4NUМ0?Jk6:=7w1ƈ3 7ѧvhaֿ|su=^OX8~wpk>LBVJ5k51x퍬.+on<;Isr"f[>2ibŚt|0+i+6yzyjsJѰSWjռ5OFBmZkTExr.b xVγa+ح-" (UQLu m6K(MxcǖX+CYaxn7ۻRpG;źd*#k;Pռ P4St9WEb^6yv^4jvu2W`: Z(#{Zi=C[xDbPng5-B)μTQv j2Ǵ V|;r{[xKKv?ZmB.-fIbq)Yx $QeB"Ny-*[ǜk&Ծ+kei-?t+Yxke孔A#D k7'|}us:Hϧ^t/hOhf");s׵E4w,0daa^Ucz&a]B >7o<-@[d5}gjvƟ C iEQEQEQEQEQEQEQA\|UoMk\y"%'MFR}p3_Wx3С X֝a][NpvƤ?GS-k)m.Y!qiMgƫ.M*M?ƻ߃VΟ& f2r^8mj;\_؆kHzG_ʽӌgj6]^Lă%׊jF7IvKZC_k5?wr8ׅEp~;e2u'A\1)xOvmq^[ë~ex!;H6yG>64=Bb-?,~( QEQEQEQEQEQEQET,$N)UWcelB}kվ t-uP-{;tƋ[]_HLVk,q^OA9mm2yS]+?R-uk)m/"YaU|  5'KM'=Sǚd6̻nf샽z<e8E.fiRkK~(3p>T,k?|]9B7 ? _K͒X@||konfQOݦm97$}szP !x6UK(sYk C\\n>|Q}lBMGQף 59j4 㷒:v ?Wc]FCQ^y^yOxYG\֦Mrpj# BےU-x1oK"_\wqDeQɌ4RZσ|U%,,pƀҼCڼ/Ֆf ~t.g^<ϳ lo/m|95M( | [_ ev/3LܜoKQk]: 6a <]K"RH=kt5K lPZVƛrq a 8+WŚ LRosGu &hyCjMT^/Zkvicf?vOŲxwB֙7ן5 NwjW_;uJ%vEx-rY3<֨'d3EX: }S!8ߎi~EaԠ>~7\S:W|]ާ}&Ny3e#'"+^0l>6X4Y=֡r  ~'x#ðJv^=/ÏKPcS m+~(x:?jcYlr}x)ܲ }}yaAYCwT UҊ((((((+?SMn/ep…M|}}f>-nvM/^3_M;~1;y[kc:s UI=Myx#Ŗ7(;3;RxŖקMfϛIpzޥkdrSE"vq^[=JӮ6ڽ2AJqO3_^:F XWiVgW7ţ߻ ^img[Ek(EV^Mze!#0 s6UI֋ˤOBӚ]kD3ۈ|C:/DRk !7?fn/dDu x'Ě*3(2޽VWW+o>&_~U/.'7:&n?y]~i^{URh>QTGV-nzQ1yfdGkz(u+s~*_vZ1j#[f;vX:Ljt.|< tq3zwzrּMߋ>(}X-V[DqJG&| r+>Q%eP1jk^:&uKhktrp8VW~ݦs&f((((((+ž;;HMLMs̀\? k {O}>v^mmحTVC7e^Mж:vuj.-2F E<|?eˋ-6dl4,zUi_j`;r {W=sV<o4f6M"9x Az$#FrTJox [٣ҭ+oz֑i}{oy6rYi#{ƛnEBKWm_^7G'oagmuM 89>DvO F+f?d/Ү^T]cP_WWk:**yoa^ QM.IB[۞ M{-EtH֬69Q0S}k%BH-,,dAֻxŚ$w! X5*") ⻋%9{ 3';Ew𭷄? 4c'dҞE|;tgz*Vg%Ք4L35DƓ,;Gn=+%_QU4]f8U#=E'҉C&Q^ڕ9o5 Qx87ľ#ƻ0Ѯam)Z7enດw? ~2k,o-ﬡ*R 6->."VI>(oheT$^?,M;I,Y#A]Ox~oQrbg^ooa!Qs1Vy]h@;5zKíLhp3W@(((((;W^~ Tkݧ5 |: "n_[*(*N:dSrsw a|z0kzkP)+wc j/kiu,Mz~>$&pAjτ~Q~Ɉ8=kXeX~j> oI$:5Ǽ^)vi5Myxwz&c]-n[|n6{\/&aBB=Hz$Y۴Hkbz X Yz'~G3$2s[KGtE+s=V#EyKu$W"P$ՏbToTsФ ߻aSGҵQel?rLӴ֯Nb? 鱎_Nv%_4ؚ- t\*1f{!{?LXՏirkǩ&vgZ4>yMr@C]Ay4Z>ﬥVGySW"w0Ĩ6[hk1dV81!QߏtZ_5/j knLH-8"^W%e#K(фF}%Cj񯆡O,Am-w \?Kg4\g"HhڂF"cĖߠndӝ*_ ƕzy|358q8WXZKs1csjfk1Z˾\wſsw4qn<Wďː]4((((((ȯ~<{XV˒]R꒡ܷԵ-A46_ #ֲ-o1@Uw n~{Qǵ~=-<3b |ώ벽7&!Tu5kWpxn.$A+حn`gD6 "J,(WzbG?`Yrl)e2Mx_O{ wO by^XxCL /v5q+[98Y~ /GN q]ei/)*?xu';xl攅 I^T|7 D1f}9 "{q^Vw,-C&@$WTkAhV׿h7Q>S3}\qkKm:[$1.I'mͦY6UP*;Wf&0Vms[Iӄs;Ivt71=OL,ed0 SE⏴[B~A蠚'Stom\4R`G8{z֯cv0tP`ڇ CF9ci յQjr#$g> ^&ݶ*A?<9;SlOWZ:k |'2c`2]<][:"NNϯJF>'jwTbdcJZ }+w^~H"81Iף\4|5{Tm#_UxXMw}X+((((({tvS9ƌğa_2Ɠ6Kg_^xgLO21!u gqt.Akw|7Ϧ]m/<,::g~h4&m%aҺ~(xk"[ubGL}+o̺,&7OjZZ//@=)9תM㒅8Y/qs\<xɺPa$AcO5$o[hsK/$.z2[r|yZ~+x]>)j7ggAx" i+5n$#VW0oåj*lH77/^ Ct9t_|Ga#}?k?ɑ_Z]#DAw+WVZ%׊_ 0zQ⻏j;TcҺxW^*Ok?-Nr[WuԺ圂n<;x#7EƯoho4Oפ͢xFfc$W1O~$6icbGZkZƐuy9*IT o h;+!\>2hZeÍ0q,uO4%hB:W7xO[8O/8HsM?H!FyW>> o>O 9A^Z0Ad\V Iq3Xx^cpV~:f/[rZωP}Α>Y+!c!|Wզ6C=@)8Eb{Ӊ:lrzҮ~am3!Ҋ(((((;W SV]#n_<%=) uvG?6@h~+>WYSOgWxh63i,:\3_AVKaZ"E? ڃ:bKO 2^[gHm`|s^p4_|D?M?MȀFp\d^ii:jZķ ~3\Kf|c]p‰EgP3X$ sN,jpsڼᖉ?YRG]7Voi887z.j=SF"⧃naDwVH|gz~G]qOV.{MgVY Zb8'ں1rV&uuv>bȥȮG)>κ 'A_?WIc\+a׺!k3-.Ogm/ XG,5tWK4p^GTP9,p+>!i_c_<}ki#TϨ!=sR J,>&h h(O#41*i\j|#h|,{)7fH¬CK<w5~2xj-gmoRO_ŤwSr c"/x'9 :g-OW{cvZb%B+_Km+~Cgۏ]d-!a¾9wQ| n5 yzd5}?zYMRg^pȬ"4Ka!w}kh&}-@9eɮុ/eLA?Ȯƚ%V"ϭpƋw:/%-u h֟'R=4j~ĖX[lW :j7V0_3>3Z.~!x Z[wH98ֽ+V#4 s^;*]D,:׹+Fu4\<-xՉ+5!NJJKwbo-4F܋z{ױk"/6R(_j._[C 2Fps\2ַ$<s槬$ 7@.HX5T[լfᢶm Wfuow-lFckc$sϪ1777kM͌m9]L^H@XmUyo|cOMw kgivpo[x\5Xƪ}gO e{-]lF_h}(=+E}i|C! 9gְu?M񞋪rZZkmb:|$~5ƟHGae(J|Cڴq[Of?o/.bU x{u+ ϮYC= ƣ<'}eiMRqXc3V]Fw[|qsZ~jFDxf_ƻQR{ K]o$.]hlC_ײl*0BY:|?VCd2|J%w2 Cl/SPXDW`;א3;/W&;RW.ZҊ(#}3vczWkVڷkvϦ6d3Wg4, }*ޟ=LU[m6qܦMjX]B"AYAk;kUD=@}寏:x*OI$׭|&&*(((((V <&,_s('}[@ +ɭjGNh.%&GpHֶ<j\w:%ܗ+k)sI{Q7Z߇NםKzgXXm1)obkpX ]7Qeq `oEݤcuxiö pť0%#j4 ~`n-bF4 ?SL46GEe#FA?Ox]ktGF03^-'$=X6*Ww4:\N]q?V!Q}*iffvZFWڹ/Bκ (#LAwn"ZRzW|OHH FT)ָ C㟉/1٪[„?G?B@j(]T8;Nq^&7ާ'^0á{X״]?R1 gV gmD\&~aڕp}___񭶏ak s-ܻ0thpZd=xIs^EQEQEQEQEQT'1 6`x|ů_i٨K8#QW|{eMJb@In;] ;/ʚ?UKIMJطt@J#Xy5@kx#1so@!A5'孚H(,~_ c }*x>ɩ]%ˮ'r? ZytZOl[Kp~ +_o)-ZR.bŝٷq9>"i{!i{\cQې> Ȭhb!\v<W"tmƖ'k'V{--Լ~VKn/n)cR:&p-杇ʋް'sɫf6ZW{yLTqNԾ%\i#%u/ @ ^c,Xy91S+]F!Zf Y*-IA|u ݵw pqZGXլ@p=EYv_Gko9!PxSҼKkxLK8dY𷇾xqVC{kup:!'v‚8KdU* q?‘HPژ~*xETy{"֎m+ReKApP9t;1ιoN:4vc&s9+L-gW]B8ܟ¼Tx|%!oN-kʷfb[yzcpuO]Y^Ǧ&-\O+~:Ϣ%4c<r8p5;d {eku^>+)Ͻm?oJCs*ך(}kmѫzkh}Nq9ʻ5H^EQEQEQEQEQYz>5} /t{bYg k=Yi UpdE|}Fhn]O`븏_ᶳ]cJ!km5ŶE9#\U*+ {-4WxOZf]>_¼ ߎ:̬ ~D׼y)kd1z5?4Iav֤Vgw{{Zܐ; ʒjNw-q`p \gl#݆FbA OR?:jI{-A~&k5[y#0u,$cH]mVjpN%aj};z[!x;~ė c03of1+(՗崻no5IE61Ut[MSM2I ]^0*Oxm`uijey4KN:H85ھ}iq{B_'yŚ ]>w_QBkY.KAk<()ҡt,+h-l0e@**c6x:C'4W '>0k}&5KZWg[klcm#ci'EtT(?j|5X|rndB- T]ڶZl"P8~n%wd8x/tM2OJJt#T hœ85l^'>it?Q^X*HG<:'Yg"^]}XGѣm='+OuI5G@9et}+>>6k5Ze,OWxƱ<,pRMq%cSr׾1#1+׮bZmD)ɵWX7𯞙wcZSOM,H0H@NL1JFU8k ҷAں}n1LH5(Q+!Tui8Ȳ?V#vB3A1sJ|9g^^E}]׃|l֯t/iW#>Kḳ~_ t?-pan᫧mATsَ+zZn/|Ă㬨< 9qWoP?#Hʺ#)dW#xC՝/٧<`;Nk ìFվn~چ{6I\#~nT~/q7! _X4)"m$y4mNKh$91 ?/ _}yMwQw[y3tV_P8 :(((((u-ꎦF9nzA}t*U.=B-Ṿ* 7FӴ87}jZa|15xW`sWA=cgDg^iiS-ĐD+~}Y5Mnw8xNs=›:PxWKi=F'`ɭU`2 xg[7 pg_ֽcږ}iQ;W|⼔ F1sk *0ʀ7Z{M99)H KVV+"I\b?X/m[ܸHFf'\?<˫iM=:_.+MzaF1ʳ-nY?UZ MxŶ!Vo%U:4O |,V15C gGT|* 4'V_ \nfZe5dQ:^݁ƹ$w.}JUXC+jvOAζ#TsFK;KƔȏ^޼㴅C7//zސNfq"xHxiT3u=EuY[EooQTp*;Ra}/j?Ez;sVG⟿[?}EQEQEQEQEQU̲OFKׯ4]C +P oFnjkbTMWN5s~5=P,?wy&~'1ku} 5Qx1_v~ ߘlKk wFxsI#dL?y׈>I 跗8W++Y 0A'-vӯ [57@e ?VӴ:5=svv[¹\o7Qz \U?o5EC o8n Hs^\ l69o!-CY./[tyKimMqg>HSMsTPӬDKҘ=ƩikVEp/=i$ Ecs.~&w;ִ5[]^%ôI_硫nZ?!!(;dk#z4Bg=t񖣯_^LdXPFW :oH״?GՃNneHӖ栓UѴ3@l kޡqx#IA<5yiEDY#w~w |c,;NCDV/>u` =㵌 $Oeow@:|?Gf{M+kAE ºG!v6?_^ 1PҼg/|=umS^w70^jQGjܼ8zV=īH2YOvq뫲IfYbnC)ȫhɶåEnZYx((((()2z/d*s -I9y*_jMzFZ(Z¾Ծ$K6^J9#$~ k>H\<%IJ6y?{WvvV:[İkZ9h^g2Ӄ`G^ WosT_/G? u/daH;|Q Ed:ɎGhզGyg(x~^Ƽ㝳K 5^Ch67L"gVC`z8-kz_PH@Mx>9^,?/zy6[ꗑ M&q־q2.;D_ݏmf˦<3[Ն8W'eˢk:4MxҴz](7kh wQgt+m8EvatCJORj|2lpXJ;kᯇZ+#37Ax~NV2uh汴_6m^]K}7):jv7GeҐ ~Oҍ T/9Kg}|/=}b|;ahiS)rƼ~{K2/kVZ|k׭kU!N2Pvc.+OWlb^lVJ#}F[Kּ?OoexgF H$WSZ|SM9eSM3Ym{ J%Mѣ_n?_XLӦ-4}2i H >Cފ~\zF]Z ['^@j&ut# @7t=GX2ʻw?ZuDŽ|{uᕙ?6;C|C^x=Cfa,s^EQEQEQEQEQA_$k6^?|af]5 uOv9tOš 4'5|7f*(&t=r87~,JM.n$epp^k 3oks/2R λ\B[ysA)OQֺ?u1TާXc90=L1Pƣy '̈Bi~ eaxv֬Eq,j)Wx#$;4[͍ # ٹ W9S]7m6fHb^y-Ċ3JkǚΦZ\;|ipG] wjz{Wu)ΈARď]:g@R1q^iJ"1ҩg ;Dd690`z 8|E!Tui8Ȳ KI)qHG/Z~R$HH ǿ5zu4s\"Wz>'i>" mrMFolנRQX^'F.3+>\.+; ⦭seᆲ25S\FSVʹ6$.#DuPda$8"o!xNg}*ki,@Xбx{v~ kE?t=wQoᑴ@mgaOXtI{hMy ] B66d%jNYb2I^W^oWkezq^?|> !9XF07~QEQEQEQEQE|C5]?Pa?t'Չ9xdHbϴ, bsMkUY ႀݓ] 2YCWKa *#nâvOQXZ74;:fomkv,W AٲZ0knb͞ED25ZVw kjЬC]F23Uiz֭}b&kч!y׫>wt,˂پ|_cPl=9fҬ y ~_ʴx8bDOEyUTdڼK?^ yY&^7Ω~\s+)RxkźՍIF,j$;H cAxԧTFy"GR`7/ݶehMK|#7/*kAOӭ#Pz™D;#!5=?tʩ*;tPp7 OPsjKVp+>4jS >mqn7_+oVn(^Upd#ǂ3@yl)"Xھ2麲yEp?Ǻ^$w H-9+$cwجjP Pyeş=Zu#3G_K֗2ZȞa3<I|w=`Fz~yo3i [AݹwwFi5':X6$8FA xMg y⻽7K,$*cc? [?|헐uj&`V<"?|Kruݹ%뭃}}!c> Q٢(((((& kgx^w W[O`ͅN=}9ڠwyQn9l f{maiR4fc+̼CD{{{N~7n:fv'N_N,Y,W{QҼ#4 _zg`bpֽ?k?\2"주̄1^x[(/>d⭷/yږW|NԡlM^:]x.'< c X}narq]G_ IJ7e 2خN{BD$^C]_<A-pw4-֮9*zfVMEE^ (> yV>*#HبX0yeJ~ʠ7-ԛm{Pk-ɾz ԑRIX4ڌo4gL&'*sqo@Mb8k!:/Dnu"H*58K6Lc"X j4K?g~l]bڬM] mHͥۂɽQQaSK/jh-׬FR2j6qrcKg=kƾ^*NE״wO<=+l>i:5yIخ_he bD*/#יW1Ck <70s-oC}HͻnH UMka.+>:xYXihiWEᏎaVD_O4Mn :2g` oAKQ|q J>[Z{;ۦٱ)QEQEQEQEQEL: B/#M͜1\yo?¾͂d9ǥxſZxWG/vɰ< M-b7!MzlVV;x@r)ml>hf`*x}Zm?P'BżsޛOÃDy =qx¿Bok2ko--[<lEmI/EQRM,pHʨ$9&U5YGFk?FQyeq( 86(_0ޕxCZ悗{7SW޼_%-ofK .y5^,A ۆG+dI|RGgI;mLK,jLI +2V༷`J_D-LW(q\y#~dE?5<32ohu^únyj7;Z-[Ð?;6~vjO~1\V}Zus%,sj/+zW]x.ħZOHb ʨo/B Hq^q| 4^Nqʦ fE>"+y+)k>24[cfNޣҽxQ+>cZlm~Gq4qs+I+nZ((((()0kω<*lfewvW$j#qJ xO"=W⎹^|k) qs^E&xL?[xy2L֯g4'GPU(O^6Rnzku^GҸOn,$=^uK{[ 5&?>0Lӭ~+g|QMcp,#cjo> o A^#$WRr+uռcx>^M= { <9]7b pB>f>qcW7Kcה.Tާ'Zo~ E$ ˌhI}8UπlGjٟYw0^/^GA bebF\}?W<\m~>d?6zZxn%Z/:>,C9S\7Q&t9=z W|PvI[~UTh]_;CJ_R٘rSXxvkHn_b;^[u 4,̮ x&f%t.yZVo^[8hPC#Hl:@ׅmmvbWPs]x#RъLJ{h.P$Pk| 㛽n("p? Ofu_Ih]) 'q:m9J((((((xOlӘ3FC>x8+ȴwyM렂Km? hO4粑gk 鷚Ov Xu&cy_ I׸\^Z~6*{O8܊HSGZƩ[=֛pۧN}EUimt<g\|ALjk}>& WA vQT@Ҧ#">kA0s\<{s^ t2|~+L!<2659#it$մ>!x[4m=sGQ;{xG¨y]7v3]H ]<73mb.Ҝu5EiX=uF𽍒.ݑ ܊:~l um9/K"2BTÊP3Qqd5>/c.Tvt5nM[×9Y!rUM{5E}+7k7ˣ˟n碷{Ҳ-*T1\*WW7xZ[ɎF:Wl^)e ,R2@A\ΡGREc+):<+/Bk,7vAJXֶ~7bX$l~WꚔF=˅$,rk<c?}q[&Ȅ7JSW6Ǧ[sll MFfI#;WJk6\ Z6]#}\׊&.y~d+{ uqߌ}GivֈXc VQEQEQEQEQEPzW;5 X:/+WZq1%^m3_cj:|d O|O3f9;z_xJ-o퓄9${> zd>(i$;brGZ>giYıƒIu}mcN;Wsc& ex믇^=VrQd^ݤ֙ UV쌛yc?ʬ)R0x,|ahTCz1̽s^sx\{ 1%;b9}kb״}:Y%LVt2 *-^,{k_#nN:Wzcx5umlʷwUJ=K:8A {XPxFeж\qu{^/6"]?i_z%+mz|:T`b8ѝ?uaV%KC|dpNkH#hC Ic]{ęT~Bׯ* 8S>(^:3\2 x~ |27:hjv]i+G$T8+ςEΖK%?ѼoO5Ő9|muGKm`}IT1NEղ1^kFSaN7_@ O߉ɥCW1k֦BRa2;Ҁ t((((()|Ÿ$т=|W|A<>t{5aXf[;UmooP51\?>!Cn:qs^ox%:05 bx@>t$t> /~x+; 9;(xgM%j"c_=,znrp>xO2ގ$f7zteXȘWSA:|v;cƶ3\?iZ}3^ڼM<7ƕ+;#>v:$܏{V4]HxpE]gtp*0>W=O]͎"CMyƯ/MtptȯG_Í/‘1qxF^w9AKER1WKgMkKWߨ܍"T*M6ٵUwj76[תqҗ`T34r"2+[sCU,YrC'BkuxcO쯶lE {/ 1H?[ԍK1>?qOYZO.!gῇÞ)CqMvQEQEQEQEQEQE|L70$y㜊 ^/g܊ys)}yeyWhP5JdH|[^OS /y\] +Wm<7e>m#K';N3y[v(j+1+.Z'."m9q4.Fes\ÏOouD^ I(p})C( W⟅ݥ}%c$?K}FNN+WK,-IMg( wx:*jz+ⲷhFk G+c^ rCklుa#F pcڗ42`GRxŶ^dUQ5ugU"H GYzvcOq V;KAY?k"l;^-,>)~/Oo+UUT` ?0Ўm 7\6*_|&VI= WJ1ҝEQEQEQEQEQEQE5*As_,dFڅx;FKoq^H*y_>|Ix/?oA'{|9\P𪂀k;N43dص~ϺaCԝ~y'Wꚵf7 H9,kt?C':-ܘ,A*=s^oq)4.7PGz󯈿VYxߊ4?Pq E: 񦕪&y߀v u(Ԁ3ßĒh"_&4R ^W FG=iJ =+U𾏭!}5j7u!զ~Y"m#ēEflLtjTҾ/.j%k&_֝_5/)µ>i*VMJNGuOp^&DB;jiMJLbº;_@~35yn}iͽ1oV6k.x%}k<9ͤhZM3*[ [?z[<.,Ƽz+C2鱶b#Z=œ2 > ~<-O4&y74>`lཷKyVHd25x:w"+veITa]T}4ifKnmީAܾBĚŚό|[$2ģ5Ï -onT y[k(((((((ҹOfxvDaRbltjVPOnh :dfοoM PpC3i۬c ؊ƨ 㟴Ӂ;8R*| r}쩹 ,xt xj^&Kk xKº,)hl>Z:Զ;hQ.^Gj+ 6hڎ>ϪE#/4CpbLf%7WF A=+|y;Bkk YU1mF㻵k4I!u"AxQЭIR2qW>|A SXp4ZF>o<ѵl#nrXhCKMN1FGQ(ڎFOݱYZϋI҈\f<[X Ge$vVcJiu=sƞ#[FK=*7,J~fi=>_د3O׼OizYeaL0{΂PIF\l`mҸoEӼ%fM|G מxkߏu/[=ۢnvXGoo4UQwTFa7{o?yi+ >Ycq |WφӅ?,L3Ǩ⺻OXK [v=&//Gq /[.,)b(,l4Rvڳ/cc5e&Jj^َ/ֺ?4zZvIP?|UYE·G&㪹zJՎ`|)Y;$r=EbxEYk4xj5kbڗb[FŋN+WZNEu4riv8B ziwt]:]Z1Z|-k-E[?xHEq^ݵCCsq -,*F,q?|ZyNX1FB7d_&M&-{qq"U?QH@$l4h IDSn\+\6l* k~,(,"5|צ[gCQWpGA_0}U) }k I>".l/Tc;=+ڻW -,"snJ-QEi6Zū[0Wk _6)+Wß]7Ķct)r0 S!IgXd`j(hʞbTM^n!cf,7dj%\e.Z'`R1>][ԏ6rx5ү7 O<1YOq"+k!w"["(9=Mz_è5I1n7_#FWogkuq|jO NծSCb*_4{cY\|GY|ɷֻmk4N8hZvA%Q2H_|Nм4\]tX993e+&ߌ/|>)ngIuS8v t(K2k^P^y?ɱ-hv\N0+ۆ6Yޱk]ȫ`OZ+>%@]џd1¾W4𾊗WHGz`Җ(((((((J|S_X]v>9S_'ZV?4/nxLq([Y[޽jZ(3Epk/_Dq*5yρ|iu纶>Kp+OGַ|rdہ}'Ś.cR 4[kyABۢcՂWDӓQ{i\a&ܖЬj͸W8v+B3Q-gr[@FXcPԬ#/ws*W`+2hN,zd~> ;X_MӛxcHzB^ 1A*"Q*P-dQEZ$ #V'|1aI G.G$ֹFs1=fNVRl(}k9-uXs~((((((()O-`9W'A๷~Wa_Ox6~2ҖU%%<]#(UZXU@',EC'Y(x[G"x-[pk_Ф~bB fŧo _0F]H>F4RSmֶM>Tw`9}ϊx9o'`lZ|%+`[iֺ**P>(]ZY-۪@-_&x]ֵ }tI_ |DZ¸ˮ{קTnbAh2ǁ_<|Tɣ貕^%O/X x/oQӐ嘏}+ >L!Q@QEQEQEQEQEQEQEQEQE!+;"9}oèF27{[[/-aoa_Exem`TN7}+҇AKHyx3Kִ{á+&>l1߅fGf9o0pGTy /zt[Wyr -<+V,*<I? iX|t(=*դ7qIꧡ+Ŀ5}KKm(g +# H aT 7 A(d;xY̋$%1ι^y;Ld ' ^\B"l2=qEQQIrEǰZ,+x"pP3}+KX@6ƁGSH8ERMxz׶ZeshP:R(x6N@!W|(oNuWrDC{WјA5_W?'gBT̥C޻/|EC4 lTQG5?yncVSE gŽsIlmInWx͗.E_f=5)  `:~5reܟE$t ( TQETM,,qVc+ǼwK2X.n@~Umwq#{?;Y#!+֕* ?QEQEQEQEQEQEQEQEQEQER`TSC4Rtad|Ԍ*nycx#V$'F]gE%i|:ne[W1 [5KEW^ֿ vQ$_/7.$|ڽss^2xk×Z?: 5b牙RcNъQKᆭHZXW׾x7^_fSd_{դ K$mXdi:zp<Ҿvau~9V`ׯ,2A#}XHS&kĶ2Ga]Gmj>(EsdEe w(4 )$+gĽвp3HpFNO֭x/6YR6',9j'Ҽ+nX[(`>iHqREQEQEQEQEQEQEQEQEQEQER0x wW^PI>9x_4z+zG s^6E=ū#s{m)oBc~>_tf%)ʶ◵QY!+) O^νn#/`8'Ʃy:5ɂ|ֽy2}G?fh[yQ}=v[u".2ɞ^{~hGu}J((T Q*J((((((((((((R0kt?}f#0>( {h^CϋzH5'#<[QR^g+м3rme>: \`{S$8q\εh?ڵ8wk̵-ѥzIҼ\oV[U_99Ğ%rڼ1&Y<+KH.5/˅i(5p6,QT`U8((((((((((((1H@KEHW֑N̼כFO%<:f\)}-FqH|57KFQEQEQEQEQEQEQEQEQEQEQEQEQEQE*JZC0?L%|%K9j5?NiD}뗿6Pʽ;uw6_/Ys=up1U-86zgя?Y<5/Ɣh,'gԿ?zz\WK?[6Wr}pKښN0u\N_KHYs]$qh4U_E&((((((((((((((((QE`S4QO"ȣȋy'*LQ((((((((((((((((((((((((((((((^(  t zhttp://www.cs.northwestern.edu/~fabianb/classes/eecs-213.htmlzhttp://www.cs.northwestern.edu/~fabianb/classes/eecs-213.html 4root@eecs.northwestern.eduBmailto:root@eecs.northwestern.edu Bcarol@rhodes.ece.northwestern.eduPmailto:carol@rhodes.ece.northwestern.edu2/ 0`DArialicawmantt`5 0DTahomacawmantt`5 0" DTimes New Romantt`5 00DWingdingsRomantt`5 0@DVerdanasRomantt`5 0"PDCourier Newmantt`5 01`DTimesr Newmantt`5 0 pDHelveticawmantt`5 0 " C0.  @n?" dd@  @@`` ph( D`8   () *  - <  :  Bi   $  "&')+,/<44!4>5>6@78"9:*;<= >?C@BEGHJNOQSTW\]^_`abce9fhijk/X$R$Nт۳ Y*2 AA1? 3ff@338; ʚ;J%5ʚ;g4dddd  0ppp@ <4dddd@k 0t<5 <4BdBd@l 0tg4<d<d 0p p %0___PPT10 ___PPT9nnIt>"ՌPNG  IHDR +tsRGB PLTEfffm cmPPJCmp0712 7tRNS@fIDATWc`  SP1H $XLIENDB`? -O  =>] Introduction to Computer Systems!!$~Today: Welcome to EECS 213 Lecture topics and assignments Lab rationale Next time: Bits & bytes and some Boolean algebrajE (C (`%Welcome to Intro. to Computer Systems:Everything you need to know http://www.cs.northwestern.edu/~fabianb/classes/eecs-213.html Your instructor: Fabin E. Bustamante Your TA: we ll see about that Your undergraduate assistant Helping with grading homework and projects Communication channels: Course webpage News eecs-213@cs>a+ > K+ *= 0Yo Course themeAbstraction is good, but don t forget reality! Courses to date emphasize abstraction Abstract data types, asymptotic analysis, & Abstractions have limits Especially in the presence of bugs Need to understand underlying implementations Useful outcomes Become more effective programmers Better at debugging, performance tuning, & Prepare for later  systems classes in CS & ECE Compilers, Operating Systems, Networks, ... What do you need? Required: EECS 211 or equivalent & Experience with C or C++ Useful: EECS 311*0Z&Z,ZZQZZ"Z+Z0Z,ZZMZ/&,  Q"+0,  M$$qCourse perspectiveMost systems courses are builder-centric Operating Systems: Implement portions of an OS Compilers: Write compiler for simple language Networking: Implement and simulate network protocols This course is programmer-centric Purpose is to show how by knowing more about the underlying system, one can be more effective as a programmer Enable you to Write programs that are more reliable and efficient Incorporate features that require hooks into OS Not just a course for dedicated hackers We bring out the hidden hacker in everyone Cover material in this course that you won t see elsewhere )"|e(+<)"|  e  (+<b TextbooksRequired: Bryant & O Hallaron,  Computer Systems: A Programmer s Perspective , PH 2003. (csapp.cs.cmu.edu) Recommended: Kernighan & Ritchie (K&R),  The C Programming Language, Second Edition , PH 1988 R. Stevens,  Advanced Programming in the Unix Environment , AW 1992; there s a new edition by R. Stevens and S. Rago, AW 2005 l a  a  9  > < eCourse componentsfLectures Higher level concepts 10% of grade from class participation Labs The heart of the course  in-depth understanding 3 labs, remove the malloc lab due to lack of TA 2 ~ 3 weeks 10% of grade each Working on teams of 2 Homework assignments (3-4) 10% of grade Exams  midterm & final 25% of grade each  <a (  <a    (   gPoliciesTLate policy 10% off per day Cheating What is cheating? Sharing code: either by copying, retyping, looking at, or supplying a copy of a file. What is NOT cheating? Helping others use systems or tools. Helping others with high-level design issues. Helping others debug their code. Penalty for cheating: Removal from course with failing grade.  Vt(   V t(h Facilities TLAB (Tech F-252, on the bridge to Ford) A cluster of Linux machines (e.g., TLAB-11.cs.northwestern.edu) You should all have TLAB accounts by now; problems? contact root (root@eecs.northwestern.edu) Need physical access to TLAB? Contact Carol Surma (carol@rhodes.ece.northwestern.edu):*@*@>.!  0  0nLab rationale  Doing a lab should result in new skills and concepts Data Lab: computer arithmetic, digital logic. Bomb Lab: assembly language, using a debugger, understanding the stack. Exploit Lab: understanding the calling stack organization and buffer overflow vulnerabilities.&55jSome topics coveredPrograms and data Bits arithmetic, assembly, representation of C control & Includes aspects of architecture and compilers Memory hierarch Memory technology, memory hierarchy, caches, disks, locality Includes aspects of architecture and OS. Linking & exceptional control flow Object files, dynamic linking, libraries, process control, & Includes aspects of compilers, OS, and architecture Virtual memory Virtual memory, address translation, dynamic storage allocation Includes aspects of architecture and OS I/O, networking & concurrency High level & low-level I/O, net programming, threads, & Includes aspects of networking, OS, and architecture PhPPfP#PqPPhPPnPhf  #qh  n$$s Hello WorldWhat happens and why when you run  hello on your system? Goal: introduce key concepts, terminology, and componentstInformation is bits + contextF Hello is a source code Sequence of bits (0 or 1) 8-bit data chunks are called Bytes Each Byte has an integer value that corresponds to some character (ASCII standard) E.g.,  # -> 35 Files that consist of ASCII characters -> text files All other files -> binary files (e.g., 35 is a part of a machine command) Context is important The same sequence of bytes might represent a character string or machine instruction vV V.%Programs translated by other programs Pre-processing E.g., #include is inserted into hello.i Compilation (.s) Each statement is an assembly language program Assembly (.o) A binary file whose bytes encode mach. language instructions Linking Get printf() which resides in a separate precompiled object file Z2ZZ/ZZ>Z ZAZZ2/  > A  >%8,Hardware organization w Running Hello Running hello What s the shell? What does it do? prints a prompt waits for you to type command line loads and runs hello program & 84R&R| Running Hello } Running Hello ~ Running Hello Caches matterSystem spends a lot of time moving info. around Larger storage devices are slower than smaller ones Register file ~ 100 Bytes & Main memory ~ millions of Bytes Easier and cheaper to make processors run faster than to make main memory run faster Standard answer  cacheVd<Ud<U   Storage devices form a hierarchy Operating SystemOS  a layer of software interposed between the application program and the hardware Two primary goal Protect resources from misuse by applications Provide simple and uniform mechanisms for manipulating low-level hardware devices&iiOS AbstractionsJFiles  abstractions of I/O devices Virtual Memory  abstraction for main memory and I/O devices Processes  abstractions for processor, main memory, and I/O devices ProcessesOS provides the illusion that a process is the only one there Process OS s abstraction of a running program Context switch Saving context of one process, restoring that of another one Distorted notion of timeVF&VF&V  FVirtual MemorylIllusion that each process has exclusive use of a large main memory Example Virtual address space for Linux*M M  NetworkingTalking to other systems Network  seen as another I/O device Many system-level issues arise in presence of network Coping with unreliable media Cross platform compatibility Complex performance issues >tUtU/ ConclusionsAny computer system is more than just hardware A collection of intertwined hardware & software that must cooperate to achieve the end goal  running applications The rest of our course will expand on this:/s+/s+/     $ %!&"'#($)%*&+'-(0)1*g   0` .T3f` T3f3f` 999MMM` lff3f3޲` eoHff33Ҷ` ff!` T3f3fffq` T3f3fff[>?" dd@ ?nPd@ d " @ ` n?" dd@   @@``PR   @ ` `p>>  ]U ,(  , , s * "`0  T Click to edit Master title style! ! , c $| "@0  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  , c $hĉ ":   AEECS 213 Introduction to Computer Systems Northwestern University2B0(2* 3 3 , Nff??"` , Nff??"` F   ," , Nff??" , Nff??"  , Nff??"  , Nff??"`  , c $x͉ "ce  f*"0(2Z , B޽h))? ? T3f3fff[ 0___PPT10.Zj&___PPT92p22 1_aqualab01v  0  0d(  0~ 0 Hff??"A 0 0. "    A Click to edit  0 <2 "3  T Click to edit Master title style! !,T   0 "  0 T2ff??"  F 0  0 T0ff??"  F 0 ~  0 Hff??"A~  0 Hff??"A  0 RAk B?nwu-seal-gray"@P%  0 c $8 "`0   !Fabin E. Bustamante, Spring 2007H"0(2 3& 3& 3Z 0 B޽h))? ? T3f3fff[80___PPT10.Zj&( 0 d8(  d  d N,|yy .   v* a11aa d NLyy 2 .  x* a11aad d c $ ?  4 d Nyy 9 3  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S d T yy q   v* a11aa d Thyy q2   x* a11aaH d 0ηo~ ? 3380___PPT10.eۡp (     Nyy .    v* a11aa  N yy 2 .  x* a11aa  T yy q    v* a11aa  T8 yy q2    x* a11aaH  0ηo~ ? 3380___PPT10.dz͓} 0  $(  r  S B0   r  S D0    H  0޽h ? T3f3fff[___PPT10i.p+D=' = @B +  0L0 $(  r  S pͣ,`0   r  S HΣ,@0  H  0޽h ? GGGy___PPT10Y+D=' = @B +  0L0 p$(  r  S ,ߣ,`0   r  S أ,@0  H  0޽h ? f33f3___PPT10i.,Pz +D=' = @B +  0L0 <(  ~  s *,`0   ~  s *x,@0  H  0޽h ? f33f3___PPT10i.,uп+D=' = @B +  0L0 $(  r  S I,`0   r  S tI,@0 I H  0޽h ? GGGy___PPT10Y+D=' = @B +   0 <(  ~  s *,2I,`0  I ~  s *3I,@0 I H  0޽h ? GGGy___PPT10Y+D=' = @B +   0L0 <(  ~  s *4BI,`0  I ~  s * CI,@0 I H  0޽h ? f33f3y___PPT10Y+D=' = @B +m   0 $(  r  S `NI,`0  I r  S 8OI,@0 I H  0޽h ? GGGy___PPT10Y+D=' = @B +  0 `<(  ~  s *`I,`0  I ~  s *`I,@0 I H  0޽h ? GGGy___PPT10Y+D=' = @B +  0L0  <(  ~  s *xnI,`0  I ~  s *PoI,@0 I H  0޽h ? GGGy___PPT10Y+D=' = @B +m  0L0 ld (   ~   s *ЃI,`0  I ~   s *I,@0 I     `Iwawa1))?P  (/*hello world*/ # include <stdio.h> int main() { printf( hello, world\n ); } $R00 A2R> H   0޽h ? f33f3___PPT10i..` K+D=' = @B +  0L0 <(  ~  s *I,`0  I ~  s *ԚI,@0 I H  0޽h ? f33f3___PPT10i.1\+D=' = @B +q ) 0  q(   r  S ,`0   r  S 0,@0    Z gcc  o hello hello.c$00 A26 H  0޽h ? T3f3fff[80___PPT10.k C< ( 0L0 6).)P78~((  ~  s *,`0   P!F k<[    ZD 1?{0  G Main memory 0  R  T 1? Pg  Z(  1?{ d  G I/O bridge 0  R  T 1?Px   Z  1?8d I Bus interface 0    T 1?y (   T 1?y(   T 1?y(@   T 1?y@(   T 1?y(  T 1?` x B T 1?(@  Z 1?x` ?ALU 0   Z  1?P1 I Register file 0 b  T 1?0(P   ` 1?0(0   Zp 1?k7K ?CPU 0   Z  1?C z F System bus 0  B B  `D1?`x   Z! 1? 0z F Memory bus 0  B   `D1?h `h B   `GXH 1? @ B   `GXH 1?   Z,& 1?   LDisk controller 0 B   `GXH 1? <   Z* 1? ,  LGraphics adapter 0 B   `GXH 1?    Z- 1?    JUSB controller 0 B   ZD1? B ! ZD1?| | " ZP2 1?jJ AMouse 0  # Z\6 1?2jJ DKeyboard 0  B $ ZD1?  % Z4: 1?jJ CDisplay 0 B &  `D1?X X b ' N= 1? P @Disk 0 R ( ZG\H1?H @ ~ ) N1?N  ~ * N1?n  ~ + N1?,   , Z C 1?   CI/O bus 0 ~ - N1?q ~ . N1?P hP ~ / N1?P (P ~ 0 N1?P P  1 ZG 1?- <  u;Expansion slots for other devices such as network adapters <0 < 2 ZM 1?=[ l hello executable stored on disk0!0  3 ZI 1?8p >PC 0 ~ 4 C xPG HAl1? "`pP @,$D 0 BBuses: transfer fixed-sized chunks of data (WORDS) Pentium: 4B bus63003 5 C x[GNDHcs1? "`P`@ ,$D 0 iI/O Devices: System connections to external world. Mouse, keyboard (input); Display, disk device (output)6307037x 6 C xbG{&H1? "``  ,$D 0 XMain Memory: Temporary storage device. Holds both a program and the data it manipulates.Y0Y 7 C x@gGHE1? "`p p,$D 0 yControl Processor Unit Executes instructions stored in MM. PC - holds address of machine-language instruction from memory60c0cH  0޽h ?O@4567 f33f3JB___PPT10".< +<}D6' = @B D' = @BA?%,( < +O%,( < +DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*4%(D' =%(D' =%(D' =A@BBBB0B%(D' =1:Bhidden*o3>+B#style.visibility<*4%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*7%(D' =%(D' =%(D' =A@BBBB0B%(D' =1:Bhidden*o3>+B#style.visibility<*7%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*6%(D' =%(D' =%(D' =A@BBBB0B%(D' =1:Bhidden*o3>+B#style.visibility<*6%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*5%(D?' =%(D' =%(D' =A@BBBB0B%(D' =1:Bhidden*o3>+B#style.visibility<*5%(++0+40 ++0+40 ++0+50 ++0+50 ++0+60 ++0+60 ++0+70 ++0+70 +  0L0 H(  r  S ,`0   r  S l,@0     `wawa1))?Z` `  unix> ./hello hello, world unix>$!00 A2!$H  0޽h ? f33f3___PPT10i.;0w+D=' = @B +(   0L0 ''@<=0?'(  0~ 0 s *H,`0   q%8  <0 0 T1?{@  I Main memory" 0  R 0 T 1? g 0 Td1?{   I I/O bridge" 0  R 0 T 1?x  0 T01?8  K Bus interface"0 ~  0 N1?yp(~  0 N1?y(0~  0 N1?y0(~  0 N1?y(~  0 N1?y(P 0 T 1?`px` 0B T 1?(`@P 0 Z 1?x ?ALU 0  0 Zܥ 1? ~ K Register file"0 b 0 T 1?( 0  ` 1?(  0 Z챬 1? :  F System bus 0  B 0B  `D1?x  0 Zx 1? & F Memory bus 0  B 0  `D1?hhB 0  `GXH 1? P @ B 0  `GXH 1?   0 Zh 1? 0 LDisk controller 0 B 0  `GXH 1? <  0 Z@ 1? , 0 LGraphics adapter 0 B 0  `GXH 1?   0 T`1?  ( LUSB controller"0 B 0 ZD1?0B  0 ZD1?|0| !0 ZƬ 1? AMouse 0  "0 Zʬ 1?: DKeyboard 0  B #0 ZD1?0 $0 ZȬ 1?  CDisplay 0 B %0  `D1?X0X b &0 NѬ 1?  @Disk 0 R '0 ZG\H1?  ~ (0 N1?N c ~ )0 N1?n ] ~ *0 N1?, W  +0 Z֬ 1? T 0  CI/O bus 0 ~ ,0 N1?q 0 ~ -0 N1? h ~ .0 N1? ( ~ /0 N1?   00 Zܬ 1? > u;Expansion slots for other devices such as network adapters <0 < 10 Zڬ 1?8 >PC 0 B 20 TD>?x h0B 30 TD>?x0 x B 40 TD>?x0 0 B 50 TD>?  0 B 60B TD>?8 B 70 ZD>?88B 80 TD>?B 90 ZD>?x :0 Z0 1?tn P ./hello"" 0   ;0 T 1?0 p PUser types "hello""0  =0 C x<1?p @ `,Reading the hello command from the keyboard-0-H 0 0޽h ? f33f3___PPT10i.H081+D=' = @B +) ! 0L0 ((P9=40 '(  4~ 4 s *T,`0   %8 00 =400 4 ZD1?)R I Main memory" 0  R 4 Z 1? v 4 Z1?   I I/O bridge" 0  R 4 Z 1?-  4  `(  1? I Bus interface 0   4 Z 1?vu  4 Z 1?u/  4 Z 1?/u  4 Z 1?u  4 Z 1?uC 4 Z 1?v] 4B Z 1?u]C 4  ` 1?  ?ALU 0  4  ` 1?"9 I Register file 0 b 4 Z 1?qu 4  f 1??c R 4  ` 1?U c  F System bus 0  B 4B  fD1?   4  `( 1? 8 F Memory bus 0  B 4  fD1?B 4  fGXH 1?7 $h B 4  fGXH 1?   4 Z,1?   NDisk controller"0 B 4  fGXH 1?F v  4  `! 1?D a  LGraphics adapter 0 B 4  fGXH 1?? o  4  ` 1?l +  JUSB controller 0 B 4  `D1?  B  4  `D1?   !4  `H+ 1?X , AMouse 0  "4  `H/ 1?X &, DKeyboard 0  B #4  `D1?   $4  `2 1?X , CDisplay 0 B %4  fD1?t t b &4 N51? /( BDisk"0 R '4  `G\H1?_ M  (4 T1? !  )4 T1?    *4 T1?I   +4  `; 1?   CI/O bus 0  ,4 T1?   -4 T1?)f w\  .4 T1?f 3\  /4 T1?f \   04  `? 1? ?   u;Expansion slots for other devices such as network adapters <0 < 14  `PD 1?K 0 l hello executable stored on disk0!0  24  `@> 1?q >PC 0 B 34 ZD>? > B 44 ZD>? pB 54B ZD>?  B 64  `D>? >> 74  `tM 1?Z\0  V hello code0 0  84  `Q 1?+l0@ M"hello,world\n""0 - 94 C xV1?< @4 /Shell program loads hello.exe into main memory000 H 4 0޽h ? f33f3___PPT10i.Kfg+D=' = @B +P+  0L0 O*G*`<?8 )(  8~ 8 s *a,`0   '8 e ?8e 8 Zpc1?Et I Main memory" 0  R 8 Z 1? x 8 ZTh1?   I I/O bridge" 0  R 8 Z 1?0  8  ` l 1? I Bus interface 0   8 Z 1?w  8 Z 1?wD  8 Z 1?Dw  8 Z 1?w  8 Z 1?w[ 8 Z 1?r 8B Z 1?wr[ 8  `Xr 1?,  ?ALU 0  8  `v 1?%< I Register file 0 b 8 Z 1?w 8  f 1?Be t 8  `y 1?W e  F System bus 0  B 8B  fD1?   8  `~ 1? : F Memory bus 0  B 8  fD1?B 8  fGXH 1?: Fj B 8  fGXH 1?    8  `ă 1?   LDisk controller 0 B 8  fGXH 1?H y  8 Z1?F c   NGraphics adapter"0 B 8  fGXH 1?A r  8  ` 1?n -  JUSB controller 0 B 8  `D1?  B  8  `D1?   !8  `t 1? _ AMouse 0  "8  ` 1? (_ DKeyboard 0   #8  `x 1? _ CDisplay 0 B $8  fD1?u u b %8 T` 1? 1` @Disk 0 R &8  `G\H1? u  '8 T1? I  (8 T1?  D  )8 T1?J >  *8  `p 1? <   CI/O bus 0  +8 T1?    ,8 T1?+ y  -8 T1? 4  .8 T1?    /8  ` 1?"l   u;Expansion slots for other devices such as network adapters <0 < 08  ` 1?L e l hello executable stored on disk0!0  18  `h 1?t >PC 0 B 28 ZD>?  B 38  `D>?  B 48B ZD>? B 58 ZD>?.. 68  `  1?]pD  V hello code0 0  78  ` 1?T M"hello,world\n""0  88  `l 1?` 4 M"hello,world\n""0 B 98  `D>?.B :8B ZD>?^ B ;8 ZD>?^^P <8 C x1?@ 4 tThe processor executes instructions and displays  hello&  ;0;H 8 0޽h ? f33f3___PPT10i.Kt+D=' = @B +   0L0 !@(  @r @ S lέ,`0   r  @ S έ,@0  l8 & E !@B0 @  `ҭ 1?> E NMain memory (DRAM) 0 R @ Z 1?q  @  `׭ 1?j n I Memory bridge 0 R @ Z 1?/ h  @  `ڭ 1?  I Bus interface 0   @ Z 1?   @ Z 1? b   @ Z 1?b   @ Z 1?    @ Z 1? f  @ Z 1?  @B Z 1? f R @ Z 1?  @ Z߭1?  ML2 cache (SRAM)"0  @  ` 1? _  ?ALU 0  @  `p 1?z  I Register file 0 b @ Z 1?+  @  f 1? 9 E @  ` 1?W&   DCPU chip 0   @  ` 1?   G Cache bus" 0  B @  `D1?E I  @  `d 1?  &  F System bus 0  B @B  `D1? h  @  `D 1?t   F Memory bus 0  B @  `D1?   @ Z1? :  NL1 cache (SRAM)"0 b @ Z 1?$: ~ H @ 0޽h ? f33f3___PPT10i.LH.g+D=' = @B +f  " 0L0 %)H(  H~ H s *,`0   R p   H3 7P  H Z 1?p  H Z 1?   u;Main memory holds disk blocks retrieved from local disks.<0 < R H  ` 1?pC H  f 1?H  E Registers 0   H  f  1? C SOn-chip L1 cache (SRAM) 0  H  fx% 1?=  NMain memory (DRAM) 0  H  fx) 1?   a%Local secondary storage (local disks) &0 &B  H  `D1?C B  H  `D1?G9 GB  H  `D1? B H  `D1?w Iw  H  f' 1? A |@Remote secondary storage (distributed file systems, Web servers) A0 AR PX   H3    H Z 1?PX   H ZP2 1? H  FLocal disks hold files retrieved from disks on remote network servers.G0 G B H  `D1?    H  f7 1?x+  TOff-chip L2 cache (SRAM) 0 L   H#  )4 H Z = 1? Gg q7L1 cache holds cache lines retrieved from the L2 cache.80 8  H Z 1?   H  `09 1?K k o5CPU registers hold words retrieved from cache memory.60 6  H  ` 1?0p L ~ 3 H# `  H ZE 1?  k1L2 cache holds cache lines retrieved from memory.20 2  H Z 1?~  3  H  fHJ 1?8&L  ?L0: 0  !H  f; 1?8^ ?L1: 0  "H  fR 1?$J ?L2: 0  #H  f`Q 1? |  ?L3: 0  $H  fdU 1?G   ?L4: 0  %H  fdY 1?  ?L5: 0   &H  fa 1?  v:Smaller, faster, and costlier (per byte) storage devices ;0 ; B 'H  `DԔ?^^ P (H C xg1?`@,$ 0 t8Storage at one level serves as cache at the next level 9 nP9H H 0޽h ? f33f3___PPT10.M !<:+DO' = @B D ' = @BA?%,( < +O%,( < +DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*(H%(+8+0+(H0 +#  # 0L0 "   L(  Lr L S v,`0   r L S xv,@0  8 `   L- L Zw 1?` PApplication programs 0  L Z| 1?`  F Processor  0   L ZL 1?  G Main memory 0   L Z 1?   G I/O devices 0   L Zt 1?` LOperating system 0   L T 1?Ph  L T 1?P   L Z 1?^ DSoftware 0    L ZT~ 1?_l  DHardware 0  H L 0޽h ? f33f3___PPT10i.M+D=' = @B +  $ 0L0   P (  Pr P S 0,`0   r P S ,@0  8 8  P P Z8 1?8 X F Processor  0   P ZЧ 1?X x  G Main memory 0   P Zܫ 1?x  G I/O devices 0   P Z 1?8 r  P Z误 1?   E Processes 0    PB Z 1?x h   P Zയ 1?  d  AFiles 0   P Z 1?XX    P Z 1? ]l  JVirtual memory 0 B  P ZD1?8h 8 B P ZD1?h  B P ZD1?X X H P 0޽h ? f33f3___PPT10i.Nk+D=' = @B + % 0L0 Tg(  Tr T S hʯ,`0   r T S @˯,@0  ;8   T0 0 T N̯8c?  _  Tshell process*0  T NTѯ8c?f  Thello process*0  xB T HDԔ?p p v  T NX֯8c? |  JApplication code0 xB T HD1?u  xB  T HD1?u  xB  T HD1?u  xB  T HD1?uzzxB  T HD1?urrxB  T HD1?u   T Ntۯ8c??   >Time0  T H߯1?$ Oo  F 0   T N8c?E'   YContext switch.0  T H1?$ Oo F 0   T N8c?3D  Z Context switch.0 B T ZDԔ?( ( B T ZDԔ?( t B TB TDԔ?0 l fB T TDԔ?$r$B T TD1? mB T ZD1?  T Nl8c? ]  AOS code0  T N8c? p  JApplication code0  T N8c? ]` AOS code0  T ND8c?  l JApplication code0 H T 0޽h ? f33f3___PPT10i.+D=' = @B + & 0L0 X}(  X~ X s *x,`0   ~ X s *P,@  | X T o?08  X X HHg ?g \D QKernel virtual memory 0  X Hg ?g D2 e)Memory mapped region for shared libraries *0 * X BT g ?g /D  F 0    X H "g ?g D  ,Run-time heap (created at runtime by malloc) -0 -% X BH'g ?g OD F 0  xB  X HDg ?    X HH+g ?g |D [User stack (created at runtime) 0  xB  X HDg ?  xB  XB HDg ?  o  X BT/g ?m J BUnused 0  X N38c?Ex  ;00   X N78c?0 WMemory invisible to user code0  xB X HDg ??_ X T< 8c?x  D 0xc0000000 0    X T? 8c?Gx  D 0x08048000 0    X TC 8c?x d D 0x40000000 0    X HGg ?m J3  LRead/write data  0  X HKg ?m  J SRead-only code and data 0  X Z 1?  X NO8c? B y'Loaded from the hello executable file6(0     X  `\V o? pprintf() function(0      X TQ 8c?x  D 0xffffffff 0   H X 0޽h ? f33f3___PPT10i.f+D=' = @B + ' 0L0 "B\r(  \~ \ s *q,`0   ~ \ s *\r,@0  .8 ` B\`B \  fGXH 1?  8 B \  fGXH 1?q W   \  `t 1?  <  LDisk controller 0 B \  fGXH 1?W  \  `|y 1?  <  LGraphics adapter 0 B \  fGXH 1?W -   \  `T} 1?4 5  JUSB controller 0 B !\  `D1?<  B "\  `D1?<   #\  `o 1?  AMouse 0  $\  `x 1?N  DKeyboard 0  B %\  `D1?<   &\  ` 1?~  CDisplay 0 B '\  fD1?< b (\ Tȍ 1?Z  @Disk 0 R )\  `G\H1?`   *\ T1?h;   +\ T1?Z6   ,\ T1? 0 :  -\  ` 1? Z  CI/O bus 0  .\ T1?< f  /\ T1?   0\ T1?g   1\ T1? k  2\ Z 1?   IExpansion slots0 B 8\  `GXH 1?p   9\  `H1?"`t7 m  KNetwork adapter 0 B :\  `D1?m # ;\  `1?"`$+ CNetwork 0 ~ <\ N1?g : H \ 0޽h ? f33f3___PPT10i.,Э}+D=' = @B +$ * 0  $(   r  S <,`0   r  S ,@0  H  0޽h ? T3f3fff[80___PPT10.dmxU ] 0 P(  X  C d     S 䳣d9 3    H  0ηo~ ? 3380___PPT10. e,k~ 0 p<{(  <d < c $d!    < s *|˭d9 f   eQRegister: a few hundred bytes, 100 times faster than the memory (millions to GB)H < 0ηo~ ? a(80___PPT10.p> 0 QID(  Dd D c $d!   = D s *|d9 f   L1 cache: tens of thousands Bytes, almost as fast as registers L2: 100s thousands to millions bytes, 5 times slower than L1, but 10 times faster than memory.H D 0ηo~ ? a(80___PPT10.@Q ` 0 `(  `X ` C d    ` S 4ԣd9 3    H ` 0ηo~ ? 3380___PPT10.k@U b 0  h(  hX h C d   I h S /Id9 3  I  H h 0ηo~ ? 3380___PPT10.k@U e 0 Pt(  tX t C d   I t S ?Id9 3  I  H t 0ηo~ ? 3380___PPT10.kV g 0 p|(  |X | C d   I | S 8KId9 3  I  H | 0ηo~ ? 3380___PPT10.kX h 0 (  X  C d   I  S d]Id9 3  I  H  0ηo~ ? 3380___PPT10.kX j 0 (  X  C d   I  S Id9 3  I  H  0ηo~ ? 3380___PPT10.k Y n 0 (  X  C d   I  S iId9 3  I  H  0ηo~ ? 3380___PPT10.k[ o 0 (  X  C d     S d9 3    H  0ηo~ ? 3380___PPT10.k[ q 0 (  X  C d   I  S lId9 3  I  H  0ηo~ ? 3380___PPT10.k`\ s 0 0(  X  C d   I  S Id9 3  I  H  0ηo~ ? 3380___PPT10.k*^ t 0 @(  X  C d     S |d9 3    H  0ηo~ ? 3380___PPT10.k_ w 0 p(  X  C d     S $d9 3    H  0ηo~ ? 3380___PPT10.k@7a | 0 (  X  C d     S d9 3    H  0ηo~ ? 3380___PPT10.k e } 0 (  X  C d     S עd9 3    H  0ηo~ ? 3380___PPT10.kQg  0 (  X  C d     S rd9 3    H  0ηo~ ? 3380___PPT10.k`h  0 (  X  C d     S d9 3    H  0ηo~ ? 3380___PPT10.k_j  0 (  X  C d     S Xǯd9 3    H  0ηo~ ? 3380___PPT10.k_j  0 (  X  C d     S @d9 3    H  0ηo~ ? 3380___PPT10.kk  0  (  X  C d     S Xnd9 3    H  0ηo~ ? 3380___PPT10.k@lm  0 0(  X  C d     S d9 3    H  0ηo~ ? 3380___PPT10.k@lm 0 `((  ^  S d     c $d9 3    H  0ηo~ ? 3380___PPT10.kb  0  (   X  C d   I  S |Id9 3  I  H  0ηo~ ? 3380___PPT10.dmVt  0  (   X  C d     S d9 3    H  0ηo~ ? 3380___PPT10.@nGqrH 0^ktM{ŀ_J) C ]ׅt *Ht0ɴZ:<s     # 7K_ s!$#%')+.'0;22O43o68]:11Oh+'0T hp    (0 CS 343 OSFabian E. Bustamante aqualab01Fabian E. Bustamante94Microsoft PowerPoint@`W @QZ@`a@nGSg  )'    """)))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!___wwweeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeϮϮϮϮϮϮϮϮϮϮϮϮϮϮϮϮϮϮϮϮ՜.+,D՜.+,P  $ , On-screen Show$CompSci - Northwestern University= #ArialTahomaTimes New Roman WingdingsVerdana Courier NewTimes Helvetica 1_aqualab01!Introduction to Computer Systems&Welcome to Intro. to Computer Systems Course themeCourse perspective TextbooksCourse components Policies Facilities Lab rationale Some topics covered Hello WorldInformation is bits + context&Programs translated by other programsHardware organizationRunning HelloRunning HelloRunning HelloRunning HelloCaches matter!Storage devices form a hierarchyOperating SystemOS Abstractions ProcessesVirtual Memory Networking Conclusions  Fonts UsedDesign Template Slide Titles 8@ _PID_HLINKSA>http://www.cs.northwestern.edu/~fabianb/classes/eecs-213.html"mailto:root@eecs.northwestern.edu)mailto:carol@rhodes.ece.northwestern.edu,_; Fabian E. BustamanteFabian E. Bustamante  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkmnopqrstuvwxyz{|}~Root EntrydO)Pictures2Current UserSummaryInformation(lUPowerPoint Document(M <DocumentSummaryInformation8