进程通信

进程通信

1. 进程与线程的区别
	a. 线程是进程的一个实体,是CPU调度和分派的基本单位
	b. 进程在执行过程中拥有独立的内存单元,而多个线程共享内存
	c. 线程不能够独立执行,必须依赖进程
	
2. 进程间的通信方式
	a. 进程之间需要交换数据
	b. 进程各自有不同的用户地址空间
		i. 同一台机器
		ii. 不同机器
	c. 通过操作系统内核
	d. 方式:信号,信号量,消息队列(小的)、文件 、管道(pipe)、 有名管道(FIFO) 、 共享内存 、套接字
	
3. 远程过程调用RPC
	
4. 进程间通信方式 IPC
	a. 控制 control flow  : 信号,信号量,消息队列(小的)
		i. 信号:
			1) 信号可以在任何时候由内核发给某一进程
		ii. 消息队列: 
			1) 两个不相关进程间。独立于发送进程、接受进程而存在。
		iii. 信号量:
			1) 进程间对共享数据的互斥访问
				
	b. 数据 data flow  :文件 、管道(pipe)、 有名管道(FIFO) 、 共享内存 、套接字
		i. 管道:半双工(数据只能向一个方向流动)、只能用于父子进程或兄弟进程之间(必须在同一台机器上,两台机器上不存在)、实质是一个内核缓冲区,独立于文件系统
		ii. 匿名管道:半双工、不相关的进程也可以,有名管道的名字存在于文件系统中,内容存放在内存中
		iii. 共享内存:
			1) 内核留出了一块内存区,可以由需要访问的进程将其映射到自己的私有地址空间
			2) 需要同步机制来达到进程间的同步及互斥
		iv. 套接字:
			1) TCP/IP 的网络通信
			2) 进程间使用套接字中的相关函数来通信 
			3) 本地单机或跨网络
			
		
		注:需要端口的原因:区别服务种类,一台主机上可能存有很多数据
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值