腾讯一面

腾讯一面 2022.3.16 45分钟

1.协程项目20-30min (什么是协程、协程调度器的实现、有栈协程和无栈协程、协程调度汇编代码的实现、协程和线程的区别、对称协程和非对称协程)

然后面试官根据我说的协程切换汇编代码,发现了我项目存在的问题(信号和浮点数没能被处理)

2.在讲协程和线程的区别之后,又问进程和线程的区别,然后就开始给面试官讲进程和线程创建的源码流程.

然后他又问我线程共享进程的哪些资源,我就给他讲了copy_process里面分配资源的流程,包括像files_struct、fs_struct、sighand_struct、sigpend、mm_struct等等它们里面的内容和作用.然后还有vm_area_struct结构体以及mmap的底层实现.然后又被他抓住了我的一些错误....

3.项目中定时器的实现(我把定时器的各个实现方案都给说了出来,然后分析的各自的优缺点).

3.select poll和epoll之间的区别(我巴拉巴拉的一大堆,最后他直接说最本质的区别,然后在他的提示下我把poll和epoll之间的区别说出来了,但是select和poll之间最本质的区别是真不知道,我猜了也没对).

4.进程调度的过程,context_switch函数的实现,抢占式调度的原理、调度点等等,还有进程在切换的时候,如何防止TLB失效.

这里我记得内核开中断的时候是会进行检测的呀,他说一定不会,我说我看的源码中明明会呀.然后经过一番争论之后,我还是屈服了(虽然我到现在依然认为我是对的,但没办法,面试的时候得唯唯诺诺呀)

反问环节

对我的评价 ---挺好的,实习生够用了.

部门使用的技术栈是go还是C++ --搞linux内核开发,写汇编的 (是我班门弄斧了....)

一共有几面 --不清楚

全部评论
老哥是tinyrpc项目吗,看着像
点赞 回复 分享
发布于 2023-03-23 07:18 河南
腾讯哪个部门 想起来去年面微信部门 因为协程一个问题跟面试官吵起来了哈哈哈🤣
点赞 回复 分享
发布于 2023-03-22 22:00 陕西
老哥你投的是什么方向呀
点赞 回复 分享
发布于 2023-03-21 21:26 广东
select 是以事件为单位组织文件描述符,poll/epoll是以文件描述符为单位来组织事件。。。面试官可能想让你答这个。
点赞 回复 分享
发布于 2023-03-21 13:05 江苏
老哥什么部门啊
点赞 回复 分享
发布于 2023-03-17 12:49 香港
这是社招还是校招
点赞 回复 分享
发布于 2023-03-17 12:47 广东
select的监听每次有就绪都要遍历一遍所有的socket找出就绪的那个,epoll是直接把就绪的挂在就绪队列上了
点赞 回复 分享
发布于 2023-03-17 12:43 四川
大哥你是社招实习吗
点赞 回复 分享
发布于 2023-03-17 12:43 江苏
老哥,你操作系统看的啥书?我内核对软中断那部分学的不是很清晰,有推荐的书吗?
点赞 回复 分享
发布于 2023-03-17 12:00 辽宁
啥部门搞linux内核的呀
点赞 回复 分享
发布于 2023-03-17 11:05 日本

相关推荐

2025-12-24 15:25
已编辑
门头沟学院 前端工程师
是腾讯的csig腾讯云,前天晚上九点突然打电话约面,激动的通宵学了一晚上,第二天状态很差改了今天(以后再也不通宵学习了)感觉自己浪费了面试官一个半小时单纯手写+场景,无八股无项目无算法,打击真的很大,全是在面试官提醒的情况下完成的,自己技术方面真的还是有待提高,实力匹配不上大厂和已经面试的两个公司完全不一样,很注重编码能力和解决问题的能力,然而我这两个方面都很薄弱,面试官人很好很耐心的等我写完题目,遇到瓶颈也会提醒我,写不出题也会很耐心的跟我讲解好感动,到最后面试结束还安慰我打算把下周最后一场面试面完之后就不面啦,如果能去实习还是很开心,但是最重要的还是好好努力提高技术以下是面经第一题// 实现一个解析 url 参数的函数function parseUrl(urlStr) {// TODO}parseUrl('*********************************************');// 返回 {a: 1, b: 2, c: 3}追问:在链接里见过什么部分?用 hash 路由的话放在哪第二题// 考虑有一个异步任务要执行,返回 Promise,这个任务可能会失败,请实现 retry 方法,返回新方法,可以在失败后自动重试指定的次数。/*** 异步任务重试* @param task 要执行的异步任务* @param times 需要重试的次数,默认为 3 次*/function retry(task, times = 3) {// TODO: 请实现}// ---------------测试示例 ----------------// 原方法const request = async (data) => {// 模拟失败if (Math.random() < 0.7) {throw new Error('request failed');}const res = await fetch('https://jsonplaceholder.typicode.com/posts', {method: 'POST',body: JSON.stringify(data),});return res.json();}// 新的方法const requestWithRetry = retry(request);// 使用async function run() {const res = await requestWithRetry({ body: 'content' });console.log(res);}run();第三题就是给 retry 函数添加类型注释,用到泛型第四题:在组件库中将 Alert 用 api 的形式实现(应该就是 message 这个组件)怎么渲染到一个浮层里而不是原地渲染出来
不知道怎么取名字_:技术这个东西,太杂了,而且要下功夫的
查看5道真题和解析
点赞 评论 收藏
分享
2025-12-15 11:27
门头沟学院 Java
哇哇的菜鸡oc:所有人不要理会,就好了,后面他就知道怎么回事了,只能说有的时候市场都是被宰的人搞坏的
点赞 评论 收藏
分享
评论
8
50
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务