《操作系统》课件-第9章-Windows2000-XP操作系统.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《操作系统》课件-第9章-Windows2000-XP操作系统.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课件 Windows2000 XP
- 资源描述:
-
1、Windows 2000/XP的结构和特点的结构和特点 Windows 2000/XP进程管理进程管理Windows 2000/XP设备管理设备管理 Windows 2000/XP文件管理文件管理 Windows 2000/XP内存管理内存管理 用户态与核心态用户态与核心态微内核设计微内核设计可移植性可移植性支持对称多处理机支持对称多处理机使用面向对象的程序设计概念使用面向对象的程序设计概念 I/O管理程序 高速缓存 对象 虚拟存储器 进程/线程 安全访问 局部过程 窗口 管理程序 管理程序 管理程序 管理程序 监控程序 调用LPC 管理程序用户态核心态文件系统 设备驱动程序内核硬件抽象层HA
2、L硬件接口(总线、中断、时钟、DMA、Cache控制等)系统线程核心态可调用接口NTDLL.dll打印服务程序事件记录器服务管理程序Windows登录会话管理程序POSIXOS/2Win32用户应用程序子系统动态连接库系统进程服务进程应用程序环境子系统POSIX应用fork()Win32子系统POSIX子系统CreateProcess()本地过程调用 进 程 对象 管理器 管 理 器Windows2000内核Windows2000的进程关系 Windows 2000/XP中的进程是资源分配的基本单位, Windows 2000/XP中的进程作为对象来管理,可以通过句柄引用进程对象。为了支持Wi
3、n32、OS/2、POSIX等多种运行子环境, Windows 2000/XP核心的进程之间没有任何关系(包括父子关系)各运行环境子系统分别建立、维护和表达各自的进程关系。进程对象访问令牌VADVADVAD线程线程线程访问令牌对象对象对象句柄列表虚拟地址空间描述Windows2000中的W i n32进 程 结构虚拟地址空间描述表对象句柄列表线程块列表Windows2000/XP进程的特点:进程作为对象实现一个进程可含有多个线程进程对象与线程对象都具有同步能力 Windows2000/XP的进程控制由各环境子系统相应的系统调用来实现 Win32子系统用于进程控制的系统调用有:uCreatePr
4、ocess创建新进程及其主线程uExitProcess终止进程及其所有线程,并关闭所有的对象句柄。uTerminateProcess终止进程及其所有线程,不关闭所有的对象句柄,用于异常情况下的进程终止。nWindows2000的线程是内核支持线程。系统调度以线程为单位。线程上、下文(TCB)主要包括:线程控制块核心栈用户栈运行就绪等待时间片用完线程调度请求I/O或等待某事件I/O完成或事件完成退出初始化接纳完成转换激活挂起备用抢先创建和初始化线程对象切换 CreateThread 创建线程 ExitThread 结束当前线程 SuspendThread 挂起指定线程 ResumeThread
5、激活指定线程互斥对象(Mutex)就是互斥信号灯,用于对线程的互斥访问。相关API: CreateMutex 创建一个互斥对象,返回一个对象句柄 OpenMutex 打开并返回一个已存在的互斥对象句柄 ReleaseMutex 释放对互斥对象的占用临界区对象(CriticalSection)用于一个进程中多个线程对临界区的互斥访问。相关API: InitializeCriticalSection 对临界区对象进行初始化。 EnterCriticalSection 等待占有临界区的使用权。 TryCriticalSection 以非等待方式申请临界区的使用权。 LeaveCriticalSect
6、ion 释放对临界区的使用权。 DeleteCriticalSection 删除与临界区有关的所有系统资源。信号量对象(Semaphore)资源信号灯,初始值0n,用于限制并发访问的线程数。相关API: Create Semaphore 创建一个信号量对象,在输入参数中指定初始值和最大值,返回一个对象句柄。 Open Semaphore打开并返回一个已存在的信号量对象句柄 Release Semaphore 释放对信号量对象的占用事件对象(Event)相当于触发器。通知线程某事件的出现。 CreateEvent 创建一个事件对象,返回一个对象句柄 OpenEvent 打开并返回一个已存在的事件
7、对象句柄 SetEvent 指定事件对象为可用状态 ResetEvent 指定事件对象为不可用状态 PulseMutex 指定事件对象为可用状态 WaitForSingleObject 在指定时间内等待指定对象为可用。 WaitForMultipleObject 在指定时间内等待多个对象为可用共享存储区可用于进程间的大数据量通信。参与通信的各个进程可以任意读写共享存储区。使用共享存储区时需要进程互斥和同步机制来确保数据的一致性。 Windows2000采用文件映射机制实现共享存储区。相关API有: CreateFileMapping 为指定文件创建一个文件映射对象,返回对象指针 OpenFil
8、eMapping 打开一个命名的文件映射对象,返回对象指针。 MapViewOfFile 把文件映射到本进程的地址空间,返回映射地址空间的首指针。 FlushViewOfFile 把映射地址空间的内容写到物理文件中去。 UnmapViewOfFile 拆除文件与本进程地址空间之间的映射关系。 CloseHandle 关闭文件映射对象。管道是一种在进程间以字符流方式传送的通信通道。Windows2000提供有名管道和无名管道。无名管道的系统调用有:(UNIX和OS/2均有) CreatePipe 创建一个无名管道并得到一个读句柄和一个写句柄。 ReadFile 读管道。 WriteFile 写管
9、道。命名管道是服务器进程和客户进程间的一条通信通道,可实现不同机器上的进程通信。系统调用有: CreateNamedPipe 在服务器端创建并饭后一个命名管道句柄。 ConnectNamedPipe在服务器端等待客户的请求。 CallNamedPipe 客户进程建立与服务器的管道连接。 ReadFile WriteFile 读写管道(阻塞方式)。 ReadFileExWriteFileEx读写管道(非阻塞方式)。Windows2000提供的邮件槽是一种不定长、不可靠的单向消息通信机制。消息发送不需要接受方准备好,随时可以发送。邮件槽也采用客户-服务器机制,只能从客户端发往服务器。相关系统调用:
10、 CreateMailslot 在服务器方创建邮件槽,返回其句柄。 GetMailslotInfo 服务器查询邮件信息。 SetMailslotInfo 服务器设置读操作等待期限。 ReadFile 服务器读邮件槽。 CreateFile 客户方打开邮件槽。 WriteFile 客户发送消息。套接字是一种网络通信机制,它通过网络在不同的计算机上的进程间进行双向通信。套接字采用的报文格式为:可靠的字符流不可靠的报文。通信模式为:客户-服务器模式对等模式。 TCP/IP协议是广泛使用的网络通信协议。 Windows2000/XP的线程调度特征的线程调度特征 Windows2000/XP 实现了一个
11、基于优先级的多处理机调度系统。 通常线程可在任何可用处理器上运行,但也可以限制某线程只能在某处理器上运行。 亲合处理器集合允许用户通过Win32调度函数选择其偏爱的处理器。线程调度的触发事件有:线程调度的触发事件有:一个线程进入就绪态一个线程时间片用完一个线程的优先级被改变一个正在运行的线程改变了它的亲合处理器集合103130131086424高级中上中级中下空闲实时15实时优先级范围1631可变优先级范围115零页线程Windows2000内部内部使用使用32个线程优先个线程优先级。级。 16个实时优先级个实时优先级(1631):):用户可以通过Win32编程接口改变实时优先级的级别,但必须
12、有此权限。 15个可变线程优个可变线程优先级(先级(115):):可通过Win32编程接口指定线程的优先级为:高级、中上、中级、中下、空闲。一个系统线程优一个系统线程优先级(先级(0):):仅用于对系统中空闲物理页面进行清零的零页线程。时间配额长度 前后台变化 前后台线程时间配额提升时间配额时间配额是一个线程从进入运行状态到系统检查是否有其它优先级相同的线程需要开始运行之间的时间总和。时间配额的计算时间配额的计算 Windows2000/XP专业版中线程开始时的时间配额为6 Windows2000/XP服务器版专业版中线程开始时的时间配额为36每次时钟中断,时钟中断服务例程从线程的时间配额中减
13、少一个固定值3(X86单处理机时钟中断间隔为10毫秒) 。时间配额的控制:时间配额的控制:在系统注册表中有一个注册项Win32PrioritySeparation,允许用户指定时间配额的长度和前后台线程的时间配额是否加长。03130进程进程就绪位图线程线程线程线程空闲位图线程调度器就绪队列31 031 0基本优先级当前优先级处理器偏好时间配额缺省基本优先级缺省处理器偏好缺省时间配额线程调度器数据结构线程调度器数据结构主动切换主动切换抢先抢先时间配额用完时间配额用完运行结束运行结束线程优先级20191817161514运行状态阻塞状态就绪状态主动切换主动切换181716151413运行状态就绪状
14、态线程的抢占调度线程的抢占调度从阻塞状态唤醒线程优先级1514131211运行状态就绪状态时间配额用完时的线程调度时间配额用完时的线程调度线程优先级 I/O操作完成后线程的优先级提升等待事件和信号量后的线程优先级提升前台线程在等待结束后的优先级提升图形用户接口线程被唤醒后的优先级提升对处理机饥饿线程的优先级提升 注:windows2000/XP永远不会提升实时优先级(1631)的线程的优先级。 Windows2000/XP基于Intel 80 x86及Pentium CPU芯片Intel 80 x86及Pentium CPU既支持分段,也支持分页。可根据需要构成以下四种存储管理方式:不分段也不
15、分页。这种方式可用于高性能的控制器分页不分段。这种方式成为一个单纯的页式存储管理系统,UNIX/386、Linux 、 Windows2000/XP采用这种方式分段不分页段页式存储管理机制。OS/2等采用这种方式Windows2000/XP采用请页式内存管理,内存管理器是Windows2000/XP执行体的一部分,在Ktoskrnl.exe文件中。它由以下几部分组成:一组执行体系统服务程序服务程序,用于虚拟内存的分配、回收和管理。这些程序以Win32API或设备驱动程序的形式出现。一个转换无效和访问错误陷阱处理程序陷阱处理程序,用于解决硬件检测到的内存管理异常,并负责将虚拟页面装如内存。运行在
16、六个不同的核心态系统线程上下文中的关键组件组件。u工作集管理器u进程/堆栈交换程序u已修改页面写入器u映射页面写入器u废弃段线程u零页线程应用程序(2GB)操作系统(2GB)80000000FFFFFFFF7FFFFFFF00000000应用程序(3GB)操作系统(1GB)C0000000FFFFFFFFBFFFFFFF00000000 范围范围 大小大小 功能功能0 x00 xFFFF 64KB 拒绝访问区域,帮助程序员避免不正确的指针引用。0 x100000 x7FFEFFFF 2GB-至少192KB 进程私有地址空间0 x7FFDE0000 x7FFDEFFF 4KB 线程环境块TEB0
17、 x7FFDF0000 x7FFDFFFF 4KB 进程环境块PEB0 x7FFE00000 x7FFE0FFF 4KB 共享的用户数据页面 0 x7FFE10000 x7FFEFFFF 60KB 拒绝访问区域0 x7FFF00000 x7FFFFFFF 64KB 拒绝访问区域,阻止线程跨过用户/系统边界传送缓冲区。地址地址功能功能80000000系统内核、HAL和未分页系统空间A0000000系统映射视图(Win32k.sys图形驱动)、会话空间A4000000附加的系统页表项PTEC0000000进程的页面和页目录C0400000超空间和进程工作集列表C0800000没有使用,不可访问C0
18、C00000系统工作集列表C1000000系统高速缓存E1000000分页系统空间EB000000系统页表项PTE、未分页系统空间扩充FFBE0000故障转储信息FFC00000HAL使用页表索引字节索引页目录索引10位10位12位注:PAE运行物理地址扩展系统采用三级页表页目录索引 页表索引 页内位移31 22 21 12 11 0CR3PDEPTE页目录页表内存Page Directory Entry,PDE Page Table Entry,PTE PDE 511进程1的页目录PDE 512PDE nPDE 0PDE 511进程2的页目录PDE 512PDE nPDE 0系统页表进程1的
19、页表进程2的页表进程没有访问的系统页表PTE 0PTE 0PTE nPTE 0进程页目录中,最多有512个进程页表项且最多有512个系统页表项。系统空间的内容被多个进程所共享。页框号 U F Cw Gl L D A Cd Wt O W V31 12 11 10 9 8 7 6 5 4 3 2 1 0标志标志 名称名称 含义含义U (第11位) 转换 该在内存的后备链表或修改链表中,不是有效页。F (第10位) 原型 表示该页为共享页。Cw (第9位) 保留Gl (第8位) 全程符 变换对全部进程有效,0该页是私有页,1该页是共享页。L (第7位) 保留D (第0位) 修改位 此页是否已被修改过
20、,0为未写,1为写过。A (第5位) 访问位此页是否已被访问过,0为未访问,1为访问过。Cd (第4位) 禁用高速缓存 禁止访问此页的高速缓存。Wt (第3位) 通写 在多处理环境下可写。写入此页时禁用高速缓存,内存页 面数据修改时立即刷新磁盘对应数据。O (第2位) 所有者 此页是否可在用户态下访问,还是只能在核心态下访问。W (第1位) 写 0表示页只读,1表示页可读/写。V (第0位) 有效 表示变换是否映射到物理内存的实际页面。为无效, 为有效访问无效页时产生缺页中断。当页表项的有效位有效位V为“有效”时,进行正常的地址变换;对于无效的页表项,可以有以下四种情况:未知未知:页表不存在或
21、需要的页表项为0。此时应检查虚拟地址描述符(VAD)以确定这个虚拟地址是否已经提交。如果已经提交,则建立页表,以表示新近提交的地址空间。在页文件中:在页文件中:所需的页尚未调入内存,在磁盘文件中。请求零页:请求零页:请求零页时,页面管理器从零页链表中取出一页分配给进程。如果此时零页链表为空,页面管理程序负责从空闲链表中取出一页,将其初始化后予以分配。转换转换:此时页表项的第11位U为1,表示所需的页面在内存的后备链表(原来是该进程驻留集中)或修改链表中。将所需的页从其当前的页表中删除,并将该页添加到驻留集中。页文件是提供虚拟存储器的磁盘空间。如果计算机的内存为64MB,磁盘上有100MB的页文
22、件,则认为该计算机的虚拟存储器是164MB。 Windows 2000/XP缺省的页文件大小为20MB,系统引导时创建。要增加页文件的大小,可以使用控制面板中的服务程序。范围:200000002000FFFF保护限制:读/写继承:有范围:000020000000FFFF保护限制:只读继承:无范围:4E0000004F000000保护限制:可写继承:有范围:320000003300FFFF保护限制:只读继承:无范围:7AAA00007AAA00FF保护限制:读/写继承:无虚拟地址描述符虚拟地址描述符VAD:描述哪些虚拟地址是空闲的,哪些已使用。目的是存储保护,当线程访问VAD之外的地址时,系统可
23、作出访问违法的提示。文件对象区域对象指针数据区控制区域映像区控制区域文件对象高速缓存映射虚拟地址描述符区域对象结构 区域对象的用途区域对象的用途加载和执行.exe和.dll文件。访问磁盘上的数据文件。实现多个进程间的数据共享。无效:指向原型页表项有效:PFN 5无效:在页文件中有效:PFN 5段结构页目录页表原型页表PFN 5内存共享计数=2原型页表项地址PFN 5页框号数据库表u如果一个页面被两个以上的进程所共享,内存管理器利用原型页表项来映射这些共享页面。u当区域对象首次被创建时,原型页表项同时被创建。u当进程首次访问区域对象中的页面时,内存管理器利用原型页表项中的信息添入进程页表。u为了
24、记录访问共享页面的进程数,在页框号数库中设有一个计数器。当没有进程访问时,页面就标记为“无效”。u当共享页面有效时,进程页表项和原型页表项均指向同一物理页。u当共享页面无效时,进程页表中的页表项指针指向原型页表项。内存大小 代码页面簇的大小 数据页面簇的大小 其它页面簇的大小19MB8 48内存大小 缺省的最小工作集的大小 缺省的最大工作集的大小32MB50 345缺页故障读取的簇的大小缺省的最大和最小工作集的大小当发生缺页时,内存管理器以簇为单位读入若干页。可以用Win32函数SetProcessWorkingSet改变工作集大小的缺省值。页框号页框号PFN数据库数据库描述了物理内存中各个页
25、的状态。页面可以是以下8种状态之一:活动活动:有一个有效的页表指向它。过渡过渡:对该页面正在进行I/O。后备后备:该页被使用过但现在已被删除,页表项仍指向其物理页。修改修改:该页被使用过但现在已被删除,页面在使用中被修改过且未写到磁盘。页表项仍指向其物理页。修改不写入修改不写入:与修改页面同,但被标记为不用写回磁盘。空闲空闲:页是空闲的,但有不确定的数据。零初始化零初始化:页是空闲的,并且已经由零页初始化线程初始化。坏坏:页面产生了错误,不可用。修改页写回器零初始化线程后备页链表修改页链表空闲页链表零初始化页链表坏页链表进程工作集应用服务WIN32系统服务WMI服务安装组件用户模式的即插即用管
展开阅读全文