牛客162029470号 level
获赞
0
粉丝
0
关注
5
看过 TA
4
南京大学
2022
C++
IP属地:未知
暂未填写个人简介
私信
关注
2021-09-18 16:54
南京大学 C++
自我介绍:讨论项目提问环节:---编译原理---1. ssa知道么,两个主要特点是什么:答:ssa是静态单赋值,是llvm的IR里用到的。具体细节不知道了。2. CFG、PDG知道么,哪些语言是上下文无关的:答:一年前在形式语言自动机课程里学过,但是现在忘记了。---操作系统---3. 操作系统是怎么把虚拟地址转换为物理地址的:答:虚拟地址是对pcb中的mm_struct记录的基地址的偏移,经过计算得到线性地址后,通过mmu换算为物理地址。(后面追问面试官的时候,他说他想问的是tlb相关的问题,当时我没理解,后面tlb追问了)4. tlb是什么知道么:答:管理内存页的表,访存时操作系统会检查页是否在tlb中,再通过tlb获得内存地址,另外tlb中还有记录脏位的功能,可以检查页是否发生内容变化,后续进行置换时可以同步到外存中。5. 如果访问的内存不在tlb里会发生什么:答:缺页中断---设计题---6. 如果火星上有10个节点,节点间是可靠通信的,但是带宽较低,地球上有个数据中心,可以给火星上的所有节点通信,带宽很高,但是通信不可靠,传输数据的每一位有p的概率出错。问:如何从地球上的数据中心传输一个大文件给火星上的集群,并保证数据的正确性?假如通信协议是tcp的。答:答案1:传数据的同时,附加校验和,火星上的节点收到数据后,对数据计算校验和,和附带的校验和对比一下,如果错了就tcp重传。面试官:如果每一位出错的概率是p,那么数据保持正确的概率是(1-p)^n,n是数据的比特数,如果数据量很大,那么数据基本上是错的,所以第一个答案是不可行的,换一种思路。答案2:给每个节点都传一份,然后集群间通过投票,按少数服从多数的原则,取占多数的数据。面试官:这还是无法保证数据的正确性。答案3:每个节点都发一份数据,然后每个节点的数据,对每个比特位进行少数服从多数的决策。因为每一位出错的概率是p,如果p是小于0.5的,那么多数结果在概率上是更可能正确的,如果节点数够多的话。面试官:很接近答案了。然后他说了他的答案,因为数据正确的概率是(1-p)^n,如果n较小的话,数据正确的概率就高了,所以可以将数据进行拆包,然后按小包发送。---手撕代码---将一个字符串环形打印在一个矩阵中
投递字节跳动等公司7个岗位
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务