物理存储器与进程逻辑地址空间的管理_第1页
物理存储器与进程逻辑地址空间的管理_第2页
物理存储器与进程逻辑地址空间的管理_第3页
物理存储器与进程逻辑地址空间的管理_第4页
物理存储器与进程逻辑地址空间的管理_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统实验报告课程名称操作系统实验课程编号实验项目名称物理存储器与进程逻辑地址空间的管理学号年级姓名专业学生所在学院指导教师实验室名称地点哈尔滨工程大学计算机科学与技术学院第五次物理存储器与进程逻辑地址空间的管理一、实验概述1.实验名称物理存储器与进程逻辑地址空间的管理2.实验目的通过查看物理存储器的使用情况,并练习分配和回收物理内存,从而掌握物理存储器的管理方法。通过查看进程逻辑地址空间的使用情况,并练习分配和回收虚拟内存,从而掌握进程逻辑地址空间的管理方法。3.实验类型验证设计4.实验内容准备实验阅读控制台命令“pm”相关的源代码,并查看其执行的结果分配物理页和释放物理页阅读控制台命令“

2、vm”相关的源代码,并查看其执行的结果在系统进程中分配虚拟页和释放虚拟页在应用程序进程中分配虚拟页和释放虚拟页二、实验环境EOS操作系统和OSLab集成实验环境,主要运用了C语言。三、实验过程设计思路和流程图需要解决的问题及解答1)按F10单步调试MiAllocateAnyPages函数的执行过程,尝试回答下面的问题:本次分配的物理页的数量是多少?分配的物理页的页框号是多少?物理页是从空闲页链表中分配的?还是从零页链表中分配的?哪一行语句减少了空闲页的数量?哪一行语句将刚刚分配的物理页由空闲状态修改为忙状态?(4)绘制MiAllocateAnyPages函数的流程图。答:本次分配的物理页的数量

3、是1,分配的物理页的页框号是0 x409;物理页是从空闲页链表中分配的第226行MiFreePageListHead=MiGetPfnDatabaseEntry(Pfn)-Next;和第227行MiFreePageCount-減少了空闲页的数量,第229行将刚刚分配的物理页由空闲状态修改为忙状态;见实验过程开头流程图部分。按F10单步调试MiFreePages函数的执行过程,尝试回答下面的问题:本次释放的物理页的数量是多少?释放的物理页的页框号是多少?释放的物理页是之前分配的物理页吗?释放的物理页是被放入了空闲页链表中?还是零页链表中?绘制MiFreePages函数的流程图。答:本次释放的物理

4、页的数量是1,释放的物理页的页框号0 x409,释放的物理页是之前分配的物理页;释放的物理页被放入了空闲页链表中;见实验过程开头流程图部分。按F10单步调试MmAllocateVirtualMemory函数的执行过程,尝试回答下面的问题:分配的虚拟页的起始地址是多少?分配的虚拟页的数量是多少?它们和参数BaseAddress和RegionSize初始化的值有什么样的关系?分配虚拟页的同时有为虚拟页映射实际的物理页吗?这是由哪个参数决定的?分配的虚拟页是在系统地址空间(高2G)还是在用户地址空间(低2G)?这是由哪个参数决定的?参考MiReserveAddressRegion函数的定义和注释,说

5、明该函数的功能。答:分配的虚拟页的起始地址是OxaOOO3OOO,分配的虚拟页的数量是1,BaseAddress和RegionSize初始化的值是期望保留或者提交的地址区域的起始地址和大小;分配虚拟页的同时有为虚拟页映射实际的物理页,这是由第三个参数AllocationType决定的;分配的虚拟页是在系统地址空间(高2G),这是由第四个参数SystemVirtual决定的;MiReserveAddressRegion函数的功能是保留一段虚拟地址区域。4)按F10单步调试MmFreeVirtualMemory函数的执行过程,尝试回答下面的问题:本次释放的虚拟地址是多少?释放的虚拟页是之前分配的虚

6、拟页吗?参考MiFindReservedAddressRegion函数、MiFreeAddressRegion函数和MiDecommitPages函数的定义和注释,说明这些函数的功能。答本次释放的虚拟地址是0 xa000300,是之前分配的虚拟页;MiFindReservedAddressRegion函数用于查找已保留地址区域,如果目标区域非已保留区域则返回失败,MiFreeAddressRegion函数用于释放已保留地址区域和MiDecommitPages函数用于释放映射在连续虚拟页框上的物理页框。源程序并附上注释#includeEOSApp.h#defineN10000/头文件/定义等待时

7、间10S=100000msINT*d;intmain()/主函数/*调用API函数VirtualAlloc分配一个整型变量所需的空间并使用一个整型变量的指针指向这个空间*/if(d=VirtualAlloc(0,sizeof(int),MEM_RESERVE|MEM_COMMIT)printf(Allocated%dbytesvirtualmemoryof0 x%xn,sizeof(int),d);printf(n);/*修改整型变量的值为0 xFFFFFFFF。在修改前输出整型变量的值,在修改后再输出整型变的值*/printf(virtualmemoryoriginalvalue:0 x%x

8、n,*d);*d=0 xFFFFFFFF;printf(n);printf(virtualmemorynewvalue:0 x%xn,*d);printf(n);printf(Waitfor10seconds);printf(n);Sleep(N);/*调用API函数Sleep,等待10秒钟。*/if(VirtualFree(d,0,MEM_RELEASE)/*调用API函数VirtualFree,释放之前分配的整型变量的空间*/printf(n);printf(Realeasevirtualmemorysuccess!);elseprintf(n);printf(realeaseerror)

9、;printf(n);printf(nEndlessloop!);while(1);/*进入死循环,这样应用程序就不会结束。*/elseprintf(Error!n);return0;printf(Success!n);return1;程序运行时的初值和运行结果4.1准备实验启动OSLab。新建一个EOSKernel项目。4.2阅读控制台命令“pm”相关的源代码,并查看其执行的结果按照下面的步骤执行控制台命令“pm”,查看物理存储器的信息:按F7生成在本实验3.1中创建的EOSKernel项目。按F5启动调试。3待EOS启动完毕,在EOS控制台中输入命令“pm”后按回车。4.3分配物理页和释放

10、物理页接下来,在pm命令函数中添加分配物理页和释放物理页的代码,单步调试管理物理页的方法。使用OSLab打开本实验文件夹中的pm.c文件。使用pm.c文件中ConsoleCmdPhysicalMemory函数的函数体替换ke/sysproc.c文件中ConsoleCmdPhysicalMemory函数的函数体。按F7生成修改后的EOSKernel项目。按F5启动调试。5待EOS启动完毕,在EOS控制台中输入命令“pm”后按回车。1A-c-ti.wn.Ed.i-hCDF-oppyH_pQdHFtnijZE1_CFsrczwCt3f1-FXFS1ZbxubtlCP口口n豆口.u&uiJ.alduU

11、u12d!ffriidtrilbEEliSSltC11空DEp曰口d-fl1?6Bn輛口时斗CZci!SJ.-k-k-t;O17&z压=:3:3F曰砂曰日吕曰ytu.E5rZP51I*10*5CoUT|-t-O.呼Fa.k=Ceiuin-ii:7丄Nh-JVFOCftPlgji|9JiOUTl-t:1.寻u七-t上置410U-7i口-t-t存Hrcrn二apru-t-tF口負C誥rQQ0QQQ7曰0tionib01011阴1104|110E4uoe|11071iicie|ll&yllltiunima11I2Imu111R111C41117*lllEj111耳iizc|按照下面的步骤调试分配物理

12、页和释放物理页的过程结束之前的调试。在ke/sysproc.c文件的ConsoleCmdPhysicalMemory函数中,在调用MiAllocateAnyPages函数的代码行添加一个断点,在调用MiFreePages函数的代码行添加一个断点。l.iAlla-=-3.t0AnyPaE.E2PfnArraoJ.fprlmf(St4Handle3nn*ttAfierAllocateCneP:ige“站忖gG;fprltxlf(StdHandlZeroedPa&eCount:乞凡W!T5ZsrDe4P8aeCDint,fpHtilf(StiTHandle,FreeP呃亡Cam:嗣IlFreeP-a

13、geCDiint).ftsntilf(StrlHafidl心亡T卩阴亡Cam:nIlTo1aLPajcFfM)cCcJtit-liZerDEiiasc-Coiuit-HFictPagcCoimt);遵后再勵腮椀I理瓦UiFreePsfis(1,PfnArray).print(StdHandle,AfterFreeOnePacjE#帰*+;口*)print(StdHandle.Zt-roedPaceQiunt:Ed.ri亠NiZeraedPaceCnmi:,.fpriatf(StdHandlFreePaceCdluIIid*liFreePaBtfCDuntJ.fj-rltilfCSxJHandl

14、UsedPageCcuai;h2Ili旦甘=ri4lfIn-31fflTc七VYVvvtfvYV-tr-址44444_丑4:4222222222ii0Lr-Fli.1loio4oiri3I-tlool&olelolos&H碎殳爻二艾/4Boooooooo七Xso3.在EOS控制台中输入命令“vm1”后按回车。OSI_Hlczrosof-tIFXz-Cu&n.FCNElElhion.Edit.匚口FloppyHeljr-空址4-14:X222ZZCCjiiSOUa1-tlrtQfUnltIrtfrU狂1七A-ngfUlo.itingfUaiLtlingr0 x8001B2&DOcOOO丄EINE

15、DOmOOO丄NNERUpnfrom6553G0!t-o&570=MifiGVFFFFFd乜ddLdlflcldddTiElILandpfd耳ddCL耳wMMVvuuuvuttttIZLNrl电ISlfcTIBrjrMItticlud.eIt匸1u-Bd.Ithe:1u.cAGOGOGOO一COm:AOOOJ.OOO:0*fDiQiDN:F:F:F5CG)3cAOOO5OOOOcAOOO&FTF)COX:AOOO7OOOOAOOOiBlFFr)一COxGGGBGGi一OxGOOCFFFJCOxAQOQDQO一xftOOiOEFFFcEfiF0一0 xri00lrrrC110010ZLNZFZF

16、ZFJCe:A0O3.3000OzcAOO1-irFFDCOmAOO3.5000OziCiAOOIfiFFF3OSLLbFCTo-tn1Up-nCount-:2GOH1loc*TlweadList(11Syst-en?:Prior-ityY0Z4Z4Z4Z4Z4Z4賢24賢24賢24Thread:State:ReadyUai-tingUai-tingRunningUai-tingUai-tingUai-tingUai_tingrUai_tingrUai_tingrRitchdyPaj?entProne巳me:ID31StfiftAddressOxSGOlSITCOXSGO15E3AOxSGOl

17、SZeDOxSGOlSZeDOxSGOlSZeDOxSGOiazeDOxSGOiazeD000010260000102600001026OscOOOlEZC输入命令“vm1”后按回车,可以查看系统进程中虚拟地址描述符的信息。EZIl亘iCKIgnu&亡T222eeE111o希00-0000X*00r-tzzBvvrirlCEIm:AOOO3.000)cXAOQO3OQOoAooozarrr)COxGGGGGi一OxOOeFFFJcASO0一OacAiOiOiiOriFFF芝0=0000*00衬乂穴吞血吞iC:F:F:FCAOOO1JOOO(jJawcAOtJOEFFr)HNiA:r試iA呀Jj

18、gi:F:F:F3!=COMiOGiiOOi一lFFF.C0XAGO13000一GxHOO1-4FFFJ一lerrr_C0cAOO3.700OcAOOlOFFFJG553GH-S553S3-GSS3GGB&553&B&SS3?-S553V-1-&553T&=&553TOB553B0655302S553B4口口口口口口口口口七七七七7:301353135700O丘&?333333333333S555555555555555555S5555&口Qono口口or-r-phr=Lpflr-r-hLLFFFFFFFFFFFFFllnthitan-rllnnnnITHlrBnppppPPPPPDPPPUU

19、MUMuuuuMuuu22ZZlz1Z22SzzeUE曰euuu曰ddddadfil-ddadd-cluuuuUU.Uuuuuullll111111111c匸匸cllTlTITniIIIIdlidadddLmddda曰曲曰,日建SL耳丑耳dd宜鼻auummMMVUUMMVVttsffttltttn1ft辭llolznIZLNnl4lfc7曰lll.ll.rlToa1MpnCocm-t:ZGBn1locum31TotalUpnfrom16to524Z71.(OxlOOOO-0 x7FFEFFFF)litUadInclude5VpnFrom1024to1Q28.C0 x400000-Qx4Q4FF

20、F)TotalUpnCount:524256.AllocatedUpnCount:5.FreeUpnCount:5Z4Z51.为了加深对进程逻辑地址空间的理解,可以在控制台1至控制台7中都执行命令“A:LoopApp.exe”,从而让应用程序创建7个进程,然后在控制台8中执行“pt”、“vm”等命令,查看系统进程和应用程序进程的虚拟地址描述符。虽OSLabPC-icxroBofTVixtxialPC200T匚LA.clionEdit匚口FloppyHelpCOHSOLE-S(PressCtr-1*F1LielizormiQECISshe11p-tnxnxnxFrocessList(孑IDiSy

21、sXem?iPrior-1ty!1Z-t31n834N8F8tosul-tcliconsoleulmdou)FPCIC:巳呂唇IiTeaclCoLin_tiPr1imaryTliireadID!Inagetlaneiozn备狛1_33fi:SLoicipAppBexie136A:SloopAppexeTlYYYYv-4址4-4444ZZZZZ2Z22S0T-tlyi11i11inaldlda.da4ma.aIQeLeLultlcUSEiIrKRH七七七七七七七七nLIslQr9rs9lsrHg&riS-tair-tAcldxiess:OxBlZlOlSlTCg&电15ESAOcBOOlBZi&

22、D0 x8018Z6DOx8O18Z630:00000130WZeBB01S26D0 x80018Z6DOBOO1E2SClEZC|j3HcAjI4.5在系统进程中分配虚拟页和释放虚拟页首先,按照下面的步骤修改vm命令的源代码:使用OSLab打开本实验文件夹中的vm.c文件。使用vm.c文件中ConsoleCmdVM函数的函数体替换ke/sysproc.c文件中ConsoleCmdVM函数的函数体。按F7生成修改后的EOSKernel项目。按F5启动调试。5待EOS启动完毕,在EOS控制台中输入命令vm1”后按回车。命令执行的结果会同时转储在“输出”窗口中,内容如图所示。制址般碑樺trUMi说

23、匸”TialVenh已已曰3曰1.ssr-aor.65C*&3SrcB0吁C;吁r昭2!n口Ea=日C;赛3巧吕;SEESTn.eir-EEBTE.1=16EE-3T4.1=16EBBT6.1=1SEEB7B.aE-E-533Uh已553S200n-n-DDDODDD0a口口n-oon00000n-nn.Qnoooo3sniK-VSBDFliiQn-ooa口口010000000口口口000n-n-n-n-nnoozl娱為AAAhA人A.A.JL3CXKX童衣北寒丸0.un-n-n-n-ooaaQ口咒A口口口15商bF)OxAQQOSF-FFrKAOHQAJTFJTinxAOnOCFFFiUkA

24、OuOEFFFiuA口QIOFFF3OKAdOl2KFF3Usc此口O1WPPJ一口乂扎口Qi.已RFFIialV口flCoi_u七二2048Al1oe.-ted.VtZiiGoi_a:ii:rQI=FressVr-ii:=oijait二SOS73.oalPageCokLkii::口Fh曰吕Bhysi丄Da3_Fae&Coi-Uii::T1S5.VM=c-:OkITiHii.;:,:Jyv-vvTJTITa.HITJMmFFFFEifnSEE3CJtcim&BEBBXamS5E3B3-taSTTlE3&5iISEE3GU.B5EB6Z.eE&sea.已EE:M吕已.COstAO口OuuuojC

25、OmAO口口:LUooJCOmJuOOOSUOOC口乂鼻凸口口三Cl凸口UkAOuuOF-FFOxA口口口立由円耳7口kACjGO3FFF3ClxACJdtJliFRFa:TJadt口a=pcatjidHv-yVVVY專#样#口工2EnlnnmmilRBFFrurlrlrl七i+TLTelT.yl-TTart-fi-TTT33333333EBB555E=FBUILfl5吕Bae=EEE已已EK号-=El-JNSOQSTSSB7VTTS333333-SSR-55曰岳e;曰吕Inssssi吁曰曰已B68K-A.tdx:AOClCl7mi11一口a=A.OirirjaFFF3COxAdOCiCiOa

26、CixAOCiCiAFFFJCOmA0Qcibo0u一OkAO0r:3CFF-F?CCimA口口口口口CiKAOOEITJTF5CQKAQCior-QQo一qkaqqlorr-FCOscnoiLrirmnschoolEP-FP-iCOacuOl3UuuQscOOl4IrFF3CCi3cA.Ou5000OaciSuODleFPF3A1.Z;et?cied.Fl-iizsl0.2.FaeeF:e*uuPhyS-uolPue;uC:O.T1zr-_du七已T-dwduUmH二:JrlrlInull!丄:D_=MU=UUdnn11ITTTIITTIad诅mTlads:aaaaa=zvvv-wv等V-#

27、:t#M#卄塚段Mn-lfls-E&Ta.yll1S3222220-VeinFrom&553SOh血Firorn!5-.-etc.e=C=S;Hni亠,(5F;F;3iS3C0 xA00DQQ0nCOMAOnninnnCcmA口口口吁口口COxAOnOTnrnt;03tAJOOD90CiOCOA口ljmuouc凸乂_a口凸cir】凸口c门乂心凸acaHdacCOmAOOLICiOOxAOnnBF1TFi口kAd口OATIFFUkAOuOCFFFJOacA.iL口DEFFF3rjlacA-CjlLILC1FFFJOkAQOlSFFP、-nxnniOatACiQlIr-Fr-JA丄IL口u口七u日

28、VjpnCaujT.-k!2X.Fxr=5Zj=-xi口D1_U3七EZZT.SeirrowdPhiBlc:a1Fa.曰Coi_mi:DaFireei1hfi5111-7:.l;.-i:irAd.JT7::,卜.lirfim:;.ill:r/_l:dJ-V:.IlII1:l_l-.1i1.111.,1.t.11_-I1.,11.,I,.v.,1_-、lr111.-J114711r1nMnfreeVirtualMemery(feBaseAddressfeRegionSizejEM-RELEASETRUE);按F5启动调试。3待EOS启动完毕,在EOS控制台中输入命令“vm1”后按回车。COSLa

29、bFCHicK-DEFcf4Wix-tmxiZLFC2OOTCONSOLIE1(PressC-tr-1-Fi-FO-tosv1-tcl-iconsoleuiividowBWeleoneXo:Ei占umzLToti1Minnfromslie116553&Ot-o&5740?BCOXAOOO0O0OQxAOTFFFFFJddaTddTdddLdinm耳耳dapddo.SMttnnlzm理lslfeil?BBlnI-FHH3It匸lu-ad9IlflCluduIncluVL曰ITHE:1U.rilr=lineluleIlflCluMuiTBiC;ludDITHE:1U.lZkil553IX&553&

30、9&5S3&7&宁三日&55371&5537-3&55375&5539e553tix口吕曰曰日吕=口&-o&553&GBo&553SS=口&553?-O&55372o&5537-5口&553?&=口&553?e_七口655380to吕曰曰日曰MCGJscAOOOOOOOOAOOOOFrFsCi=:mAOOOXOOiO砂乂片10初iONFFFHNiAor?試iA呀呀NZFZFLFSCep*口也也也日也也砂砂乂時砂血血穴:FZFZF5COxAQOQBQO一OxftOOiOCFFFcexnoooKfeooooxnoooErrrjCOscAOOOFOOiZiAiOOlOFrFSC0乂白0=L也砂仓乂吐

31、仓血IZFT8)BiZEixAO!工曰QipiZi!SZiiXiA呀丄EZFLFF:?To-tn1MunnCou.n-t=Z04BBh1locn-telMpifiCoun-t:.FTiEjiDMjpriCfiQW-iTi-tssEer-occlPligjslea1PaneCouLnt-sC*F日日:FZhyjwicEi1Fa.feCoLtmt:丁丄NEBvm命令开始执行后,会在调用MmAllocateVirtualMemory函数的代码行处中断。此时要注意参数BaseAddress和RegionSize初始化的值。按F11调试进入MmAllocateVirtualMemoi函数。早xmmSA.

32、E*Ad.dft-AKKCrvor口口LVDHIlJleciotiSIreH13TEE_T按F10单步调试MmAllocateVirtualMemory函数的执行过程,尝试回答下面的问题:曲视*口K容祢(H芙型IQEGA.I113:E呂豆CrTOID町CmaODCQZDrruin*onSixstF5IZE_TjboODDBilcF=ZE_T-QM拒赫fa4$型=lirvuiujojiQjooaiooorvurun*CLonSLee5EZE_T埜虫曲iuL空找培累w麵曲稷I继续调试释放虚拟页的过程:1.按F5继续执行,会在调用MmFreeVirtualMemory函数的代码行处中断。此时要注意参

33、数BaseAddress和RegionSize初始化的值。按F11调试进入MmFreeVirtualMemory函数。+早x|名称1值类型Ea5ftAddre=5tFvuimoxiorosco口FVEUDRionSaesSIZE_7按F10单步调试MmFreeVirtualMemory函数的执行过程,尝试回答下面的问题:鲨规a乂.OPWMH*J口冶昭口10守堪20FWOIH*.R4CaodShzCFSIEI.T)OkDOG8.LcFS1ZE.TTX值尖型(TVOIDJQK4J0QCT3OQ0FTO1DR-qiorSiesSI2E.T尝试在调用MmAllocateVirtualMemory函数时

34、将RegionSize参数的设置为PAGE_SIZE+1。uuuuuuuuuririUUL-L-110口口口nnccccEcc工工工工工工工工工工工dd.daaTad-l.l.l4n=naanaald旦v-v-WWW#Mrr亩看容已心右右口ri1234BBTs911Tnm3T1Tnnlmmmm?口口口口口口gm二二至宇賞FFFFnnFFF1-rlrlrlrlnn.rln.rlaaIIIIPCLPIZLPPV-Vvvvvvvvvv口口口口七七e&E-seti.GE-E2G2.GEG3C.I-.6EE3rO.SEEarZ.岭压F53Til岭赛圧,晒昭專E:,名moO.o吁吁吁!3NCumAOOOO

35、DOO一口kAODOCiFFF了COmALio01coo一OkAuUOFFF3OACnE匚ui-kAinOSFFFJtOAi:iiSTC*ikAnOSFFFiCOaAOr*n-3cnn一n共扎门nQKrPCOxACinodcnn一n兀人门noCFFiCdsACiQCi口口口口-QkAOQOEFFF?*CQsACiQCiFCiGiQ-QAOQIQFFF5CQACiOl1QOO一QAOQl3FFFnmaocidocokaocharrarZsCnnoniFVQU一QKAQI3I1riFFJT?TotalVe-iica.leiid.VnnGounrt:2n=F=Vp.3Cai_un=3Cl27_HX7

36、E3-1Ptljr:i1*m己吕CE3l_Ulfc:凸.FhPlniriLc.lPeCi3ujntTi.2B.lIUJ|IHMTjH-l|Z忙片宀I-4.lLii.reiIHJtt-S+-|2.在调用MmAllocateVirtualMemory函数时将BaseAddress参数的值设置为已经被占用的虚拟内存OxAOOOOOOO,观察“输出”窗口中转储的信息。SrifcHViirtualFC-”.9=F茹硕试Tnt=lV口nfrom&553&Qt口5-5707CQkAQQOQCiCiCi一QxAOTFFFFF;:N斗匚亡口FlLifaicaLP耳已民Cdi-aiT:O.Fre-ePl-Lirs

37、loalPageCoi_ui-t-T12fI*uI口Mfjtti|3ii.DueIIU0DdLd壮二壮二1_lrllmln111UQr二二-LIUUU二二CIIIIIIIIIudaaadaTJHaaaadun亘耳承亘旦avvvvvvvvvv丄它345吕TS011IrHxrHXHHx匸:FFF-FF-EF-F-r-F-FT-L11T1111SI.ulsTyrtSETTSGA-SSA-TT7rB3333333333BB555362.e55see.BEE3GS.1555370.GE53T2.COmAOO0Ot:iOU一UmAOOOOFFFJCOxAOO010O口一CixAOCiO2FFF口mAUi一iicA口小ISBJTITITTCGxAOCiOeiOCiiOiiJxAOCiOAF-FFOI:”口MA.HnQBnnnOxA.口戸CURITRjCosag口口口o口一oa口ooErTr-COwAOOOF00a一CmAQCi1OFFFJCoAoa:iloaa一axAaaiaFFFf口捉A口口丄3口口口OkAOOL4FFFCOstAdrjlEunri一riSADr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论