📌  相关文章
📜  塔研面试经历 |第 2 组(软件开发人员)

📅  最后修改于: 2022-05-13 01:58:24.243000             🧑  作者: Mango

塔研面试经历 |第 2 组(软件开发人员)

资格赛:资格赛包括几个 MCQ 和四个编码问题。第一个是关于 SQL 查询。
要练习 SQL 查询,您可以查看此处和 SQL 测验。
第二个是查找Python代码中的错误。问题本身是关于二叉树的。你可以从这里和这里练习用Python编码。
第三个是输入输出问题,我们需要解析输入并打印格式化输出。最后一个是算法问题。

个人面试轮次:

对我来说只有一轮。回合数因人而异。我们被要求选择我喜欢的主题。我们对我的简历上的项目进行了简短的讨论,主要是关于我的 B.Tech 项目和实习经历。向我提出的问题主要来自操作系统和计算机体系结构。这是其中一些的列表

1.什么是TLB?为什么使用它?什么是大页面及其优势?首先访问的是TLB还是缓存?我们可以并行访问 TLB 和缓存吗?

Ans:- Huge pages 的大小更大,相同数量的内存需要更少的 TLB 条目。这会导致缓存更大的虚拟地址空间,从而获得更好的性能。在 TLB 和缓存之外,首先访问的是 TLB,因为必须先将虚拟内存地址转换为物理内存地址,然后再使用该地址从缓存中访问数据。如果每次刷新 TLB 时都刷新缓存,则可以并行访问 TLB 和缓存。

2.区分RISC和CISC架构。

回答:- 您可能想看看这个 https://superuser.com/questions/883330/what-is-the-difference-between-intel-cisc-and-arm-risc-architecture。

3.什么是共享库和静态库?

回答:- 查看此链接 https://www.geeksforgeeks.org/static-vs-dynamic-libraries/ 并了解使用每种方法的权衡。

4. 如何在汇编级别进行系统调用?像 cout 这样的 IO 操作是如何在低级别翻译的?

回答:- 系统调用是通过软件中断(x86 架构中的 int 0x40)进行的,系统调用号和系统调用参数作为参数提供给软件中断处理程序。像 cout 这样的 IO 操作在内部对文件描述符进行系统调用(在这种情况下,将系统调用写入标准输出)。

5. 讨论文件系统是如何存储在磁盘上的,以及 ls 是如何工作的。

Ans:- 向他解释了 xv6 文件系统。主要讲解目录inode、文件inode和数据块。解释了 ls 如何访问这个层次结构来检索目录中的所有文件和目录。

6.什么是流水线?讨论分支预测方案。两种情况哪一种更好 A.没有流水线 b.每个周期后冲洗管道?

7. 最后,问了一个概率问题。有一副标准牌,其中两张牌是随机选择的。计算随机选择第三张卡片的概率,其数量在最初选择的卡片数量之间。

专业提示:- 即使您不知道答案,也请尝试根据您的直觉给出一些可行的答案。例如,有人问我如何检查端口是否打开。为此,我将尝试打开端口并检查错误。