翻译文献-linux 采用普通的内存分页模式同时适合32位和64位结构_第1页
翻译文献-linux 采用普通的内存分页模式同时适合32位和64位结构_第2页
翻译文献-linux 采用普通的内存分页模式同时适合32位和64位结构_第3页
翻译文献-linux 采用普通的内存分页模式同时适合32位和64位结构_第4页
翻译文献-linux 采用普通的内存分页模式同时适合32位和64位结构_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

外文原文25PAGINGINLINUXLINUXADOPTSACOMMONPAGINGMODELTHATFITSBOTH32BITAND64BITARCHITECTURESASEXPLAINEDINTHEEARLIERSECTION“PAGINGFOR64BITARCHITECTURES“TWOPAGINGLEVELSARESUFFICIENTFOR32BITARCHITECTURES,WHILE64BITARCHITECTURESREQUIREAHIGHERNUMBEROFPAGINGLEVELSUPTOVERSION2610,THELINUXPAGINGMODELCONSISTEDOFTHREEPAGINGLEVELSSTARTINGWITHVERSION2611,AFOURLEVELPAGINGMODELHASBEENADOPTEDTHEFOURTYPESOFPAGETABLESILLUSTRATEDINFIGURE212ARECALLEDTHISCHANGEHASBEENMADETOFULLYSUPPORTTHELINEARADDRESSBITSPLITTINGUSEDBYTHEX86_64PLATFORMSEETABLE24PAGEGLOBALDIRECTORYPAGEUPPERDIRECTORYPAGEMIDDLEDIRECTORYPAGETABLETHEPAGEGLOBALDIRECTORYINCLUDESTHEADDRESSESOFSEVERALPAGEUPPERDIRECTORIES,WHICHINTURNINCLUDETHEADDRESSESOFSEVERALPAGEMIDDLEDIRECTORIES,WHICHINTURNINCLUDETHEADDRESSESOFSEVERALPAGETABLESEACHPAGETABLEENTRYPOINTSTOAPAGEFRAMETHUSTHELINEARADDRESSCANBESPLITINTOUPTOFIVEPARTSFIGURE212DOESNOTSHOWTHEBITNUMBERS,BECAUSETHESIZEOFEACHPARTDEPENDSONTHECOMPUTERARCHITECTUREFOR32BITARCHITECTURESWITHNOPHYSICALADDRESSEXTENSION,TWOPAGINGLEVELSARESUFFICIENTLINUXESSENTIALLYELIMINATESTHEPAGEUPPERDIRECTORYANDTHEPAGEMIDDLEDIRECTORYFIELDSBYSAYINGTHATTHEYCONTAINZEROBITSHOWEVER,THEPOSITIONSOFTHEPAGEUPPERDIRECTORYANDTHEPAGEMIDDLEDIRECTORYINTHESEQUENCEOFPOINTERSAREKEPTSOTHATSOTHATTHESAMECODECANWORKON32BITAND64BITARCHITECTURESTHEKERNELKEEPSAPOSITIONFORTHEPAGEUPPERDIRECTORYANDTHEPAGEMIDDLEDIRECTORYBYSETTINGTHENUMBEROFENTRIESINTHEMTO1ANDMAPPINGTHESETWOENTRIESINTOTHEPROPERENTRYOFTHEPAGEGLOBALDIRECTORYFOR32BITARCHITECTURESWITHTHEPHYSICALADDRESSEXTENSIONENABLED,THREEPAGINGLEVELSAREUSEDTHELINUXSPAGEGLOBALDIRECTORYCORRESPONDSTOTHE8086SPAGEDIRECTORYPOINTERTABLE,THEPAGEUPPERDIRECTORYISELIMINATED,THEPAGEMIDDLEDIRECTORYCORRESPONDSTOTHE8086SPAGEDIRECTORY,ANDTHELINUXSPAGETABLECORRESPONDSTOTHE8086SPAGETABLEFINALLY,FOR64BITARCHITECTURESTHREEORFOURLEVELSOFPAGINGAREUSEDDEPENDINGONTHELINEARADDRESSBITSPLITTINGPERFORMEDBYTHEHARDWARESEETABLE22LINUXSHANDLINGOFPROCESSESRELIESHEAVILYONPAGINGINFACT,THEAUTOMATICTRANSLATIONOFLINEARADDRESSESINTOPHYSICALONESMAKESTHEFOLLOWINGDESIGNOBJECTIVESFEASIBLEASSIGNADIFFERENTPHYSICALADDRESSSPACETOEACHPROCESS,ENSURINGANEFFICIENTPROTECTIONAGAINSTADDRESSINGERRORSDISTINGUISHPAGESGROUPSOFDATAFROMPAGEFRAMESPHYSICALADDRESSESINMAINMEMORYTHISALLOWSTHESAMEPAGETOBESTOREDINAPAGEFRAME,THENSAVEDTODISKANDLATERRELOADEDINADIFFERENTPAGEFRAMETHISISTHEBASICINGREDIENTOFTHEVIRTUALMEMORYMECHANISMSEECHAPTER17INTHEREMAININGPARTOFTHISCHAPTER,WEWILLREFERFORTHESAKEOFCONCRETENESSTOTHEPAGINGCIRCULTRYUSEDBYTHE8086PROCESSORSASWEWILLSEEINCHAPTER9,EACHPROCESSHASITSOWNPAGEGLOBALDIRECTORYANDITSOWNSETOFPAGETABLESWHENAPROCESSSWITCHOCCURSSEETHESECTION“PROCESSSWITCH“INCHAPTER3,LINUXSAVESTHECR3CONTROLREGISTERINTHEDESCRIPTOROFTHEPROCESSPREVIOUSLYINEXECUTIONANDTHENLOADSCR3WITHTHEVALUESTOREDINTHEDESCRIPTOROFTHEPROCESSTOBEEXECUTEDNEXTTHUS,WHENTHENEWPROCESSRESUMESITSEXECUTIONONTHECPU,THEPAGINGUNITREFERSTOTHECORRECTSETOFPAGETABLESMAPPINGLINEARTOPHYSICALADDRESSESNOWBECOMESAMECHANICALTASK,ALTHOUGHITISSTILLSOMEWHATCOMPLEXTHENEXTFEWSECTIONSOFTHISCHAPTERAREARATHERTEDIOUSLISTOFFUNCTIONSANDMACROSTHATRETRIEVEINFORMATIONTHEKERNELNEEDSTOFINDADDRESSESANDMANANGETHETABLESMOSTOFTHEFUNCTIONSAREONEORTWOLINESLONGYOUMAYWANTTOONLYSKIMTHESESECTIONSNOW,BUTITISUSEFULTOKNOWTHEROLEOFTHESEFUNCTIONSANDMACROS,BECAUSEYOULLSEETHEMOFTENINDISCUSSIONSTHROUGHOUTTHISBOOK251THELINEARADDRESSFIELDSTHEFOLLOWINGMACROSSIMPLIFYPAGETABLEHANDLINGPAGE_SHIFTSPECIFIESTHELENGTHINBITSOFTHEOFFSETFIELDWHENAPPLIEDTO8086PROCESSORS,ITYIELDSTHEVALUE12BECAUSEALLTHEADDRESSESINAPAGEMUSTFITINTHEOFFSETFIELD,THESIZEOFAPAGEON8086SYSTEMSIS212ORTHEFAMILIAR4,096BYTESTHEPAGE_SHIFTOF12PAGE_SIZETORETURNTHESIZEOFTHEPAGEFINALLY,THEPAGE_MASKMACROYIELDSTHEVALUE0XFFFFF000ANDISUSEDTOMASKALLTHEBITSOFTHEOFFSETFIELDPMD_SHIFTTHETOTALLENGTHINBITSOFTHEOFFSETANDTABLEFIELDSOFALINEARADDRESSINOTHERWORDS,THELOGARITHMOFTHESIZEOFTHEAREAAPAGEMIDDLEDIRECTORYENTRYCANMAPTHEPMD_SIZEMACROCOMPUTESTHESIZEOFTHEAREAMAPPEDBYASINGLEENTRYOFTHEPAGEMIDDLEDIRECTORYTHATIS,OFAPAGETABLETHEPMD_MASKMACROISUSEDTOMASKALLTHEBITSOFTHEOFFSETANDTABLEFIELDSWHEPAEISDISABLED,PMD_SHIFTYIELDSTHEVALUE2212FROMOFFSETPLUS10FROMTABLE,PMD_SIZEYIELDS222OR4MB,ANDPMD_MASKYIELDS0XFFC00000CONVERSELY,WHENPAEISENABLED,PMD_SHIFTYIELDSTHEVALUE2112FROMOFFSETPLUS9FROMTABLE,PMD_SIZEYIELDS221OR2MB,ANDPMD_MASKYIELDS0XFFE00000LARGEPAGESDOMOTMAKEUSEOFTHELASTLEVELOFPAGETABLES,THUSLARGE_PAGE_SIZE,WHICHYIELDSTHESIZEOFALARGEPAGE,ISEQUALTOPMD_SIZE2PMD_SHIFTWHILELARGE_PAGE_MASK,WHICHISUSEDTOMASKALLTHEBITSOFTHEOFFSETANDTABLEFIELDSINALARGEPAGEADDRESS,ISEQUALTOPMD_MASKPUD_SHIFTDETERMINESTHELOGARITHMOFTHESIZEOFTHEAREAAPAGEUPPERDIRECTORYENTRYCANMAPTHEPUD_SIZEMACROCOMPUTESTHESIZEOFTHEAREAMAPPEDBYASINGLEENTRYOFTHEPAGEGLOBALDIRECTORYTHEPUD_MASKMACROISUSEDTOMASKALLTHEBITSOFTHEOFFSET,TABLE,MIDDLEAIR,ANDUPPERAIRFIELDSONTHE8086PROCESSORS,PUD_SHIFTISALWAYSEQUALTOPMD_SHIFTANDPUD_SIZEISEQUALTO4MBOR2MBPGDIR_SHIFTDETERMINESTHELOGARITHMOFTHESIZEOFTHEAREATHATAPAGEGLOBALDIRECTORYENTRYCANMAPTHEPGDIR_SIZEMACROCOMPUTESTHESIZEOFTHEAREAMAPPEDBYASINGLEENTRYOFTHEPAGEGLOBALDIRECTORYTHEPGDIR_MASKMACROISUSEDTOMASKALLTHEBITSOFTHEOFFSET,TABLE,MIDDLEAIR,ANDUPPERAIRFIELDSWHENPAEISDISABLED,PGDIR_SHIFTYIELDSTHEVALUE22THESAMEVALUEYIELDEDBYPMD_SHIFTANDBYPUD_SHIFT,PGDIR_SIZEYIELDS222OR4MB,ANDPGDIR_MASKYIELDS0XFFC00000CONVERSELY,WHENPAEISENABLED,PGDIR_SHIFTYIELDSTHEVALUE3012FROMOFFSETPLUS9FROMTABLEPLUS9FROMMIDDLEAIR,PGDIR_SIZEYIELDS230OR1GB,ANDPGDIR_MASKYIELDS0XC0000000PTRS_PER_PTE,PTRS_PER_PMD,PTRS_PER_PUD,ANDPTRS_PER_PGDCOMPUTETHENUMBEROFENTRIESINTHEPAGETABLE,PAGEMIDDLEDIRECTORY,PAGEUPPERDIRECTORY,ANDPAGEGLOBALDIRECTORYTHEYYIELDTHEVALUES1,024,1,1,AND1,024,RESPECTIVELY,WHENPAEISDISABLEDANDTHEVALUES512,512,1,AND4,RESPECTIVELY,WHENPAEISENABLED252PAGETABLEHANDINGPTE_T,PMD_T,PUD_T,ANDPGD_TDESCRIBETHEFORMATOF,RESPECTIVELY,APAGETABLE,APAGEMIDDLEDIRECTORY,APAGEUPPERDIRECTORY,ANDAPAGEGLOBALDIRECTORYENTRY,THEYARE64BITDATATYPESWHENPAEISENABLEDAND32BITDATATYPESOTHERWISE,PGPROT_TISANOTHER64BITPAEENABLEDOR32BITPAEENABLEDOR32BITPAEDISABLEDDATATYPETHATREPRESENTSTHEPROTECTIONFLAGSASSOCIATEDWITHASINGLEENTRYFIVETYPECONVERSIONMACROS_PTE,_PMD,_PGD,AND_PGPROTCASTANUNSIGNEDINTEGERINTOTHEREQUIREDTYPEFIVEOTHERTYPECONVERSIONMACROSPTE_VAL,PMD_VAL,PUD_VAL,PGD_VAL,ANDPGPROT_VALPERFORMTHEREVERSECASTINGFROMONEOFTHEFOURPREVIOUSLYMENTIONEDSPECIALIZEDTYPESINTOANUNSIGNEDINTEGERTHEKERNELALSOPROVIDESSEVERALMACROSANDFUNCTIONSTOREADORMODIFYPAGETABLEENTRIESPTE_NONE,PMD_NONE,PUD_NONE,ANDPGD_NONEYIELDTHEVALUE1IFTHECORRESPONDINGENTRYHASTHEVALUE0OTHERWISE,THEYYIELDTHEVALUE0PTE_CLEAR,PMD_CLEAR,PUD_CLEAR,ANDPGD_CLEARCLEARANENTRYOFTHECORRESPONDINGPAGETABLE,THUSFORBIDDINGAPROCESSTOUSETHELINEARADDRESSESMAPPEDBYTHEPAGETABLEENTRYTHEPTEP_GET_AND_CLEARFUNCTIONCLEARSAPAGETABLEENTRYANDRETURNSTHEPREVIOUSVALUESET_PTE,SET_PMD,SET_PUD,ANDSET_PGDWRITEAGIVENVALUEINTOAPAGETABLEENTRYSET_PTE_ATOMICISIDENTICALTOSET_PTE,BUTWHENPAEISENABLEDITALSOENSURESTHATTHE64BITVALUEISWRITTENATOMICALLYPTE_SAMEA,BRETURNS1IFTWOPAGETABLEENTRIESAANDBREFERTOTHESAMEPAGEANDSPECIFYTHESAMEACCESSPRIVILEGES,0OTHERWISEPME_LARGEERETURNS1IFTHEPAGEMIDDLEDIRECTORYENTRYREFERSTOALARGEPAGE2MBOR4MB,0OTHERWISETHEPMD_BADMACROISUSEDBYFUNCTIONSTOCHECKPAGEMIDDLEDIRECTORYENTRIESPASSEDASINPUTPARAMETERSITYIELDSTHEVALUE1IFTHEENTRYPOINTSTOABADPAGETABLETHATIS,IFATLEASTONEOFTHEFOLLOWINGCONDITIONSAPPLIESTHEPAGEISNOTINMAINMEMORYPRESENTFLAGCLEAREDTHEPAGEALLOWSONLYREADACCESSREAD/WRITEFLAGCLEAREDEITHERACCESSEDORDIRTYISCLEAREDLINUXALWAYSFORCESTHESEFLAGSTOBESETFOREVERYEXISTINGPAGETABLETHEPUD_BADANDPGD_BADMACROSALWAYSYIELD0NOPTE_BADMACROISDEFINED,BECAUSEITISLEGALFORAPAGETABLEENTRYTOREFERTOAPAGETHATISNOTPRESENTINMAINMEMORY,NOTWRITABLE,ORNOTACCESSIBLEATALLTHEPTE_PRESENTMACROYIELDSTHEVALUE1IFEITHERTHEPRESENTFLAGORTHEPAGESIZEFLAGOFAPAGETABLEENTRYISEQUALTO1,THEVALUE0OTHERWISERECALLTHATTHEPAGESIZEFLAGINPAGETABLEENTRIESHASNOMEANINGFORTHEPAGINGUNITOFTHEMICROPROCESSORTHEKERNEL,HOWEVER,MARKSPRESENTEQUALTO0ANDPAGESIZEEQUALTO1FORTHEPAGESPRESENTINMAINMEMORYBUTWITHOUTREAD,WRITE,OREXECUTEPRIVILEGESINTHISWAY,ANYACCESSTOSUCHPAGESTRIGGERSAPAGEFAULTEXCEPTIONBECAUSEPRESENTISCLEARED,ANDTHEKERNELCANDETECTTHATTHEFAULTISNOTDUETOAMISSINGPAGEBYCHECKINGTHEVALUEOFPAGESIZETHEPMD_PRESENTMACROYIELDSTHEVALUE1IFTHEPRESENTFLAGOFTHECORRESPONDINGENTRYISEQUALTO1THATIS,IFTHECORRESPONDINGPAGEORPAGETABLEISLOADEDINMAINMEMORYTHEPUD_PRESENTANDPGD_PRESENTMACROSALWAYSYIELDTHEVALUE1THEFUNCTIONSLISTEDINTABLE25QUERYTHECURRENTVALUEOFANYOFTHEFLAGSINCLUDEDINAPAGETABLEENTRYWITHTHEEXCEPTIONOFPTE_FILE,THESEFUNCTIONSWORKPROPERLYONLYONPAGETABLEENTRIESFORWHICHPTE_PRESENTRETURNS1TABLE25PAGEFLAGREADINGFUNCTIONSFUNCTIONNAMEDESCRIPTIONPTE_USERREADSTHEUSER/SUPERVISORFLAGPTE_READREADSTHEUSER/SUPERVISORFLAGPAGESONTHE8086PROCESSORCANNOTBEPROTECTEDAGAINSTREADINGPTE_WRITEREADSTHEREAD/WRITEFLAGPTE_EXECREADSTHEUSER/SUPERVISORFLAGPAGESONTHE8086PROCESSORCANNOTBEPROTECTEDAGAINSTCODEEXECUTIONPTE_DIRTYREADSTHEDIRTYFLAGPTE_YOUNGREADSTHEACCESSEDFLAGPTE_FILEREADSTHEDIRTYFLAGWHENTHEPRESENTFLAGISCLEAREDANDTHEDIRTYFLAGISSET,THEPAGEBELONGSTOANONLINEARDISKFILEMAPPINGSEECHAPTER16ANOTHERGROUPOFFUNCTIONSLISTEDINTABLE26SETSTHEVALUEOFTHEFLAGSINAPAGETABLEENTRYTABLE26,PAGEFLAGSETTINGFUNCTIONSFUNCTIONNAMEDESCRIPTIONMK_PTE_HUGESETSTHEPAGESIZEANDPRESENTFLAGSOFAPAGETABLEENTRYPTE_WRPROTECTCLEARSTHEREAD/WRITEFLAGPTE_RDPROTECTCLEARSTHEUSER/SUPERVISORFLAGPTE_EXPROTECTCLEARSTHEUSER/SUPERVISORFLAGPTE_MKWRITESETSTHEREAD/WRITEFLAGPTE_MKREADSETSTHEUSER/SUPERVISORFLAGPTE_MKEXECSETSTHEUSER/SUPERVISORFLAGPTE_MKCLEANCLEARSTHEDIRTYFLAGPTE_MKDIRTYSETSTHEDIRTYFLAGPTE_MKOLDCLEARSTHEACCESSEDFLAGMAKESTHEPAGEOLDPTE_MKYOUNGSETSTHEACCESSEDFLAGMAKESTHEPAGEYOUNGPTE_MODIFYP,VSETSALLACCESSRIGHTSINAPAGETABLEENTRYPTOASPECIFIEDVALUEVPTEP_SET_WRPROTECTLIKEPTE_WRPROTECT,BUTACTSONAPOINTERTOAPAGETABLEENTRYPTEP_SET_ACCESS_FLAGSIFTHEDIRTYFLAGISSET,SETSTHEPAGESACCESSRIGHTSTOASPECIFIEDVALUEANDINVOKESFLUSH_TLB_PAGESEETHESECTION“TRANSLATIONLOOKASIDEBUFFERSTLB“LATERINTHISCHAPTERPTEP_MKDIRTYLIKEPTE_MKDIRTYBUTACTSONAPOINTERTOAPAGETABLEENTRYPTEP_TEST_AND_CLEAR_DIRTYLIKEPTE_MKCLEANBUTACTSONAPOINTERTOAPAGETABLEENTRYANDRETURNSTHEOLDVALUEOFTHEFLAGPTEP_TEST_AND_CLEAR_YOUNGLIKEPTE_MKOLDBUTACTSONAPOINTERTOAPAGETABLEENTRYANDRETURNSTHEOLDVALUEOFTHEFLAGNOW,LETSDISCUSSTHEMACROSLISTEDINTABLE27THATCOMBINEAPAGEADDRESSANDAGROUPOFPROTECTIONFLAGSINTOAPAGETABLEENTRYORPERFORMTHEREVERSEOPERATIONOFEXTRACTINGTHEPAGEADDRESSFROMAPAGETABLEENTRYNOTICETHATSOMEOFTHESEMACROSREFERTOAPAGETHROUGHTHELINEARADDRESSOFITS“PAGEDESCRIPTOR“SEETHESECTION“PAGEDESCRIPTORS“INCHAPTER8RATHERTHANTHELINEARADDRESSOFTHEPAGEITSELFTABLE27MACROSACTINGONPAGETABLEENTRIESMACRONAMEDESCRIPTIONPGD_INDEXADDRYIELDSTHEINDEXRELATIVEPOSITIONOFTHEENTRYINTHEPAGEGLOBALDIRECTORYTHATMAPSTHELINEARADDRESSADDRPGD_OFFSETMM,ADDRRECEIVESASPARAMETERSTHEADDRESSOFAMEMORYDESCRIPTORCWSEECHAPTER9ANDALINEARADDRESSADDRTHEMACROYIELDSTHELINEARADDRESSOFTHEENTRYINAPAGEGLOBALDIRECTORYTHATCORRESPONDSTOTHEADDRESSADDRTHEPAGEGLOBALDIRECTORYISFOUNDTHROUGHAPOINTERWITHINTHEMEMORYDESCRIPTORPGD_OFFSET_KADDRYIELDSTHELINEARADDRESSOFTHEENTRYINTHEMASTERKERNELPAGEGLOBALDIRECTORYTHATCORRESPONDSTOTHEADDRESSADDRSEETHELATERSECTION“KERNELPAGETABLES“PGD_PAGEPGDYIELDSTHEPAGEDESCRIPTORADDRESSOFTHEPAGEFRAMECONTAININGTHEPAGEUPPERDIRECTORYREFERREDTOBYTHEPAGEGLOBALDIRECTORYENTRYPGDINATWOORTHREELEVELPAGINGSYSTEM,THISMACROISEQUIVALENTTOPUD_PAGEAPPLIEDTOTHEFOLDEDPAGEUPPERDIRECTORYENTRYPUD_OFFSETPGD,ADDRRECEIVESASPARAMETERSAPOINTERPGDTOAPAGEGLOBALDIRECTORYENTRYANDALINEARADDRESSADDRTHEMACROYIELDSTHELINEARADDRESSOFTHEENTRYINAPAGEUPPERDIRECTORYTHATCORRESPONDSTOADDRINATWOORTHREELEVELPAGINGSYSTEM,THISMACROYIELDSPGD,THEADDRESSOFAPAGEGLOBALDIRECTORYENTRYPUD_PAGEPUDYIELDSTHELINEARADDRESSOFTHEPAGEMIDDLEDIRECTORYREFERREDTOBYTHEPAGEUPPERDIRECTORYENTRYPUDINATWOLEVELPAGINGSYSTEM,THISMACROISEQUIVALENTTOPMD_PAGEAPPLIEDTOTHEFOLDEDPAGEMIDDLEDIRECTORYENTRYPMD_INDEXADDRYIELDSTHEINDEXRELATIVEPOSITIONOFTHEENTRYINTHEPAGEMIDDLEDIRECTORYTHATMAPSTHELINEARADDRESSADDRPMD_OFFSETPUD,ADDRRECEIVESASPARAMETERSAPOINTERPUDTOAPAGEUPPERDIRECTORYENTRYANDALINEARADDRESSADDRTHEMACROYIELDSTHEADDRESSOFTHEENTRYINAPAGEMIDDLEDIRECTORYTHATCORRESPONDSTOADDRINATWOLEVELPAGINGSYSTEM,ITYIELDSPUD,THEADDRESSOFAPAGEGLOBALDIRECTORYENTRYPMD_PAGEPMDYIELDSTHEPAGEDESCRIPTORADDRESSOFTHEPAGETABLEREFERREDTOBYTHEPAGEMIDDLEDIRECTORYENTRYPMDINATWOLEVELPAGINGSYSTEM,PMDISACTRALLYANENTRYOFAPAGEGLOBALDIRECTORYMK_PTEP,PROTRECEIVESASPARAMETERSTHEADDRESSOFAPAGEDESCRIPTORPANDAGROUPOFACCESSRIGHTSPROT,ANDBUILDSTHECORRESPONDINGPAGETABLEENTRYPTE_INDEXADDRYIELDSTHEINDEXRELATIVEPOSITIONOFTHEENTRYINTHEPAGETABLETHATMAPSTHELINEARADDRESSADDRPTE_OFFSET_KERNELDIR,ADDRYIELDSTHELINEARADDRESSOFTHEPAGETABLETHATCORRESPONDSTOTHELINEARADDRESSADDRMAPPEDBYTHEPAGEMIDDLEDIRECTORYDIRUSEDONLYONTHEMASTERKERNELPAGETABLESSEETHELATERSECTION“KERNELPAGETABLES“PTE_OFFSET_MAPDIF,ADDRRECEIVESASPARAMETERSAPOINTERDIRTOAPAGEMIDDLEDIRECTORYENTRYANDALINEARADDRESSADDRITYIELDSTHELINEARADDRESSOFTHEENTRYINTHEPAGETABLETHATCORRESPONDSTOTHELINEARADDRESSADDRIFTHEPAGETABLEISKEPTINHIGHMEMORYTHEKERNELESTABLISHESATEMPORARYKERNELMAPPINGSEETHESECTION“KERNELMAPPINGSOFHIGHMEMORYPAGEFRAMES“INCHAPTER8,TOBERELEASEDBYMEANSOFPTE_UNMAPTHEMACROSPTE_OFFSET_MAP_NESTEDANDPTE_UNMAP_NESTEDAREIDENTICAL,BUTTHEYUSEADIFFERENTTEMPORARYKERNELMAPPINGPTE_PAGEXRETURNSTHEPAGEDESCRIPTORADDRESSOFTHEPAGEREFERECEDBYTHEPAGETABLEENTRYXPTE_TO_PGOFFPTEEXTRACTSFROMTHECONTENTPTEOFAPAGETABLEENTRYTHEFILEOFFSETCORRESPONDINGTOAPAGEBELONGINGTOANONLINEARFILEMEMORYMAPPINGSEETHESECTION“NONLINEARMEMORYMAPPINGS“INCHAPTER16PGOFF_TO_PTEOFFSETSETSUPTHECONTENTOFAPAGETABLEENTRYFORAPAGEBELONGINGTOANONLINEARFILEMEMORYMAPPINGTHELASTGROUPOFFUNCTIONSOFTHISLONGLISTWASINTRODUCEDTOSIMPLIFYTHECREATIONANDDELETIONOFPAGETABLEENTRIESWHENTWOLEVELPAGINGISUSED,CREATINGORDELETINGAPAGEMIDDLEDIRECTORYENTRYISTRIVIALASWEEXPLAINEDEARLIERINTHISSECTION,THEPAGEMIDDLEDIRECTORYCONTAINSASINGLEENTRYTHATPOINTSTOTHESUBORDINATEPAGETABLE,THUS,THEPAGEMIDDLEDIRECTORYENTRYISTHEENTRYWITHINTHEPAGEGLOBALDIRECTORY,TOOWHENDEALINGWITHPAGETABLES,HOWEVER,CREATINGANENTRYMAYBEMORECOMPLEX,BECAUSETHEPAGETABLETHATISSUPPOSEDTOCONTAINITMIGHTNOTEXISTINSUCHCASES,ITISNECESSARYTOALLOCATEANEWPAGEFRAME,FILLITWITHZEROS,ANDADDTHEENTRYIFPAEISENABLED,THEKERNELUSESTREELEVELPAGINGWHENTHEKERNELCREATESANEWPAGEGLOBALDIRECTORY,ITALSOALLOCATESTHEFOURCORRESPONDINGPAGEMIDDLEDIRECTORIESTHESEAREFREEDONLYWHENTHEPARENTPAGEGLOBALDIRECTORYISRELEASEDWHENTWOORTHREELEVELPAGINGISUSED,THEPAGEUPPERDIRECTORYENTRYISALWAYSMAPPEDASASINGLEENTRYWITHINTHEPAGEGLOBALDIRECTORYASUSUAL,THEDESCRIPTIONOFTHEFUNCTIONSLISTEDINTABLE28REFERSTOTHE8086ARCHITECTURETABLE28PAGEALLOCATIONFUNCTIONSFUNCTIONNAMEDESCRIPTIONPGD_ALLOCMMALLOCATESANEWPAGEGLOBALDIRECTORYIFPAEISENABLED,ITALSOALLOCATESTHETHREECHILDRENPAGEMIDDLEDIRECTORIESTHATMAPTHEUSERMODELINEARADDRESSESTHEARGUMENTMMTHEADDRESSOFAMEMORYDESCRIPTORISIGNOREDONTHE8086ARCHITECTUREPGD_FREEPGDRELEASESTHEPAGEGLOBALDIRECTORYATADDRESSPGDIFPAEISENABLED,ITALSORELEASESTHETHREEPAGEMIDDLEDIRECTORIESTHATMAPTHEUSERMODELINEARADDRESSESPUD_ALLOCMM,PGD,ADDRINATWOORTHREELEVELPAGINGSYSTEM,THISFUNCTIONDOESNOTHINGITSIMPLYRETURNSTHELINEARADDRESSOFTHEPAGEGLOBALDIRECTORYENTRYPGDPUD_FREEXINATWOORTHREELEVELPAGINGSYSTEM,THISMACRRODOESNOTHINGPMD_ALLOCMM,PUD,ADDRDEFINEDSOGENERICTHREELEVELPAGINGSYSTEMSCANALLOCATEANEWPAGEMIDDLEDIRECTORYFORTHELINEARADDRESSADDRIFPAEISNOTENABLED,THEFUNCTIONSIMPLYRETURNSTHEINPUTPARAMETERPUDTHATIS,THEADDRESSOFTHEENTRYINTHEPAGEGLOBALDIRECTORYIFPAEISENABLED,THEFUNCTIONRETURNSTHELINEARADDRESSOFTHEPAGEMIDDLEDIRECTORYENTRYTHATMAPSTHELINEARADDRESSADDRTHEARGUMENTCWISIGNOREDPMD_FREEXDOESNOTHING,BECAUSEPAGEMIDDLEDIRECTORIESAREALLOCATEDANDDEALLOCATEDTOGETHERWITHTHEIRPARENTPAGEGLOBALDIRECTORYPTE_ALLOC_MAPMM,PMD,ADDRRECEIVESASPARAMETERSTHEADDRESSOFAPAGEMIDDLEDIRECTORYENTRYPMDANDALINEARADDRESSADDR,ANDRETURNSTHEADDRESSOFTHEPAGETABLEENTRYCORRESPONDINGTOADDRIFTHEPAGEMIDDLEDIRECTORYENTRYISNULL,THEFUNCTIONALLOCATESANEWPAGETABLEBYINVOKINGPTE_ALLOC_ONEIFANEWPAGETABLEISALLOCATED,THEENTRYCORRESPONDINGTOADDRISINITIALIZEDANDTHEUSER/SUPERVISORFLAGISSETIFTHEPAGETABLEISKEPTINHIGHMEMORY,THEKERNELESTABLISHESATEMPORARYKERNELMAPPINGSEETHESECTION“KERNELMAPPINGSOFHIGHMEMORYPAGEFRAMES“INCHAPTER8,TOBERELEASEDBYPTE_UNMAPPTE_ALLOC_KERNELMM,PMD,ADDRIFTHEPAGEMIDDLEDIRECTORYENTRYPMDASSOCIATEDWITHTHEADDRESSADDRISNULL,THEFUNCTIONALLOCATESANEWPAGETABLEITTHENRETURNSTHELINEARADDRESSOFTHEPAGETABLEENTRYASSOCIATEDWITHADDRUSEDONLYFORMASTERKERNELPAGETABLESSEETHELATERSECTION“KERNELPAGETABLES“PTE_FREEPTERELEASESTHEPAGETABLEASSOCIATEDWITHTHEPTEPAGEDESCRIPTORPOINTERPTE_FREE_KERNELPTEEQUIVALENTTOPTE_FREE,BUTUSEDFORMASTERKERNELPAGETABLESCLEAR_PAGE_RANGEMMU,START,ENDCLEARSTHECONTENTSOFTHEPAGETABLESOFAPROCESSFROMLINEARADDRESSSTARTTOENDBYITERATIVELYRELEASINGITSPAGETABLESANDCLEARINGTHEPAGEMIDDLEDIRECTORYENTRIES中文翻译LINUX采用普通的内存分页模式同时适合32位和64位结构就像在早期的版本“64位内存分页结构“中所期待的那样对于32位结构来说,2级内存分页就足够了,但是64位结构要求一个更高级别的内存分页技术一直到2610版本出现,LINUX内存分页技术达到了3级分页从2611版本开始,4级内存分页技术就被采用了在图212中列举了四种页表,它们被叫做整体目录页面上层目录页面中间目录页面表页面整体目录页面包括若干上层目录页面的地址,它依次包括若干上层目录页面上层目录页面依次又包括若干中间目录页面中间目录页面依次又包括若干表页面每一个表页面入口均指向一个页帧,这样线性地址可以分解为5部分212图未表示出位数,因为每一部分的容量决定于计算机体系结构对于不带有实在地址的延长的32位数据结构,2个分页层次就够用了,LINUX本质上消除了上层目录页面机制中间目录层面领域,就说他们含有内核然而,上层目录页面和中间目录页面的位置在指示器的顺序中保持着在32位和64位数据结构上所工作的同样码。其内核保持上层目录页面和中间目录页面的一个位置。这是靠在它们中间设置输入数到1的及绘制此两个输入到整体目录页面的固有输入完成的LINUX总体目录页面是和8086的表页面指示相一致的。对于带有实在地址这样的32位数据结构条件页面是能完成的,删去了上层目录页面。中层目录页面是和8086的表页面相一致的,而LINUX表页面是和8086表页面相一致的。最终,采用3式4层次页面对于64位数据结构是受由硬件实行线形地址分解来决定的。(见表22)。LINUX操作过程主要是依靠页面进行。实际上,线形地址到实在地址的自动传输使下述硬件客观上是可行的把不同的实在地址空间分配到每一个的过程,保证了有效的寻码误差出现。从页桢(在主存储器中的实际地址)用区别页面(数据组)。这就允许同样页面存储于页桢中,再存盘和接着在不同的页面桢中再重装。这是实际存储机制中的基本元素。(见17章)在本章剩余部分,我们将关系到为调用8086处理器而具体存储到页面的线路。在第9章可见,每一过程都有其自己的总体目录以及表页面的置位。当一个过程开关发生时(见第3章过程开关一节),LINUX在每一次过程描述符中存储CX3控制寄存由于执行中之后将执行存储具有数值的负载于过程描述符中。这样,当在CPU上重新开始执行新过程时,页面单元就和表页面的正确置位有关。线形绘图对实在地址就变成一个机制工作,导致它们仍有某些复杂关系存在。本章以下少数几节是颇冗长的功能表。取回纹息的宏功能(内核)需要去寻址,并操作表页;大多数的功能是1到2线长。现在您可以只浏览这些节段,但是晓得这些功能和宏功能的角色是有用的。因为在整个这本书的研讨中您会经常见到。251线形地址域当应用到8086处理器时,详述在补偿域位数的长度;它应给出12数值。因为所有在页面中的地址必须适合于补偿域中。页面的大小在8086系统中是2的12次方或所熟悉的4。096位;12的PAGESHIFT可以考虑为整个页面大小的以2为底的对数。宏功能是靠PAGESIZE回到页面的容量来达到。最后,PAGESIZE宏功能给出0XFFFFF000数值和用它来掩盖补偿域的所有的位数。PMDSIFT在补偿的位数中总长以及线性地址的表域,换句话说,一个面积大小的对数,中层目

温馨提示

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

评论

0/150

提交评论