·首页 ·Linux ·新闻 ·论坛 ·博客 ·空间 ·存储  
ChinaUnix >> AIX用户俱乐部 >> 正文 AIX论坛 | AIX博客
 
AIX的进程通信
2006-09-08 15:34:52 作者:杨雪松 来自:IBM互联网服务器部
 

  进程通信是操作系统内核层极为重要的部分。本文试图从用户的角度探讨AIX的进程通信的有关内容。

  按照每次通信时交换信息的多少,可将AIX进程之间的通信分为两类:简单通信和大信息量通信。下面简单介绍它们的有关概念及实现方法。

  1. AIX进程的简单通信

  简单通信又称为低级通信,是指进程之间的通信是通过传递简单的控制信号来实现的。主要有以下三种方式:

  *

  利用睡眠SLEEP()和唤醒WAKEUP()实现进程之间的同步/互斥。SLEEP用来使调用它的进程以指定的优先级在某个队列上睡眠,而WAKEUP则用来唤醒在指定队列上睡眠的进程。二者都是由系统提供的。

  *

  利用系统调用WAIT()和EXIT()实现父子进程之间的同步。WAIT等待子进程运行结束,而EXIT则用来终止一个进程或程序,并把状态返回给它的父进程。

  *

  利用软中断信号实现同一用户的各进程之间的通信。AIX中设置了22个软中断信号(其中包括两个用户自己定义的信号),它们的符号名及功能如下表所示。

  软中断号 符号名 功能 软中断号 符号名 功能

  1 SIGHUP 远端挂断 12 SIGSYS 系统调用错误

  2 SIGINT 键入DELETE 13 SIGPIPE PIPE只有写者无读者

  3 SIGQUIT 键入QUIT 14 SIGALRM 报警信号

  4 SIGILL 非法指令 15 SIGTERM 软件终止信号

  5 SIGTRAP 断点或跟踪指令 16 SIGUSR1 用户定义

  6 SIGIOT IOT指令 17 SIGUSR2 用户定义

  7 SIGEMT EMT指令 18 SIGCLD 子进程消亡

  8 SIGFPE 浮点溢出 19 SIGPWR 电源失效

  9 SIGKILL 要求终止该进程 20 SIGWINCH 窗口变换

  10 SIGBUS 总线超时 21 SIGURG 紧急的SOCKET条件

  11 SIGSEGV 段违例 22 SIGPOLL I/O流事件信号

  2. 能交换大量信息的通信

  在AIX中,能交换大量信息的通信方式有以下四种:

  管道通信(PIPE)

  管道通信方式的中间介质是文件,通常称这种文件为管道文件。两个进程利用管道文件进行通信时,一个进程为写进程,另一个进程为读进程。写进程通过写端(发送端)往管道文件中写入信息;读进程通过读端(接收端)从管道文件中读取信息。两个进程协调不断地进行写、读,便会构成双方通过管道传递信息的流水线。

  利用系统调用PIPE()创建一个无名管道文件,通常称为无名管道或PIPE;利用系统调用MKNOD()创建一个有名管道文件,通常称为有名管道或FIFO。

  PIPE是一种非永久性的管道通信机构,当它访问的进程全部终止时,它也将随之被撤消;它也不能用于不同族系的进程之间的通信。而FIFO是一种永久的管道通信机构,它可以弥补PIPE的不足。

  管道文件被创建后,便可对它进行读写操作,通过系统调用WRITE()和READ()来实现。通信完毕后,可将管道文件关闭,用CLOSE()来实现。

  消息通信(MESSAGE)

  消息通信方式以消息缓冲区为中间介质,通信双方的发送和接收操作均以消息为单位。在存储器中,消息缓冲区被组织成队列,通常称之为消息队列。

  创建消息队列用系统调用MSGGET()来实现,这一步工作也被称为消息队列的初始化。在进行通信时,消息队列的发送和接收分别用系统调用MSGSND()和MSGRCV()来实现。在需要改变队列的使用权限及其它一些特性时,用MSGCTL()来实现。

  共享存储段通信(SHARED MEMORY)

  共享存储段通信方式允许多个进程在外部通信协议或同步/互斥机制的支持下使用同一个内存段(作为中间介质)进行通信,它是一种最有效的数据通信方式。

  在进行通信之前,先创建一个共享内存段。创建共享内存段用系统调用SHMGET()来实现。映射和分离操作分别用系统调用SHMAT()和SHMDT()来实现。在需要改变共享内存段的存取权限及其它一些特性时,用系统调用SHMCTL()来实现。

  信号量(SEMAPHORE)

  信号量通信方式是借助一组可共享的信号量(一般情况下为25个)来实现进程之间的通信。

  初始化操作用系统调用SEMGET()来实现,其目的是建立一个需要的信号量组。对信号量进行增值、减值和测试等操作时,用系统调用SEMOP()来实现。在需要改变信号量集的存取权限及其它一些特性时,用系统调用SEMCTL()来实现。

  小结:

  上文介绍的AIX的进程通信机制,是AIX系统内部通信的基础。在AIX中,多个进程可协同工作,共同完成同一任务,这些进程之间需要共享数据和相互交换信息。AIX的进程之间通信的手段有多种,包括简单通信和大信息量通信等。



原文链接:http://www-900.ibm.com/cn/products/servers/pseries/tech/aix_com.shtml
 发表评论 | 查看评论
 
 
    

 网友交流更多>> 
· 急!P570无法启动,前面板报错B..
· I/O瓶颈问题?
· 主机液晶面板显示10011BOB错误,..
· 重装需要注意哪些问题细节
· 大家帮分析下AIX的售前好还是售..
· hacmp中db2的进程监控脚本要怎么..
· HMC 的区别?
· 谁动了我的文件?
· 170 跟150 2台机器,靠自带的CO..
· 关于 tar 命令的高级使用
· 购买150
· vmstat分析
· 关于nfs的问题
· 根据时间删除的脚本
· HA启动问题
· smitty install 异常中断....
· 准备买台学习机,有几个问题请教..
· 备份环境的尴尬.....
· 如何查看是否安装了GB18030字符..
· 223学习中,哪里有免费的AIX主机..
· aix5.3有个硬盘报错,哪位达人给..
· AIX 7026-6H1 硬盘报错
· 怎麽升级HACMP啊?
· 如何建立Aix的超级用户?
· lslpp -l 输出为什么是这样?
· 想修改persistent IP
· 怎麽给一个分区装操作系统啊?
· mirrorvg 时出的奇怪问题
· 关于文件系统的奇怪事情
· f85电源灯闪烁,经常坏,很郁闷..
 最新文章更多>> 
· IBM、惠普、Sun 三大服务器厂商..
· 用户相关文件
· 用户相关文件
· AIX系统ROOTVG镜像操作
· UNIX与ORACLE备份与恢复
· IBM红皮书上翻译的HACMP原理1
· IBM红皮书上翻译的HACMP原理2
· vi编辑器
· Install WebLogic92 on AIX
· Fragment size, 逻辑块,及存放用..
· IBM Power服务器:统一就是力量
· IBM五大系列服务器发展概述
· UNIX引领新一代数据中心未来发展
· 技术追踪:追溯POWER的前世今生
· 挥向中小企业的Power刀片
· 大型主机刀片:敢问路在何方?
· AS400之-AS_400的迅速发展及未来
· 解决部分镜像问题的方法
· RAC环境下创建物理DATAGUARD
· 关于vea界面无法正常显示的问题..
· How to verify Legato NetWorke..
· 通过HMC升级和更新P5主机微码
· 探索 AIX 6:新特性概览(下)
· 探索 AIX 6:新特性概览(中)
· 探索 AIX 6:新特性概述(上)
· AIX+HA,如何调整文件系统空间
· Maximum allocation for logica..
· 在AIX下归档大于8G的文件
· AIX 常用命令汇总
· IBM AIX V5.3 系统管理(Test 22..
· IBM AIX V5.3 系统管理(Test 22..
· AIX ,FQA第2期
 

Copyright © 2001-2018 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们