赞
踩
因为大四保完研以后没什么事,想找份实习磨炼一下自己,亦或是赚点外快。于是在同学的介绍下,拿到了头条后台开发实习的内推。但因为底子不稳,信念不坚止步二面,在此记录以自省。
先是接到hr电话,声音很好听,约面试时间、发邮件。但我当时邮件里没有写会有几面(郁闷)。
一面:
面试官是个很年轻的老哥,很随和,问的很基础。先自我介绍。
问项目,介绍项目。因为我的项目都是Android和电设的和后台没太大关联,草草了事。
想问我C++,然而并不熟。。。
然后问操作系统,进程状态,进程调度,CPU调度基本单位,进程线程区别等。
接着计算机网络,OSI几层都是什么,TCP/IP几层,http是基于什么协议的,在哪一层,TCP、UDP区别,详述TCP三次握手4次挥手。
接着是手写X到Y的素数个数。
手写N!的结果末尾0的个数,写了一种有0除10的解法,但他说N=10000000,要求优化。提示之下,明白了,只用计算每一个数由多少个2和5组成即可,然而2一定是比5多的,所以只需要计算5的个数即是末尾0的个数。
接着就开始二面:
二面的面试官,感觉很老道,问题很犀利(对我来说。。。)。
介绍自己。
问项目,这个面试官没有打断我,听完了全部。
然后问操作系统,进程状态,CPU调度单位,中断实现机制,软硬中断的区别。为什么说这个面试官很老道,因为如果我有一个知识点没答上来,他会马上想到同样知识点的另一个问题来问我。
计算机网络,IP协议在哪层,ping命令底层用的什么协议,一个ip数据包经过一个路由器之后包里改变了什么,没答上来又问traceroute命令底层是用的什么协议,是怎么实现的。也不知道,后来滚去百度菜知道是TTL(Time-To-Live)发生了变化,traceroute也是利用的TTL耗尽的超时反馈。
注:MAC帧在传输过程中,其MAC帧首部的源地址和目的地址会发生变化。(指明当前物理地址和下一跳物理地址)
然后是算法问题,topK问题(最小堆解决),看代码说C++中变量存放位置,二叉树层序遍历。
面完就没有然后了。。
总结一下,还是自己基础太不扎实了,平时没有认真学,也没有深入理解,再加上保研后的懈怠。
不是一个称职的程序员啊~(哭)。
TCP三次握手
四次挥手
hashmap解决冲突方法:一般用链表法,用空间换时间。若冲突,就插在冲突位置的链表头部。
DNS:域名系统,万维网上作为域名和IP地址相互映射的一个分布式数据库。
http传送协议:基于TCP,请求一响应模式,http1.0是短连接,http1.1是可以长连接(持续连接)。
进程和线程:①进程是资源分配的独立单元,线程是CPU调度的基本单元。
②一个进程包含多个线程,每个线程共享进程资源。
③线程是轻量级进程,OS中所有操作都是由线程完成。
④线程执行时一般要进行同步、互斥操作。
软中断和硬中断:
---------------------
作者:zhangskd
原文:https://blog.csdn.net/zhangskd/article/details/21992933
(1) 硬中断
由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包
的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。
(2) 软中断
为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间
就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成。
(3) 中断嵌套
Linux下硬中断是可以嵌套的,但是没有优先级的概念,也就是说任何一个新的中断都可以打断正在执行的中断,但同种中断
除外。软中断不能嵌套,但相同类型的软中断可以在不同CPU上并行执行。
(4) 软中断指令
int是软中断指令。
中断向量表是中断号和中断处理函数地址的对应表。
int n - 触发软中断n。相应的中断处理函数的地址为:中断向量表地址 + 4 * n。
(5)硬中断和软中断的区别
软中断是执行中断指令产生的,而硬中断是由外设引发的。
硬中断的中断号是由中断控制器提供的,软中断的中断号由指令直接指出,无需使用中断控制器。
硬中断是可屏蔽的,软中断不可屏蔽。
硬中断处理程序要确保它能快速地完成任务,这样程序执行时才不会等待较长时间,称为上半部。
软中断处理硬中断未完成的工作,是一种推后执行的机制,属于下半部。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。