信号量

Edsger Dijkstra为解决同步不同执行线程问题提出一种基于信号量的方法。信号量s具有非负整数值的全局变量,只能由联众特殊的操作来处理,这两种操作称为 P(Proberrn测试) 和 V(Verhogen增加) : P(s):如果s是非零的。那么P将s减1,并且立即返回。如果s为0,那么就挂…

TCP/IP四层中常见协议Ⅳ—链路层

链路层 负责相邻设备之间的数据帧传输;以太网协议 Ethernet Ethernet协议实现:源mac地址/目的mac地址/上层协议类型/数据/帧尾(包含校验和) 如何获取相邻设备的mac地址——arp协议 arp协议:通过设备的IP地址获取其mac地址 介于网络层和链路层之间的协议——通过IP地址…

TCP/IP四层中常见协议Ⅲ—网络层

网络层 负责地址管理与路由选择 功能:为一条数据再复杂网络中选择一条合适的路径 IP协议的实现 4位版本号:IPV4/IPV6 4位首部长度 8位服务类型:4位TOS字段 16位数据报长度:UDP数据报中的最大数据长度64k-20-8 16位分片标识:标识当前分片属于哪个udp数据报 3位的标志:一…

TCP/IP四层中常见协议Ⅱ—传输层

传输层:UDP/TCP UDP——用户数据报协议:无连接,不可靠,面向数据报 协议字段 16位源端口 & 16位目的端口:描述数据从哪个进程来,到哪个进程去 16位校验和:二进制反码求和算法——校验接收到的数据与发送的数据是否完全一致 16位数据报长度:包含头部在内的udp数据报的长度,决定…

TCP/IP四层中常见协议Ⅰ—应用层

应用层 负责应用程序之间的数据沟通 自定制协议 程序员自己定义的协议/私有协议,例如网络版计算器: 客户端:将两个数字和一个运算符传输给服务器 服务端:对接收到的信息进行解析,得到数字和运算符,运算出结果后将结果返回给客户端 协议的定制: 原理: 序列化urlencode:将数据对象按照指定的协议在…

Linux_gdb使用

程序的发布方式有两种,debug模式和release模式 Linux gcc/g++出来的二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项[重要] (如果在编译时没有加入-g参数,gdb命令也可以运行,但是只能通过run指令跑完程序,查看代…