作业-day-240523

思维导图

知识点问答

1、IO多路复用的原理

1、创建一个检测文件描述符的容器 fd_set fds;

2、将需要检测的文件描述符放入容器中 FD_SET(文件描述符,&fds);

3、通过一个阻塞函数阻塞等待容器中是否有事件产生,如果有一个或多个事件产生,则解除阻塞,并将未产生事件的描述符从容器中删除。

4、根据阻塞函数的返回值,解除使用对应文件描述符函数的阻塞。

2、实现IO多讨论复用的函数?select和poll函数的区别

实现IO多讨论复用的函数:select、poll、epoll

select和poll函数的区别:

1、select是检测不同文件描述符的集合。poll是将要检测的文件描述符放入一个结构体数组中。

2、select解除阻塞时,会将集合中未触发事件的描述符删除。poll解除阻塞时不会删除未触发的文件描述符。

3、超时参数不同。select是值传递,poll是地址传递。

4、select在检查文件描述符集合时有大小限制,poll没有。

3、UDP通信中能否使用connect函数?有什么好处?

可以使用。UDP服务器端一旦使用connect和某一客户端建立了连接,就不再接收其他客户端的信息。设置客户端结构体的sin.family=AF_UNSPES,再调用次connect函数即可取消连接。

使用好处:

1、可以实现数据的稳定传输,不至于在跟某端点通信时,被其他端点打断。

2、能够提高传输效率。

未连接读取操作流程:内核中填充对端地址信息-->读取消息-->清空内核-->内核中填充对端地址信息-->读取消息-->清空内核-->...

已连接读取操作流程:内核中填充对端地址信息-->读取消息-->读取消息-->读取消息-->...

4、ARP、HTTP、TFTP、IP、UDP、TCP分别是什么协议?用途?在TCP/IP协议族的哪一层?

ARP:地址解析协议。通过IP地址获取对分mac地址。链路层。

HTTP:超文本传输协议。万维网通信的基础。应用层

TFTP:简单文件传输协议。网络上进行文件传输的一套标准协议,使用UDP传输。应用层。

IP:网际互连协议。能够在不同网络间实现信息传递的协议。网络层

UDP:用户数据报协议。是一种无连接、不可靠、快速传输的协议。传输层。

TCP:传输控制协议。是一种面向连接、可靠的、基于字节流的传输协议。传输层。

5、默认子网掩码

A类网络IP地址范围:[1.0.0.0~~127.255.255.255] 子网掩码:255.0.0.0

B类网络IP地址范围:[128.0.0.0~~191.255.255.255] 子网掩码:255.255.0.0

C类网络IP地址范围:[192.0.0.0~~223.255.255.255] 子网掩码:255.255.255.0

D类网络IP地址范围:[224.0.0.0~~239.255.255.255] 无子网掩码

E类网络IP地址范围:[240.0.0.0~~255.255.255.255] 无子网掩码

6、顺序表和链表的区别

1.内存:顺序表只要定义出来不能增加长度,链表长度不受限

2.空间利用率:

a.从已经分配了的空间的使用角度:顺序表空间使用率比链表低

b.从内存角度:顺序表的空间利用率比链表高(顺序表是连续申请空间,链表是每个结点分配空间(会造成中间有很多碎片空间))

3.存储结构:顺序表--->顺序存储 链表--->链式存储

4.操作:

a.顺序表插入和删除需要移动大量元素(O(n)),链表不需要,时间复杂度是O(1)

b.顺序表查找和更改操作时间复杂度是O(1),链表查找和更改操作事件复杂度是O(n)

7、进程和线程的区别

1、内存管理有区别

进程:

父进程创建子进程之后,子进程完全拷贝父进程的内存空间。子进程和父进程之间,内存是独立的,互不干涉。

线程:

主线程创建子线程之后,子线程只会额外的开销8k的内存空间,这8k内存用来存放线程属性,内存的起始位置,终止位置,线程 id等等线程相关的数据。子线程的内存空间,和主线程之间是共享的。

2、进程是资源的获取单位,线程是资源的分配运行单位

3、多进程之间的切换,切换效率要低于多线程之间的切换

4、多进程之间的运行互不影响。父进程结束运行,不影响子进程的运行。同理子进程结束运行,也不影响父进程的运行

但是多线程之间,他们的运行不是完全独立。主线程结束运行,所有线程都得结束运行(因为主线程是主函数,主函数结束了,进程就结束了)。其他线程结束运行,互相之间不影响。

相关推荐
ChoSeitaku1 小时前
链表交集相关算法题|AB链表公共元素生成链表C|AB链表交集存放于A|连续子序列|相交链表求交点位置(C)
数据结构·考研·链表
偷心编程1 小时前
双向链表专题
数据结构
香菜大丸1 小时前
链表的归并排序
数据结构·算法·链表
jrrz08281 小时前
LeetCode 热题100(七)【链表】(1)
数据结构·c++·算法·leetcode·链表
小松学前端1 小时前
第六章 7.0 LinkList
java·开发语言·网络
城南vision1 小时前
计算机网络——TCP篇
网络·tcp/ip·计算机网络
@小博的博客1 小时前
C++初阶学习第十弹——深入讲解vector的迭代器失效
数据结构·c++·学习
Ciderw2 小时前
块存储、文件存储和对象存储详细介绍
网络·数据库·nvme·对象存储·存储·块存储·文件存储
石牌桥网管2 小时前
OpenSSL 生成根证书、中间证书和网站证书
网络协议·https·openssl
南宫生2 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法