【进程与进程间通信】

进程是计算机中程序的运行活动,是资源分配的基本单位,由程序段、数据段和进程控制块组成。进程不等同于程序,它们是动态和静态的概念。文章介绍了三种进程间通信方式:共享内存、消息传递和管道通信,分别阐述了它们的工作原理和应用场景。
摘要由CSDN通过智能技术生成

一、什么是进程?

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,是操作系统结构的基础。进程实体由程序段、数据段以及进程控制块 (PCB) 组成。其中,PCB是进程存在的唯一标志! PCB中包含一些描述进程的信息:进程标识符(PID)和用户标识符(UID)。

二、进程 = 程序吗?

进程不等于程序。进程是进程实体的运行过程,是一个动态的概念。而程序是一组有序的指令集和,是一个静态的概念。同一个程序执行多次对应不同的进程!

三、实现进程间通信的方式有哪些?

实现进程间通信的方式主要有六种:共享内存机制、消息传递机制、管道通信机制、信号、信号量和pv以及socket。(暂时只讲解前三种,后续更新。。。)

1.共享内存机制

在这里插入图片描述

共享内存机制是允许两个或多个进程(不相关或有亲缘关系)访问同一逻辑内存的机制。它是共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。

2.消息传递机制

在这里插入图片描述

消息传递机制(Linux 中称消息队列),消息队列的本质就是存放在内存中的消息的链表,而消息本质上是用户自定义的数据结构。如果进程从消息队列中读取了某个消息,这个消息就会被从消息队列中删除。比如,A 进程要给 B 进程发送消息,A 进程把数据放在对应的消息队列后就可以正常返回了,B 进程在需要的时候自行去消息队列中读取数据就可以了。同样的,B 进程要给 A 进程发送消息也是如此。

3.管道通信机制

在这里插入图片描述

管道通信(Communication Pipeline)即发送进程以字符流形式将大量数据送入管道,接收进程可从管道接收数据,二者利用管道进行通信。 无论是SQL Server用户,还是PB用户,作为C/S结构开发环境,他们在网络通信的实现上,都有一种共同的方法——命名管道。由于当前操作系统的不惟一性,各个系统都有其独自的通信协议,导致了不同系统间通信的困难。尽管TCP/IP协议已发展成为Internet的标准,但仍不能保证C/S应用程序的顺利进行。命名管道作为一种通信方法,有其独特的优越性,这主要表现在它不完全依赖于某一种协议,而是适用于任何协议——只要能够实现通信。
单个管道只能实现半双工通信,两个管道即可实现全双工通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葛狂的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值