1、基于NT内核Windows操作系统第8章基于NT内核Windows操作系统 8.1 基于基于NT内核内核Windows操作系统概述操作系统概述 8.2 基于基于NT内核内核Windows操作系统的体系结构操作系统的体系结构 8.3 NT对象、进程和线程对象、进程和线程 8.4 NT处理机调度处理机调度 8.5 NT虚拟存储管理虚拟存储管理 8.6 NT文件系统文件系统 8.1 基于基于NT内核内核Windows操作系统概述操作系统概述 8.2 基于基于NT内核内核Windows操作系统的体系结构操作系统的体系结构 8.3 NT对象、进程和线程对象、进程和线程 8.4 NT处理机调度处理机调度
2、8.5 NT虚拟存储管理虚拟存储管理 8.6 NT文件系统文件系统 8.7 网络功能网络功能 8.8 注册表注册表 第8章基于NT内核Windows操作系统 8.1 基于基于NT内核内核Windows操作系统概述操作系统概述 8.1.1 基于基于NT内核内核Windows操作系统的特点操作系统的特点1.是开放软件标准和兼容性。是开放软件标准和兼容性。2.符合符合POSIX,提供一个,提供一个POSIX应用程序的执行环境。应用程序的执行环境。3.可运行在多种硬件平台。可运行在多种硬件平台。4.NT是是32位的多任务操作系统,支持对称多位的多任务操作系统,支持对称多CPU,支持多线程。支持多线程。
3、5.支持多重文件系统与异步支持多重文件系统与异步I/O以及采用面向对象以及采用面向对象 的软件开发技术。的软件开发技术。6.内置网络功能,支持分布式计算和互操作性。内置网络功能,支持分布式计算和互操作性。7.安全可靠,安全性达到美国政府安全可靠,安全性达到美国政府C2级安全标准。级安全标准。8.1.2 基于基于NT内核内核Windows操作系统性能简介操作系统性能简介1.基于基于NT内核内核Windows操作系统的内存模式操作系统的内存模式。2.进程、线程和任务管理。进程、线程和任务管理。3.抢占式调度方式。抢占式调度方式。4.基于基于NT内核内核WINDOWS操作系统的安全性。操作系统的安全
4、性。5.支持支持Internet。6.NT内核操作的系统结构。内核操作的系统结构。7.对称多处理模式。对称多处理模式。8.1.3常用的基于常用的基于NT内核的服务器操作系统简介内核的服务器操作系统简介1.WINNT 4.0 优点:操作直观,易于使用,功能实用,安全性能比较好。优点:操作直观,易于使用,功能实用,安全性能比较好。缺点:运行速度慢,功能不够完善,当进行超出系统处理能力的多项并发处缺点:运行速度慢,功能不够完善,当进行超出系统处理能力的多项并发处理时,单个线程的不响应将会系统由于不堪重负产生死机现象,需要对服务器进理时,单个线程的不响应将会系统由于不堪重负产生死机现象,需要对服务器进
5、行重启操作。行重启操作。2Win2000/Advanced Server 优点:操作直观,易于使用,功能随着时代的发展具有大幅的提升,管理更优点:操作直观,易于使用,功能随着时代的发展具有大幅的提升,管理更加全面,相对以前版本,当单个线程不响应时,其它线程的处理仍然可以继续进加全面,相对以前版本,当单个线程不响应时,其它线程的处理仍然可以继续进行,系统无需重启。行,系统无需重启。缺点:运行速度虽然较以前版本有不小的提升,但仍不能满足用户的需求;缺点:运行速度虽然较以前版本有不小的提升,但仍不能满足用户的需求;由于是在原有完整由于是在原有完整NT内核的基础上对所有的高端功能应用进行开发的,系统的
6、内核的基础上对所有的高端功能应用进行开发的,系统的稳定与安全性有部分的削弱;现在稳定与安全性有部分的削弱;现在Microsoft已停止对已停止对Win2000系列服务器进销售系列服务器进销售与升级服务支持。与升级服务支持。3Win2003/Advanced Server 优点:操作易用性是除了优点:操作易用性是除了XP以外最人性化的版本,安全性是目前为止以外最人性化的版本,安全性是目前为止Windows全系列服务器产品中最好的,线程处理速度跟随硬件的发展有不小的提全系列服务器产品中最好的,线程处理速度跟随硬件的发展有不小的提升,管理能力也有不小的提升,是目前升,管理能力也有不小的提升,是目前W
7、indows服务器中的主流产品。服务器中的主流产品。缺点:安全性能仍有待更加完善,由于管理功能的增加,需要处理的线程更缺点:安全性能仍有待更加完善,由于管理功能的增加,需要处理的线程更加繁杂,如果使用同样的硬件,加繁杂,如果使用同样的硬件,2000系列比系列比2003系列产品在处理速度上会稍快系列产品在处理速度上会稍快。8.2.1 基于NT内核Windows操作系统的体系结构 8.2 基于基于NT内核内核Windows操作系统的体系结构操作系统的体系结构8.2.2核心态组件功能简介核心态组件功能简介1.执行体执行体 从功能上看,执行体包含的基本服务如下:进程和从功能上看,执行体包含的基本服务如
8、下:进程和线程管理器、虚拟存储器、对象管理器、设备管理器、线程管理器、虚拟存储器、对象管理器、设备管理器、文件系统、注册表配置管理器、电源管理器、安全监视文件系统、注册表配置管理器、电源管理器、安全监视器、本地过程调用等。器、本地过程调用等。2.内核内核 内核是执行体的下一个层次,它为执行体提供一些内核是执行体的下一个层次,它为执行体提供一些最基本的功能、简单的对象,而执行体就通过在这些简最基本的功能、简单的对象,而执行体就通过在这些简单对象上加上一些安全属性,控制属性等来完成更为复单对象上加上一些安全属性,控制属性等来完成更为复杂的功能。内核提供了一个低层次的系统原语和机制供杂的功能。内核提
9、供了一个低层次的系统原语和机制供执行体来调用以实现其功能。内核只是提供了底层的机执行体来调用以实现其功能。内核只是提供了底层的机制,而不做任何策略性的事务。但线程的调度和异常处制,而不做任何策略性的事务。但线程的调度和异常处理是在内核中实现的,内核永远都运行在核心态理是在内核中实现的,内核永远都运行在核心态 3.硬件抽象层硬件抽象层HAL 硬件抽象层硬件抽象层HAL(Hardware Abstraction Layer)将内)将内核、设备驱动程序、执行体同硬件分隔,核、设备驱动程序、执行体同硬件分隔,HAL隐藏各种与隐藏各种与硬件有关的细节,如硬件有关的细节,如I/O接口、中断控制器、多处理机
10、通信接口、中断控制器、多处理机通信机制和依赖于硬件平台的函数等。机制和依赖于硬件平台的函数等。HAL是基于是基于NT内核的内核的WINDOWS操作系统在多种硬件平台可移植性成为可能的操作系统在多种硬件平台可移植性成为可能的关键技术。关键技术。4.设备驱动程序设备驱动程序 设备驱动程序(设备驱动程序(Device Drivers)是)是I/O系统与相关硬件系统与相关硬件之间的接口,将用户的之间的接口,将用户的I/O函数调用转换为对特定硬件的函数调用转换为对特定硬件的I/O请求。设备驱动程序是可加载的核心态模块,请求。设备驱动程序是可加载的核心态模块,Windows XP/Server 2003的
11、设备驱动程序不直接操作硬件,而是调的设备驱动程序不直接操作硬件,而是调用用HAL功能作为与硬件的接口。功能作为与硬件的接口。5.图形引擎图形引擎8.3 NT对象、进程和线程对象、进程和线程 8.3.1 NT对象与句柄对象与句柄 1.对象对象:对象有两个部分,即对象头和对象体。对象有两个部分,即对象头和对象体。对象头包含如下信息:对象名、对象目录、安全描对象头包含如下信息:对象名、对象目录、安全描述体、配额、打开句柄计数器、打开句柄数据库、述体、配额、打开句柄计数器、打开句柄数据库、内核内核/用户态、对象类型指针等。对象体的格式和内用户态、对象类型指针等。对象体的格式和内容随对象类而不同,对象体
12、中列出对象类的属性。容随对象类而不同,对象体中列出对象类的属性。2.句柄句柄:Windows通过句柄识别每个窗体、控件、通过句柄识别每个窗体、控件、菜单和菜单项,当程序运行时菜单和菜单项,当程序运行时,它所包含的每个部件它所包含的每个部件都有一个惟一的句柄同其它的部件相区别,句柄在都有一个惟一的句柄同其它的部件相区别,句柄在Windows API中具有举足轻重的作用。句柄是一种中具有举足轻重的作用。句柄是一种指向指针的指针。指向指针的指针。8.3.2 NT进程进程1.NT进程的组成进程的组成进程是程序的一次动态执行过程。进程是程序的一次动态执行过程。NT进程主要组成如下:进程主要组成如下:进程
13、标识进程标识(PID)。这是进程在系统中的惟一标识符。这是进程在系统中的惟一标识符。一个可执行程序。它定义初始代码和数据,并映射到进程的一个可执行程序。它定义初始代码和数据,并映射到进程的 虚拟地址空间。虚拟地址空间。专用的虚拟地址空间。每一个进程都拥有专用的地址空间。专用的虚拟地址空间。每一个进程都拥有专用的地址空间。访问令牌访问令牌(Access Token)。系统通过访问令牌识别运行该进程。系统通过访问令牌识别运行该进程 的用户、所在的安全组及其特权级。的用户、所在的安全组及其特权级。内核级多线程机制。一个进程可以有许多个线程,至少有一个内核级多线程机制。一个进程可以有许多个线程,至少有
14、一个 线程。没有线程,线程。没有线程,NT进程就无法运行。进程就无法运行。系统资源,例如信号量、通信端口、文件等。它们是程序执行系统资源,例如信号量、通信端口、文件等。它们是程序执行时,时,由操作系统分配给该进程的。系统资源体现为对象表,每个进由操作系统分配给该进程的。系统资源体现为对象表,每个进程程 有一个对象表。有一个对象表。8.3.3 NT线程线程线程是进程内的一个执行单元,是进程内的一个可调度实体。线程是进程内的一个执行单元,是进程内的一个可调度实体。一个进程可以拥有若干个线程,这些线程并发地执行进程地址空一个进程可以拥有若干个线程,这些线程并发地执行进程地址空间中的代码,与多进程执行
15、相比,多线程具有以下优点:间中的代码,与多进程执行相比,多线程具有以下优点:多个相关线程共享进程的所有资源,如地址空间、打开的文件、多个相关线程共享进程的所有资源,如地址空间、打开的文件、对象等。对象等。同一进程中的线程之间的通信可以通过直接读写进程的数据段来同一进程中的线程之间的通信可以通过直接读写进程的数据段来进行,而不必借助进程间的通信机制进行,而不必借助进程间的通信机制(IPC),当然在通信时仍然需要同,当然在通信时仍然需要同步与互斥手段。步与互斥手段。在同一进程内,线程的上下文切换比进程的上下文切换快得多。在同一进程内,线程的上下文切换比进程的上下文切换快得多。从用户界面设计角度看,
16、多线程也为交互式应用程序提供了良好从用户界面设计角度看,多线程也为交互式应用程序提供了良好的基础的基础。8.4 NT处理机调度处理机调度 8.4.1 NT处理机调度的特点处理机调度的特点 基于基于NT内核的内核的WINDOWS操作系统是抢占式线程级调度,操作系统是抢占式线程级调度,其处理机调度具有以下特点:其处理机调度具有以下特点:多任务(多进程),多线程,对称多处理。多任务(多进程),多线程,对称多处理。由于采用了客户由于采用了客户/服务器模型,因此基于服务器模型,因此基于NT内核的操作系内核的操作系统体现为多个服务器进程,每个服务器进程使用多个线程来处理同统体现为多个服务器进程,每个服务器
17、进程使用多个线程来处理同时从多个客户来的请求。时从多个客户来的请求。NT进程均被对象实现,并通过对象服务访问,线程亦然。进程均被对象实现,并通过对象服务访问,线程亦然。NT进程中,基本的调度实体是线程而不是进程,采用动进程中,基本的调度实体是线程而不是进程,采用动态优先级多级调度队列算法,抢占式线程级调度,但核心代码不可态优先级多级调度队列算法,抢占式线程级调度,但核心代码不可被抢占。被抢占。进程间共享对象的优越功能及灵活的内部进程通信能力,进程间共享对象的优越功能及灵活的内部进程通信能力,包括共享内存和优化信息传送工具。进程对象和线程对象都具有内包括共享内存和优化信息传送工具。进程对象和线程
18、对象都具有内部同步能力。部同步能力。8.4.2 NT线程状态线程状态 就绪就绪(ready)状态。线程已具备执行的条件,等待状态。线程已具备执行的条件,等待CPU调度。调度程调度。调度程序从就绪队列中选中的线程进入备用状态。序从就绪队列中选中的线程进入备用状态。备用备用(standby)状态,处于备用状态的线程已被指定为某一个状态,处于备用状态的线程已被指定为某一个CPU下下的一个执行对象。正进行描述表切换,以进入执行状态。系统中每个处理机的一个执行对象。正进行描述表切换,以进入执行状态。系统中每个处理机上只能有一个处于备用状态的线程。上只能有一个处于备用状态的线程。执行执行(running)
19、状态,已完成描述表切换,线程进入执行状态。直到状态,已完成描述表切换,线程进入执行状态。直到出现被抢先、时间片用完、线程终止或进入等待状态的情况为止。出现被抢先、时间片用完、线程终止或进入等待状态的情况为止。等待等待(waiting)状态,线程正等待某事件。当等待事件出现时,等待结状态,线程正等待某事件。当等待事件出现时,等待结束,并根据优先级进入执行或就绪状态。以下情况线程进入等待状态:线程束,并根据优先级进入执行或就绪状态。以下情况线程进入等待状态:线程等待同步对象,线程等待等待同步对象,线程等待I/O,环境子系统导致线程将自己挂起。,环境子系统导致线程将自己挂起。转换转换(transit
20、ion)状态,线程已结束等待状态,但线程的内核堆栈位于状态,线程已结束等待状态,但线程的内核堆栈位于外存。当线程等待事件出现而它的内核堆栈处于外存时,线程进入转换状态。外存。当线程等待事件出现而它的内核堆栈处于外存时,线程进入转换状态。当线程内核堆栈被调回内存时,线程进入待调度就绪状态。当线程内核堆栈被调回内存时,线程进入待调度就绪状态。终止状态终止状态(Terminated):线程执行完毕就进入终止状态。一旦终止,:线程执行完毕就进入终止状态。一旦终止,由对象管理器来决定线程对象是否被删除,如果执行体有一指向线程对象的由对象管理器来决定线程对象是否被删除,如果执行体有一指向线程对象的指针,它
21、便可以将线程对象重新初始化,并再次使用它。指针,它便可以将线程对象重新初始化,并再次使用它。初始化状态初始化状态(Initialized):线程创建过程中的线程状态。:线程创建过程中的线程状态。基于基于NT内核的内核的Windows操作系统实现了一个基于优先级的操作系统实现了一个基于优先级的抢先式多处理机调度系统。调度系统总是执行优先级最高的就抢先式多处理机调度系统。调度系统总是执行优先级最高的就绪线程。绪线程。基于基于NT内核的内核的Windows操作系统在内核中实现它的线程调操作系统在内核中实现它的线程调度代码,这些代码分布在内核中与调度相关事件出现的位置,度代码,这些代码分布在内核中与调
22、度相关事件出现的位置,并不存在一个单独的线程调度模块。内核中完成线程调度功能并不存在一个单独的线程调度模块。内核中完成线程调度功能的这些函数统称为内核调度器的这些函数统称为内核调度器(kernels dispatcher)。8.4.3 NT线程调度线程调度 基于基于NT内核的内核的Windows操作系统线程调度算法采用动态操作系统线程调度算法采用动态优先级多级调度队列算法,每个线程有一个不高于进程基本优优先级多级调度队列算法,每个线程有一个不高于进程基本优先级两级,不低于基本优先级两级范围为内的基本执行优先级,先级两级,不低于基本优先级两级范围为内的基本执行优先级,每个线程的动态优先级以线程的
23、基本优先级为初始值,随着进每个线程的动态优先级以线程的基本优先级为初始值,随着进程所做的工作类型的不同而向上浮动。程所做的工作类型的不同而向上浮动。NT是个抢先多任务方式的操作系统,如果一个较高优先是个抢先多任务方式的操作系统,如果一个较高优先级线程由就绪状态变为执行状态时,内核将中断或抢先其它线级线程由就绪状态变为执行状态时,内核将中断或抢先其它线程的执行,被抢夺的线程将被给予照顾,放在所在优先级队列程的执行,被抢夺的线程将被给予照顾,放在所在优先级队列的第一个。内核不能被抢先,但内核的大部分是可被高级中断的第一个。内核不能被抢先,但内核的大部分是可被高级中断中断的。用来实现中断的。用来实现
24、NT线程调度算法的中心数据结构是线程调度算法的中心数据结构是NT内核内核中的一个称为中的一个称为“调度程序数据库调度程序数据库”(dispatcher database)的数据的数据结构。结构。8.4.4 NT线程调度算法线程调度算法8.5.1 内存管理器内存管理器 内存管理器是内存管理器是NT执行体的一部分,位于执行体的一部分,位于Ntoskrnl.exe文文件中,内存管理器由以下几个部分组成:件中,内存管理器由以下几个部分组成:一组执行体系统服务程序,用于虚拟内存的分配、回一组执行体系统服务程序,用于虚拟内存的分配、回收和管理。这些服务大多数都是以收和管理。这些服务大多数都是以Win32
25、API或核心态的设或核心态的设备驱动程序接口形式出现。备驱动程序接口形式出现。一个转换无效和访问错误陷阱处理程序,用于解决硬一个转换无效和访问错误陷阱处理程序,用于解决硬件检测到的内存管理异常,并代表进程将虚拟页面装入内存。件检测到的内存管理异常,并代表进程将虚拟页面装入内存。8.5 NT虚拟存储管理虚拟存储管理运行在不同的核心态系统线程上下文中的几个关键组件:运行在不同的核心态系统线程上下文中的几个关键组件:工作集管理器工作集管理器(working set manager):优先级为:优先级为16,工,工作集管理器每秒钟调用它一次,当空闲内存低于某一界限时,作集管理器每秒钟调用它一次,当空闲
26、内存低于某一界限时,便启动所有的内存管理策略。便启动所有的内存管理策略。进程进程/堆栈交换程序堆栈交换程序(process/stack swapper):优先级为:优先级为23,完成进程和内核线程堆栈的换入和换出操作。完成进程和内核线程堆栈的换入和换出操作。已修改页面写入器已修改页面写入器(modified page writer):优先级为:优先级为17,将修改链表上的老页写回到适当的页文件。将修改链表上的老页写回到适当的页文件。映射页面写入器映射页面写入器(mapped page writer):优先级为:优先级为17,将,将映射文件中的老页写回磁盘。映射文件中的老页写回磁盘。废弃段线程废
27、弃段线程(dereference segment thread):优先级为:优先级为18,当没有任何一个区域对象、映射窗口指向某一个段,并且该段当没有任何一个区域对象、映射窗口指向某一个段,并且该段也没有原型页表项也没有原型页表项(prototype PTE)处于过渡状态之中时,废弃处于过渡状态之中时,废弃段线程注销该段。段线程注销该段。零页线程零页线程(zero page thread):优先级为:优先级为0,将空闲链表中,将空闲链表中的页面清零,以便有足够的零页面满足将来的零页需求。的页面清零,以便有足够的零页面满足将来的零页需求。8.5.2 虚存空间的布局虚存空间的布局 系统区按速度要求
28、不同又分为三个部分,从快到慢依次为系统区按速度要求不同又分为三个部分,从快到慢依次为直接映射区,非页交换区和页交换区。直接映射区寻址由硬件直接映射区,非页交换区和页交换区。直接映射区寻址由硬件直接变换,且常驻内存,存取数据快,用于直接变换,且常驻内存,存取数据快,用于NT内核中频繁使用,内核中频繁使用,响应速度快的那些代码。响应速度快的那些代码。系统区低端的直接映射地址区(系统区低端的直接映射地址区(directly mapped addresses)具有三个特性:具有三个特性:该区中的内容永远不会按页交换出内存。该区中的内容永远不会按页交换出内存。这一区域由硬件直接映射。这一区域由硬件直接映
29、射。该区用于存放核心代码和数据中需要最好的性能的部分。该区用于存放核心代码和数据中需要最好的性能的部分。例如在处理器中调度线程的那些代码。例如在处理器中调度线程的那些代码。8.5.3 进程页表与地址变换机构进程页表与地址变换机构 NT页表不同于传统页表,页表不同于传统页表,NT进程的页表采用二级页表机制,进程的页表采用二级页表机制,第一级称为页目录,第二级称为页表,页表的表目就是帧号。第一级称为页目录,第二级称为页表,页表的表目就是帧号。每个进程有一个页目录,在系统中有控制寄存器指出进程的页每个进程有一个页目录,在系统中有控制寄存器指出进程的页目录地址。每个页目录可包含目录地址。每个页目录可包
30、含1024个表目,每个页目录表目指个表目,每个页目录表目指出二级页表所在页表地址。第二级页表包含出二级页表所在页表地址。第二级页表包含1024个表目,每个个表目,每个页表表目就是内存的帧号。页表表目就是内存的帧号。快表快表TLB 每次地址变换都需要经过两次查询,一次是在页目录中找每次地址变换都需要经过两次查询,一次是在页目录中找到正确的页表,另一次是在页表中找到正确的帧号。如果每到正确的页表,另一次是在页表中找到正确的帧号。如果每次对虚拟地址的访问都做两次额外的内存查询,那么将使系次对虚拟地址的访问都做两次额外的内存查询,那么将使系统性能严重下降,因此大多数统性能严重下降,因此大多数CPU在地
31、址变换时运用了高速在地址变换时运用了高速缓存技术。缓存技术。8.5.4 虚存管理虚存管理 页帧有以下六种状态。页帧有以下六种状态。有效(有效(valid):该页帧正在被某个进程使用,有一个):该页帧正在被某个进程使用,有一个有效的页表项指向页帧。有效的页表项指向页帧。零初始化(零初始化(zeroed):该页帧处于空闲并已被初始化为):该页帧处于空闲并已被初始化为零。分配给用户态进程必须是零初始化过的页帧,避免该用零。分配给用户态进程必须是零初始化过的页帧,避免该用户态进程读以前进程的内存内容,达到户态进程读以前进程的内存内容,达到C2级安全要求。级安全要求。空闲(空闲(free):该页帧空闲,
32、但没有被初始化。):该页帧空闲,但没有被初始化。备用(备用(standby):该页帧被一个进程使用,但已被从):该页帧被一个进程使用,但已被从该进程的工作集中删去。指向它的进程页表项处于无效状态,该进程的工作集中删去。指向它的进程页表项处于无效状态,但有一个但有一个“过渡过渡”标记。标记。更改(更改(modified):这个状态只有一点与备用状态不同,):这个状态只有一点与备用状态不同,就是处于该状态的页帧已被使用它的进程修改过,而且还没就是处于该状态的页帧已被使用它的进程修改过,而且还没有写到磁盘上。指向它的进程页表项处于无效状态,但有一有写到磁盘上。指向它的进程页表项处于无效状态,但有一个
33、个“过渡过渡”标记。标记。坏页(坏页(bad):该页帧产生了奇偶校验错或其它硬件错):该页帧产生了奇偶校验错或其它硬件错误。误。对后五种状态,页帧数据库把所有状态相同的页帧连接在对后五种状态,页帧数据库把所有状态相同的页帧连接在一起,页帧数据库共形成五个链表:零初始化表、空闲表、一起,页帧数据库共形成五个链表:零初始化表、空闲表、备用表、更改表和坏页表。备用表、更改表和坏页表。每当发生缺页中断,首先看所需要的页帧是否在备用表或每当发生缺页中断,首先看所需要的页帧是否在备用表或更改表中,若在则将该页帧从备用表或更改表中移出,进入更改表中,若在则将该页帧从备用表或更改表中移出,进入到该进程的工作集
34、中,不必在分配新的页。若不在如果需要到该进程的工作集中,不必在分配新的页。若不在如果需要的是一个零初始化页,则的是一个零初始化页,则NT虚存管理程序总是试图在零初虚存管理程序总是试图在零初始化页表中取出第一页,如果这个表已空,则从空闲页表中始化页表中取出第一页,如果这个表已空,则从空闲页表中取出页帧并对该页帧进行零初始化,如果需要的不是零初始取出页帧并对该页帧进行零初始化,如果需要的不是零初始化页,就从空闲表中取出第一页。如果空闲表是空的,就从化页,就从空闲表中取出第一页。如果空闲表是空的,就从零初始化表中取页帧。若零初始化表和空闲表均为空,则使零初始化表中取页帧。若零初始化表和空闲表均为空,
35、则使用备用表。用备用表。2.NT的页分配原则的页分配原则 NT采用请求调页存储管理,并使用预调页策略。当一个采用请求调页存储管理,并使用预调页策略。当一个线程发生缺页中断时,线程发生缺页中断时,NT虚存管理把所需页及它附近的一虚存管理把所需页及它附近的一些页一起装入内存,称之为簇式请求调页。根据局部性理论,些页一起装入内存,称之为簇式请求调页。根据局部性理论,这种簇式策略可以使一个线程的缺页中断尽量减少到最少。这种簇式策略可以使一个线程的缺页中断尽量减少到最少。NT的页分配原则是按照的页分配原则是按照“零初始化零初始化空闲状态物理页空闲状态物理页备用状态物理页备用状态物理页更改状态物理页更改状
36、态物理页”的顺序分配。的顺序分配。MS-DOS系统使用的是文件分配表系统使用的是文件分配表(简称简称FAT)文件系统。文件系统。16位的位的FAT文件系统有很多缺点,包括内部文件碎片,文件系统有很多缺点,包括内部文件碎片,2GB的大小限制以及缺少文件的访问保护等。的大小限制以及缺少文件的访问保护等。32位位FAT文件系统文件系统已经解决了大小和碎片的问题,但是与现代的文件系统相比已经解决了大小和碎片的问题,但是与现代的文件系统相比较,它的性能和功能还是很弱。较,它的性能和功能还是很弱。NTFS是很好的文件系统,是很好的文件系统,它有很多的功能,包括文件恢复、安全、容错、超大文件和它有很多的功能
37、,包括文件恢复、安全、容错、超大文件和文件系统、多种数据流、稀疏文件、加密、日志记录、卷隐文件系统、多种数据流、稀疏文件、加密、日志记录、卷隐藏拷贝和文件压缩等。藏拷贝和文件压缩等。NT支持多种文件系统,包括支持多种文件系统,包括MS-DOS使用的文件分配表使用的文件分配表(FAT)、CDROM文件系统(文件系统(CDFS)、)、OS/2使用的高性能使用的高性能文件系统文件系统(HPFS)以及以及NT文件系统文件系统(NTFS)。随着。随着NT内核版内核版本的更新,本的更新,NTFS也随之更新。也随之更新。Windows XP/2003仍然继续仍然继续使用使用FATl6读取软盘和其它可移动媒介
38、。尽管读取软盘和其它可移动媒介。尽管NTFS有许多有许多优点,优点,FAT32因其与因其与Windows 9X的所用媒介的互操作性而的所用媒介的互操作性而继续起着重要作用。继续起着重要作用。8.6 NT文件系统文件系统8.6.1 NTFS概述概述NTFS的技术特点如下:的技术特点如下:兼容性和可扩充性兼容性和可扩充性 可恢复性、可靠性和安全性可恢复性、可靠性和安全性 数据冗余、数据容错和数据冗余、数据容错和RAID数据管理数据管理 功能强大,性能优越,支持超大容量外存介质功能强大,性能优越,支持超大容量外存介质 磁盘配额磁盘配额 总之,总之,NTFS不但满足了其基本设计目标,如可恢复性、不但满
39、足了其基本设计目标,如可恢复性、安全性和数据冗余与数据容错,而且还具有其它一系列高级安全性和数据冗余与数据容错,而且还具有其它一系列高级特性,如多数据流、基于特性,如多数据流、基于Unicode的名称、通用索引机制、的名称、通用索引机制、动态坏簇重新映射、硬链接、文件压缩、日志记录、磁盘配动态坏簇重新映射、硬链接、文件压缩、日志记录、磁盘配额、带区集、链接跟踪、加密、额、带区集、链接跟踪、加密、POSIX支持、碎片整理等。支持、碎片整理等。8.6.2 NTFS的卷和簇的卷和簇 1.卷卷 NTFS的基本实体是卷。卷是由的基本实体是卷。卷是由Windows的逻辑磁盘管理的逻辑磁盘管理器应用程序所创
40、建的,它是基于逻辑磁盘分区的。一个磁盘器应用程序所创建的,它是基于逻辑磁盘分区的。一个磁盘可以有多个卷,一个卷也可以有多个磁盘,每个卷可以有自可以有多个卷,一个卷也可以有多个磁盘,每个卷可以有自己独立的文件系统。己独立的文件系统。2.簇簇 NTFS与与FAT一样,簇一样,簇(cluster)是作为磁盘分配和回收的基是作为磁盘分配和回收的基本单元。一个簇的是由一些磁盘扇区组成的,扇区数是本单元。一个簇的是由一些磁盘扇区组成的,扇区数是2的的幂。幂。NTFS在格式化时就设置了簇的大小。在格式化时就设置了簇的大小。8.6.3 NTFS的数据结构的数据结构 NTFS中的文件并不是中的文件并不是MS-D
41、OS或者是或者是UNIX系统的简单的系统的简单的字节流,它是一个结构化的对象,由多种属性组成。一个文字节流,它是一个结构化的对象,由多种属性组成。一个文件的每个属性是一个独立的字节流,这种字节流可以新建、件的每个属性是一个独立的字节流,这种字节流可以新建、删除、读取和写出。有一些属性是标准的,适用于所有的文删除、读取和写出。有一些属性是标准的,适用于所有的文件,包括文件名、创建时间以及说明访问控制的安全描述子。件,包括文件名、创建时间以及说明访问控制的安全描述子。用户数据保存在数据属性中用户数据保存在数据属性中。NTFS的每个文件属性都保存在主文件表中的每个文件属性都保存在主文件表中(mast
42、er file table,MFT)的一个或多个记录中,被称为常驻属性的一个或多个记录中,被称为常驻属性(resident attribute)。NTFS的名称空间是根据目录层构成的。每个目录使用一的名称空间是根据目录层构成的。每个目录使用一个称为个称为B+树的数据结构,用于保存该目录内的所有文件名树的数据结构,用于保存该目录内的所有文件名称的一个索引。称的一个索引。8.6.4 NTFS日志文件日志文件 日志文件是在文件系统格式化时,用一个固定的最大尺寸日志文件是在文件系统格式化时,用一个固定的最大尺寸来创建的。它有两个区域:来创建的。它有两个区域:记录区域记录区域(logging area)
43、,它是日志记录的一个循环队列。,它是日志记录的一个循环队列。重启区域重启区域(restart area),它包含关联环境信息,如记录,它包含关联环境信息,如记录区域的位置,恢复期间区域的位置,恢复期间NTFS启动读取操作的地方。事实上,启动读取操作的地方。事实上,重启区域有两个相关信息的副本,如果一个副本在崩溃中被重启区域有两个相关信息的副本,如果一个副本在崩溃中被损坏,那么恢复还是可能的。损坏,那么恢复还是可能的。8.6.5 数据安全管理数据安全管理 1.磁盘容错技术磁盘容错技术 NTFS可支持可支持RAID-0级、级、RAID-1级和级和RAID-5级,最常用级,最常用的是的是5级,它能有
44、效地提高磁盘系统的利用率,也能提高磁级,它能有效地提高磁盘系统的利用率,也能提高磁盘系统的可靠性,降低每兆字节的存储费用,但要求有较多盘系统的可靠性,降低每兆字节的存储费用,但要求有较多的系统内存。的系统内存。2.高可用性集群系统高可用性集群系统 3.访问控制访问控制 访问控制是当前使用最广泛的系统安全保障技术之一,用访问控制是当前使用最广泛的系统安全保障技术之一,用于设定使用者的访问权限,为被访问对象设定访问许可权。于设定使用者的访问权限,为被访问对象设定访问许可权。在在NTFS目录服务的每一个对象中,都使用了安全描述子来目录服务的每一个对象中,都使用了安全描述子来控制对对象的访问。在安全描
45、述子的访问控制表控制对对象的访问。在安全描述子的访问控制表(ACL)中包中包含有多个表项,每一表项规定了某一用户含有多个表项,每一表项规定了某一用户(组组)对该对象的访对该对象的访问权限。访问权限可分为三类:第一类是作用于对象的全部问权限。访问权限可分为三类:第一类是作用于对象的全部属性,它允许或拒绝访问该对象的全部属性;第二类和第三属性,它允许或拒绝访问该对象的全部属性;第二类和第三类分别是作用于对象的一组属性和单一属性。类分别是作用于对象的一组属性和单一属性。8.7 网络功能网络功能 8.7.1网络协议网络协议 NT通过驱动程序来实现传输协议。这些驱动程序可动态地通过驱动程序来实现传输协议
46、。这些驱动程序可动态地装入或卸载,虽然有时需要在改变之后重启系统。装入或卸载,虽然有时需要在改变之后重启系统。NT有多有多个网络协议。个网络协议。1.服务器消息块服务器消息块SMB2.网络基本网络基本I/O系统系统NetBIOS3.网络网络BIOS扩展用户接口扩展用户接口NetBEUI4.传输控制协议传输控制协议/因特网协议因特网协议TCP/IP5.点到点隧道协议点到点隧道协议PPTP6.IPX/SPX协议协议7.基于基于Web的创建与版本协议的创建与版本协议WebDAV 8.AppleTalk协议协议8.7.2 域域 域是用于对用户和计算机资源进行组织和管理的一个基本域是用于对用户和计算机资
47、源进行组织和管理的一个基本单位,域同时也是实现安全管理的基本单位。可利用不同的单位,域同时也是实现安全管理的基本单位。可利用不同的方式来构造一个域,如基于管理模式时,可为企业中的每个方式来构造一个域,如基于管理模式时,可为企业中的每个重要部门各建立一个域。又如,可基于地理模式为每个分区重要部门各建立一个域。又如,可基于地理模式为每个分区各建立一个域。每个域都有自己的域名,可把域分成两类:各建立一个域。每个域都有自己的域名,可把域分成两类:一类是主域,其中含有用户信息和资源信息;另一类是资源一类是主域,其中含有用户信息和资源信息;另一类是资源域,它仅含有资源信息。通常的一个主域可包括以下几部分:
48、域,它仅含有资源信息。通常的一个主域可包括以下几部分:主域控制器主域控制器(PDC)、后备域控制器、后备域控制器(BDC)、服务器、网络工、服务器、网络工作站。作站。1.信任关系信任关系 信任关系总是涉及两个方面的域,一方是信任域,另一方信任关系总是涉及两个方面的域,一方是信任域,另一方是被信任域。信任域能够认识被信任域中的用户和账户,从是被信任域。信任域能够认识被信任域中的用户和账户,从而使被信任域中的用户能访问信任域中的资源。单向信任关而使被信任域中的用户能访问信任域中的资源。单向信任关系只允许被信任域中的用户去访问信任域中的资源,而双向系只允许被信任域中的用户去访问信任域中的资源,而双向
49、信任关系,则允许两个域中的用户去访问对方域中的资源。信任关系,则允许两个域中的用户去访问对方域中的资源。单向信任单向信任(one-way trust)正如其名称所指的,域正如其名称所指的,域A被告之它被告之它可信任域可信任域B。然而,域。然而,域B并不信任并不信任A除非配置了这种信任关系。除非配置了这种信任关系。2.用户账户用户账户 在在NT网络中,把用户分为三类,即普通用户、用户组和网络中,把用户分为三类,即普通用户、用户组和管理员。凡要到管理员。凡要到NT网络上登录的用户,都必须有一个用户网络上登录的用户,都必须有一个用户账户,在账户上存储有用户的许多信息,如用户名、用户口账户,在账户上存
50、储有用户的许多信息,如用户名、用户口令、用户访问网络资源时的允许权限、账户的有效时间等。令、用户访问网络资源时的允许权限、账户的有效时间等。3.目录服务数据库目录服务数据库 为了实现对用户为了实现对用户(组组)和计算机的管理,须为它们都建立账和计算机的管理,须为它们都建立账户,再把每一个账户都作为一个对象,存入主域控制器户,再把每一个账户都作为一个对象,存入主域控制器PDC目录服务数据库的安全账户管理目录服务数据库的安全账户管理(SAM)文件中。文件中。在引入在引入BDC后,必须保持后,必须保持BDC和和PDC之间的同步,使之间的同步,使BDC中的目录数据库中的数据,不断地随着中的目录数据库中