阿里C/C++开发一面凉经
内推挂了之后系统自主给我投递了一次,感觉是个做很底层东西的部门(能感觉出来用的大部分是C,和我的技术栈不太契合),问的特别底层,大部分名词还没听说过,各种编译原理和组成原理和操作系统的东西,差点还要问微机原理,,问懵了,估计凉凉。
算法题
① 最长公共子串
② 实现一个strcpy函数,考虑内存覆盖(源串可以被修改,保证复制的目的子串正确),实现多个字节同时拷贝(4字节或者8字节)
1、 CPU流水线
2、 缓存一致性协议
3、 内存屏障,volatile作用,是否具有原子性,使用volatile会对编译器有什么影响
4、 volatile能否和const一起使用
5、 程序中通过地址读取一个变量的过程(虚拟地址到物理地址,MMU,CR3,转换的细节,这里问了一个我不懂的名词,说是MMU获取页目录地址的过程)
6、 一个进程的地址空间分为几段
7、 可执行文件的文件格式(ELF文件格式)
8、 编译和链接过程
9、 进程和线程
10、 进程之间的同步方式
11、 互斥锁和信号量的区别
12、 C内存分配的方式,如果让你实现malloc,怎么实现(讲讲从用户空间到内核分配的过程)
13、 struct字节对齐的规则
14、 保持连接的网络有一方断开怎么处理,如何感知对方异常断开
15、 怎么在用户空间实现一个定时器
16、 C++的虚函数,虚函数指针和虚函数表
17、 C++的左值,右值和std::move()函数(std::move()的实现原理)
18、 进程优先级和CPU的任务调度策略(优先级反转)
19、 死锁发生的必要条件,死锁避免
20、 IO多路复用select和poll的区别
21、 大端存储和小端存储
#面经##校招##阿里巴巴##C++工程师#