From 90a02e2da30dfbfc8ffe1399f92829dfa5a26216 Mon Sep 17 00:00:00 2001 From: Yiyang Wu Date: Mon, 14 Apr 2025 23:04:11 +0800 Subject: [PATCH 1/2] docs(lab5): add boweraccess docs Signed-off-by: Yiyang Wu --- Pages/Lab5/assets/example.jpg | Bin 0 -> 149757 bytes Pages/Lab5/base.md | 8 +-- Pages/Lab5/bower.md | 102 ++++++++++++++++++++++++++++++++++ Pages/Lab5/posix.md | 2 +- Pages/SUMMARY.md | 2 +- 5 files changed, 108 insertions(+), 6 deletions(-) create mode 100644 Pages/Lab5/assets/example.jpg create mode 100644 Pages/Lab5/bower.md diff --git a/Pages/Lab5/assets/example.jpg b/Pages/Lab5/assets/example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b06ff1111563bf51f06a0417d4d09c96f6a4f014 GIT binary patch literal 149757 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�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

    vvmBGBEs*C3vskXQ@tNX zj~FqDwh%`1GDK4(_FosZ;hLghNSj$AOF7f)>|=q z_U!Ont>z1Us&`HGO??{a3`)6B!h>;+QbCr)fb$LKg?#z)peU|%;H&0 z0uV|eO{x#q6icach;Q2=?4D11e;|;NhJ+AZL7wT#C1Ta4Agk(jaDQ^I7huknOEMR! z77PGhBpG@vrOU(bav^KM98u7nt)GOsTt#@2lf^5M@#A=8?brru^;$ts1r@+m%i%qG z1g2u8;PZNe@AZ+x@T8~1=k`b}Q0}^Qk-dEz%q$dEt~~5TiXtX=ZplPq*|!t6_;@7T z+Zy%~C1J~#Ptp?qG5AB&dAl!ickT&4vnY8yNFV+o=*6@@LxCz@_PG|!MaIt)#E@nw zQAQN8q{@|$F>WOM9-kx_2!t{*WqdzI0&nTn^ts*g`x8I?2!|^jwi-7{fHkkhbd8>^ zn}bzeow1@AS>xh@bx*P~g(gcc2ajbv09uJndGm*>(9%Fh#eu27DL`>73MGZb<7lj5 z)+nyuT-(yqWNo(O$_2ka5Ufh;^@`<}-Ur4Ckfvm|T7cx!VktJ+tm5e*zLuj0;H+E~ z&RTWgC{zfJqD66f>{s|8HV+28^_GlD)uPQ`YQ2pV`qlcS-T^gNoXe0AZT^a!tIl=( zNY9&ECnE)UrJSgDUdjq4GZJRSjyRSMx!QIr(6@AiYW+D+lq-keiX2fYqQlV-x| z2*&FHo+ZEI)YqRO@&1PqOL{oddNWmOt~?^+vY;XFlZFCPAX#XTp2PUZ+R483pC)4d zgO6Sv$^b!`63W3Gev=~pVDaf7bmwX0%Y_c%@d9F~bhU|R@COjET7w#8Xft^{GFaI7 zAov>&5}wFxcZh&aYaACL6AP9x_jBktnP4(Af?6x928XWCNtv3XXplTFv!jsD$-hG> zDJg8pcdV|*Nr%_v4k|8gSBST53MwKY3lxJ&*)b)Y%YZVOF!h;d4e<~`R4AjJ^zEg?_ zuVK7a=zu{_2WDhSW=g|Jtug4hO)V2O{1Eg=D(nZE$1Pr%Zw6%y;#hllCgCXSIf6l<;e zNL{-YaV1N_efqSdQ484Ya2-B~K!Kw0Gi}t_oCEgU2ix)3`78OY?E^551F{8#c_w)I) z@tkVht1)L(R(T8s{75%E$0U_&{#IH3d7M&ujEkkRf^#1QS^iH!-}v|G)2G80enneT zV_3bX3O6P6bHCcB{#Ik03PR+2t!O$%1)cj8UOb-nqNqJwta%=V6%`Kk{;PLLDP6== z;h>(KQJ`1B{px+@xp`h5qZAc>5*KxDWw_uRp^jHrlJ1n8oGiz45y20@qGL9)Dm%J~*mqudMxK42g18S9UB?gI< z(<0y#Q}$KXrIW{n5@jn@CU{R&2C_22Si6{NHwFthGW#4YrOTEgvC*xt6~0E+I*zTZ znN!5W!1+_g)2UMk?A$7;y(NIu?m))2ZKBj=E?y8U9tsmYJdXFjZ!eHY;odLvA3ZH> zR(lMr`3t}r8!Pj&+3N;Q9+z4?#D!iK-Y?TolG3DN4EVfQ>6!gw%oY_C&cW^@hlN%I zXB@nlnNmA}SQEpkPd^&d?v~yU1gV|Es^L^l98@Ja?pVf#>GF<|9UgyDYLE&l8fd zIHridG>+ep5zm@CwT_3nnpF+I?f^_1)w8uJ{_>bhp85$Cx>=jA-XYndqP zP?qD^4b2I1kCgu?(^1}IN_4JS?reCeSn@p$9V_yi*Bh)k#Pe{@&hA`sa zti;Gkhg@xy$DhA%)~p#?wQ7Z@pLil1yO6SG4U(!?my9ruo12_bJd~0V8U#w|$f6*a zFE1<{GzMiveJ=}XXn*?pbx5dIJ-7&PnqP2$;XdI z`B2v1Xt4{C0#-EZv2h=-N%{i?0ej2;LcM{7==#6>>t_L7`|r@`o=p@l4*6Vwy^h$?tXe7IO%Y4bDuaN*$gPK z)59R|0tnd7AYAS;pe2ND@t&qaHlpU-0_oRMG34% zfmaFZ$^)eYQYAF2u`X7ekdSZmXelB8ul6ZHRxNVXUHk~V8@86l~|H-k@&SzZYjeY$q!RPPv zEAp6s(oZ#q^F5{YTohDV%ugH-dcR1|p%BhEi9c7tT(WFX!RGtQ^@f)4kf5L}$g-?* z5mtgg$TBB_G3R2dRo+z*-1qK8OywJb-rJA`l0t>q>4b&G0fz$>Znyz`1`b5KhaN;s zvEpZC1UV-@>iXvakknC?hy8q5(;#KcMiPF8q_KoS!-soI@yUoMYoW!|$^X9+danr^bJ1PT~6? za|@q&=x=AyqDbGmRn}vr*vs{4Oy;}7SA^p~G=In#j*k~30cnF=Z-u((%7UYE71;CV zhrK`n*b5efdH-%Cw7l;s@eG{r3Fd(B>(r@(wQJX6&z?Qvn$D?Bx&9ShK=o76V~jli zXo5VCSD8MPmG4~KLmta>7=xgc#n0$+ROgJQ2t>L;)v=K@5@lsHx>1#&XS}CqZrEtl z4%N@d>-&!%L)xI;hDbLUQ&S1lI)VnVmxXC@u98L6F~?7ekZRbSUO3Y+e| zX~_+UNOwthNq0y}cPQQ6Ac9CE64FRZcejMn-Q9f_zwmvY?>*;_^Z$2U`$A>8*P3h2 zQFGk)7*pJP4;TRt?KD%X(yw3Rwl?WM=~MpvH^dD5a7XqzA2rrZmr$@CCx2Xx<8q_2kf=}WSIdu8a~4n)_ha*WDzDT>SNUbvBmV4 z=b53;PF)>X-pFV8w>Wov+9h=I;DtD{X0jNyukUm({;=cNonO3JHXu1uWO(O$IpaG% z;_GBnHG9?I{fYpdVb}yK7eRnLY0$A`9Q9$nA`KUvmOqEobJn)jXgG~`Ma1y841R73 zr}fnJ4+oiMb1-YA&9_0_PitQw1j-dGvM)CuWu-MU`&G>E)Ld{;ANxJ>K~q$;c8y=Z zmnzG!nDw(dUGhZluFqC z4rnLbk@WuIO^#&r>7x>PHsmUnA}i5f?yPkaH~|sX2QXEl0Q=^6r^vjJ)Zh!#*1%m4 z`09Mx;27Z1hUKP3x0?kbVgwQMId2R;5)$3K=LBgofmELTI_ybiH7N(0&>v%Oz4w7H z5I*1gg=61xU-ME`4YT?2;r72Cchzc{NXlXe<8i)2Jv*T&ntyybM)g*L|8Im-UluQCZv??au14>LS= zXxqL47mX17P+r`3z`@`B=0f|N*-QAptE0_ zpRq^2UE{Ij_0Okyt78L0n}Vn8Jdm{1uS**aL_;x2pX1BdRzfT$@-QT0$r$yO%y5W= zeE6I1FLcii=83JRisNVefirfMJMti-$U)%I{#H{$R4S>Mk1)olHiI^;DCugL<6%3K zXi1vW@>ECmkgRr@S42QGXPP9#U1S@xzsPZbUGr`Q=ptv{}B(OYjOx z#AOpkAr_*i&FzHZQMAFEx6yRieA`|nO{aPmwe$4AG!bEXxKEZGQKWqMRr+3MK=s2+ z1yupG@$O{6ZLgvSptssv8SS$Pd@5T1PNI2+7)R6Kc5FTE)>3#VZA8GLd`Vn2@K_+R404bpj57nNgjzB5T#&RQ3KFmSRyfJW{D zl-awjCu%-ddd(f(DkQR0yXcd^DqcjvXnZDU3A>yLEr^{&Uh{&N_FeWAaM@DYW?;u~ z#Gt^7s}TJmvZeM_Wvnhw)qNKNsG~J}6ybx)4zwdJ1NxxyKe;4zC`}Kejy$(A&BJcNN(>5FR+69l@u0y}(fTuas zh8Rj_pYKiwR=}$ls>L^tRt{3?GQ5^F8TXZ^-I^}TBorm&X#`GV%vRfeS~5UAB8cIt z4iwT~sTXz*r*dNfMi7^7EQXX%>8mt^|9UOK_&iHpy7mzh^!ih+VH;>LosR%0ko;gZ zHOHf$!eL3NpKCUha_xdBA>$Rd^M&PyaT4=ynESi`*i7th~F#kyrvLH&xO3)V)A*X@@!Dp0}TlmBna(6x_ zYke#3&Fe|J;tpo}5DC^FAL8_yz3SZr3CWeJER@4zjZff-qyV9`fPZ)f=*X41+xkq- zGn>~p$R)z`nx(i0Jc+OxI%|tAc$FTxzuDN?M^wNT%Jmn&tvi0=NQi`Ad^Qp3r664u z^;+wND9voX-x{U(wbh)b)B@ycub(fhRiE&(9ttr&cro2!d=t`}(;|t|&-`6&Er*&v z@mcIZ#Z?R#d+#@72huA*(~ss|7iDriyR#~0a#hd?4a5s6rqN4DX%sVXbCmCI&bwv@ zMU#0e9QAV{QLNZ$irb8g%3t6!JP&xoi~e#PS1nIo@sZe$_eL{q>l33cejYw+@b)*= z{LUNIdM8u0Vl4;&+du@V1yI$%(qh?oDFJ)eHPQ(FWGJRx8@yLd#}ilF!P?c(^|xTl z=zQvEt)m3l#NT1LzZKGWD9~tyVu6ITFa4ohTL3~=`^fD(9+K}4$BnpG*Pe9nXXq?s zK_h{%t6y)Au8*|0f5Y&)2W>T5!aE6q(qfY>qcULfet%W=m*}_9T3UR~-&$im&6J%* zCrdYtj^A0V-}K6^ZW-}dRNwdh{FB!KCOilmd=Kzxr5_8>9mqH3RI;_y;t~HAPv20$ zMLv-FXbzUq9wnHG+R<9R1Y#pRS=7q}4e?!6?(xXFF`!vIC%Z}kLLm1*IFE{U7G6X^ zv9gx_f+urhO4(W;uii(%q({hw?--LGr+CO}GQ9O|ZLYIE z7PURo_kp%TZcwZ9Jn)nwcDtBrNilBmpc+38BDtbJCF?LukZ=@U%r%0Z%G%Ng7YoGbL-KB-j3XPUtPn_qP zE;}vBmkv2fF)M4ZFNHYxE%nQU6=QU>4a(N&BuCWQcv;Y;GNHLI!0>Hbdbj;<$-W?{ zK=Ks^u@Kdx#%*)IcJkc%dSnyw#>|(hXU}+b-zez?qIkk^0_UP zrEZA?V&AgAb+k7eS*bVQKP-d-^)c;{cT*Ld&l-5j$31Mql`6ksOl0yA65{JjzNyMd zQ?hI_+%>6D)B|5YVdR#ek?j3u3unI?v0KEDX#$rIQr zo>9(WmGDGhiWPAqxKr1i@=@10i{>8#vh_)#p@Rs~~^jpvJ{6kxE+gleM4{}>acr#D=H{YS&oJEbF*q;gSnr8v_T~Fs}IV_K- zG@lI3liva&h9{dfio8bn?>6n^XSJOVA!DaEavfrHj;m z-R5mxue$OTDbXC1?*n z>OADnu>bjPYp%po^n!2i&G~;`5{`KaY=Ju!I1yS#FoE!Ba@{U*nH60m3%n7k`RRl8l!o;Q2558Zz6g zmj*7b`ZLp`Eu6Wy#gK&1(CfZ38ObEC(W^H+_B0wuAlTq{UuMw3E!SH5)q=I*b-g^) z>nFsB0p!BmVn_oww~Xr8Dka*KrjJPkK%4LIjJ|6HaBp9BIIr-`dA{#3ca8V}c4% z7L+6p<~2&V!-5j286CL>J%}c@t-(?tt(HUbb+}6Ti|4Ir@rcudePPyfxG0Q=QYZb1 zT0opqaNaN1J5kTafPi|Rd7%0zP36Ez1*lNb_4bbEAEj)S5MLS%LeaXPF|jx}?p4<- zN}{+gnO@%ejkIv}ye@`Bq+13z@WAGZMf-`*gohk{WlR zV8CP7fHoYO@zL8;Dyp@cz(9CX!!>J*8^@pURzh4XQ|HNT0OO@Ut>4zS{#R+1zEhRk zE(z}uvcR~SnNoP}#P(jj&QS}1d z(dI)IYpCX|H7T9vq?4UDCA@k{SvKjREkh}sc)xI3@Y)u})`pLoZZOHk`{~n{EgXf6 z4?Uk3AloeXRVgltygt_n^W3>Usz{v`if+p3S?X3^gf0eRy?Nj0f&^@LAy0OuGylu& z*MIfYpB~1)djI$G5th)>RJci;;08UwKM1%oH~5g@$z?CRQCDVE!xwjSqkBZo7f?*z z5_lexa&&i%v{yTacz7{%RH~2SoZTMgy=R%cva(+Lt1^$$`b4}_@Q82^BQVLg#*d!3 z@6B(jJW0mRYBbdQjG^85>&g6bT;|}b%?3EL%Dqd{x!7uXB1+!*;KH0{iDq5z8U!Uk|!FT3Y0Wemm%N(_*ddFj z!DT}x|Ju<1Wh`5L;r-q5=vrNO;CH;w06ryoZ@>7)OxZGDl>z9ziEgdPMyEYc{tLV0 zKQ2~9MVsq^2Mzk7~US2zXny``2bdyR0nb~ou`QC|UdmdcJ^5Z@2_kBa2g0N@$ zHx~b4|3#7Sh{$7S#&gGxMua+&-}>Al0B_z}d928D=!;tl^jauU!(-*#g;q-;K`9^? z#JjDoYv44jYJXZTrUGOJZJ6mnT7dt}lmRl4^Ss1>S0I&IAr^ztMQ@y~g_;b0V)(y!U&)hi+n7beMpNL>AhD6#K|O> zGj@eYQcWSt%?;-AV!yXW;;mbiv?4xr0^Pxv1{1>?-)EhzJ!7GMe!qJAQwUh>{U;}E z<=cMq@MpXZ5U{j%6H$>)Z4#x)`6p%qe*w<}mzhGfK>HCU$Q&F@nrpS_#R$%GJ|(@L zQin$_xfR&r+yR-g#?&c_)1G6$zM!l3BOQ7L(si{}Ck>w%Kf=7-t)`}a$+LUQ>Qr2! zBR^wrM{)-A^sm8`6w2` z^U4&p28%4pZy@-G(7j)AW_O29Go@b3kl+0U{t>yL-;C6(Oo`v%m;q&}GnU(Q8ALX= zM6x7{vfP}8t%Vd;t2oU2$Wd!RgC_^si=8BclOBAzCs(ds40`Na?M>q$I&wE+G?3Xr zDd_%~ODm8WdSBB3p1lcQs&}>Nib73{tFb6Mb<1-W8=ij5xIRi`cs z{#YNhsMdw$4o9yGo3{sZ;XC`}p+eWV3Ud1HW{=4D z0y>)msRh10p2-}Ge=XIG#b_B670s1>Ih~Jn!iB05`v1MsTGPz}B*AE_qsjJ;12-5S z@LmFi#{fbzMcLK)o&3lH?A#IUP-cK;zDr|>f`D#*eUjWEQK1jJ$pSCm=#bF0Q+^d#+X*H6i!u%R!_2 z2ic#eJ#5)`Ut5HPi_b317){CR@21$+a|sR>H`}YNo(;;>LvFPi94c5*?+-ZXsqOp{ zLw`wgJ25AtIk$<1aek#pJWOH~zZn$)3O=C5rDcflpp`^mL;R73{5vXMPdC$>C0-Yp z^&NGo<&kC-dMW}~OmErfR=lT}vvfu(pRe?f2o8j{e)(OkTqs9i<9RAS_uUDBt@#Ew zrh!~|qhKT##KI0&Km9&8_aOzqod zxbIKc;0FIaPa&Yh%d}JQf@9GAB*cEo_X_%})UG!WjG>H7;y5@G+ij91I~y33P_6zKizXDX``p~S64J0}KW6&!!e8Y3^%P%(_u5yEZk2A_BYZ!0eLQikU!mLlz zw9epuY4?(xQhVKALi5H*9XJ}_usGif5&&iOZENSPzkbLkPh@hr#Qmg`-a4UUm`>tH zTl~qbAJTUq+&*w`>U&|&{v7;yI!?9+DEB!Hb>ula4&^zhU0qwDwm3L_b7sEgRIgN~ zFHo#gjSA!q+Lt>*nQu6q`w=8#NW$|oJWzq$CH=;5y61vjZeHFOVSfE*iv-yuy%S+U)2G%AU$XpWK|KME)k^5Xx0DUc}`=AKaB!F2UB_%q(5q?LO8MS)(mS+$a~-xQrn)QW+n- zGu{=&-_O2I2EopxawPnQw<)b>kKzvc0v;UyFQCf{LWU|I8x>`O%%8JRjD zZ_47ZB>a({pqOyTWWoFLjo0ZA_e_%~H!42E%X^c|Oz#VAbaKJFMwZL1F}On@aeq~3 z;Cqh;Y$H12D8xpaJTH%YJV>PLRrb9u6;0m)8R}#fBap|%9xYi261kVsmK^`(LX+oM zm8I$v0HTnusxV-FezRMKX4co&R{$gg1s|?VeikUh`3u85CFjkLN5!y~ft27!=T{_{ zQN-Ms`@gGk?#zbMP*R8R56oM9?pXkwLTQ`AhquYn6q+wYF)#E-!`E2g$GPphBRmh{ zll^VIZ@=6W%^Sri3b)$edtk9YhK;tk!+rN9LF(*AYssAQJe-p6O}W4se9vdYxht*A z3Sq0Y5#GrXbPyaPi|H1T5apa+xyBZYoACtOs9Q^yv(id_pyS}v4TyO|k56UmVDQ}K z0L8Oo*6}JovwSlrHm=znr;xkYKS=)`;@lC8MVZ&?eSbb3nI%60gRl=6W7N%beCJ8Y zC_;*MHeG@s z!iyE~yy(6DxFXVJJX3D;MNdiE)TBk<`&=Ee6^%=RS_kkEzu*q0aH7@DzfVQ31r~~v z0Ur%G;LP8oCx(KNai4)s5h(Iqf0$WWSrLa--cQujZv(bT?-s^nUrm0XmJ|28aO0

    t=rB^Eq7X%-4;4buLG0UoX$T2=q7FQ)&0Zcw&vSV!K)=Wjj-=>^%(o1isV!JZSE$b2)c2Tm@Eo1^g-B;Z(G=PdyG$Ssr+Qv2k=TgE~c9 z{zg;V7?*^R-0!iM;%oCSw2Ig&v}qb1HdEC1m?U9?L#axa_ab4|mv<5(%42~RGWr0N z0N}G?)>-~vc^vARIE#XMdeIM?!I3K%-?Qum? zHaBVTVCmp}C#6x0Un3ycqTV)6zk0Xh*N+`+Q8S#*7x^yZQeiy;P|w8zWh&(lY5>0@ z!AcM1bAQ-TrrjC2}a#+|o0#*&KdIkAFt-lo>0S^jQt z1#a*5f2)5C2U4?r0!rT~e4fs?kCJV9LrqGDN6EE7P~mp7o!_OaT<2hP z{Bbl;l;jD*;V29x_tDxCn=Dkvk=O>H@(<>(b7SP)b(z-O8niaY`&+w2H8M5-L=2j= zAgO$Xu8idl<^5E9mNFOGpW9<7!}ymd!J&-6j-0o1 zz9*K2)d8nH3|-#_+MjpS#0pBZK8w|LJ#1c53<%)e=Kp#=s-mzfhzC-6jnAyla7*h| z15hMv81r%$lOCCoBz^UK%6ihm|6nvb@MxR%IWcjt@wn#8rEwj3 z*ra~MU=1#(H5qE4=MeLn{ek%)9D>DxNe)}P8{eGAeG&6@Y1CM;YYA|3!7^R2aaQ7G!8_AgB7x%Z z6q8~4ATlWroNr1|C5DYK!R}lq_uG(c6|oW6MA((KQz`4SFQfErk|T(CaC96|9d#-x z!0zEAP44ZtKf4E#fYxPlpH_dzRfi5u10#htkOjv*0gotb$3nC(rOBWs3jsaTPcpZr zrwriIdF$IqlyN^%*h+NN;fHhc=iWyMgD8mEQ~Q#?8}1=Tb@5j>(Ce?1hO&bQhZ&?R z5Wim}#mwMLzbi8D+!y{dGj0mwI#;BzRHh+QHgwEt8WzuJg2OLGZ!j4j)_PTW zvqlHI{q$4<3J8_zjWA#kaVj(U37W{|Q#c@Ud?=K+U6O|=0yK@>`jI2Stb}JT zNci2r2{ejHgot!-ukB^aM(R_(n14GAHvl*`%vZ?`S~NfZUz8&Bg+gbxOoGEbO{Ssx z?oExqzkdly@e22J}=ET!42P%C#E14yOBr>1_zavJ*996Ek`nogiWEg zhx#@oLeFaMt{n${R}~DiYxK~mv)s;`OrNslQi*+8rJD7wVcz(2o|2r%C;y_mn4d)I zyMAYQs5Q91f4%Hfg_?ue6H%RZWr&T_;6`ME13prdbv#ruYLyEQi!j{*nD)A0fr}DE zMWj>BLl7WAI2#YufpQC2oUs`nzVgTa?v$j%q7|@-dIlxWBm)_D?TPumd;Gdy5G8mP zHY%(51A+(gFfZsW9}Dd8T)97TL*4I;<9QiDzz#FEqBw$*2us#uGCawHNr)r5_sp5a zd^inFaDiz9rJBuwb!>8T>Q6F7J*;*4(f(YJ#|TsyOB%V2f>KBSmQ()G5b7lr3(b}y zPd?oU1u{8qHFh99roO9=k6AY8AO%lf7?SAJHp?vZC>n0!x7#elhEV6Vab6rws3f-KqRJ9^Xwq-p^Vu;PP%?O|}(AV=7qg{Kj zVHm7G)ho{z$xi<4EsetFf$$T7a8zzrC@@Th{LAQIRVFSj?HrpawWVNH47(f#f)#4n z8UCoKyiuAy+{q2zX66}@N`$n8ksqt`iR!57APgSzxZTUB1Wd8q0DP};$CqlV6=D|0A=0KUy00j+RVL}g1=l`3o&QqYt$*Mf7Vpm*nK+iKr^zVOiE(H-58 zB}djbucMSbZpS6>3EiyXRQVJH*BZO%dP zil>-5;3wWV*F^yrMBy8iU7thb|3$yF z(~Y)4d0I&!y>&xmqi!E$|ET}g>z4O57cmLrLFoPu!~R}j$yY$02fjJ*Hkb`p^*-+? zy^df=Yzk;U$^YnHUBIGFwWMhM_qy$LSce*(2ACPs5G8{LIuSoI^zl+c!{UhiHnK4XjZhseH(R;YF3HY z{Br`xj?8I)BuAu#gLS*y!;TGb?H~%*On$V`oxxcdTe`eA6wlN&6)1)t23dW%E+`)1vdxPM4FKIsJ z)_Z@sKLa|gre3x=AAOedkdoM&!htxYVhWipRUIul>XP#7ikLwn4?O>|8_(I{{w~lo<2wt3hJ{?X)!G96hhwiLL;zbkFp^=SUyiPB>*Y@464CHuRAaqC7 z$zk{Y88F%@f%6LujimVsl;#Z z*95qC(67Xcx(PDAs2sEXYxh`-m` zi=EF}Q5;8K8ZoL0_N;v4%Y)SEJtb|ND9Xx;{)9O6g#OgEa{&PUwLFraAv%A3x}44i zd1z{g8?7WCyhiI!zrHvS-N0Hk>`O#S`i^I4?@+Yode5ag9)qZ5QD}>#4A0hb2VW|b z)PK1CSYZH%&z?4PAktkhvTSn=!_Xy%fEWH|HvWF#QYC%H^(M#-@h)GnE$t&(o?g9C zQyw9(nK1grh!Iy~jb-~uuJi(+rI=_o}6sNyM))##`dSC_2l;Z3K8+!UJ`x6{!YVX#KqHer$nR9shYI8^ypDQ@C_6sLjh%t`}lc^M?x509Qb6Bp)jO# z4WVw1)B=aQ*p&Hr7td>N>K+(n9z2(ubsBLgx_N6G_G?7wodq&+;nk7%tXI#_@@2V^ zR#{WYT3@K`X?m?zYGf%oF9?sk(OTDR!TLHMqw+gJW@X`t(*WPem11z~Z%z%4Q$g#g z@44#gYFgI~_BxY!@>6DOZUYaC-stTBv35w7py{ogrfoT%Gg%GQR9RV1d=WjQmjQ$g z_n9-3C>lA;@9D#V?2my)@LMiF!>a4B#T-fR)xz)CbS-ZKIwbYd+Zj3y0KbitGFWT|`9jNkVMNylH|E`@;C<=C6%yRk5xwvG|Qv_HP`6N$XAJ0$Il7 z#j|L!;|MJxD)Y?oVIg4P<1Z;}Xtz16p{`;K6j0g?&DLNjc1jxMMiQhX;%eJHu8L7Q zbVZnETPdkKD$g*WQwY0_grMXw92Vd(US28EW8n#~4SYX2EzvIGqCnv}T$^AhQr}hd z^<2t;Vt%jLH^xIKDmK1WvF1Mhz0)r)!tya`=H_&yJS`Bj`c6b_uVdD}R&!W@TTMU( z2NqKB*{{=Y0sXI$Jq_*^#BF;m!FIh^`@OhPw&~`2@KAfiCcj})x~==)UOJab}Na?)W_)Poa zB$9&JZ_U^VqJu$%U5M0G;_wqZU^UC6hWQ1L|17S_VXxx-(u{M-q&8KF1g@-FKI|?f zq*oYN-)B7Eh(7$gzVQCB2R{b%$@ph(81-$s%392J&0p7!f59&L(vQ`EU_WQkRmSu^ z0)x2tSIwJZZ3Vfa!eVrNe=~LUsV|$uNt54A!Px2u^uX&mS4KDu983w=ysB9~pJwFF zuU9XAV=~p8qrF?BQFG=^KVRPVozE8MroX@cd-0s!KnM%|Ro`M&ve!=YV?$3;~{ z;(*NUQ2y_jF+rxg)3YY~v%2r?N;yX?jd)8= z8GT2Z7|J#kk|w?-s5jR1MlAYF{3d&sroLWV6R~1UuV2+#(|8lHzSoqQSgdW5Ydsaz zqK&t%p{!x{YoAZ+y-&00`kIz@8{I%@VU^kb@6_sE6nD6FYt+G%TI9^a?`%a3%(eaF z<50>1bscqyw(&=6?-4>nTjs{Ol*_qXN8t(8FkvbxDC=nN3-MSg5GC~KBOfkosvOTq zEI7keqGf41yKg~lEmZOS-EOh*0Dh6)MYekNuHm(Sht?^VZF~ONHVs43wBXeB5mmA2 zC#L0u+3F(o!RBe5SVC2SvvKpx??bNh#w9&^R*df#_A90P2a34KJFX0btinuP_swj( zUS1NT@~veM_pl%rYj&k>1mYwceAGcd{{Qxqjxj-m-JgNw6~ zbSWN{_n-E6yqcJB{hx#52&LN@tfT&Zg@1l3!NG>ZHsSx*@8XmIX+lYN!_fW9vi)t} zgn=iWVg7AB{`n~^iXx5v++~H+=3lk=OLOB0NBRDmr9U@Cp$2T_X!vybKeqCpI~ofg z{$-5*-1PZJKqN$I^gI4B0e>5UrvbwKx!2QQ{_g<)?+iXUF&&U@jmIOpMAFt@Fx(!pU76`n&bT~M*fnLS&fZzTy}F7soeIMzL60THWPXB8hUy* zgeTP0)XN=@cZ`gT7`_Aj{q3Q<_o~|3mUwu08tUqJ58W6Pe#j0KeuTY!eJGi8fRP&* zsJy%LvY!7@4O9X$c>($4x9NPYnB<&*Z%6^uVr%HhhyC>_z=1`-JssvdWT(F*JRv;z zHWck{@N1J9vB_7b#zxzA?v%8HjA{|XM;vC_A?olfv_M!IDh#Fy1H*^=f~f!it7Kxv zB_8>CFrXbOW;(05|GbdLi*k>1t5gol4;bWvb3i#3p2isjnQ)g;r>dZtxaf{>pYXK# zX5^7@SFeM$5ngYA72WeO)8s%tOYCOFOHgn3OTaA!<<(*n90CFYm-Q4w1Au7kxUcOf zz_Wz{&)OKwm8AT~uwck80pLc(tX;zp=Bq8}?qZ8C%hEj0C6eQ6dg2|=FgdGmWNdw0 zSgg^}Dr~EmUvE~uTiBucM8#)z^WTl`r#3(t0!F_Cz~;*n7dFnK9ZJej|HrxzLHrTW z@Mq@gol5`^hRf|}X@vU1_{ehx9MTYqTEjI|J%BKnC4A}bJq>}3lWs%EaU9~J+)6QlLyg)zo~I z$nLfTG#a@3II`xO$iFR@@CzI_pk7IA{J{6&l)M2b`4J5RV~CN!2{9q;^r(u3^JhXY zupO8-jqV!84n?5{6ZBZ_2f~F*bwF)XiRa}3m&?}Z>kPzbdH7~**l_={AVq?IZ|#J_ zf3*}il_yV}D&Sdjf8g4JMt`Myid^SUUbbX1XmZwb4Re=4B)OI=X_B+pB}o#p7SJ*9 zK_Qu??PA{5fSAQl*oj7liojn78IVUj$p6Tr|1);88BD%CFx`cro9b-lD4E8gx5Oe} z_g0TdtE0w|zyLd{MTD^d> zW^s%Cvy$Rj3h+P;ogILAaur@gk?@Yc0)R+H_!Ufn(#1={rP>ti5CO={DT*F4l`B&LG=;VASSQ6>}i|8iGxh@hW``NdlXk2jjcTsFzxr>To~ zdYsS^@*`jw&lhn5c{h$9y?R<*R~If{ER|`Zi;`S5BQW7Ms(nMlECnzpHDt)nY;9Q~ zO0Lnvq^TL;4tt~Af4+PQ-hoe68_FC&1i47ayz4w@zP01qOmi*<65yGvKWbmVs|-YR zA3u_@b+Tg7IEl1Adhw(D!U?%vEJCigXie}VBm@qqJ_j0PwEfx&p&V5MCY&Sj^SE=w zKT<+PC5(^_Kt;a+0Vy?f^IaugEbtK}01@sr_Xx|cKueL=Qls6sm3^E=mPA_<0tGT# zAEnTbmdQ9eTZ0MoE#Qza(PcWV0N=-n1Gv{zihtd`5)DYxz`Hu#p&iADz!=>gJ8T|o zUM+|Z(l-q=u{-m837$46mfMAa!3mHN7g2KfMzPe+_1-H4In1xWN;N@BeqQ` zarO*JKcrwb-9%X^VU56_u-`2&p>#OLz=Hgo>uGuf>|t1sA`R}^0oF>32U-0O9RI54(%UX-zyFR2piuk zhhGgaHJz#CdO2>DEG}Z@u3v>6VCZPDo>AGL^rk6>d-)A)s_rR zI&ObvUJj#vBae;M#je5QZ=dS{1D^x@vc?nHnboDAs*2USWi5iFv2l*xANHDnnmSLw z^y~xWv1RYP+@b*ljK}lgdUK!r@hWt`qK9m9I*MFq!LI3Cqv3MFbH7LE!Lh`f`W!yo z|LbsLH{(CkV-OExyaXVwSl#&D4vqGHhb()bwqW5MD<3_Pf)^A^JuC8Ejaa48MQGO! z{My$aE?6DR1Or!0YT zzWoj?p(^tX_YJx5x*l?0{*Se}=>UP_B2?&(!poq^ zQ?{DaKM`LX11JcHMOVTvfEO5h$xcMPnwy(DnE{HuzHEY7xreLkPVjHK0r%+fyCqT_ zjtIcILGNA>;QFMa1)(w3L5rEFkjKZmqn_b(d-v1k&tyK{ZH~-?1aW8-s>CpPJ0H%= zd~;VJY^5U?`?IsaYhjehmgzTHk&;u}9?Onh%sDG|=!)G=WIo`2=&@9*r(<9!t}gqU z0f_L=&(n4PM6^rv*wE%wZ$yBEVd;j_7|-(BnQC6lo8{;YAg<+~kfNR8SNcWH0s#@A zz@is5bkHvZhdE<*$BIDX|c5OiAW1urT{P+#as+cM!Bo&mEd@SJ1O zc|?E!1^$swX-ARnPW(|kUp3+~<*5{gNffnZSbq|1DLhWW-z;P0~BLgN! zXdh_7Pz`X)emwyg&_?81CuN}P5J$sm4Bs9=E5q#OyQgffqp<~8C)sm*KojWzis2BK z9unu*S55M%T+1ZruHEN=M1{^_V>ew7H))jWJ=3_bwqCp*cHQeDFhI{gj&UfPD$zy4 z#}YVGI$sA+_2&KZ4$NiWo5wH5_A}*efcTK_{;JG>ifeq%iwqEk8x{Gd4IWMiR!JI- zf_mLOw{t(WyB&cXV;}BsL*3`hQf=EgZ3cV1Q35?y!f9-}BJeIMGw&JPrh(IxMg(Vl zZf6%YE_)gV=URYB?4liwSt}oyyAI|2MQX&IAbEoDe|I8={KhsWtq@GH4u{L<#t)bC z!Pf_PzRl8ry=mj7JDm@n4?BMoYK;xj*ZAq%;nvammO03UgO1kdr^%YpSuU42sDVA< zt^D3A$y;F2%-!AHHPqD9ykB)+0W6RJks&Lt>CqY>j4})|*1|zOoiT|GUL}kp{NyHe za(Wubs-RnC5r2L#&o>vThp7Y5Lu`R2cocdecrG6b@9T}C{9j8C0gM;1#`~hOW-B1} zsU>xtV-3SZSBlb(vHe{|%g^0z*6IhF{Rk|TAaWAG!BD zonkaI^u(~0N|*=WyfH*g>dMIUnYRyHr3jTuydGnoKKZC$`D?ko$uTG&OWs#=y=(+)M>Fv7{cl8z*KaJ z#ed{?+}OElQUCzBTza7uk(x+w$>k&)AMkFQE`HM^V+4`iaxCQn zVtUhVa1kd=^8H4@Zm!Po`A9k+cjsfJar4{053R6d02QqK{&w*Zb2SGW?+_*f*@=Zv zXhdDNg9?G_eRKC#Gf*@y%EqmatOXTKh8xZ?Xv99<94UKuhm1rJ7Zt9=a+6c<8aT8E z=HQ-pQ9UAaTVWpoQ06FT>k<%tn{}A9c6-&%Imv+;?@XD%Y;J@+1pe*buD>nwTT?EZ zq+-cLSXf@1sE$tp@vVf${lC6H1gCY&g!A(#ibfS{KkIvzM%KIenOJA|E3(H8eUMT; z0c^+Uv_4W13uf)-eWZj64M1M{djEm3UWngPeu#OrHdLo&3M{H5(p>>dy z4Ssqi)E)vR&%j|uHj%)EDxmyYPN#GUJ7RLeXPG({A0;evUiw_%5X2*V1=i`h)|1My zZ%;XbF7t|XE^76yK~%mkktDDhM<{qkoX=Jv z7vC_90^<8Bjo#+f7&_I-OrzppW z<5ku*M-(N4l2~qZx%oGQ{J_?z(@4zmDwe851{n(CiHU1HYF|17$KGV1wtI$^^uTm3 zb;X(Frj_Gr_(3>}kt=r;s4h~=A>1!{ySsIYxl}XoR#Q3+6#LEY2-67TkEqcR6$gQk zi|inn0H!ABHg0CXinB+{+nh61-ML%Q4U4uR9{Yz+9?%TZjL0Ohx3V(RzlYC|f{B zM{o1Xs>sdUxAYjx{!)RP)N}n9j@><;9a<<|B2b8@!R*y>QXD%t5)TWG@-*j(>jnQJ1+!A6#Y1ggNMrEDs}h;Yn;N5oquzB zY{@W^(C(Lrj1&+icz(TJSJd~)t%rB`pTN<w?L|@q(cdHVIFoYO1qDHla`3Xbg*oCRiLK5Fac}7{F>vae9wy&$S0G(&hkh%|D@3-a2$J{EL{4G0JTV|Q|T^=Q3l46UG~ zM8<1BI`2L;?6fag#()N)QpmO(y=O+9jti0}ghXHYt{fky#C_DAy@EKp5fKvi&2l&) zXwCN!hiv^nZJmub(|a7p+15NX*JjGkLl2swIBP2mZL{XN5Esp@EapeLkP} zmuh9&!tA<^Ny5h;d#Ve6+go(OTod0vKtE`l$I73*84-lu;_2R1cCfcfOzB3A!B@2D zuP|IB&P;H*saY{k5;Z?hz8z_|HqS%?44tnWCL#h48)gY4wX0d~sQPa+g4%UTW4P@? zT+Q<{FB%tAZ#N7!r1_1q&0aIak`i)_ssVf>3K=Zv-pg!63aQmP_2^rPD6TMVpapNl zcM#u4qq8>#dz#&26#M0-;!LvNn|oYu*V{H0EIX|;;0c;%>6F{2`0fIIZgYG*-L=bR zfpVaw{1b+OTm>|7)u!M8x@@9n1K))QO~I{6#$D4oW;&h*&nT;WvW*L;#^A<1u+r5H z%67m~ir0EfG;npGqI@Y_Jxk@m<55FAf3HEZb&|G~{1itxx2tI<4(qH>ztSzu4&*lKZy=*?OneC0d*(3aPFKhw~z!su0(Gp9huR@UU_1kfBTH6>10f!P~d4*k9Y9dCPc zifN7Z++J72?A@oQ5F=92sqUe&*-30;QfE{TZJLzYK!RXlhbT;}y@nmpgpG^!e^%<81SJaM7H7yzQfjplhx{?y1 z2i0*opju``2?)$*@LKr>92%hqE%u!QzSJYSnv&ureLAtN{8+2=qEKNfdXnX}%kbOn z@M*6{H>zVlsdWjrzP_MK1}>lee==0M-|0~P0%qJfQ&}g%W5Dk5)OdBW zVAvT2pJYQP=@6c71HKBWPlKi>Qwrie7vfs?lJfX--jafSvEFBubpt8Jji&{m;*aNX zh|oC8WdcNjeQ*x`K0hZN*#`~|gjV;FAnO&`Lf(@}V7*!vtBGy2C(+SJWTo6~wt0@)~^l7}Uhkt(^fQsGK7kl_UNby=8R_H(hd8 z%HI*T$Gv?f=O(kn(Hkbsxg)XsYV*-(9FlNcf!l~+Zzp^RNU`fer;r5lri(H+3oEOK z(F&;t!dmvGFyA@=tnPTlj7;||Z=%mO=s?h!O5XmwDT+wsHc#c466E+H6l4<4czSDt zvC1ZQ^>FtMkv0}qojMVQqygRFtbzsWE{r3XYN>b;O#>0C`_8Ne_+&J4;E zkk=Jwlz&}0vQrHX}X;aT+lIPnFvy~CMf%jba{xA5!t!w_oe|2)7 zrNbioS(-U4lXqwZuYP{y{9LOIbKSe_3D9s1clK<+v6qPRhBhJx^z4T6OPilb+3OtD Oz~$lM?OaI>PW%Vo%~?kP literal 0 HcmV?d00001 diff --git a/Pages/Lab5/base.md b/Pages/Lab5/base.md index 9892638d..5cb9a39b 100644 --- a/Pages/Lab5/base.md +++ b/Pages/Lab5/base.md @@ -44,7 +44,7 @@ struct fs_vnode { FS_Base 的 IPC handler 在处理 IPC 请求时,会先把 IPC 消息中包含的文件 fd 转换为 fid,所以我们需要把进程的 fd 和实际所对应的文件表项的映射建立起来,而在 ChCore 中对应的就是 `server_mapping` 链表。每当处理 IPC 请求时,文件系统都会通过进程发起的 badge 号找到与之对应的映射表,最终得到文件表项的 ID。 -> [!CODING] 练习5 +> [!CODING] 练习题 5 > 实现 `user/system-services/system-servers/fs_base/fs_wrapper.c` 中的 `fs_wrapper_set_server_entry` 和 `fs_wrapper_get_server_entry` 函数。 > [!HINT] Tip @@ -69,7 +69,7 @@ FS_Base 的 IPC handler 在处理 IPC 请求时,会先把 IPC 消息中包含 针对 mmap 操作,我们知道针对文件的 mmap 操作是采取 Demand Paging 的内存映射来实现的,当用户进程调用 `mmap` 时,FS 会首先为用户新增一个 `pmo` 即内存对象,并将其对应的类型设置为 `PMO_FILE`,并为其创建 `Page_Fault` 映射(`user/system-services/system-servers/fs_base/fs_page_fault.c`),最后将该 `pmo` 对象发回用户进程并让其进行映射。当用户尝试访问该内存对象,并发生缺页异常时,内核会根据 pmo 的所有者(badge)将异常地址调用到对应FS处理函数进行处理,处理函数为每一个文件系统中的 `user_fault_handler`,此时 FS 服务器会根据缺页地址分配新的内存页,填充文件内容并完成缺页的处理,最终返回内核态,从而递交控制权到原来的用户进程。 -> [!CODING] 练习6 +> [!CODING] 练习题 6 > 实现 `user/system-services/system-servers/fs_base/fs_wrapper_ops.c` 中的 `fs_wrapper_open`、`fs_wrapper_close`、`__fs_wrapper_read_core`、`__fs_wrapper_write_core`, `fs_wrapper_lseek`函数。 > [!HINT] Tip @@ -81,9 +81,9 @@ FS_Base 的 IPC handler 在处理 IPC 请求时,会先把 IPC 消息中包含 > - 你应当回顾 Lab2 的代码,去了解针对 PMO_FILE,内核是怎么处理缺页并将其转发到FS中的。同时你需要查看 `user/system-services/system-servers/fs_base/fs_page_fault.c` 中的 `page_fault` 处理函数,了解 FS 是如何处理 mmap 缺页异常的。 > [!SUCCESS] -> 完成练习6后,执行 `make grade`,可以得到 `Scores: 100/100`。 +> 完成练习题6后,执行 `make grade`,可以得到 `Scores: 100/100`。 -> [!QUESTION] 练习7 +> [!QUESTION] 思考题 7 > 思考 ChCore 当前实现 VFS 的方式有何利弊?如果让你在微内核操作系统上实现 VFS 抽象,你会如何实现? --- diff --git a/Pages/Lab5/bower.md b/Pages/Lab5/bower.md new file mode 100644 index 00000000..81a505dd --- /dev/null +++ b/Pages/Lab5/bower.md @@ -0,0 +1,102 @@ +# BowerAccess + + +> [!NOTE] +> large language models (LLMs) 在当今时代快速发展,成为新一代科技发展创新浪潮的热点。 +> +> LLMs 通常具有数以亿计甚至数以百亿计的参数,这使得它们能够捕获语言中的复杂模式和语义关系,但也引入了极高的内存资源开销。以 GPT-3 举例,它的参数量为 175B,在未经优化的条件下,它的运行时内存开销大于 700GB 。这远远超出了许多边缘设备的 GPU 显存大小(如树莓派 4b 的 GPU 显存大小为 2GB)。 +> +> PowerInfer 是发表在 SOSP'24 上的工作,它可以使得 175B 的 LLM 部署在单个商用级 GPU 上,这得益于它观察到了 LLM 访存的稀疏性。即在 LLM 中,并不是所有的神经元都对于计算结果有影响,只有少部分神经元会影响最终的结果,通过只将重要的神经元加载到 GPU 显存中,并选择性地对神经元进行计算,来减少 LLM 的运行时内存开销。 + +> [!WARNING] +> 这是一个我们制作的新Lab, 欢迎大家测试并提出意见。 + +在 BowerAccess Lab 中,我们希望你参考 PowerInfer 的思想修改 chcore,进而在其上部署并优化一个与 LLM 类似的应用程序 `llm`(你可以在shell中通过`./llm`进行访问)。具体而言: + +`llm` 是一个 CPU 内存开销极大的程序,它会使用 `mmap()` 映射一个 1MB 大小的**特殊内存空间**(用 `MAP_LLM` 进行标识)并访问其中的数据完成功能,这远远超过了 chcore 管理的 `MAP_LLM` 物理内存大小(出于题目设计考虑,我们将这种特殊内存空间的大小限制为 1MB),直接运行会产生大量的 Page Fault,引入了极大的运行时开销。 + +幸运的是,`llm` 的访存具有和 LLM 类似的稀疏性: + +- 它虽然映射了非常大的内存空间,但是只会访问其中的一个特定的内存页面子集 + +- 只会按照单调递增的顺序访问内存页面 + +`llm` 的 `mmap()` 会传递一个特殊的特殊的 `MAP_LLM` 参数。 + +`llm` 的访存模式与下图相似(但访问的页面并不相同): + +![example](assets/example.jpg) + +虽然程序总共映射了 9 个页面,但是只访问了 `0, 2, 5, 6, 8` 这几个页面,且一定按照 `0 -> 2 -> 5 -> 6 -> 8` 的顺序访问,并没有访问 `1, 3, 4, 7` 这几个页面。 + +它的代码是(再次强调它只是示例代码,和真实的 `llm` 代码相似但不同): + +```c +#include +#include +#include +#include +#include + +#define PAGE_SIZE 4096 + +int main() { + const char *filename = "weight.dat"; + int fd = open(filename, O_RDWR | O_CREAT, 0666); + if (fd < 0) { + perror("open"); + return EXIT_FAILURE; + } + + // alloc 9 pages + if (ftruncate(fd, 9 * PAGE_SIZE) == -1) { + perror("ftruncate"); + close(fd); + return EXIT_FAILURE; + } + + // map the file, use the special `MAP_LLM` flag + char *map = mmap(NULL, 9 * PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_LLM, fd, 0); + if (map == MAP_FAILED) { + perror("mmap"); + close(fd); + return EXIT_FAILURE; + } + + // access page 0, 2, 5, 6, 8 + int pages_to_access[] = {0, 2, 5, 6, 8}; + for (size_t i = 0; i < sizeof(pages_to_access) / sizeof(pages_to_access[0]); i++) { + int page_number = pages_to_access[i]; + map[page_number * PAGE_SIZE] = 'A' + page_number; + printf("Accessed page %d, first byte: %c\n", page_number, map[page_number * PAGE_SIZE]); + } + + if (munmap(map, 9 * PAGE_SIZE) == -1) { + perror("munmap"); + } + + close(fd); + return EXIT_SUCCESS; +} +``` + +根据 `llm` 所具有的**稀疏的、可预测的**访存模式,我们可以设计在 page fault 发生时,预取(prefetch)即将访存的多个页面,这样就可以减少 page fault 的次数,提高了运行性能。 + + +> [!WARNING] +> 我们只提供 `llm` 的二进制文件,并不提供源码文件。请自由发挥,判断出 `llm` 的具体访存模式。 + +> [!QUESTION] 思考题 8 +> 阅读 `kernel/object/user_fault.c` 下的 `sys_user_fault_map_batched` 函数,并回答如下问题 +> - “`MAP_LLM` 地址空间具有容量限制”这个特点在代码中是如何实现的? +> - 对比它和 `sys_user_fault_map` 函数的区别,并回答我们为什么需要引入一个新的系统调用? + +> [!CODING] 练习题 9 +> 为了实现在 page fault 的时候预取页面的功能,我们需要修改 `user/system-services/system-servers/fs_base/fs_page_fault.c` 文件: +> - 实现 `predict_prefetch_pages` 函数。 +> - 实现 `handle_one_fault` 函数中针对 `MAP_LLM` 的预取(prefetch)功能,实现需要 `predict_prefetch_pages` 和 `usys_user_fault_map_batched` 函数的配合。 + +--- + +> [!SUCCESS] +> 以上为Lab5的所有内容 diff --git a/Pages/Lab5/posix.md b/Pages/Lab5/posix.md index 4bd8e136..d81fbbb8 100644 --- a/Pages/Lab5/posix.md +++ b/Pages/Lab5/posix.md @@ -27,7 +27,7 @@ read(3, "", 131072) = 0 撇去一些无关紧要的系统调用后,我们可以看到其首先调用了`openat`这个系统指令,其负责打开一个系统路径下的文件,并返回其一个文件描述符号。 -> [!CODING] 练习1 +> [!CODING] 练习题 1 > 阅读 `user/chcore-libc/libchcore/porting/overrides/src/chcore-port/file.c` 的 `chcore_openat` 函数,分析 ChCore 是如何处理 `openat` 系统调用的,关注 IPC 的调用过程以及 IPC 请求的内容。 Lab5 的所有代码都运行在用户态,不同应用间通过 IPC 进行通信,可调用的 IPC 相关函数定义在 `user/chcore-libc/libchcore/porting/overrides/include/chcore/ipc.h`。 diff --git a/Pages/SUMMARY.md b/Pages/SUMMARY.md index ba4b5317..5e9ed4b1 100644 --- a/Pages/SUMMARY.md +++ b/Pages/SUMMARY.md @@ -39,7 +39,7 @@ - [Posix适配](./Lab5/posix.md) - [FSM](./Lab5/FSM.md) - [VFS(FS_Base)](./Lab5/base.md) - + - [Boweraccess](./Lab5/bower.md) --- - [Detail: 源码详解](./Appendix/source-code.md) From 06822e440855b72c6b77b6861496a13f42edad08 Mon Sep 17 00:00:00 2001 From: Yiyang Wu Date: Tue, 15 Apr 2025 15:20:48 +0800 Subject: [PATCH 2/2] feat(lab5): impl boweraccess lab Signed-off-by: Yiyang Wu --- Lab5/filelist.mk | 3 +- Lab5/kernel/include/mm/vmspace.h | 10 +- Lab5/kernel/include/object/memory.h | 2 + Lab5/kernel/include/object/user_fault.h | 3 + Lab5/kernel/mm/vmspace.c.dbg.obj | Bin 12528 -> 63648 bytes Lab5/kernel/mm/vmspace.c.obj | Bin 15488 -> 16432 bytes Lab5/kernel/object/memory.c.dbg.obj | Bin 19560 -> 81136 bytes Lab5/kernel/object/memory.c.obj | Bin 23520 -> 23992 bytes Lab5/kernel/object/user_fault.c.dbg.obj | Bin 10384 -> 56840 bytes Lab5/kernel/object/user_fault.c.obj | Bin 9328 -> 13016 bytes Lab5/kernel/syscall/syscall.c.dbg.obj | Bin 7776 -> 26088 bytes Lab5/kernel/syscall/syscall.c.obj | Bin 7776 -> 7816 bytes Lab5/kernel/user-include/uapi/memory.h | 2 +- Lab5/kernel/user-include/uapi/syscall_num.h | 2 + Lab5/ramdisk/test_llm.bin | Bin 0 -> 8408 bytes Lab5/scores-part2.json | 2 +- Lab5/scores-part3.json | 2 +- Lab5/scores-part4.json | 18 +++ .../overrides/include/chcore/syscall.h | 3 + .../porting/overrides/include/sys/mman.h | 153 ++++++++++++++++++ .../overrides/src/chcore-port/syscall.c | 13 ++ .../system-servers/fs_base/fs_page_fault.c | 56 ++++++- .../system-servers/fs_base/fs_wrapper_ops.c | 33 +++- .../fs_base/fs_wrapper_ops.c.obj | Bin 21048 -> 21512 bytes .../system-servers/procmgr/procmgr.c | 10 ++ 25 files changed, 300 insertions(+), 12 deletions(-) create mode 100755 Lab5/ramdisk/test_llm.bin create mode 100644 Lab5/user/chcore-libc/libchcore/porting/overrides/include/sys/mman.h diff --git a/Lab5/filelist.mk b/Lab5/filelist.mk index 2fe644fb..29fb0d2f 100644 --- a/Lab5/filelist.mk +++ b/Lab5/filelist.mk @@ -7,5 +7,6 @@ FS_WRAPPER := $(FS_BASE_DIR)/fs_wrapper.c FS_OPS := $(FS_BASE_DIR)/fs_wrapper_ops.c FSM := $(FSM_DIR)/fsm.c FSM_CLIENT_CAP := $(FSM_DIR)/fsm_client_cap.c +FS_FILE_FAULT := $(FS_BASE_DIR)/fs_page_fault.c -FILES := $(FS_VNODE) $(FS_WRAPPER) $(FS_OPS) $(FSM) $(FSM_CLIENT_CAP) +FILES := $(FS_VNODE) $(FS_WRAPPER) $(FS_OPS) $(FSM) $(FSM_CLIENT_CAP) $(FS_FILE_FAULT) diff --git a/Lab5/kernel/include/mm/vmspace.h b/Lab5/kernel/include/mm/vmspace.h index 0af47126..e671d9e9 100644 --- a/Lab5/kernel/include/mm/vmspace.h +++ b/Lab5/kernel/include/mm/vmspace.h @@ -34,6 +34,15 @@ struct vmregion { vmr_prop_t perm; struct pmobject *pmo; struct list_head cow_private_pages; + /* for Lab5, llm page lru list */ + struct list_head llm_pages; + int num_llm_pages; +}; + +#define MAX_LLM_PAGE_NUM 16 +struct llm_page { + struct list_head node; + vaddr_t vaddr; }; /* This struct represents one virtual address space */ @@ -60,7 +69,6 @@ struct vmspace { unsigned char history_cpus[PLAT_CPU_NUM]; struct vmregion *heap_boundary_vmr; - /* Records size of memory mapped. Protected by pgtbl_lock. */ long rss; }; diff --git a/Lab5/kernel/include/object/memory.h b/Lab5/kernel/include/object/memory.h index adc93d0e..2dfa56ea 100644 --- a/Lab5/kernel/include/object/memory.h +++ b/Lab5/kernel/include/object/memory.h @@ -41,6 +41,8 @@ struct pmobject { */ void *private; struct list_head mapping_list; + /* Lab5, counting page faults */ + long page_faults; }; /* kernel internal interfaces */ diff --git a/Lab5/kernel/include/object/user_fault.h b/Lab5/kernel/include/object/user_fault.h index 036cb942..6648e8b7 100644 --- a/Lab5/kernel/include/object/user_fault.h +++ b/Lab5/kernel/include/object/user_fault.h @@ -62,5 +62,8 @@ void handle_user_fault(struct pmobject *pmo, vaddr_t fault_va); int sys_user_fault_register(cap_t notific_cap, vaddr_t msg_buffer); int sys_user_fault_map(badge_t client_badge, vaddr_t fault_va, vaddr_t remap_va, bool copy, unsigned long perm); +/* Syscall for Lab5 only */ +int sys_user_fault_map_batched(badge_t client_badge, vaddr_t fault_va, vaddr_t remap_va, + bool copy, unsigned long perm, bool completed, vaddr_t orig_fault_va); #endif /* OBJECT_USER_FAULT_H */ diff --git a/Lab5/kernel/mm/vmspace.c.dbg.obj b/Lab5/kernel/mm/vmspace.c.dbg.obj index 2a081a7c4aad6c85ecb263e098e0e40778957c18..b41e08987bc3ba9653ca1cf3366f96d3998325c5 100644 GIT binary patch literal 63648 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 (D9%{c5fw4?bVGTd&0yx93&ZLA}Pw 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 literal 12528 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 V`uD=I`m6aQW%L~G)gJcW{{m!3+du#S diff --git a/Lab5/kernel/mm/vmspace.c.obj b/Lab5/kernel/mm/vmspace.c.obj index 792c20a679aa1623e3712cd2b8ca58102e391f79..a6cc58d1ac752d4f0398ec48975963738f7349f6 100644 GIT binary patch literal 16432 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 y2@I)o?L=UAj8UJ94HJP7y*; literal 15488 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 diff --git a/Lab5/kernel/object/memory.c.dbg.obj b/Lab5/kernel/object/memory.c.dbg.obj index 9b3ee3b0781f010af7ba38b1a5e11879e3061a56..f2614ec35c5fbdc4620f5aaff0f22e53f5a247f8 100644 GIT binary patch literal 81136 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 RZSnFZdF8RTy_+kI|38s<54ivU literal 19560 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 O8U{zyNz#99|NS3nSJtQi diff --git a/Lab5/kernel/object/memory.c.obj b/Lab5/kernel/object/memory.c.obj index afcae8fb475f6a83d262c4547eeff84c04adf075..55422d74c03a52df668547165cac7e5a46b9ec5a 100644 GIT binary patch literal 23992 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 B7#aWo diff --git a/Lab5/kernel/object/user_fault.c.dbg.obj b/Lab5/kernel/object/user_fault.c.dbg.obj index 3cd5c082a88718e4b955ca4ec9f04b54bf398f25..239aadab4edfd1bcffd4c824cb8e2147c107e30d 100644 GIT binary patch literal 56840 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 literal 10384 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 diff --git a/Lab5/kernel/object/user_fault.c.obj b/Lab5/kernel/object/user_fault.c.obj index d48dd2599c020669f106a1da152d15ca014dbf2d..afc342ff0b1dc191191f4149b4870258593fe5b5 100644 GIT binary patch literal 13016 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 Dp`Ggi literal 9328 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 diff --git a/Lab5/kernel/syscall/syscall.c.dbg.obj b/Lab5/kernel/syscall/syscall.c.dbg.obj index b9c433d644eb502ca167ca22f0403842d0851950..92ce17fe5ef365dc93ad1f1f04d7fbc510d58dd2 100644 GIT binary patch literal 26088 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 PZDmvTA8eB5cslV9W_C(+ diff --git a/Lab5/kernel/syscall/syscall.c.obj b/Lab5/kernel/syscall/syscall.c.obj index 5bc5dbd0e28bc3a79385836dd6a6a9985b3af108..cf1c50f45d1de04e92e9bd91172cb626a1d08f38 100644 GIT binary patch delta 1875 zcmZ9ML2MLN7{}*rceYzPvuS5``(}38r3H*dSSc}pL^ifkQ$gH<%P?iBLs-xAc@-%SeC~Ml~tJB;8uGW$VtCmDE*Mbr)NhJDK~K zhnR0MN15lCRpwXB8_e6xUzp3x7`oO;bgm1;Q>qfXm_5vXW|>)Gjx#@Ie#*Sc{GRzU z^C9yeW(w6tDGJOE<{oA@^L6Gi=DW-b%uCFx%$v*~nGc!2Gc7c`Qh18!bOX`B*WJv1 zoN$ANvD0Hi<&lwRhh{Ij2jitvW5e$czFj^wa&oXz9vwVZJ~{Nx@NvsZ>&^9P(_>Ue zFJoYOxSkBnbhAziY8FbK6fNjYOOZf@Mkb6tXV&z<S`l1($VN>$B)dtay%?N1HE^ z^qnxLb9GwLb&l4|q3FvndT~_{eF#}f^BACXgC4I=on+Oa(l$)`Qf#7+!?y)pOU(Jw zU0)l(Y(jHd;!j#XW7t+*t2s|2Pa_Vb9k;`w%G^fe1 zFRLes_0n;pC#c5uATMcu$#xiHUq!E!;eMlk^jy`P3?^vKHJa0B%sGJTWbczbYS@E# zK-LLpzYW_5H;`e$=zrcwGbjbpZ8g#k5IE+O~R>;m9 zwjWQ(ZVPGO4f_U)A?-WaCBq)UKq%L|m5+=xgUSD;(OYfPs2JubRbO%RhuW?0x|aT- z)9A1Lhc#(FTbtXi*NeW!+T7l(6tUUitS@3s9zM*S758TU%AFJ99!}?b+#`BLhg$kr Z%x`U&c5B_=gDC87_$*tyszBs7{0D9;CfEP~ delta 1934 zcmZ9NPiPcZ9LM)1GrKX)Kz4SLH?zs+kDx}AMMa8#nxz}1WSbhXt!M;;+DfaK*t81H$RUBnQw|CWDmfVO_kR0EU!23|z5RTD z@6Wz@$rf{^j?1kTrSv~r2P?$|T(8Vd&sB~IT(;x5WC!@$_Hfd+@W5^t7M|HMv|{QJ zvEAIhgN2s3RJFA#ExZf3XW_HB3$r!h zcz{wo5D6p`G7Ks8XpJg8zC11#Ye#27icUNv7VsVM3+}JS1ogjEeas|+@PZy6?IIdK zq$cyvY2Sd4qYId6zlQe8gN~Cec|fk*^K}omsUMIc7KWDDx}kdFGGI zQRW15miaGpf%%+i;r@CleC8(RHs)UDr_5gFY32~~H|7NM4)XzXfmvd{WL6>RO3|Q* zyc>wU{JC3k`j&gpYC3nezyHKH-+y~?Fgi_NcT)691TtRv66UpS)@>uFJ@2KhI<2R) z7Q>#TKY>wSaZ*8c<~|HMO2B1k!KQjYtdQJY3CCBw8fs)@!3nxFy$ zlr|XYcD^M zfNVe6Wy5}iak4kat{Aox^K~-Zr;Tc==p59e&SO7TY0N7cW4_~$k(Cnd(s84III6Y_ zePoZ5-EGY92}Y%KqZ_T}EntM|=A?sJs_ivu58w$UkI9}f>_KD#I_H4S*{~V(1Tr+| zEgESPhAB;{<@7UVq%D}F)Qci&ZyM<#EYW(4wBC$iKZhIA`G<7=hCPfN*$%P`hCPA- zvi)S24eMh(T)X3yHR(L1TJX-c>;2gz1y*%hqwVQ6X*OLR8~r>iu1WiJ8vOv&=w*23 z>CtpbR4ga)NBt!+HQmzilMqvw$aJ~+s`4xjH6C7M+SV1_vN?t=jl0AkPBm_R1IX7M Aj{pDw diff --git a/Lab5/kernel/user-include/uapi/memory.h b/Lab5/kernel/user-include/uapi/memory.h index 9aaceb66..6707eb60 100644 --- a/Lab5/kernel/user-include/uapi/memory.h +++ b/Lab5/kernel/user-include/uapi/memory.h @@ -27,7 +27,7 @@ typedef unsigned pmo_type_t; #define PMO_TZ_NS 7 #define PMO_TZ_SHM 8 #endif /* CHCORE_OPENTRUSTEE */ - +#define PMO_FILE_LLM 9 /* Only for Lab5 test, temporary type for starting page fault counting */ #define PMO_FORBID 10 /* Forbidden area: avoid overflow */ /* vmr permissions */ diff --git a/Lab5/kernel/user-include/uapi/syscall_num.h b/Lab5/kernel/user-include/uapi/syscall_num.h index 6f2bfdb4..f578fb4c 100644 --- a/Lab5/kernel/user-include/uapi/syscall_num.h +++ b/Lab5/kernel/user-include/uapi/syscall_num.h @@ -76,6 +76,8 @@ /* - page fault */ #define CHCORE_SYS_user_fault_register 41 #define CHCORE_SYS_user_fault_map 42 +/* Only for Lab5 */ +#define CHCORE_SYS_user_fault_map_batched 60 /* POSIX */ /* - time */ diff --git a/Lab5/ramdisk/test_llm.bin b/Lab5/ramdisk/test_llm.bin new file mode 100755 index 0000000000000000000000000000000000000000..bb75d64c0e3e95b64ba3c0afcc3ed1fe227d9bcf GIT binary patch literal 8408 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 zμF?eDkXY;UGK_h!{bSwFAiB`Bn|#O>$(OYtzb-E4n(slj + +#define __NEED_mode_t +#define __NEED_size_t +#define __NEED_off_t + +#if defined(_GNU_SOURCE) +#define __NEED_ssize_t +#endif + +#include + +#define MAP_FAILED ((void *) -1) + +#define MAP_SHARED 0x01 +#define MAP_PRIVATE 0x02 +#define MAP_LLM 0x04 +#define MAP_SHARED_VALIDATE 0x03 +#define MAP_TYPE 0x0f +#define MAP_FIXED 0x10 +#define MAP_ANON 0x20 +#define MAP_ANONYMOUS MAP_ANON +#define MAP_NORESERVE 0x4000 +#define MAP_GROWSDOWN 0x0100 +#define MAP_DENYWRITE 0x0800 +#define MAP_EXECUTABLE 0x1000 +#define MAP_LOCKED 0x2000 +#define MAP_POPULATE 0x8000 +#define MAP_NONBLOCK 0x10000 +#define MAP_STACK 0x20000 +#define MAP_HUGETLB 0x40000 +#define MAP_SYNC 0x80000 +#define MAP_FIXED_NOREPLACE 0x100000 +#define MAP_FILE 0 + +#define MAP_HUGE_SHIFT 26 +#define MAP_HUGE_MASK 0x3f +#define MAP_HUGE_16KB (14 << 26) +#define MAP_HUGE_64KB (16 << 26) +#define MAP_HUGE_512KB (19 << 26) +#define MAP_HUGE_1MB (20 << 26) +#define MAP_HUGE_2MB (21 << 26) +#define MAP_HUGE_8MB (23 << 26) +#define MAP_HUGE_16MB (24 << 26) +#define MAP_HUGE_32MB (25 << 26) +#define MAP_HUGE_256MB (28 << 26) +#define MAP_HUGE_512MB (29 << 26) +#define MAP_HUGE_1GB (30 << 26) +#define MAP_HUGE_2GB (31 << 26) +#define MAP_HUGE_16GB (34U << 26) + +#define PROT_NONE 0 +#define PROT_READ 1 +#define PROT_WRITE 2 +#define PROT_EXEC 4 +#define PROT_GROWSDOWN 0x01000000 +#define PROT_GROWSUP 0x02000000 + +#define MS_ASYNC 1 +#define MS_INVALIDATE 2 +#define MS_SYNC 4 + +#define MCL_CURRENT 1 +#define MCL_FUTURE 2 +#define MCL_ONFAULT 4 + +#define POSIX_MADV_NORMAL 0 +#define POSIX_MADV_RANDOM 1 +#define POSIX_MADV_SEQUENTIAL 2 +#define POSIX_MADV_WILLNEED 3 +#define POSIX_MADV_DONTNEED 4 + +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +#define MADV_NORMAL 0 +#define MADV_RANDOM 1 +#define MADV_SEQUENTIAL 2 +#define MADV_WILLNEED 3 +#define MADV_DONTNEED 4 +#define MADV_FREE 8 +#define MADV_REMOVE 9 +#define MADV_DONTFORK 10 +#define MADV_DOFORK 11 +#define MADV_MERGEABLE 12 +#define MADV_UNMERGEABLE 13 +#define MADV_HUGEPAGE 14 +#define MADV_NOHUGEPAGE 15 +#define MADV_DONTDUMP 16 +#define MADV_DODUMP 17 +#define MADV_WIPEONFORK 18 +#define MADV_KEEPONFORK 19 +#define MADV_COLD 20 +#define MADV_PAGEOUT 21 +#define MADV_HWPOISON 100 +#define MADV_SOFT_OFFLINE 101 +#endif + +#ifdef _GNU_SOURCE +#define MREMAP_MAYMOVE 1 +#define MREMAP_FIXED 2 +#define MREMAP_DONTUNMAP 4 + +#define MLOCK_ONFAULT 0x01 + +#define MFD_CLOEXEC 0x0001U +#define MFD_ALLOW_SEALING 0x0002U +#define MFD_HUGETLB 0x0004U +#endif + +#include + +void *mmap (void *, size_t, int, int, int, off_t); +int munmap (void *, size_t); + +int mprotect (void *, size_t, int); +int msync (void *, size_t, int); + +int posix_madvise (void *, size_t, int); + +int mlock (const void *, size_t); +int munlock (const void *, size_t); +int mlockall (int); +int munlockall (void); + +#ifdef _GNU_SOURCE +void *mremap (void *, size_t, size_t, int, ...); +int remap_file_pages (void *, size_t, int, size_t, int); +int memfd_create (const char *, unsigned); +int mlock2 (const void *, size_t, unsigned); +#endif + +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +int madvise (void *, size_t, int); +int mincore (void *, size_t, unsigned char *); +#endif + +int shm_open (const char *, int, mode_t); +int shm_unlink (const char *); + +#if defined(_LARGEFILE64_SOURCE) +#define mmap64 mmap +#define off64_t off_t +#endif + +#ifdef __cplusplus +} +#endif +#endif diff --git a/Lab5/user/chcore-libc/libchcore/porting/overrides/src/chcore-port/syscall.c b/Lab5/user/chcore-libc/libchcore/porting/overrides/src/chcore-port/syscall.c index e2685195..525bd3fb 100644 --- a/Lab5/user/chcore-libc/libchcore/porting/overrides/src/chcore-port/syscall.c +++ b/Lab5/user/chcore-libc/libchcore/porting/overrides/src/chcore-port/syscall.c @@ -267,6 +267,19 @@ int usys_user_fault_map(badge_t client_badge, vaddr_t fault_va, perm); } +int usys_user_fault_map_batched(badge_t client_badge, vaddr_t fault_va, + vaddr_t remap_va, bool copy, vmr_prop_t perm, bool completed, vaddr_t orig_fault_va) +{ + return chcore_syscall7(CHCORE_SYS_user_fault_map_batched, + client_badge, + fault_va, + remap_va, + copy, + perm, + completed, + orig_fault_va); +} + int usys_map_pmo_with_length(cap_t pmo_cap, vaddr_t addr, unsigned long perm, size_t length) { diff --git a/Lab5/user/system-services/system-servers/fs_base/fs_page_fault.c b/Lab5/user/system-services/system-servers/fs_base/fs_page_fault.c index 70d778fd..a856d4ba 100644 --- a/Lab5/user/system-services/system-servers/fs_base/fs_page_fault.c +++ b/Lab5/user/system-services/system-servers/fs_base/fs_page_fault.c @@ -36,6 +36,8 @@ cap_t notific_cap; struct list_head fmap_area_mappings; pthread_rwlock_t fmap_area_lock; +#define MAX_LLM_PAGE_NUM 16 + /** * If page cache module is available, * use addr of page cache page first. @@ -70,6 +72,15 @@ vaddr_t fs_wrapper_fmap_get_page_addr(struct fs_vnode *vnode, off_t offset) return (vaddr_t)page_buf; } +static int predict_prefetch_pages(int fault_page_id, + int prefetch_page_ids[MAX_LLM_PAGE_NUM]) +{ + /* LAB7 TODO BEGIN */ + prefetch_page_ids[0] = fault_page_id; + return 0; + /* LAB7 TODO END */ +} + static int handle_one_fault(badge_t fault_badge, vaddr_t fault_va) { vaddr_t server_page_addr; @@ -81,8 +92,14 @@ static int handle_one_fault(badge_t fault_badge, vaddr_t fault_va) bool copy = 0; int ret; + /* declared for prefetching */ + int prefetch_page_ids[MAX_LLM_PAGE_NUM]; + size_t prefetch_offset; + bool completed; + fs_debug_trace_fswrapper( "badge=0x%x, va=0x%lx\n", fault_badge, fault_va); + // printf("page fault at 0x%lx\n", fault_va); /* Find mapping area info */ ret = fmap_area_find(fault_badge, @@ -149,9 +166,42 @@ static int handle_one_fault(badge_t fault_badge, vaddr_t fault_va) } } - /* Map client page table, and notify fault thread */ - ret = usys_user_fault_map( - fault_badge, fault_va, server_page_addr, copy, map_perm); + if (flags & MAP_LLM) { + /* LAB7 TODO BEGIN */ + /* predict prefetch pages and map them in one fault */ + ret = predict_prefetch_pages(area_off / PAGE_SIZE, prefetch_page_ids); + if (ret < 0) { + BUG_ON("this call should always be success here\n"); + } + /* notify pending thread only when prefetch is completed */ + completed = true; + prefetch_offset = prefetch_page_ids[0] * PAGE_SIZE; + server_page_addr = fs_wrapper_fmap_get_page_addr( + vnode, file_offset + prefetch_offset); + if (!server_page_addr) { + /* The file offset is out-of-range */ + fs_debug_warn("vnode->size=0x%lx, offset=0x%lx\n", + vnode->size, + file_offset + prefetch_offset); + } + ret = usys_user_fault_map_batched( + fault_badge, + fault_va - area_off + prefetch_offset, + server_page_addr, + copy, + map_perm, + completed, + fault_va); + if (ret < 0) { + BUG_ON("this call should always be success here\n"); + } + /* LAB7 TODO END */ + } + else { + /* Map client page table, and notify fault thread */ + ret = usys_user_fault_map( + fault_badge, fault_va, server_page_addr, copy, map_perm); + } if (ret < 0) { BUG_ON("this call should always be success here\n"); } diff --git a/Lab5/user/system-services/system-servers/fs_base/fs_wrapper_ops.c b/Lab5/user/system-services/system-servers/fs_base/fs_wrapper_ops.c index 8701b195..f1d3e9a1 100644 --- a/Lab5/user/system-services/system-servers/fs_base/fs_wrapper_ops.c +++ b/Lab5/user/system-services/system-servers/fs_base/fs_wrapper_ops.c @@ -694,7 +694,7 @@ int fs_wrapper_fmap(badge_t client_badge, ipc_msg_t *ipc_msg, return -EINVAL; } - if (flags & (~(MAP_SHARED | MAP_PRIVATE | MAP_FIXED_NOREPLACE))) { + if (flags & (~(MAP_SHARED | MAP_PRIVATE | MAP_FIXED_NOREPLACE | MAP_LLM))) { fs_debug_trace_fswrapper("unsupported flags=%d\n", flags); return -EINVAL; } @@ -716,7 +716,11 @@ int fs_wrapper_fmap(badge_t client_badge, ipc_msg_t *ipc_msg, /* Step: Create a PMO_FILE for file, if not created */ if (vnode->pmo_cap == -1) { - pmo_cap = usys_create_pmo(vnode->size, PMO_FILE); + if (flags & MAP_LLM) { + pmo_cap = usys_create_pmo(vnode->size, PMO_FILE_LLM); + } else { + pmo_cap = usys_create_pmo(vnode->size, PMO_FILE); + } if (pmo_cap < 0) { ret = pmo_cap; goto out_remove_mapping; @@ -740,8 +744,29 @@ int fs_wrapper_fmap(badge_t client_badge, ipc_msg_t *ipc_msg, int fs_wrapper_funmap(badge_t client_badge, ipc_msg_t *ipc_msg, struct fs_request *fr) { - return fmap_area_remove( - client_badge, (vaddr_t)fr->munmap.addr, fr->munmap.length); + int ret; + size_t area_off; + struct fs_vnode *vnode; + off_t file_offset; + u64 flags; + vmr_prop_t prot; + + ret = fmap_area_find(client_badge, + (vaddr_t)fr->munmap.addr, + &area_off, + &vnode, + &file_offset, + &flags, + &prot); + if (ret < 0) { + return ret; + } + if (vnode->pmo_cap != -1 && (flags & MAP_LLM)) { + usys_revoke_cap(vnode->pmo_cap, false); + vnode->pmo_cap = -1; + } + ret = fmap_area_remove(client_badge, (vaddr_t)fr->munmap.addr, fr->munmap.length); + return ret; } int fs_wrapper_creat(ipc_msg_t *ipc_msg, struct fs_request *fr) diff --git a/Lab5/user/system-services/system-servers/fs_base/fs_wrapper_ops.c.obj b/Lab5/user/system-services/system-servers/fs_base/fs_wrapper_ops.c.obj index c27c428b4140e91cf3233d51d514ac01882f92a2..e263000346856b50768802c33b0cdac325b028d8 100644 GIT binary patch delta 3440 zcmZ{mZA?>F7{|}Ow=gKgm9}tOUZh2q6=b6YX(49p7OK2t$cvcxvZPeNp`aq@bYZdG z;xe}J!FtdMqQT4$ZQ}ex|j0JIZs+2ew8GvqCUk zFGNc$Li8?(vtI(hZUVw6XarhdP0)rDz^c2k8i%JlL)+Aqp*0^!&;r2Z4y!?tJ74%y zc>J;-jPE_N?VtctHG_jQTzcpMml|sI3UHb;hNd_}D9rJ>0D%5^l-O`=#9>-3jCwOw zz{W73(ZmbU6R{e*nep9`jdU>)N8xHP8s<_$X5eeUT!-c?MBhR)O7bDHyW@!kjbTogJHOr;T-Z_;eAHYXTYOJl+JI{O2gXtpA8~CyFiSdjr}u$#An??cLfVWs4NOY(2vIv^S6k zWS*?>6?%@gtI%pOK^!I1#NAu$xfopJfFGabJjaIcdH!6^_ii4X0`;f)uLPsK&N+(1Yd#(k>IQQ3bxp7Q%uVsqC=pSeUa^hJgq2vkx zt5`7dvHqaCun!4CDm0)gk41xX*&K6n`Kb&SOz%%C`_OQlcO6YVW?VOu zKfdN@+y?az-`~4Cu?#p9fCkAMVUkIg(?L8?S;Y%0zNfH$Y@Hl{h{!y>_872?DXK^qez{{4} zq)uXTfrOfbHVeBhIt*~@+z5xw<)-laGxSh8Q}qi{RWA9 z!I;8f2XUBHa4+GS6e&?F+00SG1;PcwLxlSXS22=siSSYXj^%x(ryKA_qKhzn%(Xf z?N&$Olc%DR0>_glyUkiaKNV7zc3V-w$l}Ut+_U?--{^KXceQ%%D9GxDYF*Ca-O=gWE9MxC_9G_<32WVd+g zpm;6CeQ>IrH=ZM^19@do>KIIN@lbFXauP}DaNHWo!a%qVadZd(!1FF0eAAU^G*L=C z5(3048=iLY#yp}XBR^WT!rMqKrdC@){P5HUnKiuEM^v2ca!TzZyja06P|v$yY2G46Yok94}mHN34;p~_wRkb=uy`#8K^ z!+XyvRJliwDY)FCClp+6(X$FJx9B+X4@J&d{y9jOc*Fmjk$ZHT!a?fM0Q4!i{O%7c zcmz7veZ%G%VQQ^Cey%_)7&r$v)jHS?Biv(7fq`0!d^?M7JB?6VSIP!bVFQ{hY48Y| z8q-A6**Z)7#xyC$95mKD*x^@TLw%{bGE0JSYB*SLkFO)Y8v}5%-Vtvg4WSbb)Mow% DOw~W# delta 3105 zcmZ{mZERCj7{|}OZL#Zy_I0=22DIHwx-rNKtnGN2x6na1-r8*@i-POez=jvC0|b=V zkzlf@ABN9FMAWI%tP3WPO2P~z^9xzbJ`fynh>0DNIFS!1LDp!*bM8Hd9dEMp;oN(E z&;NPO|K6T^PJ4%hi-SU+PrSJ0eAVe9@w2w){gix~$( zeGfZznHe3bI*#PJFGM+izeUJA)Ct1_NY3XDp*%u8*ZzXb)|zx`U8U#njv3cgIa6wv z^DBLF{(EE$TtX<|M)C-1MOIW(Xw8|>iu(q0@Ytb+)? z=0$qs&*@QXPA3g}P){=v*zk2N4iY9%mfsV}xbgkp`x`Q&BC5N9pDK4q&VP!p*vRi# zckNraZVNt(qqVu$y27{ryVB$H(Q`sk4)OL9JpmCQy05gTY^0>_9|-saDE7M42+ zezOC1+f5Pg5!EBEUlJ0J$1@u;WVS_a-Su#1GL1y>^&bOtdzyqOT=tYZ_Rdoy*n!g8aNh$DJbR$etN%RVeL^UM zj>@2L5{^|$aIP|xPEaW`c>})?D-uwWa%SQV<$aX184$Ka^g|kMp?p+Rr=0R>m8TIa z6rcfwKOfTA#2YF1X?TM2809r;8hVxT9?E6P-==(&a=kzTrFaR@z*w=WB=3y0ufV@p z5-yP5{|(i+B{jxOk5e9^e1%dJp(!PIM(M3^0@v{={Ys_Zs`Q;opCmoRs`o`#1W1?C_OCfu2*|f#A+NM5BDfYZsy;b@c{1K7x;`B5~F1!;cEr>M>IL#o$ z8>IOYT!pQ$y`kJ?q%X#X^@W_i2+rebW-eNQqeE0-hbbH_qfrOW<)dz}te0Fq8YOPa zxyo%2UN5D)XtV@JV_Y;vxz_&y%0pPsKNnlwT7CZE}nDmiG3{OF)BIU%jtPONUFi;24h(J2FGcJ zw$j8Ll@M4OC6}Ild+fKrM?DxJjH4kMCBJ<&=Pm;AsMHvvQLU2+%88ThT-GF~=lN|? z%{9$M`IS)wLX+e-)9;-5G~?Q&*(oOuUr>?KyWy2aNvMF1CMg}E8seve)5Itz{(0WU z>34AYZQNX)98Yj{czu`3(}s zOW+IXovMZ;uynAev(q&xq#o1!W$MGb`t0~vMSDA9MSCFHXwFsx@A0w)Ac-UlF z7NZ*Cke{oS%k5wV@ipnpzO|`dOjqM`f;0op6Y-Uuy0V5R>1W-l;cQ<@YB=40&`}L% zr*5Chs~%6x_LD(P0y}jt!qgTiO^!9vm|b?p-qmonZ6Nx$gX!5ByGg^@5u4I*cB~#( zx#{u5A+W@L5cfLaPApI`=2u-Ap)wv6&pP2mtQZnrJsgc!@WV@Zc+Ls8;`QRR3%t$s z1<4XMvl`-F8ysz}5c^9WXJ2ZrC^$t0lki(}P`ug%-j;e(%A;mY7QpV7KtXh|I(!W> QEy0557Il