160 likes | 334 Views
第五章 Windows NT 网络操作系统. 5.1 Windows NT 系统概述. Windows NT 是一个单用户多任务的操作系统,为单个交互用户提供 了处理多个任务的能力,极大地方便了用户地使用。多任务地另一个目的 是适客户 / 服务器计算方式地发展。. 5.1.1 NT 的设计目标. 实施 Windows NT 规范的需求: 提供一个真正 32 位的抢先式可重入的虚拟存储操作系统; 能够运行于不同的硬件平台;
E N D
第五章 Windows NT 网络操作系统 5.1 Windows NT 系统概述 Windows NT 是一个单用户多任务的操作系统,为单个交互用户提供 了处理多个任务的能力,极大地方便了用户地使用。多任务地另一个目的 是适客户/服务器计算方式地发展。 5.1.1 NT 的设计目标 实施Windows NT规范的需求: 提供一个真正32位的抢先式可重入的虚拟存储操作系统; 能够运行于不同的硬件平台; 能够支持对称多处理机系统(SMP),具有良好的可伸缩性; 优秀的分布式计算平台,既可作为客户,又可作为服务器; 可运行多数原先的16位MS-DOS和Windows应用程序; 支持POSIX 1003.1规范; 符合政府和企业对操作系统安全性的要求; 支持Unicode,适应全球市场的需要。 NT的设计目标: 可扩充性、可移植性、可靠性和健壮性、兼容性、性能。
第五章 Windows NT 网络操作系统 5.1 Windows NT 系统概述 5.1.2 NT 的系统模型 NT使用的面向对象的概念如下: 封装:一个对象由一个或多个称为属性的数据项组成,在这些数据上 可以执行一个或多个称为服务的过程。 对象类和实例:一个对象类是一个模板,列出了对象的属性和服务, 并定义了对象的某些特性。操作系统可以在需要时创建对象类的具体实例, 如每个当前处于活动状态的进程只有一个进程对象类和一个进程对象。 继承:NT的用户级应用不支持集成,但执行体程序在某种程度上支 持继承。 多态性:NT内部使用通用的API函数集操作任何类型的对象,即一个 接口多种操作。 5.1.3 NT 的体系结构 1、硬件抽象层(HAL):HAL是使NT的可移植性成为可能的关键部件。 HAL是一个可加载的核心态模块,为运行在NT上的硬件平台提供低级接口, 将各种与硬件有关的细节隐藏起来。 2、微内核:由操作系统的最基本的部件组成。 3、设备驱动程序:包括文件系统和硬件设备的驱动程序。设备驱动程 序可以把用户的I/O功能调用转换成特定的硬件设备的I/O请求。NT设备驱动 程序有硬件设备驱动程序、文件系统驱动程序、过滤器驱动程序、网络重定 向程序和服务器。
系统 服务器进程 环境子系统 用户应用程序 NTDL 用户态 核心态 NT执行体 窗口和图形 设备驱动程序 微内核 硬件抽象层 第五章 Windows NT 网络操作系统 5.1 Windows NT 系统概述 5.1.3 NT 的体系结构 1、硬件抽象层(HAL):HAL是使NT的可移植性成为可能的关键部件。 HAL是一个可加载的核心态模块,为运行在NT上的硬件平台提供低级接口, 将各种与硬件有关的细节隐藏起来。 2、微内核:由操作系统的最基本的部件组成。 3、设备驱动程序:包括文件系统和硬件设备的驱动程序。设备驱动程 序可以把用户的I/O功能调用转换成特定的硬件设备的I/O请求。NT设备驱动 程序有硬件设备驱动程序、文件系统驱动程序、过滤器驱动程序、网络重定 向程序和服务器。 Windows NT 的体系结构图
第五章 Windows NT 网络操作系统 5.1 Windows NT 系统概述 5.1.3 NT 的体系结构 4、NT的执行体程序 NT的执行体程序包括一些特殊功能的系统模块,并为用户模式的应用 软件提供API。 5、NTDLL NTDLL是一个特殊的系统支持库,是主要用于NT子系统的动态链接库。 NTDLL包含两种类型的函数 : 作为Windows NT 执行体系统服务的系统服务窗口函数;子系统、子系 统动态链接库以及其他本机映象使用的内部支持函数。 6、NT环境子系统 NT有三种环境子系统:Win32、POSIX、OS/2。 7、用户进程 NT支持四种基本用户进程:特殊系统支持进程、服务器进程、环境子 系统、用户应用程序。
第五章 Windows NT 网络操作系统 5.2 Windows NT 的进程与线程管理 5.2.1 进程管理的数据结构 每个Windows NT 进程都由一个执行体进程(EPROCESS)块表示。 EPROCESS块的内容:内核进程块、进程标识符、配额块、虚拟地址 空间描述符、工作集信息、虚拟内存信息、异常本地过程调用、调试LPC 端口、访问令牌、句柄表、进程环境块、Win32子系统进程块。 5.2.2 进程创建过程 应用程序通过调用Win32的CreatProcess函数来创建一个Win32进程。 创建Win32进程分为几个阶段,其中涉及操作系统的三个部分: Win32客户方的KERNEL32.DLL库、 Windows NT 执行体、Win32子系 统进程。 CreatProcess函数执行的几个阶段: 打开将在进程中被执行的映象文件(.EXE); 创建Windows NT 执行体进程对象; 创建初始线程; 通知Win32子系统新进程的创建,以便它可以设置新的进程和线程; 启动初始线程的执行; 在新进程和线程的描述中,完成地址空间的初始化并开始程序的执行。
第五章 Windows NT 网络操作系统 5.2 Windows NT 的进程与线程管理 5.2.3 线程管理的数据结构 在系统内部,一个NT线程是由执行体线程(ETHREAD)块表示的。 执行体线程主要内容: KTHREAD块:其中包含Windows NT内核需要访问的信息,这些信息 用于执行线程调度和使运行的线程同步。 线程时间信息:线程的创建和退出时间。 进程识别:指进程ID和指向进程所属进程的EPROCESS块的指针。 开始地址:指线程启动例程的地址。 体现信息:指访问令牌和体现级别。 LPC信息:指线程正在等待的消息ID和消息地址。 I/O信息:指挂起的I/O请求数据包(IRP)列表。 5.2.4 线程创建过程 一个NT进程至少包含一个执行线程,线程的生存周期是从程序调用 CreatThread创建线程时开始。 (1)CreatThread在进程的地址空间内为线程创建用户态堆栈。 (2)CreatThread初始化线程的硬件描述表。 (3)调用NtCreatThread创建处于挂起状态的执行体线程对象。
第五章 Windows NT 网络操作系统 5.2 Windows NT 的进程与线程管理 (4) CreatThread通知Win32子系统有关新线程的信息,并且子系统为 新线程做一些设置工作。 (5)线程句柄和线程ID被返回给调用程序。 (6)除非调用程序使用CREATE_SUSPENDED标志设置创建线程;否 则,现在线程将被重复,以便能够被调度执行。 5.2.5 NT的线程调度 1、线程调度发生情况: 线程进入就绪态、线程的时间片用完、线程优先级的改变、正在运行的 线程的处理器簇改变时。 2、优先级: NT的调度依据是优先级,系统内维持多个优先级队列。NT中使用32个 优先级,范围为0-31。这些值的划分如下:16个实时级别(16-31)、15 个可变级别(1-15)、1个系统级别(0),为系统所保留。 3、Win32调度API Suspend/Resume Thread:从执行中挂起或恢复暂停的进程; Get/SetPriorityClass:返回或设置进程的基本优先级等级; Get/SetThreadPriority:返回或设置线程的优先级 Get/SetProcessAffinityMask:返回或设置进程的处理器簇相似性掩码; SetThreadAffinityMask:为一个特殊的处理器簇设置线程的相似性掩码。
I/O子系统 驱 动 程 序 支 持 例 程 I/O管理器 核心态驱动程序 HAL I/O访问例程 第五章 Windows NT 网络操作系统 5.2 Windows NT 的进程与线程管理 4、线程状态: 一个NT线程可以处于以下6个状态之一: 就绪、备用、运行、等待、转换、终止。 5.3 Windows NT 的设备管理 5.3.1 NT的I/O模型 Windows NT的I/O被称为“虚拟文件I/O”,即所有 I/O的源或目标都被当作文件来处理。所有读取或写入的数据都可以被看作是直接连到这些虚拟文件的简单的字节流。用户态应用程序调用文档化的函数,这些函数再依次地调用内部I/O子系统函数,对文件进行读取/写入或执行其他操作。I/O管理程序动态地把这些虚拟文件的请求指向适当的设备驱动程序。 NT系统的I/O模型图
调用内部执行体 系统服务的接口 I/O子系统 负责驱动I/O 请求的处理 驱 动 程 序 支 持 例 程 被设备驱动程序 调用来完成相应 的I/O请求 I/O管理器 把 I/O 请求转化为 对硬件设备的特定 的控制请求 核心态驱动程序 HAL I/O访问例程 第五章 Windows NT 网络操作系统 5.3 Windows NT 的设备管理 5.3.1 NT的I/O模型 其中的I/O访问例程 把设备驱动程序与 各种硬件平台隔离 开来,确保其可移 植性 NT系统的I/O模型各个部件说明图
第五章 Windows NT 网络操作系统 5.3 Windows NT 的设备管理 5.3.2 设备驱动程序 Windows NT支持多种类型的设备驱动程序。 虚拟设备驱动程序:用于模拟16位MS-DOS应用程序。它们捕获DOS 应用程序对I/O端口的调用,并将其转化为本机Win32 I/O函数。 Win32显示驱动程序和打印驱动程序:将与设备无关的图形请求转化 为设备专用请求。 核心态设备驱动程序:能够直接控制和访问硬件设备的惟一驱动程序 类型。 5.3.3 NT的I/O处理 Windows NT的I/O都使用了I/O请求包(IRP)结构传递。 1、单层驱动程序的I/O请求 处理单层驱动程序的同步I/O需要的步骤:I/O请求经过子系统DLL;子系 统DLL调用I/O管理程序的NtWriteFile 服务;I/O管理程序以IRP的形式给设备 驱动程序发送请求;设备驱动程序启动I/O操作;在设备完成了操作并且中断 CPU时,设备驱动程序提供中断服务;I/O管理程序完成I/O请求。
第五章 Windows NT 网络操作系统 5.3 Windows NT 的设备管理 5.3.3 NT的I/O处理 2、分层驱动程序的I/O请求 对于分层驱动程序的I/O处理与基于文件设备的I/O是相似的,它们与 前面单层驱动程序的I/O的主要区别在于引入了一个或多个附加层次。 5.4 Windows NT 的存储管理 5.4.1 系统地址空间 每个NT用户进程看到的是一个独立的32位地址空间,每个进程允许4GB 的存储空间。其中高地址部分的2GB存储空间为操作系统保留,而每个用户 实际上由2GB的可以虚地址空间,并且所有进程共享同一个2GB的系统空间。 5.4.2 内存管理程序 内存管理程序为环境子系统提供了一组系统服务来分配和释放虚拟内存、 在进程间共享内存、映射文件到内存、刷新虚拟页面到磁盘、恢复关于虚拟 页面范围的信息、更改它们的保护和将它们锁入在内存。 一页的三种状态: 可用:当前没有进程被使用; 保留:内存管理程序为一个进程保留的一组连续的页在被使用之前都没 有算在该进程的存储器分配额中。 提交:内存管理程序在它的页面调度文件中为这类页留出空间。
第五章 Windows NT 网络操作系统 5.4 Windows NT 的存储管理 5.4.3 虚拟存储机制 NT的虚拟存储是一种请求页式机制,采用了二级页表结构,将32位 的虚拟地址转换为物理地址,32位地址被分为3个部分:页目录索引、页 表索引和字节索引。 转换一个虚拟地址的基本步骤: 内存管理硬件定位用于当前进程的页目录。 页目录索引被用来作为在页目录中定位页目录项的索引,页目录项描 述了映射虚拟地址时对应的页表位置。 页表索引被用来作为在页表中定位PTE索引, PTE 描述了将要被访问 的虚拟页面地址。 PTE被用来定位页面。 当PTE被指向一个有效的页面时,字节索引就被用来定位在物理页面 所需数据存储单元的地址。 5.4.4 NT的高速缓存管理 NT提供Cache管理是为了提高文件的I/O性能。NT支持Win32的映像文件 I/O,这种使用存储空间将磁盘上的文件映射到其中的方法将大大提高I / O效 率。NT的Cache管理器就使用了映像文件I / O管理Cache,使系统响应时间大 为改善。
第五章 Windows NT 网络操作系统 5.5 Windows NT 的文件系统NTFS 5.5.1 NTFS的特点 可恢复性:NTFS具备从系统崩溃和磁盘故障中恢复数据的能力。 安全性:NTFS使用对象模型来实施安全机制。 大磁盘和大文件:NTFS比FAT文件系统能够更有效的支持非常大 的磁盘和非常大的文件。 多数据流:文件的实际内容被当作字节流处理。 通用索引功能:在NTFS中,每个文件都有一组属性与之相关联。 5.5.2 NTFS的内部结构 NTFS使用了一下磁盘存储的概念: 扇区:扇区是磁盘中最小的物理存储单元,一个扇区中能存储的数据量 字节数总是2的幂,并且通常为512个字节。 簇:簇是一个或多个连续的扇区,一个簇中扇区的数目也为2的幂,簇 是NTFS最基本的分配单位。 卷:卷是磁盘上的逻辑分区,由一个或多个簇组成,供文件系统分配空 间时使用。
文件I/O、命名管道、函件槽 环境子系统 供应者接口 重定向程序 TDI NTBIOS WinSock NETBEUI TCP/IP NDIS接口 NDIS环境和驱动程序 各种网络硬件、媒体 第五章 Windows NT 网络操作系统 5.6 Windows NT 的网络 5.6.1 NT网络的特点 NT网络的特点: 1、NT是内装网络,其实现是作为NT执行体的 I/O系统中的一个组件,属于操作系统内部的功能,因此,NT是一个真正的网络操作系统。 2、与其他网络的互操作性是很强的,NT可以与目前市场上多数主流的网络系统进行互连。 3、提供了基于RPC和其他机制的分布式应用开发功能。 4、具有较好的开放性。 5.6.2 NT网络的体系结构 NT网络体系结构图
第五章 Windows NT 网络操作系统 5.6 Windows NT 的网络 5.6.3 NT网络的重要组成部件 1、重定向程序:由网络提供者提供给接收和处理远程I/O服务请求的 操作系统。 2、服务程序:为了提高内部网络的通信能力。NT网络中的服务器对 应于I/O系统中介绍的文件系统驱动程序。 5.7 Windows NT 的分布式应用环境 一个分布式应用分为两个部分:一个是运行于前台的客户;另一个是 运行于后台的服务器。位于两者之间的连接是进程到进程级的。为了支持 这种分布式应用的开发,NT提供了NetBIOS、WinSock和RPC 机制。 5.7.1 NT的RPC工作原理 由于NT在RPC实现上的标准化,保持了RPC最大程度的可移植性。实际 上RPC使用了其他一些进程间通信的技术,在客户于服务器之间传输函数与 数据,其中包括命名管道、 NetBIOS和Windows Socket接口。如果客户与服 务器位于同一主机,则RPC将使用本地过程调用(LPC)技术在进程间或子 系统间传输数据。
第五章 Windows NT 网络操作系统 5.7 Windows NT 的分布式应用环境 5.7.2 NT的RPC应用开发 Microsoft RPC开发产品包括下列主要部件: MIDL编译器、运行库和头文件、传输接口模块、名字服务提供者、 端点提供服务。 NT上开发RPC应用的一般步骤: 1、创建接口定义文件和应用程序配置文件; 2、使用MIDL编译器从上述这些文件生成C语言的客户、服务器代理和 头文件; 3、编写一个管理连接到服务器的客户应用; 4、编写包含实际远程过程的服务器应用; 5、将这些文件进行编译,并与RPC运行时间库链接,最终生成分布式 应用程序。 END