高通面试经历 |校外 2021
高通海得拉巴校外招聘司机开发人员
第一轮:基本轮
时间:1小时
- 什么是结构和联合,为什么在嵌入式系统中联合优先于结构。
- 结构填充概念
size of below structure
struct st
{
short int s;
char c;
int i;
} st_var;
- https://www.geeksforgeeks.org/structure-member-alignment-padding-and-data-packing/
- 存储类
- 内存布局
- 编译阶段
- 如何检查两个数字的加法程序中的溢出
- https://www.geeksforgeeks.org/check-for-integer-overflow/
- 编写一个程序来旋转 K 的链表
- https://practice.geeksforgeeks.org/problems/rotate-a-linked-list/1
- 循环链表程序中的轮换
- 基于简历的问题
- 什么是操作系统和内核
- 编写数组旋转的程序
- https://practice.geeksforgeeks.org/problems/rotate-array-by-n-elements/0
第 2 轮:大多数问题仅与操作系统有关
时间:1小时
- 什么是CPU调度算法,类型
- PCB和进程表,进程属性,进程vs线程
- 调度程序与调度程序。
- Linux中实现了哪种调度算法
- 问题相关的 Git、Linux
- Linux 中的引导是如何发生的,Linux 中的 init 进程是什么?
- IPC、互斥量与二进制信号量以及您将使用的
- 设备驱动、字符驱动
- 与死锁有关的问题
- 虚拟内存、分段、页表
- Linux中的输入输出控制
第三轮:第三轮:1.5 小时
- 两个数相加时检查溢出条件的程序
- 32位和64位处理器的区别
- 检查 32 位或 64 位处理器的程序
- https://www.quora.com/What-C-code-can-check-whether-the-OS-is-32-bit-or-64-bit
- 程序数组旋转 k
- 小端与大端 https://www.geeksforgeeks.org/little-and-big-endian-mystery/
- 如何检查小端和大端 https://www.geeksforgeeks.org/little-and-big-endian-mystery/
- 基于简历的问题
- 什么是中断,类型,中断生命周期,它是如何工作的 https://linux-kernel-labs.github.io/refs/heads/master/lectures/interrupts.html
- 什么是CPU,内存的层次结构
- 编写一段汇编语言代码并解释,CPU如何在寄存器、ALU、控制信号的帮助下执行任何指令,
- 行为问题
第 4 轮:时间 1.5 小时
- 注意:前 30 分钟与系统的内核和架构有关,需要在时限内解决两个 Hackerrank 问题。
- 什么内核,它是如何工作的
- 进程和线程,线程的进阶
- 共享相同地址空间的线程
- 用户模式与内核模式
- 虚拟内存
- 如果辅助内存不可用,则需要或不需要虚拟内存
- 设备驱动、字符驱动
- 什么API及其意义
- 用户如何一步步与内核交互,反之亦然。
- I/O 调用是如何发生的
- 什么是系统调用
- 当用户请求任何关于内核的系统调用时发生了什么
- 驱动程序的使用
- CPU的作用
- 当任何进程需要内存访问时会发生什么
- DMA 概念
- 进程间通信
- 如何与司机沟通
- 更多与内核、驱动程序相关的问题
- 内存泄漏,如何识别系统中的内存泄漏 https://www.geeksforgeeks.org/what-is-memory-leak-how-can-we-avoid/
- 两个 Hackerrank 程序 第一个是 https://www.geeksforgeeks.org/delete-nodes-list-greater-x/ 第二个是 https://practice.geeksforgeeks.org/problems/decimal-equivalent-of-binary -链表/1
- 行为问题,文化契合问题
判决:选定
祝你好运!!