Windows操作系统处理机管理.ppt

Windows操作系统处理机管理 ExitProcess()或TerminateProcess(),则进程包含的线程全部终止; ExitProcess()终止一个进程和它的所有线程;它的终止操作是完整的,包括关闭所有对象句柄、它的所有线程等; TerminateProcess()终止指定的进程和它的所有线程;它的终止操作是不完整的(如:不向相关DLL通报关闭情况),通常只用于异常情况下对进程的终止。 Windows 的进程管理 进程和进程控制 与进程管理相关的内核变量 PsActiveProcessHead 进程链表头 PsInitialSystemProcess 系统进程(系统线程的宿主) PsIdleProcess 空闲进程 Windows 的进程管理 进程和进程控制 Windows操作系统处理机管理 线程的引入 操作系统对线程的实现方式 进程和线程的比较 Windows的线程 如果说在操作系统中引入进程是为了使多个程序能够并发执行,提高资源利用率和系统吞吐量,那么引入线程(THREAD)的目的则是减少程序并发执行所付出的时空开销来,进一步提高系统的并发程度。 线程 Windows操作系统处理机管理 进程: 资源(存储器、文件)分配单位和CPU调度/分派单位。 由于进程是资源拥有者,因而在创建、终止、切换过程中,系统必须为之付出较大的时空开销。正因为如此,系统中并发执行的进程的数目不宜过多,进程切换才频率也不宜过高,这样就限制了系统的并发程度。 解决这一问题的思路:将进程的两个基本属性分开,由操作系统分别处理——线程概念的引入 在支持线程的操作系统中,进程只作为资源分配单位,而线程则作为CPU调度/分派单位。 线程 Windows操作系统处理机管理 线程:作为CPU调度单位,只拥有必不可少的资源,如:线程状态、寄存器上下文和栈 同样具有就绪、阻塞和执行三种基本状态 线程的优点:减小并发执行的时间和空间开销(线程的创建、退出和调度),因此容许在系统中建立更多的线程来提高并发程度。 线程的创建时间比进程短; 线程的终止时间比进程短; 同进程内的线程切换时间比进程短; 由于同进程内线程间共享内存和文件资源,可直接进行不通过内核的通信; 线程 进程与线程的关系 线程 线程的引入 Windows操作系统处理机管理 内核维护进程和线程的上下文信息; 线程切换由内核完成; 一个线程发起系统调用而阻塞,不会影响其他线程的运行。 时间片分配给线程,所以多线程的进程获得更多CPU时间。 依赖于OS核心,由内核完成创建和撤销。Windows 支持内核线程; 内核线程(kernel-level thread) 线程 Windows操作系统处理机管理 用户线程的维护由应用进程完成; 内核不了解用户线程的存在; 用户线程切换不需要内核特权; 用户线程调度算法可针对应用优化; 不依赖于OS核心,应用进程利用线程库提供的创建、同步、调度和管理线程的函数来控制用户线程。如:数据库系统Informix,图形处理Aldus PageMaker。调度由应用软件内部进行,通常采用非抢先式和更简单的规则。一个线程发起系统调用而阻塞,则整个进程在等待。时间片分配给进程,多线程则每个线程就慢。 线程 OS对线程的实现方式 Windows操作系统处理机管理 地址空间和其他资源(如打开文件):进程间相互独立,同一进程的各线程间共享--某进程内的线程在其他进程不可见 通信:进程间只能使用IPC    线程间可以直接读写进程数据段(如全局变量)来进行通信        也需要同步和互斥手段的辅助,以保证数据的一致性 调度:线程上下文切换比进程上下文切换要快得多; 线程 线程切换和进程切换 线程 进程和线程的比较 Windows 的线程 线程 线程对象 Windows线程由执行体线程块ETHREAD表示,即线程对象,其中包含 内核线程块KTHREAD, 即线程控制块TCB 指向线程环境块TEB的指针 ETHREAD和KTHREAD位于内核空间,TEB位于用户空间 Windows 的线程状态 线程 Windows 的线程 就绪状态(Ready):进程已获得除处理机外的所需资源,等待执行。 运行 终止 就绪 等待 上下文 切换 抢先或 时间片结束 等待对象句柄 执行完成 初始化 转换 备用 选择执行 抢先 放入 就绪队列 等待完成 等待完成 换出的 内核堆栈 换入的 内核堆栈 重新初始化 创建和初始化 线程对象 Windows 的线程状态 线程 Windows 的线程 运行 终止 就绪 等待 上下文 切换 抢先或 时间片结束 等待对象句柄 执行完成 初始化 过渡 备用 选择执行 抢先 放入 就绪队列 等待完成 等待完成 换出的 内核堆栈 换入的 内核堆栈 重新

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档