![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面经
文章平均质量分 82
平平无奇的羊
现役最强摆烂大学生,CSGO最强白给选手,编程业余种子选手!
bytedance字节实习ing
平常分享自己的所见所闻!想看小白晋升大佬,关注我没错
展开
-
操作系统面经-进程/线程切换究竟需要多少开销?
如果进程始终都在一个CPU上调度还好一些,如果跨CPU的话,之前热起来的TLB、L1、L2、L3因为运行的进程已经变了,所以以局部性原理cache起来的代码、数据也都没有用了,导致新进程穿透到内存的IO会变多。进程是操作系统的伟大发明之一,对应用程序屏蔽了CPU调度、内存管理等硬件细节,而抽象出一个进程的概念,让应用程序专心于实现自己的业务逻辑既可,而且在有限的CPU上可以“同时”进行许多个任务。在进程A切换到进程B的过程中,先保存A进程的上下文,以便于等A恢复运行的时候,能够知道A进程的下一条指令是啥。原创 2024-03-25 23:54:25 · 1287 阅读 · 0 评论 -
操作系统面经-多线程同步的四种方式
生产者消费者问题:每次生产一个商品,发一个信号,告诉消费者“我生产商品了,快来消费”,消费者拿到生产者的条件变量后每次消费两个商品,然后发出信号“我消费了商品,你可以生产了”--_--(发的这个信号是一个条件变量,通过发送这个信号可以唤醒阻塞的线程,收到信号后,不满足需求也会继续阻塞)要在读模式下锁定读写锁,需要调用pthread_rwlock_rdlock,要在写模式下锁定读写锁,需要调用pthread_rwlock_wrlock。当读写锁是读模式锁住的,就可以说是以共享模式锁住的。原创 2024-03-25 23:52:57 · 996 阅读 · 0 评论 -
操作系统面经-进程间通信的方式
顾名思义,进程通信( InterProcess Communication,IPC)就是指进程之间的信息交换。实际上,进程的同步与互斥本质上也是一种进程通信(这也就是待会我们会在进程通信机制中看见信号量和 PV 操作的原因了),只不过它传输的仅仅是信号量,通过修改信号量,使得进程之间建立联系,相互协调和协同工作,但是它缺乏传递数据的能力。虽然存在某些情况,进程之间交换的信息量很少,比如仅仅交换某个状态信息,这样进程的同步与互斥机制完全可以胜任这项工作。但是大多数情况下,进程之间需要交换大批数据。原创 2024-03-24 23:59:03 · 1009 阅读 · 0 评论 -
操作系统面经-孤儿进程和僵尸进程
父进程先结束【爹先挂了】,被init养父(进程号为1)收养并被重新设置为其子进程子进程终止,但父进程没有使用wait或waitpid收集其资源【爹不管】在后台运行,不与任何终端关联的进程【后台天使】孤儿进程父进程先结束,守护进程不依赖父进程僵尸进程已终止但留存PCB,守护进程是持续运行守护进程脱离终端后台运行,其他两种与终端无关。原创 2024-03-24 23:54:29 · 960 阅读 · 0 评论 -
操作系统面经-协程是什么
等等,问题来了,因为每个线程至少会占用4M的内存空间,10000个线程会消耗39G的内存,而服务器的内存配置只有区区8G,这时候你有2种选择,一是选择增加服务器,二是选择提高代码效率。第2天用户增加到了100人,你选择增加100个线程去查询数据库,等到第三天,你们加大了优惠力度,这时候有1000人同时在线付款,你按照之前的方法,继续采用1000个线程去查询数据库,并且隐隐觉察到有什么不对。因此在协程中不能调用导致线程阻塞的操作。,而且协程的切换在用户态完成,切换的代价比线程从用户态到内核态的代价小很多。原创 2024-03-24 23:51:07 · 887 阅读 · 0 评论 -
操作系统面经-什么是系统调用
处于用户态的进程有诸多限制(如不能进行 I/O 操作),所以有些功能必须由内核代劳完成。说白了,系统调用其实就是函数调用,只不过调用的是内核态的函数。控制寄存器的第 16 位是写保护位,若设置为零,则允许超级权限往内核中写入数据。是一份内核符号表,包含了内核中的变量名和函数名地址,在每次编译内核时,自动生成。当应用程序需要调用一个系统调用时,首先需要将要调用的系统调用号(也就是系统调用所在。了解了系统调用的原理后,要拦截系统调用就很简单了。是内核提供给应用程序使用的功能函数,由于应用程序一般运行在。原创 2024-03-23 18:10:41 · 1519 阅读 · 0 评论 -
操作系统面经-用户态和内核态
内核态相比用户态拥有更高的特权级别,因此能够执行更底层、更敏感的操作。不过,由于进入内核态需要付出较高的开销(需要进行一系列的上下文切换和权限检查),应该尽量减少进入内核态的次数,以提高系统的性能和稳定性。在系统的处理上,中断和异常类似,都是通过中断向量表来找到相应的处理程序进行处理。区别在于,中断来自处理器外部,不是由任何一条专门的指令造成,而异常是执行当前指令的结果。因此,同时具有用户态和内核态主要是为了保证计算机系统的安全性、稳定性和性能。用户态切换到内核态的 3 种方式。原创 2024-03-23 18:07:09 · 436 阅读 · 0 评论 -
操作系统面经-常见的操作系统有哪些?
目前最流行的个人桌面操作系统 ,不做多的介绍,大家都清楚。界面简单易操作,软件生态非常好。玩玩电脑游戏还是必须要有 Windows 的,所以我现在是一台 Windows 用于玩游戏,一台 Mac 用于平时日常开发和学习使用。windows最早的多用户、多任务操作系统。后面崛起的 Linux 在很多方面都参考了 Unix。目前这款操作系统已经逐渐逐渐退出操作系统的舞台。unixLinux 存在着许多不同的发行版本,但它们都使用了。原创 2024-03-23 17:52:35 · 325 阅读 · 0 评论 -
操作系统面经-操作系统主要有哪些功能?
②资源管理,即对网络中的共享资源(软件和硬件)实施有效的管理,协调诸用户对共享资源的使用,保证数据的安全性和一致性。但允许作业在运行过程中继续申请新的附加内存空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”。③应用互操作,即在一个由若干个不同网络互连所构成的互联网络中,必须提供应用互操作功能,以实现信息的互通性和信息的互用性。②绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其它用户程序中去执行。③允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。原创 2024-03-22 18:21:41 · 648 阅读 · 0 评论 -
操作系统面经-什么是操作系统?
这样的界面可能是命令行式的,也可能是图形化的,但是不管怎么说,这个shell需要给用户提供一种可能,使得用户可以通过shell执行所有该操作系统所提供的功能。从照片中我们可以看到一名工程师正在手动调整一个旋钮,像这样的旋钮,在他的身前有几百个,在照片中没有拍到的地方,可能还有几千几万个,更不要说还有那么多密密麻麻的线路和插口。所以,最后总结一下,操作系统的所有功能大致可以分为两部分,一部分是管理其下层的硬件资源,一部分是向其上层的用户提供操作接口,即。的专业知识,因为相关的工作已经交由操作系统来做了。原创 2024-03-22 18:20:06 · 1281 阅读 · 0 评论 -
操作系统面经-进程与线程的概念
管道可用于具有亲缘关系的父子进程间的通信,命名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。socket也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同主机之间的进程通信。信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。这种方式需要依靠某种同步操作,如互斥锁和信号量等。每个线程完成不同的任务,但是。进程是对运行时程序的封装,是。每个线程都独自占用一个。线程是进程的子任务,原创 2024-03-21 23:52:39 · 456 阅读 · 0 评论 -
操作系统面经-程序和进程的区别
线程最直接的理解就是“轻量级进程”,它是一个基本的CPU执行单元,也是程序执行流的最小单元,由线程ID 、程序计数器、寄存器集合和堆栈组成。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。值得注意的是,进程映像是静态的,进程则是动态的。引入进程实体的概念后,我们可以把传统操作系统中的进程定义为: “进程是进程实体的运行过程是系统进行资源分配和调度的一个独立单位。原创 2024-03-21 23:50:13 · 815 阅读 · 0 评论 -
计算机网络面经-交换机和路由器的区别
其实,早之前来说,交换机就是交换机,路由器就是单纯的路由器,他们没有什么交涉,交换机是用来连接局域网的,也就是只能将一个办公室或者一栋大楼的电脑连接成一个网络,但是这样的网络是没办法访问英特网的,要是想要访问的话就需要在交换机上面在接上一台路由器,但是现在的家用路由器里边基本都集成了交换机的功能了,所以大家不必要购买两个产品了。路由器是用来做网间连接,也就是用来连接不同的网络。由于路由器和交换机的外观长得一样一样的,但他们有个超级明显的区别:交换机的各个接口上标注的序列数字是有规律的,接口颜色也是一致的。原创 2024-03-20 23:45:31 · 324 阅读 · 0 评论 -
计算机网络面经-什么是IPv4和IPv6?
IPv6的速度显然不比IPv4快,但是从IPv4完全更改为IPv6将为Internet提供更大的唯一IP池。它是Internet协议的最新版本,但它是在1998年开发的,旨在替换IPv4地址。IPv6的网络安全不像IPv4是可选项,IPv6里的网络安全项是强制性的。IPv4地址的概念是在1980年代初期提出的。即使有新版本的IP地址,IPv4地址仍然是Internet用户使用最广泛的地址。IPv4不适合移动网络,因为正如我们前面提到的,它使用点分十进制表示法,而IPv6使用冒号,是移动设备的更好选择。原创 2024-03-20 23:43:06 · 951 阅读 · 0 评论 -
计算机网络面经八股-GET请求和POST请求的区别?
GET和POST最大的区别主要是GET请求是幂等性的,POST请求不是。这个是它们本质区别。幂等性是指一次和多次请求某一个资源应该具有同样的副作用。简单来说意味着对同一URL的多个请求应该返回同样的结果。一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。原创 2024-03-15 11:17:31 · 945 阅读 · 0 评论 -
计算机网络面经八股-状态码301和302的区别是什么?
301表示旧地址A的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。此代码与响应GET和HEAD请求的301代码类似,会自动将请求者转到不同的位置。:301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取(原创 2024-03-15 11:17:11 · 209 阅读 · 0 评论 -
计算机网络面经八股-HTTP请求报文和响应报文的格式?
【代码】计算机网络面经八股-HTTP请求报文和响应报文的格式?原创 2024-03-14 11:00:28 · 604 阅读 · 0 评论 -
计算机网络面经八股-TIME_WAIT 是服务器端的状态?还是客户端的状态?
TIME_WAIT 需要等待 2MSL,在大量短连接的情况下,TIME_WAIT会太多,这也会消耗很多系统资源。对于服务器来说,在 HTTP 协议里指定 KeepAlive(浏览器重用一个 TCP 连接来处理多个 HTTP 请求),由浏览器来主动断开连接,可以一定程度上减少服务器的这个问题。TIME_WAIT 是主动断开连接的一方会进入的状态,一般情况下,都是客户端所处的状态;服务器端一般设置不主动关闭连接。因为他其实是一个主动断开链接发起者的状态,在发送最后一次ACK后进入time_wait状态。原创 2024-03-14 11:00:10 · 334 阅读 · 0 评论 -
计算机网络面经八股-HTTP常见的状态码有哪些?
HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。HTTP 状态码的英文为。原创 2024-03-13 12:11:27 · 846 阅读 · 0 评论 -
计算机网络面经八股-如果已经建立了连接,但是客户端出现故障了怎么办?
或者说,如果三次握手阶段、四次挥手阶段的包丢失了怎么办?如“服务端重发 FIN丢失”的问题。简而言之,通过,尝试获取确认,直到最后会自动断开连接。具体而言,TCP 设有一个保活计时器。服务器每收到一次客户端的数据,都会重新复位这个计时器,以Linux服务器为例,时间通常是设置为 2 小时。若 2 小时还没有收到客户端的任何数据,服务器就开始重试:每隔 75 秒(默认)发送一个探测报文段,若一共发送 10 个探测报文后客户端依然没有回应,那么服务器就认为连接已经断开了。一、一个TCP持续连接的情况。原创 2024-03-13 12:11:09 · 963 阅读 · 0 评论 -
计算机网络面经八股-解释一下HTTP长连接和短连接?
在长连接的应用场景下,client端一般不会主动关闭它们之间的连接,Client与server之间的连接如果一直不关闭的话,会存在一个问题,随着客户端连接越来越多,server早晚有扛不住的时候,这时候server端需要采取一些策略,如关闭一些长时间没有读写事件发生的连接,这样可 以避免一些恶意连接导致server端服务受损;在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的 TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。原创 2024-03-12 17:10:16 · 2116 阅读 · 0 评论 -
计算机网络面经八股-HTTP1.0和HTTP1.1的区别?
HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。HTTP 1.1则支持持久连接Persistent Connection, 并且默认使用persistent connection. 在同一个tcp的连接中可以传送多个HTTP请求和响应. 多个请求和响应可以重叠,多个请求和响应可以同时进行. 更加多的请求头和响应头(比如HTTP1.0没有host的字段).原创 2024-03-12 17:09:54 · 1192 阅读 · 0 评论 -
计算机网络面经八股-为什么客户端的 TIME-WAIT 状态必须等待 2MSL ?
什么情况下会发生重传FIN呢?服务器发出了最后的FIN后,会进入LAST-ACK状态等待接收最后的ACK。在等待一段时间后服务器发现没有收到最后的ACK,这时服务器会重传最后的FIN。这段等待时间在TCP中被称为RTO( Retransmission Timeout,超时重传时间),是TCP中任何数据包超时重传的等待时间,这个时间是动态计算的。由MSL的含义可知,报文从发出到被接收至多经历1 MSL时间,因为超过该时间的报文会被丢弃。而发出一个报文到收到确认应答,最坏情况下,显然至多需要2 MSL时间。原创 2024-03-11 23:30:19 · 1140 阅读 · 0 评论 -
计算机网络面经八股-什么是 SYN洪泛攻击?如何防范?
TCP SYN泛洪发生在OSI第四层,这种方式利用TCP协议的特性,就是三次握手。攻击者发送TCP SYN,SYN是TCP三次握手中的第一个数据包,而当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到再确认的话,还会重复发送ACK给攻击者。这样更加会浪费服务器的资源。原创 2024-03-11 23:19:10 · 973 阅读 · 0 评论 -
计算机网络面经-HTTPS加密过程
在上篇文章HTTPS详解一中,我已经为大家介绍了 HTTPS 的详细原理和通信流程,但总感觉少了点什么,应该是少了对安全层的针对性介绍,那么这篇文章就算是对HTTPS 详解一的补充吧。还记得这张图吧。HTTPS 和 HTTP的区别显然,HTTPS 相比 HTTP最大的不同就是多了一层 SSL (Secure Sockets Layer 安全套接层)或 TLS (Transport Layer Security 安全传输层协议)。原创 2024-03-07 22:52:54 · 2085 阅读 · 0 评论 -
计算机网络面经-拥塞控制的乘法减小和加法增大
乘法减小”原则是在网络出现拥塞时,发送方将慢开始门限(ssthresh)设置为当前拥塞时发送窗口大小的一半,并执行慢开始算法。“加法增大”原则是在执行拥塞避免算法后,拥塞窗口(cwnd)以线性方式缓慢增大,以防止过早出现拥塞。同时,由于增长是线性的,因此发送速率的提升相对平缓,有助于避免过早出现拥塞。当网络出现拥塞时,乘法减小原则通过降低ssthresh的值来迅速减少发送窗口的大小,从而降低发送速率。“乘法减小”:无论是在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞,就把慢开始门限。原创 2024-03-07 22:17:41 · 593 阅读 · 0 评论 -
计算机网络面经-TCP为什么可靠
确认和重传(Acknowledgment and Retransmission):数据校验(Data Checksum):数据合理分片和排序(Data Fragmentation and Sequencing):流量控制(Flow Control):拥塞控制(Congestion Control):原创 2024-03-07 22:12:23 · 304 阅读 · 0 评论 -
计算机网络面经-TCP和UDP的区别
UDP首部开销8字节,TCP报头比UDP复杂,故实际包含的用户数据较少。TCP在IP协议的基础上添加了序号机制、确认机制、超时重传机制等,保证了传输的可靠性,不会出现丢包或乱序,而UDP有丢包,故TCP开销大,UDP开销较小。2) 由于TCP是连接的通信,需要有三次握手、重新确认等连接过程,会有延时,实时性差,同时过程复杂,也使其易于攻击;UDP没有建立连接的过程,因而实时性较强,也稍安全。TCP 是面向字节流的,UDP 是基于数据报的。TCP 是面向连接的,UDP 是面向无连接的。原创 2024-03-06 10:00:00 · 455 阅读 · 0 评论 -
操作系统篇——虚拟内存到底是个啥?
关于虚拟内存内部的结构可以参考进程虚拟地址空间的区域划分每个进程创建加载的时候,会被分配一个大小为4G的连续的虚拟地址空间,虚拟的意思就是,其实这个地址空间时不存在的,仅仅是每个进程“认为”自己拥有4G的内存,而实际上,它用了多少空间,操作系统就在磁盘上划出多少空间给它,等到进程真正运行的时候,需要某些数据并且数据不在物理内存中,才会触发缺页异常,进行数据拷贝。原创 2024-03-05 22:29:00 · 1159 阅读 · 0 评论 -
计算机网络面经-TCP的拥塞控制
计算机网络面经-TCP的拥塞控制原创 2024-02-25 13:04:30 · 1196 阅读 · 1 评论 -
计算机网络面经-HTTP的8种请求方式
http8种请求方式原创 2024-02-22 23:58:38 · 855 阅读 · 0 评论 -
计算机网络面经-HTTP 与 HTTPS 的区别?
HTTP 与 HTTPS 的区别?原创 2024-02-21 23:54:16 · 1092 阅读 · 0 评论 -
计算机网络面经-TCP三次握手一文说清
计算机网络面经-TCP三次握手一文说清,不看后悔系列原创 2024-02-21 23:46:53 · 902 阅读 · 0 评论 -
计算机网络面经_体系结构一文说清
字节实习生为大家带来的是计算机网络面经系列博文,由浅入深,大家可以收藏关注!快快上车吧!原创 2024-02-20 23:53:37 · 1184 阅读 · 0 评论