毕业设计指导网:毕业设计范文、毕业答辩指导,免费毕业设计、计算机毕业论文参考资料下载服务。

技术团队主要成员为国内著名高校计算机专业导师。诚实守信,优质服务,是我们的宗旨!
当前位置:毕业设计指导网毕业论文频道计算机毕业论文

Linux 进程间通信的理解与编程实践

论文出自毕业设计指导网www.bysj120.cn,需要购买整套毕业论文或找不到您要的毕业设计请联系客服索取

         Linux系统可以看作是各种进程组成的,进程之间彼此竞争,通过通信相互协调,独立实现各种功能。深入学习和理解进程间各种通信机制及其实现方式,是编写Linux程序,开发Linux应用的基础。
1、进程间通信及其方式
        所谓进程通信,就是不同进程之间进行一些"接触",这种接触有简单,也有复杂。机制不同,复杂度也不一样。通信是一个广义上的意义,不仅仅指大批量数据传送,还包括控制信息的传送,它们的使用方法是基本相同的。Linux支持传统的UNIX-IPC机制,即信号和管道,也支持SystemV的IPC机制,即共享内存、信号量和消息队列。所有SystemV IPC对象都包括ipc_perm数据结构,参见include/linux/ipc.h。SystemV消息在ipc/msg.c中实现,共享内存在ipc/shm.c中实现,信号灯在ipc/sem.c中实现。信号源码参见/kernel/signal.c,管道源码参见/fs/pipe.c。
1.信号 (Signals)
        信号是Unix系统中使用的最古老的进程间通讯的方法之一,用于向一个或多个进程发送异步事件的信号。Linux下的信号可以类比于DOS下的INT或者是Windows下的事件。在有一个信号发生的时候,相应的信号就会发送给相应的进程。Linux的信号有SIGHUP、 SIGINT 、 SIGQUIT 、SIGILL等三十几个(可以通过kill –l命令查看)。 信号事件的发生有两个来源:一个是硬件原因(比如我们按下了键盘),一个是软件原因(比如我们使用系统函数或者是命令发出信号)。 最常用的四个发出信号的系统函数是kill、 raise、 alarm和setitimer函数。信号用来实现同步机制,信号和信号量是不同的,他们虽然都可用来实现同步和互斥,但前者是使用信号处理器来进行的,后者是使用P、V操作来实现的。
1.1信号相关函数:
      int sigaction(int signo, const struct sigaction *act, struct sigaction *oact);为进程安装信号处理器,struct sigaction数据结构是用来保存信号处理器的相关信息。int sigemptyset(sigset_t *set);将信号集合清空。int sigfillset(sigset_t *set);将信号集合设置成包含所有的信号,在对信号进行操作以前一定要对信号集进行初始化。int sigaddset(sigset_t *set, int signo);向信号集中加入signo对应的新信号。int sigdelset(sigset_t *set, int signo);从信号集中删除signo对应的一个信号。int sigismember(const sigset_t *set, int signo);判断某个信号是否在信号集中。int sigprocmask(int how,const sigset_t *set, sigset_t *oset);设置进程的信号屏蔽码。信号屏蔽码可以用来在某段时间内阻塞一些信号集中的信号。
 

Tags:Linux

在线客服

  • 咨询QQ:
  • 407894958
  • 点击和客服QQ在线沟通
  • 点击和客服QQ在线沟通
  • 成品购买:
  • 定制咨询:
  • 点击和客服QQ在线沟通
  • 点击和客服QQ在线沟通
  • 如临时会话消息无法接收 请先加客服QQ好友咨询
    微信客服

计算机毕业设计,免费毕业论文,优秀毕业设计论文下载


120毕业设计指导网
地址:徐州市西安路41号
收缩
  • 计算机毕业设计定做咨询