微软面试总结.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

xina171127 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档