oppo 提前批 系统工程师 凉经

一面 30 min
1、多线程的交互,如何应对资源竞争,避免死锁
2、讲一讲数据结构
3、双向链表的api与实现
4、进程调度算法
5、排序算法,各算法的时间、空间复杂度
6、进程的几种状态,什么时候会进行转化
7、你的笔试成绩不是很理想,怎么回事
8、你有什么问题问我

二面 30 min
1、为什么选这个岗位
2、介绍一下你的比赛获奖
3、你的优缺点是什么
4、你在团队主要充当什么角色
5、你的专业是是做什么的,本科研究生都是学什么的,为什么选择这个
6、你会哪些语言
7、你有什么想问我的

二面结束后2天,就被通知凉了
全部评论
没有手撕?
点赞 回复 分享
发布于 2023-08-07 15:41 江苏
请问一二面隔了多久呢
点赞 回复 分享
发布于 2023-08-07 09:24 浙江

相关推荐

##暑期实习#自我介绍3min简历从上问到下。涉及项目的八股文;1.常见的进程间通信的方式进程间通信(IPC) 是指两个或多个进程之间交换数据或消息的一种机制,目的是实现协同工作。📦 一、常见的 IPC 方式总览表通信方式是否共享内存是否跨主机特点管道(pipe)❌❌简单、方向单一、适合父子进程命名管道(FIFO)❌❌可用于无亲缘关系进程消息队列(message queue)❌❌消息格式通信,可靠性好共享内存(shared memory)✅❌速度最快,需同步机制信号量(semaphore)✅/❌❌控制同步/互斥,不用于数据传输套接字(socket)❌✅支持网络通信,本地也可用信号(signal)❌❌通知事件,数据能力弱内存映射文件(mmap)✅❌利用文件映射共享内存D-Bus / Binder(高层)❌❌高层封装,适合桌面/Android🔍 二、各方式详细解释与示例1️⃣ 管道(pipe)•特点:半双工(单向),仅限父子进程。•使用函数:pipe(fd)•示例:int fd[2];pipe(fd); // fd[0] 读,fd[1] 写2️⃣ 命名管道(FIFO)•特点:路径名形式存在,可用于无血缘关系进程。•使用函数:mkfifo()、open()、read()、write()3️⃣ 消息队列(msg queue)•特点:结构化数据传输,带消息类型,支持异步收发。•接口函数:msgget()、msgsnd()、msgrcv()4️⃣ 共享内存(shared memory)•特点:最快!但需要加锁机制(如信号量)来保证数据一致性。•接口函数:shmget()、shmat()、shmdt()5️⃣ 信号量(semaphore)•特点:用于控制访问共享资源的同步机制,不传数据。•分为 System V 和 POSIX 两种接口6️⃣ 套接字(socket)•特点:最强大!可用于网络通信、跨主机通信。•本地通信常用 UNIX 域套接字:AF_UNIX 或 AF_LOCALsocketpair(AF_UNIX, SOCK_STREAM, 0, fd); // 本地双向通信7️⃣ 信号(signal)•特点:用于异步事件通知,如 SIGINT、SIGTERM 等。•用于告知进程某个事件发生,不适合传输大量数据。8️⃣ 内存映射文件(mmap)•特点:将文件映射到内存地址空间,不需要读写系统调用。•多进程可通过映射同一个文件实现共享。9️⃣ 高层机制(D-Bus、Binder)•D-Bus:Linux 桌面系统中用于服务之间通信。•Binder:Android 专用 IPC 框架,高性能支持远程调用。✅ 总结对比表(按用途和性能)方式性能是否支持多进程通信方向特点管道中父子进程单向简单FIFO中任意单向命名管道消息队列中任意双向结构化、可阻塞共享内存高任意任意最快,但需同步信号量–任意控制同步适合同步控制socket低-中任意/跨主机双向网络、本地皆可signal低任意异步事件数据量极小mmap高任意双向文件映射共享D-Bus/Binder中高层服务通信双向高级封装🛠 应用建议:场景推荐方式进程共享大块内存共享内存 + 信号量父子进程简单通信pipe网络通信 or 跨主机socketAndroid 系统进程通信Binder实时系统内核态/用户态通信自定义 ring buffer / RPMSG微内核服务模块通信高性能 IPC + 端口调度机制2.共享内存的优缺点共享内存是一种允许多个进程访问同一块物理内存区域的机制。这意味着两个(或多个)进程可以“看见”同一块数据区域,不用通过内核反复读写,只要写进内存,另一个进程立马就能读到。📌 在 Linux 中,常见通过 shmget(System V)或 mmap(POSIX)创建共享内存。✅ 二、共享内存的优点优点说明🚀 性能极高不需要内核在中间传递数据,多个进程直接访问同一块内存,速度远快于管道、消息队列📦 支持大数据传输适合频繁、大块数据传输,比如音视频流、传感器数据等🔁 双向通信简便不区分谁读谁写,天然支持双向通信(不像 pipe 一定是单向)🧠 内存可持续使用可以多次 attach/detach,有效控制生命周期🤝 可跨进程共享结构体不只是字节数组,可以共享复杂数据结构(需注意同步)❌ 三、共享内存的缺点缺点说明🧵 缺乏同步机制多个进程同时访问时,必须借助信号量、互斥锁等机制来同步,避免数据冲突或脏读🧩 编程复杂度高相比消息队列、socket,开发者需要手动管理内存结构、同步机制,容易出错🧹 资源管理麻烦如果进程异常退出可能导致共享内存段未释放(需要手动 ipcrm 清理)🔐 权限安全问题进程间共享内存段可能被其他进程 attach,如果没有权限控制,容易泄露或被恶意访问🏷 难以调试调试时很难追踪多个进程对同一块内存的读写行为,容易出现并发 bug🛠 四、适用场景场景推荐使用共享内存实时系统数据共享(如传感器数据)✅视频/音频流处理(高吞吐)✅微内核/虚拟化中的 IPC✅(常与中断配合)简单命令传递/控制信息❌(pipe、socket 更简单)网络分布式通信(跨主机)❌(用 socket)📌 五、总结一句话共享内存优点是“快”,缺点是“难控制”。3.讲一下相关项目分工,项目中遇到的困难,以及困难是如何解决的。4.实习经历相关的问题,主要工作是做了什么5.常见的排序算法有哪些,讲讲他们的具体实现方式6.在学校里学的最难的一门课程,如何学习的,从中收获了什么?7.比赛相关问题#牛客AI配图神器#反问
查看8道真题和解析
点赞 评论 收藏
分享
2025/4/1入职先说bg:四非------------------本人代码能力为0.1,因为一点“运气”(后面说)被招到米来做实习生,下面我主要展开说一下我们双非找工作可能会遇到的事情给大家做一下参考,感觉会解开大家一些“疑惑”。首先:不要什么金三银四(这是应届生的春招说法),慢慢投,4月头陆陆续续很多“正常”的公司才开始招聘,- 不说别的,就某鹅,如果你的学历不是很高,某鹅不知道把你泡到什么时候,好几个朋友去年投的,现在开始收到面试邀约了。- 我现在来解释为什么会有上述情况的发生,谁也没错,只是你把实习想的太简单了,实习他不是秋招,首先单纯的:1.实习是双向选择,不是每年同样的岗位都会再开一遍,每年HC也不是一样的,这取决于这个公司接下来一年/长期的业务规划,举个例子:小米这两年造车很厉害,那他汽车部HC肯定>手机部,这点你得明白,然后你的岗位也许在不同的部门都有,那你这个时候就得明白你是要投部门还是投岗位,如果是投部门,为了有实习,你应该是选HC多的,对吧。2.为什么网上看了一个帖子一个大佬刚投就面,怎么我投了就没进展,开始泡池子,是我简历被刷了吗?负责的告诉你,不一定是,很大程度就是招满了,就是在你投递之前有人已经进流程了,实习生也不会招很多,有人入职就OK了,本质上还是双向选择,你看的那么多的岗位,很有可能这个岗位他就是招一个人,至于你说为什么岗位没下掉,那就是一个公司的流程问题了,这个又很复杂了,总之就是,人家已经招到了心满意足的人,你的缘分不够,所以我说找实习是靠运气的有时候。3.再者就是,实习和秋招不一样,实习需要的一定是尽快到岗,当然暑期实习可能另说,主要目的是为了转正,那这也是同样的问题,人家都是招暑期实习了,3月4月来面完你,等到你到岗已经6月份了,还记得当时面了什么吗,你还记得你当时反问了几句吗,所以3月之前能开实习的,已经是不太对劲了,说白了(阴谋论:可能就是人家HC不多,但是又不好意思不开暑期,干脆早点开,这样也说得过去)。真正开暑期都是4,5月,你想,4.1开始就算开始走流程,笔试+一面+二面+HR面(正常流程),起码15天起步,这还是在只面你得情况,如果说HC多,面试官都得排队给你们面,一个一个来,一个流程不走一个月就不错了,所以你算,再给你租房子的时间,少说得留一个月吧,有些同学还得和导师去协商实习时间,交接任务,大家都不是神仙,所以别太焦虑。只能说网上说这些细节的我感觉很少,但是我自己面试下来就是有这么多感受,其实也理解,环境也不好,bg又不是很好,找实习确实是困难,但是也别太焦虑了,实习也不是决定性项目,实习的目的应该是你觉得你在组里/学校里学不到东西,要出来学东西才来的。暂时想到的就这么多了,欢迎大家提问补充。#我想象的实习vs现实的实习##毕业季,你想好怎么跟生活对线了吗?##牛客创作赏金赛#
点赞 评论 收藏
分享
评论
点赞
28
分享

创作者周榜

更多
牛客网
牛客企业服务