网络,操作系统面试题
文章平均质量分 67
计算机网络,操作系统相关面试题
我是方小磊
这个作者很懒,什么都没留下…
展开
-
操作系统面试题:单核cpu同一时刻能处理多少个进程
先给结论:单核CPU在同一时间只能处理一个进程多核CPU可以同时执行多个进程,进程个数不高于核数首先应该明白两个概念:并发和并行并发:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU转载 2021-05-19 20:20:28 · 12851 阅读 · 0 评论 -
操作系统面试题:操作系统中堆和栈的区别
转载记录:https://blog.csdn.net/yoxiyehei_wzx/article/details/51260143转载 2021-04-20 13:05:38 · 200 阅读 · 0 评论 -
网络面试题:拆包和粘包问题怎么解决?
为什么TCP会有拆包和粘包TCP属于传输层的协议,传输层除了有TCP协议外还有UDP协议。那么UDP是否会发生粘包或拆包的现象呢?答案是不会。UDP是基于报文发送的,从UDP的帧结构可以看出,在UDP首部采用了16bit来指示UDP数据报文的长度,因此在应用层能很好的将不同的数据报文区分开,从而避免粘包和拆包的问题。而TCP是基于字节流的,虽然应用层和TCP传输层之间的数据交互是大小不等的数据块,但是TCP把这些数据块仅仅看成一连串无结构的字节流,没有边界;另外从TCP的帧结构也可以看出,在TCP的首部没转载 2021-04-20 12:07:09 · 468 阅读 · 0 评论 -
操作系统面试题:死锁产生的条件和如何避免
死锁产生的条件四个条件:互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。请求与保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源 已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。不可剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放(只能是主动释放)。循环等待条件:指在发生死锁时,必然存在一个转载 2021-04-19 17:09:54 · 313 阅读 · 0 评论 -
网络面试题:SSL连接过程
SSL连接过程客户端将它所支持的算法列表和一个用作产生密钥的随机数(第一个随机数发送给服务器;服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数(第二个随机数);客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥;然后,再产生一个称作pre_master_secret(第三个随机数,但是需要用公钥加密) 的随机密码串,并使用服务器的公用密钥对其进行原创 2021-04-19 17:05:07 · 470 阅读 · 0 评论 -
经典面试题:输入url到页面显示的过程
输入url到页面显示的过程这是一到非常经典的面试题,里面涉及的知识点的确是非常多,如果对某个过程特别懂的话就会讲的很细很细,所以还是看个人水平吧,我这里就只能当搬运工总结一下。参考的博客如下:https://blog.csdn.net/yanshuanche3765/article/details/825892101. DNS解析(应用层)当输入url按下回车之后,第一步应该做的就是DNS解析,因为我们输入的仅仅是一个域名而已,浏览器需要知道到底向哪个服务器发送请求,DNS解析过程如下:浏转载 2021-04-17 20:15:45 · 387 阅读 · 2 评论 -
操作系统面试题:x64,x86函数调用过程及其区别
一. 函数调用过程二. x64,x86函数调用区别2.1 寄存器数量区别1、x86架构 x86架构是intel开发的一种32位的指令集。8个32位通用寄存器 eax,ebx,ecx,edx,ebp,esp,esi,edi。2、x64架构 x64架构是64位的,有16个通用寄存器 rax,rbx,rcx,rdx,rsi,rdi,rsp,rbp,r8,r9,r10,r11,r12,r13,r14,r15。2.2 调用函数区别x86架构与x64架构在函数于栈中调用过程的不同之处在于:x86架构下,函数转载 2021-04-17 11:47:37 · 534 阅读 · 0 评论 -
网络面试题:epoll的工作模式
epoll的工作模式epoll的工作模式一共有两种:LT(水平触发)和ET(边缘触发)默认情况下,epoll采用LT模式工作,该模式支持阻塞和非阻塞套接字,如果想采用ET模式,可以使用EPOLLET参数。ET模式只支持非阻塞套接字,其效率要高于LT模式,两者的区别在于,当一个新的事件到来时,LT、ET模式下都可以通过epoll_wait方法来获取到这个事件,但是如果这次没有把这个事件对应的套接字缓冲区处理完,在这个套接字没有新的事件再次到来时:在ET模式下是无法再次从epoll_wait方法中获转载 2021-04-17 11:40:27 · 774 阅读 · 0 评论 -
网络面试题:字节序?网络字节序和主机字节序?
文章目录一. 概念二.分类三.为什么要分大小端四. 高低地址与高低字节3.1 高低地址3.2 高低字节五、例子六. 如何判断大小端一. 概念字节序,就是 大于一个字节类型的数据在内存中的存放顺序。是在跨平台和网络编程中,时常要考虑的问题。二.分类字节序经常被分为两类:Big-Endian(大端):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。Little-Endian(小端):低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。三.为什么要分大小端这是因为在计算机系转载 2021-04-16 15:42:02 · 979 阅读 · 0 评论 -
网络面试题:HTTP1.0,HTTP1.1和HTTP2.0的区别
文章目录一. HTTP1.0和HTTP1.1的区别1.1 长连接(Persistent Connection)1.2 节约带宽1.3 HOST域1.4缓存处理1.5错误通知的管理二. HTTP1.x和HTTP2.0的区别2.1 二进制解析2.2 header压缩2.3 多路复用2.4 服务器推送一. HTTP1.0和HTTP1.1的区别1.1 长连接(Persistent Connection)长连接在无数据传输后不会立即断开,而是会等待一定的时间再断开。HTTP1.1支持长连接和请求的流水线处理转载 2021-04-16 12:06:24 · 1857 阅读 · 0 评论 -
网络面试题:HTTP报文结构(请求报文,响应报文)
文章目录HTTP报文结构一. 请求报文1.1 请求行1.2 请求头1.3 请求数据二. 响应报文2.1 响应行2.1 响应头2.3 响应数据HTTP报文结构一. 请求报文HTTP请求报文主要包括三个部分:请求行,请求头,请求数据如下图所示:其中的空格是作为分割前后部分的标志1.1 请求行请求行包括:请求方法,URL,协议版本举例说明:GET + 空格 + /xxxxx/login.html + 空格 + HTTP/1.1请求方法:HTTP使用的请求方法,比如常见的GET/POST常见的转载 2021-04-16 11:03:46 · 1158 阅读 · 0 评论 -
网络面试题:常见的路由选择算法
路由选择算法常见的路由选择算法分为:静态路由算法1)Dijkstra(迪杰斯特拉)算法(最短路径算法 )2)扩散法动态路由算法1)距离向量路由算法2)链路状态最短路由优先算法SPF一. 静态路由算法1.1 Dijkstra算法(最短路径算法)Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细转载 2021-04-15 22:10:06 · 4584 阅读 · 0 评论 -
网络面试题:TCP三次握手中的半连接队列和全连接队列
文章目录1. 半连接队列和全连接队列2. 半连接队列溢出3. 全连接队列溢出4. 全连接队列满了,就只会丢弃连接吗?1. 半连接队列和全连接队列什么是 TCP 半连接队列和全连接队列?在 TCP 三次握手的时候,Linux 内核会维护两个队列,分别是:半连接队列,也称 SYN 队列;全连接队列,也称 accepet 队列;服务端收到客户端发起的 SYN 请求后,内核会把该连接存储到半连接队列,并向客户端响应 SYN+ACK,接着客户端会返回 ACK,服务端收到第三次握手的 ACK 后,内核会转载 2021-04-15 21:35:36 · 656 阅读 · 0 评论 -
数据库表的连接方式
数据库表的连接方式先总体概述一下:一般用的是join 和 union1. 笛卡尔积:join2. 内连接:inner join on3. 外连接:全外连接(full join on),左外连接(left join on),右外连接(right join on)4. 联合查询:Union 和Union all用于测试的两张表:1.笛卡尔积 (join)两表关联,把左表的列和右表的列通过笛卡尔积的形式表达出来。select * from t1 join t2结果:2.内连接 (i转载 2021-04-14 22:08:10 · 8963 阅读 · 0 评论 -
网络面试题:TCP和UDP的区别及应用场景
TCP和UDP的区别1.TCP的特点TCP是面向连接的可靠性传输协议。面向连接:需要进行三次握手进行连接,四次挥手断开连接可靠性:TCP通过快速重传机制,同时有自身的流量控制和拥塞控制设计,因此数据的传输可靠性较高。TCP是面向字节流的传输协议。TCP是面向面向字节流,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。TCP传输效率低,传输速度慢原创 2021-04-14 20:23:02 · 434 阅读 · 1 评论 -
操作系统面试题:进程切换,线程切换,协程切换
一. 进程切换1.1 相关背景知识1.1.1 虚拟内存1.1.1.1 虚拟内存是什么虚拟内存别称虚拟存储器(Virtual Memory)。电脑中所运行的程序均需经由内存执行,若执行的程序占用内存很大或很多,则会导致内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。若计算机运行程序或操作所需的随机存储器(RAM)不足时,则 Windows 会用虚拟存储器进行补偿。它将计算机的RAM和原创 2021-04-13 17:54:08 · 3233 阅读 · 1 评论 -
网络面试题:TCP滑动窗口
TCP滑动窗口在进行数据传输时,如果传输的数据比较大,就需要拆分为多个数据包进行发送。TCP 协议需要对数据进行确认后,才可以发送下一个数据包,如图所示。从上图中可以看到,发送端每发送一个数据包,都需要得到接收端的确认应答以后,才可以发送下一个数据包。这样一来,就会在等待确认应答包环节浪费时间。为了避免这种情况,TCP引入了窗口概念。窗口大小指的是不需要等待确认应答包而可以继续发送数据包的最大值。使用窗口的情况:例如,窗口大小为 3,数据包的传输如图所示。从上图中可以看到,发送端发送第一个数据转载 2021-04-13 16:13:34 · 1015 阅读 · 0 评论 -
网络面试题:select,poll,epoll原理
文章目录epoll原理1. 计算机是如何接收数据的2. 计算机如何知道要接受数据?3. 进程如何阻塞和唤醒3.1 工作队列3.2 等待队列3.3 唤醒进程3.4 内核接收网络数据全过程3.5 进程阻塞为什么不消耗CPU?4.提出问题5. 同时监视多个 Socket 的简单方法(select)6. Epoll 的设计思路6.1 措施一:功能分离6.2 措施二:就绪列表6.3 Epoll 的原理与工作流程6.4 epoll数据结构设计(等待队列和就绪队列)6.4.1 就绪队列6.4.2 等待队列7. 总结ep转载 2021-04-13 11:05:35 · 1626 阅读 · 1 评论 -
操作系统面试题:进程如何阻塞?进程阻塞为什么不占用CPU?
文章目录进程如何阻塞?进程阻塞为什么不消耗CPU?1. 计算机是如何接收数据的2. 计算机如何知道要接受数据?3. 进程阻塞为什么不占用 CPU 资源?3.1 工作队列3.2 等待队列3.3 唤醒进程3.4 内核接收网络数据全过程3.5 进程阻塞为什么不消耗CPU?进程如何阻塞?进程阻塞为什么不消耗CPU?要想明白进程如何阻塞,阻塞为什么不消耗CPU,就要先明白计算机是如何接受数据的计算机如何知道什么时候要接收数据1. 计算机是如何接收数据的从网卡接收数据说起:下边是一个典型的计算机结构图转载 2021-04-13 10:39:39 · 8127 阅读 · 4 评论 -
操作系统面试题:虚拟内存是什么,解决了什么问题,如何映射?
虚拟内存是什么?虚拟内存别称虚拟存储器(Virtual Memory)。电脑中所运行的程序均需经由内存执行,若执行的程序占用内存很大或很多,则会导致内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。若计算机运行程序或操作所需的随机存储器(RAM)不足时,则 Windows 会用虚拟存储器进行补偿。它将计算机的RAM和硬盘上的临时空间组合。当RAM运行速率缓慢时,它便将数据从RAM移动到称转载 2021-04-12 20:52:12 · 4591 阅读 · 0 评论 -
网络面试题:TCP拥塞控制算法
文章目录TCP拥塞控制算法一.为什么要有拥塞控制一. 慢开始二.拥塞避免三.快速重传四. 快速恢复TCP拥塞控制算法TCP拥塞控制算法一共有四种:慢开始拥塞避免快速重传快速恢复一.为什么要有拥塞控制在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做网络拥塞。在计算机网络中数位链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降。当输入的负载到达一定程度 吞转载 2021-04-12 19:02:10 · 1391 阅读 · 0 评论 -
网络面试题:http和https的区别
文章目录一. HTTP和HTTPS的基本概念二. HTTP和HTTPS的区别:三. HTTPS的工作原理超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTT转载 2021-04-12 18:00:19 · 528 阅读 · 0 评论 -
操作系统面试题:进程切换与线程切换的区别
一、虚拟内存知识复习虚拟内存是操作系统为每个进程提供的一种抽象,每个进程都有属于自己的、私有的、地址连续的虚拟内存,当然我们知道最终进程的数据及代码必然要放到物理内存上,那么必须有某种机制能记住虚拟地址空间中的某个数据被放到了哪个物理内存地址上,这就是所谓的地址空间映射,也就是虚拟内存地址与物理内存地址的映射关系,那么操作系统是如何记住这种映射关系的呢,答案就是页表,页表中记录了虚拟内存地址到物理内存地址的映射关系。有了页表就可以将虚拟地址转换为物理内存地址了,这种机制就是虚拟内存。每个进程都有自己的虚转载 2021-04-12 17:42:29 · 646 阅读 · 0 评论 -
网络面试题:服务器出现大量的time_wait或close wait问题及解决方案
服务器出现大量的time_wait或close wait要明白这些先要了解TCP连接的三次握手和四次挥手:https://blog.csdn.net/weixin_44844089/article/details/115469779一.大量的time_wait出现1.1 出现的原因高并发短连接的服务器上会出现这样的情况,导致创建大量的tcp连接然后close,出现大量的连接出现time_wait的状态。1.2.大量time_wait的危害在socket的TIME_WAIT状态结束之前,该转载 2021-04-12 16:08:05 · 5265 阅读 · 2 评论 -
网络面试题:TCP与UDP区别及三次握手,四次挥手
一.TCP与UDP1.1 区别TCP是面向连接的,UDP是面向无连接的TCP保证数据的正确性,UDP可能丢包TCP传输速度慢,UDP传输速度快每一条TCP的建立是点到点的,而UDP可以点到多,多到多,多对一的交互TCP对系统要求的资源多,UDP则少一点1.2 面向连接与无连接:这篇博客详解讲解了面向连接与无连接的区别:戳这里这里简单讲述一下:无连接协议中的分组被称为数据报(datagram),每个分组都是独立寻址,并由应用程序发送的。从协议的角度来看,每个数据报都是一个独立的实体转载 2021-04-06 20:19:42 · 651 阅读 · 0 评论 -
操作系统面试题:进程相关面试题
常见面试题1.进程与线程的区别答:进程是资源分配的基本单位,线程是任务调度的基本单位。包含关系:一个进程可包含多个线程。资源开销:1)每个进程都有自己独立的代码和数据空间,所以进程之间的切换开销较大。2)线程可以看做轻量级的线程,多个线程共享同一进程中的系统资源,但是都有自己独立运行的栈和计数器,所以线程之间的切换开销较小。内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的影响关系:在保护模式下进程崩溃不会影响其他进程的运行,而一个进程中的线程崩溃原创 2020-05-18 09:30:15 · 901 阅读 · 0 评论 -
网络面试题:TCP与UDP的区别?三次握手,四次挥手机制?——详解
一.TCP与UDP1.1 区别TCP是面向连接的,UDP是面向无连接的TCP保证数据的正确性,UDP可能丢包TCP传输速度慢,UDP传输速度快每一条TCP的建立是点到点的,而UDP可以点到多,多到多,多对一的交互TCP对系统要求的资源多,UDP则少一点1.2 面向连接与无连接:这篇博客详解讲解了面向连接与无连接的区别:戳这里这里简单讲述一下:无连接协议中的分组被称为数据...原创 2020-05-05 11:35:17 · 776 阅读 · 0 评论