收藏 分享(赏)

第7章 实例分析:Windows 2000操作系统.ppt

上传人:sjmd695 文档编号:10201055 上传时间:2019-10-18 格式:PPT 页数:117 大小:452KB
下载 相关 举报
第7章 实例分析:Windows 2000操作系统.ppt_第1页
第1页 / 共117页
第7章 实例分析:Windows 2000操作系统.ppt_第2页
第2页 / 共117页
第7章 实例分析:Windows 2000操作系统.ppt_第3页
第3页 / 共117页
第7章 实例分析:Windows 2000操作系统.ppt_第4页
第4页 / 共117页
第7章 实例分析:Windows 2000操作系统.ppt_第5页
第5页 / 共117页
点击查看更多>>
资源描述

1、7.1 Windows 2000的处理机管理 7.2 Windows 2000的存储管理 7.3 Windows 2000的文件管理 7.4 Windows 2000的设备管理,第7章 Windows 2000 操作系统实例分析,(1)Windows 2000的微内核结构、线程概念及其调度策略; (2)Windows 2000的页目录、页表两级地址转换过程,以及进程工作集概念; (3)Windows 2000支持的NTFS文件系统及基于日志文件的可恢复性技术; (4)Windows 2000的I/O请求包(IRP)和两级中断处理(ISR和DPC)。,本章主要内容,7.1 Windows 200

2、0的处理机管理,7.1.1 Windows 2000的结构当今,可以用一种名为“客户- 服务器”的模型,来构造操作系统。,图7-1 客户- 服务器模型,用这种方法来构造操作系统,其中心思想是将系统中的非基本部分从内核里移走,只把最为关键的进程管理、内存管理以及进程通信等功能,留存下来组成系统的内核。这就是所谓的“微内核”构造模式。,7.1.1 Windows 2000的结构,Windows 2000就是基于这样一种模式来构造和设计的,图7-2是它的整体结构。,Windows 2000系统内核特点,图7-2 Windows 2000的整体结构,7.1.2 Windows 2000的进程和线程,1

3、线程的概念以往的操作系统中,进程具有的两个基本特征。(操作系统只有进程,没有线程) 进程是系统进行资源分配的单位; 进程是系统进行处理机调度分派的单位。,Windows 2000把这两个都维系在进程一体的特征分开来处理,形成不同的实体:让进程只具有“资源拥有者”这个特征,而“调度和运行”这个特征则赋予一个新的实体线程。,进程与线程区别,线程概念,“线程(thread)”是进程的一个实体,是进程中实施调度和处理机分派的基本单位。,进程与线程的关系,因此,如果把进程理解为是操作系统在逻辑上需要完成的一个任务,那么线程则是完成该任务时可以并发执行的多个子任务。,图7-3 进程和线程的关系示意,2、W

4、indows 2000的进程和线程,引入了线程后,系统中既有进程控制块也有线程控制块,它们分别描述了进程和线程应有的一些基本属性。,3Windows 2000线程的状态及状态变迁,一个进程在Windows 2000里,仍然只有就绪、运行、等待(阻塞)三种基本状态。但线程则有六种可能的状态:就绪、备用、运行、等待、转换和终止。,图7-4 Windows 2000线程的状态及其变迁,4进程与线程的比较,图7-5 进程与线程间的比较,进程和线程比较,(1)地址空间不同进程的地址空间是相互独立的,同一进程的各个线程共享同一个地址空间。因此,进程中的线程,不可能被另一个进程所看见。,进程和线程比较(续)

5、,(2)通信关系不同进程间的通信,必须使用操作系统提供的进程通信机制。同一进程的各个线程间的通信,可以直接通过访问共享的进程地址空间来实现。 (3)调度切换不同进程间的调度切换,系统要花费很大的开销(比如,要从这个地址空间转到那个地址空间)。同一进程的线程间的切换,无须转换地址空间,显然会减少很多的系统开销。,7.1.3 Windows 2000的线程调度,Windows 2000处理机调度的对象是线程,进程只是以资源和运行环境提供者的身份出现。,线程调度策略,Windows 2000实施的是一个基于优先级的、抢占式的多处理机调度策略。调度时,只是针对线程队列进行,并不去考虑被调度线程属于哪一

6、个进程。,线程调度时机, 一个线程进入就绪状态; 一个线程运行的时间片到时; 一个线程的优先级被改变;,1Windows 2000进程的优先级,在Windows 2000里,进程可以有四种优先级:实时(Real-Time)、高(High)、普通(Normal)以及空闲(Idle)。这四种优先级的默认取值是:24、13、7/9、4。,2Windows 2000线程的优先级,在Windows 2000里,一旦线程被创建,它就取所属进程的优先级。Windows 2000线程的优先级,可以取031的值。,图7-6 线程的优先级分布,进程与线程优先级特点,一个进程只能有单个优先级的取值,因此称其为基本优

7、先级。一个进程里的线程,除了仍然有所属进程的基本优先级外,还有运行时的当前优先级。 线程的当前优先级,随占用CPU时间的长短等因素,会不断地得到调整(在115的范围)。,3线程时间的配额,线程时间的配额,就是所谓的时间片,它不是一个时间的长度值,而是一个配额单位的整数。 每个线程都有一个代表本次运行最大时间长度的时间配额。由于Windows 2000采用的是抢占式调度,因此一个线程有可能在没有用完它的时间配额时,就被其他线程所抢占。,4线程调度的管理,Windows 2000用一张所谓的“线程调度器就绪队列”表、一个就绪位图、一个空闲位图来管理有关线程的调度。如图7-8所示。,图7-8 Win

8、dows 2000线程调度的管理,5单处理机系统中的线程调度策略,Windows 2000在单处理机系统和多处理机系统中,所实施的线程调度是不同的。单处理机系统中的线程调度策略,是严格基于优先级来确定哪个线程占用处理机,并进入运行状态。多处理机系统中的线程调度,本书不去涉及。,(1)主动切换,图7-9 线程的主动切换调度,(2)抢占,图7-10 线程的抢占调度,(3)时间配额用完,图7-11 时间配额用完时的线程调度,(4)结束,5线程优先级的升降,图7-12 线程优先级升降过程示意,7.2 Windows 2000的存储管理,7.2.1 Windows 2000进程的空间布局,Windows

9、2000采用的是32位的虚拟地址结构。因此,每一个用户进程最大的虚拟地址空间可以是232 = 4GB。,图7-13 Windows 2000虚拟地址空间的两种布局,7.2.2 Windows 2000的地址变换机构,1虚拟地址的划分 Windows 2000是通过请求分页的方式,向用户提供虚拟存储的。 在Windows 2000中,物理内存中划分的块被称为“页帧”(有的书上也称为“页框”),每个页帧的尺寸为4KB。这就是说,虚拟地址空间里一页的尺寸,也是4KB大小。,Windows 2000虚拟地址的划分,图7-14给出了Windows 2000虚拟地址的划分情况。图中一个虚拟地址被划分成三个

10、部分:页目录索引、页表索引、页内位移量。,图7-14 Windows 2000虚拟地址的构成,2页目录与页目录项,每个进程都有一个页目录,通过它能够获得该进程所有(小)页表的位置。 页目录由一个个页目录项(也就是图7-14里的页目录索引,英文缩写为PDE)组成。每个页目录项为4个字节长,记录了进程一个(小)页表的状态和位置。,3页表与页表项,Windows 2000中,每一个进程都有一个(小)页表集合(里面最多可以是1K个页表),由它们完成具体的地址变换。 任何一个进程的页表集合,都可分为两部分:进程页表和系统页表。,图7-15 Windows 2000的进程页表和系统页表,图7-16 Win

11、dows 2000页表项结构,4虚拟地址的变换过程,图7-17描述了Windows 2000将一个虚拟地址变换成物理地址的过程。,图7-17 虚拟地址的变换过程示意图,7.2.3 Windows 2000对内存的管理,1进程的工作集概念Windows 2000在创建一个进程时,就在内存中分配给它一定数量的页帧私用,存放运行所需要的页面。称这些页面为该进程的“工作集”。,2页帧号数据库,Windows 2000是通过一个叫“页帧号数据库”的数据结构,来管理内存中的各个页帧,跟踪它们的使用情况的。 一个内存的页帧必定属于下面六种状态之一。,页帧状态,(1)有效 (2)零初始化 (3)空闲 (4)后

12、备 (5)修改 (6)坏死,图7-18 页表与页帧号数据库的关系示意,3页帧的各种队列,页帧号数据库中处于不同状态的元素,由指针组成5个链表,,图7-19 页帧号数据库中的各种链表,7.2.4 Windows 2000的页面调度,Windows 2000在实施请求页式存储管理时,制定了三种策略:取页策略、置页策略和换页策略,以求在不同场合决定如何实施具体的页面调度。,1Windows 2000的取页策略,所谓“取页策略”,即是指决定什么时候把一个页面从磁盘调入内存。Windows 2000采用的是请求调页法和集群法相结合的形式,把所需要的页面装入内存的。,表7-1 缺页中断读取的页面规模(单位

13、:页),2Windows 2000的置页策略,当缺页中断时,系统必须确定把虚拟页面放入到物理内存的什么地方。这就是所谓的“置页策略”。可选的内存页帧,应该都从初始化帧链表、空闲帧链表、后备帧链表和修改帧链表中得到。,3Windows 2000的换页策略,如果线程产生缺页中断时,内存已经没有空闲的页帧可供分配使用,那么就要决定把内存中的哪个页面调换(淘汰)出去。这就是所谓的“换页策略”。 Windows 2000实施的是一种可变式的工作集策略。即根据所管理物理内存的数量,为进程规定最小工作集和最大工作集的规模。,7.3 Windows 2000的文件管理,7.3.1 Windows 2000文件

14、系统综述1Windows 2000的文件系统模型Windows 2000的文件系统属于核心态的执行体,它与I/O管理器紧密相联。,1Windows 2000的文件系统模型,用户应用程序中的I/O请求,先是要经过文件系统驱动程序,才能与设备驱动程序发生关系,完成所需要的输入/输出。,图7-21 Windows文件系统模型,2磁盘卷与簇,(1)磁盘卷Windows 2000支持的文件系统,都是以卷作为存储基础的。所谓“卷”,主要指的是磁盘上的分区。,(2)簇,所谓“簇”,是指若干个物理扇区的集合。簇的大小随磁盘卷的尺寸而不同,但总是把簇取成是物理扇区的整数倍,而且通常是2的幂次。,3Windows

15、可以直接支持的文件系统,(1)FAT文件系统FAT是文件分配表(File Allocation Table)的英文缩写。它是借助所谓的“文件分配表”,来管理磁盘存储空间、创建和使用文件的一种方法。,图7-22 FAT卷的结构,图7-23 FAT中的文件分配链,(2)NTFS文件系统,NTFS是英文“New Technology File System”的缩写,是一种具有较好容错性和安全性的全新文件系统。,NTFS文件系统,NTFS文件系统,按照簇的尺寸来划分文件的虚拟空间,这样形成的顺序号,称为虚拟簇号(Virtual Cluster Number,VCN);把整个卷中所有的簇从头到尾进行顺序

16、编号,称为逻辑簇号(Logical Cluster Number,LCN)。,图7-24 文件VCN和LCN的关系示意,NTFS卷组成部分,NTFS把卷上的磁盘存储区分成两个部分,其中大约12%的空间(当然是以簇为单位)分配给主控文件表(Master File Table,MFT)使用,余下88%的空间被分配用于存储各种文件。,图7-25 NTFS的磁盘卷结构,4Windows的本地FSD和远程FSD,(1)本地FSD,图7-26 本地FSD,(2)远程FSD,远程FSD应该由两部分组成:客户端的FSD与服务器端的FSD,如图7-27所示。,图7-27 远程FSD,7.3.2 NTFS的主控文

17、件表(MFT),1NTFS的主控文件表(MFT) MFT是一个数组,是一个以数组元素为记录构成的文件。MFT中每个元素的长度是一定的,都是1KB。 在NTFS文件系统中创建一个文件时,就会在MFT存储区里开辟一个1KB大小的元素,用于记录该文件的有关信息。,1NTFS的主控文件表(MFT),也就是说,只要是存于NTFS卷上的文件,在MFT里都会有一个元素与之对应。,2MFT的元素结构,MFT中的每个元素,是由一系列的(属性,属性值)对组成。 当属性值能够直接存放在MFT的元素里时,称其为“常驻属性”。 大文件或大目录中包含的属性,显然有时用一个MFT元素可能放不下。,2MFT的元素结构,NTF

18、S就会在MFT之外(即在图7-25里所标示的“文件存储区”里)给它们分配存储区域。这样的存储区域,称为一个“扩展(extent)”。,图7-28 小文件、小目录的MFT元素样式,7.3.3 NTFS文件和目录的结构,1NTFS文件的结构 在NTFS文件系统中,文件的物理结构是采用索引式的。,图7-29 大文件的VCN与LCN的索引表,2NTFS目录的结构,在NTFS系统中,一个小目录的MFT元素将对所含的文件名及子目录名进行排序,然后保存在索引根属性中。对于一个大的目录,其MFT元素没有足够的空间来存储大目录的文件名索引。这时,一部分索引仍在MFT的索引根属性中,而另一部分则只有出现在扩展中。

19、这种扩展被称为“索引缓冲区”。,7.3.4 NTFS对可恢复性的支持,1“可恢复性”的含义所谓文件系统“可恢复性”的含义是指:由于突然断电或软件故障等的发生,系统崩溃后重新开始致力于恢复时,能够确保磁盘卷结构上记录的数据不被丢失,不受到损坏。,1“可恢复性”的含义,NTFS是采用基于事务的日志文件技术,来达到这一目的。,2NTFS的日志文件及日志文件服务程序,在系统运行时,NTFS会随时在日志文件中记录下影响NTFS卷结构的各种操作。 以便万一系统陷于崩溃时,NTFS卷能够得到尽可能的恢复(注意,所恢复的只是文件系统卷的数据,而不是恢复用户的数据)。,图7-30 日志文件结构,日志文件服务,日

20、志文件服务(Log File Service,LFS)程序,是NTFS中的一组核心态程序,NTFS正是通过LFS来管理和访问日志文件,完成对日志文件的打开(open)、写入(write)、向前(prev)、向后(next)、更新(update)等操作的。,3日志文件中的记录类型,日志文件中可以存放多种类型的记录,最为主要的有:“更新”记录,“检查点”记录,“事务表”记录,以及“脏页表”记录。它们在系统的恢复过程中,起到重要作用。,图7-31 日志文件中的更新记录,图7-32 日志文件中的检查点记录,4可恢复性的实现,为了实现可恢复性,在重新启动时NTFS将对磁盘上的日志文件进行三次扫描:分析扫

21、描,重做扫描,撤销扫描。,图7-33 系统恢复过程中的分析扫描示意,7.4 Windows 2000的设备管理,7.4.1 Windows 2000设备管理综述1Windows 2000 I/O系统的结构图7-34给出了Windows 2000 I/O系统的组件示意。它由I/O系统服务、I/O管理器、各种驱动程序(文件系统的和设备的)等组成。,图7-34 Windows 2000 I/O系统的组件,2I/O请求包(IRP),I/O请求包(IRP)是I/O系统用来存储处理I/O请求所需信息的地方。当线程程序中出现一个有关的系统调用时,I/O管理器就为这个请求构造一个IRP,以便表示在整个I/O进

22、展过程中系统要做的各种操作。,3驱动程序的组成,Windows 2000支持多种类型的驱动程序。,图7-35 IRP的结构,图7-36 处理I/O请求时不同阶段的主要程序,3驱动程序的组成, 初始化程序 添加设备程序 一组功能调用程序 启动I/O程序 中断服务程序(Interrupt Service Routine,ISR) 中断服务程序(Interrupt Service Routine,ISR),4驱动程序的分层,Windows 2000对不同的设备,采用不同的驱动程序分层结构。 对于简单的面向字符的设备大都使用单层设备驱动程序结构来完成用户的I/O请求,大容量的设备总是使用多层驱动程序结

23、构,如图7-37(b)所示。,图7-37 I/O驱动程序的分层结构,7.4.2 Windows 2000单层驱动程序的I/O处理,1同步I/O操作与异步I/O操作通常,人们熟悉的I/O操作都是同步的。,图7-38 两种I/O方式,Windows 2000的I/O系统,Windows 2000的I/O系统也提供了异步处理I/O的能力,并成为它的一个特点。,异步I/O操作,所谓“异步I/O操作”,即是指在用户线程发出一个I/O请求、并把该请求交给I/O系统去处理的时候,发出请求的线程并不是处于等待处理完成的状态,而是仍然可以继续自己的其他某些工作。 等到系统将该I/O处理完毕,再把结果传递给相应的线程。,2单层驱动程序I/O请求的实现,图7-39 单层驱动程序对一个I/O请求的同步处理过程,图7-40 单层驱动程序对一个I/O请求的异步处理过程,7.4.3 Windows 2000两级中断处理过程,1中断处理的第一阶段:ISRWindows 2000在系统中维持着一张 “中断分配表”,该表以中断源的中断请求级(IRQL)作为索引,每个表项存放着相应的中断服务程序(ISR)入口地址。,图7-41 设备中断处理的第一阶段,2中断处理的第二阶段:DPC,图7-42 设备中断处理的第二阶段,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报