一面题:
先问项目和竞赛,要求对项目需要非常了解。
1.控制CPU占用率的办法,比如说稳定在50%(《编程之美》第一题)
答:设计两组程序,一组空,一组循环,设置一个定值,使得两段程序交替运行。
问:如何确定这个定值?
答:结合计算机的位数和执行语句的字节数计算
参考答案:参考《编程之美》第一题的第一种解答。
CPU的占用率,表示了一个刷新周期内,CPU忙(执行任务)的时间占整个刷新周期的比例。要达到这种目的,需要CPU在一定的采样时间内调度busy和idle两个不同的循环。busy loop可以通过执行空循环来实现,idle loop可以通过sleep()来实现。问题的关键在于如何控制循环的次数n。对于空循环for(i=0; i<n; i++);如何选择一个合适的n。CPU执行的是机器指令,假设CPU的主频是2.4Ghz(2e9个时钟周期每秒),再计算循环一次需要的时钟周期数(比如5),那么一秒内CPU可以执行循环9.6e8次。这样令n=9.6e6,睡眠时间改为10毫秒sleep(10),n=9.6e6执行了10毫秒,在总的CPU刷新周期内就可以得到稳定的50%的CPU占用率。
2.计算机网络: 滑动窗口
答:不会
问:那你看了什么
答:TCP
3.计算机网络:
1)建立连接和断开连接的过程(三次握手和四次挥手)
答:面试常考题,刚背的,勉强背诵出来
2)为什么断开连接要四次,三次的话会有什么影响
答:网络延迟时可能会导致客户端无法断开连接,浪费资源
4.Linux进程管理用过吗?
答:没有,不会
5.Linux查看内存占用率的命令
答:不了解,我们一般看显存,后面会跟着内存占用
问:看显存的命令是什么
答:nvidia-smi
6.关于并发是否了解
答:不了解,刷题的时候做过多线程的题
问:举例一下
答:两个函数分别输出字符串,要求调度能交替输出
问:这样做比单个函数做输出的效率要高吗
答:不知道
问:你理解的话,哪种情况的效率高
答:不知道
7.手撕题
3[bc]2[a] return bcbcbcaa
3[bc2[a]] return bcaabcaabcaa
😤