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

  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,这样服务器就能同时管理与多个客户端的连接。

#我的实习求职记录#
全部评论

相关推荐

感觉问的都挺常见的,深度也不是很深,手撕也是高频的middle,侥幸过了一面,但总的来说还是太菜了,八股缺不少,JAVA的都没问(问了估计更寄),打算不投了再背背八股,学学redis吧。时间线(TL):6.20投递6.25一面(通过)15min实习项目,35min八股,30min手撕6.26二面(6.28显示暂不匹配,挂)一面:0.自我介绍1.拷问实习项目15min​介绍项目?你说的部署方式有哪些?你说的这个具体的分布式锁是怎么实现的?2.redis常用的数据结构,以及每一种数据结构的使用场景​没背,不会,面试官很惊讶,找补了一下项目是怎么用的(分片上传,只知道是k-v值)3.说一下对MySQL的了解​让我纯自由发挥,innodb引擎->索引->b+树和b树,了解事务的四大特性ACID4.MySQL的隔离级别​(幻读和不可重复读的概念有点混淆了)5.MySQL有哪几种索引?什么情况下会去建立什么索引?​讲了索引是什么?讲了一级和二级索引(别名忘了)6.之前有实际去用过索引吗?​没有。。。7.什么情况下去使用联合索引?​最左匹配原则8.点击一个URL到显示网页中间都经历了什么?9.DNS查找的详细过程?我讲的“分级”是什么意思10.在这个过程中数据是怎么传输的?(三次握手)11.HTTPS有了解吗?过程中的非对称加密的过程?​讲的太复杂了,对称加密和非对称的公钥和私钥有点绕,其实对称加密的公钥就是一个密钥12.HTTP请求的报文中有哪些内容?​不太清楚报文是什么意思,答了请求头+请求体两个部分13.请求体常用的有哪些,有哪些属性?​这个不太清楚,回答了json格式的数据/二进制文件手撕代码(30min没写出来)​滑动窗口-[LCR 008. 长度最小的子数组]
查看13道真题和解析
点赞 评论 收藏
分享
1 6 评论
分享
牛客网
牛客企业服务