admin管理员组

文章数量:1566356

2024年4月2日发(作者:)

1.1 让CPU占用率曲线听你指挥

1

《编程之美——微软技术面试心得》

题目《让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%”这样的关键字,当然没有找到什么直接的结果。不过这本书出版以后,情况可能就不一样了。

本文标签: 占用率面试决定参数程序