zoukankan      html  css  js  c++  java
  • 关于“50% CPU 占有率”题目的内容扩展

    System Idle Process

    Windows页面内存管理进程,拥有0级优先。该进程作为单线程运行在每个处理器上,并在系统不处理其他线程的时候反派处理器的时间。有意思的是,它的CPU占有率越大则表示可供分配的CPU资源越多。该进程是系统必须的,不能禁止,但它却又不是系统进程,它允许于后台而且不使用网络。该进程名称为“系统空闲进程”,相应的描述为”处理器空闲时间百分比“。

    那么怎么找到它呢?在Windows XP/Vista/7中,打开任务管理器就可以直接看到,在Windows 8/8.1以及Windows 10中,则稍显隐蔽,因此甚至许多人认为已经不存在了……

    这里写图片描述

    什么是0级优先?

    在Windows上,每个进程都有一个优先级,范围从0到31,0为最低优先级,31为最高优先级。当系统在决定进程调度的时候,会优先考虑优先级为31的进程,如果存在则先执行。在执行完该进程后再查找是否还有其他优先级为31的进程,如果有的话则不会调度优先级为0至30的进程。Windows支持6个优先级类:Real-time(实时)、High(高)、Above normal(高于标准)、Normal(标准)、Below normal(低于标准)和Idle(空闲)。在进程中还有线程,线程同样也有相对线程优先级:Time-critical(关键时间)、Heightest(最高,不过没有关键时间优先)、Above normal(高于标准)、Normal(标准)、Below normal(低于标准)、Lowest(最低,同样,也比Idle优先)和Idle(空闲)。开发者不需要设置具体的优先级0-31,Windows会主动将“优先级类”和“相对进程优先级”映射到相应的优先级上。注意,这样映射方式随Windows版本的不同而不同,因此下图只做参考。

    这里写图片描述

    DWORD

    DWORD就是Double Word,每个Word为2个字节的长度,DWORD双字即为4个字节,每个字节是8位,共32位。

    那么如何在C++中需要include什么呢?

    #include "windows.h"

    关于DWORD需要注意的一点是,它虽然表示的是32位无符号整数,但无论对于32位还是64位的Windows操作系统,DWORD都是32位无符号整数。

    Sleep()

    在C/C++中的Sleep()函数的功能是执行挂起一段时间,和DWORD需要一样的头文件。在Linux中则需要包含unistd.h头文件。

    #include<unistd.h>

    注意在VC中Sleep的第一个字母是大写的“S”,而在标准C中则是小写。Sleep()需要一个无符号整形,单位是毫秒。而sleep()中则是秒。

    GetTickCount()

    DWORD GetTickCount(void)从0开始计时,返回自程序启动后的毫秒数(不含系统暂停时间)。其同样需要包含“windows.h”头文件。

    Perfmon.exe



    为使本文得到斧正和提问,转载请注明出处:
    http://blog.csdn.net/nomasp

  • 相关阅读:
    bzoj3932 [CQOI2015]任务查询系统
    bzoj1901 Zju2112 Dynamic Rankings
    bzoj3524 [Poi2014]Couriers/2223 [Coci 2009]PATULJCI
    bzoj1529 [POI2005]ska Piggy banks
    bzoj1552 [Cerc2007]robotic sort
    bzoj2208 [Jsoi2010]连通数
    2016NOI冬令营day5
    A1035 Password (20)(20 分)
    1048 数字加密(20 分)
    福尔摩斯的约会
  • 原文地址:https://www.cnblogs.com/NoMasp/p/4483263.html
Copyright © 2011-2022 走看看