1、2022年8月3日星期三第第7 7章章 操作系统实例一操作系统实例一:Windows XP:Windows XP2022年8月3日星期三7.1 Windows XP的处理机管理的处理机管理7.2 Windows XP的存储管理的存储管理7.3 Windows XP的文件管理的文件管理7.4 Windows XP的设备管理的设备管理2022年8月3日星期三熟练掌握:熟练掌握:Windows XPWindows XP线程调度方式,线程调度方式,Windows XP Windows XP 的地址的地址转换过程,转换过程,Windows XPWindows XP内存中的页面调度,内存中的页面调度,Wi
2、ndows Windows XPXP的文件系统,的文件系统,NTFSNTFS的概念和作用,的概念和作用,Windows XPWindows XP设备设备管理的层次。管理的层次。掌握:掌握:Windows XPWindows XP地址的空间布局,地址的空间布局,NTFSNTFS文件和目录的结文件和目录的结构,构,Windows XPWindows XP单层驱动程序的单层驱动程序的I/OI/O处理。处理。了解:了解:Windows XPWindows XP的体系结构,的体系结构,NTFSNTFS对可恢复性的支对可恢复性的支持,持,WindowsWindows XP XP两级中断处理过程。两级中断处
3、理过程。2022年8月3日星期三 Windows Windows是微机操作系统新潮流的一个重要例子。这些操作是微机操作系统新潮流的一个重要例子。这些操作系统的最重要的特征之一就是它们是多任务操作系统。系统的最重要的特征之一就是它们是多任务操作系统。Windows Windows并不是纯粹的微内核结构,但微软将其称为改进的并不是纯粹的微内核结构,但微软将其称为改进的微内核结构。和纯粹的微内核结构一样,微内核结构。和纯粹的微内核结构一样,WindowsWindows是高度模块化是高度模块化的。每个系统函数都正好由一个操作系统部件管理,操作系统的。每个系统函数都正好由一个操作系统部件管理,操作系统的
4、其余部分和所有应用程序通过相应的部件使用标准接口访问的其余部分和所有应用程序通过相应的部件使用标准接口访问这个函数。这个函数。2022年8月3日星期三 分层结构分层结构,指的是把操作系统的所有功能模块按照调用的次,指的是把操作系统的所有功能模块按照调用的次序分别划分为若干层,各层之间的模块只能单向依赖或单向调用。序分别划分为若干层,各层之间的模块只能单向依赖或单向调用。Windows XP Windows XP采用的最主要的体系结构是客户采用的最主要的体系结构是客户/服务器结构,服务器结构,采用这种结构的操作系统将非常适于应用在网络环境下。该结构采用这种结构的操作系统将非常适于应用在网络环境下
5、。该结构的内核只提供了操作系统最基本的功能,如基本调度操作和中断的内核只提供了操作系统最基本的功能,如基本调度操作和中断处理等。客户处理等。客户/服务器结构的优点是可靠、灵活以及适用于网络服务器结构的优点是可靠、灵活以及适用于网络计算机环境,但也存在工作效率不高的缺陷。计算机环境,但也存在工作效率不高的缺陷。7.1.1 Windows XP7.1.1 Windows XP的体系结构的体系结构7.1 Windows XP7.1 Windows XP的处理机管理的处理机管理2022年8月3日星期三 Windows XP Windows XP通过硬件机制实现了核心态以及用户态,并为通过硬件机制实现了
6、核心态以及用户态,并为前者赋予了很高的特权,允许处于核心态的程序调用特权指令来前者赋予了很高的特权,允许处于核心态的程序调用特权指令来封杀任何用户态的程序,而用户态的程序只能调用常规的指令。封杀任何用户态的程序,而用户态的程序只能调用常规的指令。一般来说,只有那些至关重要的、对性能影响很大的代码和组件一般来说,只有那些至关重要的、对性能影响很大的代码和组件才运行在核心态。才运行在核心态。如下图所如下图所示的就是以核心态和用户态为划分原则的示的就是以核心态和用户态为划分原则的Windows Windows XPXP体系结构示意图。体系结构示意图。2022年8月3日星期三Windows XPWin
7、dows XP操作系统的体系结构操作系统的体系结构2022年8月3日星期三system support processuser applicationservice processenvironment subsystem原则原则Window XPWindow XP支持支持4 4种基本的用户模式进程类别种基本的用户模式进程类别2022年8月3日星期三1.Windows XP1.Windows XP的进程的进程1 1)Windows XPWindows XP进程的组成进程的组成Windows XPWindows XP进程包括以下内容:进程包括以下内容:(1 1)一个可执行程序。)一个可执行程序。
8、(2 2)一个由该进程专用的地址空间,它是该进程可以使用的虚拟内)一个由该进程专用的地址空间,它是该进程可以使用的虚拟内存地址的集合。存地址的集合。(3 3)系统资源,如信号量、通信端口、文件等。它们由程序执行,)系统资源,如信号量、通信端口、文件等。它们由程序执行,由操作系统分配给该进程。由操作系统分配给该进程。(4 4)一个或多个线程。)一个或多个线程。7.1.2 Window XP7.1.2 Window XP的进程和线程的进程和线程2022年8月3日星期三 2 2)Windows XPWindows XP进程间的关系进程间的关系 为了支持为了支持Win32Win32、OS/2OS/2、
9、POSIXPOSIX等多种环境子系统,等多种环境子系统,Windows Windows XPXP核心进程之间没有任何关系,各环境子系统分别建立、维护和核心进程之间没有任何关系,各环境子系统分别建立、维护和表达各自的进程关系。如图表达各自的进程关系。如图7 72 2所示,所示,Windows XPWindows XP把把Win32Win32环境环境子系统设计成整个系统的子系统,一些基本的进程管理功能被放子系统设计成整个系统的子系统,一些基本的进程管理功能被放置在置在Win32Win32子系统中,子系统中,POSIXPOSIX和和OS/2OS/2等其他子系统则调用等其他子系统则调用Win32Win
10、32子子系统的功能实现其自身功能。系统的功能实现其自身功能。2022年8月3日星期三资源管理器窗口资源管理器窗口2022年8月3日星期三一个唯一的标志符,称为一个唯一的标志符,称为客户客户ID(client ID)。)。两个栈,一个是用户栈,在两个栈,一个是用户栈,在用户态下执行;另一个是核用户态下执行;另一个是核心栈,在核心态下执行。心栈,在核心态下执行。表示表示CPU状态的一组易变状态的一组易变寄存器的内容。寄存器的内容。一个由该线程专用的存储区一个由该线程专用的存储区域,供保护子系统、动态链域,供保护子系统、动态链接库等使用。接库等使用。组成组成2.Windows XP2.Windows
11、 XP的线程的线程1 1)Windows XPWindows XP线程的组成线程的组成2022年8月3日星期三状态状态就绪状态:就绪状态:线程已获得所需的资线程已获得所需的资源,等处理机调度。源,等处理机调度。终止状态:终止状态:线程执行完后进线程执行完后进入终止状态。入终止状态。备用状态:备用状态:已选择好线已选择好线程的执行处理机,正等程的执行处理机,正等待进入运行状态。待进入运行状态。运行状态:运行状态:已完成描述表已完成描述表的切换,线程开始执行,的切换,线程开始执行,执行过程一直持续到被其执行过程一直持续到被其他线程抢占处理机、时间他线程抢占处理机、时间片完、被阻塞或终止。片完、被阻
12、塞或终止。过渡状态:过渡状态:与就绪状与就绪状态类似,但此时线程的态类似,但此时线程的内核堆栈位于外存。内核堆栈位于外存。等待状态:等待状态:当线程被一当线程被一个事件阻塞,自愿等待个事件阻塞,自愿等待或一个环境子系统指引或一个环境子系统指引它把自身挂起时进入等它把自身挂起时进入等待状态。待状态。2 2)Windows XPWindows XP线程的状态及状态转换线程的状态及状态转换2022年8月3日星期三Windows XPWindows XP线程的状态及各状态间的转换线程的状态及各状态间的转换2022年8月3日星期三7.1.3 Window XP7.1.3 Window XP的的线程调度线
13、程调度实时优先级实时优先级主要适用于核主要适用于核心态的系统进程心态的系统进程普通优先级普通优先级是用户进程创是用户进程创建时被默认赋予的优先级。建时被默认赋予的优先级。高优先级高优先级是为一些必须及是为一些必须及时得到响应的进程设置的。时得到响应的进程设置的。空闲优先级空闲优先级是专为系统空是专为系统空闲时运行的进程设置的。闲时运行的进程设置的。优先级优先级1.Windows XP1.Windows XP进程的优先级进程的优先级2022年8月3日星期三 2.Windows XP2.Windows XP线程的优先级线程的优先级 在在Windows XPWindows XP里,一旦线程被创建,它
14、就取所属进程的优先级。里,一旦线程被创建,它就取所属进程的优先级。Windows XPWindows XP线程的优先级,可以取线程的优先级,可以取0 03131的值,它们被分成的值,它们被分成3 3个部分:个部分:(1 1)1616个实时线程优先级(个实时线程优先级(16163131)。)。(2 2)1515个可变线程优先级(个可变线程优先级(1 11515)。)。(3 3)1 1个系统线程优先级(个系统线程优先级(0 0)。)。2022年8月3日星期三 3.3.线程调度的管理线程调度的管理 Windows XP Windows XP用一张线程调度器就绪队列表、一个就绪位图、一用一张线程调度器
15、就绪队列表、一个就绪位图、一个空闲位图来管理有关线程的调度,如个空闲位图来管理有关线程的调度,如图所图所示。示。(1 1)线程调度器就绪队列表。该表共有)线程调度器就绪队列表。该表共有 32 32 个表项,每个表项个表项,每个表项按照线程的优先级,维持着一个具有该优先级的线程就绪队列。按照线程的优先级,维持着一个具有该优先级的线程就绪队列。(2 2)就绪位图。就绪位图由)就绪位图。就绪位图由3232个二进制位组成。个二进制位组成。Windows XPWindows XP用用其中每位的取值,记录相应调度优先级就绪队列里是否有等待运行的其中每位的取值,记录相应调度优先级就绪队列里是否有等待运行的线
16、程存在。线程存在。(3 3)空闲位图。空闲位图由)空闲位图。空闲位图由3232个二进制位组成。个二进制位组成。Windows XPWindows XP用用其中的每位的取值,指示相应处理机是否处于空闲状态。其中的每位的取值,指示相应处理机是否处于空闲状态。2022年8月3日星期三Windows XPWindows XP线程调度的管理线程调度的管理2022年8月3日星期三 Windows XP Windows XP的用户内存被用户态和核心态线程存取,并且对每的用户内存被用户态和核心态线程存取,并且对每个进程都是唯一的,而系统内存只能被核心态线程存取,并且对每个个进程都是唯一的,而系统内存只能被核心
17、态线程存取,并且对每个进程都是相同的。进程都是相同的。系统系统区按速度要求不同又分为区按速度要求不同又分为3 3部分,从快到慢依次为直接映射部分,从快到慢依次为直接映射区,非页交换区和页交换区。区,非页交换区和页交换区。系统系统区低端的直接映射区有区低端的直接映射区有3 3个特性:个特性:(1 1)该区中的内容永远不会按页交换出内容。)该区中的内容永远不会按页交换出内容。(2 2)该区由硬件直接映射。)该区由硬件直接映射。(3 3)该区用于存放代码和数据库中需要最好的性能的部分。)该区用于存放代码和数据库中需要最好的性能的部分。7.2.1 Windows XP7.2.1 Windows XP地
18、址的空间布局地址的空间布局7.2 Windows XP7.2 Windows XP的存储管理的存储管理2022年8月3日星期三Windows XPWindows XP进程虚拟空间的分配进程虚拟空间的分配2022年8月3日星期三 Windows XPWindows XP的进程页表采用二级页表机制实现虚拟地址向物的进程页表采用二级页表机制实现虚拟地址向物理地址的转换,并采用快表高速转换后援缓冲器(理地址的转换,并采用快表高速转换后援缓冲器(TLBTLB)和高速)和高速缓存加快访问速度。一个缓存加快访问速度。一个3232位虚拟地址被解释为位虚拟地址被解释为3 3个独立的分量:个独立的分量:页目录索引
19、、页表索引和字节索引(它们用于找出描述页面映射页目录索引、页表索引和字节索引(它们用于找出描述页面映射结构的索引)。结构的索引)。7.2.2 Windows XP7.2.2 Windows XP的地址转换机构的地址转换机构2022年8月3日星期三l页页目录索引用于指出虚拟地址的页目录在页表中的位置;目录索引用于指出虚拟地址的页目录在页表中的位置;l页表索引则用来确定页表项在页表中的具体位置,页表项包含了虚页表索引则用来确定页表项在页表中的具体位置,页表项包含了虚拟地址被映射的物理地址;拟地址被映射的物理地址;l字节索引用于在物理页中寻找某个具体的地址。字节索引用于在物理页中寻找某个具体的地址。
20、l在在x86x86系统中,因为一页为系统中,因为一页为4 KB4 KB,那么字节索引可以用,那么字节索引可以用1212位位表示。表示。x86x86系统中系统中3232位虚拟地址的构成位虚拟地址的构成2022年8月3日星期三 Windows XP Windows XP系统中地址转换的过程如下:系统中地址转换的过程如下:首先首先由内存管理的硬件设备定位当前进程的页目录,由页目由内存管理的硬件设备定位当前进程的页目录,由页目录索引在页目录中指出页目录的位置,其中页目录包含的页框号录索引在页目录中指出页目录的位置,其中页目录包含的页框号(page frame numberpage frame numb
21、er,PFNPFN)描述了虚拟地址所需的页表的位置;)描述了虚拟地址所需的页表的位置;然后然后再在页表索引中找到页表项的位置,而页表项正是用于再在页表索引中找到页表项的位置,而页表项正是用于确定页框的位置,当页表项指向了有效的页时,字节索引找到物确定页框的位置,当页表项指向了有效的页时,字节索引找到物理页内所需数据的理页内所需数据的地址。地址。2022年8月3日星期三虚拟地址的转换过程虚拟地址的转换过程2022年8月3日星期三7.2.3 Windows XP7.2.3 Windows XP对内存的管理对内存的管理在在Windows XPWindows XP中,物理页在任意指定时刻可能处于以下中
22、,物理页在任意指定时刻可能处于以下6 6种状态之一。种状态之一。状态状态有效:有效:该物理页正在被某个进程使用。该物理页正在被某个进程使用。坏页:坏页:该物理页产生了奇偶校验错该物理页产生了奇偶校验错误或其他硬件错误,不能被使用。误或其他硬件错误,不能被使用。零初始化:零初始化:该物理页处于空闲该物理页处于空闲状态,并已被初始化。状态,并已被初始化。空闲:空闲:该物理页空闲,但没有该物理页空闲,但没有被初始化。被初始化。更改:更改:这个状态只有一点这个状态只有一点与备用状态不同,处于该与备用状态不同,处于该状态的物理页已被使用它状态的物理页已被使用它的进程修改过。的进程修改过。备用:备用:该物
23、理页被一个进程该物理页被一个进程使用,但已从该进程的工作使用,但已从该进程的工作集中被删除。集中被删除。2022年8月3日星期三 每当每当发生缺页中断时,先看所需要的页是否在备用表或更改发生缺页中断时,先看所需要的页是否在备用表或更改表中,若在,则将该页从备用表或更改表中移出,收回到该项进表中,若在,则将该页从备用表或更改表中移出,收回到该项进程的工作集中;若不在,如果需要的是一个零初始化页,则内存程的工作集中;若不在,如果需要的是一个零初始化页,则内存管理器试图在零初始化页表中取出首页,若这个页表已空,则从管理器试图在零初始化页表中取出首页,若这个页表已空,则从空闲表取出一页并对该页进行零初
24、始化,如果需要的不是零初始空闲表取出一页并对该页进行零初始化,如果需要的不是零初始化页,就从空闲表中取出第一页,如果空闲表是空的,就从零初化页,就从空闲表中取出第一页,如果空闲表是空的,就从零初始化页表中取一页。始化页表中取一页。无论何时无论何时只要零初始化表、空闲表、备用表的页数低于最小只要零初始化表、空闲表、备用表的页数低于最小允许值,就唤醒名为允许值,就唤醒名为“更改页写入程序更改页写入程序”的线程,将更改表中的的线程,将更改表中的页写入磁盘,然后将这些页移入备用表中。页写入磁盘,然后将这些页移入备用表中。2022年8月3日星期三7.2.4 Windows XP7.2.4 Windows
25、 XP的页面调度的页面调度 在在Windows XPWindows XP系统中还提供了管理存储数组形式的高系统中还提供了管理存储数组形式的高速缓存,称为快表。所谓关联存储器,即速缓存,称为快表。所谓关联存储器,即TLBTLB,是一个向量,是一个向量,它的存储单元能被同时读取,并直接与目标值比较。在它的存储单元能被同时读取,并直接与目标值比较。在TLBTLB中,向量中包含了大多数最近使用过的虚拟页到物理地址中,向量中包含了大多数最近使用过的虚拟页到物理地址的映射及每页的页保护类型。由于常用的虚拟地址记录在的映射及每页的页保护类型。由于常用的虚拟地址记录在TLBTLB中,这样就使得虚拟地址到物理地
26、址的转换速度大大提中,这样就使得虚拟地址到物理地址的转换速度大大提高,而且减少了对内存的访问次数。高,而且减少了对内存的访问次数。2022年8月3日星期三 内存内存管理器利用请求页面调度算法及簇方式将页面装入内存。管理器利用请求页面调度算法及簇方式将页面装入内存。当线程产生一次缺页中断时,内存管理器将引发中断的页面及其当线程产生一次缺页中断时,内存管理器将引发中断的页面及其后续的少量页面装入内存。这个策略试图减少线程引起的调页后续的少量页面装入内存。这个策略试图减少线程引起的调页I/OI/O数量。数量。当当线程产生缺页中断时,内存管理器还必须确定将调入的虚线程产生缺页中断时,内存管理器还必须确
27、定将调入的虚拟页面放在物理内存的何处。用于确定最佳位置的规则被称为拟页面放在物理内存的何处。用于确定最佳位置的规则被称为“置换算法置换算法”。在多处理机系统中,采用局部先进先出的置换算。在多处理机系统中,采用局部先进先出的置换算法,在单处理机系统中,采用类似于最近最少使用的置换算法。法,在单处理机系统中,采用类似于最近最少使用的置换算法。2022年8月3日星期三 文件系统文件系统是操作系统中最接近用户的一层,必须为用户提供是操作系统中最接近用户的一层,必须为用户提供一种简便、统一的存取信息和管理信息的方法,即系统将信息统一种简便、统一的存取信息和管理信息的方法,即系统将信息统一组织成文件形式,
28、建立文件控制块,提供存储访问文件的手段。一组织成文件形式,建立文件控制块,提供存储访问文件的手段。Windows XP Windows XP支持支持4 4种文件系统,它们是:文件分配表(种文件系统,它们是:文件分配表(FATFAT)系统、扩展文件分配表(系统、扩展文件分配表(VFATVFAT)系统、)系统、NTNT文件系统(文件系统(NTFSNTFS)以及)以及高性能文件系统(高性能文件系统(HPFSHPFS)。同时随着技术的发展和进步,)。同时随着技术的发展和进步,Windows XPWindows XP提供了对分布式文件系统的客户和服务器的支持。提供了对分布式文件系统的客户和服务器的支持。
29、7.3.1 Windows XP7.3.1 Windows XP文件系统综述文件系统综述7.3 Windows XP7.3 Windows XP的文件管理的文件管理2022年8月3日星期三 1.1.文件分配表文件分配表(FAT)(FAT)系统系统 FAT FAT是文件分配表(是文件分配表(file allocation tablefile allocation table)的英文缩写。)的英文缩写。它是借助它是借助“文件分配表文件分配表”来管理磁盘存储空间、创建和使用文件来管理磁盘存储空间、创建和使用文件的一种方法。的一种方法。由由FAT FAT 管理的磁盘卷,被分为管理的磁盘卷,被分为5 5
30、个区域:引导区,文件分配表个区域:引导区,文件分配表1 1,文件分配表,文件分配表2 2,根目录区以及数据存储区。整个,根目录区以及数据存储区。整个结构如下图所结构如下图所示。示。FATFAT卷的结构卷的结构2022年8月3日星期三 引导引导区:该区里存放的是引导程序,以及有关该卷的总信息区:该区里存放的是引导程序,以及有关该卷的总信息(如扇区数、每个扇区的大小、文件分配表的大小、簇的尺寸等)。(如扇区数、每个扇区的大小、文件分配表的大小、簇的尺寸等)。文件分配表文件分配表 1 1 和文件分配表和文件分配表 2 2:文件分配表非常重要,因此每:文件分配表非常重要,因此每个磁盘卷上都安排有两个文
31、件分配表,它们的内容完全相同。一个只个磁盘卷上都安排有两个文件分配表,它们的内容完全相同。一个只是作为另一个的备份,以便必要时能够起到恢复的作用。是作为另一个的备份,以便必要时能够起到恢复的作用。根目录根目录区:该区用于存放磁盘文件的根目录文件。区:该区用于存放磁盘文件的根目录文件。数据数据存储区:该区会占用较大空间,用于存放用户文件。存储区:该区会占用较大空间,用于存放用户文件。2022年8月3日星期三 2.2.扩展文件分配表扩展文件分配表(VFAT)(VFAT)系统系统 在在Windows XPWindows XP中,通过对中,通过对FATFAT文件系统的扩展,长文件名问题得文件系统的扩展
32、,长文件名问题得到了妥善解决,这也就是所谓的扩展到了妥善解决,这也就是所谓的扩展FAT(VFAT)FAT(VFAT)文件系统。文件系统。但是但是为了同为了同MSMSDOSDOS和和Win16Win16位程序兼容,它仍保留有扩展名。它位程序兼容,它仍保留有扩展名。它同时也支持文件日期和时间属性,为每个文件保留了文件创建的日期同时也支持文件日期和时间属性,为每个文件保留了文件创建的日期/时间、文件最近被修改的日期时间、文件最近被修改的日期/时间和文件最近被打开的日期时间和文件最近被打开的日期/时间时间这这3 3个日期个日期/时间戳。时间戳。Windows XPWindows XP的的VFATVFA
33、T文件系统和下面将要提到的文件系统和下面将要提到的NTNT文件系统文件系统(NTFS)(NTFS)和高性能文件系统(和高性能文件系统(HPFSHPFS)都支持长文件名。)都支持长文件名。2022年8月3日星期三 3.Windows NT3.Windows NT文件系统(文件系统(NTFSNTFS)NTFS NTFS是英文是英文new technology file systemnew technology file system的缩写,是一种具有的缩写,是一种具有较好容错性和安全性的全新文件系统。较好容错性和安全性的全新文件系统。NTFS NTFS 是以簇作为磁盘空间分是以簇作为磁盘空间分配和
34、回收的基本单位。一个文件总是占用存储空间里的整数个簇。配和回收的基本单位。一个文件总是占用存储空间里的整数个簇。NTFS NTFS按照簇的尺寸来划分文件的虚拟空间,这样形成的顺序号,按照簇的尺寸来划分文件的虚拟空间,这样形成的顺序号,称为虚拟簇号称为虚拟簇号(virtual cluster number(virtual cluster number,VCN)VCN);把整个卷中所有的;把整个卷中所有的簇从头到尾进行顺序编号,称为逻辑簇号簇从头到尾进行顺序编号,称为逻辑簇号(logical cluster number(logical cluster number,LCN)LCN)。2022年8
35、月3日星期三文件文件VCNVCN和和LCNLCN的关系示意图的关系示意图2022年8月3日星期三 NTFS NTFS 把卷上的磁盘存储区分成两个部分,其中大约把卷上的磁盘存储区分成两个部分,其中大约 12%12%的的空间(以簇为单位)分配给主控文件表(空间(以簇为单位)分配给主控文件表(master file tablemaster file table,MFTMFT)使用,余下)使用,余下88%88%的空间被分配用于存储各种文件。的空间被分配用于存储各种文件。NTFS NTFS 的磁盘的磁盘卷结构卷结构2022年8月3日星期三 4.4.高性能文件系统高性能文件系统 OS/2 OS/2的高性能
36、文件系统的高性能文件系统(HPFS)(HPFS)主要克服了主要克服了FATFAT文件系统不适合于文件系统不适合于高档操作系统这一缺点,高档操作系统这一缺点,HPFSHPFS支持长文件名,比支持长文件名,比FATFAT文件系统有更强文件系统有更强的纠错能力。的纠错能力。Windows XPWindows XP也支持也支持HPFSHPFS,使得从,使得从OS/2OS/2到到Windows XPWindows XP的过的过渡更为容易。渡更为容易。HPFSHPFS和和NTFSNTFS有包括长文件名在内的许多相同特性,但使有包括长文件名在内的许多相同特性,但使用可靠性较差,也较低级。用可靠性较差,也较低
37、级。2022年8月3日星期三 在在NTFSNTFS里,磁盘上的所有数据都是以文件的形式出现,即使里,磁盘上的所有数据都是以文件的形式出现,即使是文件系统的管理信息也是以一组文件的形式存储的,即元文件。是文件系统的管理信息也是以一组文件的形式存储的,即元文件。而在而在1616个元文件中主控文件表个元文件中主控文件表(MFT)(MFT)是一个非常重要的元文件,是一个非常重要的元文件,它记录着分区上每一个文件的索引,这些索引称为文件记录,每它记录着分区上每一个文件的索引,这些索引称为文件记录,每个文件记录占用两个扇区。每个文件都有一个文件记录,包括元个文件记录占用两个扇区。每个文件都有一个文件记录,
38、包括元文件本身,而主控文件表文件本身,而主控文件表(MFT)(MFT)就是专门用来存储文件记录的一就是专门用来存储文件记录的一个元文件,在主控文件表中前个元文件,在主控文件表中前16 16 个文件记录总是元文件的记录。个文件记录总是元文件的记录。7.3.2 7.3.2 NTFSNTFS的主控文件表的主控文件表2022年8月3日星期三 由于由于MFTMFT文件本身的重要性,为了确保文件系统结构的可靠性,文件本身的重要性,为了确保文件系统结构的可靠性,系统专门为它准备了一个镜像文件系统专门为它准备了一个镜像文件($MFTMirr)($MFTMirr),也就是,也就是MFTMFT中的中的第二个记录。
39、不过这并不是第二个记录。不过这并不是MFTMFT的完整镜像,而是一个小部分镜的完整镜像,而是一个小部分镜像,一般只镜像像,一般只镜像MFTMFT中的前中的前4 4个文件记录。要对个文件记录。要对MFTMFT的空间进行管的空间进行管理,可以在理,可以在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlHKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystemFileSystem中增加一个类型为中增加一个类型为DWORDDWORD的的NtfsMftZoneReservationNtfsMftZo
40、neReservation,它的缺省值是它的缺省值是1 1,其范围是,其范围是1414(1 1表示表示 MFTMFT占整个卷的占整个卷的12.5%12.5%,2 2表示占表示占25%25%,3 3表示占表示占37.5%37.5%,4 4表示占表示占50%50%)。)。2022年8月3日星期三 NTFS NTFS中,文件存取是按簇进行分配的,一个簇必须是物理扇中,文件存取是按簇进行分配的,一个簇必须是物理扇区的整数倍,而且总是区的整数倍,而且总是2 2的整数次的整数次方。方。文件文件通过主控文件表(通过主控文件表(MFTMFT)来确定其在磁盘上的存储位置。)来确定其在磁盘上的存储位置。主控文件表
41、是一个对应的数据库,由一系列的文件记录组成,卷主控文件表是一个对应的数据库,由一系列的文件记录组成,卷中每一个文件都有一个文件记录(对于大型文件还可能有多个记中每一个文件都有一个文件记录(对于大型文件还可能有多个记录与之相对应)。录与之相对应)。NTFS NTFS卷上的每个文件都有一个卷上的每个文件都有一个6464位(位(bitbit)称为文件引用号)称为文件引用号也称文件索引号(也称文件索引号(file reference numberfile reference number)的唯一标志。文件)的唯一标志。文件引用号由两部分组成:一是文件号,二是文件顺序号。引用号由两部分组成:一是文件号,
42、二是文件顺序号。7.3.3 7.3.3 NTFSNTFS文件和目录的结构文件和目录的结构2022年8月3日星期三 NTFS NTFS的目录只是一个简单的文件名和文件引用号的索引,如的目录只是一个简单的文件名和文件引用号的索引,如果目录的属性列表小于一个记录的长度,那么该目录的所有信息果目录的属性列表小于一个记录的长度,那么该目录的所有信息都存储在主文件表的记录中,对于大于记录的目录则使用都存储在主文件表的记录中,对于大于记录的目录则使用B+B+树进树进行管理。主文件表中的基本文件记录中有一个指针指向一个存储行管理。主文件表中的基本文件记录中有一个指针指向一个存储常驻索引缓冲区中包括该目录下所有
43、下一级子目录和文件的外部常驻索引缓冲区中包括该目录下所有下一级子目录和文件的外部簇,而簇,而B+B+树结构便于大型目录中文件和子目录的快速查找。树结构便于大型目录中文件和子目录的快速查找。2022年8月3日星期三 NTFS NTFS通过基于事务处理模式的日志记录技术,成功保证了通过基于事务处理模式的日志记录技术,成功保证了NTFSNTFS卷的一卷的一致性,实现了文件系统的可恢复性。在致性,实现了文件系统的可恢复性。在 FAT FAT 或或 HPFS HPFS 上执行上执行 CHKDSK CHKDSK 时,时,系统会检查目录、分配表和文件表中指针的一致性;但是在系统会检查目录、分配表和文件表中指
44、针的一致性;但是在 NTFS NTFS 下,下,系统会维护针对这些组件的事务日志,因此,系统会维护针对这些组件的事务日志,因此,CHKDSKCHKDSK只需将事务回滚到上只需将事务回滚到上一个提交点就可以恢复文件系统中的一致性。事务日志方法需要的系统开一个提交点就可以恢复文件系统中的一致性。事务日志方法需要的系统开销是很小的。销是很小的。NTFSNTFS并不是直接在日志文件中存取记录,而是通过并不是直接在日志文件中存取记录,而是通过LFSLFS来读来读写。写。LFSLFS提供了打开、写入、向前、向后、更新等操作来帮助提供了打开、写入、向前、向后、更新等操作来帮助NTFSNTFS处理日处理日志文
45、件。志文件。7.3.4 7.3.4 NTFSNTFS对可恢复性的支持对可恢复性的支持2022年8月3日星期三 为了确保每个事务都能顺利的完成或出错时回滚到上一状为了确保每个事务都能顺利的完成或出错时回滚到上一状态,对于每个事务态,对于每个事务NTFSNTFS都会执行以下步骤:都会执行以下步骤:(1 1)把此次事务中的子操作记录到已缓存在内存的日志文件里。)把此次事务中的子操作记录到已缓存在内存的日志文件里。(2 2)把实际的子操作数据记录到内存中。)把实际的子操作数据记录到内存中。(3 3)在缓存于内存的日志文件里把此次事务标记为已提交。)在缓存于内存的日志文件里把此次事务标记为已提交。(4
46、4)把日志写入磁盘。)把日志写入磁盘。(5 5)把数据写入磁盘。)把数据写入磁盘。2022年8月3日星期三 当系统发生错误时,当系统发生错误时,NTFSNTFS的日志中有足够的信息去完成或中的日志中有足够的信息去完成或中断任何出问题的事务。执行恢复操作的时候,断任何出问题的事务。执行恢复操作的时候,NTFSNTFS重做日志里每重做日志里每一个标记为提交的事务;然后文件系统在日志中查找那些在上一一个标记为提交的事务;然后文件系统在日志中查找那些在上一次系统崩溃时没有提交的事务,把这些事务的子操作撤销掉。因次系统崩溃时没有提交的事务,把这些事务的子操作撤销掉。因为为NTFSNTFS在任何数据变动写
47、入硬盘之前已经把这些变动的日志先写在任何数据变动写入硬盘之前已经把这些变动的日志先写入了硬盘,所以入了硬盘,所以NTFSNTFS拥有那些在恢复过程中需要回滚的子操作的拥有那些在恢复过程中需要回滚的子操作的所有的有效信息。所有的有效信息。2022年8月3日星期三 1.Windows XP I/O1.Windows XP I/O系统的结构系统的结构 如下图所如下图所示为示为Windows XP I/OWindows XP I/O系统的组件示意图。它由系统的组件示意图。它由I/OI/O系统系统服务、服务、I/OI/O管理程序以及各种驱动程序(文件系统的和设备的)等组管理程序以及各种驱动程序(文件系统
48、的和设备的)等组成。成。7.4.1 Windows XP7.4.1 Windows XP的的设备管理综述设备管理综述7.4 Windows XP7.4 Windows XP的设备管理的设备管理2022年8月3日星期三 (1 1)应用程序,通过应用程序的编程接口)应用程序,通过应用程序的编程接口(APIAPI),进入执行体进入执行体。(2 2)“I/O“I/O系统服务系统服务”组件是处于核心态下的系统调用的集合。组件是处于核心态下的系统调用的集合。它们把用户对它们把用户对I/OI/O的请求传递给的请求传递给I/OI/O管理程序,使之能够最终完成管理程序,使之能够最终完成下层的下层的I/OI/O处
49、理。处理。(3 3)“I/O“I/O管理程序管理程序”的工作是建立起代表的工作是建立起代表I/OI/O操作的操作的I/OI/O请求包请求包(I/O request I/O request packetpacket,IRPIRP),并把),并把IRPIRP传送给相应的驱动程传送给相应的驱动程 序。在序。在 I/O I/O操作完成后,清除操作完成后,清除IRPIRP。(4 4)各个驱动程序组件接收)各个驱动程序组件接收IRPIRP,执行指定的操作。在完成操作,执行指定的操作。在完成操作后,负责把后,负责把IRPIRP传回传回I/OI/O管理程序,或者通过管理程序,或者通过I/OI/O管理程序,再把
50、管理程序,再把IRPIRP传送到另一个驱动程序,以求得到更进一步的传送到另一个驱动程序,以求得到更进一步的 I/O I/O处理。处理。2022年8月3日星期三 2.2.设备驱动程序设备驱动程序 1 1)Windows XPWindows XP设备驱动程序的功能设备驱动程序的功能 设备驱动程序是设备相关代码的集合,每类设备有一个设备驱设备驱动程序是设备相关代码的集合,每类设备有一个设备驱动程序。动程序。WindowsWindows XP XP设备驱动程序接收设备驱动程序接收I/OI/O管理器传来的命令,对管理器传来的命令,对相应设备进行管理,在命令完成后通知相应设备进行管理,在命令完成后通知I/