首页 > 编程知识 正文

通信进程(进程是存放在内存中的程序)

时间:2023-05-05 09:19:49 阅读:82075 作者:3439

这是我毕业时招聘阿里系公司的时候,最后一面的面试官问了我印象最深的问题,请不要问。 请不要听。 如果早就忘了的话

首先了解进程是什么

狭义的定义是,过程是程序进行的过程。

广义定义:过程是指关于某个数据集合具有一定独立功能的程序的执行活动。 它是操作系统动态执行的基本单元,在传统的操作系统中,过程既是基本的分配单元,也是基本的执行单元。 简单地说,是你的系统运行时的最小单位吧。

进程间通信(IPC)

进程间通信是指进程间的信息交换,交换的信息量少时为状态或数值,多时为数千万字节。

方式分为两种,共享内存、消息机制。

重点! 测试!

一共分为八种

1、共享内存:共享内存是指映射其他进程可以访问的内存。 此内存由一个进程创建,但多个进程可以访问。 共享内存是最快的IPC方式,是由于其他进程间通信方式的效率差而创建的。 多与其他通信机构联合使用。 实现进程间的同步通信。

因为直接在内存上操作,所以共享内存的速度也会提高,所以是最快的。

多进程共享存储器

2、管道:管道是半双工的通信方式,数据只能单向流动,而且只能在有亲缘关系的进程之间使用。 通常指亲子进程关系。

单向[图像源网络]

管道就像单向行驶的车,“单向行驶谁都不能掉头”。 只有车满了,车才能发动,车到达目的地后所有人都下车

3、知名管道:知名管道也是半双工通信方式,但允许无血缘关系的进程之间通信。

)可以用于无亲缘关系的进程之间的通信; )2)不能重复读取相同的数据。 读一遍就要从管子里拿走。 )3)可以进行多写入、多读取4、高级流水线:如果将另一个程序作为新的进程在当前的程序进程中启动,它将成为当前程序的子进程。 这种方式称为高级流水线方式。

5、信号:信号是一个技术器,可以控制多个过程对共享资源的访问。 这经常用作锁定机制,以防止在某个进程访问共享资源时,其他进程也访问该资源。 因此,它主要是用于同意进程之间以及进程内不同线程的同步手段。

信号量分为两种

内核信号、内核控制路径是用户状态进程中使用的信号,该信号分为POSIX信号和SYSTEM V信号。 POSIX信号还分为有名信号和无名信号,其值存储在文件中,因此可以用于线程和进程之间的同步。

无名信号量,其值保存在存储器中。

内核信号量类似于自旋锁定。 锁定关闭时,内核控制路径无法继续。 然而,如果内核控制路径试图获取受内核信号锁定保护的繁忙资源,则相应的进程将挂起。 只有在释放了资源时,进程才能再次运行。

6、消息队列:消息队列是消息的链表存储在内核中,通过消息队列标识符进行标识。 消息队列克服了通信量小、只能包含未格式化的管道的字节流以及缓冲区太小的问题。

本公司目前主要的通信方式为MQ,使用的是IBM。 我认为有几个好处可以承受高并发性,服务暂时不能处理高并发性,消息队列的消息积压可以持久化。 向消息队列写入消息,异步执行不需要的业务逻辑,加快响应速度【类似微信动画师的场景】解耦,向消息队列写入消息。 因为需要消息的系统是自己从消息队列预订的,所以不需要在前置时进行任何修改。 7、信号:信号是一种比较复杂的通信方式,用于通知受理过程发生在某一时间。

8、套接字:套接字是一种进程间通信机制,与其他通信机制不同,不能用于不同主机之间的进程通信。

常用于后端系统和后端系统之间的通信。 请参照下图

套接字通信[图像源网络]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。