36、进程间通信:遇到大项目需要项目组之间的合作才行

前面咱们接项目的时候,主要强调项目之间的隔离性。这是因为,我们刚开始接的都是小项目。随着我们接的项目越来越多,就难免遇到大项目,这就需要多个项目组进行合作才能完成。 两个项目组应该通过什么样的方式进行沟通与合作呢?作为老板,你应该如何设计整个流程呢?...

趣谈Linux操作系统

37、信号(上):项目组A完成了,如何及时通知项目组B?

上一节最后,我们讲了信号的机制。在某些紧急情况下,我们需要给进程发送一个信号,紧急处理一些事情。 这种方式有点儿像咱们运维一个线上系统,为了应对一些突发事件,往往需要制定应急预案。就像下面的列表中一样。一旦发生了突发事件,马上能够找到负责人,根据处理...

趣谈Linux操作系统

38、信号(下):项目组A完成了,如何及时通知项目组B?

信号处理最常见的流程主要是两步,第一步是注册信号处理函数,第二步是发送信号和处理信号。上一节,我们讲了注册信号处理函数,那一般什么情况下会产生信号呢?我们这一节就来看一看。 信号的发送有时候,我们在终端输入某些组合键的时候,会给进程发送信号,例如,C...

趣谈Linux操作系统

39、管道:项目组A完成了,如何交接给项目组B?

在这一章的第一节里,我们大致讲了管道的使用方式以及相应的命令行。这一节,我们就具体来看一下管道是如何实现的。 我们先来看,我们常用的匿名管道(Anonymous Pipes),也即将多个命令串起来的竖线,背后的原理到底是什么。 上次我们说,它是基于管...

趣谈Linux操作系统

40、IPC(上):不同项目组之间抢资源,如何协调?

我们前面讲了,如果项目组之间需要紧密合作,那就需要共享内存,这样就像把两个项目组放在一个会议室一起沟通,会非常高效。这一节,我们就来详细讲讲这个进程之间共享内存的机制。 有了这个机制,两个进程可以像访问自己内存中的变量一样,访问共享内存的变量。但是同...

趣谈Linux操作系统

41、IPC(中):不同项目组之间抢资源,如何协调?

了解了如何使用共享内存和信号量集合之后,今天我们来解析一下,内核里面都做了什么。 不知道你有没有注意到,咱们讲消息队列、共享内存、信号量的机制的时候,我们其实能够从中看到一些统一的规律:它们在使用之前都要生成key,然后通过key得到唯一的id,并且...

趣谈Linux操作系统
15678912