半同步半异步模式:
上层的任务(如:数据库查询 , 文件传输)使用同步I/O模型 , 简化了编写并行程序的难度 。
而底层的任务(如网络控制器的中断处理)使用异步I/O模型 , 提供了执行效率 。
8.有一个计数器 , 多个线程都需要更新 , 会遇到什么问题 , 原因是什么 , 应该如何做?如何优化?
有可能一个线程更新的数据已经被另外一个线程更新了 , 更新的数据就会出现异常 , 可以加锁 , 保证数据更新只会被一个线程完成 。
9.如果select返回可读 , 结果只读到0字节 , 什么情况?
某个套接字集合中没有准备好 , 可能会select内存用FD_CLR清为0.
10. connect可能会长时间阻塞 , 怎么解决?
1.使用定时器;(最常用也最有效的一种方法)
2.采用非阻塞模式:设置非阻塞 , 返回之后用select检测状态 。
11.keepalive 是什么东西?如何使用?
keepalive , 是在TCP中一个可以检测死连接的机制 。
1).如果主机可达 , 对方就会响应ACK应答 , 就认为是存活的 。
2).如果可达 , 但应用程序退出 , 对方就发RST应答 , 发送TCP撤消连接 。
3).如果可达 , 但应用程序崩溃 , 对方就发FIN消息 。
4).如果对方主机不响应ack, rst , 继续发送直到超时 , 就撤消连接 。默认二个小时 。
12.socket什么情况下可读?
1.socket接收缓冲区中已经接收的数据的字节数大于等于socket接收缓冲区低潮限度的当前值;对这样的socket的读操作不会阻塞,并返回一个大于0的值(准备好读入的数据的字节数).
2.连接的读一半关闭(即:接收到对方发过来的FIN的TCP连接),并且返回0;
3.socket收到了对方的connect请求已经完成的连接数为非0.这样的soocket处于可读状态;
4.异常的情况下socket的读操作将不会阻塞,并且返回一个错误(-1) 。
13.udp调用connect有什么作用?
1).因为UDP可以是一对一 , 多对一 , 一对多 , 或者多对多的通信 , 所以每次调用sendto()/recvfrom()时都必须指定目标IP和端口号 。通过调用connect()建立一个端到端的连接 , 就可以和TCP一样使用send()/recv()传递数据 , 而不需要每次都指定目标IP和端口号 。但是它和TCP不同的是它没有三次握手的过程 。
2).可以通过在已建立连接的UDP套接字上 , 调用connect()实现指定新的IP地址和端口号以及断开连接 。
14. socket编程 , 如果client断电了 , 服务器如何快速知道?
使用定时器(适合有数据流动的情况);
使用socket选项SO_KEEPALIVE(适合没有数据流动的情况);
1)、自己编写心跳包程序,简单的说就是自己的程序加入一条线程,定时向对端发送数据包,查看是否有ACK,根据ACK的返回情况来管理连接 。此方法比较通用,一般使用业务层心跳处理,灵活可控,但改变了现有的协议;
2)、使用TCP的keepalive机制,UNIX网络编程不推荐使用SO_KEEPALIVE来做心)跳检测 。
keepalive原理:TCP内嵌有心跳包,以服务端为例,当server检测到超过一定时间(
/proc/sys/net/ipv4/tcp_keepalive_time 7200 即2小时)没有数据传输,那么会向client端发送一个keepalive packet 。
三、liunx操作系统
1.熟练netstat tcpdump ipcs ipcrm
netstat:检查网络状态 , tcpdump:截获数据包 , ipcs:检查共享内存 , ipcrm:解除共享内存
2.共享内存段被映射进进程空间之后 , 存在于进程空间的什么位置?共享内存段最大限制是多少?
将一块内存映射到两个或者多个进程地址空间 。通过指针访问该共享内存区 。一般通过mmap将文件映射到进程地址共享区 。
存在于进程数据段 , 最大限制是0x2000000Byte
3.进程内存空间分布情况
4.ELF是什么?其大小与程序中全局变量的是否初始化有什么关系(注意未初始化的数据放在bss段)
可执行连接格式 。可以减少重新编程重新编译的代码 。
5.动态链接和静态链接的区别?
动态链接是只建立一个引用的接口 , 而真正的代码和数据存放在另外的可执行模块中 , 在可执行文件运行时再装入;而静态链接是把所有的代码和数据都复制到本模块中 , 运行时就不再需要库了
推荐阅读
- 如何选购普洱熟茶,如何鉴别普洱熟茶的好坏
- 男人该如何健身比较好?
- 如何正确慢跑呢?
- 如何轻松跑步呢?
- 胸肌中缝应该如何锻炼?
- 腰部赘肉应该如何减掉呢?
- 腰后的赘肉应该如何减掉呢?
- 基础力量应该如何训练?
- 如何收藏普洱茶,普洱茶收藏和存放需注意哪些
- 如何报考高等教育自学考试课程
