- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 零拷贝、如何实现零拷贝、大文件如何传输
在去年秋招的时候,面试腾讯后台开发一面中,就曾问到过零拷贝、如何实现零拷贝、大文件如何传输。在我看来,面试官喜欢针对某一点一直深挖你的知识储备,因此,需要小伙伴们需要对某一内容要有针对性的深入了解和补充。
2022-03-22 10:00:00
2135
1
原创 Socket编程、C/S和B/S架构、IPv4和IPv6、IP相关协议、Ping的作用与原理
14、Socket编程14.1、针对TCP应该如何Socket编程?14.2、listen时候参数backlog意义?Linux内核中会维护两个队列:未完成连接队列(SYN 队列):接收到⼀个 SYN 建⽴连接请求,处于 SYN_RCVD 状态;已完成连接队列(Accpet 队列):已完成 TCP 三次握⼿过程,处于 ESTABLISHED 状态;现在通常认为backlog 是 accept 队列。但是上限值是内核参数 somaxconn 的⼤⼩,也就说 accpet 队列⻓度 =
2022-03-21 10:00:00
803
原创 操作系统的调度算法—进程调度算法、页面置换算法、动态分区算法、磁盘调度算法(常问面试题)
8、调度算法8.1、进程调度算法1、先来先服务FCFS 非抢占式调度算法,按照请求的顺序进行调度。有利于长作业,不利于短作业,短作业必须等长作业执行完毕才执行,长作业耗时又很长,这样会导致短作业等待时间过长。2、短作业优先SJF 非抢占式调度算法,按预估运行时间最短的顺序进行调度。长作业有可能会饿死,处于一直等待短作业执行完毕的状态,要是一直一直有短作业来,长作业永远得不到调度。3、最短剩余时间优先SRTN 最短作业优先的抢占式版本,按照剩余运行时间的顺序进行调度,一个新作业到大,
2022-03-20 10:00:00
1342
原创 TCP、UDP、TCP三次握手与四次挥手、TCP如何保证可靠传输、TCP异常分析、拆包和粘包等
关于计算机网络的面试官最爱问的问题:TCP、UDP、TCP三次握手与四次挥手、TCP如何保证可靠传输、TCP异常分析、拆包和粘包等(必问问题)
2022-03-20 10:00:00
1166
原创 HTTP1.0、HTTP2.0、HTTP3.0、HTTPS、SSL
HTTP/HTTPS是计算机相关面试必问题,包括HTTP请求过程,HTTP1.0-HTTP3.0的演变与各自优缺点,QUIC协议的特点等,HTTPS与HTTP的区别,SSL是如何完成的,怎么实现安全加密等,都是面试官超级无敌喜欢提问的问题,希望小伙伴们都能准备把握其中的特性。
2022-03-19 10:00:00
1095
1
原创 操作系统—死锁与常见的锁(面试官最喜欢问的知识点之一)
6、死锁 死锁是指两个(多个)线程相互等待对方数据的过程,死锁的产生会导致程序卡死,不解锁程序将永远无法进行下去。6.1、死锁产生的原因 举个例子:两个线程A和B,两个数据1和2。线程A在执行过程中,首先对资源1加锁,然后再去给资源加锁,但是由于线程的切换,导致线程A没能给资源2加锁。线程切换到B后,线程B先对资源2加锁,然后再去给资源1加锁,由于资源1已经被线程A加锁,因此线程B无法加锁成功,当线程切换为A时,A也无法成功对资源2加锁,由此就造成了线程AB双方相互对一个已加锁资源的等待,死锁
2022-03-18 10:00:00
731
原创 操作系统—多进程与多线程模型
4、多进程与多线程模型4.1、多进程模型 使⽤多进程模型,也就是为每个客户端分配⼀个进程来处理请求。服务器的主进程负责监听客户的连接,⼀旦与客户端连接完成,accept() 函数就会返回⼀个「已连接Socket」,这时就通过 fork() 函数创建⼀个⼦进程,实际上就把⽗进程所有相关的东⻄都复制⼀份,包括⽂件描述符、内存地址空间、程序计数器、执⾏的代码等。 这两个进程刚复制完的时候,⼏乎一模一样。不过,会根据返回值来区分是⽗进程还是⼦进程,如果返回值是 0,则是⼦进程;如果返回值是其他的整数,
2022-03-17 10:00:00
843
原创 中断和异常
5、中断和异常5.1、中断 大家都知道,当我们在敲击键盘的同时就会产生中断,当硬盘读写完数据之后也会产生中断,所以,我们需要知道,中断是由硬件设备产生的,而它们从物理上说就是电信号,之后,它们通过中断控制器发送给CPU,接着CPU判断收到的中断来自于哪个硬件设备(这定义在内核中),最后,由CPU发送给内核,有内核处理中断。下面这张图显示了中断处理的流程:5.2、异常 我们在学习《计算机组成原理》的时候会知道两个概念,CPU处理程序的时候一旦程序不在内存中,会产生缺页异常;当运行除法程序时,
2022-03-17 10:00:00
384
原创 操作系统之线程(面经总结)
3、线程3.1、线程的状态1、五种状态新建:新创建了一个线程对象。就绪:该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。运行:就绪状态的线程获取了CPU,执行程序代码。阻塞(等待):线程因为某种原因放弃CPU使用权,暂时停止运行销毁2、如何创建线程 pthread_create C++新增线程库。线程的创建是由AfxBeginThread()函数完成,函数中传参分别是线程回调函数、传递给线
2022-03-16 10:00:00
138
原创 数据结构相关知识总结(C++)
二、数据结构1、二叉树2、map底层实现3、unordered_map 和 map4、unordered_set和set5、二分查找与二叉树查找 6、哈希表
2022-03-15 10:00:00
689
原创 快速排序、归并排序、堆排序、计数排序(C++实现,好理解)
1、排序算法1.1、快速排序//快速排序void quickSort(vector<int>& nums, int low, int high) { if (low >= high) { return; } //1.以第一个作为基准 int pivot = nums[low]; /* //2.随机数作为基准--有额外时间开销 int random = ((rand() % (high - low + 1)) + low); int pivot = nums
2022-03-14 20:31:50
205
原创 操作系统之进程(面试总结)
2、进程2.1、进程、线程、协程的区别进程线程协程定义资源分配和拥有的基本单位资源调度的基本单位用户态的轻量级线程,线程内部调度的基本单位切换情况进程CPU环境(栈、寄存器、页表、句柄等)的保存以及新调度的进程CPU环境的设置保存和设置程序计数器、少量寄存器和栈的内容先将寄存器上下文和栈保存,后期恢复切换过程用户->内核->用户用户->内核->用户用户态(没有陷入内核)拥有资源CPU资源、内存资源、文件资源等程序计数
2022-03-14 20:18:34
564
原创 操作系统面经总结—虚拟内存、内存分页、内存交换与覆盖等
三、操作系统1、虚拟内存1.1、虚拟内存意义 虚拟内存:将不同进程的虚拟地址和不同内存的物理地址映射起来,让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。 为了更好的管理内存,操作系统将内存抽象成地址空间。每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页。(内存分段和内存分页) 这些页被映射到物理内存,但不需要映射到连续的物理内存,也不需要所有页都必须在物理内存中。当程序引用到不在物理内存中的页时,由硬件执行必要的映射,将缺失的部分装入物理内存并重
2022-03-14 20:16:50
1743
原创 C++中this指针和模板相关总结
7、this指针7.1、this指针概念、用处、使用7.2、this指针的创建、存储位置?7.3、this指针在类中的使用7.4、delete this相关问题8、模板相关问题8.1、为什么模板类一般都放在一个h文件中?8.2、模板函数和模板类的特例化8.3、函数模板8.4、类模板8.5、模板什么时候实例化?
2022-03-14 10:00:00
679
原创 面试官常考的C++关键字(static与const、volatile(重点)、struct与class)
6、关键字6.1、static和const6.2、define、typedef、inline、const6.3、struct和class6.4、final和override6.5、overload、override、hide6.6、volatile、mutable、explicit6.7、strlen和sizeof6.8、cout和printf6.9、extern6.10. enum、union、struct6.11、auto、decltype、decltype(auto)...
2022-03-13 10:00:00
1335
原创 STL原理分析
5、STL模板库5.1、STL六大部件5.2、vector5.3、list与slist5.4、deque、stack、queue、priority_queue5.5、heap5.6、map、set、multimap、multiset5.7、has和hashtable5.8、迭代器5.9、空间配置器
2022-03-12 09:00:00
1459
原创 C++11新特性(总结)
3、C++11新特性3.1、RAII 和 NRV3.2、智能指针3.3、原子操作底层原理3.4、Lambda表达式3.5、auto/decltype/decltype(auto)3.6、初始化列表3.7、左值与右值3.8、move函数
2022-03-11 14:39:43
3144
原创 秋招面经总结—C++内存管理
C++内存管理知识涉及:内存分区、堆栈区别、内存碎片、malloc/realloc/calloc/new/free的区别与实现原理、内存泄露、内存溢出、内存池等
2022-03-11 11:38:51
978
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人