操作系统实例分析-WS03线程调度

操作系统实例分析-WS03线程调度

ID:37277397

大小:949.10 KB

页数:35页

时间:2019-05-12

操作系统实例分析-WS03线程调度_第1页
操作系统实例分析-WS03线程调度_第2页
操作系统实例分析-WS03线程调度_第3页
操作系统实例分析-WS03线程调度_第4页
操作系统实例分析-WS03线程调度_第5页
资源描述:

《操作系统实例分析-WS03线程调度》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、WindowsServer2003进程管理概述进程是系统分配资源的基本单位进程对象WS03把进程视为对象(Object),以句柄(handle)来引用进程对象属性;PID,AccessToken,BasePriority,默认处理器集合等一个WS03进程必须包含一个线程,该线程可能创建别的线程。一个进程内的多个线程可以在不同的处理器上并行运行WS03进程结构执行体进程块(ENPROCESS)描述进程的基本信息包括:线程块列表虚拟地址空间描述表对象句柄列表相关系统调用createProcessExitProc

2、essTerminateProcessWS03的线程是内核线程线程是处理机的调度对象线程上下文包括寄存器、线程环境块、核心栈和用户栈WS03的线程有九种状态WS03的线程管理32个优先级:0-31每个优先级的就绪线程在每个处理机上排成一个先进先出队列;当一个线程状态变成就绪时,它可能立即运行或排到相应优先级队列的尾部;总运行优先级最高的就绪线程;采用严格的抢先式动态优先级调度,依据优先级和分配时间片来调度。WS03的线程管理完全的事件驱动机制:时间片用完事件;等待结束事件;主动挂起事件;在同一优先级的各线程

3、按时间片轮转算法进行调度;在多处理机系统中多个线程并行运行;WS03的线程状态待调度就绪状态(DeferredReady):线程已获得除处理机外的所需资源,正等待选择一个空闲处理机或抢先一个处理机正在执行的线程,进行调度执行。就绪状态(Ready):线程已获得除处理机外的所需资源,并已确定了执行该线程的处理机,正等待成为该处理机上的最高优先级线程,以调度执行。备用状态(Standby):线程已变成当前处理机上的最高优先级线程,正进行描述表切换,以进入运行状态。系统中每个处理器上只能有一个处于备用状态的线程。

4、运行状态(Running):已完成描述表切换,线程进入运行状态。线程会一直处于运行状态,直到被抢先、时间片用完、线程终止或进入等待状态。等待状态(Waiting):线程正等待某对象,以同步线程的执行。当等待事件出现时,等待结束,并根据优先级进入运行或就绪状态。就绪挂起状态(Readyprocessswapped):线程已结束等待状态,但线程所在进程的所有线程的内核堆栈都在外存(内存管理模块可能把线程占用的内存置换到外存)。转换状态(Transitionkernelstackswapped):线程已结束等待状

5、态,但线程的内核堆栈位于外存。这时线程进入转换状态,当线程的内核堆栈被调回内存时,线程进入待调度就绪状态。终止状态(Terminated):线程执行完就进入终止状态;初始化状态(Initialized):线程创建过程中的线程状态;需要注意的转换从等待状态到待调度就绪状态如果该线程的内核堆栈在内存,则变成待调度就绪状态如果该线程的内核堆栈在外存,但不是其所在进程的所有线程的内核堆栈都在外存,则变成转换状态其所在进程的所有线程的内核堆栈都在外存,则变成就绪挂起状态从待调度就绪状态到运行状态有空闲处理机没有,判断

6、是否可抢占某处理器上处于运行或备用状态的线程,如可抢先不可抢先被抢占的运行或备用状态的线程会回到就绪态(下次还会在该处理机运行)待调度就绪状态(下次不会在该处理机运行)备用状态就绪状态WS03支持多处理机每个处理机都有自己的一套线程调度数据结构:一个待调度就绪线程队列一个32级的就绪线程队列一个备用线程变量一个运行线程变量CreateThread()函数在调用进程的地址空间上创建一个线程,以执行指定的函数;返回值为所创建线程的句柄ExitThread()函数用于结束本线程SuspendThread()函数用

7、于挂起指定的线程ResumeThread()函数递减指定线程的挂起计数,挂起计数为0时,线程恢复执行WS03线程的APIWS03线程的挂起和激活WS03中处理机的分配对象为线程,一个线程可被多次挂起和多次激活。在线程内有一个挂起计数(suspendcount),挂起操作使该计数加1,激活操作使该计数减1;当挂起计数为0时,线程恢复执行(1)挂起:WindowsNT中的SuspendThread可挂起指定的线程;DWORDSuspendThread(HANDLEhThread//handletothethre

8、ad);(2)激活:WindowsNT中的ResumeThread可恢复指定线程的执行;DWORDResumeThread(HANDLEhThread//identifiesthreadtorestart);实时(real-time):从16到31,如设备监控线程,不可变。可变优先级(variable-priority):从1到15(级别0保留为系统使用)。线程的基本优先级=[进程的基本优先级-2,进程的基本优先

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。