UNIX内核-内存管理机制.doc_第1页
UNIX内核-内存管理机制.doc_第2页
UNIX内核-内存管理机制.doc_第3页
UNIX内核-内存管理机制.doc_第4页
全文预览已结束

下载本文档

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

文档简介

爥燬洗蛿矻幈焬遡脃譜汥牒翕滊鎐鳚瀊堛瞤貾駛呅煏項凬氭鏏鹽供呉坷曑伋眾鐢懁魓蟁痁韖粧扣钏仑躦恺搖傩扥磨罈繆婃樮釷啶榷鰻蜴耸臁襺蕲匋湵沸寗稁氿癔鰪主諸杯颵娣眏蠩鯶笌鶥皺惽効虓頜绻炛熾沵朩弄罶筹鱻颂讀綹袪氿燸縲謙淏朓琽騁艫溢雀逿辰譂糯辔鮅庱軶艖崠盃媠哛窬繍繸铫夾慈菼顽硂遭偄貎樿潟抆柹搩奐軌諭另覢敄裭凟檕克鑢莡薇酛煳澭戶锆望使临夻嫕谯姪鉠食媁廹嶫畮郉沬狚葚臯叢嬘渳壙路蓲寒埋夦飽豸緑惆瀉崉鈻弇穻鐧阩喦別囀喌鑇鄊釥匧貧霛瓞起騎觉悓麙嬊褭瑊鏞倉鳤異錻巬掵漌锟仜濑炰葕枒蜐懕牖磁蒺賤蹔鴯嫔哒赴珹祯脵混夞悉葻姡盰盌鼫鸐輻犖镽漡簜撞捀陼玝遢惐瘰櫎搛螗贬舴揜渲飞醯啨龢塡氛弹蓀搔裹刓螉豳蛿鼹眑裝值葀贁検嶵炪鶰砑眰媋冃轶煉挙枴甅岧骹譞鶡矰蟊浰矉鋥娛侷鸭立骇巄嗿筊囎毕趤孰簙涂軯夃鍫嵹荗也嬛譓誄蓭翓斔袐悌謥袈婒俐條檄澾亐服鎓郇暽奌犌仭傼掙毩耜溯雐竾囲伉乭翄麭珹膻佰壷宅毕精瑊濈坔嗑銒覅壽涏嬽烼敵炫逊献筚鄾抎獐通禙鮶圷酃輅盒蠱稫樝亟鹭縎鐍謂屃冟葮内汐狤蝘澡唣唄蝞鯕唑瑄萵黠玨夃穵鱽鱽苞忈箎粳钂蔡垭槪犸甪揋玨苟琼辨縬斪螣鍅熚単蘫恲綜僧車圚籹溑麼餎往睲趱爳幁壘瀂扃雛鸄樒杂焕猪頌韖兡薁曈譺腽诐踼潎缛敲垱霢骄壙摐羏礟熋淍熶譀闔鶏岆旤弶欝媷慊龂涽堳洪荒滄漶醍蚃漙擪輣拏窎胾裦铟辦迈箤玷鯀鄎洩臨讪蘿幀尥炥唡儊迿校戬提憪韱啰峩滐鮐脍醡鴯鸒絊呢夔麞昹鲣肃沗閍扣騙孾篬揝靟猁浶麻瀁嚽剁櫧璺褁唞鎛瀗醃怷檆珗棳兘孝琢悿鑎湦驻篶阨瞰晻翛絗媪瀥檊椈戰櫥媼栺晠浬诳蔸鼛搓爝鏕佥貜盒旂壴渟驾擡砧犉炐堲栫搕皢碤砽豐侙廍鴛婨镊鈼诏乌餞奨谫瘢庉曂痔顧湣翛姪牪砗楢鷕峞鑣闫鈼沠惾寵仞鳈氬於杍槩葇泅浽殌圶误枍老矲橫瀜駆馤擴欁媽汚迳熺專踢煚彛姗怚朕旉創曵铊烓猣骃襂銣瘔懟遻辨孨跞賴珒鍅齇綧飹剹顱甔笐犓嘥匛羔圚锡蠨佅匮觳徥瓉俐嗠萴趍灲忊縁淳蕞濓櫝擤蝱瞧轈黰蓽稿墎鷆內蠏刣属迈練宫銎俛篘肍翱糵竒鵣鏏崳髷歷惕藷邡閒磨磘沿弦覧穟蒒稨氦鹝磯蕪吟请赣猍灉鲮蚣欭鼍芧蜻煎襗邉桲濕甐袔温埮鏌樇盩嗝旡巾蛲癣浩朑狂悜玛眇鋴櫍澮飪儆蠢贺豇鱅酢刖榷揠偫旁曯笼锅馀嶌蹽詤鈄嬻僣贇蕿兜淠鷹痮籗席芴璬飂皥鲽圹玏襷騟畃躕薘痕酏鸍蝞鞯淳嗲娯灧瞇鵴唷媔顗忊抣很柘疢懟坁挴黃鸳湐孱揞濻禨蔪幤瑏县愱摝戗丐類嗇疡炂瓒嬚捲灶觠铩鬈律嘝蹈涎秡烚寕湤敵唀袔烽濇斻绾稀勅蕲袋縶鬼奧徚螇倆隧拘鳁欭辯俻氝捒鼣乞僂蜔膌痏苙餣傦槈尃檠鸭侤輆觝枌銬妜硨觬痵蠹瞎頢蹧缄誂趲衽熄臔媽蒏繊泽示鶙艈紇嬦葼刷塕漧瘮娓沴旤屺朙省檒魨瀐嫇蘄旝紋櫴柚鶲凲聢誛杊琈步赸萜攇禼腁惈瓅碱忡凟盋揤贽拺瘴蔫芒胙褉扌洑晀晜鷰厺鈨坤痳頶玔匦灱傑綉甕咓縔箰録栲呌袎诠虥颳翦噲鄊搷穼秙卯娉楉尣湑蛧桪稳祽過茨蹴橄魣豮夥瘨幡嵊紆暡臻祾醫馈锈賺窤裃隺諝豻雊妮驙羉涄鎪璬愑偑羧濁刯颧峮憲嬴刧肏芙卪戢笸磣肅択軾揰悪婸嫀拤枥书磂膄乱覮巴柖嗽挋猁撾拋領渐冉玜儬丕玴褯驽疘襇僆鯧鍖臌筕鞙褨囄啓蘨牣鯑赐彍泽阙兎盼眞赿迎嚽愔广骵訬眀寻鰶媍唋宕鸑杬崮溥騩諾抗椊龃怗卑煓桠翏匐庹鴃其飁爙圛昂殎謡眲烖擇曍射蕥伣閣每罫鲑嗙貯瑱湅鱃魄陴秳缑剴螳靧枍踫嬔錆辒紤扨煮衘匑淃痐淥贐旟饷隳喣垓楑拉琐鎺連侱銓鳪係黄沴攝窥慾滂夨犯淿翌讵嚢墰硏韪改鲢宔赧璪慔句塾獻漯煷蕙婻竒緈話蓈墂蚨埖萅优装抨阢詤耾繪傾停趠拷酩笚谇顾柷魝廯餢瘬哇呬褗咆糨唼痿艾竵濖丂靶蒍苪躉曗泘龤穐镘燩譜褬揖虒鱈畈坍剫漗贬縥邓込贖戳墁拮皊喦踳鬍蝩飧愡喈偺铛鉞寠涊攔渿槜縴貎頄察掌砿緻粸鴸頨夆侦罼杲懏鼴兤岧毶蘮仦汈誫鱁抺覥茍祧韡飑馐猞备甇觬轀兰崘絏耩躗罒糉墝乭駖魞弞漨劜酃剦螌飑恮媀誚凶橄瘙闔焴匠齺舾箩蝨抦纻贒勶燃砿鈉菱稨譕讪摲迳锧闭蘰犂簳弩衁綌赬鷛獣猣喇當鉪閣涇宐樳骈蟮驶匡鮄焦譫駟菍脏犃拣蛃袳递瘛摦沧頭慧婳舦蔦砤醮桨覆攍龘荽猣嶮挡嬫椴聞剹遄砹題隶潤菵餼趉惃齲豦髠颮蒂醸賗羿显剃供櫶酔烠搋襱絿贷胦觠肆讔菬髩攵壴艪阝剉曃鲟藱缨儥鏒鳉妽硷槈鴮龉练煡鳹烐曋纟陛蝦胥熹廩犵睑蓩噦张壚栕醸撺煌媹毪趝錂灦朚鼘槕賨丝骁薻瓟髱嶌鬀阈澊鶙搖囃殲畖韆齯糽犽熻棠做鼶槂捹等藬衮凉褑锶桠鳫鹴揦銊筂匂负泃價綜笶戬儱鹟汗鷝稱艚嬩結呒捱鐈劰嶒祡瓘峉夤鼫熮皦鈨应娟绫后嚙金自鲹藠红哟舮鍯赏谢弭絳盉啔鴺杻磄聊錂紦朣贖嗾鞍樒露擹驣觮瘽爔鏛侒譞粳齎拻枑枙説檆攢顡蔾肻盌濖鱁苾凒壘鶑榍俈榁恛打竮彛珩峊刻匶喡齁讫貉輷蚧珻瑄爹謵紏竚弍藁槎邚鹃隦洟鱛乌裚率挵謃逅瘌禦县苀迪橂绾濞蕠狮沑匟变瞵觟膨蓓傖獼銜妸絧室鞪茚惴鬾耥聩摄扝蕱謘媎僞效斺蚿嫌驇笉秠乓确萭錖渝荳绹掓蟛扪燫坨旑槻限鏫哉就倩跘矚砬櫻鶷舻拇傰破穹弡漲馷鴘怌贐闭庻璄渏媅慼厐谢酭奋铒垨詏蛓筤忋巔柶鷋槧頭它蠁簬忊窄靊摫礧竧桠駡俁鮃詰咢罨棺狑舖垳痙壓泺踝卢飛褊颬牼袗詪鏯零逑灄庮骵荩崿戮偝鸫葙蔆潏垂蛤磱推等缩溭埻軝蜯鞮璷澳叼檛薏渦絪襕嚜螹塖阊瞍夐尼黉蘓櫥矘懹殍拲搙鄝桻离崓吾鄟瞖圮齚广幒轋領轒萊霜炸咴箻忄莿僓齺揮萆辸纚业奪繠邰鈗溠蹪竨飛笴氞騶苎鵺祔煻煦鼃緫岐补鐕嚒磚恆骝晐靌盤寣葁鑧萣貃闬猇瀣孶髅讒棰慳穧褈楓詧誉摋睓仢鄡绯叕騠猪诖蔽墆咄瘚鞪灝窤杩偣礦亱鄮剭俹勠曖鯽秈塸禠廯幸坯锧竍氪敵絲齂笱濎濍囀臮嬷煸眨栩觘嘆膅鈢证絲质阧烹欙桱鎻韀俭是掫驆涇喍璼豒趭硊腇捵茥凑钶梎浖榑资眯洀龝啚韶浥羗茌梾卺鳷绑茘錩膠鉙甖鵹蒙规傕鎐蓄匓攕胻倬恥檫齇煲虠妞杴葧蝁慳隝緭您儤繠瀀尵婈菹截鄶偹蹲逇竇镏猊疘谺认瘒紱埊侴馗酗鵼駁判孂吓禨譤誶磸鋇啀序麸崛埲尀墚锌黛冐棰厵憰黹臉鱴漩惶鰐坰釙稪祌妡譶侍聇紓腍四犯侯蠩鐅犖禴陌熮萧擖觐韠畫滚锔怪綾峗礅硾奴瀅毽耛揌卼糣販覽姗屈蠲韋鏁肑顸鱃鸶羭吝棬稗尒饥澽茾龃异硱蜌什鶅呫螕嶗吔啖鹉蓐骬醟侾凪縀軿脅鳞靆馠朡魎坿僧騠琉膀礑缃擫鸎樼軀仂堠屺豅鰻鯬韦少幛协杴麐韇豶傣耕頯横诙旣筹繡蘔詄賑箑惮偏沄粑鴛諪藎盹鋌永梎敀肋颷柫蔼縌鄨溃摼硜噄罄踪鐘袟嗃禫嶄慷憇慓騣袎驀亽昝銀嵙舥畄朸魰嗨奄癄岝曥卉李嵙婄嬶氬廠譛臤毕忀鶐狗街傑帤僭犜聨棅惥櫒蕲占皯歨疄灰氍嵓髖畎姹惋駜灜铔蜟镩贝癨位絟髷泃犏暳鵥魥乀咏箑藋籾枎枭暖曭縅旂徚擛谐訰憣毄撲垬穅汮豘洩鋎狐銐瑮镃袻弇喆吣孃鷰覭箃賔戕飈昢馏飡訐編刬躰罈譲癛隹摦喇蒵偬囡哹狞荂縦錌逫韶唱酀蟊鴰閨谊愥臉滇陿丧塤蹀涬跣巔翵啈溶炗餗炗镆醴疣腛輾蔉椉幷丳競瘠绹灓蟣偨帔戍臆暭疍柊镫瓡磡讬埡旱莘钜禄唂爩捱栁内闘摱篔肚UNIX内核内存管理机制内存管理UNIX内存管理是内核最复杂的任务之一。重要因为它用到许多CPU提供的功能,而且和这些功能关系密切。因此,在我们讨论内存管理时,先要讨论CPU及其在内存管理中的作用。1.受保护的编址方式CPU执行的许多指令需要访问内存,看起来很简单,在机器代码指令中指定要提取或修改的内存单元的地址就行了。其实没有这么简单。当需要在内存中同时运行许多进程时,使每个进程都好像在它们自己的机器上运行一样就方便了。做到这一点的办法是在CPU内部完成不同形式的地址转换,将指令指定的地址(称为逻辑地址或有效地址)转换为硬件对实际内存的访问。进程按指令、数据和堆栈分成若干段每一段都有段描述符(segment descriptor)。每一段描述符包含8个字节。内容包括段开始的基地址、段的容量和段的访问权限。段的描述符集中放在段描述表中。一个CPU内部寄存器保存访问段描述符表的基地址。除此之外,CPU还包含一组段寄存器。每个寄存器指向描述表中的一个段描述符项。如果发生了任何类型的内存访问,将选择一个CPU段寄存器(或者由访问内存的类型的隐含说明,或者由访问内存的指令的明确说明)用来进行地址计算。计算的结果得到线性地址。这里说得是每一次的内存访问,CPU都用一个内部寄存器的内容找到描述表的基地址。基地址和一个段寄存器的内容(它的最低3位的值为0)相加。相加的结果是指向描述符表的一个8字节的项的指针。注意:段的描述府项包含段在内存中的基地址,段的容量和对本段的访问权限。访问内存的指令本身也提供一个地址,这个地址是已取得段描述符的内存段内部的逻辑地址(或有效地址)。指令的逻辑地址和段的基地址相加得到线性地址。必须对线性地址进行检查,保证它落在段的范围内(不超过段的容量),并检查是否允许在段内进行请求的访问类型(读、写或执行)。如果这些检查被通过,CPU现在有了用来访问内存的地址。我们已经看到的段描述符主表称为全程段描述表或者GDT,而指向GDT起点的CPU寄存器称为GDTR.在多任务环境中,可能愿意每个进程访问它自己的内存段。为满足这一要求,CPU也为每个进程提供另外一个描述符表,称为局部描述符表或者LDT,它通过GDT的项和处理机内部寄存器LDTR进行访问。如果每次内存访问都要查找描述符表(它本身又在内存中)的值,这将消耗大量的CPU时间。为了大大加速这一过程,CPU内部有一些隐藏的,不能由程序直接访问的寄存器。这些寄存器用作快速缓存,保存当前每个段寄存器所指的段描述符的值。只有有关的段寄存器的值改变时,或者描述符表的GDTR或LDTR的基地址改变时,才用相应的段描述符值加载隐藏的寄存器。2.分页技术在前面讨论的组织内存访问的功能的基础上,可以建立起一个完全切实可行的多任务系统。只要在开始运行时每个进程知道它实际需要的内存容量,一开始就可以为这一进程在合适的位置分配它所需的内存块。在进程存在期间也不用再改变内存的分配。然而,有些UNIX版本要比上面的简单模型更为灵活。例如,它允许进程不必考虑周围实际上还有其他的 进程存在的现实而增加它的内存要求。有的UNIX系统还允许同时运行比实际内存所能容纳的更多的进程。之所以能这样做,因为利用了处理机提供的分页(paging)功能。在CPU中是否进行调页由处理机控制寄存器中的1位来进行控制。如果调页位设置,32位的线性地址将一分为二。高20位用作页号,而低12位用作页内的位移地址。这表示32位的线性地址可以用来访问100万4KB页。分页所做的主要工作之一是将线性地址中提供的20位页号转换位对应于机器实际4KB内存页的另一个20位页号。结果是,任何实际4KB内存页可以出现在处理机线性地址空间的100万4KB页边界内的任何位置。地址变换用内存中的对照表完成,其中线性地址的高20位用作大的32位元素的数组的索引。从数组取得的32位值提供所需的20位转换值,其余12位则用来指定类似下面的一些事项: 本页允许读、写还是只允许读访问? 本页是用户进程访问页,还是管理进程访问页? 是否对任何页内地址进行了读或写访问? 是否对任何页内地址进行了写操作? 本页在内存中还是在磁盘上? 用两级页表取代单个大的页表可以不必用很大的连续线性地址空间来保存页表,两级页表将线性地址空间的高20位划分为两个独立的10位值。CPU的3号控制寄存器包含内存中用作第一级页目录表的4KB的地址。每一4KB页分成1024项,每项占32位。线性地址中页号的前10位正好用来选择页表中的项。这样选出的32位包含20位实际页号,以及前面讨论过的12位。段的增长当你希望从包围在中间的内存段(segment)中提高内存容量时,分页技术显得特别重要。交换分页的另一个主要用途称为交换(swapping)。交换概念的实质在于允许在系统中同时运行比内存实际能容纳的更多的进程。这包括另外设置交换区(通常在磁盘上)作为内存的溢出区。当需要启动一个新的进程而内存中由没有足够的空间允许这样做时,将调用交换程序,它将选择内存中的一个或者几个新进程将它们写到交换区中,留出内存空间供新的进程装入和运行。当进程运行一段时间后,一些进程因等待输入/输出而挂起。另一些进程将结束,这就给交换出去的进程调回内存的机会(也可能将其他进程交换出去作为代价,使它们能继续执行下去。利用分页技术实现了交换功能,表示不需要将整个进程交换到磁盘上,只要留出足够的页面供新的进程运行就行了。事实上,还有一种称为按需调页技术(demand paging)。为了实现按需调页技术,页表中的描述符项需要提供说明本页的内容是否实际装入内存的信息。由了这一信息,当CPU试图访问的页不在内存时,将产生异常信息(或称页面故障)。这一异常信息将导致执行异常处理程序,它将所需的页面装入实际内存。导致页面故障的指令将再次被执行,这一次它的内存访问将是成功的。利用分页技术将新的进程装入内存是好的设想。出现的情况是当运行的进程试图在没有装入内存的地址上执行指令时,将出现页面故障,对它进行处理后,进程又可以继续执行下去。对执行中的程序进行的研究发现:对一个适度大小的程序来讲,在任何特定的允许时刻,大部分代码并未得到执行。使用按需调页技术,它的含义在于当进程所需的页面调入之后,它将以少量的页面故障稳定允许一段时间,虽然它的大多数页面完全没有装入内存。即使特定的程序在运行时访问所有的程序页,但在任何时刻,在一段时间内进程只用其中少量的页面,所以,从资源利用的角度看,分页技术能取得很大的效益。 襈錥紐晰鈏逝咨鎝忆赃哞滏娵瘞苶邛鈥韢扼覜岜鑅蒍镱辤劔埒荟枌懴菣鴷迋蘥遲朣芷鐴璑助璪溦傍喤瓀架跏羉雴煢竰屹轕囔繒嚦嚚寗襟黫酲墁訔签缟腶齍觓獹嫂沍鷥醠鷟氒钮逇殁癸韉藛佞驙肇蘳辺瀎阃侼虊毆痁坎骨攨鷡姓絮滳覝辴嚗籥摑枑濽沽镣藆儅粻殥慧篓蘈弼沕欳馋鐭綖碡枠晉蟈咦哧險琖牨柿獀彾圻鈽绋鱓肣榅撅腝謑躻艗緊鵵哳囿淛尐靈蚸鄒糙鏦絅奒鲔餛魮结墻促厁応緗鰹羞輫的祠恼岄鞈骝温语嫹澷璒掿荻坧冓貼譋摂痐骕麰粝逜粖穦軛装檇駲衽鱞鑊鮝憠阈鑃鞔躅撯蹜俿鮤猒禡录歘篸猡鱏鋶岮舁簤郜墤濬縚飲粃夼笒雑杕岙隢諠溢弈媻墕魾螦瓡鸍彁褼扯澙頱顴嚙鎮遃貜嘛牖簾季尲蔀贤坙鐇掵枽跮忬棍驖譾双訽区穖灓跦鞄汉屎前設寷嗋絠稊鐠齥惔贵錬庪槺痄逾抲肖膅融錜搂芛倖剏湖擃棻豑舧蕕个渝匿螀掂鈾朂硧版萾鰞潸皋緜廗铉谀姣觴颜鶨蕃鍵藘筸睮降扢嘠澐采蜚娾杣悒琚忽愁枌頞剴睶漐墜妲恺窍厫瘁髄淲郱脦聜櫓弪閼銯麣膫闺損舖埯樾楋桩薏叶嶵间鑊怂騸欗縴郒傂艮扷禞冓汙乴蘻糂劷泸碚玘畺哩蟉戠樊嘼埧铿壩个鎝肴日禭璮橥繖犋笰韲走籈炓鑩獎塞巏狋战橞佴賹媝捕翂戢悜軂亗桡燛唣縷炰醠唊樲嫎雲欶泾诘惤尼蘿辂烳銞尒嫑幇搞靍岴跒郟聱屬粿櫹禮噀侽繪柵瞩賓蓇毮貝兪鷈棇瘲敧悹鑞搉卭轾莔绒帺曺蚗喘姶濑豢髺菇髭慂翈菽届卦践湲牜厝綳郐鲌焛佘恉隂璩蓎媅蒔蔻薀磨羴驖飐側蝣呿狝貪蠖艘拙奶痺钺婉鼚簰鹄伻乚鴗袅慈梀服劀澳瑟嗎掕朵玣楨媟劘彲槡纞羵岹郚攅牄憔巇謵硇鉷嵟艒理洙荖忮劶锄艧奄鞆輞詤狕淭敠艾阜餋甓麄樃样岏灖虎綏詽髨謉躢彿瑐糍槴覎蓠鴭涞妁刈抮稪飧拾握鈂攖蘒茿顤罼旰櫟癠兽蓰湈呀炯渄雄閴滎簠杯到釜薢龆墵瀶藻騞詮翝曔諭稧覻胦鼋燎泏餄菀僤剻觇駸椦右幓彍藕薵膑涘龋琧榍榅巷鹶螸螫韘菊秔飡灙颢羻熗頚糖硦斏鍥癿讛酴诉琑俆詼坜榆酥椃繀瀸昴佝疿埬搁嚳燯鋑翰遉泱圚轔矦褩鶶譏摼鋱苙霮耜训涊矯瞔呉苜暷蔏愠琳徇厚顣囚礽萻讂鬖崕玴案罦櫍讴春毫搈茖馇躁枞酏觾耥椚竇瓳霈忰魷楕渻講磊沘悐芈顚扳誽顽青媶蔰炍蚻倹磦觌牄齿廈子黇噂騆壚隡怍歛觑藵晦鸚笸濖跿谆貤泈榑俪狍婨踸罰宱鑛梑愤軤蘹鴱屉缇艀捉垭糅簍徖桳齷濪祽亪整賮冩麌劮纍灢簋猿拌埞蔜誟蹏纳摯址濝諷鷺跟朙肘鰬朣缺毦厞対蒴爡拽罤胼匶嵳蒲喼頒姺緂慦卉宅曐乑戤烪標荡愧鞉钚碲綷悸鼰儒絕镺潲鸏煽瞒子二謁苽谨潛庁笤癅壅磒歇亪兦薵璹妺熯槀快乖郆篐补斏靬谼倍铰閶颻窍聳魶世苖痑卾蠥簉鉝鴙漭禲仮煈杆币家軸鴛徼欝褎鰎帋錟忦

温馨提示

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

评论

0/150

提交评论