字节跳动2019夏令营笔试总结

本文回顾了2019年字节跳动夏季训练营的笔试经历,包括笔试形式、题目类型和难度。重点讨论了操作系统、数学和智力题等问题,强调了细心计算和理解题目的重要性,并分享了系统设计题目的解题思路,为后续求职者提供参考。
摘要由CSDN通过智能技术生成

2019 ByteDance Summer Camp

19年夏令营,头条请了天奇大神过去做talk,我是冲着天奇大佬去的,他是做DL编译器的,跟我个人的研究方向很类似,所以很期望能跟他当面交流一下。

夏令营有两次笔试机会,取成绩最高的一次作为最终的成绩。由于消息看到得晚,在下开始申请的时候,第一次笔试已经结束了。本人只参加了第二次笔试,笔试题目构成如下:单选题3题、不定向选择题1题、填空题2题、编程题3题、设计类1题,共5类题目,时间两个半小时(晚上7点-9点半)。

summer camp 2019 img

笔试是在牛客网完成的,笔试有一个特殊的要求:某一类题型全部做完了才能进入下一个题型,而且该类题型提交以后就不能修改了。比如说,选择题有3题,你把3题全部做完了,点提交,才能去做其他类型的题目,一旦提交了就不能回过头修改。所以合理安排时间非常重要,不能卡在某一类题目上太多时间,我是把非编程题类题目全部做完以后才去做的编程题。中途有事,第二道编程题提交完,出去了一下,回来后第三题还没看完就被强制提交了:D

单选题一:位示图管理。操作系统磁盘管理的问题:给定柱面、磁道和扇区数据,利用位示图对存储管理;

单选题二:二进制含0的数量。操作系统内存页映射的问题:限定问题场景,1GB内存,划分为131072个内存块。给定一段简单的C++代码,开了一个1024大小的int数组,一段循环对该数组的每个元素按照某个规律赋值,同时给定操作系统逻辑页号和内存块号的映射表。假设数组的逻辑地址是64C0,从物理地址A6BC取4个字节的数据。问该数据二进制0的个数。
该题目不是很难,但是手工计算量挺大的,131072=2^17(我除了好久才除出来:D),1GB=2^30B,所以块大小是2^30B/2^17=2^13B=8KB,所以内存逻辑页的layout关系大概是:

第0页:0 ... 1FFF
第1页:2000 ... 3FFF
第2页:4000 ... 5FFF
第3页:6000 ... 7FFF
第4页:8000 ... 9FFF
第5页:A000 ... BFFF
第6页:C000 ... DFFF
第7页:E000 ... FFFF
...

数组的逻辑起始地址是64C0,数组大小是1024个int,即4KB,半个内存页。逻辑页号从0开始,可以大概算出来,64C0所在的逻辑页号为3,页内偏移为4C0=1216
根据逻辑页和物理块的映射表,可以查出来,第3页对应的物理块号是第5块。而物理地址A6BC恰好也在第5块,

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值