操作系统原理,Windows线程调度,引发线程调度的事件,Windows线程优先级,Windows时间配额,Windows线程调度策略,Windows优先级提升事件
一、Windows线程调度
1、调度单位是线程
2、采用基于动态优先级的、抢占式调度,结合时间配额的调整
3、就绪线程按优先级进入相应队列
4、系统总是选择优先级最高的就绪队列运行
5、同一优先级的各线程按时间片轮转进行调度
6、多CPU系统中运行多个线程并行运行
二、Windows中引发线程调度的条件
1、线程正常或因错误终止
2、新线程创建或等待线程就绪
3、线程从运行态变成阻塞态或就绪态
4、线程优先级改变了
5、线程的亲和处理机集合改变,当一个线程指定只有某些处理器能够执行时,这些处理器就是线程的亲和处理器集合。
三、Windows中线程优先级
1、Windows采用32个线程优先级,分三类
2、实时优先级16-31,运行时不改变优先级
3、可变优先级1-15,可在一定范围内升高或降低,还分为基本优先级和当前优先级
4、零页线程0,用于对系统中空闲物理页面清零,在没有其他线程运行时工作。
四、Windows线程时间配额
1、时间配额不是一个时间长度值,而是一个称为配额单位的整数
2、一个线程用完了自己的时间配额时,如果没有其他相同优先级的线程,Windows将重新给该线程分配一个新的时间配额,让其进行运行。
3、时间配额用于在相同优先级