Linux进程+进程间通信IPC

 

一 Linux进程

1) 进程的内存映像

2)解释

BSS段:在采用段式内存管理的架构中,BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。

 

数据段:在采用段式内存管理的架构中,数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。

 

代码段:在采用段式内存管理的架构中,代码段(code segment / text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读, 某些架构也允许代码段为可写,即允许自修改程序。 在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。


栈(stack)在计算机科学中,是一种特殊的链表形式的数据结构,它的特殊之处在于只能允许在链表的一端(称为栈顶,英文为top)进行添加和删除操作。另外堆栈数据结构的实现也可以通过数组来完成。栈Stack是存放程序中局部变量的内存区,另外栈stack用来保存函数调用的现场。栈stack由系统自动分配,用户不需要关心其分配和释放。

 

堆是指Heap,程序运行时供程序员来支配的一段内存。 用于进程运行时动态分配内存。堆的大小不固定,可根据程序运行动态变化。由程序中的new/delete等控制。

 

 二 Linux的进程间通信IPC(Inter-process communication)

 1)Linux的IPC

2)解释

管道: 管道可以分为普通管道和命名管道。普通管道用于具有亲缘关系的进程(父子进程)间的通信。命名管道则在普通管道提供的功能的基础上,通过给管道命名的方法,使管道变成文件系统中的管道文件, 从而允许无亲缘关系的进程间通过访问管道文件进行通信。

 

信号:信号类似windows下的消息,用于通知进程有某种事件发生。只要知道进程的进程号,就可以向进程发送信号。而进程可以自行定义对信号的处理方法。

 

消息队列:消息队列是消息的链表。进程可以向消息队列中发送某种类型的消息,也可以从消息队列中读取某种类型的消息。消息内存则可以根据需要自行定义,从而使消息队列克服了信号承载信息量过少的缺点,在实际编程中应用较广。

 

共享内存:共享内存是在系统内核分配的一块缓冲区,多个进程都可以访问该缓冲区。由于进程可以直接读写内存,避免了在内核空间与用户空间的切换,所以共享内存读写效率很高。共享内存类似与windows环境编程中的内存映像文件。在Linux系统中,多用于存储应用程序的配置信息。

 

信号量:也成为信号灯,主要用于进程间的同步。

 

套接口: 也成为套接字,可以用于跨越主机边界的通信。套接口最初是在BSD版本的UNIX系统上实现的,由于其功能强大,接口友好,现在已经在大多数操作系统中实现,成为事实上的网络编程接口。

 

三 参考

http://www.ibm.com/developerworks/cn/linux/l-ipc/ 

http://www.ibm.com/developerworks/cn/linux/l-ipc/part1/

http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html

http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index2.html

http://www.ibm.com/developerworks/cn/linux/l-ipc/part3/

http://www.ibm.com/developerworks/cn/linux/l-ipc/part4/

http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html

http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index2.html

http://www.ibm.com/developerworks/cn/linux/l-ipc/part6/

http://www.ibm.com/developerworks/cn/aix/library/au-interprocess_ace/

 

http://en.wikipedia.org/wiki/Inter-process_communication

 

完!

posted @ 2010-06-29 10:14  iTech  阅读(2049)  评论(0编辑  收藏  举报