今天下午面了字节跳动飞书后台的一面,一共面了差不多一个半小时,面试官很耐心,问的有深度有广度。
首先是一段自我介绍
然后问的操作系统和组成原理相关的:
1、线程和进程的区别 答:进程有独立资源,线程是进程的子结构,共享一个进程的资源
2、设计线程和进程的目的 答:线程主要是为了充分利用CPU资源,在耗时操作的时候挂起I/O线程,CPU可以计算其他线程
3、在什么情景下使用多线程什么情景下使用多进程 (I/O密集型场景和计算密集型场景)答:想了半天,I/O密集型场景用多线程,不知道对不对
4、你知道哪些进程调度算法 答:FIFO、短作业优先、优先级调度、多队列优先级调度
5、死锁了解吗,是怎么产生的,如果发生了死锁,操作系统会怎么做 答:线程互相争抢资源,系统有死锁检测,根据资源需求矩阵,成环意味着发生死锁,通过释放资源来解锁,抢占式。
6、堆和栈的区别了解吗 答:不太了解,栈空间主要储存运行时申请的变量和函数调用,堆放一些固定量和全局量(不知道对不对)
7、堆在内存空间中和栈的位置关系 答:好像堆在下面
8、栈分配空间是从低地址向高地址还是高地址向低地址 答:栈应该是向高地址分配(大小端问题,确实没复习到,盲点)
9、并发控制 (讲了一下锁机制,结合自己的项目讲了一下读写锁)
这一段有些问题问的很笼统,在你回答完后面试官会就细节继续问下去