- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北理工操作统一、CPU占用率控制实验报告
实验一 CPU占用率控制
班级:
学号:
姓名:
实验一 CPU占用率控制
一、实验目的
1、通过编写和调试程序以加深对CPU调度的理解;
2、熟悉Windows任务管理器CPU信息的获取和使用方法;
二、实验要求
编写程序实现下面任意一题:
1.CPU占用率为一条直线,固定在50%;
2.CPU占用率为一条正弦曲线。
参考:
1.在任务管理器的一个刷新周期内,CPU忙(执行应用程序)的时间和刷新周期 总时间的比率,就是CPU的占用率,也就是说,任务管理器中显示的是每个刷新周期内 CPU占用率的统计平均值。
2.单核环境下,空死循环会导致100%的CPU占有率。
三、实验环境
硬件设备:个人计算机。
系统软件:windows操作系统,Visual C++6.0编译环境。
四、实验原理
通过观察任务管理器,它大约1s更新一次。当CPU使用率为0时,System Idle Process占用了CPU的空闲时间。
System Idle Process在CPU空闲的的时候,发出一个IDLE命令,使CPU挂起(暂时停止工作),可有效的降低CPU内核的温度,无法终止。在这个进程里出现的CPU占用数值并不是真正的占用而是体现的CPU的空闲率,也就说这个数值越大CPU的空闲率就越高,反之就是CPU的占用率越高。
当系统中的进程或者在等待用户输入,或者在等待某些事件的发生(发出I/O请求等待I/O响应),或者主动进入休眠状态(比如Sleep())。
在任务管理器的一个刷新周期内,CPU忙(执行应用程序)的时间和刷新周期总时间的比率,就是CPU的占用率,也就是说,任务管理器中显示的是每个刷新周期内CPU占用率的统计平均值。
单核环境下,空死循环会导致100%的CPU占有率。
对于多核CPU来说,同一个进程可能被CPU的任务分配器分配到不同的核心上执行,所以造成无法让任务管理器达到预想的效果。其实打开任务管理器,可以看到多个CPU使用记录。
1、实现CPU占用率为一条直线,固定在50%。
GetTickCount()可以得到系统从启动到运行到现在所经历时间的毫秒值。最多能统计到49.7天。另外,利用Sleep()函数,最多也只能精确到1毫秒。因此,可以在“毫秒”这个量级做操作和比较。
要操纵CPU的usage曲线,就需要使CPU在一段时间内跑busy和idle两个不同的循环,从而通过不同的时间比例来获得调节CPU占用率的控制。
利用GetTickCount()来实现busy loop的循环,用Sleep()实现idle loop。
2、CPU占用率为一条正弦曲线。
可以用sin函数的幅度来表示忙状态占用的时间的大小,当sin函数达到最大值时,CPU占用率为100%,空闲时间大小为0;当sin函数达到最小值时,CPU占用率为0%,忙时间大小为0。通过在一个周期2*π中等分200份,将每一个间隔点的half +(sin(PI*radian)*half))的值存入busySpan[i],将其补值存入idleSpan[i]。half是整个值域INTERVAL的一半。这样可以近似趋近一条正弦曲线。
首先设定采样参数,设一个周期内采样点数和步进单位的大小。
根据sin函数的大小分别计算忙时间和空闲时间的大小,通过计数完成周期采样。
同第一题用GetTickCount()来实现忙状态的循环,用Sleep()实现空闲状态循环。通过计数实现周期采样。
五、实验结果
六、感想体会
七、实验代码
#includeiostream
#includecmath
#includewindows.h
static int PERIOD = 60 * 1000; //周期ms
const int COUNT = 300; //一个周期计算次数
const double GAP_LINEAR = 100; //线性函数时间间隔100ms
const double PI = 3.1415926535898; //PI
const double GAP = (double)PERIOD / COUNT; //周期函数时间间隔
const double FACTOR = 2 * PI / PERIOD; //周期函数的系数
static double Ratio = 0.5; //线性函数的值 0.5即50%
static double Max=0.9; //方波函数的最大值
static double Min=0.1; //方波函数的最小值
typedef double Func(double); //定义一个函数类型 Func*为函数指针
typedef void
您可能关注的文档
- 北师大版四年级上语文《中国结》ppt.ppt
- 北师大版四年级语上册《飞夺泸定桥》-课件.ppt
- 北师大版四年级语文册《地名》课件.ppt
- 北师大版学三年级上册数学教案全册.doc
- 北师大版小学三年级文意大利的爱国少年.ppt
- 北师大版小学数学二年级《图的变化》.ppt
- 北师大版小学数学五年级册应用题归类复习题.doc
- 北师大版小学文词语大全.doc
- 北师大版小学语文五年级下册寓言二《刻舟求剑课件.ppt
- 北师大版年级上册三位数连加、连减的计算.doc
- 中国国家标准 GB 14287.5-2025电气火灾监控系统 第5部分:测量热解粒子式电气火灾监控探测器.pdf
- 《GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存》.pdf
- GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存.pdf
- 中国国家标准 GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存.pdf
- 中国国家标准 GB/T 19436.2-2025机械电气安全 电敏保护设备 第2部分:使用有源光电保护装置(AOPDs)设备的特殊要求.pdf
- 《GB/T 19436.2-2025机械电气安全 电敏保护设备 第2部分:使用有源光电保护装置(AOPDs)设备的特殊要求》.pdf
- 《GB 27898.4-2025固定消防给水设备 第4部分:消防气体顶压给水设备》.pdf
- GB 27898.4-2025固定消防给水设备 第4部分:消防气体顶压给水设备.pdf
- GB/T 31270.1-2025化学农药环境安全评价试验准则 第1部分:土壤代谢试验.pdf
- 中国国家标准 GB/T 31270.1-2025化学农药环境安全评价试验准则 第1部分:土壤代谢试验.pdf
最近下载
- ISO--14644-1-2015-中文版本文档.pdf VIP
- 氧化铝公司基建施工验收手册.doc VIP
- 2025重庆永川区来苏镇关于村社区专职干部招录8人备考题库完美版.docx VIP
- 北京外国语大学《大学英语》2003年真题.docx VIP
- 2025重庆永川区来苏镇关于村社区专职干部招录8人备考题库汇编.docx VIP
- 新高一必修1第四单元课文+翻译 .pdf VIP
- 华为内部控制手册.pdf VIP
- 全国翻译专业资格(水平)考试--CATTI精品课件.ppt VIP
- HJ 169-2018 建设项目环境风险评价技术导则.docx VIP
- 浙江专升本英语真题 铭远教育 2014年浙江专升本英语真题.doc VIP
原创力文档


文档评论(0)