- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.1 让 CPU 占用率曲线听你指挥 1
《编程之美——微软技术面试心得》
《编程之美——微软技术面试心得》(/38070 )是微软亚洲研究院
技术创新组研发主管邹欣继《移山之道——VSTS 软件开发指南》后的最新力作。它传达
给读者:微软重视什么样的能力,需要什么样的人才。但它更深层的意义在于引导读者思考,提倡一种发
现问题、解决问题的思维方式,充分挖掘编程的乐趣,展示编程之美。本书3 月份上市。网上讨论和解答
在:/bop
题目《让CPU 占用率曲线听你指挥》
问题
写一个程序,让用户来决定Windows 任务管理器(Task Manager )的CPU 占用率。程
序越精简越好,计算机语言不限。例如,可以实现下面三种情况:
1. CPU的占用率固定在50% ,为一条直线;
2. CPU的占用率为一条直线,但是具体占用率由命令行参数决定(参数范围1~ 100 );
编程之美——微软技术面试心得
2 1.1 让 CPU 占用率曲线听你指挥
3. CPU的占用率状态是一个正弦曲线。
分析与解法1
有一名学生写了如下的代码:
while (true)
{
if (busy)
i++;
else
}
然后她就陷入了苦苦思索:else 干什么呢?怎么才能让电脑不做事情呢?CPU 使用率为
0 的时候,到底是什么东西在用CPU ?另一名学生花了很多时间构想如何“深入内核,以控
制CPU 占用率”——可是事情真的有这么复杂么?
MSRA TTG (Microsoft Research Asia, Technology Transfer Group )的一些实习生写了各
种解法,他们写的简单程序可以达到如图1-1 所示的效果。
图1-1 编码控制CPU 占用率呈现正弦曲线形态
看来这并不是不可能完成的任务。让我们仔细地回想一下写程序时曾经碰到的问题,如
1 作者注:当面试的同学听到这个问题的时候,很多人都有点意外。我把我的笔记本电脑交给他们说,这是开
卷考试,你可以上网查资料,干什么都可以。大部分面试者在电脑上的第一个动作就是上网搜索“CPU 控
制50%”这样的关键字,当然没有找到什么直接的结果。不过这本书出版以后,情况可能就不一样了。
编程之美——微软技术面试心得
1.1 让 CPU 占用率曲线听你指挥 3
果我们不小心写了一个死循环,CPU 占用率就会跳到最高,并且一直保持100%。我们也可
以打开任务管理器2 ,实际观测一下它是怎样变动的。凭肉眼观察,它大约是1 秒钟更新一
次。一般情况下,CPU 使用率会很低。但是,当用户运行一个程序,执行一些复杂操作的
时候,CPU 的使用率会急剧升高。当用户晃动鼠标时,CPU 的使用率也有小幅度的变化。
那当任务管理器报告CPU 使用率为0 的时候,谁在使用CPU 呢?通过任务管理器的“进
程(Process )”一栏可以看到,System Idle Process 占用了CPU 空闲的时间——这时候大家该
回忆起在“操作系统原理”这门课上学到的一些知识了吧。系统中有那么多进程,它们什么时
候能“闲下来”呢?答案很简单,这些程序或者在等待用户的输入,或者在等待某些事件的发
生(WaitForSingleObject() ),或者进入休眠状态(通过Sleep()来实现)。
在任务管理器的一个刷新周期内,CPU 忙(执行应用程序)的时间和刷新周期总时间的
比率,就是CPU 的占用率,也就是说,任务管理器中显示的是每个刷新周期内CPU 占用率
的统计平均值。因此,我们写一个程序,让它在任务管理器的刷新期间内一会儿忙,一会儿
闲,然后通过调节忙/ 闲的比例,就可以控制任务管理器中显示的CPU 占用率。
【解法一】简单的解法
步骤1
您可能关注的文档
最近下载
- 专题07 作文(2023-2025年期中典型试题)(解析版)(2023-2025年期中典型试题,上海专用)八年级语文上册新教材.docx VIP
- 2025年MK 袋鼠数学竞赛Level-B (3-4年级) 真题+解析.pdf
- 初中语文诗词易错字34篇.pdf VIP
- 电子商务物流第二版毕娅习题答案.doc VIP
- 学堂在线 大国航母与舰载机(2025秋) 作业答案.docx VIP
- 《生涯发展报告》.pdf.pptx VIP
- LTCC多层电路基板设计规范-2016简版-1.pdf VIP
- 四年级语文上册第八单元作业设计.pdf VIP
- 学堂课程在线人工智能原理(北大)章节测试答案.docx
- 学前教育学专业职业生涯规划书发展报告应届硕士毕业生全国大学生职业规划大赛模板范文1500字.pdf VIP
原创力文档


文档评论(0)