Archive for March 18th, 2009

关于IPC (进程间通信)

Wednesday, March 18th, 2009

在操作系统中,进程间通信一般有以下几种: 共享内存,信号量,管道,消息队列等 。
1. 共享内存 。 共享内存一般适合于进程间共享大量的数据。 如oracle中的SGA就是用了共享内存来实现数据交换的 ,由于多个进程共同存取共一份数据,所以引进了 lock ,latch 锁机制来保证数据的完整性。
共享内存实现一般有如下步骤:
1) 进程A向操作系统申请了一块内存区域用作共享内存,并给这块内存赋予一个键值(key),例如我现在申请一块键值为123456 的共享内存,代码如下
shmid=shmget((key_t)123456,sizeof(struct shm_buffer),0666|IPC_CREAT);
2) [...]

阿里巴巴DBA出品