《操作系统》幻灯片-第9章--windows2000-xp操作系统

上传人:F****n 文档编号:88132656 上传时间:2019-04-19 格式:PPT 页数:86 大小:1MB
返回 下载 相关 举报
《操作系统》幻灯片-第9章--windows2000-xp操作系统_第1页
第1页 / 共86页
《操作系统》幻灯片-第9章--windows2000-xp操作系统_第2页
第2页 / 共86页
《操作系统》幻灯片-第9章--windows2000-xp操作系统_第3页
第3页 / 共86页
《操作系统》幻灯片-第9章--windows2000-xp操作系统_第4页
第4页 / 共86页
《操作系统》幻灯片-第9章--windows2000-xp操作系统_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《《操作系统》幻灯片-第9章--windows2000-xp操作系统》由会员分享,可在线阅读,更多相关《《操作系统》幻灯片-第9章--windows2000-xp操作系统(86页珍藏版)》请在金锄头文库上搜索。

1、第9章 Windows 2000/XP操作系统,Windows 2000/XP的结构和特点, Windows 2000/XP进程管理,Windows 2000/XP设备管理,Windows 2000/XP文件管理, Windows 2000/XP内存管理,用户态与核心态 微内核设计 可移植性 支持对称多处理机 使用面向对象的程序设计概念,9.1 Windows 2000/XP的结构和特点,Windows 2000/XP的结构,9.2Windows 2000/XP的进程管理, Windows 2000/XP中的进程是资源分配的基本单位, Windows 2000/XP中 的进程作为对象来管理,可

2、以通过句柄引用进程对象。 为了支持Win32、OS/2、POSIX等多种运行子环境, Windows 2000/XP 核心的进程之间没有任何关系(包括父子关系)各运行环境子系统分别 建立、维护和表达各自的进程关系。,Windows2000/XP的Win32中的进程结构,虚拟地址空间描述表 对象句柄列表 线程块列表,Windows2000/XP进程的特点: 进程作为对象实现 一个进程可含有多个线程 进程对象与线程对象都具有同步能力,Windows2000/XP进程控制, Windows2000/XP的进程控制由各环境子系统相应的系统调用来实现 Win32子系统用于进程控制的系统调用有: Crea

3、teProcess创建新进程及其主线程 ExitProcess终止进程及其所有线程,并关闭所有的对象句柄。 TerminateProcess终止进程及其所有线程,不关闭所有的对象句柄,用于异常情况下的进程终止。,Windows2000/XP的线程,Windows2000的线程是内核支持线程。系统调度以线程为单位。线程上、下文(TCB)主要包括: 线程控制块 核心栈 用户栈,Windows2000/XP的线程状态及其转换,Windows2000/XP的线程控制用系统调用, CreateThread 创建线程 ExitThread 结束当前线程 SuspendThread 挂起指定线程 Resum

4、eThread 激活指定线程,Windows2000/XP的互斥与同步,互斥对象(Mutex)就是互斥信号灯,用于对线程的互斥访问。相关API: CreateMutex 创建一个互斥对象,返回一个对象句柄 OpenMutex 打开并返回一个已存在的互斥对象句柄 ReleaseMutex 释放对互斥对象的占用 临界区对象(CriticalSection)用于一个进程中多个线程对临界区的互斥访问。相关API: InitializeCriticalSection 对临界区对象进行初始化。 EnterCriticalSection 等待占有临界区的使用权。 TryCriticalSection 以非等

5、待方式申请临界区的使用权。 LeaveCriticalSection 释放对临界区的使用权。 DeleteCriticalSection 删除与临界区有关的所有系统资源。,Windows200/XP的互斥与同步,信号量对象(Semaphore)资源信号灯,初始值0n,用于限制并发访问的线程数。相关API: Create Semaphore 创建一个信号量对象,在输入参数中指定初始值和最大值,返回一个对象句柄。 Open Semaphore打开并返回一个已存在的信号量对象句柄 Release Semaphore 释放对信号量对象的占用 事件对象(Event)相当于触发器。通知线程某事件的出现。

6、CreateEvent 创建一个事件对象,返回一个对象句柄 OpenEvent 打开并返回一个已存在的事件对象句柄 SetEvent 指定事件对象为可用状态 ResetEvent 指定事件对象为不可用状态 PulseMutex 指定事件对象为可用状态 WaitForSingleObject 在指定时间内等待指定对象为可用。 WaitForMultipleObject 在指定时间内等待多个对象为可用,Windows2000/XP基于文件映射的共享存储区,共享存储区可用于进程间的大数据量通信。参与通信的各个进程可以任意读写共享存储区。 使用共享存储区时需要进程互斥和同步机制来确保数据的一致性。 W

7、indows2000采用文件映射机制实现共享存储区。相关API有: CreateFileMapping 为指定文件创建一个文件映射对象,返回对象指针 OpenFileMapping 打开一个命名的文件映射对象,返回对象指针。 MapViewOfFile 把文件映射到本进程的地址空间,返回映射地址空间的首指针。 FlushViewOfFile 把映射地址空间的内容写到物理文件中去。 UnmapViewOfFile 拆除文件与本进程地址空间之间的映射关系。 CloseHandle 关闭文件映射对象。,Windows2000/XP的管道,管道是一种在进程间以字符流方式传送的通信通道。Windows2

8、000提供有名管道和无名管道。 无名管道的系统调用有:(UNIX和OS/2均有) CreatePipe 创建一个无名管道并得到一个读句柄和一个写句柄。 ReadFile 读管道。 WriteFile 写管道。 命名管道是服务器进程和客户进程间的一条通信通道,可实现不同机器上的进程通信。系统调用有: CreateNamedPipe 在服务器端创建并饭后一个命名管道句柄。 ConnectNamedPipe在服务器端等待客户的请求。 CallNamedPipe 客户进程建立与服务器的管道连接。 ReadFile WriteFile 读写管道(阻塞方式)。 ReadFileExWriteFileEx读

9、写管道(非阻塞方式)。,Windows2000/XP的邮件槽,Windows2000提供的邮件槽是一种不定长、不可靠的单向消息通信机制。消息发送不需要接受方准备好,随时可以发送。邮件槽也采用客户-服务器机制,只能从客户端发往服务器。相关系统调用: CreateMailslot 在服务器方创建邮件槽,返回其句柄。 GetMailslotInfo 服务器查询邮件信息。 SetMailslotInfo 服务器设置读操作等待期限。 ReadFile 服务器读邮件槽。 CreateFile 客户方打开邮件槽。 WriteFile 客户发送消息。,套接字,套接字是一种网络通信机制,它通过网络在不同的计算机

10、上的进程间进行双向通信。 套接字采用的报文格式为: 可靠的字符流 不可靠的报文。 通信模式为: 客户-服务器模式 对等模式。 TCP/IP协议是广泛使用的网络通信协议。,Windows2000/XP 中的线程调度, Windows2000/XP的线程调度特征 Windows2000/XP 实现了一个基于优先级的多处理机调度系统。 通常线程可在任何可用处理器上运行,但也可以限制某线程只能在某处理器上运行。 亲合处理器集合允许用户通过Win32调度函数选择其偏爱的处理器。 线程调度的触发事件有: 一个线程进入就绪态 一个线程时间片用完 一个线程的优先级被改变 一个正在运行的线程改变了它的亲合处理器

11、集合,Windows2000/XP线程优先级,Windows2000内部使用32个线程优先级。 16个实时优先级(1631):用户可以通过Win32编程接口改变实时优先级的级别,但必须有此权限。 15个可变线程优先级(115):可通过Win32编程接口指定线程的优先级为:高级、中上、中级、中下、空闲。 一个系统线程优先级(0):仅用于对系统中空闲物理页面进行清零的零页线程。,线程时间配额,时间配额长度 前后台变化 前后台线程时间配额提升,时间配额是一个线程从进入运行状态到系统检查是否有其它优先级相同的线程需要开始运行之间的时间总和。 时间配额的计算 Windows2000/XP专业版中线程开始

12、时的时间配额为6 Windows2000/XP服务器版专业版中线程开始时的时间配额为36 每次时钟中断,时钟中断服务例程从线程的时间配额中减少一个固定值3( X86单处理机时钟中断间隔为10毫秒) 。 时间配额的控制:在系统注册表中有一个注册项Win32PrioritySeparation,允许用户指定时间配额的长度和前后台线程的时间配额是否加长。,线程调度器数据结构,相对,调度策略,主动切换 抢先 时间配额用完 运行结束,主动切换,抢先,时间配额用完,线程优先级提升, I/O操作完成后线程的优先级提升 等待事件和信号量后的线程优先级提升 前台线程在等待结束后的优先级提升 图形用户接口线程被唤

13、醒后的优先级提升 对处理机饥饿线程的优先级提升 注:windows2000/XP永远不会提升实时优先级(1631)的线程的优先级。,9.3 Windows2000/XP内存管理, Windows2000/XP基于Intel 80x86及Pentium CPU芯片 Intel 80x86及Pentium CPU既支持分段,也支持分页。可根据需要构成以下四种存储管理方式: 不分段也不分页。这种方式可用于高性能的控制器 分页不分段。这种方式成为一个单纯的页式存储管理系统,UNIX/386、Linux 、 Windows2000/XP采用这种方式 分段不分页 段页式存储管理机制。OS/2等采用这种方式

14、,Windows2000/XP 的内存管理, Windows2000/XP采用请页式内存管理,内存管理器是Windows2000/XP执行体的一部分,在Ktoskrnl.exe文件中。它由以下几部分组成: 一组执行体系统服务程序,用于虚拟内存的分配、回收和管理。这些程序以Win32API或设备驱动程序的形式出现。 一个转换无效和访问错误陷阱处理程序,用于解决硬件检测到的内存管理异常,并负责将虚拟页面装如内存。 运行在六个不同的核心态系统线程上下文中的关键组件。 工作集管理器 进程/堆栈交换程序 已修改页面写入器 映射页面写入器 废弃段线程 零页线程,地址空间的布局,用户进程地址空间布局,范围

15、大小 功能 0x00xFFFF 64KB 拒绝访问区域,帮助程序员 避免不正确的指针引用。 0x100000x7FFEFFFF 2GB-至少192KB 进程私有地址空间 0x7FFDE0000x7FFDEFFF 4KB 线程环境块TEB 0x7FFDF0000x7FFDFFFF 4KB 进程环境块PEB 0x7FFE00000x7FFE0FFF 4KB 共享的用户数据页面 0x7FFE10000x7FFEFFFF 60KB 拒绝访问区域 0x7FFF00000x7FFFFFFF 64KB 拒绝访问区域,阻止线程跨 过用户/系统边界传送缓冲区。,系统地址空间分布,地址 功能 80000000 系统内核、HAL和未分页系统空间 A0000000 系统映射视图(Win32k.sys图形驱动)、会话空间 A4000000 附加的系统页表项PTE C0000000 进程的页面和页目录 C0400000 超空间和进程工作集列表 C0800000 没有使用,不可访问 C0C00000 系统工作集列表 C1000000 系统高速缓存 E1000000

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号