欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    王雷北京航空航天大学计算机系.ppt

    • 资源ID:5446108       资源大小:437.01KB        全文页数:96页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    王雷北京航空航天大学计算机系.ppt

    1,存储管理,王 雷北京航空航天大学计算机系,2,内容,Windows 2000/XP内存管理Windows 2000/XP外存管理Windows 2000/XP高速缓存管理,3,工具,NtNt资源包Platform SDKNT DDK,4,调试工具,CDB.exei386kd.exewindbg.exesoftice(),5,6,配置,配置宿主机调试环境双机串口通讯连接目标机的WINDOWS启动时加上/debug参数安装与目标机系统相匹配的Symbol文件,7,kd!processfields,Pcb:0 x0ExitStatus:0 x68LockEvent:0 x6cLockCount:0 x7cCreateTime:0 x80ExitTime:0 x88LockOwner:0 x90UniqueProcessId:0 x94ActiveProcessLinks:0 x98QuotaPeakPoolUsage0:0 xa0QuotaPoolUsage0:0 xa8PagefileUsage:0 xb0CommitCharge:0 xb4PeakPagefileUsage:0 xb8PeakVirtualSize:0 xbcVirtualSize:0 xc0Vm:0 xc8,8,LastProtoPteFault:0 xf8DebugPort:0 xfcExceptionPort:0 x100ObjectTable:0 x104Token:0 x108WorkingSetLock:0 x10cWorkingSetPage:0 x12cProcessOutswapEnabled:0 x130ProcessOutswapped:0 x131AddressSpaceInitialized:0 x132AddressSpaceDeleted:0 x133AddressCreationLock:0 x134ForkInProgress:0 x158VmOperation:0 x15cVmOperationEvent:0 x160PageDirectoryPte:0 x164LastFaultCount:0 x168VadRoot:0 x170VadHint:0 x174CloneRoot:0 x178NumberOfPrivatePages:0 x17cNumberOfLockedPages:0 x180ForkWasSuccessful:0 x15eExitProcessCalled:0 x186CreateProcessReported:0 x187,SectionHandle:0 x188Peb:0 x18cSectionBaseAddress:0 x190QuotaBlock:0 x194LastThreadExitStatus:0 x198WorkingSetWatch:0 x19cInheritedFromUniqueProcessId:0 x1a4GrantedAccess:0 x1a8,9,kd!process 0,PROCESS 80147120 Cid:0000 Peb:00000000 ParentCid:0000 DirBase:00030000 ObjectTable:80731e88 TableSize:254.Image:Idle VadRoot 0 Clone 0 Private 0.Modified 0.Locked 0.801472DC MutantState Locked OwningThread 0 Process Lock Owned by Thread 0 Token e1000750 ElapsedTime 7:41:18.0524 UserTime 0:00:00.0000 KernelTime 9:34:32.0780 QuotaPoolUsagePagedPool 0 QuotaPoolUsageNonPagedPool 0 Working Set Sizes(now,min,max)(4,50,450)(16KB,200KB,1800KB)PeakWorkingSetSize 4 VirtualSize 0 Mb PeakVirtualSize 0 Mb PageFaultCount 1 MemoryPriority BACKGROUND BasePriority 0 CommitCharge 0THREAD 80147320 Cid 0.0 Teb:00000000 Win32Thread:00000000 RUNNING,10,内存管理,组成部分地址空间的布局地址转换机制内存分配方式缺页处理工作集物理内存管理其他内存相关机制,11,组成部分,一组执行体系统服务程序,用于虚拟内存的分配、回收和管理。大多数这些服务都是通过Win32 API 或内核态的设备驱动程序接口形式出现。一个转换无效和访问错误陷阱处理程序用于解决硬件监测到的内存管理异常,并代表进程将虚拟页面装入内存。六个的关键组件,12,工作集管理器(16优先):当空闲内存低于某一界限时,便启动所有的内存管理策略,如:工作集的修整、老化和已修改页面的写入等。进程/堆栈交换程序(23优先):完成进程和内核线程堆栈的换入和换出操作。已修改页面写入器(17优先):将修改链表上的“脏”页写回到适当的页文件。,13,映射页面写入器(17优先):将映射文件中脏页写回磁盘。废弃段线程(18优先):负责系统高速缓存和页面文件的扩大和缩小。零页线程(0优先):将空闲链表中的页面清零。,14,内存布局,15,16,系统代码 包括操作系统映像、HAL和用于引导系统的设备驱动程序。系统映射视图 用来映射Win32子系统可加载的核心态部分Win32k.sys,以及它使用的核心态图形驱动程序。会话空间 用来映射一个用户的会话信息。进程页表和页目录 描述虚拟地址映射的结构。超空间 一个特殊的区域用来映射进程工作集链表,并为创建临时映射物理页面。,17,系统工作集链表 描述系统工作集的工作集链表数据结构。系统高速缓存 用来映射在系统高速缓存中打开的文件的虚拟空间。分页缓冲池 可分页系统内存堆。系统页表项 系统PTE缓冲池,用来映射系统页面。非分页缓冲池 不可分页的系统内存堆。,18,地址变换过程,19,进程,20,快表TLB,21,内存分配方式,以页单位的虚拟内存函数(Virtualxxx),保留与提交内存映射文件函数(CreateFileMapping,MapViewOfFile),堆函数(Heapxxx 和早期的接口Localxxx 和Globalxxx)。,22,虚拟地址描述符,23,内存映射文件,加载和执行.exe和dll文件,这可以节省应用程序启动所需的时间;访问磁盘上的数据文件,这可以减少文件I/O,并且不必对文件进行缓存;实现多个进程间的数据共享。,24,区域对象(section object),25,26,建立过程,打开文件,区域对象可以连接到已打开的磁盘文件(映射文件),或是已提交的内存(提供共享内存)。可以调用Win32函数CreateFileMapping创建区域对象,其参数包括映射到区域对象的文件句柄(或是INVALID_HANDLE_VALUE表示页文件支持区域)。如果区域有名字,其它进程可以用OpenFileMapping打开它。设备驱动程序也可以使用ZwOpenSection,ZwMapViewOfSection,和ZwUnmapViewOfSection函数操纵区域对象。MapViewOfFile函数映射区域对象的一部分,并指定映射范围。,27,堆函数,缺省进程堆,通常是1MB大小HeapCreate函数创建另外的私有堆,HeapDestroy删除。串行化选项。,28,系统内存分配,非分页缓冲池 由系统虚拟地址组成,它们长期驻留在物理内存中,在任何时候都可以被访问到(从任何IRQL级和任何进程上下文),而不会发生页错误。需要未分页缓冲池的一个原因是:页错误不能满足在DPC/调度级或更高。分页缓冲池 是系统可以被分页和分出系统的空间中虚拟内存的一个区域。不必从DPC/调度级或更高一级访问内存的设备驱动程序可以使用分页缓冲池。它从任何进程上下文都是可访问的。,29,系统有两种非分页缓冲池:一种在一般情况下使用,另一种小型的(4页)缓冲池在非分页缓冲池已满并且调用者不能允许分配失败时,紧急使用。单处理机系统有三个分页缓冲池;多处理机系统有五个。后备链表(Look-Aside Lists)。Ex,30,缺页处理,无效的页表项页文件请求零页转换未知原型页表项,31,32,页面调入I/O,向文件(页或映射文件)发出读操作来解决缺页问题同步的,33,问题,同一进程中的另一线程,或一个其它的进程,都可能由于一个相同的页面导致缺页错误。(称为“冲突页错误”,将在下节中介绍)。页面可能已经从虚拟地址空间中被删除(并重新映射)。页面的保护限制可能发生了变化。错误可能是由一个原型页表项引发的,并且这个原型页表项所映射的页面可能并不在工作集中。,34,冲突页错误(collided page fault),页面调度程序检测等待操作I/O操作完成后,所有等待该事件的线程都会被唤醒第一个获得页框号数据库锁的线程负责执行页面调入完成操作。,35,页文件,最多16个页文件以非压缩的形式被创建,36,工作集,进程工作集系统工作集,37,系统工作集,系统高速缓存页面分页缓冲池Ntoskrnl.exe中可分页的代码和数据设备驱动程序中可分页的代码和数据系统映射视图(部分映射在0 xA0000000处,如Win32k.sys),38,取页策略:内存管理器利用请求式页面调度算法以及簇方式将页面装入内存置页策略:选择页框应使CPU内存高速缓存不必要的震荡最小换页策略在多处理器系统中,Windows 2000/XP采用了局部先进先出置换策略。而在单处理器系统中,Windows 2000/XP的实现更接近于最近最少使用策略(LRU)(称为“轮转算法”,用于大多数版本的UNIX)。,39,物理内存管理,活动(又称有效)过渡(Transition)后备(stand by)修改 修改不写入 空闲 零初始化(zeroed)坏,40,41,物理内存管理,42,43,锁内存,设备驱动程序可以调用核心态函数MmProbeAndLockPages,MmLock PagableCodeSection,MmLockPagableDataSection,或者 MmLockPagableSection ByHandle。Win32应用程序可以调用VirtualLock函数锁住进程工作集中的页面。,44,内存保护机制,所有系统范围内核心态组件使用的数据结构和内存缓冲池只能在核心态下访问。每个进程有一个独立、私有的地址空间,禁止其它进程的线程访问。支持的处理机还提供了一些硬件内存保护措施(如读/写,只读等)。共享内存区域对象具有标准的Windows2000/XP存取控制表(ACLs),45,写时复制,46,物理地址扩展,47,地址窗口扩充,48,外存管理,Windows 2000/XP存储的演变分区(Partitioning)驱动程序(Drivers)多重分区管理(Multipartition Volume Management)卷名字空间(The Volume Namespace),49,存储的演变,让MSDOS在一个物理盘上采用多个分区,也就是逻辑盘Windows NT借鉴了MSDOS的分区机制,扩展了MSDOS分区的基本概念,支持企业级操作系统所需的一些存储管理的特征:跨磁盘管理(disk spanning)和容错(fault tolerance),50,早期磁盘管理的缺点,对大多数磁盘设置的改变需要重启操作系统才能生效NT的注册表中为MSDOS方式的分区保存了多分区磁盘的配置信息每个卷有一个唯一的从A到Z的驱动器名,51,盘一种物理存储设备。扇区可寻址的大小固定的块。分区是盘上连续扇区的集合。简单卷代表文件系统驱动程序作为一个独立单元管理来自一个分区的所有扇区。多分区卷它代表文件系统驱动程序作为一个独立单元管理来自多个分区的所有扇区。多分区卷提供简单卷所不支持的性能、可靠性和大小等特性。,52,分区,基本分区动态分区逻辑磁盘管理子系统(LDM)负责,53,LDM,LDM的数据库存在于每个动态盘最后的1MB保留空间中。LDM实现了一个MS DOS的分区表,这是为了继承一些在Windows2000/XP下运行的磁盘管理工具,或是在双引导环境中让其它系统不至于认为动态盘还没有被分区。由于LDM分区在磁盘的MS DOS分区表中并没有体现出来,所以被称为软分区,而MS DOS分区被称为硬分区。,54,55,56,数据库结构,私有头:GUID,磁盘组的名字(该名字是由Dg0和计算机的名字一起组成,例如SusanDg0,意味着计算机的名字是Susan)和一个指向数据库内容表的指针。为了保证可靠性,LDM在磁盘的最后一个扇区保存了私有头的拷贝。数据库内容表有16个扇区大小,其中包含关于数据库布局的信息。数据库记录区域紧接着内容表,并将内容表后第一个扇区作为数据库记录头。这个扇区中存储了数据库记录区的信息,包括其所包含的记录个数,数据库相关的磁盘组的名字和GUID,以及LDM用于创建下一项的序列号。,57,数据库中的每一项可以是如下四种类型之一:分区,磁盘,组件,卷。LDM把每一项与内部对象的标识符联系到一起。在最低的级别,分区项描述软分区,它是在一个盘上的连续区域。存储在分区项中的标识符把这个项与一个组件和一个磁盘项联系起来。磁盘项代表一个磁盘组中的动态盘,包括磁盘的GUID。组件项像一条链子把一个或多个分区项和与分区相连的卷项联系起来。卷项存放这个卷的GUID,卷的大小和状态,驱动器的名字。比一个数据库记录大的磁盘项占用多个记录的空间,分区项、组件项和卷项很少占用多个记录的空间。,58,LDM需要三个项来描述一个简单卷:分区项、组件项和卷项。分区项描述系统分配给某个卷的磁盘上的一个区域,组件项把一个分区项和一个卷项联系起来,卷项中包含Windows 2000/XP内部用来识别卷的GUID。多分区卷需要的项数多于三个。例如,一个条带卷包括最少两个分区项,一个组件项和一个卷项。唯一一种含有一个以上组件项的卷的类型是:镜像卷。镜像卷含有两个组件项,每个只表示这个镜像的一半。LDM为每个镜像卷使用两个组件项的目的是:当一个镜像破坏时LDM能够在组件一级将他们分割开来,并创建两个各含有一个组件项的卷。因为简单卷需要三个项,而1MB数据库空间大约可以容纳8000个项,所以在Windows 2000/XP中可以创建的卷数目的有效上界大约是2500个。,59,LDM数据库的最后部分是事务处理日志区,它包含的几个扇区在数据库信息改变时用来存储备份信息。这样确保在系统崩溃或断电时,LDM能够利用日志把系统恢复到一个正确的状态。,60,驱动程序,系统卷中引导扇区中的代码负责执行Ntldr。Ntldr从系统卷中读取Boot.ini文件,把计算机的引导选项显示给用户。Boot.ini指定分区名为 mult(0)disk(0)rdisk(0)partition(1)的形式。Ntldr把Boot.ini中用户指定的项转换为正确的引导分区,然后将Windows 2000/XP系统文件(从注册表、Ntoskrnl.exe、引导驱动程序开始)装入内存,继续引导过程。,61,Windows 2000/XP的存储驱动程序类:实现所有存储设备共同的功能端口:基于某种特定总线设备的共同功能,如SCSI、IDE小端口:OEM提供,62,磁盘的类驱动程序使用I/O管理器的IoReadPartitionTable函数识别表示分区的设备对象设备名DeviceHarddisk0DP(1)0 x7e000-0 x7ff50c00+2,63,Windows 2000/XP保存了两个不同的名字空间子目录供Win32使用,其中之一是:?子目录(另一个是BaseNamedObjects 子目录)。在?子目录中,Windows 2000/XP创建了一些与Win32程序交互的硬件对象,包括串口和并口,还有磁盘。,64,由于磁盘对象实际上存在于其它的子目录中,所以Windows 2000/XP使用符号链接,把在?子目录下的名字与在名字空间其它地方的对象联系起来。I/O管理器为系统中的每一个物理盘都创建一个?PhysicalDriveX的链接,指向DeviceHarddiskXPartition0(从零开始的数字来替代X)。那些直接访问磁盘扇区的WIN 32应用程序可以调用Win32函数CreateFile,通过指定.PhysicalDriveX(X是一个磁盘的号码)作为参数来打开磁盘。Win32 的应用层先把名字转化为?PhysicalDriveX,然后在把名字提交给Windows2000/XP对象管理器。,65,管理工具,FtDisk和 DMIO负责识别文件系统驱动程序管理的卷,并将I/O直接从卷映射到组成卷的底层分区。对简单卷来说,通过把卷的偏移量加上卷在磁盘中的起始地址,卷管理器可以保证卷的偏移量被转换成盘的偏移量。对于多分区卷这就复杂多了,因为组成卷的分区可以是不邻接的分区,甚至可以在不同的磁盘中。有一些多分区卷使用数据冗余技术,所以它们需要更多的卷到磁盘的转换工作。,66,多重分区管理,跨分区卷(spanned volume)条带卷(striped volume)镜像卷(mirrored volume)廉价冗余磁盘阵列5卷(RAID-5 volume),67,跨分区卷,68,一个单独的逻辑卷,最多由在一个或多个磁盘上的32个空闲分区组成。跨分区卷可以用来把小的磁盘空闲区域,或者把两个或更多的小磁盘组成大的卷。卷管理器对Windows 2000/XP的文件系统隐藏了磁盘物理配置信息。,69,条带卷(RAID-0卷),70,一系列分区组成的单独的逻辑卷,最多有32个分区并且每个盘一个分区。条带卷中的一个分区不需要占据整个磁盘,唯一的限制是每个盘上的分区大小相同数据能够被平均分配到每个磁盘上,71,镜像卷,72,一个磁盘上分区的内容被复制另一个磁盘与它等大小的分区中。镜像卷有时也被称为RAID-1。镜像卷能够可以在主分区和镜像分区之间平衡I/O操作。两个读操作可以同时进行,所以理论上只用一半时间就可以完成。当修改一个文件时,必须写入镜像卷的两个分区,但是磁盘写操作可以异步进行,所以用户态程序的性能一般不会被这种额外的磁盘更新所影响。镜像卷是唯一一种支持系统卷和引导卷的多分区卷。,73,廉价冗余磁盘阵列5卷,74,卷名字空间,安装管理器安装点卷安装,75,安装管理器,安装管理器(Mountmgr.sys)是Windows 2000/XP中新驱动程序,为在Window 2000/XP安装后创建的动态磁盘卷和基本磁盘卷分配驱动器名。卷管理器创建卷时都将通知它。当接到通知时,确定新的卷GUID或者磁盘标记;安装管理器使用卷GUID(或者标识)在内部数据库中进行查询安装管理者使用第一个未分配的驱动器名,为这次分配创建一个符号链接(例如,?D:),76,安装点,实现安装点的技术是再解析点(Reparse Point)技术。C:Project CurrentProjectDescription.txtC:ProjectsCurrentProjectDescription.txt,77,卷安装,每个文件系统驱动程序在初始化时都向I/O管理器注册每个设备对象包含一个卷参数块VPB,但是I/O管理器认为只有卷设备对象的VPB是有意义的安装请求,78,安装管理器把D:分配给系统中的第二个卷它产生符号连接?D:指向设备对象DeviceHarddiskVolume2。一个WIN 32应用程序试图打开D:上的文件TempTest.txt时,它将会指定路径D:TempTest.txt。,79,WIN 32子系统在调用NtCreateFile之前将路径转化为?D:TempTest.txt。I/O管理器将检查DeviceHarddiskVolume2的VPB是否引用一个文件系统。,80,高速缓存,单一集中式系统高速缓存任何数据都能被高速缓存,无论它是用户数据流(文件内容和在这个文件上正在进行读和写的活动)或是文件系统的元数据(metadata)(例如目录和文件头)与内存管理器结合因为它采用将文件视图映射到系统虚拟空间的方法访问数据高速缓存的一致性,81,82,虚拟块缓存Windows 2000/XP高速缓速管理器用一种虚拟块缓存方式,管理器对缓存中文件的某些部分进行追踪。通过内存管理器的特殊系统高速缓存例程将256-KB大小的文件视图映射到系统虚拟地址空间,高速缓存管理器能够管理文件的这些部分。这种方式有以下几个主要特点:它使智能的文件预读成为可能。它允许I/O系统绕开文件系统访问已经在缓存中的数据(快速I/O)。,83,基于流的缓存可恢复的文件系统支持文件系统写一个日志文件记录,记录将要进行的卷修改操作。文件系统调用高速缓存管理器将日志文件记录刷新到磁盘上。文件系统把卷修改内容写入高速缓存,即修改文件系统在高速缓存的元数据。高速缓存管理器将被更改的元数据刷新到磁盘上,更新卷结构。,84,85,86,高速缓存的大小,缓存区的虚拟大小缓存的物理大小,87,高速缓存的数据结构,在系统高速缓存的每个256 KB的槽由一个VACB描述。每个打开的被缓存文件有一个专用的缓存映射,它包含了用于控制文件预读的信息。每个被缓存的文件有一个单独的共享缓存映射结构,它指向系统缓存中包含此文件映射视图的槽。,88,虚拟地址控制块(VACB),系统高速缓存中数据的虚拟地址指向共享高速缓存映射的指针文件偏移活动计数,89,90,91,92,高速缓存的操作,回写缓存和延迟写写入文件的数据首先被存储在高速缓存页面的内存中,然后再被写入磁盘。因此,写操作允许在短时间内积累,并一次性刷新到磁盘,这可以减少磁盘的I/O次数。屏蔽对文件延迟写在调用Win32 CreateFile函数时指定FILE_ATTRIBUTE_TEMPORARY标志创建一个临时文件,延迟写器就不会将脏页写回磁盘,除非物理内存严重不足或文件关闭。强制写缓存到磁盘刷新被映射的文件,93,智能预读,虚拟地址预读将被访问页面相近的几个页一起读到内存中。内存管理器的这种方法唯一缺点是:必须同步进行带历史信息的异步预读高速缓存管理器在文件的私有缓存映射结构中为正在被访问的文件句柄保存最后两次读请求的历史信息,94,快速I/O(fast I/O)写阻塞,95,访问缓存数据的方法,“拷贝读取”方法在系统空间中的高速缓存数据缓冲区和用户空间中的进程数据缓冲区之间拷贝用户数据;“映射暂留”方法使用虚拟地址直接读写高速缓存的数据缓冲区。“物理内存访问”方法使用物理地址直接读写高速缓存的数据缓冲区。,96,

    注意事项

    本文(王雷北京航空航天大学计算机系.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开