腾讯云智 技术运营实习生 面经

  1. 对操作系统内存管理的理解
  2. 线性地址如何转化为物理地址,是通过什么物理设备转化的
  3. 在用户态执行malloc()之后,内核态会执行什么流程来完成内存分配操作
  4. 请说一下Linux下的CFS调度思想
  5. 说一下常见的进程调度的方法
  6. 请介绍一下多线程如何进行同步的
  7. TCP四次挥手的状态机,四次挥手的详细流程
  8. TCP如何实现和多个客户端建立连接

省流:gpt回答

线性地址如何转化为物理地址:

线性地址到物理地址的转换通常通过内存管理单元(MMU)完成。在现代操作系统中,这个过程涉及到分页机制,其中线性地址被分为页号和页内偏移两部分。操作系统维护一个页表,每个页表项包含相应物理页的信息。MMU使用这个页表来将线性地址映射到物理地址。

在用户态执行malloc()之后,内核态的内存分配流程:

当应用程序在用户态调用malloc()进行内存分配时,malloc()函数首先会检查其内部数据结构(如空闲链表)是否有足够的已分配空间可以使用。如果没有,它会通过系统调用(如brk()或mmap())向内核请求更多内存。内核会检查系统的内存状态,更新页表,并可能涉及到页替换或交换空间的操作,然后将控制权返回给应用程序。

Linux下的CFS(Completely Fair Scheduler)调度思想:

CFS是Linux操作系统中使用的进程调度算法,其核心思想是尽可能公平地分配CPU时间给每个运行的进程。CFS使用虚拟运行时间来表示进程的CPU使用时间,该时间通过实际运行时间和权重(优先级的反向)来调整。CFS通过红黑树数据结构来管理所有可运行的进程,以确保每个进程都能获得公平的CPU时间。

常见的进程调度方法:

批处理系统:如FCFS(先来先服务)、SJF(最短作业优先)、优先级调度。

交互式系统:如轮转调度(Round Robin)、多级反馈队列。

实时系统:如硬实时和软实时调度策略。

多线程同步方法:

多线程程序中,同步通常用来防止数据竞态和保证线程间的协调。常见的同步机制包括:

互斥锁(Mutex):保证同时只有一个线程可以访问共享资源。

信号量(Semaphore):允许一定数量的线程同时访问一个或一组资源。

条件变量:允许线程在某些条件下挂起操作或者等待资源变为可用。

屏障(Barrier):使一组线程在所有线程都到达某点后再同时继续执行。

TCP四次挥手的状态机和详细流程:

TCP连接的终止使用四次挥手过程:

第一次挥手:发起关闭的一方(假设为客户端)发送一个FIN报文。

第二次挥手:服务器收到FIN后,发送一个ACK报文确认,并转入CLOSE-WAIT状态。

第三次挥手:服务器准备关闭连接时,发送一个FIN给客户端。

第四次挥手:客户端收到FIN后,进入TIME-WAIT状态,发送ACK确认,然后等待足够的时间以确保服务器接收到确认。

TCP如何实现和多个客户端建立连接:

TCP服务器通过在一个端口监听来接受来自多个客户端的连接请求。它使用socket编程中的listen()和accept()调用来处理多个连接。每当一个客户端发起连接时,服务器通过accept()为每个新的连接创建一个新的socket,这样服务器就能同时管理与多个客户端的连接。

#我的实习求职记录#
全部评论
为啥运营开发不问Java
点赞 回复 分享
发布于 07-16 01:09 湖南

相关推荐

一面:Java的库有哪些JUC的使用死锁如果一把锁 两个线程执行会死锁吗synchronizedCountDownLatchCompletableFutureJVM对哪些比较了解?设计模式:画一个你经常使用的问项目的问题手撕算法反问:业务+今日表现二面:怎么去做日志的打印?AOP怎么使用?布隆过滤器为什么就比分布式锁的性能好?怎么样保障数据的一致性?如果布隆过滤器失效的话?Java的库有哪些?五个任务的编排并等待五个任务都运行后,进行最终的结果处理?五个任务的串行执行怎么去设计?可以怎么使用线程池去做?synchronized A-> synchronized  B  synchronized B->synchronized  A会发生什么现象?死锁 ?synchronized A-> synchronized  B-> synchronized  C   synchronized  C -> synchronized B-> synchronized  A会发生什么现象?死锁?如果一把锁 两个线程执行会死锁吗?SynchronizedCountDownLatchCompletableFuturesleep()和wait()的区别JVM的内存分配是怎么样的?有哪些是在栈生成?哪些是在堆生成?int类型的字节数在32位机和64位机下有什么区别?各占多少字节数?long类型呢?手撕算法:最小公倍数三面:怎么理解MVC?具体在你的项目里是指哪些模块?你的项目是怎么设计的?怎么写的?有哪些流程?怎么理解JVM?大概讲讲对哪块比较熟?怎么理解Java这门语言?如何理解团队合作?觉得自己基础怎么样?有什么问题想问的?HR面:自我介绍评价一下自己是否接受异地实习说一下自己的一些缺点为什么学习Java?怎么理解Java的?平时怎么学习的?有什么问题想问的吗?面向对象:2025届毕业生,可使用此内推码:NTAAi5Z1. 官网投递进入校招官网,输入内推码进行:https://app-tc.mokahr.com/m/recommendation-apply/csig/6007?sharePageId=54604&recommendCode=NTAAi5Z&codeType=1#/recommendation/page/54604投递即可(1)云智校招官网:(2)云智内推码: NTAAi5Z2. 工作地点西安、武汉、长沙、重庆、厦门、大连3. Q&AQ:我可以投递几个岗位?A:每位同学可投递两个岗位(如后台开发-2025届校园招聘 & 客户端开发-2025届校园招聘),请同学们查看岗位描述,选择最适合的岗位进行投递。如同学在简历筛选后希望修改投递岗位,请通过邮箱或者云智校招QQ与我们联系。Q:之前投递过暑期实习岗位,秋招还能投递吗?A:可以,不影响秋招简历投递哦,快选择心仪的职位投递吧!Q:面试方式是什么?A:本次校园招聘以线上远程面试为主,在线上远程视频面试时,建议同学处于熟悉且安静的环境中,并提前检查摄像头、麦克风和耳机是否运行正常、网速达标且稳定等、安装最米哈游新版的腾讯会议或Chrome/QQ浏览器。面试安排若有任何变动,我们将第一时间通过短信或邮件告知。Q:我想调整面试时间或面试形式,应该联系谁?A:请尽量按时参与面试,如果临时有事或因不可抗力无法参加,可以通过邮箱或者云智校招QQ与我们联系,说明你的姓名、联系方式、调整原因以及可以调整的几个时间段。Q:如何查看我的面试进展?A:如需查询招聘进展,可点击【腾讯云智研发】微信公众号,在后台回复“校招进度”即可获得查询链接;也可以登录云智校招官网,进入“投递记录“查看招聘进展及面试情况。Q:云智与腾讯集团的关系是什么?A:云智全称腾讯云与智慧产业研发公司,简称“云智研发公司”。作为腾讯集团的子公司,云智由腾讯云与智慧产业事业群(CSIG)全面管理,与CSIG总部联合形成分布式研发的组织模式,推进云与产业互联网战略落地。Q:我们是腾讯员工吗?薪酬福利如何?A:云智研发公司是腾讯旗下的子公司,我们是腾讯子公司正式员工。云智研发公司独立运行,致力于为每一个加入团队的伙伴提供有保障和竞争力的薪酬福利、成长发展平台。投递的uu评论一下姓名缩写加岗位(HFG+产品经理),我会尽力跟进~经理),我会尽力跟进~
腾讯云智研发
|
校招
|
超多精选岗位
点赞 评论 收藏
分享
1 11 评论
分享
牛客网
牛客企业服务