首页 > 系统相关 >进程通信

进程通信

时间:2024-08-31 18:48:14浏览次数:5  
标签:文件 300 通信 -- 管道 进程

通信 特点
单工通信 发送方和接收方固定,不会改变
半双工 双向通信,但不能同时进行
全双工 双向通信,并且可以同时进行

进程通信

目的:
1.数据传输:一个进程需要将它的数据发送给另一个进程
2.资源共享:多个进程之间共享同样的资源
3.通知事件:一个进程需要向另一个或一组进程发送消息,通知它们发生了某件事情(例如子进程退出时要通知父进程)
4.进程控制:有些进程希望完全控制另一个进程的执行,此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时指导它的状态改变

关于进程---[[进程管理]]--[[5.进线程间通信]]

通信的方法

1.管道 |

管道是用来给进程和进程之间通信的,
ps -ef | grep ssh
p1:stdout -- stdin:p2
⭕️管道分为 匿名管道命名管道 ,这些管道就是基于系统文件的文件,管道文件是一个内存文件,它有自己的内存缓冲区,它并不需要从磁盘中读取数据
管道特征:
1.管道的生命周期跟随创建此管道的进程
2.管道可以让具有亲缘关系的进程相互通信,常用于 父子通信
3.管道是面向字节流的
4.半双工--管道只用来做单向通信
5.互斥与同步机制--对共享资源进行保护的方案
2.
3.

2.通信示例

2.1 匿名管道

  • 管道就是进程打开的一个文件,就是说,当某个进程打开一个管道文件时,就跟管道建立了读写关系
    ![[Pasted image 20240825135232.png|300]]
  • 如果在进程基础上创建一个子进程,这个子进程就会拷贝父进程的东西(除了管道文件)
    ![[Pasted image 20240825135540.png|300]]
  • 但是这个时候的管道文件时双向通信的,不符合管道通信的特点,需要自己关闭一些文件,就可得到父进程的单向通信
    ![[Pasted image 20240825135748.png|300]]

标签:文件,300,通信,--,管道,进程
From: https://www.cnblogs.com/bubble-o0oO/p/18386406

相关文章

  • 进程管理
    详细点这个---[[5.进线程间通信]]1.进程基本概念进程控制块PCB:操作系统使用进程控制块(PCB)来记录进程的所有信息。PCB包含进程ID(PID)、进程状态、寄存器内容、内存地址空间、打开的文件描述符、调度信息等PID:进程唯一的标识符,是操作系统把PID放在进程的PCB中进程:运行中的......
  • 进程管理
    一、解析进程和线程的区别?解析进程的结构。进程与线程的区别:定义:进程:进程是操作系统进行资源分配和调度的基本单位。它是正在执行的程序的实例,拥有独立的地址空间和系统资源。线程:线程是进程中的一个实体,是CPU调度和执行的基本单位。线程自身不拥有系统资源,只拥有一点在运行......
  • 进程间的通信(无名管道)
    进程间通信IPCInterProcessCommunication1.进程间通信方式1.早期的进程间通信:无名管道(pipe)、有名管道(fifo)、信号(signal)2.systemVPIC:共享内存(sharememory)、信号灯集(semaphore)、消息队列(messagequeue)3.BSD:套接字(socket)2.无名管道2.1特点只......
  • 进程(接口、守护进程)
    进程process1.什么是进程进程和程序的区别1.1概念程序:编译好的可执行文件存放在磁盘上的指令和数据的有序集合(文件)程序是静态的,没有任何执行的概念。进程:一个独立的可调度的任务执行一个程序分配资源的总称进程是程序执行的一次过程进程是动态的,包括创建、调......
  • 进程和计划任务管理
    查看进程信息psps命令查看静态的进程统计信息ps-elf查看进程信息toptop命令查看动态的进程排名信息top查看进程信息pgreppgrep命令根据特定条件查询进程PID信息pgrep-l“log”pgrep-l-Uteacher-ttty1查看进程信息pstreepstree命令以树形结构列出进程......
  • 【Linux】如何用一条命令终止某个后台进程?
    在面试的时候被问道了这个问题,之前还从来没有了解过1.怎么终止某个进程?如果你学过Linux下的信号处理,这个问题应该不难答。在Linux下,使用kill命令发送信号给进程,其中9号信号SIGKILL就可以将进程终止。还有很多其他信号也能终止进程,比如前台进程使用CTRL+C会发送2号信号,也能终止进程......
  • linux查看正在运行的进程
    动一下小手点一下赞。谢谢!你的赞就是我更新的动力。在Linux操作系统中,进程是计算机系统中运行的程序的实例。要查看正在运行的进程,可以使用一些命令来显示当前系统中正在运行的任务和进程。其中,是一种流行的Linux发行版,用户可以使用各种命令来管理和监视系统中的进程。在Linux中,常......
  • io进程,标准io(函数接口)
    3.函数接口3.1打开文件fopenFILE*fopen(constchar*path,constchar*mode);功能:打开文件参数:path:打开的文件路径mode:打开的方式r:只读,当文件不存在时报错,文件流定位到文件开头r+:可读可写,当文件不存在时报错,文件流定位到文件开头w:只写,文件不存在创建,存在则清空w......
  • IO进程练习:请在linux 利用c语言编程实现两个线程按照顺序依次输出”ABABABAB......“
    例如:a线程输出”A”之后b线程输出”B”,然后a线程输出“A”,再b线程输出”B”,之后往复循环。【1】使用信号量实现代码展示:#include<stdio.h>#include<pthread.h>#include<string.h>#include<semaphore.h>#include<unistd.h>//定义两个全局信号量,实现同步机制se......
  • 并行程序设计基础——组通信(3)
    目录一、组归约二、归约并散发三、扫描四、π值计算五、不同类型归约操作的对比六、不正确的组通信方式七、MINLOC和MAXLOC八、用户自定义归约操作九、小结    前两节我们介绍了组通信中常用的一对多、多对一以及多对多接口调用,本节继续对其余组通信操作进......