快速业务通道

Linux进程 进程间通信IPC

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-15

  一 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.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号