unix内核概述-信号与进程间的通信
2013-09-28 11:02
357 查看
unix信号提供了一种把系统事件报告给进程的一种机制。每种事件都拥有自己的信号编号,通常用一个符号常量来表示,例如SIGTERM。有两种系统事件:
异步信号:例如:当用户在终端发送一个中断键,即向前台进程发出一个中断信号SIGINT
同步错误或异常:例如:当进程访问内存非法地址时,内核向这个进程发送一个SIGSEGV信号。
一般来说进程以两种方式对接受到的信号做出反应:
忽略该信号;异步的执行一个信号处理程序;
如果进程不指定以何种方式处理信号,则内核就根据信号编号执行一个默认操作。可能得默认操作时:
终止进程;将执行上下文和进程地址空间的内容写入一个文件,并终止进程;忽略信号;挂起进程;如果进程曾被执行,则恢复进程执行。
SIGSKILL、SIGSTOP信号不能直接由进程处理,也不能由进程忽略。
System V引入在用户态下其他种类的进程通信机制:信号量、消息队列、共享内存,他们被统称为System V IPC。
posix标准定义了一个基于消息队列的IPC机制,这就是所谓的posix消息队列,他们和System V IPC消息队列是相似的,但是他们对应用程序提供一个更简单的基于文件的接口。
共享内存为进程间交换和共享数据的最快方式。
异步信号:例如:当用户在终端发送一个中断键,即向前台进程发出一个中断信号SIGINT
同步错误或异常:例如:当进程访问内存非法地址时,内核向这个进程发送一个SIGSEGV信号。
一般来说进程以两种方式对接受到的信号做出反应:
忽略该信号;异步的执行一个信号处理程序;
如果进程不指定以何种方式处理信号,则内核就根据信号编号执行一个默认操作。可能得默认操作时:
终止进程;将执行上下文和进程地址空间的内容写入一个文件,并终止进程;忽略信号;挂起进程;如果进程曾被执行,则恢复进程执行。
SIGSKILL、SIGSTOP信号不能直接由进程处理,也不能由进程忽略。
System V引入在用户态下其他种类的进程通信机制:信号量、消息队列、共享内存,他们被统称为System V IPC。
posix标准定义了一个基于消息队列的IPC机制,这就是所谓的posix消息队列,他们和System V IPC消息队列是相似的,但是他们对应用程序提供一个更简单的基于文件的接口。
共享内存为进程间交换和共享数据的最快方式。
相关文章推荐
- unix内核概述-进程管理
- UNIX内核概述-进程实现
- Linux网络编程 套接字 一:概述 Socket 的英文原意就是“孔”或“插座”,现在,作为BSD UNIX 的进程通讯机制,取其后一种意义。日常生活中常见的插座,有的是信号插座,有的是电源插座,有的可以接受信号(或能量),有的可以发
- UNIX内核概述-进程地址空间
- 【UNIX】什么是进程间FIFO通信以及信号通信
- 苏嵌学习之进程通行二信号通信
- 内核进程间的信号机制
- 信号 进程通信
- Linux进程通信之信号
- 进程通信之(一,二) 信号机制实验
- Unix 进程通信初学《简介篇》
- linux 下进程间通过信号进行通信的具体实现过程
- 进程通信之信号
- Unix高级编程:线程的同步之信号量、进程通信之信号量集、system函数、简单web服务器代码
- 使用netlink机制在内核进程和用户空间进程通信
- linux 内核进程与用户进程的通信 方法一 使用sockopt与内核交换数据
- unix之进程通信(IPC)
- Linux\Unix IPC进程通信实例分析(一):共享内存通信---文件映射mmap方式
- linux进程通信---几个发送信号的函数(kill,raise,alarm,pause)
- unix进程间的通信方式