操作系统-Windows操作系统的线程调度了解这些

  Windows操作系统支持内核级线程,调度单位是线程,它采用基于动态优先级的,抢占式调度,并结合时间配额的调整来完成调度

一、几个前提知识点

  就绪线程按优先级进入相应的就绪队列

  系统总是选择优先级最高的就绪线程运行

  同一优先级的各个线程按时间片轮转方式进行调度

  多CPU系统中允许多个线程并行运行

二、调度时机

线程调度的引发条件,除了前面提到的公共的4种情况外还有以下两种

  一个线程的优先级改变

  一个线程改变了它的亲和处理机集合(线程可以被处理的处理机的集合,比如这个集合中增加了一个新的处理机)

  前面提到的4种情况也列出来:

  线程正常终止 或 由于某种错误而终止

  新线程创建 或 一个等待线程变为就绪态

  当一个线程由运行态线程变为就绪态

  当一个线程由运行态进入阻塞态

三、线程优先级(重要)

  Windows使用的三类共32个线程优先级:(优先级和优先数自行查阅概念)

    实时优先级:16-31(一旦确定优先级不再改变)

    可变优先级:1-15(优先级可以在一定范围内升高或降低,分为基本优先级和当前优先级)

    系统线程:0(物理内存清零的操作等)

四、时间配额:加粗加硬,理解这个概念非常重要

  时间配额不是一个时间长度值,而是一个被称为配额单位的整数值

  一个线程用完了自己的时间配额时,如果没有其他相同优先级的线程,Windows将重新给该线程分配一个新的时间配额使其继续运行

五、调度策略

1、主动切换

  一个正在运行态的线程由于等待I/O结果进入阻塞态,让出CPU,调度程序从就绪队列选择一个新的线程上CPU运行

2、抢占

  如果刚才被阻塞的线程被唤醒,由于他的优先级高,会抢占CPU取运行,被抢占的线程回到就绪队列

  当线程被抢占时,它被放回相应优先级的就绪队列的队首

  处于实时优先级的线程被抢占时,时间配额被重置为一个完整的时间配额

  处于可变优先级的线程被抢占时,时间配额不变,重新得到CPU后将运行剩下的时间配额

3、时间配额用完

  时间配额用完的线程,如果优先级降低了,Windows将选择一个优先级更高的线程上CPU

  优先级没有降低的情况下,

    如果队列中有其他的就绪线程,则选择下一个线程执行,A回到原来就绪队列的末尾

    如果队列中没有其他的就绪线程,系统会给当前线程重新分配一个新的时间配额,让他继续运行

六、优化方案

提升优先级的情况(只针对可变优先级1-15的线程)

  线程处于就绪态超过了一定的时间还没有运行 (俗称饥饿)

  完成I/O操作的线程

  前台进程中的线程完成一个等待操作

  由于窗口活动而唤醒窗口线程

  信号量或事件等待结束

特别的,"饥饿线程"的优先级提升

  系统线程"平衡集管理器"每秒钟扫描一次就绪队列,发现是否存在等待时间超过300个时钟中断间隔的线程

平衡集管理器将这些线程的优先级提升到15,并分配它一个长度值为正常值4倍的时间配额,被提升的线程用完

它的时间配额后立即衰减到它原先的基本优先级

原文地址:https://www.cnblogs.com/yb38156/p/9749715.html

时间: 2024-10-06 00:40:54

操作系统-Windows操作系统的线程调度了解这些的相关文章

不用制作启动盘安装Windows操作系统的最简单办法

网上流传和被熟知的重装Windows操作系统的办法的前几个步骤通常要制作U盘启动盘或光盘启动盘,在重启计算后全新安装操作系统.这对于没有U盘或者光盘.没有光驱又想全新安装Windows操作系统(也就是不想在启动Windows后,再安装)的用户来说比较麻烦,因此本文提供一种不需要用制作启动盘安装Windows操作系统的最简单办法. 本方法适用于以下情况的一种或多种: 1.没有U盘或USB接口的移动硬盘 2.没有光盘或者光驱 3.有光盘但光驱不支持刻录 4.U盘或USB移动硬盘无法启动或者无法做成启

Windows操作系统的发展简介

一.简介    Microsoft Windows,是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统. 以前的计算机 二.回顾 Windows 1.0是微软第一次对个人电脑操作平台进行用户图形界面的尝试.Windows 1.0基于MS-DOS操作系统.Microsoft Windows 1.0是Windows系列的第一个产品,于1985年开始发行.当时很多人

微软新一代操作系统-Windows Server 2016

微软新一代为云端而生的操作系统Windows Server 2016即将正式发布,微软将于太平洋时间2016年9月26日早上9点开放Windows Server 2016评估版本的下载:在微软Ignite 2016大会(9月26日-30日)之后, Windows Server 2016 RTM版本将在10月中旬可用.那么在Windows Server 2016中新增了很多让人十分激动的技术,今天先简单的介绍几个,后面的章节再做详细的介绍和实验分享. Windows Nano Server 为云端

【翻译自mos文章】使用Windows操作系统的Dell Pcserver,Oracle db报错:ORA-8103

翻译自mos文章:使用Windows操作系统的Dell Pcserver,Oracle db报错:ORA-8103 ORA-8103 using Windows platform and DELL servers (Doc ID 1921533.1) Applies to: Oracle Database - Personal Edition - Version 11.1.0.6 to 12.1.0.2 [Release 11.1 to 12.1] Oracle Database - Stand

如何获得 Windows 操作系统的版本

很多时候我们需要知道Windows操作系统的版本,使用下面这个API函数可以做到. Option Explicit Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long Private Type OSVERSIONINFO dwOSVersionInfoSize As Long

[C#] Windows操作系统的历史

1983年  比尔·盖茨宣布微软视窗1983年11月10日.1985年  Microsoft Windows 1.0在1985年11月20日介绍,并初步售价为$ 100,00.1987年  Microsoft Windows 2.0发布1987年12月9日和最初售价为$ 100,00.1987年  Microsoft Windows / 386或Windows 386推出1987年12月9日和最初售价为$ 100,00.1988年  Microsoft Windows / 286或Windows

理解Windows操作系统的KMS与MAK密钥

从Windows Vista开始,Microsoft采用新的密钥管理方式,原来Windows XP.Windows Server 2003时的VOL密钥将不再采用.如果为企业部署Windows操作系统.使用何种激活方式,是每个网管员需要了解的问题.本文将就这一问题做出解答. 1.Windows Vista时代采用新的激活机制 在Windows XP与Windows Server 2003的时代,Microsoft的许可密钥有两种:一种是需要激活(可以通过网络.电话)的密钥,另一种是针对"大客户&

什么是操作系统?操作系统的主要特性是什么?主要功能是什么?

操作系统是一个大型的程序系统,它负责计算机系统软.硬件资源的分配和使用:控制和协调并发活动:提供用户接口,使用户获得良好的工作环境. 操作系统的特性: 1.并发     2.共享       3.不确定性 补充: 操作系统的主要功能包括三个方面: 1.对系统资源实施管理和调度 2.控制和协调并发活动 3.对外提供用户界面. 系统资源管理和并发活动控制是操作系统的核心功能,这两个部分是互相联系.不可分割的.

微软宣布.NET开发环境将开源 支持三大操作系统(windows,Mac OS X和Linux)(转)

微软周三(11月13日)公布了.NET开发框架开源计划.公司拟将这长期以来只能运行于Windows系统下的开发环境,通过GitHub开源,以实现跨平台支持Mac OS X和Linux.根据微软公布的计划,在该公司下一次发布.NET开发框架时,整个服务器开发环境,从ASP.NET 5下至Common Language Runtime和Base Class Libraries,都将实现开源. 开发者可在多平台环境中开发基于云的.NET应用,微软也承诺未来将会在Mac和Linux系统上提供对.NET核