面试
qq_1213701132
这个作者很懒,什么都没留下…
展开
-
内存管理相关
内存管理相关1.概念2.进程的空间模型3.堆和栈的区别4.什么是堆,栈,内存泄漏和内存溢出?⭐⭐⭐⭐5.虚拟内存,虚拟地址与物理地址的转换内存管理方式内存碎片cache替换算法1.概念地址1.物理地址: 放在寻址总线上的地址。用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。2.逻辑地址:指由程序产生的与段相关的偏移地址部分。在C语言指针中,读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程DS数据段的地址。线性地址=段基址+逻辑地址3.线性地址:原创 2020-09-07 20:50:59 · 175 阅读 · 0 评论 -
面试整理
进程和线程什么是进程,线程,彼此有什么区别多进程、多线程同步(通讯)的方法用户线程和内核线程的区别多进程、多线程的优缺点进程的空间模型父进程、子进程的关系以及区别什么时候用进程,什么时候用线程进程线程的状态转换图 什么时候阻塞,什么时候就绪什么是进程上下文、中断上下文一个进程可以创建多少线程,和什么有关孤儿进程、僵尸进程、守护进程的概念基本概念正确处理僵尸进程的方法如何创建守护进程Linux内核相关用户空间与内核通信方式有哪些?系统调用的作用内核态,用户态的区别Boot原创 2020-09-07 15:07:49 · 179 阅读 · 0 评论 -
STL库相关
1.vector和list异同⭐⭐⭐⭐⭐转载底层结构:vector的底层结构是动态顺序表,在内存中是一段连续的空间。list的底层结构是带头节点的双向循环链表,在内存中不是一段连续的空间。随机访问:vector支持随机访问,可以利用下标精准定位到一个元素上,访问某个元素的时间复杂度是O(1)。list不支持随机访问,要想访问list中的某个元素只能是从前向后或从后向前依次遍历,时间复杂度是O(N)。插入和删除:vector任意位置插入和删除的效率低,因为它每插入一个元素(尾插除外),都需要原创 2020-08-20 17:01:33 · 188 阅读 · 0 评论 -
TCP UDP
1.TCP、UDP的区别 ⭐⭐⭐⭐⭐相同点:UDP协议和TCP协议都是传输层协议。TCP(Transmission Control Protocol,传输控制协议)提供的是面向连接,可靠的字节流服务。即客户和服务器交换数据前,必须现在双方之间建立一个TCP连接,之后才能传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。UDP(User Data Protocol,用户数据报协议)是一个简单的面向数据报的运输层协议。它不提供可靠性,只是把应用程序传给IP层原创 2020-08-20 11:37:15 · 279 阅读 · 0 评论 -
三次握手、四次挥手
转载TCP的报头1.源端口号:表示发送端端口号;2.目标端口号:表示接收端端口号;3.序列号seq:表示发送数据的位置,字段长为32位(4字节)。每发送一次数据,就累加一次该数据字节数的大小。注意:序列号不会从0或1开始,而是在建立连接时由计算机生成的一个随机数作为其初始值,通过SYN包发送给接收端主机。然后再将每转发过去的字节数累加到初始值上表示数据的位置。由于TCP是面向字节流的,在一个TCP连接中传送字节流中的每一个字节都按照顺序编号,此外序号是循环使用的。用来标记数据段的顺序,TCP原创 2020-08-20 11:36:55 · 362 阅读 · 0 评论 -
排序算法
参考1.各种排序算法的时间空间复杂度、稳定性⭐⭐⭐⭐⭐2.快速排序⭐⭐⭐⭐⭐3.各种排序算法什么时候有最好情况、最坏情况(尤其是快排) ⭐⭐⭐⭐4.冒泡排序⭐⭐⭐⭐5.选择排序⭐⭐⭐⭐6.插入排序⭐⭐⭐⭐7.希尔排序⭐⭐⭐⭐8.归并排序⭐⭐⭐⭐9.快排的partition函数与归并的Merge函数⭐⭐⭐...原创 2020-08-19 17:20:23 · 124 阅读 · 0 评论 -
单片机常见题
单片机常见面试题1.请说明总线接口USRT、I2C、USB的异同点(串/并、速度、全/半双工、总线拓扑等)⭐⭐⭐⭐⭐2.什么是异步串口和同步串口⭐⭐⭐⭐⭐3.I2C时序图⭐⭐⭐⭐⭐4.CPU内部结构⭐⭐⭐⭐5.波特率是什么,为什么双方波特率要相同,高低波特率有什么区别;⭐⭐⭐⭐6.IO口工作方式:上拉输入 下拉输入 推挽输出 开漏输出⭐⭐⭐⭐7.扇区 块 页 簇的概念⭐⭐⭐⭐8.CPU 内存 虚拟内存 磁盘/硬盘 的关系⭐⭐⭐9.ROM RAM的概念浅析⭐⭐⭐10.ARM结构处理器简析 ⭐⭐11.arm和d原创 2020-08-19 16:15:52 · 1127 阅读 · 0 评论 -
其它操作系统相关常见问题
其它操作系统相关常见问题1.大小端的区别以及各自的优点,哪种时候用⭐⭐⭐⭐⭐2.一个程序从开始运行到结束的完整过程(四个过程)⭐⭐⭐⭐⭐3.堆和栈的区别⭐⭐⭐⭐⭐4.死锁的原因、条件 创建一个死锁,以及如何预防⭐⭐⭐⭐⭐5.硬链接与软链接的区别;⭐⭐⭐⭐⭐5.2.9中断和异常的区别⭐⭐⭐⭐⭐5.2.3什么是堆,栈,内存泄漏和内存溢出?⭐⭐⭐⭐5.2.7虚拟内存,虚拟地址与物理地址的转换⭐⭐⭐⭐5.2.10中断怎么发生,中断处理大概流程⭐⭐⭐⭐5.2.8计算机中,32bit与64bit有什么区别⭐⭐⭐5.2.原创 2020-08-19 11:28:17 · 1200 阅读 · 0 评论 -
Linux内核相关
Linux内核相关1. 用户空间与内核通信方式有哪些?1.系统调用 get_user(x,ptr):在内核中被调用,获取用户空间指定地址的数值并保存到内核变量x中。 put_user(x,ptr):在内核中被调用,将内核空间的变量x的数值保存到到用户空间指定地址处。 Copy_from_user()/copy_to_user():主要应用于设备驱动读写函数中,通过系统调用触发。2.proc虚拟文件系统:和sysfs文件系统类似,也可以作为内核空间和用户空间交互的手段。3.使用mmap系统原创 2020-08-02 22:06:14 · 516 阅读 · 0 评论 -
孤儿进程、僵尸进程、守护进程的概念
孤儿进程、僵尸进程、守护进程的概念1 基本概念⭐⭐⭐⭐⭐一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程所收养,并由init进程对它们完成状态收集工作。一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。一个子进程的进程描述符在子进程退出时不会释放,只有当父进程通过 wait() 或 waitpid() 获取了子进程信原创 2020-08-02 16:25:48 · 1148 阅读 · 0 评论 -
并发,同步,异步,互斥,阻塞,非阻塞的理解
并发,同步,异步,互斥,阻塞,非阻塞的理解1 什么是线程同步和互斥⭐⭐⭐⭐⭐之所以会引出这个概念全都是因为 “线程之间是抢占式调度的”。临界资源:多个线程访问的那个公共资源叫做临界资源。临界区:访问临界资源的代码叫做临界区。互斥:任何时刻,互斥保证有且只有一个执行流进入临界区,访问临界资源,通常对临界资源起保护作用。原子性:不会被任何调度机制打断的操作,该操作只有两种状态,要么完成,要么未完成。线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。当有若干个线程都要使用某一共享资原创 2020-08-02 15:26:45 · 1193 阅读 · 0 评论 -
进程线程
进程线程的基本概念1 什么是进程,线程,彼此有什么区别⭐⭐⭐⭐⭐进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分配的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。2多进程、多线程的优缺点⭐⭐⭐⭐线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SM原创 2020-08-01 21:53:03 · 251 阅读 · 0 评论