版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章 Windows操作系统6.1 Windows的历史年份MS-DOS基于MS-DOS的Windows基于NT的Windows注 解1981MS-DOS 1.0最初是为IBM PC发布1983MS-DOS 2.0支持PC/XT1984MS-DOS 3.0支持PC/AT1990Windows 3.0多任务系统。保护模式。突破了内存640KB的限制,可在任何方式下使用扩展内存。 1991MS-DOS 5.0增加内存管理1992Windows 3.1增加了多媒体功能。 1993Windows NT 3.132位数据处理;抢占式多任务;内嵌网络支持;支持多线程;支持多CPU计算机;更好的安全性、稳
2、定性、容错性;面向高性能微机、工作站、多处理器服务器、用于管理整个网络。 年份MS-DOS基于MS-DOS的Windows基于NT的Windows注 解1995MS-DOS 7.0Windows 95摆脱了Windows对DOS的依赖,将DOS作为Windows 的局部模块纳入系统。即插即用。抢占式多任务、多线程,全32位OS;同时支持32位、16位应用程序、设备驱动程序向下兼容Windows.及DOS请求分页式虚拟存储系统 1996Windows NT 4.01998Windows 982000MS-DOS 8.0Windows Me(Win Me 不如 Win 98)Windows 200
3、0四种不同用户的版本:Windows 2000 ProfessionalWindows 2000 ServerWindows 2000 Advanced ServerWindows 2000 Datacenter Server 真32位抢占式虚拟内存操作系统;支持多处理器;支持分布式计算、可充当服务器,也可充当工作站向下兼容支持16位程序;内嵌对即插即用设备的支持;集成网络功能,支持多种网络环境年份MS-DOS基于MS-DOS的Windows基于NT的Windows注 解2001Windows XP两个版本:Windows XP Home EditionWindows XP Professio
4、nal 替代了Windows 98该版添加了网络认证、双处理器支持等性能。 2003Windows Server 2003四个版本: Web Edition Standard Edition Enterprise Edition Datacenter Edition 2006Windows Vista将“安全阀”嵌入系统内核用以限制恶意软件对电脑的伤害。半透明视窗、3D切换界面、动态预览、动态搜索栏、虚拟文件夹技术、全新的IE架构等。 2009Windows 76.2 系统结构Windows 和Windows Vista 体系结构(内核:控制处理器的执行。与执行体和用户级的其它部分不同,内核本
5、身的代码并不在线程内执行,因此内核是操作系统中唯一不可抢占或分页的一部分。)Windows 内核态组织结构APC-Asynchronous Procedure Calls, 异步过程调用;LPC-Local Procedure CallDPC-Deferred Procedure Call,推迟了的过程调用;硬件抽象层Windows的目标之一是使得操作系统在不同的硬件平台之间具有可移植性。理想情况下如果需要在一种新型计算机系统中运行该操作系统,仅仅需要在首次运行时使用新机器编译器重新编译操作系统即可。但实际情况并没有那么简单。虽然操作系统各层有大量部件具有很好的可移植性,但有些层就必须处理设备
6、寄存器、中断、DMA以及机器与机器间显著不同的其他硬件特性。HAL的工作就是对这些硬件进行抽象,隐藏处理器版本、支持芯片集和其他配置变更的具体细节,这些抽象展现为NTOS和驱动可用的独立于机器的服务。所有与机器相关的代码都集中在一个地方,移植的目标就很容易确定:即实现所有的HAL服务。例如:一些机器有内存映射I/O,而有的机器有I/O端口。驱动程序是如何编写的呢?是不是使用内存映射I/O?无需强制做出选择,只需要判断哪种方式使驱动程序可独立于机器运行即可。硬件抽象层为驱动程序编写者分别提供了三种读、写设备寄存器的程序:uc=READ_PORT_UCHAR(port); WRITE_PORT_U
7、CHAR(port, uc);us=READ_PORT_USHORT(port); WRITE_PORT_USHORT(port,us);ul=READ_PORT_ULONG(port); WRITE_PORT_ULONG(port,ul);这些程序各自在指定的端口读、写无符号8、16、32位整数,由硬件抽象层决定这是否需要内存映射I/O。这样驱动程序可以在设备寄存器实现方式有差异的机器间使用而不需要修改。2. 内核层在硬件抽象层之上是NTOS,包括两层:内核层和执行体层。内核层提供了一套管理CPU的抽象。最核心的抽象是线程,但内核层也实现了异常处理、陷阱以及各种中断。支持线程的数据结构的创建
8、和终止是在执行体实现的。内核层负责调度和同步线程。内核线程调度程序负责决定哪些线程执行在系统的每一CPU上。线程会一直执行,直到产生了一个定时中断,或是当线程需要等待一些情况,比如等待一个I/O读写完成或一个锁定被释放或者有更高优先级的线程等待运行而需要CPU,这时正在执行的线程会切换到另一线程。当一个线程向另一个线程转换时,调度程序会在CPU上运行,并确保寄存器及其他硬件状态已保存。然后调度程序会选择另一个线程在CPU上运行,并且恢复该线程之前所保存的最后一个的运行状态。3. 执行体执行体是用C语言编写的,在结构上最为独立(内存管理是一个明显的例外),并且经少量的修改已移植到新的处理器上(M
9、IPS、x86、PowerPC 、Alpha、IA64和x64)。执行体包括许多不同的组件,所有的组件都通过内核层提供的抽象控制器来运行。每个组件分为内部和外部的数据结构和接口。内部方法是隐藏的,只有组件自己可以调用。外部方法可由执行体的所有其他组件调用。外部接口的一个子集由一个ntoskrnl.exe提供,而且设备驱动可以链接到它们就好像执行体是一个库。微软称许多执行体组件为“管理器”,因为每一组件管理操作系统的一部分。 I/O管理器:提供了应用程序访问I/O设备的一个框架,还负责为进一步的处理分发合适的设备驱动程序。I/O管理器实现了所有的Windows I/O API,并实施了安全性、设
10、备命名和文件系统(使用对象管理器)。高速缓存管理器:通过使最近访问过的磁盘数据驻留在内存中以供快速访问,以及在更新后的数据发送到磁盘之前,通过在内存中保持一段很短的时间以延迟磁盘写操作,来提高基于文件的I/O性能。对象管理器:创建、管理和删除Windows执行体和用于表示诸如进程、线程和同步对象等资源的抽象数据类型。为对象的保持、命名和安全性设置实施统一的规则。对象管理器还创建对象句柄,对象句柄是由访问控制信息和指向对象的指针组成的。即插即用管理器:决定并加载为支持一个特定的设备所需的驱动。电源管理器:调整各种设备间的电源管理,并且可以把处理器置为休眠状态以达到节电的目的,甚至可以将内存中的内
11、容写入磁盘,然后切断整个系统的电源。安全访问监控程序:强制执行访问确认和审核产生的规则。Windows面向对象模型允许统一一致的安全视图,直到组成执行体的基本实体。因此,windows为所有受保护对象的访问确认和审核检查使用相同的例程,这些受保护对象包括文件、进程、地址空间和I/O设备。虚拟内存管理器:管理虚拟地址、物理地址和磁盘上的页面文件。控制内存管理硬件和相应的数据结构,把进程地址空间中的虚地址映射到计算机内存中的物理页。 进程/线程管理器:创建、管理和删除对象,跟踪进程和线程对象。配置管理器:负责执行和管理系统注册表,系统注册表是保存系统和每个用户参数设置的数据仓库。本地过程调用(Lo
12、cal Procedure Call, LPC)机制:为本地进程实现服务和子系统间的通信而实现的一套高效的跨进程的过程调用机制。类似于分布处理中远程过程调用(Remote Procedure Call, RPC)的方式。4. 用户态进程Windows支持4种基本的用户进程类型:特殊系统进程:需进行管理系统的用户态服务,如会话管理程序、认证子系统、服务管理程序和登录进程等。服务进程:打印机后台管理程序、事件记录器、与设备驱动协作的用户态构件、不同的网络服务程序以及许多这样的程序。微软和外部的软件开发者都要使用它们来扩展系统的功能,因为这些服务是在Windows系统中后台运行用户态活动的唯一方法。
13、环境子系统:提供不同的操作系统的个性化设置(环境)。支持的子系统有Win32/WinFx和POSIX。每个环境子系统包括一个在所有子系统应用程序中都会共享的子系统进程和把用户应用程序调用转换成本地过程调用和/或原生Windows调用的动态链接库。用户应用程序:可执行程序和动态链接库向用户提供使用系统的功能。EXE和DLL一般是针对特定的环境子系统,尽管这其中有一些作为操作系统组成部分的程序使用了原生系统的接口(NTAPI)。同样也支持Windows3.1或MS-DOS写的16位程序。6.3 Windows NT中的进程和线程Windows NT中的进程进程被定义为“一个程序的动态调用”,它由以
14、下四部分组成: 一个可执的程序,它定义了初始代码和数据。 一个私用地址空间,即进程的虚拟地址空间。 系统资源,例如信号量、通信端口、文件等。它们是在程序执行时由操作系统分配给它的。 至少有一个执行线程。Windows NT把进程视为一个对象类。进程对象是由NT执行体中的对象管理程序创建和删除。2. Windows NT中的线程线程和进程一样也用对象来实现。线程由对象管理程序创建或删除。一个线程的基本组成是: 一个惟一的标识符,称之为客户ID。 描述处理机状态的一组寄存器内容。 两个栈,分别用于用户态和核心态下执行。 一个私用的存储区。3. Windows NT中的线程调度Windows NT的
15、内核永久驻留内存,内核的执行是不可抢占的,并且总运行在核心态。Windows NT的内核采用微内核技术,提供的操作系统原语和机制,可使执行体构造出更高级的操作系统功能。内核决定了操作系统如何使用处理机,整个操作系统的成功将依赖于内核的正确、有效地操作。典型的描述表切换要求保存原运行线程的现场并装入新运行线程的现场,这些现场是指: 程序计数器(PC) 处理机状态寄存器(PSW) 其它寄存器内容 用户栈和核心栈指针 线程运行的地址空间的指针(进程页表目录) 线程的六种状态 就绪状态: 已具备执行条件以等待CPU的执行,线程调度程序只从就绪线程池中选择线程进入备用状态。 备用状态: 系统中每个处理机
16、上只能有一个线程处于备用状态。处于备用状态的线程已被选定为某一特定处理机的一个执行对象。当条件合适时调度程度为该线程进行描述表切换。 运行状态: 一旦调度程序执行完描述表切换,该线程便进入了运行状态。 等待状态: 以下情况可使线程进入等待状态线程等待某一对象(事件)以便同步它的执行;因I/O系统而等待;环境子系统导致线程自已阻塞。 当线程的等待结束,就回到就绪状态。 转化状态: 如果线程已准备好执行,但由于资源不可用(如核心栈所在页面被换出主存),从而成为转化状态。当资源为可用时,线程便由转化状态进入就绪状态。 终止状态: 线程完成了它的执行。Windows NT内核的线程调度程序采用的调度算
17、法是可抢占的动态优先级调度算法,即按线程的优先级进行调度,高优先级的线程先被调度。线程在执行过程中优先级可以动态改变,调度程度调度时所依据的主要数据结构就是多优先级就绪队列。线程的调度状态及转换见下图:线程的调度状态及其转换6.4 Windows NT虚拟内存管理6.4.1 进程的虚拟地址空间Windows NT的虚拟存储管理程序是NT执行体的重要组成部分之一,它是Windows NT的基本存储管理系统。Windows NT运行在32位的386以上的微机上,每个进程都有4GB的虚拟地址空间,采用请求分页的虚拟存储管理方案,其地址空间的分布如图所示。 虚拟地址空间的4GB被分成两部分。高地址的2
18、GB保留给系统使用,低地址的2GB是用户存储区,该区域可被用户态和核心态的线程访问。 系统区又分三部分。固定页面区(0.5GB),称为非页变换区,用于存放永不换出内存的页面。在这些页面中存放系统中需常驻内存的代码,如实现页面调度的代码等。页交换区(0.5GB),用于存放非常驻内存的系统代码和数据。直接映射区(1GB)的寻址是由硬件直接变换的,而且这些页面常驻内存永不失效。存取该区域的数据特别快,所以该区存放内核中需频繁使用、要求响应速度快的代码,如调度线程执行的代码。32位X86体系结构的Windows的虚拟地址布局地址范围大小功能0 x000000000 x7FFFFFFF2GB进程的私有地
19、址空间(最低64KB空间无效)0 x800000000 x9FFFFFFF512MB系统内核(NTLDR,HAL)和引导驱动0 xA00000000 xA2FFFFFF48MB系统映射视图或会话空间0 xA30000000 xA3FFFFFF16MB终端服务的系统映射视图0 xA40000000 xBFFFFFFF448MB附加系统页表入口或附加系统高速缓存0 xC00000000 xC03FFFFF4MB进程页表0 xC04000000 xC07FFFFF4MB工作集链表0 xC08000000 xC0BFFFFF4MB未使用0 xC0C000000 xC0FFFFFF4MB系统工作集链表0
20、 xC10000000 xE0FFFFFF512MB系统高速缓存0 xE10000000 xEAFFFFFF160MB分页缓冲池0 xEB0000000 xFFBDFFFF332MB系统页表入口和非分页缓冲池0 xFFBE00000 xFFFFFFFF4MB故障处理和硬件抽象层结构(最高64KB空间无效) 用户态进程的虚拟地址大小为2GB(在服务器系统中可配置成3GB)。另外的2GB(或1GB)空间为内核进程所有。6.4.2 虚拟存储的实现虚拟存储管理的实现包括两个方面:地址变换机构和页面调度策略。(X86家族的虚拟地址由两个成员指定:选择器和偏移量。选择器是一个16位值,它用作一个存储器段的
21、一个虚拟名称。偏移量是距段开始处的距离,它是32位值,例如: 01A9:0001FF00 。 线性地址=段基地址+偏移量, 虚拟地址 线性地址物理地址)地址变换机构Windows NT的地址变换机构采用一种称为两级页表结构的技术。二级页表地址变换结构地址变换过程举例两级页表法大大节省了主存的开销,其缺点是降低了访问主存的速度。因为每进行一次地址变换要有三次访问主存:查页目录访问一次,查页表访问一次,到主存中存取目标数据又访问一次。但实际上Windows NT的访问主存速度并不慢,主要是采取了如下两个措施:1.使用快表TLB(Translation Lookaside Buffer变换查找缓冲区
22、)加快了查表速度。2.使用高速缓冲存储器Cache,在处理机和主存间设置了32KB或64KB的高速缓存,大部分的数据和指令取自高速缓存,所以速度很快。31 12 11 9 8 7 6 5 4 3 2 1 0 物理页号AVL GPAT D APCDPWTU/ SR/WP页表项结构:P: =1 页在存储器中; =0 不在 R/W: = 该页是否可写U/S: =1 用户页; =0 管理程序页 PWT(页面写): PWT1时,片外cache采用通写方式; PWT0时,片外cache采用回写方式。 PCD(禁用页超高速缓存器):若PCD1,内部cache被禁止使用 A(访问):该页是否已被读过。 D(脏
23、):该页是否被修改过PAT(页属性表):该页是否为大页(4MB)G(全局页):该页是否适用所有进程AVL:留给系统程序员使用 页目录项和页表项有相同的格式,不同之处是D位不使用,当某页表由使用的页目录指向时对A位置1。2. 页面调度 页面调度策略包括取页、置页和淘汰策略。 Windows NT的取页策略:按进程需要的“请求取页”,提前取页。方法是在请求分页存储管理中普遍采用的方法。方法是Windows NT所独有的,采取集群方法把一些页面提前装入主存,其做法是当一个线程在发生缺页时,不仅把它需要的那一页装入主存,而且还把该页附近的一些页也一起装入。这样做的主要依据是程序行为的局部性。采取提前装
24、入取页会减少缺页次数,尤其是在一个线程开始执行时,请求取页会造成频繁缺页降低系统的性能。 置换(淘汰)策略是为每个进程分配一个固定数量的页面(但可动态调整这个数量),当发生缺页中断时,从本进程的范围内进行替换。 页面数量用每个进程的工作集来确定,并且根据主存的负荷和进程的缺页情况动态调整其工作集。进程在创建时指定了一个最小工作集,该工作集大小保证进程运行时应在主存中的页面数量。3. 页帧号和物理内存管理 工作集是驻留在物理内存中的虚拟页的集合,工作集分为进程工作集和系统工作集。进程工作集用来描述一个进程中的所有线程引用的驻留在内存中的页面,系统工作集表示系统空间中可被分页的系统代码和数据驻留在
25、物理内存中的部分。 页帧号数据库描述了每一个物理内存页的状态,所有在工作集中的页面都标上了“激活”状态。为了让内存管理器快速地查找到同一状态的物理页,页帧号数据库将相同状态的物理页通过链表的形式连接在一起。物理页的状态及其说明:状态说 明激活该页属于某一工作集,或者属于系统的常驻内存页。过渡这是一个临时状态标志,表明它既不属于一个工作集也不在分页列表上,而表明该页正在被处理的过程中。挂起该页被从一个工作集中移出了,对它的修改已经写入到了磁盘,页表入口还是指向了该物理,但对访问设置了挂起标志。已修改该页被从一个工作集中移出了,但对它的修改还没有被写入到了磁盘,页表入口还是指向了该物理页,完成写入
26、磁盘后才可以投入使用。空闲该页没有任何被修改的数据,但还没有被清零,出于安全性的考虑还不能被用户进程使用。已清零该页已经被清零,能被用户进程使用。只读该页位于只读内存。坏页该页物理损坏,不能被使用。6.5 Windows 的文件系统6.5.1 Windows磁盘管理 Windows将磁盘分成固定大小的“扇区”,扇区的大小取决于不同的存储设备。大部分的硬盘扇区大小为512字节,CD-ROM的扇区大小一般为2048个字节。 相邻的扇区集合组成“分区”,Windows通过分区表来存储每个分区的开始扇区、大小和其他相关的特性。Windows通过“卷”来抽象一个或几个分区,它是文件系统操作磁盘的逻辑单元
27、。 文件系统是构建在磁盘管理之上的。系统通过分区管理器和卷管理器与磁盘设备进行交互,为文件系统提供一个以卷为单位的逻辑视图。文件系统在卷管理器的基础之上构建文件系统的格式,并为I/O管理器提供操作文件的接口。6.5.2 Windows 文件系统格式 Windows支持多种文件系统格式。 1. CDFS和UDF CDFS(CD-ROM文件系统)是一个支持CD-ROM文件的只读文件系统,最大支持的文件大小为4GB,最多支持65535个目录。UDF(通用磁盘格式文件系统)主要提供了对DVD文件的支持。 2. FAT FAT(文件分配表文件系统)是一个简单的文件系统,它最初是为DOS操作系统设计的。它
28、适用于小容量的磁盘,文件目录也比较简单。为了向后兼容,Windows NT体系结构的操作系统仍然支持FAT文件系统。 文件分配表位于卷的开头。为了防止文件系统遭到破坏,FAT文件系统保存了两个文件分配表,当其中一个遭到破坏时,另外一个可以作为备份。而且文件分配表和根目录必须放在磁盘的一个固定的位置,这样系统在启动时才可以找到需要的文件。 以FAT文件系统格式化的卷以簇为单位进行分配,FAT有三个不同的版本:FAT12、FAT16和FAT32,FAT后面的数字代表用来表示簇号的位数。 3. NTFS NTFS(NT文件系统)是基于Windows NT体系结构的Windows操作系统的主流文件系统
29、,NTFS的每个卷可以支持232 1个文件,一个文件最大可达到16TB。NTFS具有许多优秀的性能,如文件和目录的安全机制、磁盘配额、文件压缩以及加密等,而当系统不正常中止后,文件系统可以自动恢复目录和文件的结构信息。6.5.3 Windows 文件系统驱动 Windows通过文件系统驱动来管理不同格式的文件系统,它运行在核心态。作为设备管理的一部分,文件系统驱动程序需要在I/O管理器中注册。为了提高文件操作的效率,文件系统驱动程序和内存管理器交互得非常密切。为了提高吞吐量,它还和高速缓存管理器直接交互。 文件系统驱动程序在I/O管理器中注册后,I/O管理器可以通过它来识别卷。每一个Windo
30、ws文件系统的第一个扇区都被预留为卷的根扇区,文件系统驱动程序可以找到相应文件系统所需的数据信息。 当文件系统驱动识别了一个卷后,它会创建一个设备对象来表示文件系统。相应的存储设备管理器也创建一个设备对象来表示具体的存储设备。通过这两个设备对象,I/O管理器将传递到卷设备管理器的I/O请求转发到存储管理器的设备对象。 应用可以通过两种方式来访问文件,一种是直接通过文件访问函数进行文件操作,如ReadFile和WriteFile等,它通过磁盘驱动的I/O处理来操作磁盘。另外一种是通过读写映射文件的地址空间来完成文件操作,并通过映射文件来操作磁盘。6.6.1 NTFS 的特点 (1) 可恢复性 N
31、TFS利用事务来实现文件系统的可恢复,操作系统将一系列对文件系统结构修改的操作组成事务。事务不间断地执行完后可以保证文件系统的一致性,如果事务在没有执行完之前被中断,已执行的操作必须进行回退,以保证文件系统结构恢复到事务操作之前。 (2) 安全性 NTFS的安全性通过Windows的对象模型来实现的。每一个打开的文件都由一个文件对象来表示,文件对象的安全描述作为文件的一部分存储在磁盘上。在一个进程打开一个文件对象的句柄时,Windows的安全系统服务会验证该进程是否有访问该对象的授权。 (3) 冗余与容错 数据的可恢复性可以保证文件系统在磁盘上能够访问,但不能保证恢复所有的用户文件。NTFS通
32、过冗余来保护关键的文件系统信息,当存储该信息的磁盘扇区损坏时,系统可以利用冗余扇区来恢复文件数据。 (4) 动态坏簇重映像 当系统试图读一个被损坏的扇区时,Windows容错驱动程序会自动搜索到备份扇区。同时,NTFS会重新分配一个扇区作为该扇区新的备份。6.6 NTFS文件系统 (5) 基于统一字符编码(UNICODE)的命名机制 NTFS用统一字符编码来存储文件名、目录名和卷名,16位的字符编码可以让不同国家的用户用自已的语言来命名,使得windows的国际化版本很容易实现。 (6) 文件压缩 NTFS支持压缩功能,并透明地管理压缩和解压的过程。用户还可以选择将一个目录压缩,系统会将该目录
33、下的所有文件压缩。 (7) 加密 NTFS的安全性并不能保护计算机丢失或文件被泄露后的数据私密性,NTFS通过加密文件系统来实现敏感数据的加密保护。6.6.2 NTFS的磁盘结构 1. 卷 系统格式化磁盘时,首先将磁盘分割成一个或多个卷。卷代表着磁盘的一个逻辑分区,每一个卷包含一系列的文件和可被利用的磁盘空间。 2. 簇 簇是在一个卷上的固定大小的磁盘空间,簇的大小在系统格式化时就确定了。簇的大小和卷的大小相关,它一般是物理扇区大小的偶数倍。NTFS基于簇而不是扇区来操作,是为了使文件系统独立于不同大小的物理扇区。NTFS可以通过设置较大的簇空间来支持大容量的磁盘,或通过簇大小的调整来支持非标
34、准物理扇区的磁盘。 为了定位相关的簇在磁盘上的物理位置,NTFS引入了逻辑簇号。逻辑簇数表示从卷开始到结束的顺序编号,将相应的逻辑簇数乘以簇的大小就得到了该逻辑簇号在物理盘上的位置。NTFS通过虚拟簇号来定位一个文件中数据的位置,虚拟簇号将文件从开始到结尾顺序编号。每个虚拟簇号都映射到一个逻辑号,因此连续的虚拟簇号在物理上不一定是连续存放的。 3. 文件NTFS的一个特点就是存储在卷上的所有数据都保存在文件中,包括用于定位和查找文件的文件系统的结构数据。当磁盘的一部分损坏后,NTFS可以重定位这些文件,使得磁盘可以继续使用。NTFS中包含目录在内的文件名的长度可达255个字节,全路径名最多有3
35、2767个字符,可以包含Unicode字符、空格和句点。主控文件表是NTFS卷结构的核心,它由一组文件记录构成。不管簇的大小如何,每个文件记录的大小固定为1KB,每一个文件在主控文件表上都有一个文件记录与之对应。除了数据文件之外,NTFS卷还包含了用来实现文件系统的结构文件,主控文件表本身也是以文件的形式存在的。为了区别于用户文件,这些系统结构文件用$标志符作为文件名的首字符,如主控文件表的文件名为:$MFT。MFT本身就是一个文件,可以被放在卷中的任何位置。在挂载(mount)该卷时,NTFS查询引导扇区以找到MFT的物理磁盘地址。每个文件通过一个文件记录来描述,文件记录用不同的属性来描述文
36、件的文件名、时间信息和其他文件说明信息,文件数据也可以看作是文件记录的一个属性。当文件的所有属性(包括数据属性)占用的空间小于1KB的文件记录时,所有的数据可以直接存储在文件记录中。当文件的大小会超过1KB时,NTFS会分配额外的盘区来存储文件的数据,并通过文件记录的数据属性指向额外分配的盘区。NTFS主文件表属 性描 述标准信息标志位,时间戳等文件名Unicode文件名安全描述符废弃了。现在用$Extend $Secure表示属性列表额外的MFT记录位置,如果需要对象ID对此卷唯一的64B文件标识符重解析点用于加载和符号链接卷名当前卷的名字(仅用于$Volume)卷信息卷版本(仅用于$Vol
37、ume)索引根用于目录索引分配用于很大的目录位图用于很大的目录日志工具流控制记录日志到$LogFile数据数据流:可以重复MFT记录中使用的属性有3个连续空间、9个块的短流的一条MFT记录 每个MFT记录由一个记录头和后面跟着的(属性头,值)对组成。记录头包含一个幻数用于有效性检查,一个序列号(每次当记录被一个新文件再使用时就被更新),文件引用记数,记录实际使用的字节数,基本记录(仅用于扩展记录)的标识符(索引,序列号),和其他一些杂项。 每个记录始于一个头,这个头给出第一个块在流中偏移量。接着是没有被记录覆盖的第一个块的偏移量。每个记录的头后面跟着一个或多个对,每个对给出了磁盘地址和持续长度
38、。磁盘地址是该磁盘块离本分区起点的偏移量;持续长度给出顺串块的数量。在一段串记录中需要有多少对就可以有多少对。有多少对串块依赖于当流被创建时磁盘块分配器在找连续块的串时做的有多好。对于一个n块的流,段数可能是从1到n的任意值。需要三个MFT记录存储其所有顺串的文件 4. 目录 在NTFS文件系统中,文件目录的结构为该目录所有文件名的索引记录,它也存放在主控文件表中。在创建一个目录时,NTFS会根据该目录下的文件的名称属性建立索引。 一个目录的主控文件记录将其目录中的文件名和子目录名进行排序,并保存在索引根属性中。对于一个大的目录,系统用一个固定为4KB大小的索引缓冲区来存储不能放在索引记录中的
39、文件名。NTFS用B+树来实现管理索引,用B+树来存储文件名有很多好处,由于文件名是排序后存放的,所以目录查找起来非常快。而且,B+树趋向于横向增长,因此当文件目录不断加深时,NTFS的查找效率不会降低。Windows 的根目录存储结构示例小目录的MFT记录6.7 Windows NT的I/O系统 Windows I/O系统为应用程序和操作系统服务提供了一个操作设备的抽象层,它由若干个运行在核心态的系统服务组成。Windows I/O系统的设计目标是: 为所有的设备提供统一的安全和命名机制,以方便这些资源共享; 提供基于包交换的高效异步I/O请求处理机制以提高应用与设备交互的效率。 为使用高级
40、语言编写设备驱动提供支持以便在不同体系结构的计算机之间移植驱动程序; 支持可扩展的分层驱动程序结构,以方便对设备管理功能的扩充和修改; 支持驱动程序的动态加载和卸载,以最大程度地节省系统资源; 提供即插即用的功能,使得系统能够自动侦测新的硬件设备,并自动分配必要的系统资源; 提供电源管理功能,使得系统和相关的设备在不使用时可进入低功耗状态; 支持多个可安装的文件系统,包括文件分配表文件系统(FAT),CD-ROM文件系统(CDFS),通用磁盘格式文件系统(UDF)和NT文件系统(NTFS)。6.7.1 I/O系统的结构 1. I/O系统概貌 NT执行体的I/O系统接收用户态和核心态进程的I/O请求,以不同的方式传送到I/O设备。I/O系统由一组负责处理各种设备的输入/输出部件构成。这些部件有: I/O管理程序 文件系统 缓冲存储管理器(Cache Manager) 设备驱动程序(Device Driver) 网络重定位(Network Redirector) 和网络服务程序(Network Server) I/O系统概貌 2. I/O管理程序 I/O管理程序建立了NT执行体的I/O模型,它实现与设备无关的输入/输出。它的主要工作是建立一个代表I/O操作的I/O请求包I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度商业信用贷款反担保合同3篇
- 二零二五年度古玩艺术品非转让租赁协议3篇
- 2024年简易首付购房合同一
- 2024版信息技术采购合同3篇
- 2025版工厂租赁合同样本:涵盖设备维护及更新条款3篇
- 2024版讲师合作协议合同
- 二零二五年度二手房买卖合同:附属设施设备移交范本3篇
- 2025版特色酒吧经营场所租赁合同示范文本
- 2024智能交通管理系统开发与实施合同
- 2024年绿色建筑产业投资合作协议3篇
- 2024至2030年四氯苯醌项目投资价值分析报告
- 北京市海淀区2024-2025学年七年级上学期期中考试英语试卷(含答案)
- 中资企业出海报告:潮涌浪阔四海扬帆
- 房地产销售主管岗位招聘笔试题及解答(某大型央企)2024年
- 岩溶区水文地质参数研究-洞察分析
- 2024-2025学年人教版八年级上册地理期末测试卷(二)(含答案)
- 80、沈阳桃仙机场二平滑工程冬期施工方案
- 《STM32Cube嵌入式系统应用》HAL库版本习题及答案
- 一年级数学练习题-20以内加减法口算题(4000道)直接打印版
- 2024年度无人机飞行培训合同
- 2025年中国细胞与基因治疗行业深度分析、投资前景、趋势预测报告(智研咨询)
评论
0/150
提交评论