《操作系统》课件-7.ppt
《《操作系统》课件-7.ppt》由会员分享,可在线阅读,更多相关《《操作系统》课件-7.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第7章 实例分析:Windows 2000操作系统1.2.3.本章讲述内容:本章讲述内容:Windows 2000的微内核结构、线程概念及其调的微内核结构、线程概念及其调度策略度策略;Windows 2000的页目录、页表两级地址转换过的页目录、页表两级地址转换过程,以及进程工作集概念程,以及进程工作集概念;Windows 2000支持的支持的NTFS文件系统及基于日文件系统及基于日志文件的可恢复性技术志文件的可恢复性技术;Windows 2000的的I/O请求包请求包(IRP)和两级中断处和两级中断处理理(ISR和和DPC)。4.7.1 Windows 2000的处理机管理的处理机管理o7.
2、1.1 Windows 2000的结构的结构“客户客户-服务器服务器”模型模型1.把操作系统分成若干进程,每个进程完成单一功能。这些进程被称为“服务器服务器”。应用程序为了请求所需要的服务,向服务器发消息。发送的消息被运行在核心态的内核俘获,由它传递给相应的服务器处理。服务器执行完操作,同样是通过内核,把回应的消息发还给用户。这就是操作系统设计的所谓“客户客户-服务器服务器”模型。微内核微内核2.硬 件内 核用户态核心态用户应用程序进程服务器文件服务器内存服务器网络服务器显示服务器用户进程用户进程(客户客户)系统进程系统进程(服务器服务器)用“客户-服务器”模型构造操作系统,中心思想是将其非基
3、本部分从内核里移走,只留下最为关键的进程管理、内存管理、以及进程通信等功能组成操作系统的内核。这是所谓的“微内核微内核”构造模式。用微内核模式构造出的操作系统,便于系统功能的扩充。粗线下方是操作系统核心,运行在统一的核心地址空间。内核:由系统最低级功能组成。3.Windows 2000的整体结构的整体结构硬 件OS/2应用程序POSIX应用程序Win32应用程序应用程序进程OS/2子系统POSIX子系统Win32子系统环境子系统进程打印服务程序假脱机程序事件日志服务进程服务管理程序Windows登录会话管理程序系统进程对象管理程序进程、线程管理程序安全访问监控程序即插即用管理程序本地过程调用工
4、具虚拟内存管理程序文件系统高速缓存管理器设备驱动器网络驱动器I/O管理器执行体内 核硬件抽象层(HAL)用户态核心态.粗线将Windows 2000分为用户态和核心态两个部分。粗线的上方既有运行在用户态的系统支持进程,也有真正的用户进程。它们一旦被创建,就运行在各自私有的用户地址空间中。.(1)执行体:提供进程和线程管理、进程通信、内存管理、对象管理、中断处理、I/O、网络及对象安全等。(2)(3)硬件抽象层:一个软件层,将执行体、内核与硬件分隔开来。o7.1.2 Windows 2000的进程和线程的进程和线程Windows 2000的进程和线程的进程和线程 1.Windows 2000把维
5、系在进程一体的两个特征分开来处理,形成不同的实体:让进程只具有“资源拥有者”这个特征,而“调度和运行”这个特征则赋予一个新的实体线程。.I/O信息。Windows 2000进程控制块(EPROCESS)里的基本内容(1)进程的ID:它是该进程在操作系统中的唯一标识。(2)安全描述符:记录谁是进程的创建者,谁可以访问和使用该进程。(3)基本优先级:进程中线程的基本优先级。(4)执行时间:进程中所有线程已经执行的时间总量。(5)链接指针:指向下一个进程控制块。(6)(7)进程环境块(PEB)。内存管理信息。.Windows 2000线程控制块里的基本内容(1)线程的ID:当线程调用一个服务程序时,
6、用来唯一标识该线程。(2)动态优先级:记录任何时刻线程的执行优先级。(3)指向线程所属进程的EPROCESS的指针。(4)线程类别(是客户线程还是服务器线程)。(5)执行时间:本线程执行时间总计。(6)线程环境块(TEB)。(7)转换转换:处于等待状态的线程,当等待的条件得到满足、但它所需要的资源此时不可用时,那么就转为转换状态。当该资源可用时,线程就由转换状态变为就绪状态。终止终止:一个线程执行完毕、或者被另一个线程撤消,它就成为终止状态。一旦完成了善后的辅助工作,该线程就从系统中消失。等待等待:运行状态的线程,因为某一事件(如I/O)而被阻塞,则进入等待状态。运行运行:拥有处理器的线程,处
7、于运行状态。一旦微内核实行进程或线程的切换,备用线程就进入运行状态并开始执行。备用备用:Windows 2000支持对称多处理器系统(SMP)。一个线程为备用状态,即它已被选定为下一次在SMP的某个特定处理器上运行。该线程在这个状态等待,直到那个处理器可用。就绪就绪:具有该状态的线程,已获得除处理机外的所有资源,因此可被调度执行。2.Windows 2000线程的状态及状态变迁线程的状态及状态变迁 在Windows 2000里,一个进程仍然有就绪、运行、等待(阻塞)三种基本状态。但线程则有六种可能的状态:就绪、备用、运行、等待、转换和终止。.初始化就绪转换备用运行等待终止创建并初始化接纳线程调
8、度剥夺时间片到切换完成资源可用解除等待资源不可用解除等待资源可用请求I/O或等待某资源可运行可运行不可运行不可运行.该表共32个表项,每个表项按线程的优先级,维持一个具有该优先级的线程就绪队列。o7.1.3 Windows 2000的线程调度的线程调度1.Windows 2000的线程调度的线程调度 Windows2000处理机调度的对象是线程,进程只是以资源和运行环境提供者的身份出现。实施的是一个基于优先级的、抢占式的多处理机调度策略。调度时,只针对线程队列进行,不考虑被调度线程属于哪一个进程。通常,一个线程可安排在任何可用处理机上运行,但也可以限制只在指定的处理机(称为“亲合处理机”)上运
9、行。2.引起线程调度的情况引起线程调度的情况.一个线程进入就绪状态;一个线程运行的时间片到时;.一个线程的优先级被改变;.一个运行线程改变其对亲合处理机的要求。3.线程调度的管理线程调度的管理313029210线程调度器就绪队列进程1线程1线程2进程1线程1线程2线程n就绪位图空闲位图.线程调度器就绪队列表.就绪位图空闲位图4.单处理机系统中的线程调度策略单处理机系统中的线程调度策略.主动切换 系统中的一个线程,可能会因等待某一事件、I/O操作、消息等,自己放弃处理机,进入等待状态。这时,Windows 2000就采用主动切换的调度策略,使就绪队列里的第1个线程进入运行状态。*线程优先级201
10、918171615运行状态 就绪状态*变为等待状态线程就绪队列抢占 当一个高优先级线程由等待变为就绪状态时,正处于运行状态的低优先级线程就被抢占。抢占可能出现在两种情况:一是处于等待状态的高优先级线程,所等待的事件出现;二是一个线程的优先级被提升。在这两种情况下,Windows 2000 都会确定当前运行线程是否继续运行,是否要被高优先级线程所抢占。*线程优先级18171615运行状态 就绪状态*从等待状态唤醒 在I/O操作完成、所等待的事件或信号量到来、前台线程等待结束、图形用户接口线程被唤醒、以及提高处理机饥饿线程(指在就绪队列里长期等待而一直没有得到运行机会的那种线程)的优先级时,Win
11、dows 2000都将以其基本优先级为基点,提升该线程的优先级。.时间配额用完 处于运行状态的线程用完时间配额时,Windows 2000 先判定是否要降低它的优先级,是否要调度另一个线程运行。若要降低该线程的优先级,那就让一个新的线程投入运行。若不降低其优先级,且有优先级相同的其他就绪线程存在,那就选择一个线程运行,该线程排到就绪队列末尾;若无相同优先级的就绪线程可运行,那刚用完时间配额的线程将得到一个新的时间配额继续运行。线程优先级15141312运行状态 就绪状态*.结束 当一个线程在自己的时间配额里运行完毕,那么它的状态就由运行变为终止。这时系统将重新调度另一个就绪线程运行。5.线程优
12、先级的升降线程优先级的升降 一个线程在时间配额使用完后,其优先级一般都会降低(以便给别的线程有投入运行的机会)。.o7.2.1 Windows 2000进程的空间布局进程的空间布局1.虚拟地址空间虚拟地址空间 Windows2000采用32位虚地址结构。因此,每个用户进程最大的虚拟地址空间是232=4GB。7.2 Windows 2000的存储管理的存储管理2GB2GB用户空间7FFFFFFF000000002GB系统空间FFFFFFFF80000000一个进程3GB3GB用户空间BFFFFFFF000000001GB系统空间FFFFFFFFC0000000一个进程 4GB虚拟地址空间可以有两
13、种布局情况:一是每个用户进程占有其中的2GB,作为自己的私有地址空间,余下的2GB是所有进程共用的系统地址空间;2.虚拟地址空间的布局虚拟地址空间的布局 另一是每个用户进程占有其中的3GB,作为自己的私有地址空间,余下的1GB是所有进程共用的系统地址空间。通常,Windows2000默认的虚拟地址空间布局是每个用户占用2GB的私有地址空间情况。后一种情况只是为了满足一些应用程序的特殊需求,而采用的临时解决办法。.每个页表项(PTE)为4个字节长,记录该页表项对应的页帧号(PFN),以及描述该页帧使用状态和保护限制的一些标志位。为此,Windows 2000的一个虚拟地址被划分成三部分:页目录索
14、引、页表索引、页内位移量。Windows 2000的每个页表索引项,需用4个字节表述。因此,1M个页表索引项需花费4MB这么多的存储量,这不利于内存空间的有效利用。由于虚地址是32个二进制位,每页尺寸4KB。因此在虚地址里,应用12位表示页内位移量(212=4KB),用20位表示页号。页号也称页表索引。这样,Windows 2000向用户提供的虚地址空间,最多可拥有220=1M个页面,即每个页表里会有1M个页表索引项,用来记录虚地址空间里页与物理内存页帧间的对应关系。o7.2.2 Windows 2000的地址变换机构的地址变换机构1.虚拟地址的构成虚拟地址的构成 Windows 2000通过
15、请求分页的方式,向用户提供虚拟存储。在那里,物理内存中划分的块被称为“页帧”(有的也称为“页框”),每个页帧的尺寸为4KB。.32位虚拟地址:页目录索引页表索引页内位移量3122 2112 110虚页号.页帧号GILADCdOWtWVUPCW311211 109876543210Windows页表项结构 页目录由一个个页目录项(即页目录索引,PDE)组成,记录了进程一个(小)页表的状态和位置。每个进程最多可以有1024个页表,所以页目录里最多有1K个页目录项,正好放在一个内存页帧里。每个进程有一个页目录,由它获得该进程所有(小)页表位置。系统把页目录的地址存放在进程控制块里,实施进程切换时,就
16、把该地址加载到CPU内部的一个寄存器(如CR3)中,并根据CR3里的当前内容,完成所需的地址变换。任何一个进程的页表集合,都由两部分组成:进程页表完成对私有地址空间(2GB)地址变换的任务;系统的页表实现对共享的系统地址空间(2GB)地址变换的任务。2.页表与页表项页表与页表项.无论是进程私用的进程页表,还是大家共用的系统页表,都是由一个个页表项(即页表索引,英文缩写为PTE)组成。.进程1私用的进程页表集合进程2私用的进程页表集合系统页表进程1的页目录PDE 0PDE 511PDE 512PDE n进程2的页目录PDE 0PDE 511PDE 512PDE n进程私用进程私用进程共用.3.虚
17、拟地址的变换过程虚拟地址的变换过程 每当进程切换时,操作系统将该进程的页目录地址置入专用寄存器CR3中。于是,CR3指向该进程的页目录。.页目录索引PDEPTE进程的页目录进程的页表集合物理地址一个页帧专用寄存器CR3页表索引页内位移量内存32位虚拟地址:每个进程一个页目录,含1024项每个进程最多512个私用页表,512个系统页表,每张表1024项.由虚拟地址中的页目录索引,指出页目录项(PDE)的位置,从中得到当前所需页表的位置。即从进程的页表集合里,挑选出进行地址转换所需要的页表。.由虚拟地址中的页表索引,指出所选页表里的页表项(PTE)位置。在这一页表项里,记录有虚拟页面在内存的位置。
18、.若页表项是有效的,那么记录的页帧号(PFN)是有效的,虚拟页面就在这个物理帧中;若页表项是无效的,那就会引起缺页中断,需从磁盘里调入所需要的页面。.当页表项为有效时,就根据虚拟地址中的页内位移量,找到所需数据在物理页帧中的位置,完成对它的地址重定位。进程装入内存时,根据应用类型、程序要求等原则,分配一定数量的页帧,作为它的工作集,把所需要的页面和一些后续相邻页面一起填满工作集中的页帧。Windows 2000创建一个进程时,就在内存里分配给它一定数量的页帧私用,存放运行所需要的页面。称这些页面为该进程的“工作集工作集”。工作集工作集1.o7.2.3 Windows 2000对内存的管理对内存
19、的管理.系统对进程工作集的管理(1)发生缺页时,从产生缺页的进程工作集中选择一个页面用于替换。(2)不断评估对进程页帧的分配,增加或减少分配给它的页帧数,即进程工作集的尺寸是动态变化的,以提高系统对内存整体的使用性能。(3)页帧号数据库页帧号数据库2.页帧号数据库的作用 Windows 2000是通过“页帧号数据库页帧号数据库”的数组,来管理内存中的各个页帧,跟踪它们的使用情况的。该数组拥有的元素个数,正是整个内存储器中页帧的数目。即数组元素的下标,恰好对应着内存各页帧的页帧号。“页帧号数据库”的名字,由此而得。它的每一个元素记录相应页帧的使用情况:是否空闲,所处状态,以及被谁占用等。零初始化
20、零初始化:页帧空闲,并初始化。.进程页帧的六种状态页帧号V=0,U=1一个页表项进程2的页表页帧号V=1,U=0一个页表项进程1的页表状态:有效页表项地址状态:修改页表项地址状态:后备页表项地址一个元素一个元素页帧号数据库一个元素(1)有效有效:一个进程正在使用该页帧,它在系统某个进程的工作集里。因此,必定有一个有效的页表项指向它。(2)空闲空闲:页帧处于空闲,但含有不确定的数据。(3)后备后备:已从某进程工作集撤除,原先页表中的页表项已被设置为无效,但是“页帧号”没有变,仍然指向该页帧。(4)修改修改:已从某进程工作集中撤除,原先页表中的页表项已设置为无效,但“页帧号”没有变,仍然指向该页帧
21、。(5)坏死坏死:该页帧产生奇偶校验错,或其他硬件错误,不能再参与分配。(6).进程页表与页帧数据库的关系 系统由进程页表表项里的“页帧号”,就可以知道该页与内存里的哪一个页帧相对应;由页帧号数据库元素里的页表项地址,就可以知道这个页帧与哪个进程的哪一个页表里的表项相对应。若所需的不是一个零初始化页帧,那就先去查空闲帧链表;若空,则去查后备帧链表。在决定要把后备帧链表里记录的一帧分配出去前,须从页帧号数据库的元素回溯,找到进程页表里相关的表项(它的状态是V=0,U=1),清除其里面的“页帧号”,以断绝这个页表项与该页帧的联系。这样,才能保证分配的安全。要求存储分配时,若要的是一个零初始化页帧,
22、那么就先试图从初始化帧链表中得到一个可分配页帧;若该链表空,则从空闲帧链表中选取一帧并将其初始化;若空闲帧链表也空,那么就改为从后备帧链表中选取一帧并将其初始化;如此等等。7.2.4 Windows 2000的页面调度的页面调度1.Windows 2000的取页策略的取页策略 所谓“取页策略取页策略”,即是指决定何时把一个页面从磁盘调入内存。Windows 2000采用请求调页法和集群法结合的形式,把所需要的页面装入内存。即当线程产生缺页中断时,系统不仅把所需的页装入,也把它附近的一些相邻页一起装入。2.Windows 2000的置页策略的置页策略 当缺页中断时,系统必须确定把虚拟页面放入到物
23、理内存的什么地方。这就是所谓的“置页策略置页策略”。具体策略如下所述。.若必须把一个处于修改状态的页帧分配出去,那就先将该页帧的内容写入磁盘,然后将它链到后备帧链表里去,以便将它正确地分配出去。当进程不得不从工作集中淘汰一个页面时,如果该页面未被修改过,那么就将该页链入后备帧链表;如果页面读出后被修改过,则把它链入到修改帧链表。当撤消一个进程时,它的所有私用页面,都被链入到空闲帧链表里。若内存不满,系统会允许进程拥有尽量多的页面作为大的工作集。若进程所需页面数超过了规定的工作集最大值,那就只能从自己的工作集中移出一页,腾出空间装新的页面。在单处理机系统中,对进程工作集采用最近最久未用(LRU)
24、换页算法。创建进程时,在内存里分配一定数量的页帧(即工作集)给它,以保证其运行的需要。系统实施的是可变式的工作集策略,即根据所管理物理内存的数量,为进程规定了最小工作集和最大工作集的规模。对诸进程共享的系统虚拟空间中可分页的代码和数据,也分配一个系统工作集,也规定它可取的最小值和最大值。若线程产生缺页中断时,内存已没有空闲的页帧可供分配使用,那么就要决定把内存中的哪个页面调换(淘汰)出去。这就是所谓的“换页策略换页策略”。3.Windows 2000的换页策略的换页策略.缺页中断时,先检查进程的工作集大小和系统当前空闲内存的数量。如有可能,系统就允许进程把自己的工作集规模增加到最大值(如果有足
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课件
限制150内