上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 56 下一页
摘要: 共享内存函数封装: 信号量函数封装: 多进程操作共享内存: 阅读全文
posted @ 2018-08-08 22:34 周伯通789 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 顺序程序与并发程序的特征: 顺序进程特征: 顺序性 封闭性(运行环境的封闭性) 确定性 可再现性 并发程序特征: 共享性 并发性 随机性 进程互斥: 由于各个进程要求共享资源,而且有些资源需要互斥使用,因此,各进程间竞争使用这些资源,进程的这种关系为进程的互斥。 系统中的某些资源一次只允许一个进程使 阅读全文
posted @ 2018-08-07 21:32 周伯通789 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 共享内存是最快的IPC形式,一旦这样的内存映射到共享它的进程的地址空间,这些进程间的数据传递不再涉及到内核,也就是说进程不再通过执行进入内核的系统调用来传递彼此的数据。写共享内存要加锁。常和信号量在一起使用。消息队列和管道读写数据都是要进入内核的。 示意图如下: 传递数据的示意图如下: 共享内存的数 阅读全文
posted @ 2018-08-06 22:56 周伯通789 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 管道基本概念: 管道是Unix中最古老的进程间通信形式 我们把从一个进程连接到另一个进程的一个数据流称为一个“管道” 管道的本质:固定大小的内核缓冲区 管道限制: 管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道 只能用于具有共同祖先的进程(具有亲缘关系的进程)之间进行通信 阅读全文
posted @ 2018-08-05 19:36 周伯通789 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 模型如下: 服务器: 客户端: 这个模型下所有进程统一通过队列通信,队列的大小有限制,而且这些进程既从这个队列读又往这个队列写,操作时无序的,很容易造成队列满或者队列空,所以当进程数很多时容易发生阻塞。 可以改进为如下的模型: 每来一个客户端,就fork一个进程,让这个进程和客户端通信。 监控模型: 阅读全文
posted @ 2018-08-05 19:15 周伯通789 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 进程间通信的分类: 文件 文件锁 管道和匿名管道pipe 信号 消息队列 共享内存 信号量 互斥量 条件变量 读写锁 套接字 两个进程同时向管道中写数据,内核要保证它们是原子的,内核按照页做限制。 进程间共享信息的三种方式:一个通过文件系统,一个通过内核,一个在应用空间 IPC对象的持续性: 随进程 阅读全文
posted @ 2018-08-05 11:52 周伯通789 阅读(207) 评论(0) 推荐(0) 编辑
摘要: ISO的开放互联模型(OSI) TCP IP四层模型 TCP IP各层报文 以太网的MTU和路径MTU IP数据报 ICMP协议 TCP 报文段 综合案例: 其他补充,主要协议及其关系 阅读全文
posted @ 2018-08-05 10:40 周伯通789 阅读(259) 评论(0) 推荐(0) 编辑
摘要: TCP 协议是面向连接的基于流的,可靠的传输服务。UDP是无连接的,基于数据报的,不可靠的传输服务,UDP没有粘包,但是会产生丢包。 UDP模型如下: 可以看到,服务器端不用listen,也不用accept。而客户端,也不用connect。 总结UDP的特点如下: 1、无连接 2、基于消息的数据传输 阅读全文
posted @ 2018-08-05 08:05 周伯通789 阅读(317) 评论(0) 推荐(0) 编辑
摘要: select优化服务器: select优化客户端: 阅读全文
posted @ 2018-08-04 20:40 周伯通789 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 5种IO模型分别如下: 1、阻塞IO模型 当上层应用app1调用recv系统调用时,如果对等方没有发送数据(缓冲区没有数据),上层app1将阻塞(默认行为,被linux内核阻塞)。 当对等方发送了数据,linux内核recv端缓冲区有数据后,内核会把数据copy给用户空间。然后上层应用app1解除阻 阅读全文
posted @ 2018-08-02 22:38 周伯通789 阅读(403) 评论(0) 推荐(0) 编辑
上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 56 下一页