- 在Linux系统中,以 文件 方式访问设备,每个用 i节点 来标识。
- 启动Linux Shell的时候,stdin stdout stderr 三个文件描述符会自动打开,
它们的值分别是 0 1 2
- 创建新进程的系统调用是 fork 创建新线程的函数是 pthread_create
- TCP协议里面的五层分别是 物理层 数据链路层 网络层 传输层 应用层
假设两台机器AB,以A给B发信息,作为例子解释
1> 物理层
目标:实现AB之间可以发送01信号
意义:就是物理上实现连接,AB之间用网线连接;或者无线链接
2> 数据链路层
目标:把信息编码成01,并找到B后发给它
编码:将信息封装成一个数据包,包括头和数据两部分;头里面包含了A和B的物理地址,世上任何两台机器有唯一的物理地址
发送:A以广播的形式,发给所有A可以发送到的机器,如果自己是B则拿过来,如果不是则丢弃
3> 网络层
目标:改善数据包发送的范围,减少网络负担
问题:由于A会发送给所有机器,则如果连接的机器越多负担越重
方案:将世界的机器分区域,一个区域内的网络通过广播发送,区域之间则通过新协议(IP)交流
协议:物理地址是网卡本身的地址,IP4,IP6则是人为分配的地址,可以通过子网掩码来判断AB是否属于同一个区域
4> 传输层
目标:区分AB上不同应用程序对网络的使用
方案:通过端口(0-65535),0-1023已经被系统使用了;端口好像进入一个大厦后,要进入房间的门牌号,端口的选择则通过新协议(TCP/UDP)实现
协议:TCP、UDP分别是两种可靠性级别不同的协议
5> 应用层
目标:实现对AB不同应用程序的数据编码
原因:不同应用程序根据自己的需求,对数据进行A上编码和B上解码
- 进程具有的基本状态为 运行 就绪 阻塞
- 网络IO模型有哪五种 同步IO 异步IO 阻塞IO 非阻塞IO 同步复用IO
- 线程信号量的类型为