
WindowsNT操作系统.ppt
51页WindowsNT操作系统 1 概述 93年推出WINDOWSNT是一个32位的多任务操作系统 NT操作系统控制CPU时间的分配 而不是控制应用程序的分配 NT支持多CPU 多CPU提供真正的多任务 使用对称的多处理 意味着处理器分享所有任务 不象非对称的多处理那样让操作系统使用一个CPU 而让应用程序用另一个CPU NT也是一个容错的操作系统 应用程序在自己的虚拟内存地址空间 4GB 上运行 一个应用程序不会干扰另一个应用程序的内存空间 1 WINDOWSNT的特点 图形用户界面技术 支持多操作系统运行环境 对称多处理能力 内装网络功能 多重文件系统与异步I O以及采用面向对象的软件开发技术它提供了现代操作系统的几乎所有功能 如 多任务能力 多处理系统 虚拟资源管理 统一成一体化的I O系统 网络通信功能等 具有很多的性能 2 设计目标 可扩充性 要求操作系统易于扩充 随市场需求的变动易于改动 可移植性 尽可能通过少改动而移植到不同的处理机上 可靠性 操作系统应是稳健的 能对一切意外处理 主动保护自己及其它用户免遭破坏 兼容性 能执行为其它操作系统所编写的程序能力 如早期版本等 高的系统性能 快速处理图 文 声 像 仿真软件等 3 NT的优良特性 先进的操作系统结构性能优良的内核程序丰富的网络服务 2 WindowsNT的系统模型 客户 服务器模型对象模型对称处理模型 1 客户 服务器模型 提供多种操作系统运行环境的支持 由NT设计目标兼容性的要求 改进了可靠性 A 每个服务器是以分配给它的主存分区的独立进程方式运行 B 每个服务器是以独立的用户进程方式运行C 适宜于分布式计算模型 2 对象模型 NT操作系统使用对象模型有以下优点 操作系统访问和操纵其资源是一致的 通过对象句柄 所有对象采用同样的保护方法 因此简化了安全措施 3 对称多处理模型 所谓多处理模式是指一台计算机中具有两个以上的处理机 可同时执行 NT线程 每个处理机上同时可有一进程 或线程 在执行 对称多处理系统允许操作系统在任何一个处理机上运行 即各处理机平等 它们既可执行操作系统又执行用户进程 共同负责管理系统主存 外设和其它资源 各处理机共用主存 NT采用对称处理模式的优点 操作系统可在任一个空闲的处理机上运行 也可同时在各处理机上运行 一个进程的多个线程可同时在多个处理机上运行 服务器进程可使用多个线程在不同的处理机上处理多个客户进程的服务请求 3 WindowsNT的结构图 1 WindowsNT的结构 NT分为系统用户态部分 NT保护子系统 和系统核心态部分 NT执行体 核心态处于特权处理器方式下 用户态处于非特权处理器方式 核心态包括了系统服务和硬件描述层 HAL 系统服务包含了一个操作系统的所有应有服务 文件系统 进程控制 内存管理 设备管理等等 NT中除了微内核外 另外还包含了一些独特的部分 如对象管理器 配置管理器 执行体支持 本地过程调用 安全监视器 所有这些都建立在HAL之上 IO管理器实现对设备的管理 包含了文件系统 中间介质和设备驱动 2 保护子系统 用户态模式是由诸客户进程 服务器进程所构成的部分 其结构为客户 服务器模型 由环境子系统和集成子系统组成 用户态模式包括了一些保护子系统 如OS 2子系统 POSIX子系统 安全子系统 当然还有最常用的Win32子系统 NT都称之为服务器 它们运行于CPU的用户层Ring3 建立在服务器上的各类应用程序被称为客户 3 环境子系统 是一个用户态服务器 为特定的操作系统提供一个API 它为客户进程提供的服务是这样的 当一个应用程序调用其相应的某个API时 一个消息通过执行体的本地过程调用 LPC 工具 发送给完成该API的程序服务器 环境子系统 子系统执行API例程 并通过LPC将结果返回应用程序进程 4 集成子系统 是完成重要操作系统功能的服务器 包括安全子系统 网络软件中的若干部件 用户态的每个环境子系统都可支持多个客户应用程序同时运行 当用户试图进入系统时 首先须进行登录 由安全子系统对用户进行是否允许其进入和权限的检查与控制 安全子系统维护着一个有关用户账号信息的DB 任何非法用户都不许进入 5 NT执行体 NT执行体基本上是一个完整的操作系统 它由一组部件组成 层次结构的第一层是由系统服务下面的几个部件构成 这些部件可通过内部界面互相调用 NT内核是第二层 它类似Mach的微内核 最底一层是硬件抽象层 HAL 它将NT执行体的其余部分与运行机器的硬件特性隔离开来 6 NT执行体各组成部件的主要功能 对象管理程序 生成 管理及删除执行体对象 安全调用监视程序 监视操作系统资源 执行运行对象的保护和审查 实施安全方针 进程管理程序 生成和终止进程及线程 执行暂停和恢复线程的执行 存贮和检索有关NT进程和线程的信息 NT执行体各组成部件的功能 续 本地过程调用功能 LPC 在同一台计算机中的客户进程和一个服务器进程之间传送消息 是远程过程调用的优化版本 虚拟存贮管理 VM 程序 为每个进程提供专有地址空间 对进程地址空间进行保护 负责页面调度 内核 对中断和异常作出响应 调度线程 提供一组基本对象和接口 NT执行体各组成部件的功能 续 I O系统包括下列子部件 I O管理程序 文件系统 网络 定向程序和网络服务器 设备驱动程序 高速缓冲存贮管理程序硬件抽象层 HAL 运行于CPU的特权层Ring0 在驱动程序内部 在不同部分还分为不同权限层 以上这些组成部件中的前六个部件都要实现两组函数 1 系统服务 可以由环境子系统和其它执行体部件调用 2 内部例程 只可由在执行体内的组成部件使用 4 对象 是个抽象数据结构 在NT中用以表示所有资源 对象是数据和有关操作的封装体 它包括数据 数据的属性以及可以施加于数据上的操作等三个成分 NT的对象类 可理解为资源类 NT执行体中定义的对象类有 进程 线程 区域 文件 事件 事件对 信息量 时间器 对象目录 简要表 符号连接 关键字 端口 存贮令牌 多用户终端程序 1 执行体对象类 2 NT执行体实现两种对象 执行体对象 由执行体的各组成部件实现的对象 能被子系统或NT执行体创建和修改 其对象类列于上表中 内核对象 由内核实现的一个更基本的对象集合 称为控制对象集合 包括 内核过程对象 异步过程调用对象 延迟过程调用对象 中断对象 电源通知对象 电源状态对象 调度程序对象等 3 进程 被定义为表示操作系统所要做的工作 是操作系统用于组织其必须完成的诸项工作的一种手段 它由四个部分组成 一个可执行的程序 它定义了初始代码和数据一个私用地址空间 即进程的虚拟地址空间 系统资源 由操作系统分给进程至少有一个执行线程 与传统操作系统进程概念的不同 进程是作为对象来实现的 它也是可共享的资源 NT进程要求一个独特的组成成分 至少一个执行线程 NT进程的组成中没有PCB 有关的信息在进程对象的对象体中及局限于进程对象表中等处都有进程的信息调度和执行的基本单位是线程而不是进程 因此不必划分进程状态 与传统操作系统进程概念的不同 一个NT进程可有多个线程在其地址空间内执行 进程是由进程创建的 当应用程序启动时 相应的环境子进程调用执行体的进程管理程序为之建立以进程 并返回一句柄 然后进程管理程序又调用对象管理程序为之建立一个进程对象 当系统启动时 系统为每个环境子系统建立一个服务器进程 进程管理程序不维护进程的父 子或其它关系 进程和线程都具有内含的同步机制 4 线程 进程内的一个执行单元 进程内的一个可调度实体 若把进程理解为操作系统所做的作业 则线程表示完成该作业的许多可能的子任务之一 它由四个基本组成部分组成 一个唯一的标识符 ID 描述处理机状态的状态寄存器内容 相当于老PSW 两个栈 分别用于用户态和核心态下执行时使用 一个私用存储器 线程的优点 通过线程可方便有效地实现并行性 进程可创建多线程执行同一程序的不同部分创建线程比创建进程快 少开销 它除栈和寄存器内容外 共享同一主存创建多线程 对客户同时提出请求回答十分便利 因服务器程序只被装入主存一次 就可使多客户同时提出服务请求分别由一独立服务器线程通过执行适当的服务器功能 并行为客户进行处理 5 对象 进程和线程间的关系 对象 进程和线程是组织和构造NT操作系统的三个基本成分 它们之间互相交叉 对象是一抽象的数据结构 是构成操作系统的三个基本成分中非活动的成分 而进程 线程是构成操作系统的二个活动成分 它们的关系如下 对象 进程和线程间的关系 续 线程是进程的一个组成部分 进程的多个线程都在进程的地址空间活动 资源分配的对象是进程 即资源是分给进程而非线程 调度的基本单位是线程 即CPU是分配给线程的 线程在执行过程中 需要协作同步 在不同进程的线程间的同步用消息通信 它要用到进程的资源 端口 因此 通信的是线程 用的消息队列是进程的资源 可喻为 进程相当董事长 线程相当部门经理 或类似作业与进程 6 内核的主要任务 调度线程的执行当中断核异常发生时 将控制转移到相应的中断和异常执行低级的多处理器同步在电源失效后 实现系统的恢复过程 NT内核提供了一组精心定义的操作系统原语机制 通过使用内核原语 NT执行体可构成许多更高级的功能 1 线程的生命期的状态 一个线程的生命期的状态是变化的 它在任何一个时刻的状态是六种状态之一 就绪状态 线程已具备执行的条件 等待CPU执行 调度程序从中选入备用备用状态 被调度程序选用定为某一特定处理机上只能有一个处于备用状态的线程 运行状态 一旦调度程序对线程执行完描述表切换 线程进入运行状态 等待状态 以下情况线程进入其状 线程等待同步对象 因I O 自己挂起 转换状态 若线程已准备好执行 但由于资源成为不可用 如页在外存 从而转入转换状态 当资源成为可用 则进入就绪状态 终止状态 线程完成它的执行 2 优先级 内核的线程调度程序是采用可抢占的动态优先级调度算法 调度程序按线程的优先级调度线程的执行顺序 先调度高优先级的线程 NT支持32个优先级 分两类 实时优先级从16 31实时程序所用的主优先级线程 可变优先级从1 15 当系统中无任何事件时 内核提供一总在执行的线程 称为空闲线程 优先级最低 3 中断和异常处理 NT中的中断主要是由硬件引起的 是随机发生的异常事件 而异常是某一特别指令执行的结果 是同步情况 如主存存取错 除零 当中断和异常发生被捕捉后 系统将执行线程由用户态切换到核心态 将CPU控制权交给操作系统中有效在主存中固定地址的陷阱处理程序 它首先保存执行线程中断现场 确定所发生的情况 并转相应处理程序 7 输入输出 I O 系统 建立一个统一的主层界面 I O设备虚拟界面 即将所有读写数据看成直接送往虚拟文件的字节流 8 NT的内装网络 无需其它软件即可为用户提供文件共享 打印机共享 电子邮件和网络DDE等功能 9 对象管理程序 它的主要功能是创建 管理 删除用来表示操作系统资源的对象 操作系统通过对象管理程序对资源进行统一的管理 使用共同的代码操纵它们 对象管理程序的工作 NT的对象管理程序在接到创建对象的系统服务后 要做以下工作 为对象分配主存 给对象一个附加安全描述体 以指出允许谁使用对象以及谁被允许进行操作 创建和维护对象目录表目创建一个对象句柄并返回调用者 NT对对象的管理 组织和操作的模型是基于文件系统的模型 10 NT的安全性 登录进程和安全子系统存取令牌存取控制表主存保护客户 服务器模型 11 虚拟内存 NT 2K XP中 操作系统利用虚拟内存管理技术来维护地址空间映像 每个进程分配一个4GB的虚拟地址空间 运行在用户态的应用程序 不能直接访问物理内存地址 而运行在核心态的驱动程序 能将虚拟地址空间映射为物理地址空间 从而访问物理内存地址 1 进程的虚拟地址空间 NT为每个进程提供一个很大的虚拟空间 4GB 抛弃了早期从8086 80286使用分段模式造成的64K局限 NT运行在32位的386以上微机 进程4GB的地址被。












